@qredence/fleet 0.8.0 → 0.10.0
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 +90 -0
- package/dist/web/client/assets/DialogTitle-BlVq-tcv.js +1 -0
- package/dist/web/client/assets/FloatingPortal-D8-EPDs2.js +1 -0
- package/dist/web/client/assets/activity-BPIKUzOU.js +1 -0
- package/dist/web/client/assets/agents-BMQXA18L.js +2 -0
- package/dist/web/client/assets/agents-page-D2soW46O.js +1 -0
- package/dist/web/client/assets/alert-CzWGeumf.js +1 -0
- package/dist/web/client/assets/alert-dialog-D-e1Pr4q.js +1 -0
- package/dist/web/client/assets/artifacts-panel-6JEdy6jU.js +1 -0
- package/dist/web/client/assets/badge-CzQFgmVK.js +1 -0
- package/dist/web/client/assets/chat-command-palette-Bxr5EkO6.js +1 -0
- package/dist/web/client/assets/chat-hpzV6IA6.js +57 -0
- package/dist/web/client/assets/chat-queries-ty76G6rK.js +3 -0
- package/dist/web/client/assets/clock-3-BwWCSCm_.js +1 -0
- package/dist/web/client/assets/{command-imgUMV3r.js → command-xo-NK4xO.js} +1 -1
- package/dist/web/client/assets/connectors-E4KW6hBL.js +2 -0
- package/dist/web/client/assets/connectors-page-CDzzjCIJ.js +1 -0
- package/dist/web/client/assets/create-project-dialog-Db-WhUmP.js +1 -0
- package/dist/web/client/assets/dialog-CK8dym6z.js +1 -0
- package/dist/web/client/assets/{fork-picker-dialog-Cgi48NnT.js → fork-picker-dialog-DSaFeUii.js} +1 -1
- package/dist/web/client/assets/globals-DDDleTbS.css +2 -0
- package/dist/web/client/assets/index-Cf8tRpHL.js +13 -0
- package/dist/web/client/assets/{input-7g8_nw-Z.js → input-CBoTMPC_.js} +1 -1
- package/dist/web/client/assets/{input-group-Nq03Qums.js → input-group-BFubAtz9.js} +1 -1
- package/dist/web/client/assets/mcp-connections-section-BsNhp1b2.js +2 -0
- package/dist/web/client/assets/message-queue-Btjt9wK2.js +1 -0
- package/dist/web/client/assets/{model-selector-list-Cp687pdm.js → model-selector-list-CbDAT0Rw.js} +1 -1
- package/dist/web/client/assets/mutation-Da9zdeWr.js +1 -0
- package/dist/web/client/assets/notify-BIL0-CGy.js +1 -0
- package/dist/web/client/assets/open-panel-action-message-SdA1VU42.js +1 -0
- package/dist/web/client/assets/openui-renderer-DG-iML7M.js +291 -0
- package/dist/web/client/assets/pencil-Cbgq3ybX.js +1 -0
- package/dist/web/client/assets/plus-DUP2JPVG.js +1 -0
- package/dist/web/client/assets/product-page-header-Ck6I13CE.js +1 -0
- package/dist/web/client/assets/provider-catalog-CLEDlH_v.js +1 -0
- package/dist/web/client/assets/provider-label-BItazQ6H.js +1 -0
- package/dist/web/client/assets/right-panel-context-CjX-HkDO.js +1 -0
- package/dist/web/client/assets/right-panel-registry-BAJ6TuEY.js +2 -0
- package/dist/web/client/assets/rotate-ccw-DLkfsmG9.js +1 -0
- package/dist/web/client/assets/routes--tnF7d6H.js +14 -0
- package/dist/web/client/assets/select-DYh951qi.js +1 -0
- package/dist/web/client/assets/{session-activity-panel-Bc4-HSfb.js → session-activity-panel-DwaXiSrS.js} +1 -1
- package/dist/web/client/assets/{session-insights-panel-D0v_DKcb.js → session-insights-panel-BXEmuJKf.js} +1 -1
- package/dist/web/client/assets/{session-tool-renderer-C7mYeUOs.js → session-tool-renderer-DEABxZG3.js} +25 -25
- package/dist/web/client/assets/{session-tree-panel-By9m9tGB.js → session-tree-panel-5QgMvXoX.js} +1 -1
- package/dist/web/client/assets/settings-dialog-BomLOETY.js +3 -0
- package/dist/web/client/assets/sparkles-CASAe1AI.js +1 -0
- package/dist/web/client/assets/{subagent-chat-panel-DsPmLZSf.js → subagent-chat-panel-R2RoX1Yt.js} +1 -1
- package/dist/web/client/assets/subagent-transcript-DVZhMo7a.js +1 -0
- package/dist/web/client/assets/{subagents-panel-gQ9BLfV3.js → subagents-panel-CMMRUP8F.js} +1 -1
- package/dist/web/client/assets/switch-BrxDfsX6.js +1 -0
- package/dist/web/client/assets/toast-BNWkgZ0u.js +1 -0
- package/dist/web/client/assets/{tool-output-normalizer-CADgEiI4.js → tool-output-normalizer-DDU09Zc6.js} +1 -1
- package/dist/web/client/assets/tool-part-normalizer-CF6bmJ0s.js +4 -0
- package/dist/web/client/assets/tool-result-7qREIVv_.js +5 -0
- package/dist/web/client/assets/tool-timeline-CGhwMeNl.js +2 -0
- package/dist/web/client/assets/trash-sm2UyOxe.js +1 -0
- package/dist/web/client/assets/types-gIgIxnnG.js +1 -0
- package/dist/web/client/assets/useNavigate-CVhM7pag.js +1 -0
- package/dist/web/client/assets/useRender-CzJUrRlB.js +1 -0
- package/dist/web/client/assets/useScrollLock-BcsteNzT.js +1 -0
- package/dist/web/client/assets/with-selector-B_VDO56x.js +1 -0
- package/dist/web/client/bundle-budget.json +6 -6
- package/dist/web/server/{_tanstack-start-manifest_v-BiNPG4xt-BZTMSM2I.js → _tanstack-start-manifest_v-Io433TLr-YWPNQWQI.js} +44 -23
- package/dist/web/server/agents-DOgCHixY-KUZP2VDO.js +22 -0
- package/dist/web/server/agents-page-BdiR9H8w-M6X6SXMF.js +215 -0
- package/dist/web/server/{artifacts-panel-CqGBNU4q-UHNMC7PK.js → artifacts-panel-cYqS54cM-K6SF3K6W.js} +27 -17
- package/dist/web/server/{chat-command-palette-B94-zIEz-ES2ZB4ZF.js → chat-command-palette-BDnwcymZ-DSTFIAOD.js} +22 -13
- package/dist/web/server/chunk-2ETDIMNM.js +40 -0
- package/dist/web/server/{chunk-K67IDUAI.js → chunk-2OC2FKHR.js} +42 -32
- package/dist/web/server/{chunk-2VKVSL6Y.js → chunk-35RIM6VP.js} +128 -127
- package/dist/web/server/{chunk-5GUEYYYO.js → chunk-37EK2TYH.js} +4591 -13688
- package/dist/web/server/chunk-5MOXRFX6.js +826 -0
- package/dist/web/server/chunk-6GYLXDX3.js +588 -0
- package/dist/web/server/chunk-7DQQMT5V.js +8993 -0
- package/dist/web/server/chunk-APOS34PW.js +8965 -0
- package/dist/web/server/{chunk-YQO36OP6.js → chunk-AXN2OBPF.js} +2 -4
- package/dist/web/server/chunk-BD7YKYWL.js +1007 -0
- package/dist/web/server/chunk-BLGKLQJG.js +432 -0
- package/dist/web/server/{chunk-BAHZXA4D.js → chunk-BZ2EAUZZ.js} +10 -12
- package/dist/web/server/chunk-C5XHGLET.js +193 -0
- package/dist/web/server/chunk-CE7U5QB2.js +42 -0
- package/dist/web/server/{chunk-E6T36NM5.js → chunk-FI3UF2GW.js} +36 -353
- package/dist/web/server/{chunk-LTTBT3J7.js → chunk-FNV3WZXL.js} +5 -9
- package/dist/web/server/{chunk-2FHYWKDN.js → chunk-FSQWWR2M.js} +46 -16
- package/dist/web/server/chunk-FT7HNDR5.js +143 -0
- package/dist/web/server/chunk-GNXIDE26.js +44 -0
- package/dist/web/server/{chunk-EAKPTSWR.js → chunk-HAFELESQ.js} +5 -7
- package/dist/web/server/{chunk-WSK55TKE.js → chunk-KBMRRJQN.js} +96 -10
- package/dist/web/server/chunk-KSGGSGOA.js +50 -0
- package/dist/web/server/{chunk-SGAQVAYL.js → chunk-NSFKPEFI.js} +2 -2
- package/dist/web/server/chunk-NZCEQWK2.js +6891 -0
- package/dist/web/server/chunk-OO7NBFQQ.js +15 -0
- package/dist/web/server/{chunk-EL2JCDAM.js → chunk-PQVTLG3E.js} +9 -9
- package/dist/web/server/{chunk-LQM6QR7S.js → chunk-Q4ECIATK.js} +61 -47
- package/dist/web/server/chunk-QOZCYKMA.js +769 -0
- package/dist/web/server/{chunk-CZLGB3NE.js → chunk-R4BS3KYI.js} +2 -4
- package/dist/web/server/{chunk-FB2QLQTN.js → chunk-RHJEOG37.js} +12 -13
- package/dist/web/server/chunk-RX2ZJARF.js +73 -0
- package/dist/web/server/chunk-TXZDDJCT.js +5115 -0
- package/dist/web/server/{chunk-OAYEN3JV.js → chunk-VDEUVEWL.js} +2253 -1
- package/dist/web/server/{chunk-ABMGW6QH.js → chunk-W2GI7NRX.js} +16140 -15708
- package/dist/web/server/{chunk-SI5IQSG4.js → chunk-W7GGECTL.js} +8 -7
- package/dist/web/server/connectors-Dv_uPdv0-2X5VWQXK.js +22 -0
- package/dist/web/server/connectors-page-DW75T-uH-EKRHUZ6K.js +66 -0
- package/dist/web/server/{create-project-dialog-CFPX6Ihl-EO4XTINS.js → create-project-dialog-BS5Sva46-BO4RLW2Q.js} +25 -14
- package/dist/web/server/{fork-picker-dialog-B2RBFzoZ-R6GXPSPL.js → fork-picker-dialog-DFpKOdAw-JPLJSYYU.js} +7 -10
- package/dist/web/server/{markdown-BvCfOB26-VDH4YOQD.js → markdown-Cc8V9dOF-JTNTJKQU.js} +5 -6
- package/dist/web/server/{markdown-code-SYc-BQvp-MR4FXT5C.js → markdown-code-gaRnbgNM-V5LIRYCD.js} +7 -8
- package/dist/web/server/{message-queue-D32rLiJo-HEBRGH5B.js → message-queue-nQ2_kU82-KKSLYR4S.js} +7 -14
- package/dist/web/server/{model-selector-list-DKzt_xEN-5ZPU6XDY.js → model-selector-list-By_G7_Hr-GXT27BZO.js} +12 -14
- package/dist/web/server/{openui-renderer-CeVtOdYl-PY37PCJI.js → openui-renderer-Q31y65CQ-QNVSP4NN.js} +20 -13
- package/dist/web/server/{prompt-suggestions-CpTK_fHV-Q4ILLZKC.js → prompt-suggestions-B67Uy5Rk-5SMTSIFQ.js} +5 -4
- package/dist/web/server/{repl-panel-1kSS1UGd-DDM5ADGZ.js → repl-panel-1kSS1UGd-POXRYDDJ.js} +2 -3
- package/dist/web/server/{resources-panel-S4NHlpz7-NF7WYYSR.js → resources-panel-CH8sG0Od-4BZN6SLY.js} +18 -10
- package/dist/web/server/router-8EzTM9Eq-COVGJKKX.js +23 -0
- package/dist/web/server/routes-88H0fiN3-WIAZJ3RT.js +124 -0
- package/dist/web/server/server.js +3 -3
- package/dist/web/server/{session-activity-panel-Bz2GrdMk-PCOXG46X.js → session-activity-panel-CgSOde03-B5RCAGB4.js} +18 -10
- package/dist/web/server/{session-insights-panel-CfMX2NRu-6HWZTTAC.js → session-insights-panel-BiVObm_6-AP4FITT7.js} +2 -12
- package/dist/web/server/{session-reasoning-panel-CpiTdyQz-O3B5CDKS.js → session-reasoning-panel-Dmny6YTk-D3HQV2YB.js} +17 -9
- package/dist/web/server/session-tool-renderer-BrnTO2w3-V6EE6AB2.js +34 -0
- package/dist/web/server/{session-tree-panel-CzkE0RFB-P4KWA7S2.js → session-tree-panel-BEqR_cAJ-TZS7VRCB.js} +18 -11
- package/dist/web/server/{settings-dialog-BUgVNpr1-THSYIOZL.js → settings-dialog-DkesVBrS-BAAA3YNU.js} +238 -847
- package/dist/web/server/{subagent-chat-panel-mw3kEFfK-CDYX7LST.js → subagent-chat-panel-Bfmt1bCE-DKDVH3NJ.js} +23 -15
- package/dist/web/server/{subagents-panel-2ZJfYrXG-NDJKHJHD.js → subagents-panel-ChJDDvad-GNCHDTPB.js} +24 -17
- package/dist/web/server/{workspace-panel-xznrPDLt-QCJRZOF3.js → workspace-panel-Cij_JylD-WPYSV5FA.js} +23 -15
- package/package.json +1 -1
- package/dist/web/client/assets/DialogTitle-RY2UDuCY.js +0 -1
- package/dist/web/client/assets/FloatingPortal-XC0MCNnD.js +0 -1
- package/dist/web/client/assets/action-swap-BWRUNKQA.js +0 -1
- package/dist/web/client/assets/alert-dialog-DGNvg0B1.js +0 -1
- package/dist/web/client/assets/artifacts-panel-BGXpKRJ7.js +0 -1
- package/dist/web/client/assets/badge-DM06QVqB.js +0 -57
- package/dist/web/client/assets/chat-command-palette-PenyaZBw.js +0 -1
- package/dist/web/client/assets/create-project-dialog-C00d5yCq.js +0 -1
- package/dist/web/client/assets/dialog-zCNOQI63.js +0 -1
- package/dist/web/client/assets/globals-BuMuB_ea.css +0 -2
- package/dist/web/client/assets/index-BqBdQGWs.js +0 -13
- package/dist/web/client/assets/message-queue-sSljtjYz.js +0 -1
- package/dist/web/client/assets/mutation-DOi2Qgfa.js +0 -1
- package/dist/web/client/assets/notify-Cqdu6EV8.js +0 -1
- package/dist/web/client/assets/openui-renderer-BdYTcn-_.js +0 -291
- package/dist/web/client/assets/provider-label-QrVOwKBO.js +0 -1
- package/dist/web/client/assets/right-panel-context-DHKWoetk.js +0 -1
- package/dist/web/client/assets/right-panel-registry-BaLZiKny.js +0 -2
- package/dist/web/client/assets/routes-BkFkhfO3.js +0 -16
- package/dist/web/client/assets/select-BhV4ikeN.js +0 -1
- package/dist/web/client/assets/settings-dialog-Dpt4Ha_m.js +0 -2
- package/dist/web/client/assets/sparkles-BwVa9zQJ.js +0 -1
- package/dist/web/client/assets/subagent-transcript-CNQ9wGk2.js +0 -1
- package/dist/web/client/assets/switch-C7Myu-Dt.js +0 -1
- package/dist/web/client/assets/toast-DlbKi6K-.js +0 -1
- package/dist/web/client/assets/tool-part-normalizer-CYK62WZM.js +0 -4
- package/dist/web/client/assets/tool-result-bjAGZ2qm.js +0 -5
- package/dist/web/client/assets/tool-timeline-eNqH1zj7.js +0 -2
- package/dist/web/client/assets/types-D5hZ8IyV.js +0 -1
- package/dist/web/client/assets/useRender-Bbk_fl72.js +0 -1
- package/dist/web/server/chunk-2PAW6K4Q.js +0 -56
- package/dist/web/server/chunk-7L5PCCYR.js +0 -2287
- package/dist/web/server/chunk-FB3UHLLN.js +0 -49
- package/dist/web/server/chunk-OSPDNT7S.js +0 -25404
- package/dist/web/server/router-DVKxZik_-254GZAJW.js +0 -30
- package/dist/web/server/routes-BTxAklRp-UM7ZTLLP.js +0 -140
- package/dist/web/server/session-tool-renderer-BZiOxtt1-T3ZGAQKX.js +0 -26
package/dist/web/client/assets/{session-tree-panel-By9m9tGB.js → session-tree-panel-5QgMvXoX.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{t as r}from"./utils-oBThwhjm.js";import{t as i}from"./git-branch-DZEh2mM2.js";import{t as a}from"./button-CWYjn8Zk.js";import{a as o,i as s,o as c,r as l,s as u,t as d}from"./alert-dialog-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{t as r}from"./utils-oBThwhjm.js";import{t as i}from"./git-branch-DZEh2mM2.js";import{t as a}from"./button-CWYjn8Zk.js";import{a as o,i as s,o as c,r as l,s as u,t as d}from"./alert-dialog-D-e1Pr4q.js";var f=e(t(),1),p=n();function m(e,t=0){let n=[];for(let r of e)n.push({node:r,depth:t}),n.push(...m(r.children,t+1));return n}function h({depth:e,isSelected:t,node:n,onSelect:i}){return(0,p.jsxs)(a,{type:`button`,variant:`ghost`,"data-testid":`session-tree-node-${n.id}`,onClick:i,className:r(`h-auto w-full flex-col items-start gap-0.5 rounded-md px-2 py-1.5 text-left font-normal`,t?`bg-foreground/10 ring-1 ring-foreground/15`:`hover:bg-foreground/6`,n.isOnActiveBranch?`text-foreground/90`:`text-foreground/55`),style:{marginLeft:`${e*12}px`,width:`calc(100% - ${e*12}px)`},children:[(0,p.jsxs)(`span`,{className:`flex items-center gap-1.5 text-label leading-5`,children:[n.isLeaf?(0,p.jsx)(`span`,{"aria-hidden":`true`,className:`font-semibold text-foreground`,children:`*`}):null,(0,p.jsx)(`span`,{className:`truncate font-medium`,children:n.preview})]}),(0,p.jsx)(`span`,{className:`truncate font-mono text-caption text-foreground/40`,children:n.id})]})}function g({sessionId:e,snapshot:t,loading:n,error:r,isStreaming:g,selectedEntryId:_,onSelectEntry:v,onRefresh:y,onRewind:b}){let[x,S]=(0,f.useState)(null),[C,w]=(0,f.useState)(null),[T,E]=(0,f.useState)(!1),[D,O]=(0,f.useState)(null),k=(0,f.useRef)(0),A=(0,f.useMemo)(()=>t?m(t.nodes):[],[t]),j=!!((0,f.useMemo)(()=>A.find(e=>e.node.id===_)?.node,[A,_])&&t&&_&&_!==t.leafId&&!g);(0,f.useEffect)(()=>{if(x===null||T||D===null)return;let e=t?.leafId??null;e!==C&&w(e)},[x,T,D,C,t?.leafId]);let M=(0,f.useCallback)(t=>{if(!(!e||t.messageIndex===void 0))return`${e}-m${t.messageIndex}`},[e]),N=(0,f.useCallback)(()=>{k.current+=1,S(null),w(null),O(null),E(!1)},[]);(0,f.useEffect)(()=>{N()},[e,N]);let P=(0,f.useCallback)(async()=>{let e=x,t=C;if(!e)return;let n=++k.current,r=()=>k.current===n;E(!0),O(null);try{await b(e,t),r()&&N()}catch(e){r()&&O(e instanceof Error?e.message:String(e))}finally{r()&&E(!1)}},[N,x,C,b]),F=(0,f.useCallback)(e=>{O(null),S(e),w(t?.leafId??null)},[t?.leafId]);return e?(0,p.jsxs)(`section`,{"aria-label":`Session tree`,className:`flex min-h-0 flex-1 flex-col gap-3`,children:[(0,p.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,p.jsxs)(`div`,{className:`flex items-center gap-2 text-label text-foreground/70`,children:[(0,p.jsx)(i,{className:`size-4`,"aria-hidden":`true`}),(0,p.jsx)(`span`,{children:`Branch history`})]}),(0,p.jsx)(a,{type:`button`,size:`compact`,variant:`outline`,onClick:y,disabled:n,children:`Refresh`})]}),r?(0,p.jsx)(`p`,{className:`rounded-md border border-destructive/30 bg-destructive/5 px-3 py-2 text-label text-destructive`,children:r}):null,g?(0,p.jsx)(`p`,{className:`rounded-md border border-border/60 bg-background px-3 py-2 text-label text-foreground/60`,children:`Finish or stop the current turn before rewinding.`}):null,(0,p.jsxs)(`div`,{"data-testid":`session-tree-list`,className:`flex min-h-0 flex-1 flex-col gap-1 overflow-y-auto rounded-md border border-border/60 bg-background p-2`,children:[n&&A.length===0?(0,p.jsx)(`p`,{className:`px-2 py-3 text-label text-foreground/45`,children:`Loading session tree…`}):null,!n&&A.length===0?(0,p.jsx)(`p`,{className:`px-2 py-3 text-label text-foreground/45`,children:`No branch entries yet.`}):null,A.map(({node:e,depth:t})=>(0,p.jsx)(h,{depth:t,node:e,isSelected:e.id===_,onSelect:()=>v(e.id,M(e))},e.id))]}),(0,p.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,p.jsxs)(`p`,{className:`text-caption text-foreground/45`,children:[(0,p.jsx)(`span`,{"aria-hidden":`true`,children:`*`}),` marks the current leaf on the active branch.`]}),(0,p.jsx)(a,{type:`button`,size:`compact`,disabled:!j,onClick:()=>_&&F(_),children:`Rewind here`})]}),(0,p.jsx)(d,{open:x!==null,onOpenChange:e=>{!e&&!T&&N()},children:(0,p.jsxs)(s,{children:[(0,p.jsx)(u,{children:`Rewind session?`}),(0,p.jsx)(o,{children:`Later turns on the current branch leave the active session. Rewinding to a user turn follows Prime Agent edit-from-here semantics: the leaf moves to that message's parent so you can resend from there.`}),D?(0,p.jsx)(`p`,{className:`rounded-md border border-destructive/30 bg-destructive/5 px-3 py-2 text-label text-destructive`,children:D}):null,(0,p.jsxs)(c,{children:[(0,p.jsx)(l,{disabled:T,children:`Cancel`}),(0,p.jsx)(a,{type:`button`,variant:`destructive`,disabled:T,onClick:()=>void P(),children:T?`Rewinding…`:`Rewind`})]})]})})]}):(0,p.jsx)(`section`,{"aria-label":`Session tree`,className:`flex min-h-36 items-center rounded-md border border-dashed border-border/70 px-4 text-center text-label leading-5 text-foreground/45`,children:`Start or open a session to browse its branch history.`})}export{g as SessionTreePanel};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{t as r}from"./utils-oBThwhjm.js";import{M as i,O as a,a as o,j as s}from"./useButton-CvcmqA2s.js";import{E as c}from"./createBaseUIEventDetails-DIxvaz-Y.js";import{r as l}from"./toast-BNWkgZ0u.js";import{G as u,J as d,K as f,Q as p}from"./FloatingPortal-D8-EPDs2.js";import{T as m,a as h,c as g,m as _,r as v,t as y}from"./select-DYh951qi.js";import{t as b}from"./useBaseUiId-lKfDDIcw.js";import{t as x}from"./createLucideIcon-CQY2ECfR.js";import{a as S,i as C,n as w,r as T,t as E}from"./provider-label-BItazQ6H.js";import{t as D}from"./chevron-right-BPCB1mOg.js";import{t as O}from"./eye-iNSvs0UA.js";import{n as k,t as A}from"./sparkles-CASAe1AI.js";import{t as j}from"./hard-drive-B3opVeEB.js";import{i as M,n as N,r as P,t as F}from"./sun-C7zg8Oas.js";import{t as I}from"./pencil-Cbgq3ybX.js";import{t as L}from"./plug-wCz-036u.js";import{t as R}from"./plus-DUP2JPVG.js";import{t as z}from"./refresh-cw-CqPE3kNY.js";import{a as B,i as V,n as H,r as U,t as W}from"./mcp-connections-section-BsNhp1b2.js";import{t as G}from"./search-Cb6fFWew.js";import{t as K}from"./trash-sm2UyOxe.js";import{t as q}from"./button-CWYjn8Zk.js";import{a as J,n as ee,r as te}from"./ui-preferences-B-PNDkyY.js";import{n as ne,t as re}from"./alert-CzWGeumf.js";import{a as Y,i as ie,r as X}from"./provider-catalog-CLEDlH_v.js";import{a as ae,n as oe,o as se,r as ce,t as le}from"./dialog-CK8dym6z.js";import{a as ue,i as de,n as fe,r as pe,t as me}from"./switch-BrxDfsX6.js";import{i as he,n as ge,r as _e,t as ve}from"./input-group-BFubAtz9.js";import{c as ye,l as be}from"./tokens-DinEQBG4.js";import{t as xe}from"./spinner-B5TaKP7k.js";import{t as Z}from"./notify-BIL0-CGy.js";import{n as Se,r as Ce}from"./right-panel-context-CjX-HkDO.js";import{a as we,i as Te,n as Ee,o as De,r as Oe,s as ke,t as Ae}from"./alert-dialog-D-e1Pr4q.js";var je={name:`arrow-left`,size:24,node:[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]};je.node;var Me=x(je),Ne={name:`box`,size:24,node:[[`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`}]]};Ne.node;var Pe=x(Ne),Fe={name:`eye-off`,size:24,node:[[`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`}]]};Fe.node;var Ie=x(Fe),Le={name:`key-round`,size:24,node:[[`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`}]]};Le.node;var Re=x(Le),ze={name:`layers`,size:24,node:[[`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`}]],aliases:[`layers-3`]};ze.node;var Be=x(ze),Ve={name:`lock`,size:24,node:[[`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`}]]};Ve.node;var He=x(Ve),Ue={name:`message-square`,size:24,node:[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}]]};Ue.node;var We=x(Ue),Ge={name:`paintbrush`,size:24,node:[[`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`}]]};Ge.node;var Ke=x(Ge),qe={name:`star`,size:24,node:[[`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`}]]};qe.node;var Je=x(qe),Ye={name:`tag`,size:24,node:[[`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`}]]};Ye.node;var Xe=x(Ye),Ze={name:`users`,size:24,node:[[`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`}]]};Ze.node;var Qe=x(Ze),Q=e(t(),1),$=n(),$e=new Set([`off`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`]),et=new Map,tt=500;function nt(e){let t=et.get(e);if(t)return t;let n=RegExp(`^${e.split(``).map(e=>e===`*`?`.*`:e===`?`?`.`:st(e)).join(``)}$`);return et.size>=tt&&et.clear(),et.set(e,n),n}function rt(e,t){return!t||t.length===0?!1:t.some(t=>it(e,t))}function it(e,t){let n=at(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(!ot(n))return r.includes(n);let i=nt(n);return r.some(e=>i.test(e))}function at(e){let t=e.lastIndexOf(`:`);if(t===-1)return e;let n=e.slice(t+1);return $e.has(n)?e.slice(0,t):e}function ot(e){return e.includes(`*`)||e.includes(`?`)}function st(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function ct(e,t){return`${e}/${t}`}function lt(e,t,n=!0){return t&&n&&e.trim().length===0}function ut({attemptedSave:e,label:t,onChange:n,onToggleVisibility:i,placeholder:a,required:o=!0,showPassword:s,value:c}){let l=(0,Q.useId)(),u=lt(c,e,o);return(0,$.jsxs)(fe,{"data-invalid":u||void 0,children:[(0,$.jsx)(ue,{htmlFor:l,children:t}),(0,$.jsxs)(ve,{children:[(0,$.jsx)(ge,{align:`inline-start`,children:(0,$.jsx)(He,{})}),(0,$.jsx)(he,{id:l,type:s?`text`:`password`,placeholder:a,value:c,onChange:e=>n(e.target.value),"aria-label":t,"aria-invalid":u||void 0}),(0,$.jsx)(ge,{align:`inline-end`,children:(0,$.jsx)(_e,{size:`icon-xs`,className:r(ye,`transition-[background-color,transform] duration-150 active:scale-[0.96]`),"aria-label":s?`Hide value`:`Show value`,onClick:i,children:s?(0,$.jsx)(Ie,{}):(0,$.jsx)(O,{})})})]})]})}function dt({attemptedSave:e,icon:t,inputType:n=`text`,label:r,onChange:i,placeholder:a,required:o=!0,value:s}){let c=(0,Q.useId)(),l=lt(s,e,o);return(0,$.jsxs)(fe,{"data-invalid":l||void 0,children:[(0,$.jsx)(ue,{htmlFor:c,children:r}),(0,$.jsxs)(ve,{children:[(0,$.jsx)(ge,{align:`inline-start`,children:(0,$.jsx)(t,{})}),(0,$.jsx)(he,{id:c,type:n,placeholder:a,value:s,onChange:e=>i(e.target.value),"aria-label":r,"aria-invalid":l||void 0})]})]})}function ft({children:e,className:t,description:n,icon:i,label:a,trailing:o}){let s=o??e;return(0,$.jsxs)(fe,{orientation:`horizontal`,className:r(`items-center justify-between gap-6 rounded-xl border border-border/60 bg-card p-4 transition-colors`,t),children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-start gap-3`,children:[i?(0,$.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:i}):null,(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(ue,{className:`text-sm font-medium text-foreground`,children:a}),n?(0,$.jsx)(pe,{className:`mt-0.5 text-xs text-muted-foreground leading-normal`,children:n}):null]})]}),s?(0,$.jsx)(`div`,{className:`shrink-0`,children:s}):null]})}var pt={unconfigured:`Add a key below to turn this on.`,unverified:`Checking the key…`,ready:`Ready.`,error:`The TypeSafe key could not be verified.`},mt={settings:`Using the key saved here.`,environment:`Using TYPESAFE_API_KEY from the server environment.`,none:`No key is set.`};function ht({enabled:e,keySource:t,status:n,onClearKey:r,onEnabledChange:i,onSaveKey:a}){let[o,s]=(0,Q.useState)(``),[c,l]=(0,Q.useState)(!1),[u,d]=(0,Q.useState)(!1),[f,p]=(0,Q.useState)(null),[m,h]=(0,Q.useState)(!1),g=(0,Q.useCallback)(async()=>{if(d(!0),p(null),!(!o.trim()||!a)){h(!0);try{await a(o.trim()),s(``),l(!1),d(!1)}catch(e){p(e instanceof Error?e.message:`Failed to save key`)}finally{h(!1)}}},[o,a]),_=(0,Q.useCallback)(async()=>{if(r){h(!0),p(null);try{await r(),s(``)}catch(e){p(e instanceof Error?e.message:`Failed to remove key`)}finally{h(!1)}}},[r]),v=n===`unconfigured`||n===`error`;return(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,$.jsx)(ft,{label:`Describe a command`,description:`Recognise when a message is really asking for a built-in command, like "compact this" or "show the shortcuts". Messages you send are shared with TypeSafe for classification only when this is on. ${pt[n]}`,trailing:(0,$.jsx)(me,{"aria-label":`Describe a command`,checked:e,disabled:!i||!e&&v,onCheckedChange:i})}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-xl border p-4`,children:[(0,$.jsx)(ut,{attemptedSave:u,label:`TypeSafe API key`,onChange:e=>{s(e),f&&p(null)},onToggleVisibility:()=>l(e=>!e),placeholder:`Paste your TypeSafe API key`,showPassword:c,value:o}),f?(0,$.jsx)(`p`,{className:`text-xs text-destructive`,children:f}):null,(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:mt[t]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(q,{type:`button`,size:`compact`,disabled:m||!o.trim(),onClick:()=>void g(),children:`Save key`}),t===`settings`?(0,$.jsx)(q,{type:`button`,variant:`outline`,size:`compact`,disabled:m,onClick:()=>void _(),children:`Remove key`}):null]})]})]})}var gt=[{value:`system`,label:`System`,icon:P},{value:`light`,label:`Light`,icon:F},{value:`dark`,label:`Dark`,icon:N}];function _t({onThemePreferenceChange:e,themePreference:t}){return(0,$.jsxs)(fe,{orientation:`horizontal`,className:`items-center justify-between gap-6 rounded-xl border p-4`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(ue,{children:`Theme`}),(0,$.jsx)(pe,{children:`Match the system theme or pick light or dark.`})]}),(0,$.jsx)(`div`,{className:`shrink-0`,children:(0,$.jsx)(y,{"aria-label":`Theme`,className:`w-[160px]`,onValueChange:t=>e(t),options:[...gt],value:t})})]})}function vt(e,t){return rt({id:e.id,name:e.name,provider:e.provider,modelId:e.modelId},t)}function yt({currentPatterns:e,enabled:t,model:n,models:r}){let i=e??[],a=new Set(r.map(e=>bt(e))),o=new Set;for(let e of r)vt(e,i)&&o.add(bt(e));return t?o.add(bt(n)):o.delete(bt(n)),[...i.filter(e=>a.has(e)?!1:t||!it(n,e)),...o]}function bt(e){return ct(e.provider,e.modelId)}function xt(e){return[e.name,e.modelId,e.provider,e.id].join(` `).toLowerCase()}function St({configuredProviderIds:e,discoverableProviderIds:t,discoveringProviderId:n,enabledModels:i,modelOptions:a,onAddModels:o,onDiscoverProvider:s,onOpenChange:c,open:l,providerLabel:u=E}){let[d,f]=(0,Q.useState)(``),[p,m]=(0,Q.useState)(new Set),h=d.trim().toLowerCase(),[g,_]=(0,Q.useState)({}),v=(0,Q.useRef)(g),y=(0,Q.useRef)(s);(0,Q.useEffect)(()=>{y.current=s},[s]);let b=(0,Q.useCallback)(async(e,t=!1)=>{let n=v.current[e];if(n?.loading||!t&&n?.updatedAt&&Date.now()-n.updatedAt<6e4)return;let r=t=>{v.current={...v.current,[e]:t??{}},_(v.current)};r({...n,loading:!0,error:!1});try{await y.current(e),r({updatedAt:Date.now()})}catch{r({loading:!1,error:!0})}},[]),x=[...t??[]].filter(t=>e.has(t)).sort((e,t)=>e.localeCompare(t)).join(`
|
|
2
|
+
`);(0,Q.useEffect)(()=>{if(l)for(let e of x.split(`
|
|
3
|
+
`).filter(Boolean))b(e)},[l,x,b]);let S=(0,Q.useMemo)(()=>a.filter(t=>!e.has(t.provider)||vt(t,i)?!1:!h||xt(t).includes(h)),[e,i,a,h]),C=(0,Q.useMemo)(()=>{let e=new Map;for(let t of S){let n=e.get(t.provider);n?n.push(t):e.set(t.provider,[t])}return[...e.entries()]},[S]),T=(0,Q.useMemo)(()=>{let n=t??e;return Array.from(n).filter(t=>e.has(t)).sort((e,t)=>u(e).localeCompare(u(t)))},[e,t,u]),D=(0,Q.useMemo)(()=>{let e=new Map;for(let t of a)vt(t,i)&&e.set(t.provider,(e.get(t.provider)??0)+1);return e},[i,a]),O=e=>{m(t=>{let n=new Set(t);return n.has(e.id)?n.delete(e.id):n.add(e.id),n})};return(0,$.jsx)(le,{open:l,onOpenChange:e=>{e||m(new Set),c(e)},children:(0,$.jsxs)(oe,{className:`flex max-h-[calc(100dvh-2rem)] min-w-0 max-w-[calc(100%-2rem)] sm:max-w-lg flex-col overflow-hidden`,children:[(0,$.jsxs)(ae,{className:`shrink-0`,children:[(0,$.jsx)(se,{children:`Add models`}),(0,$.jsxs)(ce,{children:[`Pick models discovered from your configured providers. For OpenAI Chat Completions, refresh runs`,` `,(0,$.jsxs)(`span`,{className:`font-medium`,children:[`GET `,`{baseUrl}/models`]}),`.`]})]}),(0,$.jsx)(`div`,{className:`max-h-28 shrink-0 overflow-y-auto`,children:(0,$.jsx)(`div`,{className:`flex min-w-0 flex-wrap gap-1.5 [&_button]:max-w-full [&_button]:h-auto [&_button]:whitespace-normal [&_button]:break-words`,children:T.map(e=>{let t=g[e]?.loading??n===e,r=D.get(e)??0;return(0,$.jsxs)(q,{type:`button`,variant:`outline`,size:`compact`,disabled:t,onClick:()=>{b(e,!0)},children:[t?(0,$.jsx)(xe,{"data-icon":`inline-start`}):(0,$.jsx)(z,{"data-icon":`inline-start`}),`Refresh `,u(e),g[e]?.error?` · Refresh failed (stale)`:``,r>0?(0,$.jsxs)(`span`,{className:`tabular-nums text-muted-foreground`,children:[`· `,r,` active`]}):null]},e)})})}),(0,$.jsxs)(ve,{children:[(0,$.jsx)(ge,{align:`inline-start`,children:(0,$.jsx)(G,{})}),(0,$.jsx)(he,{"aria-label":`Search discovered models`,value:d,onChange:e=>f(e.target.value),placeholder:`Search discovered models…`})]}),(0,$.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto overflow-x-hidden overscroll-contain`,"aria-live":`polite`,children:C.length===0?(0,$.jsx)(`p`,{className:`py-6 text-center text-xs text-pretty text-muted-foreground`,children:Object.values(g).some(e=>e.loading)?`Loading models…`:S.length===0&&!h?`No additional models available. Providers may have returned an empty list or all models are already enabled.`:`No models match your search.`}):(0,$.jsx)(`div`,{className:`flex flex-col gap-3`,children:C.map(([e,t])=>(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsxs)(`div`,{className:`px-2 text-caption font-medium tracking-wide text-muted-foreground uppercase`,children:[u(e),(D.get(e)??0)>0?(0,$.jsxs)(`span`,{className:`ml-1 font-normal normal-case tabular-nums`,children:[`· `,D.get(e),` active`]}):null]}),t.map(e=>{let t=p.has(e.id);return(0,$.jsxs)(`button`,{type:`button`,className:r(`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:()=>O(e),children:[(0,$.jsx)(`div`,{className:`flex size-8 shrink-0 items-center justify-center rounded-[4px] border border-border/40 bg-background/60`,children:(0,$.jsx)(w,{provider:e.provider,className:`text-foreground/70`})}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`div`,{className:`truncate text-sm font-medium`,children:e.name}),(0,$.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:e.modelId})]}),(0,$.jsx)(`span`,{className:r(`size-4 rounded border border-border/60`,t&&`border-foreground bg-foreground`),"aria-hidden":!0})]},e.id)})]},e))})}),(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-1.5`,children:[(0,$.jsx)(q,{type:`button`,variant:`ghost`,size:`compact`,onClick:()=>c(!1),children:`Cancel`}),(0,$.jsxs)(q,{type:`button`,size:`compact`,disabled:p.size===0,onClick:()=>{let e=S.filter(e=>p.has(e.id));e.length>0&&o(e),m(new Set),c(!1)},children:[`Add `,p.size>0?(0,$.jsxs)(`span`,{className:`tabular-nums`,children:[`(`,p.size,`)`]}):null]})]})]})})}function Ct({draft:e,discoveringProviderId:t,modelDirty:n,modelFilter:i,modelOptions:a,onAddModels:o,onDiscoverProvider:s,onModelFilterChange:c,onRemoveModel:l,onSetDefaultModel:u,onRevert:d,onSave:f,providers:p,saving:m,settingsLoading:h}){let[g,_]=(0,Q.useState)(!1),v=!e||h,y=i.trim().toLowerCase(),b=(0,Q.useMemo)(()=>{let t=new Set;for(let e of p)e.isConfigured&&t.add(e.id);for(let n of a)vt(n,e?.enabledModels)&&t.add(n.provider);return t},[e?.enabledModels,a,p]),x=(0,Q.useMemo)(()=>{let e=new Set;for(let t of p)t.discoverable===!0&&b.has(t.id)&&e.add(t.id);return e},[b,p]),S=(0,Q.useMemo)(()=>t=>!!e?.defaultProvider&&!!e?.defaultModel&&t.provider===e.defaultProvider&&t.modelId===e.defaultModel,[e?.defaultModel,e?.defaultProvider]),C=(0,Q.useMemo)(()=>{let e=new Map;for(let t of p)(t.displayName||t.name)&&e.set(t.id,t.displayName??t.name??t.id);return t=>e.get(t)??E(t)},[p]),T=(0,Q.useMemo)(()=>a.filter(t=>vt(t,e?.enabledModels)?!y||[t.name,t.modelId,t.provider,t.id].join(` `).toLowerCase().includes(y):!1),[e?.enabledModels,a,y]),D=(0,Q.useMemo)(()=>{let e=new Map;for(let t of T){let n=e.get(t.provider);n?n.push(t):e.set(t.provider,[t])}return[...e.entries()]},[T]),O=a.length===0?`No models discovered yet. Configure a provider, then add models.`:T.length===0&&!y?`Add models from your configured providers to make them available in chat.`:T.length===0?`No models match your search.`:null,k=()=>{_(!0)};return(0,$.jsxs)(U,{title:`LLM Models`,description:(0,$.jsxs)($.Fragment,{children:[`Models available in chat. `,(0,$.jsx)(`span`,{className:`tabular-nums`,children:T.length}),` in list`,a.length>0?(0,$.jsxs)($.Fragment,{children:[` `,`· `,(0,$.jsx)(`span`,{className:`tabular-nums`,children:a.length}),` discovered`]}):null,`.`]}),actions:(0,$.jsx)(H,{dirty:n,disabled:v,onRevert:d,onSave:f,saving:m}),children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsxs)(ve,{className:`flex-1`,children:[(0,$.jsx)(ge,{align:`inline-start`,children:(0,$.jsx)(G,{})}),(0,$.jsx)(he,{"aria-label":`Search listed models`,value:i,onChange:e=>c(e.target.value),placeholder:`Search listed models…`,disabled:v||T.length===0})]}),(0,$.jsxs)(q,{type:`button`,variant:`outline`,size:`compact`,disabled:v,onClick:k,children:[(0,$.jsx)(R,{"data-icon":`inline-start`}),`Add models`]})]}),(0,$.jsx)(`div`,{className:`flex flex-col gap-3`,"data-testid":`runtime-models-list`,children:O?(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-8`,children:[(0,$.jsx)(`p`,{className:`px-1 text-center text-xs text-pretty text-muted-foreground`,children:O}),y?null:(0,$.jsxs)(q,{type:`button`,variant:`outline`,size:`compact`,disabled:v,onClick:k,children:[(0,$.jsx)(R,{"data-icon":`inline-start`}),`Add models`]})]}):D.map(([e,t])=>(0,$.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,$.jsx)(`div`,{className:`px-1 text-xs font-medium text-muted-foreground`,children:C(e)}),t.map(e=>(0,$.jsx)(V,{icon:(0,$.jsx)(w,{provider:e.provider}),title:e.name,subtitle:`${C(e.provider)} · ${e.modelId}`,trailing:(0,$.jsxs)(`div`,{className:`flex items-center`,children:[S(e)?(0,$.jsx)(`span`,{className:`px-2 text-xs font-medium text-muted-foreground`,children:`Default`}):u?(0,$.jsxs)(q,{type:`button`,variant:`ghost`,size:`compact`,className:r(be,`h-7 px-2 text-xs text-muted-foreground transition-[background-color,color,transform] duration-150 active:scale-[0.96]`),disabled:v,"aria-label":`Set ${e.name} as default`,onClick:()=>u(e),children:[(0,$.jsx)(Je,{"data-icon":`inline-start`}),`Set default`]}):null,(0,$.jsxs)(q,{type:`button`,variant:`ghost`,size:`compact`,className:r(be,`h-7 px-2 text-xs text-muted-foreground transition-[background-color,color,transform] duration-150 hover:text-destructive active:scale-[0.96]`),disabled:v,"aria-label":`Remove ${e.name}`,onClick:()=>l(e),children:[(0,$.jsx)(K,{"data-icon":`inline-start`}),`Remove`]})]})},e.id))]},e))}),(0,$.jsx)(St,{open:g,configuredProviderIds:b,discoverableProviderIds:x,discoveringProviderId:t,enabledModels:e?.enabledModels,modelOptions:a,onAddModels:o,onDiscoverProvider:s,onOpenChange:_,providerLabel:C})]})}var wt=`https://opencode.ai/zen/v1`,Tt=`qwen35-122b-a10b`,Et=`e.g. OpenCode Zen, Nebius, Groq…`,Dt=`model-a, model-b (comma-separated)`,Ot=[{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 kt({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,$.jsxs)(de,{className:`gap-2`,children:[(h||s)&&p?(0,$.jsx)(dt,{attemptedSave:e,icon:Xe,label:`Provider name`,placeholder:Et,value:o??``,onChange:p}):null,v?(0,$.jsx)(At,{value:n??`openai-completions`,onChange:l}):null,(0,$.jsx)(ut,{attemptedSave:e,label:`API key`,placeholder:g,value:t,showPassword:_,onChange:c,onToggleVisibility:m}),h||s?(0,$.jsx)(dt,{attemptedSave:e,icon:k,inputType:`url`,label:`Base URL`,placeholder:wt,value:r,onChange:u}):null,y?(0,$.jsx)(dt,{attemptedSave:e,icon:Be,label:`Model ids`,placeholder:Dt,value:a??``,onChange:f}):null,h&&!y?(0,$.jsx)(dt,{attemptedSave:e,icon:Pe,label:`Model name`,placeholder:Tt,value:i,onChange:d}):null]})}function At({value:e,onChange:t}){return(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground`,children:`API family`}),(0,$.jsx)(y,{"aria-label":`API family`,value:e,options:Ot,placeholder:`Select API family`,onValueChange:e=>t(e)})]})}function jt(e){return e.authType===`oauth`}function Mt(e){return e.supportsOAuth===!0}function Nt({provider:e}){return(0,$.jsx)(re,{className:`px-3 py-2`,children:(0,$.jsxs)(ne,{className:`text-xs text-pretty`,children:[`Sign-in has to run inside Prime Agent. In a terminal, start Prime Agent against the same account as Fleet, then run `,(0,$.jsx)(`code`,{className:`rounded bg-muted px-1 py-0.5 font-mono text-caption text-foreground`,children:`/login`}),` `,`and choose `,e.name,`. Fleet reads the stored credential on every request, so a restart is not needed. If Fleet uses a non-default account directory, start Prime Agent with the same`,` `,(0,$.jsx)(`code`,{className:`rounded bg-muted px-1 py-0.5 font-mono text-caption text-foreground`,children:`PRIME_AGENT_CODING_AGENT_DIR`}),` `,`it uses.`]})})}var Pt={id:`custom`,name:`Custom provider`,isConfigured:!1,envVarName:`CUSTOM_PROVIDER_API_KEY`,displayName:`Custom provider`};function Ft(e){return e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0)}function It({onRemoveProvider:e,onUpdateProvider:t,providers:n}){let[r,i]=(0,Q.useState)(null),[a,o]=(0,Q.useState)(!1),[s,c]=(0,Q.useState)(``),[l,u]=(0,Q.useState)(``),[d,f]=(0,Q.useState)(``),[p,m]=(0,Q.useState)(``),[h,g]=(0,Q.useState)(`openai-completions`),[_,v]=(0,Q.useState)(``),[y,b]=(0,Q.useState)(!1),[x,S]=(0,Q.useState)(!1),[C,w]=(0,Q.useState)(``),[T,E]=(0,Q.useState)(!1),[D,O]=(0,Q.useState)(``),[k,A]=(0,Q.useState)(null),j=(0,Q.useMemo)(()=>[...n.filter(e=>e.id!==Pt.id),Pt],[n]),M=(0,Q.useMemo)(()=>j.filter(e=>e.isConfigured),[j]),N=(0,Q.useMemo)(()=>j.filter(e=>!e.isConfigured||e.id===`openai-chat-completions`&&e.providerFamily===void 0),[j]),P=(0,Q.useMemo)(()=>{let e=C.trim().toLowerCase();return e?M.filter(t=>Lt(t,e)):M},[M,C]),F=(0,Q.useMemo)(()=>{let e=D.trim().toLowerCase();return N.filter(t=>Lt(t,e)).sort((e,t)=>e.id===`custom`?-1:t.id===`custom`?1:e.name.localeCompare(t.name))},[D,N]),I=(0,Q.useMemo)(()=>{let e=D.trim().toLowerCase();return M.filter(t=>Lt(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??(X(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,Q.useMemo)(()=>s.trim().length===0?!1:r?r===`custom`||X(r)?l.trim().length===0||Ft(p).length===0?!1:_.trim().length>0:Y(r)?l.trim().length===0||d.trim().length===0?!1:ie(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(),Z.success(`${t.name} removed from your configured providers.`),A(null)}catch(e){Z.error(e instanceof Error?e.message:`Failed to remove provider`)}},handleSave:async e=>{if(!t)return;S(!0);let n=e===`custom`||X(e),r=Y(e);if(n){let n=Ft(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}:{}}),Z.success(`Provider credentials applied to your active sessions.`),B(),U()}catch(e){Z.error(e instanceof Error?e.message:`Failed to update provider`)}return}let i=r&&ie(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}:{}}:{}}),Z.success(`Provider credentials applied to your active sessions.`),B(),U()}catch(e){Z.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:Y(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 Lt(e,t){if(!t)return!0;let n=Mt(e)?jt(e)?`oauth sign-in login`:`api key oauth sign-in login`:e.id===`custom`||X(e.id)?`custom provider endpoint openai anthropic google compatible`:Y(e.id)?`api key base url model name chat completions`:``;return[e.name,e.envVarName,e.id,n].join(` `).toLowerCase().includes(t)}function Rt({addPickerQuery:e,credentialProvidersLength:t,filteredPickerAvailable:n,filteredPickerConfigured:r,pickerHasResults:i,onClose:a,onQueryChange:o,onSelect:s}){return(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(q,{type:`button`,variant:`ghost`,size:`icon-compact`,"aria-label":`Back to providers`,onClick:a,children:(0,$.jsx)(Me,{})}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`p`,{className:`text-sm font-medium`,children:`Add provider`}),(0,$.jsx)(`p`,{className:`text-xs text-pretty text-muted-foreground`,children:`Choose a provider to save credentials in Prime Agent’s auth.json.`})]})]}),(0,$.jsxs)(ve,{children:[(0,$.jsx)(ge,{align:`inline-start`,children:(0,$.jsx)(G,{})}),(0,$.jsx)(he,{type:`text`,placeholder:`Search providers…`,value:e,onChange:e=>o(e.target.value),"aria-label":`Search providers to add`})]}),(0,$.jsx)(`div`,{className:`max-h-[min(24rem,50dvh)] overflow-y-auto overscroll-contain`,children:i?(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[n.length>0?(0,$.jsx)(`div`,{className:`flex flex-col gap-1`,children:n.map(e=>(0,$.jsx)(Ht,{provider:e,configured:!1,onSelect:()=>s(e.id)},e.id))}):null,r.length>0?(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[n.length>0?(0,$.jsx)(`p`,{className:`px-2 pt-1 text-caption font-medium tracking-wide text-muted-foreground uppercase`,children:`Already configured`}):null,r.map(e=>(0,$.jsx)(Ht,{provider:e,configured:!0,onSelect:()=>s(e.id)},e.id))]}):null]}):(0,$.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 zt({onBack:e,provider:t}){return(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(q,{type:`button`,variant:`ghost`,size:`icon-compact`,"aria-label":`Back to provider list`,onClick:e,children:(0,$.jsx)(Me,{})}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsxs)(`p`,{className:`text-sm font-medium`,children:[`Configure `,t.name]}),(0,$.jsx)(`p`,{className:`text-xs text-pretty text-muted-foreground`,children:`OAuth sign-in. Credentials are stored in auth.json for this account.`})]})]}),(0,$.jsx)(Nt,{provider:t})]})}function Bt({provider:e,api:t,apiKey:n,baseUrl:r,modelId:i,models:a,displayName:o,showPassword:s,attemptedSave:c,isPending:u,canSave:d,onApiKeyChange:f,onApiChange:p,onBaseUrlChange:m,onModelIdChange:h,onModelsChange:g,onDisplayNameChange:_,onTogglePassword:v,onBack:y,onCancel:b,onSave:x}){let S=e.id===`custom`||X(e.id),C=T[e.id]??(S?T.custom:{placeholder:`Enter credentials…`,help:`Stored securely in your local environment overrides.`}),w=Y(e.id)&&!S,E=Mt(e);return(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(q,{type:`button`,variant:`ghost`,size:`icon-compact`,"aria-label":`Back to provider list`,onClick:y,children:(0,$.jsx)(Me,{})}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsxs)(`p`,{className:`text-sm font-medium`,children:[`Configure `,e.name]}),(0,$.jsx)(`p`,{className:`text-xs text-pretty text-muted-foreground`,children:S?`Name this custom provider, pick its API family, then enter its API key, https base URL, and model ids.`:w?`Name this OpenAI-compatible provider, then enter its API key, base URL, and model name.`:`Stored as ${e.envVarName} for this account.`})]})]}),(0,$.jsx)(kt,{attemptedSave:c,api:t,apiKey:n,baseUrl:r,modelId:i,models:a,displayName:o,isCustom:S,openAiChat:w,placeholder:C.placeholder,showPassword:s,onApiKeyChange:f,onApiChange:p,onBaseUrlChange:m,onModelIdChange:h,onModelsChange:g,onDisplayNameChange:_,onTogglePassword:v}),(0,$.jsxs)(re,{className:`px-3 py-2`,children:[(0,$.jsx)(l,{}),(0,$.jsx)(ne,{className:`text-xs text-pretty`,children:C.help})]}),(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-1.5`,children:[(0,$.jsx)(q,{type:`button`,variant:`ghost`,size:`compact`,onClick:b,children:`Cancel`}),(0,$.jsxs)(q,{type:`button`,size:`compact`,disabled:u||!d,onClick:x,children:[u?(0,$.jsx)(xe,{"data-icon":`inline-start`}):null,`Save`]})]}),E?(0,$.jsx)(Nt,{provider:e}):null]})}function Vt({confirmRemoveProvider:e,isPending:t,onClose:n,onConfirm:r}){return(0,$.jsx)(Ae,{open:e!==null,onOpenChange:e=>{e||n()},children:(0,$.jsxs)(Te,{children:[(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,$.jsxs)(ke,{children:[`Remove `,e?.name??`provider`,`?`]}),(0,$.jsx)(we,{children:`This clears stored credentials for this provider from your workspace settings. Active sessions will stop using it immediately.`})]}),(0,$.jsxs)(De,{children:[(0,$.jsx)(Oe,{disabled:t,children:`Cancel`}),(0,$.jsxs)(Ee,{disabled:t||!e,onClick:()=>{e&&r(e)},children:[t?(0,$.jsx)(xe,{"data-icon":`inline-start`}):null,`Remove provider`]})]})]})})}function Ht({configured:e,onSelect:t,provider:n}){let i=Y(n.id),a=n.id===`custom`||X(n.id),o=jt(n),s=Mt(n);return(0,$.jsxs)(`button`,{type:`button`,className:r(`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,$.jsx)(`div`,{className:`flex size-8 shrink-0 items-center justify-center rounded-[4px] border border-border/40 bg-background/60`,children:(0,$.jsx)(w,{provider:a?`custom`:n.id,api:n.api,className:`text-foreground/70`})}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`div`,{className:`truncate text-sm font-medium`,children:n.name}),(0,$.jsxs)(`div`,{className:`truncate text-xs text-muted-foreground`,children:[o?`OAuth sign-in`:s?`API key or OAuth`:a?`API family + key + https base URL + models`:i?`API key + base URL + model name`:n.envVarName,e?` · Update`:``]})]})]})}function Ut({providers:e,editingProvider:t,form:n,operation:i,actions:a,onEdit:o,onCancelEdit:s,onSave:c,onRemove:u}){let{api:d,apiKey:f,baseUrl:p,modelId:m,models:h,displayName:g,showPassword:_,attemptedSave:v,canSave:y}=n,{isPending:b,canRemove:x}=i,{onApiKeyChange:S,onApiChange:C,onBaseUrlChange:E,onModelIdChange:D,onModelsChange:O,onDisplayNameChange:k,onTogglePassword:A}=a;return(0,$.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:e.map(e=>{let n=t===e.id,i=X(e.id),a=T[e.id]??T[i?`custom`:`openai-chat-completions`],j=Y(e.id),M=jt(e),N=Mt(e);return(0,$.jsxs)(`div`,{className:`flex flex-col`,children:[(0,$.jsx)(V,{interactive:!1,icon:(0,$.jsx)(w,{provider:e.id,api:e.api,className:`text-foreground/80`}),title:e.name,subtitle:M?`OAuth sign-in`:N?`API key or OAuth`:i?`Custom provider · API key + base URL + models`:j?`OpenAI-compatible · API key + base URL + model name`:e.envVarName,trailing:(0,$.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,$.jsxs)(q,{type:`button`,variant:`ghost`,size:`compact`,className:r(be,`h-7 px-2 text-xs text-muted-foreground transition-[background-color,color,transform] duration-150 hover:text-destructive active:scale-[0.96]`),disabled:b||!x,"aria-label":`Remove ${e.name}`,onClick:()=>u(e),children:[(0,$.jsx)(K,{"data-icon":`inline-start`}),`Remove`]}),(0,$.jsxs)(q,{type:`button`,variant:`ghost`,size:`compact`,className:r(be,`h-7 px-2 text-xs transition-[background-color,transform] duration-150 active:scale-[0.96]`),disabled:b,onClick:()=>{if(n){s();return}o(e.id)},children:[n?null:(0,$.jsx)(I,{"data-icon":`inline-start`}),n?`Cancel`:`Update`]})]})}),n?(0,$.jsx)(B,{tone:`inset`,padding:`md`,className:`flex flex-col gap-2 border-t border-border/30`,children:M?(0,$.jsx)(Nt,{provider:e}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(kt,{attemptedSave:v,api:e.api??d,apiKey:f,baseUrl:p,modelId:m,models:h,displayName:g,isCustom:i,openAiChat:j,placeholder:a.placeholder,showPassword:_,onApiKeyChange:S,onApiChange:C,onBaseUrlChange:E,onModelIdChange:D,onModelsChange:O,onDisplayNameChange:i||e.providerFamily!==void 0?k:void 0,onTogglePassword:A}),(0,$.jsxs)(re,{className:`px-3 py-2`,children:[(0,$.jsx)(l,{}),(0,$.jsx)(ne,{className:`text-xs text-pretty`,children:a.help})]}),(0,$.jsx)(`div`,{className:`flex items-center justify-end`,children:(0,$.jsxs)(q,{type:`button`,size:`compact`,disabled:b||!y,onClick:()=>c(e.id),children:[b?(0,$.jsx)(xe,{"data-icon":`inline-start`}):null,`Save`]})}),N?(0,$.jsx)(Nt,{provider:e}):null]})}):null]},e.id)})})}function Wt({isLoading:e,isPending:t,onRemoveProvider:n,onUpdateProvider:r,providers:i}){let{activeProviders:a,addPickerOpen:o,addPickerQuery:s,api:c,apiKey:l,attemptedSave:u,baseUrl:d,canSave:f,closeAddPicker:p,closeEditor:m,confirmRemoveProvider:h,credentialProviders:g,displayName:_,editingProvider:v,editingUnconfiguredProvider:y,filteredActiveProviders:b,filteredPickerAvailable:x,filteredPickerConfigured:S,handleRemove:C,handleSave:w,modelId:T,models:E,openAddPicker:D,openEditor:O,pickerHasResults:k,searchQuery:A,selectProviderFromPicker:j,setAddPickerQuery:M,setApi:N,setApiKey:P,setBaseUrl:F,setConfirmRemoveProvider:I,setDisplayName:L,setModelId:z,setModels:B,setSearchQuery:V,setShowPassword:H,showPassword:W}=It({onRemoveProvider:n,onUpdateProvider:r,providers:i}),K={api:c,apiKey:l,baseUrl:d,modelId:T,models:E,displayName:_,showPassword:W,attemptedSave:u,canSave:f},J={isPending:t,canRemove:!!n},ee={onApiKeyChange:P,onApiChange:N,onBaseUrlChange:F,onModelIdChange:z,onModelsChange:B,onDisplayNameChange:L,onTogglePassword:()=>H(e=>!e)};return(0,$.jsxs)(U,{title:`Providers`,description:(0,$.jsxs)($.Fragment,{children:[`Provider credentials are stored in Prime Agent’s`,` `,(0,$.jsx)(`code`,{className:`rounded bg-muted px-1 py-0.5 font-mono text-caption text-foreground`,children:`auth.json`}),`. Custom providers and model definitions are stored in models.json. Enabled models and defaults are saved in settings.json, or the existing project settings file.`]}),children:[o?(0,$.jsx)(Rt,{addPickerQuery:s,credentialProvidersLength:g.length,filteredPickerAvailable:x,filteredPickerConfigured:S,pickerHasResults:k,onClose:p,onQueryChange:M,onSelect:j}):y&&jt(y)?(0,$.jsx)(zt,{provider:y,onBack:D},y.id):y?(0,$.jsx)(Bt,{provider:y,api:c,apiKey:l,baseUrl:d,modelId:T,models:E,displayName:_,showPassword:W,attemptedSave:u,isPending:t,canSave:f,onApiKeyChange:P,onApiChange:N,onBaseUrlChange:F,onModelIdChange:z,onModelsChange:B,onDisplayNameChange:L,onTogglePassword:()=>H(e=>!e),onBack:D,onCancel:m,onSave:()=>{v&&w(v)}}):(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsxs)(ve,{className:`flex-1`,children:[(0,$.jsx)(ge,{align:`inline-start`,children:(0,$.jsx)(G,{})}),(0,$.jsx)(he,{type:`text`,placeholder:`Search credentials…`,value:A,onChange:e=>V(e.target.value),"aria-label":`Search credentials`,disabled:e||a.length===0})]}),(0,$.jsxs)(q,{type:`button`,variant:`outline`,size:`compact`,disabled:e||g.length===0,onClick:D,children:[(0,$.jsx)(R,{"data-icon":`inline-start`}),`Add provider`]})]}),e?(0,$.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-6 text-xs text-muted-foreground`,children:[(0,$.jsx)(xe,{className:`size-3`}),(0,$.jsx)(`span`,{children:`Loading…`})]}):a.length===0?(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-8`,children:[(0,$.jsx)(`p`,{className:`text-center text-xs text-pretty text-muted-foreground`,children:`No providers configured`}),(0,$.jsxs)(q,{type:`button`,variant:`outline`,size:`compact`,disabled:g.length===0,onClick:D,children:[(0,$.jsx)(R,{"data-icon":`inline-start`}),`Add provider`]})]}):b.length===0?(0,$.jsx)(`p`,{className:`py-6 text-center text-xs text-pretty text-muted-foreground`,children:`No matching providers found.`}):(0,$.jsx)(Ut,{providers:b,editingProvider:v,form:K,operation:J,actions:ee,onEdit:O,onCancelEdit:m,onSave:e=>void w(e),onRemove:I})]}),(0,$.jsx)(Vt,{confirmRemoveProvider:h,isPending:t,onClose:()=>I(null),onConfirm:e=>{C(e)}})]})}function Gt(e){return{defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,defaultThinkingLevel:e.defaultThinkingLevel,enabledModels:e.enabledModels===void 0?null:$t(e.enabledModels)}}function Kt(e){let t=e.enabledModels,n=t==null?null:$t(t).toSorted();return{defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,defaultThinkingLevel:e.defaultThinkingLevel,enabledModels:n}}function qt(e){return{packages:e.packages,extensions:$t(e.extensions),skills:$t(e.skills),prompts:$t(e.prompts),themes:$t(e.themes),enableSkillCommands:e.enableSkillCommands}}function Jt(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 Yt(e,t){return JSON.stringify(e)===JSON.stringify(t)}function Xt(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 Zt(e){return e.map(e=>typeof e==`string`?e:JSON.stringify(e))}function Qt(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 $t(e){return e.flatMap(e=>{let t=e.trim();return t?[t]:[]})}function en({draft:e,setDraft:t,updateDraft:n,settings:r,providers:i,models:a,modelCatalog:o,onDiscoverModels:s,saveSettings:c,setSavingSection:l}){let[u,d]=(0,Q.useState)(``),[f,p]=(0,Q.useState)({}),[m,h]=(0,Q.useState)(null),g=(0,Q.useRef)(null),_=(0,Q.useMemo)(()=>{let e=new Set;for(let t of i)t.isConfigured&&e.add(t.id);return e},[i]),v=o??a,y=(0,Q.useMemo)(()=>{let t=new Map,n=new Map(v.map(e=>[e.id,e]));for(let n of v)Object.hasOwn(f,n.provider)&&!vt(n,e?.enabledModels)||_.has(n.provider)&&n.available!==!1&&t.set(n.id,n);for(let e of Object.values(f).flat())if(_.has(e.provider)&&e.available!==!1){let r=n.get(e.id);t.set(e.id,r?{...e,...r}:e)}return[...t.values()]},[v,_,f,e?.enabledModels]),b=g.current??(r?Kt(r.effective):null),x=!!e&&!!b&&!Yt(Kt(e),b),S=(0,Q.useCallback)(()=>{g.current=null},[]),C=async(e,n)=>{t(e),l(`models`);try{let r=await c(Gt(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=Kt(i),t(i),n?.silent||Z.success(`Pi settings saved`),!0}catch(e){return Z.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:yt({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=yt({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(n=>({...n,[e]:t}))}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}}var tn=[{value:`auto`,label:`Auto`},{value:`sse`,label:`SSE`},{value:`websocket`,label:`WebSocket`}],nn=[{value:`all`,label:`All`},{value:`one-at-a-time`,label:`One at a time`}];function rn({draft:e,updateDraft:t}){let n=!e;return(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,$.jsx)(V,{title:`Compaction`,subtitle:`Summarize old turns when context fills up`,trailing:(0,$.jsx)(me,{"aria-label":`Compaction`,checked:e?.compaction.enabled??!1,disabled:n,onCheckedChange:e=>t(t=>({...t,compaction:{...t.compaction,enabled:e}}))})}),(0,$.jsx)(V,{title:`Auto-retry`,subtitle:`Retry failed provider requests`,trailing:(0,$.jsx)(me,{"aria-label":`Auto-retry`,checked:e?.retry.enabled??!1,disabled:n,onCheckedChange:e=>t(t=>({...t,retry:{...t.retry,enabled:e}}))})}),(0,$.jsx)(V,{title:`Transport`,trailing:(0,$.jsx)(y,{"aria-label":`Transport`,className:`w-[160px]`,disabled:n,onValueChange:e=>t(t=>({...t,transport:e})),options:[...tn],value:e?.transport??`auto`})}),(0,$.jsx)(V,{title:`Steering`,subtitle:`How queued steers are delivered mid-turn`,trailing:(0,$.jsx)(y,{"aria-label":`Steering`,className:`w-[160px]`,disabled:n,onValueChange:e=>t(t=>({...t,steeringMode:e})),options:[...nn],value:e?.steeringMode??`all`})}),(0,$.jsx)(V,{title:`Follow-up`,subtitle:`How queued follow-ups run after the turn`,trailing:(0,$.jsx)(y,{"aria-label":`Follow-up`,className:`w-[160px]`,disabled:n,onValueChange:e=>t(t=>({...t,followUpMode:e})),options:[...nn],value:e?.followUpMode??`all`})})]})}var an=new Set([`auto`,`global`,`local`,`project`,`workspace`]);function on(e){let t=e.source?.trim();if(t&&!an.has(t))return t;let n=(e.workspacePath??e.path??``).trim();return n?sn(n):e.name.trim()}function sn(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/`)?cn(`../${t}`):t.startsWith(`../agent-workspace/.pi/`)?cn(t.replace(`../agent-workspace/.pi/`,`../agent-workspace/pi/`)):cn(t);let n=t.match(/\/(agent-workspace\/.+)$/);if(n?.[1])return cn(`../${n[1].replace(/^agent-workspace\/\.pi\//,`agent-workspace/pi/`)}`);let r=t.match(/\/\.pi\/(extensions\/.+|skills\/.+|prompts\/.+|themes\/.+)$/);return r?.[1]?cn(r[1]):``}function cn(e){return e.replace(/\/SKILL\.md$/i,``).replace(/\/index\.(ts|tsx|js|jsx|mjs|cjs)$/i,``)}function ln(e,t){let n=sn(t);return e.some(e=>sn(e)===n)}function un(e,t){let n=t.trim();if(!n)return e;let r=sn(n);return!r||ln(e,r)?e:[...e,r]}function dn({addLabel:e,catalog:t,onChange:n,placeholder:r,values:i}){let[a,o]=(0,Q.useState)(``),s=new Set,c=[];for(let e of t){let t=on(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(sn(e)),d=c.filter(e=>!ln(i,e.value)),f=()=>{let e=a.trim();e&&(n(un(i,e)),o(``))};return(0,$.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[i.length===0?(0,$.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,$.jsx)(V,{interactive:!1,title:t??e,subtitle:t&&t!==e?e:void 0,trailing:(0,$.jsx)(q,{type:`button`,variant:`ghost`,size:`icon-compact`,"aria-label":`Remove ${e}`,onClick:()=>n(i.filter(t=>t!==e)),children:(0,$.jsx)(K,{})})},e)}),d.length>0?(0,$.jsx)(y,{"aria-label":e,value:null,placeholder:e,options:d,onValueChange:e=>{e&&n(un(i,e))}}):(0,$.jsxs)(ve,{children:[(0,$.jsx)(he,{"aria-label":e,value:a,onChange:e=>o(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),f())},placeholder:r}),(0,$.jsx)(ge,{align:`inline-end`,children:(0,$.jsxs)(_e,{onClick:f,disabled:!a.trim(),children:[(0,$.jsx)(R,{"data-icon":`inline-start`}),`Add`]})})]})]})}function fn({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,$.jsx)(U,{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,$.jsx)(H,{dirty:d,disabled:v,onRevert:a,onSave:o,saving:m}),children:h===`skills`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(V,{title:`Skill slash commands`,trailing:(0,$.jsx)(me,{"aria-label":`Skill slash commands`,checked:e?.enableSkillCommands??!0,disabled:!e,onCheckedChange:t})}),(0,$.jsx)(pn,{label:`Skills`,count:e?.skills.length??0,children:(0,$.jsx)(dn,{addLabel:`Add skill`,catalog:f?.skills??[],placeholder:`../agent-workspace/pi/skills`,values:e?.skills??[],onChange:s})})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(rn,{draft:e,updateDraft:_}),(0,$.jsx)(V,{interactive:!1,title:`Catalog`,subtitle:(0,$.jsx)(`span`,{className:`tabular-nums`,children:y})}),(0,$.jsxs)(pn,{label:`Packages`,count:u.length,children:[(0,$.jsx)(dn,{addLabel:`Add package`,catalog:f?.packages??[],placeholder:`npm:pi-skills or {"source":"npm:pkg"}`,values:u,onChange:r}),l?(0,$.jsx)(`p`,{className:`px-1 text-xs text-destructive`,children:l}):null]}),(0,$.jsx)(pn,{label:`Extensions`,count:e?.extensions.length??0,children:(0,$.jsx)(dn,{addLabel:`Add extension`,catalog:f?.extensions??[],placeholder:`../agent-workspace/pi/extensions`,values:e?.extensions??[],onChange:n})}),(0,$.jsx)(pn,{label:`Prompts`,count:e?.prompts.length??0,children:(0,$.jsx)(dn,{addLabel:`Add prompt`,catalog:f?.prompts??[],placeholder:`../agent-workspace/pi/prompts`,values:e?.prompts??[],onChange:i})}),(0,$.jsx)(pn,{label:`Themes`,count:e?.themes.length??0,children:(0,$.jsx)(dn,{addLabel:`Add theme`,catalog:f?.themes??[],placeholder:`../agent-workspace/pi/themes`,values:e?.themes??[],onChange:c})})]})})}function pn({children:e,count:t,label:n}){return(0,$.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,$.jsxs)(`div`,{className:`flex items-baseline justify-between gap-2 px-1`,children:[(0,$.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground`,children:n}),(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground tabular-nums`,children:t===1?`1 item`:`${t} items`})]}),e]})}function mn({isLoading:e,isPending:t,onUpdateProvider:n,providers:i}){let[a,o]=(0,Q.useState)(!1),[s,c]=(0,Q.useState)(``),[u,d]=(0,Q.useState)(``),[f,p]=(0,Q.useState)(!1),[m,h]=(0,Q.useState)(!1),g=(0,Q.useMemo)(()=>i.find(e=>e.id===`daytona`),[i]),_=(0,Q.useMemo)(()=>i.find(e=>e.id===`daytona-target`),[i]),v=!!(g?.isConfigured&&_?.isConfigured),y=()=>{c(``),d(``),p(!1),h(!1)},b=()=>{o(!1),y()},x=async()=>{if(n&&(h(!0),!(!s.trim()&&!u.trim())))try{s.trim()&&await n({providerId:`daytona`,apiKey:s.trim()}),u.trim()&&await n({providerId:`daytona-target`,apiKey:u.trim()}),Z.success(`Sandbox provider updated`),b()}catch(e){Z.error(e instanceof Error?e.message:`Failed to update provider`)}},S=s.trim().length>0||u.trim().length>0;return(0,$.jsx)(U,{title:`Sandbox`,description:`Configure isolated execution environments.`,children:e?(0,$.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-6 text-xs text-muted-foreground`,children:[(0,$.jsx)(xe,{}),(0,$.jsx)(`span`,{children:`Loading…`})]}):(0,$.jsxs)(`div`,{className:`flex flex-col`,children:[(0,$.jsx)(V,{interactive:!1,icon:(0,$.jsx)(j,{className:`size-4 text-foreground/80`}),title:`Daytona`,subtitle:`DAYTONA_API_KEY · DAYTONA_TARGET`,trailing:(0,$.jsx)(q,{type:`button`,variant:`ghost`,size:`compact`,className:r(be,`h-7 px-2 text-xs transition-[background-color,transform] duration-150 active:scale-[0.96]`),onClick:()=>{if(a){b();return}o(!0),y()},children:a?`Cancel`:v?`Update`:`Configure`})}),a?(0,$.jsxs)(B,{tone:`inset`,padding:`md`,className:`flex flex-col gap-2 border-t border-border/30`,children:[(0,$.jsxs)(de,{className:`gap-2`,children:[(0,$.jsx)(ut,{attemptedSave:m,label:`Daytona API key`,placeholder:`Enter Daytona API Key…`,value:s,showPassword:f,required:!1,onChange:c,onToggleVisibility:()=>p(e=>!e)}),(0,$.jsx)(dt,{attemptedSave:m,icon:k,label:`Region / target`,placeholder:`e.g. us-east`,value:u,required:!1,onChange:d})]}),(0,$.jsxs)(re,{className:`px-3 py-2`,children:[(0,$.jsx)(l,{}),(0,$.jsx)(ne,{className:`text-xs text-pretty`,children:`Settings are stored securely in your local environment overrides. Provide at least one value to save.`})]}),(0,$.jsx)(`div`,{className:`flex items-center justify-end`,children:(0,$.jsxs)(q,{type:`button`,size:`compact`,disabled:t||!S,onClick:()=>void x(),children:[t?(0,$.jsx)(xe,{"data-icon":`inline-start`}):null,`Save`]})})]}):null]})})}var hn={appearance:{id:`appearance`,order:10,title:`Appearance`,ariaLabel:`Appearance settings`,icon:Ke,group:`workspace`},chat:{id:`chat`,order:20,title:`Chat`,ariaLabel:`Chat settings`,icon:We,group:`workspace`},mcp:{id:`mcp`,order:25,title:`MCP`,ariaLabel:`MCP connection settings`,icon:L,group:`workspace`},sandbox:{id:`sandbox`,order:30,title:`Sandbox`,ariaLabel:`Sandbox settings`,icon:j,group:`advanced`},providers:{id:`providers`,order:40,title:`Providers`,ariaLabel:`Provider settings`,icon:Re,group:`models`},"llm-models":{id:`llm-models`,order:50,title:`LLM Models`,ariaLabel:`LLM model settings`,icon:S,group:`models`},skills:{id:`skills`,order:60,title:`Skills`,ariaLabel:`Skill settings`,icon:A,group:`advanced`},"pi-harness":{id:`pi-harness`,order:70,title:`Pi Harness`,ariaLabel:`Pi harness settings`,icon:C,group:`advanced`},keybindings:{id:`keybindings`,order:80,title:`Keybindings`,ariaLabel:`Keybinding settings`,icon:M,group:`advanced`},sessions:{id:`sessions`,order:90,title:`Sessions`,ariaLabel:`Session settings`,icon:Qe,group:`workspace`}},gn=[{id:`workspace`,label:`Workspace`},{id:`models`,label:`Models`},{id:`advanced`,label:`Advanced`}],_n=Object.values(hn).sort((e,t)=>e.order-t.order);function vn(e){return _n.some(t=>t.id===e)}function yn({draft:e,settings:t,updateDraft:n}){let[r,i]=(0,Q.useState)(null),[a,o]=(0,Q.useState)(),s=(0,Q.useMemo)(()=>Zt(t?.effective.packages??[]),[t?.effective.packages]),c=r??s;return{packageRows:c,packageError:a,resourceDirty:!!e&&!!t&&(!Yt(qt(e),qt(t.effective))||!Yt(Jt(e),Jt(t.effective))||!Yt(c.filter(e=>e.trim()),Zt(t.effective.packages))),handlePackageRowsChange:e=>{i(e);try{let t=Qt(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))}}}function bn({className:e,...t}){return(0,$.jsx)(`nav`,{"aria-label":`breadcrumb`,"data-slot":`breadcrumb`,className:r(e),...t})}function xn({className:e,...t}){return(0,$.jsx)(`ol`,{"data-slot":`breadcrumb-list`,className:r(`flex flex-wrap items-center gap-1.5 text-sm wrap-break-word text-muted-foreground`,e),...t})}function Sn({className:e,...t}){return(0,$.jsx)(`li`,{"data-slot":`breadcrumb-item`,className:r(`inline-flex items-center gap-1`,e),...t})}function Cn({className:e,...t}){return(0,$.jsx)(`span`,{"data-slot":`breadcrumb-page`,"aria-current":`page`,className:r(`font-normal text-foreground`,e),...t})}function wn({children:e,className:t,...n}){return(0,$.jsx)(`li`,{"data-slot":`breadcrumb-separator`,role:`presentation`,"aria-hidden":`true`,className:r(`[&>svg]:size-3.5`,t),...n,children:e??(0,$.jsx)(D,{})})}var Tn=Q.createContext(void 0);function En(){let e=Q.useContext(Tn);if(e===void 0)throw Error(s(53));return e}function Dn(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 On=`data-has-overflow-x`,kn=`data-has-overflow-y`,An=`data-overflow-x-start`,jn=`data-overflow-x-end`,Mn=`data-overflow-y-start`,Nn=`data-overflow-y-end`,Pn=e=>t=>t?{[e]:``}:null,Fn={hasOverflowX:Pn(On),hasOverflowY:Pn(kn),overflowXStart:Pn(An),overflowXEnd:Pn(jn),overflowYStart:Pn(Mn),overflowYEnd:Pn(Nn),cornerHidden:()=>null},In=`--scroll-area-corner-height`,Ln=`--scroll-area-corner-width`,Rn=`data-orientation`,zn={x:0,y:0},Bn={width:0,height:0},Vn={xStart:!1,xEnd:!1,yStart:!1,yEnd:!1},Hn={x:!0,y:!0,corner:!0},Un=Q.forwardRef(function(e,t){let{render:n,className:r,overflowEdgeThreshold:i,style:s,...c}=e,{xStart:l,xEnd:d,yStart:f,yEnd:m}=Wn(i),g=b(),_=p(),y=p(),{nonce:x,disableStyleElements:S}=v(),[C,w]=Q.useState(!1),[T,E]=Q.useState(!1),[D,O]=Q.useState(!1),[k,A]=Q.useState(!1),[j,M]=Q.useState(!1),[N,P]=Q.useState(Bn),[F,I]=Q.useState(Bn),[L,R]=Q.useState(Vn),[z,B]=Q.useState(Hn),V=Q.useRef(null),H=Q.useRef(null),U=Q.useRef(null),W=Q.useRef(null),G=Q.useRef(null),K=Q.useRef(null),q=Q.useRef(null),J=Q.useRef(null),ee=Q.useRef(0),te=Q.useRef(0),ne=Q.useRef(0),re=Q.useRef(0),Y=Q.useRef(`vertical`),ie=Q.useRef(zn),X=Q.useRef(null);function ae(e){let t=e?O:E,n=e?_:y;t(!0),n.start(500,()=>{t(!1)})}let oe=a(e=>{let t=e.x-ie.current.x,n=e.y-ie.current.y;ie.current=e,n!==0&&ae(!0),t!==0&&ae(!1)}),se=a(()=>{let e=H.current;e&&X.current===null&&(X.current=e.style.scrollSnapType,e.style.scrollSnapType=`none`)}),ce=a(e=>{if(e.button!==0||J.current!==null&&(Y.current===`vertical`?G.current:K.current)?.hasPointerCapture(J.current))return;J.current=e.pointerId,ee.current=e.clientY,te.current=e.clientX,Y.current=e.currentTarget.getAttribute(Rn);let t=H.current;t&&(ne.current=t.scrollTop,re.current=t.scrollLeft,se()),(Y.current===`vertical`?G.current:K.current)?.setPointerCapture(e.pointerId)}),le=a(e=>{if(e.pointerId!==J.current)return;J.current=null,(Y.current===`vertical`?O:E)(!1),X.current!==null&&(H.current&&(H.current.style.scrollSnapType=X.current),X.current=null);let t=Y.current===`vertical`?G.current:K.current;t?.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId)}),ue=a(e=>{if(e.pointerId!==J.current)return;if(e.buttons%2==0){le(e);return}let t=H.current;if(!t)return;let n=Y.current===`vertical`,r=n?G.current:K.current,i=n?U.current:W.current;if(!r||!i)return;let a=n?`y`:`x`,o=Dn(i,`padding`,a),s=Dn(r,`margin`,a),c=n?r.offsetHeight:r.offsetWidth,l=(n?i.offsetHeight:i.offsetWidth)-c-o-s,u=n?e.clientY-ee.current:e.clientX-te.current,d=l<=0?0:u/l,f=n?t.scrollHeight:t.scrollWidth,p=n?t.clientHeight:t.clientWidth,m=(n?ne.current:re.current)+d*(f-p);n?t.scrollTop=m:t.scrollLeft=m,e.preventDefault(),ae(n)});function de(e){A(e.pointerType===`touch`)}function fe(e){if(de(e),e.pointerType!==`touch`){let t=u(V.current,e.target);w(t)}}let pe=Q.useMemo(()=>({scrolling:T||D,hasOverflowX:!z.x,hasOverflowY:!z.y,overflowXStart:L.xStart,overflowXEnd:L.xEnd,overflowYStart:L.yStart,overflowYEnd:L.yEnd,cornerHidden:z.corner}),[T,D,z.x,z.y,z.corner,L]),me={role:`presentation`,onPointerEnter:fe,onPointerMove:fe,onPointerDown:de,onPointerLeave(){w(!1)},style:{position:`relative`,[In]:`${N.height}px`,[Ln]:`${N.width}px`}},he=o(`div`,e,{state:pe,ref:[t,V],props:[me,c],stateAttributesMapping:Fn}),ge=Q.useMemo(()=>({handlePointerDown:ce,handlePointerMove:ue,handlePointerUp:le,handleScroll:oe,disableViewportSnap:se,cornerSize:N,setCornerSize:P,thumbSize:F,setThumbSize:I,hasMeasuredScrollbar:j,setHasMeasuredScrollbar:M,touchModality:k,cornerRef:q,scrollingX:T,scrollingY:D,hovering:C,setHovering:w,viewportRef:H,scrollbarYRef:U,scrollbarXRef:W,thumbYRef:G,thumbXRef:K,rootId:g,hiddenState:z,setHiddenState:B,overflowEdges:L,setOverflowEdges:R,viewportState:pe,overflowEdgeThreshold:{xStart:l,xEnd:d,yStart:f,yEnd:m}}),[ce,ue,le,oe,se,N,F,j,k,T,D,C,g,z,L,pe,l,d,f,m]);return(0,$.jsxs)(Tn.Provider,{value:ge,children:[!S&&h.getElement(x),he]})});function Wn(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 Gn=Q.createContext(void 0);function Kn(){let e=Q.useContext(Gn);if(e===void 0)throw Error(s(55));return e}var qn=`--scroll-area-overflow-x-start`,Jn=`--scroll-area-overflow-x-end`,Yn=`--scroll-area-overflow-y-start`,Xn=`--scroll-area-overflow-y-end`,Zn=`--scroll-area-thumb-height`,Qn=`--scroll-area-thumb-width`,$n=[qn,Jn,Yn,Xn],er=!1;function tr(){er||d||(typeof CSS<`u`&&`registerProperty`in CSS&&$n.forEach(e=>{try{CSS.registerProperty({name:e,syntax:`<length>`,inherits:!1,initialValue:`0px`})}catch{}}),er=!0)}var nr=Q.forwardRef(function(e,t){let{render:n,className:r,style:s,...c}=e,{viewportRef:l,scrollbarYRef:u,scrollbarXRef:d,thumbYRef:f,thumbXRef:m,cornerRef:v,cornerSize:y,setCornerSize:b,setThumbSize:x,rootId:S,setHiddenState:C,hiddenState:w,setHasMeasuredScrollbar:T,handleScroll:E,touchModality:D,setHovering:O,setOverflowEdges:k,overflowEdgeThreshold:A,viewportState:j}=En(),M=_(),N=Q.useRef(!0),P=Q.useRef([NaN,NaN,NaN,NaN]),F=p(),I=p(),L=a(()=>{let e=l.current,t=u.current,n=d.current,r=f.current,i=m.current,a=v.current;if(!e)return;let o=e.scrollHeight,s=e.scrollWidth,c=e.clientHeight,p=e.clientWidth,h=e.scrollTop,_=e.scrollLeft,S=P.current,w=Number.isNaN(S[0]);if(S[0]=c,S[1]=o,S[2]=p,S[3]=s,w&&T(!0),o===0||s===0)return;let E=rr(e),D=E.y,O=E.x,j=p/s,N=c/o,F=Math.max(0,s-p),I=Math.max(0,o-c),L=0,R=0;O||(L=g(M===`rtl`?-_:_,F),R=F-L);let z=D?0:g(h,I),B=D?0:I-z,V=O?0:p,H=D?0:c,U=0,W=0;!O&&!D&&(U=t?.offsetWidth||0,W=n?.offsetHeight||0);let G=y.width===0&&y.height===0,K=G?U:0,q=G?W:0,J=Dn(n,`padding`,`x`),ee=Dn(t,`padding`,`y`),te=Dn(i,`margin`,`x`),ne=Dn(r,`margin`,`y`),re=V-J-te,Y=H-ee-ne,ie=n?Math.min(n.offsetWidth-K,re):re,X=t?Math.min(t.offsetHeight-q,Y):Y,ae=Math.max(16,ie*j),oe=Math.max(16,X*N);if(x(e=>ir(e,{width:ae,height:oe})),t&&r){let e=ar(r,Zn,h,I,o,oe,t.offsetHeight-oe-ee-ne);r.style.transform=`translate3d(0,${e}px,0)`}if(n&&i){let e=n.offsetWidth-ae-J-te,t=ar(i,Qn,M===`rtl`?-_:_,F,s,ae,e);i.style.transform=`translate3d(${M===`rtl`?-t:t}px,0,0)`}let se=[L,R,z,B];$n.forEach((t,n)=>{e.style.setProperty(t,`${se[n]}px`)}),a&&b(e=>ir(e,{width:U,height:W})),C(e=>ir(e,E));let ce={xStart:!O&&L>A.xStart,xEnd:!O&&R>A.xEnd,yStart:!D&&z>A.yStart,yEnd:!D&&B>A.yEnd};k(e=>ir(e,ce))});i(()=>{tr()},[]),i(()=>{queueMicrotask(L)},[L,w,M,A.xStart,A.xEnd,A.yStart,A.yEnd]),i(()=>{l.current?.matches(`:hover`)&&O(!0)},[l,O]),i(()=>{let e=l.current;if(typeof ResizeObserver>`u`||!e)return;let t=!1,n=new ResizeObserver(()=>{if(!t){t=!0;let n=P.current;if(n[0]===e.clientHeight&&n[1]===e.scrollHeight&&n[2]===e.clientWidth&&n[3]===e.scrollWidth)return}L()});return n.observe(e),I.start(0,()=>{let t=e.getAnimations({subtree:!0});t.length!==0&&Promise.allSettled(t.map(e=>e.finished)).then(L).catch(()=>{})}),()=>{n.disconnect(),I.clear()}},[L,l,I]);function R(){N.current=!1}let z={role:`presentation`,...S&&{"data-id":`${S}-viewport`},tabIndex:w.x&&w.y?-1:0,className:h.className,style:{overflow:`scroll`},onScroll(){l.current&&(L(),(D||!N.current)&&E({x:l.current.scrollLeft,y:l.current.scrollTop}),F.start(100,()=>{N.current=!0}))},onWheel:R,onPointerMove:R,onPointerEnter:R,onKeyDown:R},B=o(`div`,e,{ref:[t,l],state:j,props:[z,c],stateAttributesMapping:Fn}),V=Q.useMemo(()=>({computeThumbPosition:L}),[L]);return(0,$.jsx)(Gn.Provider,{value:V,children:B})});function rr(e){let t=e.clientHeight>=e.scrollHeight,n=e.clientWidth>=e.scrollWidth;return{y:t,x:n,corner:t||n}}function ir(e,t){for(let n in t)if(e[n]!==t[n])return t;return e}function ar(e,t,n,r,i,a,o){let s=m(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 or=Q.createContext(void 0);function sr(){let e=Q.useContext(or);if(e===void 0)throw Error(s(54));return e}var cr=Q.forwardRef(function(e,t){let{render:n,className:r,orientation:i=`vertical`,keepMounted:a=!1,style:s,...l}=e,{hovering:d,scrollingX:p,scrollingY:m,hiddenState:h,scrollbarYRef:g,scrollbarXRef:v,viewportRef:y,thumbYRef:b,thumbXRef:x,handlePointerDown:S,handlePointerUp:C,handleScroll:w,disableViewportSnap:T,rootId:E,thumbSize:D,hasMeasuredScrollbar:O,viewportState:k}=En(),A=i===`vertical`,j={...k,hovering:d,scrolling:A?m:p,orientation:i},M=_(),N=!O&&!a,P=A?h.y:h.x,F=a||!P;Q.useEffect(()=>{if(!F)return;let e=y.current,t=A?g.current:v.current;if(!t)return;function n(t){if(!e||t.ctrlKey)return;let n=!A,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&&M===`rtl`?-a:0,s=n&&M===`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)),w({x:e.scrollLeft,y:e.scrollTop}))}return c(t,`wheel`,n,{passive:!1})},[M,w,A,v,g,F,y]);let I={...E&&{"data-id":`${E}-scrollbar`},"aria-hidden":!0,onPointerDown(e){if(e.button!==0)return;let t=f(e.nativeEvent),n=A?b.current:x.current;if(n&&u(n,t))return;let r=y.current;if(!r)return;let i=A?g.current:v.current;if(!n||!i)return;let a=A?`y`:`x`,o=Dn(n,`margin`,a),s=Dn(i,`padding`,a),c=A?n.offsetHeight:n.offsetWidth,l=i.getBoundingClientRect(),d=A?e.clientY-l.top-c/2-s+o/2:e.clientX-l.left-c/2-s+o/2,p=A?r.scrollHeight:r.scrollWidth,m=A?r.clientHeight:r.clientWidth,h=(A?i.offsetHeight:i.offsetWidth)-c-s-o;if(h<=0)return;let _=d/h,C=p-m;T(),A?r.scrollTop=_*C:r.scrollLeft=M===`rtl`?-(1-_)*C:_*C,w({x:r.scrollLeft,y:r.scrollTop}),S(e)},onMouseDown(e){e.preventDefault()},onPointerUp:C,onPointerCancel:C,style:{position:`absolute`,touchAction:`none`,WebkitUserSelect:`none`,userSelect:`none`,visibility:N?`hidden`:void 0,...A?{top:0,bottom:`var(${In})`,insetInlineEnd:0,[Zn]:`${D.height}px`}:{insetInlineStart:0,insetInlineEnd:`var(${Ln})`,bottom:0,[Qn]:`${D.width}px`}}},L=o(`div`,e,{ref:[t,A?g:v],state:j,props:[I,l],stateAttributesMapping:Fn});return F?(0,$.jsx)(or.Provider,{value:i,children:L}):null}),lr=Q.forwardRef(function(e,t){let{render:n,className:r,style:a,...s}=e,{computeThumbPosition:c}=Kn(),{hasMeasuredScrollbar:l,viewportState:u}=En(),d=Q.useRef(null),f=Q.useRef(l);return i(()=>{if(typeof ResizeObserver>`u`)return;let e=!1,t=new ResizeObserver(()=>{!e&&(e=!0,!f.current)||c()});return d.current&&t.observe(d.current),()=>{t.disconnect()}},[c]),o(`div`,e,{ref:[t,d],state:u,stateAttributesMapping:Fn,props:[{role:`presentation`,style:{minWidth:`fit-content`}},s]})}),ur=Q.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,{thumbYRef:s,thumbXRef:c,handlePointerDown:l,handlePointerMove:u,handlePointerUp:d,scrollingX:f,scrollingY:p,hasMeasuredScrollbar:m}=En(),h=sr(),g=h===`vertical`;return o(`div`,e,{ref:[t,g?s:c],state:{scrolling:g?p:f,orientation:h},props:[{onPointerDown:l,onPointerMove:u,onPointerUp:d,onPointerCancel:d,style:{visibility:m?void 0:`hidden`,...g?{height:`var(--scroll-area-thumb-height)`}:{width:`var(--scroll-area-thumb-width)`}}},a]})}),dr=Q.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,{cornerRef:s,cornerSize:c,hiddenState:l}=En(),u=o(`div`,e,{ref:[t,s],props:[{"aria-hidden":!0,style:{position:`absolute`,bottom:0,insetInlineEnd:0,width:c.width,height:c.height}},a]});return l.corner?null:u});function fr(){let[e,t]=(0,Q.useState)(!1);return(0,Q.useEffect)(()=>{if(typeof window>`u`)return;let e=new AbortController,{signal:n}=e,r=()=>{let e=`ontouchstart`in window||navigator.maxTouchPoints>0,n=window.matchMedia(`(pointer: coarse)`).matches;t(e&&n)};return window.matchMedia(`(pointer: coarse)`).addEventListener(`change`,r,{signal:n}),window.addEventListener(`pointerdown`,r,{signal:n}),r(),()=>e.abort()},[]),e}var pr=(0,Q.createContext)(!1),mr=(0,Q.forwardRef)(({className:e,children:t,viewportClassName:n,orientation:i=`vertical`,...a},o)=>{let s=fr();return(0,$.jsx)(pr.Provider,{value:s,children:s?(0,$.jsx)(`div`,{ref:o,role:`group`,"data-slot":`scroll-area`,"aria-roledescription":`scroll area`,className:r(`relative overflow-hidden`,e),...a,children:(0,$.jsx)(`div`,{"data-slot":`scroll-area-viewport`,className:r(`size-full overscroll-contain rounded-[inherit]`,i===`vertical`&&`overflow-y-auto`,i===`horizontal`&&`overflow-x-auto`,i===`both`&&`overflow-auto`,n),tabIndex:0,children:t})}):(0,$.jsxs)(Un,{ref:o,"data-slot":`scroll-area`,className:r(`relative overflow-hidden`,e),...a,children:[(0,$.jsx)(nr,{"data-slot":`scroll-area-viewport`,className:r(`size-full rounded-[inherit]`,n),children:(0,$.jsx)(lr,{className:r(i===`vertical`&&`block! w-full min-w-0! max-w-full`),children:t})}),i!==`horizontal`&&(0,$.jsx)(hr,{orientation:`vertical`}),i!==`vertical`&&(0,$.jsx)(hr,{orientation:`horizontal`}),i===`both`&&(0,$.jsx)(dr,{})]})})});mr.displayName=`ScrollArea`;var hr=(0,Q.forwardRef)(({className:e,orientation:t=`vertical`,...n},i)=>(0,Q.useContext)(pr)?null:(0,$.jsx)(cr,{ref:i,orientation:t,"data-slot":`scroll-area-scrollbar`,className:r(`group/scrollbar absolute z-20 flex touch-none select-none`,`opacity-0 transition-opacity duration-120 ease-out delay-160`,`data-[hovering]:duration-160 data-[scrolling]:duration-160`,`data-[hovering]:opacity-100 data-[scrolling]:opacity-100`,`data-[hovering]:delay-0 data-[scrolling]:delay-0`,t===`vertical`&&`top-0 right-0 h-full w-2.5`,t===`horizontal`&&`bottom-0 left-0 h-2.5 w-full flex-col`,e),...n,children:(0,$.jsx)(ur,{"data-slot":`scroll-area-thumb`,className:r(`relative rounded-lg bg-[rgb(var(--overlay)/0.08)] transition-[background-color,width,height] duration-160 ease-in-out`,`group-hover/scrollbar:bg-[rgb(var(--overlay)/0.12)] active:!bg-[rgb(var(--overlay)/0.16)]`,t===`vertical`&&`mx-auto my-1 w-1 -translate-x-0.5 h-[var(--scroll-area-thumb-height)] group-hover/scrollbar:w-1.5`,t===`horizontal`&&`my-auto mx-1 h-1 -translate-y-0.5 w-[var(--scroll-area-thumb-width)] group-hover/scrollbar:h-1.5`)})}));hr.displayName=`ScrollBar`;function gr(){let{isLoadingMcp:e,isLoadingProviders:t,isUpdatingMcp:n,isUpdatingProvider:r,mcpConnections:i=[],modelCatalog:a,onDiscoverModels:o,onMcpOAuth:s,onRemoveMcp:c,onRemoveProvider:l,onThemePreferenceChange:u,onUpdateMcp:d,onUpdateProvider:f,providers:p=[],saveSettings:m,settings:h,settingsLoading:g,themePreference:_}=Ce(),{models:v,resources:y}=Se(),[b,x]=(0,Q.useState)(null),[S,C]=(0,Q.useState)(null),w=(0,Q.useRef)(void 0),T=Xt(y),E=e=>{x(t=>t&&e(t))},{packageRows:D,packageError:O,resourceDirty:k,handlePackageRowsChange:A,revertResourceDraft:j}=yn({draft:b,settings:h,updateDraft:E}),{modelFilter:M,setModelFilter:N,modelOptions:P,modelDirty:F,addModels:I,removeModel:L,setDefaultModel:R,discoverProvider:z,discoveringProviderId:B,commitModelSettings:V,revertModelDraft:H,resetCommittedModelBaseline:U}=en({draft:b,setDraft:x,updateDraft:E,settings:h,providers:p,models:v,modelCatalog:a,onDiscoverModels:o,saveSettings:m,setSavingSection:C}),W=F||k;return(0,Q.useEffect)(()=>{if(!h||w.current===h)return;let e=h.effective;b&&W||(w.current=h,!(b&&Yt(b,e))&&x(e))},[b,W,h]),{isLoadingMcp:e,isLoadingProviders:t,isUpdatingMcp:n,isUpdatingProvider:r,mcpConnections:i,onMcpOAuth:s,onRemoveMcp:c,onRemoveProvider:l,onThemePreferenceChange:u,onUpdateMcp:d,onUpdateProvider:f,providers:p,resources:y,settingsLoading:g,themePreference:_,draft:b,savingSection:S,packageRows:D,packageError:O,modelFilter:M,setModelFilter:N,resourceSummary:T,modelOptions:P,modelDirty:F,resourceDirty:k,revertResourceDraft:j,revertModelDraft:H,resetDraft:()=>{h&&x(h.effective)},updateDraft:E,handlePackageRowsChange:A,addModels:I,removeModel:L,setDefaultModel:R,discoverProvider:z,discoveringProviderId:B,saveSection:async(e,t)=>{if(e===`models`&&b){if(!await V(b))throw Error(`Settings save failed`);return}C(e);try{await m(t),Z.success(`Pi settings saved`)}catch(e){throw Z.error(e instanceof Error?e.message:`Settings save failed`),e}finally{C(null)}},requestCloseSettings:async()=>S===`models`?`wait`:k?`discard-prompt`:F&&b?await V(b,{silent:!0})?`close`:`discard-prompt`:`close`,resetCommittedModelBaseline:U}}function _r({active:e,onClick:t,icon:n,label:i}){return(0,$.jsxs)(`button`,{type:`button`,onClick:t,className:r(`flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-left text-label transition-colors`,e?`bg-background text-foreground shadow-sm`:`text-muted-foreground hover:bg-muted hover:text-foreground`),children:[(0,$.jsx)(n,{className:`size-4 shrink-0`}),(0,$.jsx)(`span`,{children:i})]})}function vr({open:e,onOpenChange:t,initialTab:n}){return(0,Q.useEffect)(()=>{ee(te())},[]),(0,$.jsx)(yr,{initialTab:n,onOpenChange:t,open:e})}function yr({initialTab:e,onOpenChange:t,open:n}){let r=(0,Q.useRef)(()=>{t(!1)});return(0,$.jsx)(le,{open:n,onOpenChange:(e,n)=>{if(e){t(!0);return}r.current(n)},children:n?(0,$.jsx)(xr,{initialTab:e,onCloseAttemptRef:r,onOpenChange:t}):null})}function br({activeTab:e,composerIntent:t,form:n,onComposerIntentChange:r,onComposerIntentKeyChange:i,preferences:a,updatePreference:o}){let{isLoadingMcp:s,isLoadingProviders:c,isUpdatingMcp:l,isUpdatingProvider:u,mcpConnections:d,onMcpOAuth:f,onRemoveMcp:p,onRemoveProvider:m,onThemePreferenceChange:h,onUpdateMcp:g,onUpdateProvider:_,providers:v,resources:b,settingsLoading:x,themePreference:S,draft:C,savingSection:w,packageRows:T,packageError:E,modelFilter:D,setModelFilter:O,resourceSummary:k,modelOptions:A,modelDirty:j,resourceDirty:M,revertResourceDraft:N,revertModelDraft:P,updateDraft:F,handlePackageRowsChange:I,addModels:L,removeModel:R,setDefaultModel:z,discoverProvider:B,discoveringProviderId:V,saveSection:H}=n,U=e=>(0,$.jsx)(fn,{scope:e,draft:C,updateDraft:F,onEnableSkillCommandsChange:e=>F(t=>({...t,enableSkillCommands:e})),onExtensionsChange:e=>F(t=>({...t,extensions:e})),onPackageRowsChange:I,onPromptsChange:e=>F(t=>({...t,prompts:e})),onRevert:N,onSave:()=>C&&H(`resources`,{...qt(C),...e===`harness`?Jt(C):{}}),onSkillsChange:e=>F(t=>({...t,skills:e})),onThemesChange:e=>F(t=>({...t,themes:e})),packageError:E,packageRows:T,resourceDirty:M,resources:b,resourceSummary:k,saving:w===`resources`,settingsLoading:x});return{appearance:()=>(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h3`,{className:`text-lg font-medium`,children:`Appearance`}),(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Customize the look and feel of the interface.`})]}),(0,$.jsx)(_t,{onThemePreferenceChange:h,themePreference:S}),(0,$.jsx)(ft,{label:`Density`,description:`Adjust spacing across chat and panels.`,children:(0,$.jsx)(y,{"aria-label":`Density`,value:a.density,onValueChange:e=>o(`density`,e),options:[{label:`Comfortable`,value:`comfortable`},{label:`Compact`,value:`compact`}]})}),(0,$.jsx)(ft,{label:`Motion`,description:`Respect the system setting or reduce UI motion.`,children:(0,$.jsx)(y,{"aria-label":`Motion`,value:a.motion,onValueChange:e=>o(`motion`,e),options:[{label:`System`,value:`system`},{label:`Reduced`,value:`reduced`}]})})]}),chat:()=>(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h3`,{className:`text-lg font-medium`,children:`Chat`}),(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Control transcript behavior.`})]}),(0,$.jsx)(ft,{label:`Streaming transcript`,description:`Follow new output or preserve the reading position.`,children:(0,$.jsx)(y,{"aria-label":`Streaming transcript`,value:a.transcript,onValueChange:e=>o(`transcript`,e),options:[{label:`Follow output`,value:`follow`},{label:`Manual`,value:`manual`}]})}),(0,$.jsx)(ht,{enabled:t?.enabled??!1,keySource:t?.keySource??`none`,status:t?.status??`unconfigured`,onClearKey:()=>i?.(null),onEnabledChange:r,onSaveKey:e=>i?.(e)})]}),mcp:()=>(0,$.jsx)(W,{connections:d,isLoading:s??!1,isPending:l??!1,onOAuth:f,onRemove:p,onUpsert:g}),sandbox:()=>(0,$.jsx)(mn,{isLoading:c??!1,isPending:u??!1,providers:v,onUpdateProvider:_}),providers:()=>(0,$.jsx)(Wt,{isLoading:c??!1,isPending:u??!1,providers:v,onRemoveProvider:m,onUpdateProvider:_}),"llm-models":()=>(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Saving writes the same settings file Prime Agent reads. If you change these settings in the Prime Agent terminal at the same moment, the later save wins.`}),(0,$.jsx)(Ct,{draft:C,discoveringProviderId:V,modelDirty:j,modelFilter:D,modelOptions:A,onAddModels:L,onDiscoverProvider:B,onModelFilterChange:O,onRemoveModel:R,onSetDefaultModel:z,providers:v,onRevert:P,onSave:()=>C&&H(`models`,Gt(C)),saving:w===`models`,settingsLoading:x})]}),skills:()=>U(`skills`),"pi-harness":()=>U(`harness`),keybindings:()=>(0,$.jsxs)(`div`,{className:`flex flex-col gap-4 text-sm`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h3`,{className:`text-lg font-medium`,children:`Keybindings`}),(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Every shortcut also has a visible control in the header, panel, or composer.`})]}),(0,$.jsxs)(`div`,{className:`rounded-xl border p-4 font-mono text-xs leading-7`,children:[(0,$.jsx)(`div`,{children:`Command palette: Ctrl/Command K`}),(0,$.jsx)(`div`,{children:`Conversation sidebar: Ctrl/Command B`}),(0,$.jsx)(`div`,{children:`Toggle Resources: Ctrl/Command Shift 1`}),(0,$.jsx)(`div`,{children:`Toggle Workspace: Ctrl/Command Shift 2`}),(0,$.jsx)(`div`,{children:`Toggle Artifacts: Ctrl/Command Shift 3`}),(0,$.jsx)(`div`,{children:`Focus active panel: Ctrl/Command Shift P`}),(0,$.jsx)(`div`,{children:`Return focus to chat: Ctrl/Command Shift C`}),(0,$.jsx)(`div`,{children:`Close active panel: Escape`})]})]}),sessions:()=>(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h3`,{className:`text-lg font-medium`,children:`Sessions`}),(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Set local conversation preferences. Provider and workspace configuration remains Fleet Prime-owned.`})]}),(0,$.jsx)(ft,{label:`Confirm session deletion`,description:`Require confirmation before deleting a saved conversation.`,children:(0,$.jsx)(me,{checked:a.confirmSessionDelete,onCheckedChange:e=>o(`confirmSessionDelete`,e),"aria-label":`Confirm session deletion`})}),(0,$.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 xr({initialTab:e,onCloseAttemptRef:t,onOpenChange:n}){let r=gr(),{composerIntent:i,onComposerIntentChange:a,onComposerIntentKeyChange:o}=Ce(),{resourceDirty:s,revertResourceDraft:c,resetDraft:l,requestCloseSettings:u,resetCommittedModelBaseline:d}=r,[f,p]=(0,Q.useState)(()=>e??`appearance`),[m,h]=(0,Q.useState)(te);(0,Q.useEffect)(()=>{J(m)},[m]);let g=(e,t)=>{h(n=>({...n,[e]:t}))},[_,v]=(0,Q.useState)(!1),[b,x]=(0,Q.useState)(`resource`),S=_n.find(e=>e.id===f)??_n[0],C=(e,t)=>{if(e){n(!0);return}t?.cancel(),(async()=>{let e=await u();if(e===`close`){n(!1);return}if(e===`wait`){Z.message(`Saving model list…`);return}x(s?`resource`:`model`),v(!0)})()};t.current=e=>{C(!1,e)};let w=()=>{c(),l(),d(),v(!1),n(!1)};(0,Q.useEffect)(()=>{d()},[d]);let T=(0,$.jsx)(br,{activeTab:f,composerIntent:i,form:r,onComposerIntentChange:a,onComposerIntentKeyChange:o,preferences:m,updatePreference:g});return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(oe,{className:`flex h-[min(640px,calc(100dvh-4rem))] w-full max-w-[calc(100%-2rem)] overflow-hidden rounded-2xl p-0 sm:max-w-[min(860px,calc(100%-2rem))]`,children:[(0,$.jsx)(se,{className:`sr-only`,children:`Settings`}),(0,$.jsx)(ce,{className:`sr-only`,children:`Customize your settings here.`}),(0,$.jsxs)(`div`,{className:`flex h-full w-full min-h-0 min-w-0 flex-1`,children:[(0,$.jsxs)(`nav`,{"aria-label":`Settings sections`,className:`hidden h-full w-52 shrink-0 flex-col border-r border-border bg-sidebar sm:flex`,children:[(0,$.jsx)(`div`,{className:`px-6 pt-6 pb-2 text-label font-semibold`,children:`Settings`}),(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain px-2 pb-6`,children:gn.map(e=>(0,$.jsxs)(`div`,{className:`py-2`,children:[(0,$.jsx)(`p`,{className:`px-2 pb-1 text-caption font-medium uppercase tracking-wide text-muted-foreground`,children:e.label}),(0,$.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:_n.filter(t=>t.group===e.id).map(e=>(0,$.jsx)(_r,{active:f===e.id,onClick:()=>p(e.id),icon:e.icon,label:e.title},e.id))})]},e.id))})]}),(0,$.jsxs)(`main`,{className:`flex h-full w-full min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[(0,$.jsx)(`header`,{className:`flex h-14 w-full shrink-0 items-center gap-2 border-b border-border/10 px-6`,children:(0,$.jsx)(`div`,{className:`flex w-full flex-1 items-center justify-between`,children:(0,$.jsx)(bn,{children:(0,$.jsxs)(xn,{children:[(0,$.jsx)(Sn,{className:`hidden sm:block`,children:`Settings`}),(0,$.jsx)(wn,{className:`hidden sm:block`}),(0,$.jsx)(Sn,{children:(0,$.jsx)(Cn,{children:S.title})})]})})})}),(0,$.jsx)(`div`,{className:`w-full shrink-0 border-b border-border/10 bg-muted/5 px-4 py-2.5 sm:hidden`,children:(0,$.jsx)(y,{"aria-label":`Settings sections`,value:f,onValueChange:e=>{vn(e)&&p(e)},options:_n.map(e=>({label:e.title,value:e.id}))})}),(0,$.jsx)(mr,{className:`min-h-0 min-w-0 w-full flex-1`,viewportClassName:`overflow-x-hidden`,children:(0,$.jsx)(`div`,{id:`panel-${f}`,role:`tabpanel`,"aria-label":S.title,tabIndex:0,className:`min-w-0 w-full max-w-full p-4 outline-none [overflow-wrap:anywhere] sm:p-6`,children:T})})]})]})]}),(0,$.jsx)(Ae,{open:_,onOpenChange:v,children:(0,$.jsxs)(Te,{children:[(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,$.jsx)(ke,{children:`Discard unsaved changes?`}),(0,$.jsx)(we,{children:b===`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,$.jsxs)(De,{children:[(0,$.jsx)(Oe,{children:`Keep editing`}),(0,$.jsx)(Ee,{onClick:w,children:`Discard changes`})]})]})})]})}export{vr as SettingsDialog};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./createLucideIcon-CQY2ECfR.js";var t={name:`globe`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]};t.node;var n=e(t),r={name:`sparkles`,size:24,node:[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]],aliases:[`stars`]};r.node;var i=e(r);export{n,i as t};
|
package/dist/web/client/assets/{subagent-chat-panel-DsPmLZSf.js → subagent-chat-panel-R2RoX1Yt.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-NZYk81nU.js";import{t}from"./prompt-input-CoV1gTUQ.js";import{t as n}from"./subagent-transcript-
|
|
1
|
+
import{t as e}from"./jsx-runtime-NZYk81nU.js";import{t}from"./prompt-input-CoV1gTUQ.js";import{t as n}from"./subagent-transcript-DVZhMo7a.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{t}from"./react-Cvdyeg_0.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{t as r}from"./utils-oBThwhjm.js";import{t as i}from"./bot-DETalD3q.js";import{a,c as o,d as s,f as c,l,m as u,n as d,o as f,p,r as m,s as h,t as g,u as _}from"./tool-part-normalizer-CF6bmJ0s.js";import{t as v}from"./session-tool-renderer-DEABxZG3.js";import{n as y}from"./file-text-cqOanUYv.js";import{t as b}from"./circle-check-DBhaebaM.js";import{t as x}from"./loader-circle-BmKYM_C4.js";import{t as S}from"./refresh-cw-CqPE3kNY.js";import{t as C}from"./button-CWYjn8Zk.js";import{t as w}from"./prime-agent-artifacts-C-g1VPiW.js";import{n as T}from"./reasoning-line-DGdPUMwT.js";import{a as E,c as D,i as O,n as k,o as A,r as j,s as M,t as N}from"./trace-IsV5RRvM.js";import{t as P}from"./tool-timeline-CGhwMeNl.js";var F=e(t(),1),I=n();function L({children:e,tree:t,className:n}){let i=(0,F.useMemo)(()=>s(e,t),[e,t]),a=i.some(e=>e.status===`queued`||e.status===`running`||e.status===`recovering`),[o,l]=(0,F.useState)(a);return i.length===0?null:(0,I.jsx)(N,{className:r(`mt-2`,n),"data-testid":`subagent-trace`,children:(0,I.jsxs)(k,{open:o||a,onOpenChange:l,children:[(0,I.jsx)(O,{"aria-label":a?`Subagents working`:`Subagents completed`,children:(0,I.jsxs)(M,{status:a?`running`:void 0,children:[(0,I.jsx)(A,{children:a?(0,I.jsx)(x,{className:`animate-spin`}):(0,I.jsx)(b,{})}),(0,I.jsx)(D,{children:a?`Subagents working`:`Subagents completed`}),(0,I.jsx)(E,{children:i.length})]})}),(0,I.jsx)(j,{children:(0,I.jsx)(N,{className:`gap-1`,children:i.map(e=>(0,I.jsxs)(M,{style:{paddingLeft:`${Math.max(0,e.depth??0)*12}px`},children:[(0,I.jsx)(A,{children:c(e.status)}),(0,I.jsx)(D,{children:e.label}),e.model?(0,I.jsx)(E,{children:e.model}):null,(0,I.jsx)(E,{className:`capitalize`,children:e.status}),e.error||e.answerPreview||e.progressNote||e.activity?.toolName?(0,I.jsx)(E,{className:`max-w-56 truncate`,children:e.error||e.answerPreview||e.progressNote||e.activity?.toolName}):null]},e.id))})})]})})}function R({turn:e,isLast:t,isStreaming:n,presentation:r,artifacts:i}){let s=(0,F.useMemo)(()=>e.assistants.flatMap((r,i)=>a(g((r.parts??[]).filter(e=>e.type!==`tool-FleetReasoning`&&e.type!==`tool-Thinking`)),{messageId:r.id,isLast:t&&i===e.assistants.length-1,isStreaming:n,ToolRendererComponent:v,TextRendererComponent:u})),[t,n,e.assistants]);return(0,I.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[e.user?(0,I.jsx)(h,{from:`user`,children:(0,I.jsx)(_,{children:(0,I.jsx)(m,{message:e.user,enableImagePreview:!1})})}):null,e.assistants.length>0?(0,I.jsx)(h,{from:`assistant`,children:(0,I.jsx)(_,{children:(0,I.jsx)(o,{variant:`ghost`,children:(0,I.jsxs)(l,{children:[(0,I.jsx)(`div`,{className:`flex flex-col gap-3`,children:s}),t&&i.length>0?(0,I.jsx)(P,{messages:[],artifacts:i,streaming:n}):null,t&&r?(0,I.jsx)(L,{tree:r.rlmTree,children:r.rlmChildren}):null]})})})}):null]})}function z(e,t){return e.user?.id??e.assistants[0]?.id??`subagent-turn-${t}`}function B({child:e,parentSessionId:t,transcript:n,onRefresh:a,fullWidth:o=!1,status:s}){let c=(0,F.useMemo)(()=>n?.status===`loading`?[]:T(n?.messages??[]),[n]),l=s??p(e),u=(0,F.useMemo)(()=>n?.status===`loading`?[]:w(n?.messages??[],n?.presentation,l),[l,n]),m=(0,F.useMemo)(()=>{let e=new Set((n?.messages??[]).flatMap(e=>e.parts.flatMap(e=>`toolCallId`in e&&e.toolCallId?[e.toolCallId]:[])));return u.flatMap(e=>e.artifacts).filter(t=>!t.sourceToolCallId||!e.has(t.sourceToolCallId))},[u,n]),h=n?.presentation,g=(0,F.useCallback)((e,t)=>{let n=t===c.length-1;return(0,I.jsx)(R,{turn:e,isLast:n,isStreaming:n&&l===`streaming`,presentation:n?h:void 0,artifacts:n?m:[]})},[m,l,h,c.length]),_=e.sessionName||e.label,[v,b]=(0,F.useState)(null);(0,F.useEffect)(()=>{b(e.lastHeardFrom?new Date(e.lastHeardFrom).toLocaleTimeString():null)},[e.lastHeardFrom]);let x=(0,F.useRef)(null);return(0,I.jsxs)(`section`,{"aria-label":`Subagent thread: ${e.label}`,className:r(o?`flex min-h-0 min-w-0 flex-1 flex-col`:`space-y-2`,`min-w-0`),"data-testid":o?`subagent-conversation-surface`:void 0,children:[(0,I.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,I.jsx)(i,{className:`mt-0.5 size-3.5 shrink-0 text-foreground/45`}),(0,I.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,I.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs font-medium text-foreground/80`,children:_}),(0,I.jsx)(`span`,{className:`shrink-0 text-micro capitalize text-foreground/45`,children:e.status})]}),e.model?(0,I.jsx)(`p`,{className:`truncate font-mono text-micro text-foreground/40`,children:e.model}):null,v?(0,I.jsxs)(`p`,{className:`truncate text-micro text-foreground/40`,children:[`Heartbeat: `,v]}):null,e.progressNote&&e.status===`running`?(0,I.jsxs)(`p`,{className:`truncate text-micro text-foreground/50`,title:e.progressNote,children:[`Progress: `,e.progressNote]}):null,e.answerPreview?(0,I.jsx)(`p`,{className:`mt-1 line-clamp-3 whitespace-pre-wrap text-caption leading-4 text-foreground/55`,children:e.answerPreview}):null]}),a?(0,I.jsx)(C,{"aria-label":`Refresh ${e.label} thread`,className:`shrink-0 text-foreground/40 hover:text-foreground/70`,onClick:a,size:`icon-compact`,title:`Refresh ${e.label} thread`,type:`button`,variant:`ghost`,children:(0,I.jsx)(S,{className:r(`size-3.5`,n?.status===`loading`&&`animate-spin`)})}):null]}),t?n?.status===`loading`?(0,I.jsx)(`div`,{className:r(`flex items-center justify-center rounded-md border border-dashed border-border/70 text-caption text-foreground/45`,o?`min-h-32 flex-1`:`min-h-32`),children:`Loading subagent thread…`}):n?.status===`error`&&c.length===0?(0,I.jsxs)(`div`,{role:`alert`,className:`flex items-start gap-2 rounded-md border border-destructive/30 bg-destructive/5 px-3 py-2 text-caption leading-4 text-destructive`,children:[(0,I.jsx)(y,{className:`mt-0.5 size-3.5 shrink-0`}),(0,I.jsx)(`span`,{children:n.error?.message??`Unable to load this subagent thread.`})]}):c.length===0?(0,I.jsx)(`p`,{className:`rounded-md border border-dashed border-border/70 p-3 text-caption leading-4 text-foreground/45`,children:`This subagent thread has no messages yet.`}):(0,I.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[n?.error?(0,I.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-caption leading-4 text-destructive sm:mx-6`,children:[(0,I.jsx)(y,{className:`mt-0.5 size-3.5 shrink-0`}),(0,I.jsx)(`span`,{children:n.error.message})]}):null,(0,I.jsx)(`div`,{className:r(`min-h-0 rounded-md border border-border/60 bg-background`,o?`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,I.jsx)(f,{busy:l===`streaming`,className:o?`min-h-0 flex-1`:void 0,followOutput:l===`streaming`,label:`Transcript for ${e.label}`,smooth:l!==`streaming`,viewportRef:x,viewportClassName:o?`px-0`:void 0,contentClassName:r(`flex flex-col gap-4`,o?`mx-auto w-full max-w-3xl px-4 py-6 sm:px-6`:`px-2.5 py-3`),children:(0,I.jsx)(d,{estimateSize:320,getItemKey:z,itemGap:16,items:c,renderItem:g,viewportRef:x})})})]}):(0,I.jsx)(`p`,{className:`rounded-md border border-dashed border-border/70 p-3 text-caption leading-4 text-foreground/45`,children:`This subagent thread is unavailable until the parent session is active.`})]})}export{B as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{t as r}from"./utils-oBThwhjm.js";import{t as i}from"./bot-DETalD3q.js";import{d as a,f as o}from"./tool-part-normalizer-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{t as r}from"./utils-oBThwhjm.js";import{t as i}from"./bot-DETalD3q.js";import{d as a,f as o}from"./tool-part-normalizer-CF6bmJ0s.js";import{t as s}from"./chevron-right-BPCB1mOg.js";import{t as c}from"./button-CWYjn8Zk.js";import{t as l}from"./subagent-transcript-DVZhMo7a.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)(()=>a(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-label 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)(i,{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-micro 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)(c,{type:`button`,variant:`ghost`,size:`compact`,"aria-pressed":t,className:r(`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:o(e.status)}),(0,d.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs text-foreground/80`,children:e.label}),(0,d.jsx)(s,{className:`size-3 shrink-0 text-foreground/30`}),(0,d.jsx)(`span`,{className:`shrink-0 text-micro 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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{t as r}from"./utils-oBThwhjm.js";import{F as i,M as a,a as o,c as s,j as c,n as l,t as u}from"./useButton-CvcmqA2s.js";import{f as d,t as ee}from"./createBaseUIEventDetails-DIxvaz-Y.js";import{m as f,p}from"./FloatingPortal-D8-EPDs2.js";import{t as m}from"./useBaseUiId-lKfDDIcw.js";import{t as h}from"./dist-BogNzeK9.js";import{a as te,c as g,i as ne,n as re,o as ie,r as ae,s as _}from"./input-CBoTMPC_.js";import{t as oe}from"./useControlled-CkQSkSv1.js";var v=n();function y({className:e,...t}){return(0,v.jsx)(`label`,{"data-slot":`label`,className:r(`flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50`,e),...t})}function b({className:e,...t}){return(0,v.jsx)(`div`,{"data-slot":`field-group`,className:r(`group/field-group @container/field-group flex w-full flex-col gap-5 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4`,e),...t})}var x=h(`group/field flex w-full gap-2 data-[invalid=true]:text-destructive`,{variants:{orientation:{vertical:`flex-col *:w-full [&>.sr-only]:w-auto`,horizontal:`flex-row items-center *:data-[slot=field-label]:flex-auto`,responsive:`flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:*:data-[slot=field-label]:flex-auto [&>.sr-only]:w-auto`}},defaultVariants:{orientation:`vertical`}});function S({className:e,orientation:t=`vertical`,...n}){return(0,v.jsx)(`div`,{role:`group`,"data-slot":`field`,"data-orientation":t,className:r(x({orientation:t}),e),...n})}function C({className:e,...t}){return(0,v.jsx)(y,{"data-slot":`field-label`,className:r(`group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded-lg has-[>[data-slot=field]]:border *:data-[slot=field]:p-2.5 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10`,`has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col`,e),...t})}function w({className:e,...t}){return(0,v.jsx)(`p`,{"data-slot":`field-description`,className:r(`text-left text-sm leading-normal font-normal text-muted-foreground group-has-data-horizontal/field:text-balance`,`last:mt-0 nth-last-2:-mt-1`,`[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary`,e),...t})}var T=e(t(),1);function se(e,t,n,r=!0,i){let[o,s]=T.useState(),c=m(i?`${i}-label`:void 0),l=e??t??o;return a(()=>{let i=e||t||!r?void 0:E(n.current,c);o!==i&&s(i)}),l}function E(e,t){let n=D(e);if(n)return!n.id&&t&&(n.id=t),n.id||void 0}function D(e){if(!e)return;let t=e.parentElement;if(t&&t.tagName===`LABEL`)return t;let n=e.id;if(n){let t=e.nextElementSibling;if(t&&t.htmlFor===n)return t}let r=e.labels;return r&&r[0]}var O=T.createContext(void 0);function k(){let e=T.useContext(O);if(e===void 0)throw Error(c(63));return e}var A=`data-checked`,j=`data-unchecked`,M={..._,checked(e){return e?{[A]:``}:{[j]:``}}},ce=T.forwardRef(function(e,t){let{checked:n,className:r,defaultChecked:c,"aria-labelledby":h,form:_,id:y,inputRef:b,name:x,nativeButton:S=!1,onCheckedChange:C,readOnly:w=!1,required:E=!1,disabled:D=!1,render:k,uncheckedValue:A,value:j,style:ce,...N}=e,{clearErrors:P}=te(),{state:F,setTouched:I,setDirty:L,validityData:R,setFilled:z,setFocused:B,validationMode:V,disabled:H,name:U,validation:W}=ie(),{labelId:le}=ne(),G=H||D,K=U??x,q=T.useRef(null),ue=s(q,b,W.inputRef),J=T.useRef(null),Y=m(),X=ae({id:y}),Z=S?void 0:X,[Q,de]=oe({controlled:n,default:!!c,name:`Switch`,state:`checked`});re(J,Y,Q,void 0,!G,x),a(()=>{z(Q)},[Q,z]),g(Q,()=>{P(K),L(Q!==R.initialValue),W.change(Q)});let{getButtonProps:fe,buttonRef:pe}=u({disabled:G,native:S}),me=se(h,le,q,!S,Z),he={id:S?X:Y,role:`switch`,"aria-checked":Q,"aria-readonly":w||void 0,"aria-required":E||void 0,"aria-labelledby":me,onFocus(){G||B(!0)},onBlur(){let e=q.current;!e||G||(I(!0),B(!1),V===`onBlur`&&W.commit(e.checked))},onClick(e){if(w||G)return;e.preventDefault();let t=q.current;t&&l(t,e)}},ge={...W.getValidationProps(G),checked:Q,disabled:G,form:_,id:Z,name:K,required:E,style:K?f:p,tabIndex:-1,type:`checkbox`,"aria-hidden":!0,ref:ue,onChange(e){if(e.nativeEvent.defaultPrevented)return;if(w){e.preventDefault();return}let t=e.currentTarget.checked,n=ee(d,e.nativeEvent);C?.(t,n),!n.isCanceled&&de(t)},onClick(e){e.stopPropagation()},onFocus(){J.current?.focus()},...j===void 0?i:{value:j}},$=T.useMemo(()=>({...F,checked:Q,disabled:G,readOnly:w,required:E}),[F,Q,G,w,E]),_e=o(`span`,e,{state:$,ref:[t,J,pe],props:[he,N,fe,e=>W.getValidationProps(G,e)],stateAttributesMapping:M});return(0,v.jsxs)(O.Provider,{value:$,children:[_e,!Q&&K&&A!==void 0&&(0,v.jsx)(`input`,{type:`hidden`,form:_,name:K,value:A,disabled:G}),(0,v.jsx)(`input`,{...ge,suppressHydrationWarning:!0})]})}),N=T.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,s=k();return o(`span`,e,{state:s,ref:t,stateAttributesMapping:M,props:a})});function P({className:e,...t}){return(0,v.jsx)(ce,{"data-slot":`switch`,className:r(`inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border border-transparent bg-input transition-colors outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 dark:bg-input/80 data-checked:bg-primary data-disabled:cursor-not-allowed data-disabled:opacity-50`,e),...t,children:(0,v.jsx)(N,{"data-slot":`switch-thumb`,className:`pointer-events-none block size-4 translate-x-0.5 rounded-full bg-background shadow-sm transition-transform dark:bg-foreground data-checked:translate-x-4`})})}export{C as a,b as i,S as n,w as r,P as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{t as n}from"./react-dom-B7th3XGm.js";import{t as r}from"./jsx-runtime-NZYk81nU.js";import{t as i}from"./utils-oBThwhjm.js";import{M as a,N as o,O as s,_ as c,a as l,j as u,t as d}from"./useButton-CvcmqA2s.js";import{D as f,E as p,_ as m,v as h,x as g}from"./createBaseUIEventDetails-DIxvaz-Y.js";import{$ as _,G as v,I as y,K as b,Q as x,W as S,Z as C,a as w,d as ee,et as te,f as T,l as E,n as ne,p as D,tt as O}from"./FloatingPortal-D8-EPDs2.js";import{t as k}from"./createLucideIcon-CQY2ECfR.js";import{t as A}from"./circle-check-DBhaebaM.js";import{t as j}from"./loader-circle-BmKYM_C4.js";import{t as M}from"./triangle-alert-BuzmrrqI.js";import{t as N}from"./x-DEU6H3M-.js";import{t as P}from"./button-CWYjn8Zk.js";var F=e(t(),1),I=F.createContext(void 0);function L(){let e=F.useContext(I);if(!e)throw Error(u(73));return e}var R=0;function z(e){return R+=1,`${e}-${Math.random().toString(36).slice(2,6)}-${R}`}function B(e,t){if(typeof e==`string`)return{description:e};if(typeof e==`function`){let n=e(t);return typeof n==`string`?{description:n}:n}return e}function V(e){let t=new Map,n=0,r=0;return e.forEach((e,i)=>{let a=e.transitionStatus===`ending`;t.set(e.id,{value:e,domIndex:i,visibleIndex:a?-1:n,offsetY:r}),r+=e.height||0,a||(n+=1)}),t}function H(e,t){let n=0;return e.map(e=>{if(e.transitionStatus===`ending`)return e;let r=n>=t;return n+=1,e.limited===r?e:{...e,limited:r}})}var U={toasts:e=>e.toasts,isEmpty:e=>e.toasts.length===0,toast:(e,t)=>e.toastMetadata.get(t)?.value,toastIndex:(e,t)=>e.toastMetadata.get(t)?.domIndex??-1,toastOffsetY:(e,t)=>e.toastMetadata.get(t)?.offsetY??0,toastVisibleIndex:(e,t)=>e.toastMetadata.get(t)?.visibleIndex??-1,focused:e=>e.focused,expanded:e=>e.hovering||e.focused,expandedOrOutOfFocus:e=>e.hovering||e.focused||!e.isWindowFocused,prevFocusElement:e=>e.prevFocusElement},W=class extends O{timers=new Map;areTimersPaused=!1;constructor(e){super({...e,toastMetadata:V(e.toasts)},{},U)}setViewport=e=>{this.set(`viewport`,e)};syncProviderProps(e,t){let n=this.state.limit!==t;if(this.state.timeout===e&&!n)return;let r={timeout:e,limit:t};if(n){let e=H(this.state.toasts,t);r.toasts=e,r.toastMetadata=V(e)}this.update(r)}disposeEffect=()=>()=>{this.timers.forEach(e=>{e.timeout?.clear()}),this.timers.clear()};removeToast(e,t=!1){let n=U.toastIndex(this.state,e);if(n===-1)return;let r=this.state.toasts[n];t||r?.onRemove?.();let i=[...this.state.toasts];i.splice(n,1),this.setToasts(i)}addToast=e=>{let{timeout:t,limit:n}=this.state,r=e.id||z(`toast`);if(e.id){let t=U.toast(this.state,e.id);if(t){if(t.transitionStatus===`ending`)this.removeToast(e.id,!0);else{let{id:t,transitionStatus:n,...r}=e;return this.updateToastInternal(e.id,r,!0,!0),e.id}}}let i={...e,id:r,updateKey:0,transitionStatus:`starting`},a=[i,...this.state.toasts];this.setToasts(H(a,n));let o=i.timeout??t;return i.type!==`loading`&&o>0&&this.scheduleTimer(r,o,()=>this.closeToast(r)),U.expandedOrOutOfFocus(this.state)&&this.pauseTimers(),r};updateToast=(e,t)=>{let n=U.toast(this.state,e);!n||n.transitionStatus===`ending`||this.updateToastInternal(e,typeof t==`function`?t(n):t,!1,!0)};updateToastInternal=(e,t,n=!1,r=!1)=>{let{timeout:i,toasts:a}=this.state,o=U.toast(this.state,e);if(!o||o.transitionStatus===`ending`)return;let s={...o,...t,...r&&{updateKey:o.updateKey+1}};this.setToasts(a.map(t=>t.id===e?s:t));let c=s.timeout??i,l=o.timeout??i,u=Object.hasOwn(t,`timeout`),d=s.transitionStatus!==`ending`&&s.type!==`loading`&&c>0,f=this.timers.has(e),p=l!==c,m=o.type===`loading`;if(!d&&f){this.clearTimer(e);return}d&&(!f||p||u||m||n)&&(this.clearTimer(e),this.scheduleTimer(e,c,()=>this.closeToast(e)),U.expandedOrOutOfFocus(this.state)&&this.pauseTimers())};closeToast=e=>{let t=e===void 0,{limit:n,toasts:r}=this.state,i;if(t)i=r,this.clearTimers();else{let t=U.toast(this.state,e);if(!t)return;i=[t],this.clearTimer(e)}let a=H(r.map(n=>t||n.id===e?{...n,transitionStatus:`ending`,height:0}:n),n);this.setToasts(a,!a.some(e=>e.transitionStatus!==`ending`)),i.forEach(e=>{e.transitionStatus!==`ending`&&e.onClose?.()}),this.handleFocusManagement(e)};promiseToast=(e,t)=>{let n=B(t.loading),r=this.addToast({...n,type:`loading`}),i=e.then(e=>{let n=B(t.success,e);return this.updateToast(r,{...n,type:`success`,timeout:n.timeout}),e}).catch(e=>{let n=B(t.error,e);return this.updateToast(r,{...n,type:`error`,timeout:n.timeout}),Promise.reject(e)});return{}.hasOwnProperty.call(t,`setPromise`)&&t.setPromise(i),i};pauseTimers(){this.areTimersPaused||(this.areTimersPaused=!0,this.timers.forEach(e=>{e.timeout&&(e.timeout.clear(),e.remaining=Math.max(e.remaining-(Date.now()-e.start),0))}))}resumeTimers(){this.areTimersPaused&&(this.areTimersPaused=!1,this.timers.forEach((e,t)=>{e.remaining=e.remaining>0?e.remaining:e.delay,e.timeout??=C.create(),e.timeout.start(e.remaining,()=>{this.handleTimerFired(t),e.callback()}),e.start=Date.now()}))}restoreFocusToPrevElement(){this.state.prevFocusElement?.focus({preventScroll:!0})}handleDocumentPointerDown=e=>{if(e.pointerType!==`touch`)return;let t=b(e);v(this.state.viewport,t)||(this.resumeTimers(),this.update({hovering:!1,focused:!1}))};scheduleTimer(e,t,n){let r=Date.now(),i=U.expandedOrOutOfFocus(this.state)?void 0:C.create();i?.start(t,()=>{this.handleTimerFired(e),n()}),this.timers.set(e,{timeout:i,start:r,delay:t,remaining:t,callback:n})}clearTimers(){this.timers.forEach(e=>{e.timeout?.clear()}),this.timers.clear(),this.areTimersPaused=!1}clearTimer(e){this.timers.get(e)?.timeout?.clear(),this.timers.delete(e),this.resetPausedStateIfNoTimersRemain()}handleTimerFired(e){this.timers.delete(e),this.resetPausedStateIfNoTimersRemain()}resetPausedStateIfNoTimersRemain(){this.timers.size===0&&(this.areTimersPaused=!1)}setToasts(e,t=e.length===0){let n={toasts:e,toastMetadata:V(e)};t&&(n.hovering=!1,n.focused=!1),this.update(n)}handleFocusManagement(e){let t=S(_(this.state.viewport));if(!this.state.viewport||!v(this.state.viewport,t)||!y(t))return;if(e===void 0){this.restoreFocusToPrevElement();return}let n=U.toasts(this.state),r=U.toastIndex(this.state,e),i=(e,t)=>{for(let r=e;r>=0&&r<n.length;r+=t)if(n[r].transitionStatus!==`ending`)return n[r];return null},a=i(r+1,1)??i(r-1,-1);a?a.ref?.current?.focus():this.restoreFocusToPrevElement()}},G=r(),re=function(e){let{children:t,timeout:n=5e3,limit:r=3,toastManager:i}=e,a=o(()=>new W({timeout:n,limit:r,viewport:null,toasts:[],hovering:!1,focused:!1,isWindowFocused:!0,prevFocusElement:null})).current;return f(a.disposeEffect),F.useEffect(function(){if(i)return i[` subscribe`](({action:e,options:t})=>{let n=t.id;e===`promise`&&t.promise?a.promiseToast(t.promise,t):e===`update`&&n?a.updateToast(n,t.updates):e===`close`?a.closeToast(n):a.addToast(t)})},[a,i]),(0,G.jsxs)(I.Provider,{value:a,children:[(0,G.jsx)(ie,{store:a,timeout:n,limit:r}),t]})};function ie(e){let{store:t,timeout:n,limit:r}=e;return a(()=>{t.syncProviderProps(n,r)},[t,n,r]),null}var K=`--toast-frontmost-height`,q=F.forwardRef(function(e,t){let{render:n,className:r,style:i,children:a,...o}=e,s=L(),u=x(),d=F.useRef(!1),f=F.useRef(!1),m=F.useRef(!1),h=s.useState(`isEmpty`),g=s.useState(`toasts`),C=s.useState(`focused`),w=s.useState(`expanded`),ee=s.useState(`prevFocusElement`),E=g[0]?.height,ne=g.some(e=>e.transitionStatus===`ending`),O=g.filter(e=>e.priority===`high`);F.useEffect(()=>{let e=s.state.viewport;if(!e||h)return;let t=c(e),n=_(e);function r(t){t.key===`F6`&&b(t)!==e&&(t.preventDefault(),s.set(`prevFocusElement`,S(n)),e?.focus({preventScroll:!0}),s.pauseTimers(),s.set(`focused`,!0))}function i(e){b(e)===t&&(s.set(`isWindowFocused`,!1),s.pauseTimers())}function a(n){if(n.relatedTarget)return;let r=b(n),i=S(_(e));(r===t||!v(e,r)||!y(i))&&s.resumeTimers(),u.start(0,()=>s.set(`isWindowFocused`,!0))}return te(p(t,`keydown`,r),p(t,`blur`,i,!0),p(t,`focus`,a,!0),p(n,`pointerdown`,s.handleDocumentPointerDown,!0))},[s,u,h]);function k(e){d.current=!0;let t=e.relatedTarget===s.state.viewport?g.find(e=>e.transitionStatus!==`ending`&&!e.limited):void 0;t?t.ref?.current?.focus():s.restoreFocusToPrevElement()}function A(e){e.key===`Tab`&&e.shiftKey&&b(e.nativeEvent)===s.state.viewport&&(e.preventDefault(),s.restoreFocusToPrevElement())}function j(){s.state.toasts.some(e=>e.transitionStatus===`ending`)||m.current||!f.current||(s.state.isWindowFocused&&s.resumeTimers(),s.set(`hovering`,!1),f.current=!1)}F.useEffect(j,[ne,s]);function M(){s.pauseTimers(),s.set(`hovering`,!0),f.current=!1}function N(){s.state.isWindowFocused&&s.resumeTimers()}function P(){f.current=!0,j()}function I(e){e.pointerType===`touch`&&(m.current=!0)}function R(e){e.pointerType===`touch`&&(m.current=!1,j())}function z(){if(d.current){d.current=!1;return}C||y(S(_(s.state.viewport)))&&(s.set(`focused`,!0),s.pauseTimers())}function B(e){!C||v(s.state.viewport,e.relatedTarget)||(s.set(`focused`,!1),N())}let V={tabIndex:-1,role:`region`,"aria-live":`polite`,"aria-atomic":!1,"aria-relevant":`additions text`,"aria-label":`Notifications`,onMouseEnter:M,onMouseMove:M,onMouseLeave:P,onFocus:z,onBlur:B,onKeyDown:A,onClick:z,onPointerDown:I,onPointerUp:R,onPointerCancel:R,style:{[K]:E?`${E}px`:void 0}},H={expanded:w},U=!h&&ee&&(0,G.jsx)(T,{onFocus:k}),W=l(`div`,e,{ref:[t,s.setViewport],state:H,props:[V,o,{children:(0,G.jsxs)(F.Fragment,{children:[U,a,U]})}]});return(0,G.jsxs)(F.Fragment,{children:[U,W,!C&&O.length>0&&(0,G.jsx)(`div`,{style:D,children:O.map(e=>(0,G.jsxs)(`div`,{role:`alert`,"aria-atomic":!0,children:[(0,G.jsx)(`div`,{children:e.title}),(0,G.jsx)(`div`,{children:e.description})]},e.id))})]})}),ae=e(n(),1),oe=F.createContext(void 0);function J(){let e=F.useContext(oe);if(!e)throw Error(u(66));return e}function se(e,t){let n=(t??c(e).getComputedStyle(e)).transform,r=0,i=0,a=1;if(n&&n!==`none`){let e=n.match(/matrix(?:3d)?\(([^)]+)\)/);if(e){let t=e[1].split(`, `).map(parseFloat);t.length===6?(r=t[4],i=t[5],a=Math.sqrt(t[0]*t[0]+t[1]*t[1])):t.length===16&&(r=t[12],i=t[13],a=t[0])}}return{x:r,y:i,scale:a}}function ce(e,t,n){switch(e){case`up`:return-n;case`down`:return n;case`left`:return-t;case`right`:return t;default:return 0}}var le=`--toast-index`,ue=`--toast-offset-y`,de=`--toast-height`,fe=`--toast-swipe-movement-x`,pe=`--toast-swipe-movement-y`,Y=`data-swipe-direction`,me={...g,swipeDirection(e){return e?{[Y]:e}:null}},he=40,ge=10,_e=.5,ve=1,ye=`${w},${E}`,be=F.forwardRef(function(e,t){let{toast:n,render:r,className:i,swipeDirection:o=[`down`,`right`],style:c,...u}=e,d=n.positionerProps?.anchor!==void 0,f=[];d||(f=Array.isArray(o)?o:[o]);let m=f.length>0,g=L(),[y,x]=F.useState(void 0),[C,w]=F.useState(!1),[te,T]=F.useState(!1),[E,ne]=F.useState({x:0,y:0}),[D,O]=F.useState({x:0,y:0,scale:1}),[k,A]=F.useState(),[j,M]=F.useState(),[N,P]=F.useState(null),I=F.useRef(null),R=F.useRef(void 0),z=F.useRef({x:0,y:0}),B=F.useRef({x:0,y:0,scale:1}),V=F.useRef(void 0),H=F.useRef(0),U=F.useRef(!1),W=F.useRef({x:0,y:0}),re=F.useRef(!1),ie=F.useRef({x:0,y:0}),K=F.useRef(null),q=F.useRef(null),J=g.useState(`toastIndex`,n.id),Y=g.useState(`toastVisibleIndex`,n.id),be=g.useState(`toastOffsetY`,n.id),xe=g.useState(`focused`),X=g.useState(`expanded`);h({open:n.transitionStatus!==`ending`,ref:I,onComplete(){n.transitionStatus===`ending`&&g.removeToast(n.id)}});let Z=s((e=!1)=>{let t=I.current;if(!t)return;let r=t.style.height;t.style.height=`auto`;let i=t.offsetHeight;t.style.height=r;function a(){g.updateToastInternal(n.id,{ref:I,height:i,transitionStatus:void 0})}e?ae.flushSync(a):a()});a(()=>{let e=R.current;(n.transitionStatus===`starting`||e!==n.id)&&(e!==void 0&&(x(void 0),O({x:0,y:0,scale:1}),Q({x:0,y:0})),R.current=n.id,Z())},[Z,n.id,n.transitionStatus]);function Q(e){ie.current=e,ne(e)}a(()=>()=>{q.current?.abort()},[]);function Se(e,t){let n=e=>e>0?e**_e:-(Math.abs(e)**_e),r=e>0&&!f.includes(`right`)||e<0&&!f.includes(`left`),i=t>0&&!f.includes(`down`)||t<0&&!f.includes(`up`);return{x:r?n(e):e,y:i?n(t):t}}let $=s(e=>{if(e.pointerId!==K.current)return;K.current=null,q.current?.abort(),q.current=null,w(!1),T(!1),P(null);let t=B.current;if(e.type===`pointercancel`||U.current){Q({x:t.x,y:t.y}),x(void 0);return}let r=ie.current,i=r.x-t.x,a=r.y-t.y,o;for(let e of f)if(ce(e,i,a)>he){o=e;break}o?(x(o),g.closeToast(n.id)):(Q({x:t.x,y:t.y}),x(void 0))});function Ce(e){if(e.button!==0||(e.pointerType===`touch`&&g.pauseTimers(),b(e.nativeEvent)?.closest(`button,a,input,textarea,[role="button"],${ye}`)))return;U.current=!1,V.current=void 0,H.current=0,K.current=e.pointerId,z.current={x:e.clientX,y:e.clientY},W.current=z.current;let t=e.currentTarget,n=se(t);B.current=n,O(n),Q({x:n.x,y:n.y}),g.set(`hovering`,!0),w(!0),T(!1),P(null),re.current=!0,q.current?.abort();let r=new AbortController;q.current=r;let i=_(t);i.addEventListener(`pointerup`,$,{signal:r.signal}),i.addEventListener(`pointercancel`,$,{signal:r.signal}),t.setPointerCapture?.(e.pointerId)}function we(e){if(e.pointerId!==K.current)return;e.preventDefault(),re.current&&=(z.current={x:e.clientX,y:e.clientY},!1);let{clientY:t,clientX:n,movementX:r,movementY:i}=e;(i<0&&t>W.current.y||i>0&&t<W.current.y)&&(W.current={x:W.current.x,y:t}),(r<0&&n>W.current.x||r>0&&n<W.current.x)&&(W.current={x:n,y:W.current.y});let a=n-z.current.x,o=t-z.current.y,s=t-W.current.y,c=n-W.current.x,l=N;if(!te&&Math.sqrt(a*a+o*o)>=ve){T(!0);let e=f.includes(`left`)||f.includes(`right`),t=f.includes(`up`)||f.includes(`down`);e&&t&&(l=Math.abs(a)>Math.abs(o)?`horizontal`:`vertical`,P(l))}let u;if(!V.current)l===`vertical`?o>0?u=`down`:o<0&&(u=`up`):l===`horizontal`?a>0?u=`right`:a<0&&(u=`left`):u=Math.abs(a)>=Math.abs(o)?a>0?`right`:`left`:o>0?`down`:`up`,u&&f.includes(u)&&(V.current=u,H.current=ce(u,a,o),x(u));else{let e=V.current,t=ce(e,c,s);t>he?(U.current=!1,x(e)):!(f.includes(`left`)&&f.includes(`right`))&&!(f.includes(`up`)&&f.includes(`down`))&&H.current-t>=ge&&(U.current=!0)}let d=Se(a,o),p=B.current.x,m=B.current.y,h=f.includes(`left`)||f.includes(`right`),g=f.includes(`up`)||f.includes(`down`);l!==`vertical`&&h&&(p+=d.x),l!==`horizontal`&&g&&(m+=d.y),Q({x:p,y:m})}function Te(e){if(e.key===`Escape`){if(!I.current||!v(I.current,S(_(I.current))))return;g.closeToast(n.id)}}F.useEffect(()=>{let e=I.current;if(!m||!e)return;function t(t){K.current===null||!v(e,b(t))||t.preventDefault()}return p(e,`touchmove`,t,{passive:!1})},[m]);function Ee(){let e=E.x-D.x,t=E.y-D.y;return{transition:C?`none`:void 0,transform:C?`translateX(${E.x}px) translateY(${E.y}px) scale(${D.scale})`:void 0,[fe]:`${e}px`,[pe]:`${t}px`}}let De=n.priority===`high`,Oe={role:De?`alertdialog`:`dialog`,tabIndex:0,"aria-modal":!1,"aria-labelledby":k,"aria-describedby":j,"aria-hidden":De&&!xe?!0:void 0,onPointerDown:m?Ce:void 0,onPointerMove:m?we:void 0,onPointerUp:m?$:void 0,onPointerCancel:m?$:void 0,onKeyDown:Te,inert:ee(n.limited),style:{...Ee(),[le]:n.transitionStatus===`ending`?J:Y,[ue]:`${be}px`,[de]:n.height?`${n.height}px`:void 0}},ke=F.useMemo(()=>({toast:n,setTitleId:A,setDescriptionId:M,recalculateHeight:Z,visibleIndex:Y,expanded:X}),[n,A,M,Z,Y,X]),Ae={transitionStatus:n.transitionStatus,expanded:X,limited:n.limited||!1,type:n.type,swiping:C,swipeDirection:y},je=l(`div`,e,{ref:[t,I],state:Ae,stateAttributesMapping:me,props:[Oe,u]});return(0,G.jsx)(oe.Provider,{value:ke,children:je})}),xe=F.forwardRef(function(e,t){let{render:n,className:r,style:i,...o}=e,{visibleIndex:s,expanded:c,recalculateHeight:u}=J(),d=F.useRef(null);return a(()=>{u();let e=d.current;if(!e||typeof ResizeObserver!=`function`||typeof MutationObserver!=`function`)return;let t=new ResizeObserver(()=>u(!0)),n=new MutationObserver(()=>u(!0));return t.observe(e),n.observe(e,{childList:!0,subtree:!0,characterData:!0}),()=>{t.disconnect(),n.disconnect()}},[u]),l(`div`,e,{ref:[t,d],state:{expanded:c,behind:s>0},props:o})});function X(e){return e==null||typeof e==`boolean`||e===``?!1:!Array.isArray(e)||e.some(X)}function Z(e){return F.isValidElement(e)&&X(e.props.children)}function Q(e,t,n){let{toast:r,setTitleId:i,setDescriptionId:a}=J(),o=n===`title`?i:a,s=t??(n===`title`?r.title:r.description);return{id:m(e),children:s,type:r.type,setId:o}}function Se(e,t,n){let r=Z(e);return a(()=>{if(r)return n(t),()=>{n(e=>e===t?void 0:e)}},[r,t,n]),r?e:null}var $=F.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,children:o,...s}=e,{id:c,children:u,type:d,setId:f}=Q(a,o,`description`);return Se(l(`p`,e,{ref:t,state:{type:d},props:{...s,id:c,children:u}}),c,f)}),Ce=F.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,children:o,...s}=e,{id:c,children:u,type:d,setId:f}=Q(a,o,`title`);return Se(l(`h2`,e,{ref:t,state:{type:d},props:{...s,id:c,children:u}}),c,f)}),we=F.forwardRef(function(e,t){let{render:n,className:r,style:i,disabled:a,nativeButton:o=!0,...s}=e,c=L(),{toast:u,expanded:f}=J(),[p,m]=F.useState(!1),{getButtonProps:h,buttonRef:g}=d({disabled:a,native:o}),_={type:u.type};return l(`button`,e,{ref:[t,g],state:_,props:[{"aria-hidden":!f&&!p,onClick(){c.closeToast(u.id)},onFocus(){m(!0)},onBlur(){m(!1)}},s,h]})}),Te=F.forwardRef(function(e,t){let{render:n,className:r,style:i,disabled:a,nativeButton:o=!0,...s}=e,{toast:c}=J(),u=c.actionProps?.children??s.children,{getButtonProps:f,buttonRef:p}=d({disabled:a,native:o}),m={type:c.type},h=l(`button`,e,{ref:[t,p],state:m,props:[s,c.actionProps,f,{children:u}]});return Z(h)?h:null}),Ee=F.forwardRef(function(e,t){let{children:n,container:r,className:i,render:a,style:o,...s}=e,{node:c,subtree:l}=ne({container:r,ref:t,componentProps:e,elementProps:s});return!l&&!c?null:(0,G.jsxs)(F.Fragment,{children:[l,c&&ae.createPortal(n,c)]})}),De=F.forwardRef(function(e,t){return(0,G.jsx)(Ee,{ref:t,...e})});function Oe(){let e=L(),t=e.useState(`toasts`);return F.useMemo(()=>({toasts:t,add:e.addToast,close:e.closeToast,update:e.updateToast,promise:e.promiseToast}),[t,e])}function ke(){let e=new Set;function t(t){e.forEach(e=>e(t))}return{" subscribe":function(t){return e.add(t),()=>{e.delete(t)}},add(e){let n=e.id||z(`toast`);return t({action:`add`,options:{...e,id:n,transitionStatus:`starting`}}),n},close(e){t({action:`close`,options:{id:e}})},update(e,n){t({action:`update`,options:{id:e,updates:n}})},promise(e,n){let r=e;return t({action:`promise`,options:{...n,promise:e,setPromise(e){r=e}}}),r}}}var Ae={name:`info`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]};Ae.node;var je=k(Ae),Me={name:`octagon-x`,size:24,node:[[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z`,key:`2d38gg`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]],aliases:[`x-octagon`]};Me.node;var Ne=k(Me),Pe=ke();function Fe({...e}){return(0,G.jsx)(re,{...e})}function Ie({...e}){return(0,G.jsx)(De,{"data-slot":`toast-portal`,...e})}function Le({className:e,...t}){return(0,G.jsx)(q,{"data-slot":`toast-viewport`,className:i(`pointer-events-none fixed inset-x-4 bottom-4 z-50 mx-auto w-auto max-w-sm outline-none sm:right-4 sm:left-auto sm:mx-0 sm:w-full`,e),...t})}function Re({className:e,...t}){return(0,G.jsx)(be,{"data-slot":`toast`,className:i(`group/toast pointer-events-auto absolute right-0 bottom-0 z-[calc(1000-var(--toast-index))] w-full origin-bottom rounded-2xl text-popover-foreground will-change-transform outline-none select-none focus-visible:ring-[3px] focus-visible:ring-ring/50`,`bg-surface-3 shadow-surface-3`,`[--gap:0.75rem] [--height:var(--toast-frontmost-height,var(--toast-height))] [--offset-y:calc(var(--toast-offset-y)*-1+calc(var(--toast-index)*var(--gap)*-1)+var(--toast-swipe-movement-y))] [--peek:0.75rem] [--scale:calc(max(0,1-(var(--toast-index)*0.1)))] [--shrink:calc(1-var(--scale))]`,`h-(--height) [transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)-(var(--toast-index)*var(--peek))-(var(--shrink)*var(--height))))_scale(var(--scale))] [transition:transform_500ms_cubic-bezier(0.22,1,0.36,1),opacity_500ms,height_150ms]`,`after:absolute after:top-full after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-['']`,`data-expanded:h-(--toast-height) data-expanded:[transform:translateX(var(--toast-swipe-movement-x))_translateY(var(--offset-y))]`,`data-limited:opacity-0 data-starting-style:[transform:translateY(150%)]`,`[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(150%)]`,`data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]`,`data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]`,`data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]`,`data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]`,`data-expanded:data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]`,`data-expanded:data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]`,`data-expanded:data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]`,`data-expanded:data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]`,e),...t})}function ze({className:e,...t}){return(0,G.jsx)(xe,{"data-slot":`toast-content`,className:i(`flex h-full items-center gap-3 overflow-hidden p-4 transition-opacity duration-250 ease-[cubic-bezier(0.22,1,0.36,1)] data-behind:opacity-0 data-expanded:opacity-100`,e),...t})}function Be({className:e,...t}){return(0,G.jsx)(Ce,{"data-slot":`toast-title`,className:i(`text-sm font-medium`,e),...t})}function Ve({className:e,...t}){return(0,G.jsx)($,{"data-slot":`toast-description`,className:i(`text-sm text-muted-foreground`,e),...t})}function He({className:e,render:t=(0,G.jsx)(P,{variant:`outline`,size:`compact`}),...n}){return(0,G.jsx)(Te,{"data-slot":`toast-action`,render:t,className:i(`shrink-0`,e),...n})}function Ue({className:e,children:t,render:n=(0,G.jsx)(P,{variant:`ghost`,size:`icon-compact`}),...r}){return(0,G.jsx)(we,{"data-slot":`toast-close`,"aria-label":`Close toast`,render:n,className:i(`relative shrink-0 text-muted-foreground after:absolute after:-inset-2 after:content-[''] hover:text-foreground`,e),...r,children:t??(0,G.jsx)(N,{"aria-hidden":`true`})})}function We({type:e}){let t=null;return e===`success`&&(t=(0,G.jsx)(A,{"aria-hidden":`true`})),e===`info`&&(t=(0,G.jsx)(je,{"aria-hidden":`true`})),e===`warning`&&(t=(0,G.jsx)(M,{"aria-hidden":`true`})),e===`error`&&(t=(0,G.jsx)(Ne,{className:`text-destructive`,"aria-hidden":`true`})),e===`loading`&&(t=(0,G.jsx)(j,{className:`animate-spin`,"aria-hidden":`true`})),t?(0,G.jsx)(`span`,{"data-slot":`toast-icon`,className:`shrink-0 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4`,children:t}):null}function Ge(){let{toasts:e}=Oe();return e.map(e=>(0,G.jsx)(Re,{toast:e,children:(0,G.jsxs)(ze,{children:[(0,G.jsx)(We,{type:e.type}),(0,G.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,G.jsx)(Be,{}),(0,G.jsx)(Ve,{})]}),(0,G.jsx)(He,{}),(0,G.jsx)(Ue,{})]})},e.id))}function Ke({children:e,toastManager:t=Pe,...n}){return(0,G.jsxs)(Fe,{toastManager:t,...n,children:[e,(0,G.jsx)(Ie,{children:(0,G.jsx)(Le,{children:(0,G.jsx)(Ge,{})})})]})}export{Pe as n,je as r,Ke as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import{t as e}from"./createLucideIcon-CQY2ECfR.js";import{t}from"./wrench-BXX_Ah2s.js";import{t as n}from"./search-Cb6fFWew.js";import{t as r}from"./shield-check-7HDd-2Fn.js";import{t as i}from"./safe-external-url-D3PJJIcM.js";var a={name:`earth`,size:24,node:[[`path`,{d:`M21.54 15H17a2 2 0 0 0-2 2v4.54`,key:`1djwo0`}],[`path`,{d:`M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17`,key:`1tzkfa`}],[`path`,{d:`M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05`,key:`14pb5j`}],[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]],aliases:[`globe-2`]};a.node;var o=e(a),s={name:`file-pen-line`,size:24,node:[[`path`,{d:`M14.364 13.634a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506l4.013-4.009a1 1 0 0 0-3.004-3.004z`,key:`ukzhwg`}],[`path`,{d:`M14.487 7.858A1 1 0 0 1 14 7V2`,key:`1klhew`}],[`path`,{d:`M20 19.645V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l2.516 2.516`,key:`rxaxab`}],[`path`,{d:`M8 18h1`,key:`13wk12`}]],aliases:[`file-signature`]};s.node;var c=e(s),l={name:`file-search`,size:24,node:[[`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`}],[`circle`,{cx:`11.5`,cy:`14.5`,r:`2.5`,key:`1bq0ko`}],[`path`,{d:`M13.3 16.3 15 18`,key:`2quom7`}]]};l.node;var u=e(l),d={name:`image`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}]]};d.node;var f=e(d),p={name:`list-todo`,size:24,node:[[`path`,{d:`M13 5h8`,key:`a7qcls`}],[`path`,{d:`M13 12h8`,key:`h98zly`}],[`path`,{d:`M13 19h8`,key:`c3s6r1`}],[`path`,{d:`m3 17 2 2 4-4`,key:`1jhpwq`}],[`rect`,{x:`3`,y:`4`,width:`6`,height:`6`,rx:`1`,key:`cif1o7`}]]};p.node;var m=e(p),h={name:`message-circle-question-mark`,size:24,node:[[`path`,{d:`M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719`,key:`1sd12s`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]],aliases:[`message-circle-question`]};h.node;var g=e(h),_={name:`terminal`,size:24,node:[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]};_.node;var v=e(_),y={name:`users-round`,size:24,node:[[`path`,{d:`M18 21a8 8 0 0 0-16 0`,key:`3ypg7q`}],[`circle`,{cx:`10`,cy:`8`,r:`5`,key:`o932ke`}],[`path`,{d:`M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3`,key:`10s06x`}]],aliases:[`users-2`]};y.node;var b=e(y);function x(e){let i=e.toLowerCase();return i.includes(`plan`)||i.includes(`todo`)?m:i.includes(`approval`)||i.includes(`permission`)?r:i.includes(`question`)||i.includes(`ask`)?g:i.includes(`citation`)||i.includes(`source`)?o:i.includes(`agent`)||i.includes(`task`)||i.includes(`rlm`)?b:i.includes(`image`)||i.includes(`visual`)?f:i.includes(`edit`)||i.includes(`write`)||i.includes(`patch`)||i.includes(`diff`)?c:i.includes(`read`)||i.includes(`file`)?u:i.includes(`search`)||i.includes(`grep`)||i.includes(`glob`)?n:i.includes(`bash`)||i.includes(`shell`)||i.includes(`python`)||i.includes(`ipython`)?v:t}function S(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function C(e){let t=S(e);if(t)return t;if(typeof e==`string`)try{return S(JSON.parse(e))}catch{return}}function w(e,...t){for(let n of t){let t=e?.[n];if(typeof t==`string`&&t.trim())return t}}function T(e,...t){for(let n of t){let t=e?.[n];if(typeof t==`number`&&Number.isFinite(t))return t;if(typeof t==`string`&&t.trim()){let e=Number(t);if(Number.isFinite(e))return e}}}function E(e,...t){for(let n of t){let t=e?.[n];if(typeof t==`boolean`)return t}}function D(e){if(typeof e==`string`)return e;if(e==null)return``;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function O(e){return e.output!==void 0&&e.output!==null?e.output:e.result}function k(e){let t=C(e),n=C(t?.details),r={...t??{},...n??{}},i=r.result,a=w(r,`stdout`,`standardOutput`,`standard_output`),o=w(r,`stderr`,`standardError`,`standard_error`),s=r.error??r.errorMessage??r.evalue,c=s===void 0?void 0:D(s),l=E(r,`isError`,`is_error`)===!0||!!c,u=T(r,`durationMs`,`duration_ms`,`duration`),d=E(r,`kernelRestarted`,`kernel_restarted`),f=new Set([`stdout`,`stderr`,`standardOutput`,`standard_output`,`standardError`,`standard_error`,`error`,`errorMessage`,`evalue`,`durationMs`,`duration_ms`,`duration`,`kernelRestarted`,`kernel_restarted`,`status`,`isError`]),p=Object.keys(r).some(e=>!f.has(e));return{record:t,details:n,stdout:a,stderr:o,result:i,error:c,isError:l,durationMs:u,kernelRestarted:d,structured:!a&&!o&&!c&&(typeof i==`object`&&!!i||p)}}function A(e,t){let n=[];if(e.stdout&&n.push({label:`stdout`,content:e.stdout,language:`text`}),e.stderr&&n.push({label:`stderr`,content:e.stderr,language:`text`}),e.result!==void 0&&n.push({label:`result`,content:D(e.result),language:typeof e.result==`object`&&e.result!==null?`json`:`text`}),e.error?n.push({label:`reported-error`,content:e.error,language:`text`}):e.isError&&n.push({label:`reported-error`,content:`The tool reported an error.`,language:`text`}),n.length>0)return n;let r=e.details??e.record;if(r){let e={...r};if(delete e.details,delete e.isError,Object.keys(e).length>0)return[{label:`result`,content:D(e),language:`json`}]}let i=D(t);return i.trim()?[{label:`output`,content:i,language:`text`}]:[]}function j(e,t){return A(e,t).map(e=>`${e.label}\n${e.content}`).join(`
|
|
2
2
|
|
|
3
3
|
`)}function M(e){return C(e.input)??C(e.args)}function N(e,...t){for(let n of t){let t=e?.[n];if(Array.isArray(t))return t}}function P(e,t){return w(t.details??t.record,`diff`,`patch`)??w(e,`diff`,`patch`)}function F(e,t){return w(e,`path`,`filePath`,`filename`,`file`)??w(t.details??t.record,`path`,`filePath`,`filename`,`file`)??`workspace file`}function I(e){return e.split(`
|
|
4
|
-
`).map((e,t)=>({id:`${t}-${e.slice(0,16)}`,type:e.startsWith(`+`)&&!e.startsWith(`+++`)?`added`:e.startsWith(`-`)&&!e.startsWith(`---`)?`removed`:`context`,content:e}))}function L(e,t){let n=t.details??t.record,r=C(e?.plan)??C(n?.plan),i=N(e,`todos`)??N(r,`todos`,`items`)??N(n,`todos`,`newTodos`,`items`);return i?i.flatMap((e,t)=>{let n=S(e);if(!n)return[];let r=w(n,`content`,`title`,`text`,`label`);if(!r)return[];let i=w(n,`status`),a=i===`in_progress`||i===`in-progress`?`in-progress`:i===`completed`?`completed`:i===`cancelled`?`cancelled`:`pending`;return[{id:`${t}-${r}`,title:r,status:a}]}):[]}function R(e){let t=N(e.details??e.record,`results`,`sources`,`citations`);return t?t.flatMap((e,t)=>{let n=S(e);if(!n)return[];let r=w(n,`title`,`name`,`snippet`);if(!r)return[];let a=w(n,`url`,`link`),o=a&&i(a)?a:void 0;return[{id:`${t}-${r}`,title:r,url:o,domain:w(n,`domain`,`source`)}]}):[]}function z(e){return w(e.details??e.record,`url`,`imageUrl`,`image_url`)}function B(e,t){return S(e?.approval)??S(t.details?.approval)??S(t.record?.approval)}function V(e){let t=typeof e.type==`string`?e.type:`Tool`;return t.startsWith(`tool-`)?t.slice(5):t}function H(e,t){let n=typeof e.state==`string`?e.state:void 0;return n===`output-error`||n===`error`?`error`:n===`output-available`||n===`complete`||n===`success`?`success`:n===`cancelled`||n===`canceled`||n===`aborted`||n===`interrupted`?`cancelled`:e.error===void 0?n===`input-streaming`||n===`streaming`?t===`streaming`?`running`:`cancelled`:e.output!==void 0||e.result!==void 0?`success`:t===`streaming`?`running`:`cancelled`:`error`}function U(e,t){return t||e.toLowerCase().includes(`json`)?`json`:e.toLowerCase().includes(`bash`)||e.toLowerCase().includes(`shell`)?`bash`:e.toLowerCase().includes(`python`)?`python`:`text`}function W(e,t){if(!t)return;let n=e.toLowerCase();return n.includes(`bash`)||n.includes(`shell`)?`bash`:n.includes(`python`)?/^\s*%%bash(?:\s|$)/im.test(t)?`bash`:`python`:`text`}function G(e,t){if(!t)return;let n=e.toLowerCase();return n.includes(`ipython`)?`IPython`:n.includes(`bash`)||n.includes(`shell`)?`Bash`:n.includes(`python`)?`Python`:t===`json`?`JSON`:t===`text`?`Text`:t.toUpperCase()}var K=new WeakMap;function q(e,t){if(e&&typeof e==`object`){let n=K.get(e);if(n&&n.chatStatus===t)return n.value;let r=Y(e,t);return K.set(e,{chatStatus:t,value:r}),r}return Y(e,t)}function J(e){if(!e)return;let t=e.replace(/\s+/g,` `).replace(/(\bauthorization\b\s*[:=]\s*)(?:"(?:\\.|[^"\\])*(?:"|$)|'(?:\\.|[^'\\])*(?:'|$)|[a-z]+\s+[^\s,;'"\\]+|[^\s,;'"\\]+)/gi,`$1[redacted]`).replace(/(\b[a-z][a-z0-9+.-]*:\/\/)[^/@\s]+@/gi,`$1[redacted]@`).replace(/(\b(?:[a-z0-9]+_)*(?:api[_ -]?key|access[_ -]?(?:token|key)|auth(?:orization)?|credential|password|secret|token)\b\s*[:=]\s*)(?:(?:Basic|Bearer)\s+)?(?:"(?:\\.|[^"\\])*(?:"|$)|'(?:\\.|[^'\\])*(?:'|$)|[^\s,;"']+)/gi,`$1[redacted]`).replace(/(--(?:api-key|access-token|password|secret|token)\s+)(?:"(?:\\.|[^"\\])*(?:"|$)|'(?:\\.|[^'\\])*(?:'|$)|\S+)/gi,`$1[redacted]`).replace(/(\b[a-z][a-z0-9+.-]*:\/\/)[^\s/@]+@/gi,`$1[redacted]@`).trim();if(t)return t.length>96?`${t.slice(0,93)}…`:t}function Y(e,t){let n=S(e);if(!n)return;let r=V(n),i=r.toLowerCase(),a=M(n),o=O(n),s=k(o),c=H(n,t),l=w(a,`command`,`cmd`,`code`,`script`),u=X(a,l),d=W(r,l),f=[];s.durationMs!==void 0&&f.push(Z(s.durationMs)),s.kernelRestarted&&f.push(`kernel restarted`);let p=P(a,s),m=i.includes(`todo`)||i.includes(`plan`)?L(a,s):[],h=i.includes(`search`)||i.includes(`web`)||i.includes(`source`)||i.includes(`citation`)?R(s):[],g=i.includes(`image`)||i.includes(`generat`)?z(s):void 0,_=B(a,s),v=j(s,o),y=!!v.trim(),b=typeof n.toolCallId==`string`&&n.toolCallId?n.toolCallId:`${r}-${JSON.stringify(a??{})}`,x;return m.length>0?x={kind:`todo`,title:i.includes(`plan`)?`Plan`:`Todo list`,items:m}:h.length>0?x={kind:`citations`,citations:h}:g?x={kind:`image`,url:g}:p&&(i.includes(`edit`)||i.includes(`write`)||i.includes(`patch`))?x={kind:`diff`,file:F(a,s),lines:I(p),copyText:p}:(l||y||_||f.length>0)&&(x={kind:`output`,content:v,language:U(r,s.structured),structured:s.structured,sections:A(s,o),sourceCode:l,sourceLanguage:d,sourceLabel:G(r,d)}),{id:b,name:r,lowerName:i,status:c,input:a,output:o,outputSummary:s,command:l,traceDescription:u,durationLabel:s.durationMs===void 0?void 0:Z(s.durationMs),metadata:f,approval:_,detail:x}}function X(e,t){return J(w(e,`path`,`filePath`,`filename`,`file`)??t??w(e,`query`,`pattern`,`url`,`description`,`task`,`prompt`))}function Z(e){if(e<1e3)return`${Math.round(e)} ms`;if(e<6e4)return`${(e/1e3).toFixed(+(e<1e4))} s`;let t=Math.floor(e/6e4),n=Math.round(e%6e4/1e3);return n===60?`${t+1} min`:n>0?`${t} min ${n} s`:`${t} min`}export{
|
|
4
|
+
`).map((e,t)=>({id:`${t}-${e.slice(0,16)}`,type:e.startsWith(`+`)&&!e.startsWith(`+++`)?`added`:e.startsWith(`-`)&&!e.startsWith(`---`)?`removed`:`context`,content:e}))}function L(e,t){let n=t.details??t.record,r=C(e?.plan)??C(n?.plan),i=N(e,`todos`)??N(r,`todos`,`items`)??N(n,`todos`,`newTodos`,`items`);return i?i.flatMap((e,t)=>{let n=S(e);if(!n)return[];let r=w(n,`content`,`title`,`text`,`label`);if(!r)return[];let i=w(n,`status`),a=i===`in_progress`||i===`in-progress`?`in-progress`:i===`completed`?`completed`:i===`cancelled`?`cancelled`:`pending`;return[{id:`${t}-${r}`,title:r,status:a}]}):[]}function R(e){let t=N(e.details??e.record,`results`,`sources`,`citations`);return t?t.flatMap((e,t)=>{let n=S(e);if(!n)return[];let r=w(n,`title`,`name`,`snippet`);if(!r)return[];let a=w(n,`url`,`link`),o=a&&i(a)?a:void 0;return[{id:`${t}-${r}`,title:r,url:o,domain:w(n,`domain`,`source`)}]}):[]}function z(e){return w(e.details??e.record,`url`,`imageUrl`,`image_url`)}function B(e,t){return S(e?.approval)??S(t.details?.approval)??S(t.record?.approval)}function V(e){let t=typeof e.type==`string`?e.type:`Tool`;return t.startsWith(`tool-`)?t.slice(5):t}function H(e,t){let n=typeof e.state==`string`?e.state:void 0;return n===`output-error`||n===`error`?`error`:n===`output-available`||n===`complete`||n===`success`?`success`:n===`cancelled`||n===`canceled`||n===`aborted`||n===`interrupted`?`cancelled`:e.error===void 0?n===`input-streaming`||n===`streaming`?t===`streaming`?`running`:`cancelled`:e.output!==void 0||e.result!==void 0?`success`:t===`streaming`?`running`:`cancelled`:`error`}function U(e,t){return t||e.toLowerCase().includes(`json`)?`json`:e.toLowerCase().includes(`bash`)||e.toLowerCase().includes(`shell`)?`bash`:e.toLowerCase().includes(`python`)?`python`:`text`}function W(e,t){if(!t)return;let n=e.toLowerCase();return n.includes(`bash`)||n.includes(`shell`)?`bash`:n.includes(`python`)?/^\s*%%bash(?:\s|$)/im.test(t)?`bash`:`python`:`text`}function G(e,t){if(!t)return;let n=e.toLowerCase();return n.includes(`ipython`)?`IPython`:n.includes(`bash`)||n.includes(`shell`)?`Bash`:n.includes(`python`)?`Python`:t===`json`?`JSON`:t===`text`?`Text`:t.toUpperCase()}var K=new WeakMap;function q(e,t){if(e&&typeof e==`object`){let n=K.get(e);if(n&&n.chatStatus===t)return n.value;let r=Y(e,t);return K.set(e,{chatStatus:t,value:r}),r}return Y(e,t)}function J(e){if(!e)return;let t=e.replace(/\s+/g,` `).replace(/(\bauthorization\b\s*[:=]\s*)(?:"(?:\\.|[^"\\])*(?:"|$)|'(?:\\.|[^'\\])*(?:'|$)|[a-z]+\s+[^\s,;'"\\]+|[^\s,;'"\\]+)/gi,`$1[redacted]`).replace(/(\b[a-z][a-z0-9+.-]*:\/\/)[^/@\s]+@/gi,`$1[redacted]@`).replace(/(\b(?:[a-z0-9]+_)*(?:api[_ -]?key|access[_ -]?(?:token|key)|auth(?:orization)?|credential|password|secret|token)\b\s*[:=]\s*)(?:(?:Basic|Bearer)\s+)?(?:"(?:\\.|[^"\\])*(?:"|$)|'(?:\\.|[^'\\])*(?:'|$)|[^\s,;"']+)/gi,`$1[redacted]`).replace(/(--(?:api-key|access-token|password|secret|token)\s+)(?:"(?:\\.|[^"\\])*(?:"|$)|'(?:\\.|[^'\\])*(?:'|$)|\S+)/gi,`$1[redacted]`).replace(/(\b[a-z][a-z0-9+.-]*:\/\/)[^\s/@]+@/gi,`$1[redacted]@`).trim();if(t)return t.length>96?`${t.slice(0,93)}…`:t}function Y(e,t){let n=S(e);if(!n)return;let r=V(n),i=r.toLowerCase(),a=M(n),o=O(n),s=k(o),c=H(n,t),l=w(a,`command`,`cmd`,`code`,`script`),u=X(a,l),d=W(r,l),f=[];s.durationMs!==void 0&&f.push(Z(s.durationMs)),s.kernelRestarted&&f.push(`kernel restarted`);let p=P(a,s),m=i.includes(`todo`)||i.includes(`plan`)?L(a,s):[],h=i.includes(`search`)||i.includes(`web`)||i.includes(`source`)||i.includes(`citation`)?R(s):[],g=i.includes(`image`)||i.includes(`generat`)?z(s):void 0,_=B(a,s),v=j(s,o),y=!!v.trim(),b=typeof n.toolCallId==`string`&&n.toolCallId?n.toolCallId:`${r}-${JSON.stringify(a??{})}`,x;return m.length>0?x={kind:`todo`,title:i.includes(`plan`)?`Plan`:`Todo list`,items:m}:h.length>0?x={kind:`citations`,citations:h}:g?x={kind:`image`,url:g}:p&&(i.includes(`edit`)||i.includes(`write`)||i.includes(`patch`))?x={kind:`diff`,file:F(a,s),lines:I(p),copyText:p}:(l||y||_||f.length>0)&&(x={kind:`output`,content:v,language:U(r,s.structured),structured:s.structured,sections:A(s,o),sourceCode:l,sourceLanguage:d,sourceLabel:G(r,d)}),{id:b,name:r,lowerName:i,status:c,input:a,output:o,outputSummary:s,command:l,traceDescription:u,durationLabel:s.durationMs===void 0?void 0:Z(s.durationMs),metadata:f,approval:_,detail:x}}function X(e,t){return J(w(e,`path`,`filePath`,`filename`,`file`)??t??w(e,`query`,`pattern`,`url`,`description`,`task`,`prompt`))}function Z(e){if(e<1e3)return`${Math.round(e)} ms`;if(e<6e4)return`${(e/1e3).toFixed(+(e<1e4))} s`;let t=Math.floor(e/6e4),n=Math.round(e%6e4/1e3);return n===60?`${t+1} min`:n>0?`${t} min ${n} s`:`${t} min`}export{f as a,m as i,x as n,o,v as r,q as t};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/openui-renderer-DG-iML7M.js","assets/rolldown-runtime-hePW80VL.js","assets/react-Cvdyeg_0.js","assets/react-dom-B7th3XGm.js","assets/jsx-runtime-NZYk81nU.js","assets/with-selector-B_VDO56x.js","assets/utils-oBThwhjm.js","assets/card-Dj1SnGUU.js","assets/useButton-CvcmqA2s.js","assets/FloatingPortal-D8-EPDs2.js","assets/createBaseUIEventDetails-DIxvaz-Y.js","assets/select-DYh951qi.js","assets/useScrollLock-BcsteNzT.js","assets/useBaseUiId-lKfDDIcw.js","assets/check-BTwIaCtI.js","assets/createLucideIcon-CQY2ECfR.js","assets/chevron-down-Bse1ggZM.js","assets/input-CBoTMPC_.js","assets/useControlled-CkQSkSv1.js","assets/surfaces-BUjUJTyD.js","assets/open-panel-action-message-SdA1VU42.js","assets/chat-hpzV6IA6.js","assets/markdown-CvBfbPCn.js","assets/file-code-corner-BkDULqko.js","assets/button-CWYjn8Zk.js","assets/dist-BogNzeK9.js","assets/clsx-DB0hHKMi.js","assets/preload-helper-BLdHbfdN.js","assets/chunk-D32TOXHM-BM74MRmz.js","assets/space-separated-tokens-Ciu5hotc.js","assets/lib-CJ9xR_xY.js","assets/lib-BvGd2E-G.js","assets/code-block-pKKmFZ5w.js","assets/arrow-left-Bfkw0vUM.js","assets/createLucideIcon-CR62Fawq.js","assets/arrow-up-CzxAS3J9.js","assets/blocks-BmVH6RoL.js","assets/boxes-P3I8BDys.js","assets/calendar-days-CXqvsoor.js","assets/check-check-Btqs36TD.js","assets/check-IbKELFd2.js","assets/chevron-down-D5amraNy.js","assets/chevron-left-AyR1xUDb.js","assets/chevron-right-E-3OemuN.js","assets/chevron-up-DCTJ3XA-.js","assets/circle-alert-CSVDHZOw.js","assets/copy-CLOAxiYY.js","assets/ellipsis-dxrmXw37.js","assets/globe-eVRxbI0y.js","assets/image-1Usfao59.js","assets/info-DJfctP7D.js","assets/lightbulb-BwqxgRpD.js","assets/link-DreltefI.js","assets/list-VCLXYdos.js","assets/loader-circle-BAwTuoks.js","assets/menu-ykZJO64E.js","assets/message-square-CZNlkRgV.js","assets/panel-left-D8Dtrg9O.js","assets/rotate-ccw-3h4Oynp3.js","assets/search-yqNIhSMn.js","assets/share-2-2ysz1TZP.js","assets/square-code-BL_X7jLn.js","assets/square-pen-C4QgEtsH.js","assets/square-DS8IK_lK.js","assets/trash-2-BhumKxcC.js","assets/type-H-QEoR0y.js","assets/x-CXE81yPy.js","assets/character-entities-legacy-Wut6vMuj.js","assets/alert-CzWGeumf.js","assets/badge-CzQFgmVK.js","assets/useRender-CzJUrRlB.js","assets/dist-BJJVCio8.js","assets/provider-catalog-CLEDlH_v.js","assets/dialog-CK8dym6z.js","assets/DialogTitle-BlVq-tcv.js","assets/x-DEU6H3M-.js","assets/switch-BrxDfsX6.js","assets/safe-external-url-D3PJJIcM.js","assets/openui-utils-DawGoQNp.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{t as n}from"./react-dom-B7th3XGm.js";import{t as r}from"./jsx-runtime-NZYk81nU.js";import{n as i,r as a,t as o}from"./utils-oBThwhjm.js";import{o as s,r as c,u as l}from"./ease-DYVhTl2n.js";import{n as u,t as d}from"./use-reduced-motion-CFEp5oKr.js";import{o as f}from"./useButton-CvcmqA2s.js";import{t as p}from"./createLucideIcon-CQY2ECfR.js";import{t as m}from"./chevron-right-BPCB1mOg.js";import{n as h,t as g}from"./file-text-cqOanUYv.js";import{t as _}from"./circle-check-DBhaebaM.js";import{n as v}from"./wrench-BXX_Ah2s.js";import{a as y,n as b,t as x}from"./tool-output-normalizer-DDU09Zc6.js";import{t as S}from"./loader-circle-BmKYM_C4.js";import{t as C}from"./x-DEU6H3M-.js";import{t as w}from"./dist-BogNzeK9.js";import{t as T}from"./preload-helper-BLdHbfdN.js";import{t as E}from"./useRender-CzJUrRlB.js";import{t as D}from"./openui-utils-DawGoQNp.js";import"./tokens-DinEQBG4.js";import{i as O}from"./workspace-path-nav-D-77sJ_A.js";import{t as k}from"./reasoning-line-DGdPUMwT.js";import{t as A}from"./use-hover-capable-CLq8BADD.js";import{a as j,c as M,i as N,n as P,o as F,r as I,s as L,t as R}from"./trace-IsV5RRvM.js";var z={name:`chevron-left`,size:24,node:[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]};z.node;var B=p(z),V={name:`file-braces`,size:24,node:[[`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`}]],aliases:[`file-json`]};V.node;var ee=p(V),H={name:`file-code`,size:24,node:[[`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`}]]};H.node;var te=p(H),ne={name:`rotate-cw`,size:24,node:[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]};ne.node;var re=p(ne),U=e(t(),1),W=r(),ie=(0,U.lazy)(()=>T(async()=>{let{GenerativeTextRenderer:e}=await import(`./openui-renderer-DG-iML7M.js`);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,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78])).then(({GenerativeTextRenderer:e})=>({default:e})));function ae({className:e,content:t}){return(0,W.jsx)(`div`,{className:e?`${e} whitespace-pre-wrap`:`whitespace-pre-wrap`,children:t})}function oe(e){return(0,U.useMemo)(()=>D(e.content).some(e=>e.type===`openui`),[e.content])?(0,W.jsx)(U.Suspense,{fallback:(0,W.jsx)(ae,{className:e.className,content:e.content}),children:(0,W.jsx)(ie,{...e})}):(0,W.jsx)(O,{className:e.className,content:e.content,isStreaming:e.isStreaming})}function se(e){return e.status===`running`||e.status===`recovering`?`streaming`:e.status===`error`||e.status===`failed`?`error`:`ready`}function ce(e,t){let n=new Map(e.map(e=>[e.id,e])),r=new Set,i=[],a=e=>{if(r.has(e))return;r.add(e);let o=n.get(e);o&&i.push(o);for(let n of t?.nodes[e]?.childrenIds??[])a(n)};for(let e of t?.rootChildrenIds??[])a(e);for(let t of e)a(t.id);return i}function le(e){return e===`done`?(0,W.jsx)(_,{className:`size-3.5 text-success`}):e===`error`||e===`failed`?(0,W.jsx)(h,{className:`size-3.5 text-destructive`}):e===`cancelled`?(0,W.jsx)(v,{className:`size-3.5 text-muted-foreground`}):e===`recovering`?(0,W.jsx)(re,{className:`size-3.5 animate-spin text-warning`}):(0,W.jsx)(S,{className:`size-3.5 animate-spin text-primary`})}var G=(0,U.createContext)({from:`assistant`}),ue={type:`spring`,stiffness:480,damping:32,mass:.62},de={duration:.12,ease:c,delay:.04};function fe({from:e,animateIn:t=!1,children:n,className:r,initial:i,animate:a,transition:s,exit:c,style:u,...f}){let p=d()??!1,m=(0,U.useMemo)(()=>({from:e}),[e]);return(0,W.jsx)(G.Provider,{value:m,children:(0,W.jsx)(l.article,{"data-slot":`message`,"data-from":e,"aria-label":f[`aria-label`]??`${e} message`,initial:i??(t&&!p?{opacity:0,transform:`translateY(8px) scale(0.95)`}:!1),animate:a??(t&&!p?{opacity:1,transform:`translateY(0px) scale(1)`}:{opacity:1}),exit:c??(p?{opacity:0}:{opacity:0,transform:`translateY(-3px) scale(0.99)`}),transition:s??(p?{duration:.12}:ue),style:{transformOrigin:e===`user`?`100% 100%`:`0% 100%`,...u},className:o(`group/message flex w-full items-start gap-2`,e===`user`?`flex-row-reverse`:`flex-row`,r),...f,children:n})})}function pe({className:e,...t}){let{from:n}=(0,U.useContext)(G);return(0,W.jsx)(`div`,{"data-slot":`message-content`,className:o(`flex min-w-0 flex-1 flex-col gap-1.5`,n===`user`?`items-end`:`items-start`,e),...t})}function me({variant:e=`ghost`,align:t,className:n,children:r,initial:i,animate:a,exit:c,transition:u,layout:f,...p}){let m=d()??!1,{from:h}=(0,U.useContext)(G),g=t??(h===`user`?`end`:`start`);return(0,W.jsx)(l.div,{"data-slot":`message-bubble`,"data-align":g,"data-variant":e,layout:f,initial:i??!1,animate:a,exit:c??(m?{opacity:0}:{opacity:0,y:-3,scale:.99}),transition:u??(m?{duration:.12}:s),className:o(`group/bubble flex w-full flex-col`,g===`end`?`items-end`:`items-start`,n),...p,children:r})}function he({className:e,children:t,ref:n,...r}){let i=d()??!1;return(0,W.jsx)(`div`,{ref:n,"data-slot":`message-bubble-content`,className:o(`relative z-0 w-full max-w-none min-w-9 text-sm leading-6 text-foreground`,e),...r,children:(0,W.jsx)(l.div,{initial:!1,animate:{opacity:1},transition:i?{duration:.12,ease:c}:de,className:`relative`,children:t})})}var K=56,ge=88;function _e(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 q(e){return((e.querySelector(`[data-slot="message-bubble-content"]`)??e.querySelector(`[data-slot="message-content"]`)??e).textContent??``).replace(/\s+/g,` `).trim()}function ve(e,t){let n=q(e);if(!n)return{label:`Message`,description:void 0};if(n.length<=K){let e=t?q(t):``;return{label:n,description:e?_e(e,ge):void 0}}let r=n.slice(0,K).lastIndexOf(` `),i=r>K*.65?r:K,a=`${n.slice(0,i).trim()}…`,o=t?q(t):n.slice(i).trim();return{label:a,description:o?_e(o,ge):void 0}}function ye({navigation:e,followThreshold:t,contentRef:n,viewportRef:r,reduce:i,smooth:a,scrollToEnd:o,setFollowing:s,markProgrammaticScroll:c}){let l=(0,U.useRef)(void 0),u=(0,U.useRef)(new WeakMap),d=(0,U.useRef)(0),f=(0,U.useRef)(new Map),[p,m]=(0,U.useState)([]),[h,g]=(0,U.useState)(``),[_,v]=(0,U.useState)(!1),y=(0,U.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,U.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=ve(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,U.useCallback)(()=>{e===`rail`&&(l.current&&cancelAnimationFrame(l.current),l.current=requestAnimationFrame(()=>{b(),y()}))},[e,b,y]);return(0,U.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,U.useEffect)(()=>()=>{l.current&&cancelAnimationFrame(l.current)},[]),{activeRailId:h,railItems:p,railOverflowing:_,scheduleRailSync:x,scrollToRailItem:(0,U.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 be({item:e}){return(0,W.jsxs)(`div`,{"data-slot":`preview-rail-card`,className:`rounded-2xl border border-border bg-card p-4 shadow-sm`,children:[(0,W.jsx)(`p`,{"data-slot":`preview-rail-title`,className:`font-medium text-card-foreground`,children:e.label}),e.description?(0,W.jsx)(`div`,{"data-slot":`preview-rail-description`,className:`mt-1 text-sm leading-6 text-muted-foreground`,children:e.description}):null]})}function xe({items:e,label:t=`Section navigation`,orientation:n=`vertical`,activeId:r,defaultActiveId:i,onActiveChange:a,onItemSelect:f,renderPreview:p,showPreview:m=!0,previewSide:h=`after`,highlightActive:g=!1,itemSize:_=24,children:v,className:y,railClassName:b,previewContainerClassName:x,previewClassName:S}){let C=(0,U.useId)(),w=d(),T=A(),[E,D]=(0,U.useState)(i??e[0]?.id??``),[O,k]=(0,U.useState)(null),[j,M]=(0,U.useState)(null),N=r??E,P=e.some(e=>e.id===N)?N:e[0]?.id??``,F=O??j??``,I=F||(g?P:``),L=e.findIndex(e=>e.id===I),R=e.length?`repeat(${e.length}, ${_}px)`:void 0,z=n===`horizontal`,B=e=>{r===void 0&&D(e),a?.(e)};return(0,W.jsxs)(l.div,{layoutRoot:!0,onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||M(null)},className:o(`isolate relative flex w-full overflow-visible`,z?`min-h-64 flex-col items-center justify-center`:`min-h-80`,y),children:[(0,W.jsx)(`nav`,{"aria-label":t,onPointerLeave:()=>k(null),style:z?{gridTemplateColumns:R}:{gridTemplateRows:R},className:o(`relative z-10 grid shrink-0`,z?`h-12 w-fit max-w-full self-center justify-center`:`w-12 content-center`,b),children:e.map((e,t)=>{let n=e.id===P,r=e.id===I,i=L<0?1/0:Math.abs(t-L),a=r?1:i===1?.68:i===2?.44:.25,c=(0,W.jsx)(W.Fragment,{children:(0,W.jsx)(l.span,{"data-slot":`preview-rail-tick`,"aria-hidden":`true`,animate:z?{scaleY:a}:{scaleX:a},transition:w?{duration:0}:s,className:o(`block bg-current`,z?`h-12 w-0.5 origin-bottom`:`h-0.5 w-12 origin-left`,r?`text-foreground`:void 0)})}),u=o(`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`,z?`h-12 w-6 items-end justify-center`:`h-6 w-12 items-center`),d=z?{width:_}:{height:_},p=()=>{T&&k(e.id)},m=t=>{t.matches(`:focus-visible`)&&M(e.id)},h=()=>{B(e.id),f?.(e)};return e.href?(0,W.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:p,onMouseEnter:p,onPointerDown:()=>M(null),onFocus:e=>m(e.currentTarget),onClick:h,style:d,className:u,children:c},e.id):(0,W.jsx)(`button`,{"data-slot":`preview-rail-item`,type:`button`,"aria-label":e.ariaLabel??e.label,"aria-current":n?`location`:void 0,onPointerEnter:p,onMouseEnter:p,onPointerDown:()=>M(null),onFocus:e=>m(e.currentTarget),onClick:h,style:d,className:u,children:c},e.id)})}),m?(0,W.jsx)(`div`,{"aria-hidden":`true`,style:z?{gridTemplateColumns:R}:{gridTemplateRows:R},className:o(`pointer-events-none absolute z-50 grid`,z?`top-1/2 left-1/2 h-5 w-fit max-w-full -translate-x-1/2 -translate-y-1/2 justify-center`:h===`before`?`inset-y-0 right-16 left-4 content-center`:`inset-y-0 right-4 left-16 content-center`,x),children:e.map(e=>(0,W.jsx)(`div`,{style:z?{width:_}:{height:_},className:o(`relative flex items-center`,z?`justify-center`:void 0),children:(0,W.jsx)(u,{mode:`wait`,initial:!1,children:e.id===F?(0,W.jsx)(l.div,{initial:w?{opacity:0}:{opacity:0,y:4,filter:`blur(6px)`},animate:w?{opacity:1}:{opacity:1,y:0,filter:`blur(0px)`},exit:w?{opacity:0}:{opacity:0,y:-2,filter:`blur(4px)`,transition:{duration:.12,ease:c}},transition:{duration:w?0:.18,ease:c},className:o(z?`absolute bottom-12 left-1/2 w-72 -translate-x-1/2`:o(`w-full max-w-sm`,h===`before`&&`ml-auto`),S),children:(0,W.jsx)(l.div,{layoutId:`preview-rail-card-${C}`,transition:w?{duration:0}:s,children:p?p(e):(0,W.jsx)(be,{item:e})})},e.id):null})},e.id))}):null,v?(0,W.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1`,children:v}):null]})}function Se({followOutput:e=!0,followThreshold:t=56,smooth:n=!0,onFollowChange:r,label:i=`Conversation`,busy:a,navigation:s,navigationLabel:c=`Message navigation`,viewportClassName:l,contentClassName:u,railClassName:f,viewportRef:p,viewportProps:m,contentProps:h,className:g,children:_,...v}){let y=d()??!1,b=(0,U.useRef)(null),x=(0,U.useRef)(null),S=(0,U.useRef)(e),C=(0,U.useRef)(!1),w=(0,U.useRef)(void 0),T=(0,U.useRef)(void 0),{onScroll:E,onWheel:D,onTouchStart:O,onKeyDown:k,...A}=m??{},j=(0,U.useCallback)(e=>{b.current=e,typeof p==`function`?p(e):p&&(p.current=e)},[p]),M=(0,U.useCallback)(e=>{S.current!==e&&(S.current=e,r?.(e))},[r]),N=(0,U.useCallback)(e=>{C.current=!0,w.current&&window.clearTimeout(w.current),w.current=window.setTimeout(()=>{C.current=!1},e===`smooth`?320:0)},[]),P=(0,U.useCallback)(e=>{let t=b.current;t&&(N(e),typeof t.scrollTo==`function`?t.scrollTo({top:t.scrollHeight,behavior:e}):t.scrollTop=t.scrollHeight)},[N]),{activeRailId:F,railItems:I,railOverflowing:L,scheduleRailSync:R,scrollToRailItem:z}=ye({navigation:s,followThreshold:t,contentRef:x,viewportRef:b,reduce:y,smooth:n,scrollToEnd:P,setFollowing:M,markProgrammaticScroll:N}),B=(0,U.useEffectEvent)(R),V=(0,U.useEffectEvent)(P),ee=(0,U.useCallback)(()=>{let e=b.current;if(!e||C.current)return;let n=e.scrollHeight-e.scrollTop-e.clientHeight;M(n<=t),R()},[t,R,M]),H=(0,U.useCallback)(()=>{C.current=!1},[]);(0,U.useLayoutEffect)(()=>{if(S.current=e,e)return T.current=requestAnimationFrame(()=>V(`auto`)),()=>{T.current&&cancelAnimationFrame(T.current)}},[e]),(0,U.useEffect)(()=>{let t=x.current;if(!t||typeof ResizeObserver>`u`)return;let r=new ResizeObserver(()=>{B(),!(!e||!S.current)&&V(y||!n?`auto`:`smooth`)});return r.observe(t),()=>r.disconnect()},[e,y,n]),(0,U.useEffect)(()=>()=>{w.current&&window.clearTimeout(w.current),T.current&&cancelAnimationFrame(T.current)},[]);let te=(0,W.jsx)(`section`,{ref:j,"aria-label":i,...A,onScroll:e=>{ee(),E?.(e)},onWheel:e=>{H(),D?.(e)},onTouchStart:e=>{H(),O?.(e)},onKeyDown:e=>{[`ArrowUp`,`PageUp`,`Home`].includes(e.key)&&H(),k?.(e)},className:o(`h-full overflow-y-auto overscroll-contain outline-none [overflow-anchor:none] focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring`,s===`rail`?`[-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`:`[scrollbar-gutter:stable]`,l,s===`rail`&&L&&`pr-10`),children:(0,W.jsx)(`div`,{ref:x,role:`log`,"aria-live":a?`off`:`polite`,"aria-relevant":`additions text`,"aria-busy":a,className:u,...h,children:_})});return(0,W.jsx)(`div`,{"data-slot":`message-scroller`,className:o(`min-h-0`,g),...v,children:s===`rail`?(0,W.jsx)(xe,{items:L?I:[],label:c,activeId:F,onItemSelect:z,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:o(`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`,L?`pointer-events-auto opacity-100`:`pointer-events-none opacity-0`,f),children:te}):te})}function J(e){return typeof e==`object`&&!!e}function Ce(e){return J(e)&&e.type===`text`&&typeof e.text==`string`}function we(e){return J(e)&&e.type===`error`&&typeof e.message==`string`}function Te(e){return J(e)&&e.type===`payload`&&typeof e.kind==`string`&&typeof e.title==`string`}function Y(e){if(!J(e))return!1;let t=e.type;return t===`dynamic-tool`||typeof t==`string`&&t.startsWith(`tool-`)}function Ee(e){if(typeof e==`string`)return e;if(e===void 0)return``;try{return JSON.stringify(e,null,2)??``}catch{return String(e)}}function De({part:e}){let t=Ee(e.payload);return e.kind===`agent_message`?t||e.text?(0,W.jsxs)(`section`,{"data-payload-kind":e.kind,className:`w-full min-w-0 text-xs text-muted-foreground`,children:[e.text?(0,W.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,W.jsxs)(`details`,{children:[(0,W.jsx)(`summary`,{className:`w-fit cursor-pointer py-1 font-medium`,children:`Details`}),(0,W.jsx)(`pre`,{className:`m-0 max-h-60 overflow-auto whitespace-pre-wrap break-words border-l border-border pl-3 font-mono text-xs leading-5`,children:t})]}):null]}):null:(0,W.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:[e.title===`Details`?null:(0,W.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,W.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,W.jsxs)(`details`,{className:`border-t border-border/50 px-3 py-2`,children:[(0,W.jsx)(`summary`,{className:`cursor-pointer text-xs font-medium text-muted-foreground`,children:`Payload`}),(0,W.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]})}var Oe=[],ke=(0,U.memo)(function({title:e=`Unable to complete request`,message:t,className:n}){return(0,W.jsx)(`div`,{className:o(`flex justify-start`,n),children:(0,W.jsxs)(`div`,{className:`rounded-lg border border-destructive/30 bg-destructive/10 px-4 py-2.5 text-sm text-foreground`,children:[(0,W.jsx)(`div`,{className:`font-medium text-foreground`,children:e}),(0,W.jsx)(`div`,{className:`mt-0.5 text-muted-foreground`,children:t})]})})}),Ae=`tool-call:`,je=`unkeyed-tool:`;function Me(e,t,n){return t.toolCallId?`${Ae}${t.toolCallId}`:`${je}${e}:${t.type}:${n}`}function Ne(e,t){let{messageId:n,isLast:r,isStreaming:i,suppressTextWhenPlanWrite:a=!1,ToolRendererComponent:o,TextRendererComponent:s,toolRenderers:c,onOpenUIAction:l,onOpenUIArtifactReady:u,onOpenArtifact:d,artifactByToolCallId:f,onOpenToolArtifact:p}=t,m=[],h=[],g=a&&e.some(e=>Y(e)&&e.type===`tool-PlanWrite`),_=new Set(e.filter(e=>Y(e)&&(e.type===`tool-Task`||e.type===`tool-Agent`)&&typeof e.toolCallId==`string`).map(e=>e.toolCallId)),v=new Map,y=new Set,S=new Map,C=()=>{let e=h.splice(0).join(`
|
|
3
|
+
|
|
4
|
+
`);e&&m.push((0,W.jsx)(`div`,{className:`group/assistant-text text-body [&_a]:font-medium [&_a]:underline [&_a]:underline-offset-4 [&_ol]:my-2 [&_ol]:list-decimal [&_ol]:pl-5 [&_p+p]:mt-2 [&_ul]:my-2 [&_ul]:list-disc [&_ul]:pl-5`,children:(0,W.jsx)(s,{content:e,isStreaming:i,messageId:n,onOpenUIAction:l,onOpenUIArtifactReady:u,onOpenArtifact:d,className:`leading-relaxed [&_p]:leading-relaxed`})},`${n}-text-${m.length}`))};for(let t of e){if(!Y(t)||t.type===`tool-TaskOutput`||!t.toolCallId||!t.toolCallId.includes(`:`))continue;let e=t.toolCallId.split(`:`)[0];_.has(e)&&(v.has(e)||v.set(e,[]),v.get(e).push(t),y.add(t.toolCallId))}let w=0;for(;w<e.length;){let t=e[w];if(typeof t==`object`&&t&&`type`in t&&t.type===`reasoning`&&`text`in t&&typeof t.text==`string`&&`contentIndex`in t&&typeof t.contentIndex==`number`&&`state`in t&&typeof t.state==`string`){C(),m.push((0,W.jsx)(k,{text:t.text,streaming:r&&i&&t.state===`streaming`,durationMs:`durationMs`in t&&typeof t.durationMs==`number`?t.durationMs:void 0},`${n}-reasoning-${t.contentIndex}`)),w++;continue}if(Y(t)&&t.type===`tool-TaskOutput`){w++;continue}if(Ce(t)){let e=t.text;e&&!g&&h.push(e),w++;continue}if(we(t)){C(),m.push((0,W.jsx)(ke,{title:t.title,message:t.message},`${n}-error-${t.title}-${t.message}`)),w++;continue}if(Te(t)){C(),m.push((0,W.jsx)(De,{part:t},`${n}-payload-${w}`)),w++;continue}if(Y(t)){if(t.type===`tool-Question`){w++;continue}if(t.toolCallId&&y.has(t.toolCallId)){w++;continue}C();let e=typeof t.state==`string`?t.state:``,a=r&&i&&(e===`input-streaming`||e===`streaming`)?`streaming`:void 0,s=e===`input-available`||e===`pending`,l=x(t,a),u=b(t.type.replace(/^tool-/,``)),d=l?.status===`error`,h=l?.status===`cancelled`,g=`Details for ${t.type.replace(/^tool-/,``)}${t.toolCallId?` (${t.toolCallId})`:``}`,_=t.toolCallId?f?.get(t.toolCallId):void 0,T=t.toolCallId,E=(t.type===`tool-Task`||t.type===`tool-Agent`)&&T?v.get(T)??Oe:void 0,D=t.toolCallId?0:S.get(t.type)??0;t.toolCallId||S.set(t.type,D+1),m.push((0,W.jsxs)(R,{className:`my-1 flex-row items-center`,"data-testid":`assistant-tool-trace`,children:[(0,W.jsxs)(P,{defaultOpen:t.type===`tool-PlanWrite`&&!!t.input?.pendingDecision,children:[(0,W.jsx)(N,{"aria-label":g,children:(0,W.jsxs)(L,{status:d?`error`:a?`running`:s?`pending`:void 0,children:[(0,W.jsx)(F,{children:(0,W.jsx)(u,{})}),(0,W.jsx)(M,{children:t.type.replace(/^tool-/,``)}),l?.traceDescription?(0,W.jsx)(j,{className:`max-w-48 truncate`,title:l.traceDescription,children:l.traceDescription}):null,(0,W.jsx)(j,{className:l?.outputSummary.isError?`text-destructive`:void 0,children:d?`failed`:a?`running`:s?`waiting`:h?`cancelled`:l?.outputSummary.isError?`reported error`:`done`}),l?.durationLabel?(0,W.jsx)(j,{children:l.durationLabel}):null]})}),(0,W.jsx)(I,{children:(0,W.jsx)(o,{part:t,nestedTools:E,chatStatus:a,toolRenderers:c,insideTrace:!0})})]}),_&&p?(0,W.jsx)(`button`,{type:`button`,className:`shrink-0 text-micro underline`,"aria-label":`Open ${_.title} in ${_.kind===`ipython`?`REPL`:`artifacts`}`,onClick:()=>p(_.id,_.kind===`ipython`?`repl`:`artifacts`),children:`Open`}):null]},Me(n,t,D))),w++;continue}w++}return C(),m}var Pe=e(n(),1);function Fe({open:e,onClose:t,images:n,initialIndex:r=0}){let[i,a]=(0,U.useState)(r),s=n.length>1;(0,U.useEffect)(()=>{e&&a(r)},[e,r]);let c=(0,U.useCallback)(e=>{e?.stopPropagation(),a(e=>e>0?e-1:n.length-1)},[n.length]),l=(0,U.useCallback)(e=>{e?.stopPropagation(),a(e=>e<n.length-1?e+1:0)},[n.length]),u=(0,U.useEffectEvent)(e=>{switch(e.key){case`ArrowLeft`:e.preventDefault(),s&&c();break;case`ArrowRight`:e.preventDefault(),s&&l()}});(0,U.useEffect)(()=>{if(!e)return;let t=e=>u(e);return window.addEventListener(`keydown`,t,!0),()=>window.removeEventListener(`keydown`,t,!0)},[e]),(0,U.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,U.useRef)(null),f=(0,U.useEffectEvent)(e=>{d.current&&e.target===d.current&&t()});if((0,U.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,Pe.createPortal)((0,W.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,W.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,W.jsx)(C,{className:`size-5`})}),s&&(0,W.jsx)(`button`,{type:`button`,onClick:c,"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,W.jsx)(B,{className:`size-6`})}),(0,W.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}),s&&(0,W.jsx)(`button`,{type:`button`,onClick:l,"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,W.jsx)(m,{className:`size-6`})}),s&&(0,W.jsxs)(`div`,{className:`absolute bottom-6 left-1/2 flex -translate-x-1/2 flex-col items-center gap-3`,children:[(0,W.jsx)(`div`,{className:`flex gap-2`,children:n.map((e,t)=>(0,W.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),a(t)},"aria-label":`Go to image ${t+1}`,className:o(`size-2 rounded-full transition-[background-color,transform] duration-150`,t===i?`scale-125 bg-white`:`bg-white/40 hover:bg-white/60`)},e.url))}),(0,W.jsxs)(`span`,{className:`text-sm tabular-nums text-white/70`,children:[i+1,` / `,n.length]})]})]}),document.body):null}function Ie(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function Le(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 Re(e){switch(e){case`image`:return(0,W.jsx)(y,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`});case`code`:return(0,W.jsx)(te,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`});case`data`:return(0,W.jsx)(ee,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`});default:return(0,W.jsx)(g,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`})}}function ze({id:e,filename:t,size:n,isImage:r,url:i,onRemove:a,className:s,display:c=`chip`,enableImagePreview:l=!0}){let[u,d]=(0,U.useState)(!1),[f,p]=(0,U.useState)(!1),m=Le(t,r),h=c===`image-only`&&r&&!!i,g=!!(l&&r&&i),_=e=>{e?.stopPropagation(),p(!0)},v=o(`shrink-0 overflow-hidden rounded-[calc(var(--chat-input-radius)-var(--chat-context-padding)-2px)]`,g&&`cursor-pointer focus-visible:ring-2 focus-visible:ring-ring`);return(0,W.jsxs)(`div`,{className:o(`group relative rounded-[calc(var(--chat-input-radius)-var(--chat-context-padding))] bg-muted/50`,h?`flex size-10 items-center justify-center`:`flex max-w-[min(12.5rem,100%)] min-w-0 items-center gap-2 py-1 ps-1 pe-2`,s),onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),children:[h?g?(0,W.jsx)(`button`,{type:`button`,className:o(v,`size-8 border-0 bg-transparent p-0`),onClick:_,"aria-label":`Preview ${t}`,children:(0,W.jsx)(`img`,{src:i,alt:``,className:`h-full w-full object-cover`})}):(0,W.jsx)(`div`,{className:o(v,`size-8`),children:(0,W.jsx)(`img`,{src:i,alt:t,className:`h-full w-full object-cover`})}):(0,W.jsxs)(W.Fragment,{children:[r&&i?g?(0,W.jsx)(`button`,{type:`button`,className:o(v,`w-8 self-stretch border-0 bg-transparent p-0`),onClick:_,"aria-label":`Preview ${t}`,children:(0,W.jsx)(`img`,{src:i,alt:``,className:`aspect-square h-full w-full object-cover`})}):(0,W.jsx)(`div`,{className:o(v,`w-8 self-stretch`),children:(0,W.jsx)(`img`,{src:i,alt:t,className:`aspect-square h-full w-full object-cover`})}):(0,W.jsx)(`div`,{className:`flex w-8 shrink-0 items-center justify-center self-stretch rounded-[calc(var(--chat-input-radius)-var(--chat-context-padding)-2px)] bg-muted`,children:Re(m)}),(0,W.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[(0,W.jsx)(`span`,{className:`truncate text-sm font-medium text-foreground`,title:t,children:t}),n!==void 0&&(0,W.jsx)(`span`,{className:`text-micro text-muted-foreground`,children:Ie(n)})]})]}),a&&(0,W.jsx)(`button`,{onClick:e=>{e.stopPropagation(),a()},"aria-label":`Remove ${t}`,className:o(`relative after:absolute after:top-1/2 after:left-1/2 after:size-10 after:-translate-x-1/2 after:-translate-y-1/2`,`absolute -top-1.5 -end-1.5 z-10 flex size-6 items-center justify-center rounded-full border border-border bg-background text-muted-foreground transition-[opacity,transform] duration-150 ease-out hover:text-foreground focus-visible:opacity-100 focus-visible:ring-2 focus-visible:ring-ring enabled:active:scale-[0.96] group-hover:opacity-100 group-focus-within:opacity-100 [@media(hover:none)]:opacity-100`,u?`opacity-100`:`opacity-0`),type:`button`,children:(0,W.jsx)(C,{"aria-hidden":`true`,className:`size-3`})}),g&&i&&(0,W.jsx)(Fe,{open:f,onClose:()=>p(!1),images:[{id:e,url:i,filename:t}]})]})}var Be=48,X=(e,t=0)=>{let n=new Int32Array(e.length);for(let r=0;r<e.length;r++)n[r]=e.charCodeAt(r)-Be-t;return n},Z=e=>{let t=new Int32Array(e.length+1);for(let n=0;n<e.length;n++)t[n+1]=t[n]+e[n];return t},Q=e=>{let t=new Int32Array(e.length),n=0;for(let r=0;r<e.length;r++){let i=e.charCodeAt(r)-Be;n+=i>>>1^-(i&1),t[r]=n}return t},Ve=384,He=[],$=Z(X(`E0500002005282000000002000150000020021820000011200000003022202000300004200120000200420001200021200301200010400162000010000220021010:2192001200220012000220012000200200200400010200040000000000400200108200110100000022010313000162002000020020012020080213000228200000000082000000000120002000120020020040101020300130001001010`)),Ue=Z(X(`:11111111211111119311546544411119731869:671397415686432441111111111161114151214313433415:78311132233313187211117221449443411141111151152226611131111112212518142224214215421421542142424242516171151615616347111111111197911327451111111111111111111113134714133513411111311111111111111111111112444411111342312715245411117:3`)),We=`@containerabcdefghinlmoprstunderlineviawzccentlignnimatespectuto-colsrowsaglorightnessckdrop-sisbcontrastfiltergrayscalehue-rotateinvertopacityslurrightnessaturateepia-coniclinearpositionradialsizeockurrderttom-belrstxyespacing-xyaretoursorlnt-umnsendspantartainentrasteividerop-shadowurationcorationlay-xyasendillexontromlter-featuresstretchapr-xyayscaleidow-colsrowsue-rotatedentlinesetvert-beringsxyeshadoweiadingftnest-clamp-imageabein-lrstxyskx--b-coniclpositionrsizet-x-y-fromto-fromto-inearfromto-fromto-adialfromto-fromtofromtofromtofromtoblockhinlinew-screenesblockhinlinewbjectpacityrutlinederigin-offsetbelrstxyesrspective-originaceholderioghtng-offsettateundedw-xyz-belrstlreseslr-endspantartaturatecepiahizekewpace-taleroll-xyz-barmpbelrstxyesbelrstxyes-thumbrackadowrink-xyxyartrokeabextora-shadowpckingnsformitionlate-xyz-offsetill-changeoom`,Ge=(()=>{let e=$.length-1,t=new Int32Array(e);for(let n=e-1;n>=0;n--){let e=1,r=n+1;for(let i=$[n];i<$[n+1];i++)e+=t[r],r+=t[r];t[n]=e}let n=new Int32Array($[e]),r=0;for(let i=0;i<e;i++){let e=i+1;for(let a=$[i];a<$[i+1];a++)n[r++]=e,e+=t[e]}return n})(),Ke=X(`02000000000000900<=0?000B000F00F00ŏI0J0LNPRTVX0000]_a00000000000000000000000rst0000000zŏ00000000000
ŏ0000000ŏ00000000000000000000000000000000000000000000000000000000000000Ë000000000000000000000Þ000000000000000000ð0000000ø0ùúûüýþÿĀāĂ㥹Ć000000000000000000000000000000000000000000ħ0ĨĪ00000000000000000000ļĽ00000Ŭ000000`,1),qe=Z(X(`123333359346463635126536711576`)),Je=X(`93203242332583253248325D>E?F@03263243255B:032523853:0325B:8GA032542H<C=12727B:0328432553;D>E?3257D>032585:0325B:;0328B:032`),Ye=X(`012113445661666666789111:5;;;;;;;;444;;;:62999<1161=62>>?61:21@ABCD4446996:64E:::;:?::64:F114GHHIHHHHIHH1HH1HH1HHHHHH::EEJ4444::EE4444441691;644444114244444:;K6666555555555555555999666664444444444444444444444226?6:66644L9M?D:111::::6DE199`),Xe=Q(`020200202020020020020020020020200200200200200200200002020202001003040106000200200200200200200200200200200200200200200200200200200200200200200200200200200200020020020020020020002020200202002002002002002002002002002020002002020020200220200200200200200200200200200200020020020000200020002000200200200020020020002000200200200020020202002020202000200200020022000200200020020002002000200220002002000200W0Z00020020002002020002002000200g0j0002002000200200020020002002000200200020020002000200002000002002002002002000200020000200002002002002002002002020020020200200200200200200200200202020020020020020020020020002002002020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020002002002002002002000200200200200200200200200200020202020002000200020002002002002000020200200`),Ze=(()=>{let e=new Int32Array(319).fill(-1),t=Q(`02422242:222222242224222242442222222422222244442242226224222426222422442462222422622222222626222462242622422622422424242422222222422222222242422222222222222222622442224222222222222224424442262222222222222222222226224222424242422224422422422222`),n=Q(`02222222222222222222202222222222222222222222221422222222222222222222222222222222222Y\\222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222221422222222222222222222222222222222222222Ŀł222222222222222222`);for(let r=0;r<t.length;r++)e[t[r]]=n[r];return e})(),Qe=`container |break-after- all auto avoid avoid-page column left page right|break-before- all auto avoid avoid-page column left page right|break-inside-a uto void void-column void-page|box-decoration- clone slice|box- border content| contents flow-root hidden table table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group| not-sr-only sr-only|float- end left none right start|clear- both end left none right start|isolat e ion-auto|overflow- auto clip hidden scroll visible|overflow-x- auto clip hidden scroll visible|overflow-y- auto clip hidden scroll visible|overscroll- auto contain none|overscroll-x- auto contain none|overscroll-y- auto contain none| absolute fixed relative static sticky| collapse invisible visible|justify- around baseline between center center-safe end end-safe evenly normal start stretch|justify-items- center center-safe end end-safe normal start stretch|justify-self- auto center center-safe end end-safe start stretch|items- baseline baseline-last center center-safe end end-safe start stretch|self- auto baseline baseline-last center center-safe end end-safe start stretch|place-content- around baseline between center center-safe end end-safe evenly start stretch|place-items- baseline center center-safe end end-safe start stretch|place-self- auto center center-safe end end-safe start stretch| antialiased subpixel-antialiased| italic not-italic|normal-nums |ordinal |slashed-zero | lining-nums oldstyle-nums| proportional-nums tabular-nums| diagonal-fractions stacked-fractions| no-underline overline| capitalize lowercase normal-case uppercase|truncate |whitespace- break-spaces normal nowrap pre pre-line pre-wrap|break- all keep normal words|wrap- anywhere break-word normal|hyphens- auto manual none|mix-blend- color color-burn color-dodge darken difference exclusion hard-light hue lighten luminosity multiply normal overlay plus-darker plus-lighter saturation screen soft-light|table- auto fixed|caption- bottom top|backface- hidden visible|appearance- auto none|scheme- dark light light-dark normal only-dark only-light|field-sizing- content fixed|pointer-events- auto none|resize -none -x -y|snap- align-none center end start|snap- always normal|snap- both none x y|snap- mandatory proximity|touch- auto manipulation none|touch-pan- left right x|touch-pan- down up y|touch-pinch-zoom |select- all auto none text|forced-color-adjust- auto none| normal size| baseline bottom middle sub super text-bottom text-top top| bounce none ping pulse spin| auto square video| auto fr max min px|none | auto full px| fixed local scroll|clip- border content padding text|origin- border content padding| bottom bottom-left bottom-right center left left-bottom left-top right right-bottom right-top top top-left top-right| no-repeat repeat repeat-round repeat-space repeat-x repeat-y| auto contain cover| gradient-to-b gradient-to-bl gradient-to-br gradient-to-l gradient-to-r gradient-to-t gradient-to-tl gradient-to-tr none|blend- color color-burn color-dodge darken difference exclusion hard-light hue lighten luminosity multiply normal overlay saturation screen soft-light|to- b bl br l r t tl tr| auto dvh fit full lh lvh max min px screen svh| dashed dotted double hidden none solid| collapse separate|px |auto |full | content none strict| inline-size size|layout |paint |style | around baseline between center center-safe end end-safe evenly normal start stretch| alias all-scroll auto cell col-resize context-menu copy crosshair default e-resize ew-resize grab grabbing help move n-resize ne-resize nesw-resize no-drop none not-allowed ns-resize nw-resize nwse-resize pointer progress row-resize s-resize se-resize sw-resize text vertical-text w-resize wait zoom-in zoom-out| dashed dotted double solid wavy| auto from-font|reverse |initial | in in-out initial linear out| col col-reverse row row-reverse| nowrap wrap wrap-reverse| auto initial none| black bold extrabold extralight light medium normal semibold thin| condensed expanded extra-condensed extra-expanded normal semi-condensed semi-expanded ultra-condensed ultra-expanded|flow- col col-dense dense row row-dense| none subgrid| auto dvh dvw fit full lh lvh lvw max min px screen svh svw| block flex grid table| auto dvw fit full lvw max min px screen svw| loose none normal px relaxed snug tight|through |item | inside outside| decimal disc none| auto px| clip-border clip-content clip-fill clip-padding clip-stroke clip-view no-clip| add exclude intersect subtract| alpha luminance match|origin- border content fill padding stroke view|type- alpha luminance| circle ellipse| closest-corner closest-side farthest-corner farthest-side|at- bottom bottom-left bottom-right center left left-bottom left-top right right-bottom right-top top top-left top-right| dvh fit full lh lvh max min none px screen svh| auto dvh dvw fit full lh lvh lvw max min none px screen svh svw| dvw fit full lvw max min none px screen svw| auto dvh dvw fit full lvh lvw max min none prose px svh svw| auto dvh dvw fit full lvh lvw max min none px screen svh svw| contain cover fill none scale-down| first last none| distant dramatic midrange near none normal|inset | full none|3d | auto smooth|gutter- auto both stable| auto none thin| inner none| auto dvh dvw fit full lvh lvw max min px svh svw|base | center end justify left right start| clip ellipsis| balance nowrap pretty wrap| normal tight tighter wide wider widest| cpu gpu none| 3d flat| all colors none opacity shadow transform| discrete normal| full px| auto dvh dvw fit full lvh lvw max min px screen svh svw| auto contents scroll transform`.split(`|`).map(e=>{let t=e.split(` `),n=t.shift();for(let e=0;e<t.length;e++)t[e]=n+t[e];return t}),$e=Q(`0000000000000000000000000000000000000000000000000000000000000262242:6@200000006:240B428:4422400002046044222426220026642642462026224222824220022400000000\\00N222422242222222224062242222222422226264222422222222222222442804222422222222222222222222220<4<0204260002444020204224422`),et=Q(`ɠ222222222222222222222222222222222222222222222222222222222222˕4222226>ʶ22ʷʺʷ2ʸʷ42ʴ2ʓ22>621422ɶ222ɹɼɷɺɷɺ22ɱ42222ɨ2ɧ26622ɘɓ244ƸƵ222]d24242ǖǓƚÄȫ2263ȨȥȨ2222222ǣ222222222222222222ǂƽ2ƾƵ2222222422222ƜƑ22222222222222222222144Ŧţ22Ţş222222222222222222222ĸ2ı68ĦģĦɡŰ4Ġ«®ĝ822ĔđĔ2ē2222622`),tt=Q(`02222222222222222222222222222222222222222222222222222222222222222202022222222222EH2200IL021042222Y\\222IL0cf2e10j2222U00X202[^2y0000120|{~22
:22|22222222222G000qOVI00000}2>40000B00000I¨©000¬00000000000000021M®00°000000000000000000000222HGHa1º222¿2À2222ÉÌ000°2±`),nt=new Int32Array(995),rt=new Int32Array(995),it=new Int32Array(995),at=``,ot=new Int32Array(1038);{let e=new Map,t=0,n=0;for(let r=0;r<$e.length;r++)for(let i of Qe[tt[r]]){let a=e.get(i);a===void 0&&(a=t++,e.set(i,a),ot[a*2]=at.length,ot[a*2+1]=i.length,at+=i),nt[n]=$e[r],rt[n]=et[r],it[n]=a,n++}}var st=Q(`0b2N:222@R>F@286¦2@H2D266226FB22B2>BD\\6N22222Z222D222p`),ct=Z(X(`1::24444432:442:44:44>222222:44:4421322511111311111114`)),lt=Q(`24A;33N=C@H4A;33N=C@<27;83:;8393NQ:3NQʰ222ˉºŴŽ2R2=18cƴÅŇ=cĞÛC1ƈǝȈ:ħ25=11D3A@4=<1;1DEr25;11B3?<6;:371BCn9@7=<8192>2E121@9@EHE@9>2T25511<398454131<=V25511<398454131<=ƧNž2Đå242L222290000f22500ɛ000ǘ222`),ut=X(`ij`),dt=X(``),ft=X(`1`),pt=i({GROUP_COUNT:Ve,customValidatorNames:He,edgeStart:$,labelStart:Ue,labelText:We,edgeTarget:Ge,nodeGroup:Ke,nodeVlist:Ze,vlistPat:qe,vlistOps:Je,vlistRef:Ye,vlistGroup:Xe,litAnchor:nt,litGroup:rt,litPool:it,poolOffsets:ot,poolText:at,adjGid:st,adjStart:ct,adjTgt:lt,patGid:ut,patTgt:dt,postfixLookupGroups:ft,orderSensitiveModifiers:`* ** after backdrop before details-content file first-letter first-line marker placeholder selection`}),mt=a(pt.mergeString,pt);pt.merge;var ht=w(`group/bubble relative flex w-fit max-w-[80%] min-w-0 flex-col gap-1 group-data-[align=end]/message:self-end data-[align=end]:self-end data-[variant=ghost]:max-w-full`,{variants:{variant:{default:`*:data-[slot=bubble-content]:bg-primary *:data-[slot=bubble-content]:text-primary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-primary/80`,secondary:`*:data-[slot=bubble-content]:bg-secondary *:data-[slot=bubble-content]:text-secondary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)]`,muted:`*:data-[slot=bubble-content]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--muted),var(--foreground)_5%)]`,tinted:`*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.93_calc(c*0.4)_h)] *:data-[slot=bubble-content]:text-foreground dark:*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.3_calc(c*0.4)_h)] [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.88_calc(c*0.5)_h)] dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.35_calc(c*0.5)_h)]`,outline:`*:data-[slot=bubble-content]:border-border *:data-[slot=bubble-content]:bg-background [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-input/30`,ghost:`border-none *:data-[slot=bubble-content]:rounded-none *:data-[slot=bubble-content]:bg-transparent *:data-[slot=bubble-content]:p-0 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted/50`,destructive:`*:data-[slot=bubble-content]:bg-destructive/10 *:data-[slot=bubble-content]:text-destructive dark:*:data-[slot=bubble-content]:bg-destructive/20 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/20 dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/30`}},defaultVariants:{variant:`default`}});function gt({variant:e=`default`,align:t=`start`,className:n,...r}){return(0,W.jsx)(`div`,{"data-slot":`bubble`,"data-variant":e,"data-align":t,className:mt(ht({variant:e}),n),...r})}function _t({className:e,render:t,...n}){return E({defaultTagName:`div`,props:f({className:mt(`w-fit max-w-full min-w-0 overflow-hidden rounded-xl border border-transparent px-3 py-2 text-sm leading-relaxed wrap-break-word group-data-[align=end]/bubble:self-end [button]:text-left [button,a]:transition-colors [button,a]:outline-none [button,a]:focus-visible:border-ring [button,a]:focus-visible:ring-3 [button,a]:focus-visible:ring-ring/50`,e)},n),render:t,state:{slot:`bubble-content`}})}w(`absolute z-10 flex w-fit shrink-0 items-center justify-center gap-1 rounded-full bg-muted px-1.5 py-0.5 text-sm ring-3 ring-card has-[button]:p-0`,{variants:{side:{top:`top-0 -translate-y-3/4`,bottom:`bottom-0 translate-y-3/4`},align:{start:`left-3`,end:`right-3`}},defaultVariants:{side:`bottom`,align:`end`}});function vt(e){return typeof e==`object`&&!!e}function yt(e){if(!vt(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 bt(e){if(!vt(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 xt=(0,U.memo)(function({message:e,className:t,enableImagePreview:n=!0}){let[r,i]=(0,U.useState)(null),a=(e.parts?.filter(Ce)??[]).map(e=>e.text).join(``),s=[],c=[];for(let t of e.parts??[]){let e=yt(t);e&&s.push(e);let n=bt(t);n&&c.push(n)}if(vt(e)&&Array.isArray(e.experimental_attachments))for(let t of e.experimental_attachments)t.contentType?.startsWith(`image/`)&&t.url&&s.push(t.url);if(!a&&s.length===0&&c.length===0)return null;let l=s.map((t,n)=>({id:`${e.id}-img-${n}`,url:t,filename:`image-${n+1}`}));return(0,W.jsxs)(`div`,{className:o(`flex flex-col items-end gap-1`,t),children:[s.length>0&&s.map((e,t)=>(0,W.jsx)(`div`,{className:o(`max-w-[200px] rounded-chat-message bg-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,W.jsx)(`img`,{src:e,alt:`attachment`,width:184,height:120,className:`block max-h-[120px] max-w-[184px] rounded-chat-message-inner object-cover`})},e)),n&&l.length>0&&(0,W.jsx)(Fe,{open:r!==null,onClose:()=>i(null),images:l,initialIndex:r??0}),c.length>0&&(0,W.jsx)(`div`,{className:`flex flex-col items-end gap-2`,children:c.map((e,t)=>(0,W.jsx)(ze,{id:`${e.filename}-${t}`,filename:e.filename,size:e.size},`${e.filename}-${e.size}`))}),a&&(0,W.jsx)(gt,{align:`end`,variant:`muted`,className:`max-w-[85%]`,children:(0,W.jsx)(_t,{className:`rounded-chat-message px-3.5 py-1.5 whitespace-pre-wrap text-pretty`,children:a})})]})});function St(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 Ct(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 wt({estimateSize:e,getItemKey:t,itemGap:n=0,items:r,overscan:i=1.5,renderItem:a,viewportRef:o}){let s=(0,U.useMemo)(()=>r.map((e,n)=>t(e,n)),[t,r]),c=r.length>=16,[l,u]=(0,U.useState)(()=>new Map),[d,f]=(0,U.useState)({height:0,scrollTop:0}),p=(0,U.useRef)(s),m=(0,U.useRef)(l),h=(0,U.useRef)(e),g=(0,U.useRef)(n),_=(0,U.useRef)([0]),v=(0,U.useRef)(0),y=(0,U.useRef)(new Map),b=(0,U.useRef)(new WeakMap),x=(0,U.useRef)(null),S=(0,U.useRef)(null),C=(0,U.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]),w=(0,U.useCallback)(()=>{S.current??=window.requestAnimationFrame(()=>{S.current=null,C()})},[C]),T=(0,U.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))},[]),E=(0,U.useMemo)(()=>Ct(s,l,e,n),[e,n,s,l]);(0,U.useLayoutEffect)(()=>{C()},[r.length,C]),(0,U.useLayoutEffect)(()=>{p.current=s,m.current=l,h.current=e,g.current=n,_.current=E},[e,n,s,l,E]),(0,U.useEffect)(()=>{let e=o.current;if(!e)return;e.addEventListener(`scroll`,w,{passive:!0}),window.addEventListener(`resize`,w),C();let t;return typeof ResizeObserver<`u`&&(t=new ResizeObserver(w),t.observe(e)),()=>{e.removeEventListener(`scroll`,w),window.removeEventListener(`resize`,w),t?.disconnect(),S.current!=null&&(window.cancelAnimationFrame(S.current),S.current=null)}},[w,C,o]);let D=(0,U.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=Ct(i,n,h.current,g.current);if(r&&i.length>0){let e=_.current,t=St(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,U.useLayoutEffect)(()=>{if(!c||typeof ResizeObserver>`u`)return;let e=new ResizeObserver(e=>D(e));x.current=e;for(let t of y.current.values())e.observe(t);return()=>{e.disconnect(),x.current===e&&(x.current=null)}},[c,D]),(0,U.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,U.useLayoutEffect)(()=>{let e=v.current,t=o.current;!t||e===0||(t.scrollTop+=e,v.current=0,C())},[l,C,o]),!c)return(0,W.jsx)(W.Fragment,{children:r.map((e,t)=>(0,W.jsx)(U.Fragment,{children:a(e,t)},s[t]))});let O=E[E.length-1]??0,k=Math.max(e,d.height*i),A=St(E,Math.max(0,d.scrollTop-k),r.length),j=Math.min(r.length-1,St(E,d.scrollTop+d.height+k,r.length)+1);return(0,W.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,W.jsx)(`div`,{ref:e=>T(r,e),"data-virtualized-turn-index":n,style:{left:0,position:`absolute`,right:0,top:E[n]},children:a(e,n)},r)})})}function Tt(e){return typeof e==`object`&&!!e}function Et(e){if(typeof e!=`string`)return e;let t=e.trim();if(!t)return e;try{let n=JSON.parse(t);return Tt(n)||Array.isArray(n)?n:e}catch{return e}}function Dt(e){if(!Tt(e)||typeof e.type!=`string`||!e.type.startsWith(`tool-`))return e;let t=Et(e.input),n=Et(e.output),r=Et(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 Ot(e){let t=!1,n=e.map(e=>{let n=Dt(e);return n!==e&&(t=!0),n});return t?n:e}export{Ne as a,me as c,ce as d,le as f,B as h,ze as i,he as l,oe as m,wt as n,Se as o,se as p,xt as r,fe as s,Ot as t,pe as u};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dist-CprW0Qol.js","assets/rolldown-runtime-hePW80VL.js","assets/preload-helper-BLdHbfdN.js","assets/space-separated-tokens-Ciu5hotc.js","assets/character-entities-legacy-Wut6vMuj.js","assets/lib-BvGd2E-G.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{t as r}from"./utils-oBThwhjm.js";import{c as i,i as a,r as o,s,u as c}from"./ease-DYVhTl2n.js";import{n as l,t as u}from"./use-reduced-motion-CFEp5oKr.js";import{t as d}from"./createLucideIcon-CQY2ECfR.js";import{t as f}from"./check-BTwIaCtI.js";import{t as p}from"./chevron-down-Bse1ggZM.js";import{t as m}from"./circle-check-DBhaebaM.js";import{n as h,t as g}from"./wrench-BXX_Ah2s.js";import{n as _,t as v}from"./file-code-corner-BkDULqko.js";import{t as y}from"./loader-circle-BmKYM_C4.js";import{t as b}from"./square-terminal-BLq2bQVF.js";import{t as x}from"./preload-helper-BLdHbfdN.js";import{a as S,i as C,n as w,o as T,r as E,t as D}from"./code-block-pKKmFZ5w.js";var O={name:`ban`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M4.929 4.929 19.07 19.071`,key:`196cmz`}]]};O.node;var k=d(O),A={name:`braces`,size:24,node:[[`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`}]],aliases:[`curly-braces`]};A.node;var j=d(A),M=e(t(),1),N=n(),P=`github-light-high-contrast`,F=`github-dark-high-contrast`,I=null,L=new Map,R=500;function z(e,t){if(L.size>=R){let e=L.keys().next().value;e!==void 0&&L.delete(e)}L.set(e,t)}var B=()=>x(()=>import(`./dist-CprW0Qol.js`).then(e=>e.t),__vite__mapDeps([0,1,2,3,4,5]));function V(){return I||=B().then(({createHighlighter:e})=>e({themes:[P,F],langs:[`bash`,`diff`,`json`,`python`,`tsx`,`typescript`]})),I}function H(e,t){return`${t}\u0000${e}`}function U(e,t){let n=H(e,t),r=L.get(n),[i,a]=(0,M.useState)(r?{key:n,code:e,language:t,lines:r}:null);return(0,M.useEffect)(()=>{let r=L.get(n);if(r){a({key:n,code:e,language:t,lines:r});return}let i=!1;return V().then(r=>{if(i)return;let o=r.codeToTokensWithThemes(e,{lang:t,themes:{light:P,dark:F}}).map(e=>e.map(e=>({content:e.content,offset:e.offset,light:e.variants.light?.color,dark:e.variants.dark?.color})));z(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 W({code:e,tokens:t,suffix:n,className:r}){return(0,N.jsxs)(`span`,{className:r,children:[t?t.map(e=>(0,N.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,n]})}function G({open:e,openHeight:t=`auto`,className:n,style:i,transition:a,...s}){let l=u()??!1;return(0,N.jsx)(c.div,{...s,"aria-hidden":!e,inert:!e,initial:!1,animate:l?{opacity:+!!e}:{opacity:+!!e,clipPath:e?`inset(0 0 0% 0)`:`inset(0 0 100% 0)`,y:e?0:-4},transition:a??{duration:l?0:e?.22:.14,ease:o},className:r(`overflow-hidden`,n),style:{...i,height:e?t:0,pointerEvents:e?void 0:`none`,transformOrigin:`top`}})}function K({value:e,type:t}){return e?(0,N.jsxs)(`span`,{className:r(`font-mono text-xs tabular-nums`,t===`added`?`text-product-diff-added`:`text-product-diff-removed`),children:[t===`added`?`+`:`−`,e]}):null}function q({file:e,lines:t,status:n=`streaming`,open:a,defaultOpen:o=!0,onOpenChange:l,collapseOnComplete:d=!0,maxHeight:m=220,language:g=`typescript`,copyText:b,onCopy:x,className:S}){let C=u()??!1,w=(0,M.useId)(),T=`${w}-trigger`,E=`${w}-content`,D=(0,M.useRef)(null),O=(0,M.useRef)(n),A=(0,M.useRef)(void 0),[j,P]=(0,M.useState)(!1),[F,I]=(0,M.useState)(o),L=a??F,R=n===`streaming`,z=t.filter(e=>e.type===`added`).length,B=t.filter(e=>e.type===`removed`).length,V=!!(b||x),H=U(t.map(e=>e.content).join(`
|
|
3
|
+
`),g),q=(0,M.useCallback)(e=>{a===void 0&&I(e),l?.(e)},[l,a]);(0,M.useEffect)(()=>{O.current!==`streaming`&&n===`streaming`&&q(!0),O.current===`streaming`&&n!==`streaming`&&d&&q(!1),O.current=n},[d,q,n]),(0,M.useEffect)(()=>()=>{A.current&&window.clearTimeout(A.current)},[]),(0,M.useLayoutEffect)(()=>{let e=D.current;if(!e||!L||!R)return;let t=requestAnimationFrame(()=>{e.scrollHeight<=e.clientHeight||(typeof e.scrollTo==`function`?e.scrollTo({top:e.scrollHeight,behavior:C?`auto`:`smooth`}):e.scrollTop=e.scrollHeight)});return()=>cancelAnimationFrame(t)});let J=(0,M.useCallback)(async()=>{x?await x():b&&await navigator.clipboard?.writeText(b),P(!0),A.current&&window.clearTimeout(A.current),A.current=window.setTimeout(()=>P(!1),1600)},[b,x]);return(0,N.jsxs)(`div`,{"data-state":n,"aria-busy":R,className:r(`w-full text-sm`,S),children:[(0,N.jsxs)(`button`,{id:T,type:`button`,"aria-expanded":L,"aria-controls":E,onClick:()=>q(!L),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,N.jsx)(v,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}),(0,N.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-xs text-foreground/80`,children:e}),(0,N.jsxs)(`span`,{className:`flex shrink-0 items-center gap-2`,children:[(0,N.jsx)(K,{value:z,type:`added`}),(0,N.jsx)(K,{value:B,type:`removed`})]}),(0,N.jsx)(`span`,{className:`grid size-4 shrink-0 place-items-center text-muted-foreground/60`,children:R?(0,N.jsx)(y,{"aria-label":`Applying changes`,className:r(`size-3.5`,!C&&`animate-spin`)}):n===`error`?(0,N.jsx)(h,{"aria-label":`Changes failed`,className:`size-3.5`}):n===`cancelled`?(0,N.jsx)(k,{"aria-label":`Changes cancelled`,className:`size-3.5`}):(0,N.jsx)(f,{"aria-label":`Changes applied`,className:`size-3.5`})}),(0,N.jsx)(c.span,{"aria-hidden":`true`,animate:{rotate:L?180:0},transition:C?{duration:0}:i,className:`shrink-0 text-muted-foreground/45 transition-colors group-hover:text-muted-foreground`,children:(0,N.jsx)(p,{className:`size-3.5`})})]}),(0,N.jsx)(G,{id:E,role:`region`,"aria-labelledby":T,open:L,children:(0,N.jsx)(`div`,{className:`pl-6 pt-1.5`,children:(0,N.jsxs)(`div`,{className:`overflow-hidden rounded-xl bg-muted/80`,children:[(0,N.jsx)(`div`,{ref:D,"data-slot":`file-diff-viewport`,"aria-live":R?`off`:`polite`,className:`scrollbar-hide overflow-auto`,style:{maxHeight:m},children:(0,N.jsxs)(`div`,{className:`font-mono text-xs leading-5`,children:[(0,N.jsx)(`span`,{className:`sr-only`,children:`File changes`}),t.map((e,t)=>{let n=e.type??`context`;return(0,N.jsxs)(`div`,{className:r(`grid grid-cols-[2.25rem_2.25rem_1rem_minmax(0,1fr)]`,n===`added`&&`bg-success/[0.07]`,n===`removed`&&`bg-destructive/[0.07]`),children:[(0,N.jsx)(`span`,{className:`select-none pr-2 text-right tabular-nums text-muted-foreground/40`,children:e.oldLine}),(0,N.jsx)(`span`,{className:`select-none pr-2 text-right tabular-nums text-muted-foreground/40`,children:e.newLine}),(0,N.jsx)(`span`,{className:r(`select-none text-center text-muted-foreground/45`,n===`added`&&`text-product-diff-added`,n===`removed`&&`text-product-diff-removed`),children:n===`added`?`+`:n===`removed`?`−`:``}),(0,N.jsx)(W,{code:e.content,tokens:H?.[t],className:`min-w-0 whitespace-pre px-1.5`})]},e.id)})]})}),V?(0,N.jsx)(`div`,{className:`flex justify-end px-2 pb-1.5 pt-1`,children:(0,N.jsx)(c.button,{type:`button`,"aria-label":j?`Copied`:`Copy diff`,title:j?`Copied`:`Copy diff`,onClick:J,whileTap:C?void 0:{scale:.96},transition:s,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:j?(0,N.jsx)(f,{className:`size-3.5`}):(0,N.jsx)(_,{className:`size-3.5`})})}):null]})})})]})}var J=[];function Y({code:e,language:t=`typescript`,languageLabel:n,filename:i,status:a=`complete`,showStatus:o=!0,showLineNumbers:l=!0,highlightLines:d=J,maxHeight:p=280,wrap:m=!1,copyable:h=!0,onCopy:g}){let b=u()??!1,x=(0,M.useRef)(null),C=(0,M.useRef)(void 0),[O,k]=(0,M.useState)(!1),A=a===`streaming`,j=U(e,t),P=(0,M.useMemo)(()=>new Set(d),[d]),F=0,I=e.split(`
|
|
4
|
+
`).map(e=>{let t={content:e,offset:F};return F+=e.length+1,t}),L=n??{bash:`Bash`,diff:`Diff`,json:`JSON`,python:`Python`,text:`Text`,tsx:`TSX`,typescript:`TypeScript`}[t];(0,M.useEffect)(()=>()=>{C.current&&window.clearTimeout(C.current)},[]),(0,M.useLayoutEffect)(()=>{let e=x.current;if(!e||!A)return;let t=requestAnimationFrame(()=>{e.scrollHeight<=e.clientHeight||(typeof e.scrollTo==`function`?e.scrollTo({top:e.scrollHeight,behavior:b?`auto`:`smooth`}):e.scrollTop=e.scrollHeight)});return()=>cancelAnimationFrame(t)});let R=(0,M.useCallback)(async()=>{g?await g():await navigator.clipboard?.writeText(e),k(!0),C.current&&window.clearTimeout(C.current),C.current=window.setTimeout(()=>k(!1),1600)},[e,g]);return(0,N.jsxs)(D,{"data-state":a,"aria-busy":A,size:`sm`,className:`bg-muted/80`,children:[(0,N.jsxs)(S,{className:`h-10 gap-2.5 px-3 pt-0`,children:[(0,N.jsx)(v,{"aria-hidden":`true`,className:`size-3.5 shrink-0 text-muted-foreground/70`}),i?(0,N.jsx)(T,{className:`font-mono text-xs text-foreground/80`,children:i}):null,(0,N.jsx)(`span`,{className:`text-micro font-medium uppercase tracking-wide text-muted-foreground/55`,children:L}),o?(0,N.jsxs)(`span`,{className:r(!h&&!g&&`ml-auto`,`inline-flex shrink-0 items-center gap-1 text-micro font-medium`,A?`text-info`:`text-success`),children:[A?(0,N.jsx)(y,{className:r(`size-3`,!b&&`animate-spin`)}):(0,N.jsx)(f,{className:`size-3`}),A?`Writing`:`Ready`]}):null,h||g?(0,N.jsx)(w,{className:r(`-my-0 -me-0`,o?`ms-0`:`ms-auto`),children:(0,N.jsx)(c.button,{type:`button`,"aria-label":O?`Copied`:`Copy code`,title:O?`Copied`:`Copy code`,onClick:R,whileTap:b?void 0:{scale:.96},transition:s,className:`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`,children:O?(0,N.jsx)(f,{className:`size-3.5`}):(0,N.jsx)(_,{className:`size-3.5`})})}):null]}),(0,N.jsx)(E,{ref:x,role:A?`log`:void 0,"aria-live":A?`off`:void 0,className:`max-w-full overflow-auto border-t border-foreground/[0.06] px-0 py-2 font-mono text-xs leading-5 text-foreground/85 [scrollbar-color:color-mix(in_oklab,var(--muted-foreground)_35%,transparent)_transparent] [scrollbar-width:thin]`,style:{maxHeight:p},wrap:m,children:I.map((e,t)=>{let n=t+1;return(0,N.jsx)(`span`,{"data-line-number":l?n:void 0,className:r(`grid min-h-5`,l?`grid-cols-[2.75rem_minmax(0,1fr)] before:content-[attr(data-line-number)] before:select-none before:pr-3 before:text-right before:tabular-nums before:text-muted-foreground/35`:`grid-cols-1`,P.has(n)&&`bg-primary/[0.07]`),children:(0,N.jsx)(W,{code:e.content,tokens:j?.[t],suffix:t<I.length-1?`
|
|
5
|
+
`:void 0,className:r(`pr-4`,l?`pl-1`:`pl-4`,m?`whitespace-pre-wrap break-words`:`whitespace-pre`)})},e.offset)})})]})}var X={initial:{opacity:0,y:`90%`,filter:`blur(3px)`},animate:{opacity:1,y:`0%`,filter:`blur(0px)`,transition:i},exit:{opacity:0,y:`-90%`,filter:`blur(3px)`,transition:{duration:.14,ease:o}}};function Z({value:e,children:t,className:n}){let i=u(),o=(0,M.useRef)(null),[s,d]=(0,M.useState)();return(0,M.useLayoutEffect)(()=>{let e=o.current?.offsetWidth;e&&d(t=>t===e?t:e)}),(0,N.jsxs)(`span`,{className:r(`relative inline-block overflow-hidden whitespace-nowrap align-bottom`,n),style:{width:s,transition:i?void 0:`width 220ms ${a}`},children:[(0,N.jsx)(`span`,{ref:o,"aria-hidden":!0,className:`invisible inline-block whitespace-nowrap`,children:t}),(0,N.jsx)(l,{initial:!1,children:(0,N.jsx)(c.span,{variants:X,initial:!i&&`initial`,animate:i?{opacity:1,filter:`blur(0px)`,scale:1,y:0}:`animate`,exit:i?void 0:`exit`,className:`absolute left-0 top-0 inline-block`,children:t},`roll-${e}`)})]})}function Q(e){return e===`running`?`Running`:e===`success`?`Completed`:e===`error`?`Failed`:`Cancelled`}function $(e){return e===`running`?`text-primary`:e===`success`?`text-success`:e===`error`?`text-destructive`:`text-muted-foreground`}function ee({kind:e}){return e===`terminal`?(0,N.jsx)(b,{className:`size-4`}):e===`request`?(0,N.jsx)(j,{className:`size-4`}):(0,N.jsx)(g,{className:`size-4`})}function te({status:e,reduce:t}){return e===`running`?(0,N.jsx)(y,{className:r(`size-3`,!t&&`animate-spin`)}):e===`success`?(0,N.jsx)(m,{className:`size-3`}):e===`error`?(0,N.jsx)(h,{className:`size-3`}):(0,N.jsx)(k,{className:`size-3`})}function ne({label:e,onClick:t,children:n}){let r=u()??!1;return(0,N.jsx)(c.button,{type:`button`,"aria-label":e,title:e,onClick:t,whileTap:r?void 0:{scale:.96},transition:s,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 re({children:e,language:t=`bash`,label:n,error:i=!1,className:a}){return(0,N.jsxs)(D,{"data-error":i||void 0,variant:i?`destructive`:`default`,size:`sm`,className:a,children:[(0,N.jsxs)(S,{className:`py-1`,children:[n?(0,N.jsx)(T,{className:r(`text-micro uppercase tracking-[0.12em]`,i?`text-destructive`:`text-muted-foreground/60`),children:i?`Reported error`:n}):null,(0,N.jsx)(w,{children:(0,N.jsx)(C,{value:e,"aria-label":`Copy result`})})]}),(0,N.jsx)(E,{wrap:!0,className:r(`max-h-60 text-xs leading-5`,i?`text-destructive`:`text-foreground/80`),children:e})]})}function ie({tool:e,title:t,children:n,status:a=`running`,kind:o=`custom`,meta:s,open:l,defaultOpen:d=!0,onOpenChange:m,collapseOnComplete:h=!0,maxHeight:g=220,copyText:v}){let y=u()??!1,b=(0,M.useId)(),x=`${b}-trigger`,S=`${b}-content`,C=(0,M.useRef)(null),w=(0,M.useRef)(a),T=(0,M.useRef)(void 0),[E,D]=(0,M.useState)(!1),[O,k]=(0,M.useState)(d),A=l??O,j=a===`running`,P=!!v,F=Q(a),I=(0,M.useCallback)(e=>{l===void 0&&k(e),m?.(e)},[m,l]);(0,M.useEffect)(()=>{w.current!==`running`&&a===`running`&&I(!0),w.current===`running`&&a!==`running`&&h&&I(!1),w.current=a},[h,I,a]),(0,M.useEffect)(()=>()=>{T.current&&window.clearTimeout(T.current)},[]),(0,M.useLayoutEffect)(()=>{let e=C.current;if(!e||!A||!j)return;let t=requestAnimationFrame(()=>{typeof e.scrollTo==`function`?e.scrollTo({top:e.scrollHeight,behavior:y?`auto`:`smooth`}):e.scrollTop=e.scrollHeight});return()=>cancelAnimationFrame(t)});let L=(0,M.useCallback)(async()=>{v&&await navigator.clipboard?.writeText(v),D(!0),T.current&&window.clearTimeout(T.current),T.current=window.setTimeout(()=>D(!1),1600)},[v]);return(0,N.jsxs)(`div`,{"data-state":a,"aria-busy":j,className:`w-full text-sm`,children:[(0,N.jsxs)(`button`,{id:x,type:`button`,"aria-expanded":A,"aria-controls":S,onClick:()=>I(!A),className:`group flex min-h-9 w-full items-center gap-2 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,N.jsx)(`span`,{"aria-hidden":`true`,className:`grid size-4 shrink-0 place-items-center text-muted-foreground`,children:(0,N.jsx)(ee,{kind:o})}),(0,N.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-baseline gap-2`,children:[(0,N.jsx)(`span`,{className:`min-w-0 truncate font-medium text-foreground/90`,children:t}),s?(0,N.jsx)(`span`,{className:`shrink-0 text-xs tabular-nums text-muted-foreground/60`,children:s}):null,(0,N.jsx)(`span`,{className:`hidden min-w-0 truncate font-mono text-caption text-muted-foreground/55 sm:inline`,children:e})]}),(0,N.jsxs)(`span`,{className:r(`inline-flex shrink-0 items-center gap-1 text-caption font-medium`,$(a)),children:[(0,N.jsx)(te,{status:a,reduce:y}),(0,N.jsx)(Z,{value:a,children:F})]}),(0,N.jsx)(c.span,{"aria-hidden":`true`,animate:{rotate:A?180:0},transition:y?{duration:0}:i,className:`shrink-0 text-muted-foreground/50 transition-colors group-hover:text-muted-foreground`,children:(0,N.jsx)(p,{className:`size-3.5`})})]}),(0,N.jsx)(G,{id:S,role:`region`,"aria-labelledby":x,open:A,children:(0,N.jsx)(`div`,{className:`pl-6 pt-1.5`,children:(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`div`,{ref:C,role:`log`,"aria-live":`polite`,className:`scrollbar-hide overflow-y-auto overscroll-contain`,style:{maxHeight:g},children:n}),P?(0,N.jsxs)(`div`,{className:`flex items-center gap-0.5 px-2 pb-1.5`,children:[(0,N.jsx)(ne,{label:E?`Copied`:`Copy result`,onClick:L,children:E?(0,N.jsx)(f,{className:`size-3.5`}):(0,N.jsx)(_,{className:`size-3.5`})}),(0,N.jsx)(`span`,{className:`ml-auto text-caption text-muted-foreground/55`,children:(0,N.jsx)(Z,{value:a,children:F})})]}):null]})})})]})}export{q as a,Y as i,re as n,G as o,Z as r,ie as t};
|