@ironmussa/funny 0.1.8 → 0.1.10
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/package.json +1 -1
- package/packages/client/dist/assets/{AcceptInvitePage-rU3bsShb.js → AcceptInvitePage-CwYQtIVI.js} +1 -1
- package/packages/client/dist/assets/{ActivityPane-_esdCTUa.js → ActivityPane-BqtiKQoc.js} +1 -1
- package/packages/client/dist/assets/{AddProjectView-DbYb4Fj3.js → AddProjectView-BTUbNCf5.js} +1 -1
- package/packages/client/dist/assets/{AllThreadsView-BydYhYmA.js → AllThreadsView-SgG-25oj.js} +1 -1
- package/packages/client/dist/assets/{AnalyticsView-BB2Ry67l.js → AnalyticsView--eEfsZ7M.js} +1 -1
- package/packages/client/dist/assets/{App-DUg9Ibif.js → App-DD7u4SAw.js} +3 -3
- package/packages/client/dist/assets/{AutomationInboxView-BwTXxoaj.js → AutomationInboxView-By8MsYYO.js} +1 -1
- package/packages/client/dist/assets/{BrowserPanel-DQ8qgIKh.js → BrowserPanel-Cq089yp_.js} +1 -1
- package/packages/client/dist/assets/{BrowserPreview-CYbez9uL.js → BrowserPreview-REscPcXd.js} +1 -1
- package/packages/client/dist/assets/{CircuitBreakerDialog-DWNXYG6L.js → CircuitBreakerDialog-CsddJfvm.js} +1 -1
- package/packages/client/dist/assets/{CommandPalette-Xtu8FVFI.js → CommandPalette-CI9t7rz5.js} +1 -1
- package/packages/client/dist/assets/{CommentsPane-BbeD18iG.js → CommentsPane-BFha7ll9.js} +1 -1
- package/packages/client/dist/assets/{CsvTable-CRwHp6ct.js → CsvTable-HqueUd-d.js} +1 -1
- package/packages/client/dist/assets/{FileSearchDialog-BHaSfVdS.js → FileSearchDialog-BBLwpk_T.js} +1 -1
- package/packages/client/dist/assets/{FileTree-Dnh5srh4.js → FileTree-0rn6jPHG.js} +1 -1
- package/packages/client/dist/assets/{FolderPicker-BBAhdFeF.js → FolderPicker-NfYl0JOO.js} +1 -1
- package/packages/client/dist/assets/{GeneralSettingsView-Q-zEISEg.js → GeneralSettingsView-CTrMytqS.js} +2 -2
- package/packages/client/dist/assets/{GitProgressModal-2BUdcYw_.js → GitProgressModal-DZRRb0Wv.js} +1 -1
- package/packages/client/dist/assets/{LiveColumnsView-CWo09zTG.js → LiveColumnsView-DayolaGm.js} +1 -1
- package/packages/client/dist/assets/{LoginPage-BPM6y1Yj.js → LoginPage-BM8wco-G.js} +1 -1
- package/packages/client/dist/assets/{MediaPreview-JO18IhtD.js → MediaPreview-Boc_Efcs.js} +1 -1
- package/packages/client/dist/assets/{MediaPreviewDialog-HOtpKIQD.js → MediaPreviewDialog-BvgtE3i6.js} +1 -1
- package/packages/client/dist/assets/{MermaidBlock-DxJPnpCS.js → MermaidBlock-XIvP1J5s.js} +1 -1
- package/packages/client/dist/assets/{MobilePage-B9LixzUJ.js → MobilePage-528TrvBe.js} +2 -2
- package/packages/client/dist/assets/{MonacoEditorDialog-BGuOUdlF.js → MonacoEditorDialog-PIV1zMvf.js} +1 -1
- package/packages/client/dist/assets/{OrchestratorView-BiNJtR8P.js → OrchestratorView-DyGhY-_D.js} +1 -1
- package/packages/client/dist/assets/{PreferencesPanel-DEJ3B3Mx.js → PreferencesPanel-BWEoYcWd.js} +1 -1
- package/packages/client/dist/assets/{PreviewBrowser-pI5xiPAQ.js → PreviewBrowser-CMOLaONB.js} +1 -1
- package/packages/client/dist/assets/{ProjectFilesPane-H9zl1XxW.js → ProjectFilesPane-6h4yPJAD.js} +1 -1
- package/packages/client/dist/assets/{ProjectHeader-CewLbcv6.js → ProjectHeader-CMxS5sHZ.js} +1 -1
- package/packages/client/dist/assets/{ProjectHooksSettings-Dz9pRWek.js → ProjectHooksSettings-CVJ-nm6H.js} +1 -1
- package/packages/client/dist/assets/{ReviewPane-CdspHwl1.js → ReviewPane-BzRzkCjt.js} +1 -1
- package/packages/client/dist/assets/{SearchablePicker-BlagKlJZ.js → SearchablePicker-BjX782MP.js} +1 -1
- package/packages/client/dist/assets/{SettingsDetailView-DdyYDZde.js → SettingsDetailView-DNPOyp0D.js} +1 -1
- package/packages/client/dist/assets/{SettingsPageContent-ChL9gIzA.js → SettingsPageContent-S-wTMLuj.js} +3 -3
- package/packages/client/dist/assets/{SetupWizard-B3KuWJkX.js → SetupWizard-fmU23YxJ.js} +1 -1
- package/packages/client/dist/assets/{Sidebar-Cp0Ic-cc.js → Sidebar-Bw2Ioplc.js} +1 -1
- package/packages/client/dist/assets/{StashTab-CAqDgV-y.js → StashTab-Cg0Maipz.js} +1 -1
- package/packages/client/dist/assets/{TestRunnerPane-RwW_FDpa.js → TestRunnerPane-Bmx-1-73.js} +1 -1
- package/packages/client/dist/assets/{TextSearchDialog-Q9Pvzolm.js → TextSearchDialog-HKGHYT_o.js} +1 -1
- package/packages/client/dist/assets/{ThreadPowerline-DVWTyxRC.js → ThreadPowerline-JsNrt5F9.js} +1 -1
- package/packages/client/dist/assets/{ThreadStatusPin-CsUuwM1e.js → ThreadStatusPin-R_yWmCoT.js} +1 -1
- package/packages/client/dist/assets/{ThreadView-PbhTHc_b.js → ThreadView-BDULTg_h.js} +1 -1
- package/packages/client/dist/assets/{app-store-DjqdXPml.js → app-store-zHVd_RAl.js} +1 -1
- package/packages/client/dist/assets/{automation-store-CN7G1rmj.js → automation-store-5RQ6ZEv3.js} +1 -1
- package/packages/client/dist/assets/{browser-panel-store-BrY0M-3u.js → browser-panel-store-CfH8N_j3.js} +2 -2
- package/packages/client/dist/assets/{button-DqIT3IPY.js → button-QOkjXCsI.js} +1 -1
- package/packages/client/dist/assets/{combine-DMf_Pe7m.js → combine-BILvIlmd.js} +1 -1
- package/packages/client/dist/assets/{comment-store-BLJA7qy5.js → comment-store-DLNudBAH.js} +1 -1
- package/packages/client/dist/assets/{diff-parse-DoxsYsvR.js → diff-parse-ChUK9GaG.js} +1 -1
- package/packages/client/dist/assets/{element-CWNkjFyh.js → element-9KNKtLXh.js} +1 -1
- package/packages/client/dist/assets/{go-to-thread-1QCGvOr9.js → go-to-thread-D6Trf864.js} +1 -1
- package/packages/client/dist/assets/{index-CmX0PQ41.js → index-CAhq2HfW.js} +2 -2
- package/packages/client/dist/assets/{input-Bi-kCBn4.js → input-6aKHjE5F.js} +1 -1
- package/packages/client/dist/assets/{items-z89mbR0g.js → items-CQJpN5w7.js} +1 -1
- package/packages/client/dist/assets/{job-store-C6L3TZ6m.js → job-store-CMznU474.js} +1 -1
- package/packages/client/dist/assets/{kbd-CYltzHK-.js → kbd-CfA3upXH.js} +1 -1
- package/packages/client/dist/assets/{loading-state-CuNSmah_.js → loading-state-CiP7DrB8.js} +1 -1
- package/packages/client/dist/assets/{markdown-components-CDAAlOfJ.js → markdown-components-CaozR9zQ.js} +1 -1
- package/packages/client/dist/assets/{native-git-store-BRK3QIOm.js → native-git-store-1aY8koIG.js} +1 -1
- package/packages/client/dist/assets/{orchestrator-store-CpN46D7d.js → orchestrator-store-B3cSUPy-.js} +1 -1
- package/packages/client/dist/assets/{pipeline-approval-store-L_CnXcgU.js → pipeline-approval-store-DDI5MtT0.js} +1 -1
- package/packages/client/dist/assets/{pr-detail-store-9Jf4dkle.js → pr-detail-store-b2ZoxQFv.js} +1 -1
- package/packages/client/dist/assets/{providers-CDWMbzb0.js → providers-CXnyofPN.js} +1 -1
- package/packages/client/dist/assets/{sidebar-thesisNh.js → sidebar-chsp_x2A.js} +1 -1
- package/packages/client/dist/assets/{tabs-D2Tzh6Ge.js → tabs-DEUV5jFu.js} +1 -1
- package/packages/client/dist/assets/{test-store-BIzIn_1p.js → test-store-BDiRn2yK.js} +1 -1
- package/packages/client/dist/assets/{tooltip-icon-button-pAxgBlHP.js → tooltip-icon-button-B5IohTsG.js} +1 -1
- package/packages/client/dist/assets/use-active-thread-id-CegcpJuJ.js +1 -0
- package/packages/client/dist/assets/{use-branch-switch-Z5J9CKxB.js → use-branch-switch-BGT_u9P1.js} +1 -1
- package/packages/client/dist/assets/{use-image-lightbox-Bu7huixI.js → use-image-lightbox-9mwEVC_V.js} +1 -1
- package/packages/client/dist/assets/{use-stable-navigate-D0phYEEB.js → use-stable-navigate-BxdZa-Ti.js} +1 -1
- package/packages/client/dist/assets/{use-terminal-scope-CWqnHWM0.js → use-terminal-scope-CiW1SN3R.js} +1 -1
- package/packages/client/dist/assets/{use-thread-creation-d4X0pWGi.js → use-thread-creation-DOTmwLZD.js} +1 -1
- package/packages/client/dist/assets/{use-thread-search-BGPGuqA-.js → use-thread-search-BndwYsGw.js} +1 -1
- package/packages/client/dist/assets/{use-todo-panel-Dh6mAnT6.js → use-todo-panel-CnifRS4_.js} +1 -1
- package/packages/client/dist/assets/{use-unified-prompt-model-groups-DK1DksUz.js → use-unified-prompt-model-groups-BgMV8ZK5.js} +1 -1
- package/packages/client/dist/assets/{use-ws-Dne_mRf6.js → use-ws-XNYpFLUp.js} +3 -3
- package/packages/client/dist/assets/{visualizer-loader-Di5LNXnx.js → visualizer-loader-LOQJ8YOT.js} +1 -1
- package/packages/client/dist/assets/{watcher-store-CwGkvZwT.js → watcher-store-Dzhw8Q9b.js} +1 -1
- package/packages/client/dist/index.html +1 -1
- package/packages/runtime/dist/index.js +2 -2
- package/packages/runtime/dist/index.js.map +2 -2
- package/packages/client/dist/assets/use-active-thread-id-BBsLXIrt.js +0 -1
package/packages/client/dist/assets/{TestRunnerPane-RwW_FDpa.js → TestRunnerPane-Bmx-1-73.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{D as t,Lt as n,Vn as r,ar as i,et as a,hn as o,hr as s,ir as c,lr as l,ut as u,yn as d,zn as f,zr as p}from"./icons-sqwAEN28.js";import{o as m}from"./markdown-DBtwZWLP.js";import{t as h}from"./useTranslation-DAPPK3Hy.js";import{G as g,W as _,lt as v,q as y}from"./index-CmX0PQ41.js";import{t as b}from"./button-DqIT3IPY.js";import{Cn as x,Dr as S,Gn as C,Jn as w,Kn as T,bn as E,in as D,mn as O,q as k,tr as A,yn as j,yr as M}from"./items-z89mbR0g.js";import{C as N,w as P}from"./StashTab-CAqDgV-y.js";import{t as F}from"./loading-state-CuNSmah_.js";import{t as I}from"./tooltip-icon-button-pAxgBlHP.js";import{useTestStore as L}from"./test-store-BIzIn_1p.js";import{BrowserPreview as R}from"./BrowserPreview-CYbez9uL.js";var z=e(p(),1),B=e(m(),1),V=12;function H(e){let t=[];for(let n of e){let e=n.path.split(`/`),r=t;for(let t=0;t<e.length;t++){let n=e[t],i=t===e.length-1,a=e.slice(0,t+1).join(`/`),o=r.find(e=>e.name===n);o||(o={name:n,path:a,isFolder:!i,children:[]},r.push(o)),r=o.children}}return t}function U({status:e}){switch(e){case`running`:return(0,B.jsx)(n,{className:`icon-xs animate-spin text-blue-500`});case`passed`:return(0,B.jsx)(l,{className:`icon-xs text-green-500`});case`failed`:return(0,B.jsx)(i,{className:`icon-xs text-red-500`});case`stopped`:return(0,B.jsx)(c,{className:`icon-xs text-yellow-500`});default:return(0,B.jsx)(c,{className:`icon-xs text-muted-foreground/30`})}}function W({spec:e,depth:n,isRunning:r,showProjects:i,fileStatus:o,onRunSpec:c,onStop:l}){let{t:u}=h(),[d,f]=(0,z.useState)(!1),p=i&&e.projects.length>1;return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(`div`,{"data-testid":`test-spec-${e.file}-${e.line}`,className:`group text-muted-foreground hover:bg-sidebar-accent/50 flex h-[24px] cursor-pointer items-center gap-1.5 text-xs transition-colors`,style:{paddingLeft:`${8+n*V}px`},onClick:p?()=>f(!d):void 0,children:[p?(0,B.jsx)(s,{className:v(`icon-sm shrink-0 transition-transform`,d&&`rotate-90`)}):(0,B.jsx)(U,{status:o}),(0,B.jsx)(`span`,{className:`font-mono-explorer flex-1 truncate text-xs`,title:e.title,children:e.title}),!p&&(r&&o===`running`?(0,B.jsx)(I,{"data-testid":`test-spec-stop-${e.file}-${e.line}`,size:`icon`,className:`text-destructive hover:text-destructive size-5 opacity-100`,onClick:l,tooltip:u(`common.stop`),children:(0,B.jsx)(t,{className:`icon-2xs fill-current`})}):(0,B.jsx)(I,{"data-testid":`test-spec-play-${e.file}-${e.line}`,size:`icon`,className:`size-5 opacity-0 group-hover:opacity-100`,disabled:r,onClick:()=>c(e.file,e.line),tooltip:u(`common.run`),children:(0,B.jsx)(a,{className:`icon-2xs`})}))]}),p&&d&&e.projects.map(t=>(0,B.jsxs)(`div`,{"data-testid":`test-spec-${e.file}-${e.line}-${t}`,className:`group text-muted-foreground hover:bg-sidebar-accent/50 flex h-[24px] cursor-pointer items-center gap-1.5 text-xs transition-colors`,style:{paddingLeft:`${8+(n+1)*V}px`},children:[(0,B.jsx)(U,{status:o}),(0,B.jsx)(`span`,{className:`font-mono-explorer flex-1 truncate text-xs`,children:t}),(0,B.jsx)(I,{"data-testid":`test-spec-play-${e.file}-${e.line}-${t}`,size:`icon`,className:`size-5 opacity-0 group-hover:opacity-100`,disabled:r,onClick:()=>c(e.file,e.line,t),tooltip:`${u(`common.run`)} (${t})`,children:(0,B.jsx)(a,{className:`icon-2xs`})})]},t))]})}function G({suite:e,depth:t,isRunning:n,showProjects:r,fileStatus:i,onRunSpec:a,onStop:o,expandedSuites:c,toggleSuite:l}){let u=`${e.file}:${e.line}`,d=c.has(u);return e.title?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(`div`,{"data-testid":`test-suite-${e.file}-${e.line}`,className:v(`flex h-[24px] cursor-pointer select-none items-center gap-1.5 text-xs`,`text-muted-foreground transition-colors hover:bg-sidebar-accent/50`),style:{paddingLeft:`${8+t*V}px`},onClick:()=>l(u),children:[(0,B.jsx)(s,{className:v(`icon-sm shrink-0 transition-transform`,d&&`rotate-90`)}),(0,B.jsx)(U,{status:i}),(0,B.jsx)(`span`,{className:`font-mono-explorer flex-1 truncate text-xs font-medium`,title:e.title,children:e.title})]}),d&&(0,B.jsxs)(B.Fragment,{children:[e.specs.map(e=>(0,B.jsx)(W,{spec:e,depth:t+1,isRunning:n,showProjects:r,fileStatus:i,onRunSpec:a,onStop:o},`${e.file}:${e.line}`)),e.suites.map(e=>(0,B.jsx)(G,{suite:e,depth:t+1,isRunning:n,showProjects:r,fileStatus:i,onRunSpec:a,onStop:o,expandedSuites:c,toggleSuite:l},`${e.file}:${e.line}`))]})]}):(0,B.jsx)(B.Fragment,{children:e.specs.map(e=>(0,B.jsx)(W,{spec:e,depth:t,isRunning:n,showProjects:r,fileStatus:i,onRunSpec:a,onStop:o},`${e.file}:${e.line}`))})}function K({node:e,depth:i,expandedFolders:c,toggleFolder:l,expandedFiles:u,toggleFile:p,expandedSuites:m,toggleSuite:g,fileStatuses:_,fileSpecs:y,fileSuites:S,specsLoading:D,isRunning:O,showProjects:k,projectPath:M,onRunFile:N,onRunSpec:P,onExpandFile:F,onStop:I}){let{t:L}=h(),[R,H]=(0,z.useState)(!1),q=c.has(e.path);if(e.isFolder)return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(`div`,{"data-testid":`test-folder-${e.path}`,onClick:()=>l(e.path),className:v(`flex h-[24px] cursor-pointer select-none items-center gap-1.5 text-xs`,`text-muted-foreground transition-colors hover:bg-sidebar-accent/50`),style:{paddingLeft:`${8+i*V}px`},children:[(0,B.jsx)(s,{className:v(`icon-sm shrink-0 transition-transform`,q&&`rotate-90`)}),q?(0,B.jsx)(d,{className:`icon-base text-muted-foreground/70 shrink-0`}):(0,B.jsx)(o,{className:`icon-base text-muted-foreground/70 shrink-0`}),(0,B.jsx)(`span`,{className:`font-mono-explorer flex-1 truncate text-xs`,children:e.name})]}),q&&e.children.map(e=>(0,B.jsx)(K,{node:e,depth:i+1,expandedFolders:c,toggleFolder:l,expandedFiles:u,toggleFile:p,expandedSuites:m,toggleSuite:g,fileStatuses:_,fileSpecs:y,fileSuites:S,specsLoading:D,isRunning:O,showProjects:k,projectPath:M,onRunFile:N,onRunSpec:P,onExpandFile:F,onStop:I},e.path))]});let J=_[e.path],Y=u.has(e.path),X=y[e.path],Z=S[e.path],Q=D[e.path],$=()=>{p(e.path),F(e.path)};return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(`div`,{"data-testid":`test-file-${e.path}`,className:v(`group flex h-[24px] items-center gap-1.5 text-xs cursor-pointer transition-colors`,J===`running`?`bg-sidebar-accent text-sidebar-accent-foreground`:`hover:bg-sidebar-accent/50 text-muted-foreground`),style:{paddingLeft:`${8+i*V}px`},onClick:$,children:[(0,B.jsx)(`button`,{"data-testid":`test-file-expand-${e.path}`,className:`shrink-0`,onClick:e=>{e.stopPropagation(),$()},children:(0,B.jsx)(s,{className:v(`icon-sm shrink-0 transition-transform text-muted-foreground`,Y&&`rotate-90`)})}),(0,B.jsx)(j,{filePath:e.path,className:`text-muted-foreground/80 size-4 shrink-0`}),(0,B.jsx)(`span`,{className:`font-mono-explorer flex-1 truncate text-xs`,children:e.name}),(0,B.jsx)(U,{status:J}),J===`running`?(0,B.jsx)(b,{"data-testid":`test-stop-${e.path}`,variant:`ghost`,size:`icon`,className:`text-destructive hover:text-destructive size-5 opacity-100`,onClick:e=>{e.stopPropagation(),I()},children:(0,B.jsx)(t,{className:`icon-xs fill-current`})}):(0,B.jsx)(b,{"data-testid":`test-play-${e.path}`,variant:`ghost`,size:`icon`,className:`size-5 opacity-0 group-hover:opacity-100`,disabled:O,onClick:t=>{t.stopPropagation(),N(e.path)},children:(0,B.jsx)(a,{className:`icon-xs`})}),(0,B.jsxs)(C,{open:R,onOpenChange:H,children:[(0,B.jsx)(A,{asChild:!0,children:(0,B.jsx)(`button`,{"data-testid":`test-file-menu-${e.path}`,className:v(`flex size-6 shrink-0 items-center justify-center rounded-sm hover:bg-sidebar-accent`,R?`opacity-100`:`opacity-0 group-hover:opacity-100`),onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation(),children:(0,B.jsx)(r,{className:`icon-sm`})})}),(0,B.jsx)(T,{align:`end`,className:`min-w-[180px]`,children:(0,B.jsxs)(w,{"data-testid":`test-file-open-editor-${e.path}`,onClick:t=>{t.stopPropagation(),x(M?`${M}/${e.path}`:e.path)},children:[(0,B.jsx)(f,{}),L(`review.openInEditor`,{editor:E()})]})})]})]}),Y&&(Q?(0,B.jsxs)(`div`,{className:`text-muted-foreground flex h-6 items-center gap-2 text-xs`,style:{paddingLeft:`${8+(i+1)*V}px`},children:[(0,B.jsx)(n,{className:`icon-xs animate-spin`}),`Discovering tests…`]}):Z&&Z.length>0?Z.map(e=>(0,B.jsx)(G,{suite:e,depth:i+1,isRunning:O,showProjects:k,fileStatus:J,onRunSpec:P,onStop:I,expandedSuites:m,toggleSuite:g},`${e.file}:${e.line}:${e.title}`)):X&&X.length>0?X.map(e=>(0,B.jsx)(W,{spec:e,depth:i+1,isRunning:O,showProjects:k,fileStatus:J,onRunSpec:P,onStop:I},`${e.file}:${e.line}`)):X?(0,B.jsx)(`div`,{className:`text-muted-foreground flex h-6 items-center text-xs`,style:{paddingLeft:`${8+(i+1)*V}px`},children:`No tests found`}):null)]})}function q({files:e,fileStatuses:n,fileSpecs:r,fileSuites:i,specsLoading:o,isRunning:s,isLoading:c,projectPath:l,availableProjects:u,selectedProjects:d,onToggleProject:f,onRunFile:p,onRunSpec:m,onExpandFile:h,onRunAll:g,onStop:_}){let[v,y]=(0,z.useState)(``),[x,S]=(0,z.useState)(!1),[C,w]=(0,z.useState)(new Set),[T,E]=(0,z.useState)(new Set),[A,j]=(0,z.useState)(new Set),M=(0,z.useRef)(!1),N=(0,z.useMemo)(()=>{if(!v)return e;if(x)return e.filter(e=>e.path.includes(v));let t=v.toLowerCase();return e.filter(e=>e.path.toLowerCase().includes(t))},[e,v,x]),P=(0,z.useMemo)(()=>H(N),[N]);(0,z.useEffect)(()=>{if(e.length!==0)if(M.current)w(e=>{let t=new Set(e),n=!1;for(let e of P)e.isFolder&&!t.has(e.path)&&(t.add(e.path),n=!0);return n?t:e});else{M.current=!0;let t=new Set;if(e.length<=20){let e=n=>{for(let r of n)r.isFolder&&(t.add(r.path),e(r.children))};e(P)}else for(let e of P)e.isFolder&&t.add(e.path);w(t)}},[e.length,P]);let I=(0,z.useMemo)(()=>{if(v){let e=new Set,t=n=>{for(let r of n)r.isFolder&&(e.add(r.path),t(r.children))};return t(P),e}return C},[v,P,C]),L=e=>{w(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},R=e=>{E(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},V=e=>{j(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return(0,B.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden`,children:[(0,B.jsxs)(`div`,{className:`flex items-center gap-2 border-b px-2 py-1.5`,children:[(0,B.jsx)(O,{query:v,onQueryChange:y,placeholder:`Search tests...`,totalMatches:N.length,resultLabel:v?`${N.length}/${e.length}`:``,caseSensitive:x,onCaseSensitiveChange:S,onClose:v?()=>y(``):void 0,autoFocus:!1,testIdPrefix:`test-search`,className:`flex-1`}),s?(0,B.jsxs)(b,{"data-testid":`test-stop`,variant:`destructive`,size:`sm`,className:`h-7 shrink-0 gap-1 px-2 text-xs`,onClick:_,children:[(0,B.jsx)(t,{className:`icon-sm`}),`Stop`]}):(0,B.jsxs)(b,{"data-testid":`test-run-all`,variant:`ghost`,size:`sm`,className:`h-7 shrink-0 gap-1 px-2 text-xs`,disabled:e.length===0,onClick:g,children:[(0,B.jsx)(a,{className:`icon-sm`}),`Run All`]})]}),u.length>1&&(0,B.jsxs)(`div`,{className:`flex items-center gap-3 border-b px-3 py-1.5`,children:[(0,B.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:`Projects:`}),u.map(e=>(0,B.jsxs)(`label`,{"data-testid":`test-project-${e}`,className:`flex cursor-pointer items-center gap-1.5`,children:[(0,B.jsx)(k,{checked:d.includes(e),onCheckedChange:()=>f(e)}),(0,B.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:e})]},e))]}),(0,B.jsx)(D,{className:`flex-1 pr-3`,children:c?(0,B.jsx)(F,{fill:!1,layout:`inline`,className:`py-8`,testId:`test-file-browser-loading`,label:`Loading tests…`}):e.length===0?(0,B.jsx)(`div`,{className:`text-muted-foreground px-4 py-8 text-center text-sm`,children:`No test files found`}):N.length===0?(0,B.jsxs)(`div`,{className:`text-muted-foreground px-4 py-8 text-center text-sm`,children:[`No tests matching "`,v,`"`]}):P.map(e=>(0,B.jsx)(K,{node:e,depth:0,expandedFolders:I,toggleFolder:L,expandedFiles:T,toggleFile:R,expandedSuites:A,toggleSuite:V,fileStatuses:n,fileSpecs:r,fileSuites:i,specsLoading:o,isRunning:s,showProjects:d.length>1,projectPath:l,onRunFile:p,onRunSpec:m,onExpandFile:h,onStop:_},e.path))})]})}var J=`test_viewer_split`,Y=75,X=30,Z=90;function Q(){let e=S(e=>e.selectedProjectId),t=S(e=>e.projects.find(t=>t.id===e.selectedProjectId)?.path),{files:n,isRunning:r,isLoading:i,fileStatuses:a,fileSpecs:o,fileSuites:s,specsLoading:c,outputLines:l,isStreaming:d,activeProjectId:f,activeFile:p,availableProjects:m,selectedProjects:h,consoleEntries:v,networkEntries:x,errorEntries:C,loadFiles:w,startRun:T,startSpecRun:E,stopRun:D,discoverSpecs:O,toggleProject:k}=L();(0,z.useEffect)(()=>{e&&e!==f&&w(e)},[e,f,w]);let A=(0,z.useCallback)(t=>{e&&T(e,t)},[e,T]),j=(0,z.useCallback)((t,n,r)=>{e&&E(e,t,n,r)},[e,E]),F=(0,z.useCallback)(t=>{e&&(o[t]||O(e,t))},[e,o,O]),I=(0,z.useCallback)(()=>{!e||n.length===0||T(e,n[0].path)},[e,n,T]),V=(0,z.useCallback)(()=>{e&&D(e)},[e,D]),H=(0,z.useCallback)(()=>{M.getState().setTestRunnerOpen(!1)},[]),[U,W]=(0,z.useState)(()=>{try{let e=localStorage.getItem(J);return e?Number(e):Y}catch{return Y}}),G=(0,z.useRef)(null),K=(0,z.useRef)(U),{resizing:Q,handlePointerDown:$,handlePointerMove:ee,handlePointerUp:te}=P({direction:`horizontal`,onResizeStart:()=>{K.current=U},onResize:e=>{if(!G.current)return;let t=e/G.current.getBoundingClientRect().width*100,n=Math.max(X,Math.min(Z,K.current+t));W(n);try{localStorage.setItem(J,String(n))}catch{}}});return e?(0,B.jsxs)(`div`,{className:`flex h-full w-full flex-col overflow-hidden`,children:[(0,B.jsxs)(`div`,{className:`border-sidebar-border flex h-12 items-center justify-between border-b px-2`,children:[(0,B.jsx)(`h3`,{className:`text-sidebar-foreground ml-2 text-xs font-semibold tracking-wider uppercase`,children:`Test Runner`}),(0,B.jsxs)(_,{children:[(0,B.jsx)(y,{asChild:!0,children:(0,B.jsx)(b,{variant:`ghost`,size:`icon-sm`,onClick:H,className:`text-muted-foreground`,"data-testid":`test-runner-close`,children:(0,B.jsx)(u,{className:`icon-base`})})}),(0,B.jsx)(g,{side:`top`,children:`Close`})]})]}),(0,B.jsxs)(`div`,{ref:G,className:`relative flex min-h-0 flex-1 overflow-hidden`,children:[(0,B.jsx)(`div`,{className:`min-w-0 overflow-hidden`,style:{width:`${U}%`},children:(0,B.jsx)(R,{isRunning:r,isStreaming:d,outputLines:l,consoleEntries:v,networkEntries:x,errorEntries:C,activeFile:p,projectPath:t,onStop:V})}),(0,B.jsx)(N,{direction:`horizontal`,resizing:Q,onPointerDown:$,onPointerMove:ee,onPointerUp:te,"data-testid":`test-viewer-resize`}),(0,B.jsx)(`div`,{className:`min-w-0 flex-1 overflow-hidden`,children:(0,B.jsx)(q,{files:n,fileStatuses:a,fileSpecs:o,fileSuites:s,specsLoading:c,isRunning:r,isLoading:i,projectPath:t,availableProjects:m,selectedProjects:h,onToggleProject:k,onRunFile:A,onRunSpec:j,onExpandFile:F,onRunAll:I,onStop:V})})]})]}):(0,B.jsx)(`div`,{className:`text-muted-foreground flex h-full items-center justify-center text-sm`,children:`Select a project to run tests`})}export{Q as TestRunnerPane};
|
|
1
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{D as t,Lt as n,Vn as r,ar as i,et as a,hn as o,hr as s,ir as c,lr as l,ut as u,yn as d,zn as f,zr as p}from"./icons-sqwAEN28.js";import{o as m}from"./markdown-DBtwZWLP.js";import{t as h}from"./useTranslation-DAPPK3Hy.js";import{G as g,W as _,lt as v,q as y}from"./index-CAhq2HfW.js";import{t as b}from"./button-QOkjXCsI.js";import{Cn as x,Dr as S,Gn as C,Jn as w,Kn as T,bn as E,in as D,mn as O,q as k,tr as A,yn as j,yr as M}from"./items-CQJpN5w7.js";import{C as N,w as P}from"./StashTab-Cg0Maipz.js";import{t as F}from"./loading-state-CiP7DrB8.js";import{t as I}from"./tooltip-icon-button-B5IohTsG.js";import{useTestStore as L}from"./test-store-BDiRn2yK.js";import{BrowserPreview as R}from"./BrowserPreview-REscPcXd.js";var z=e(p(),1),B=e(m(),1),V=12;function H(e){let t=[];for(let n of e){let e=n.path.split(`/`),r=t;for(let t=0;t<e.length;t++){let n=e[t],i=t===e.length-1,a=e.slice(0,t+1).join(`/`),o=r.find(e=>e.name===n);o||(o={name:n,path:a,isFolder:!i,children:[]},r.push(o)),r=o.children}}return t}function U({status:e}){switch(e){case`running`:return(0,B.jsx)(n,{className:`icon-xs animate-spin text-blue-500`});case`passed`:return(0,B.jsx)(l,{className:`icon-xs text-green-500`});case`failed`:return(0,B.jsx)(i,{className:`icon-xs text-red-500`});case`stopped`:return(0,B.jsx)(c,{className:`icon-xs text-yellow-500`});default:return(0,B.jsx)(c,{className:`icon-xs text-muted-foreground/30`})}}function W({spec:e,depth:n,isRunning:r,showProjects:i,fileStatus:o,onRunSpec:c,onStop:l}){let{t:u}=h(),[d,f]=(0,z.useState)(!1),p=i&&e.projects.length>1;return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(`div`,{"data-testid":`test-spec-${e.file}-${e.line}`,className:`group text-muted-foreground hover:bg-sidebar-accent/50 flex h-[24px] cursor-pointer items-center gap-1.5 text-xs transition-colors`,style:{paddingLeft:`${8+n*V}px`},onClick:p?()=>f(!d):void 0,children:[p?(0,B.jsx)(s,{className:v(`icon-sm shrink-0 transition-transform`,d&&`rotate-90`)}):(0,B.jsx)(U,{status:o}),(0,B.jsx)(`span`,{className:`font-mono-explorer flex-1 truncate text-xs`,title:e.title,children:e.title}),!p&&(r&&o===`running`?(0,B.jsx)(I,{"data-testid":`test-spec-stop-${e.file}-${e.line}`,size:`icon`,className:`text-destructive hover:text-destructive size-5 opacity-100`,onClick:l,tooltip:u(`common.stop`),children:(0,B.jsx)(t,{className:`icon-2xs fill-current`})}):(0,B.jsx)(I,{"data-testid":`test-spec-play-${e.file}-${e.line}`,size:`icon`,className:`size-5 opacity-0 group-hover:opacity-100`,disabled:r,onClick:()=>c(e.file,e.line),tooltip:u(`common.run`),children:(0,B.jsx)(a,{className:`icon-2xs`})}))]}),p&&d&&e.projects.map(t=>(0,B.jsxs)(`div`,{"data-testid":`test-spec-${e.file}-${e.line}-${t}`,className:`group text-muted-foreground hover:bg-sidebar-accent/50 flex h-[24px] cursor-pointer items-center gap-1.5 text-xs transition-colors`,style:{paddingLeft:`${8+(n+1)*V}px`},children:[(0,B.jsx)(U,{status:o}),(0,B.jsx)(`span`,{className:`font-mono-explorer flex-1 truncate text-xs`,children:t}),(0,B.jsx)(I,{"data-testid":`test-spec-play-${e.file}-${e.line}-${t}`,size:`icon`,className:`size-5 opacity-0 group-hover:opacity-100`,disabled:r,onClick:()=>c(e.file,e.line,t),tooltip:`${u(`common.run`)} (${t})`,children:(0,B.jsx)(a,{className:`icon-2xs`})})]},t))]})}function G({suite:e,depth:t,isRunning:n,showProjects:r,fileStatus:i,onRunSpec:a,onStop:o,expandedSuites:c,toggleSuite:l}){let u=`${e.file}:${e.line}`,d=c.has(u);return e.title?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(`div`,{"data-testid":`test-suite-${e.file}-${e.line}`,className:v(`flex h-[24px] cursor-pointer select-none items-center gap-1.5 text-xs`,`text-muted-foreground transition-colors hover:bg-sidebar-accent/50`),style:{paddingLeft:`${8+t*V}px`},onClick:()=>l(u),children:[(0,B.jsx)(s,{className:v(`icon-sm shrink-0 transition-transform`,d&&`rotate-90`)}),(0,B.jsx)(U,{status:i}),(0,B.jsx)(`span`,{className:`font-mono-explorer flex-1 truncate text-xs font-medium`,title:e.title,children:e.title})]}),d&&(0,B.jsxs)(B.Fragment,{children:[e.specs.map(e=>(0,B.jsx)(W,{spec:e,depth:t+1,isRunning:n,showProjects:r,fileStatus:i,onRunSpec:a,onStop:o},`${e.file}:${e.line}`)),e.suites.map(e=>(0,B.jsx)(G,{suite:e,depth:t+1,isRunning:n,showProjects:r,fileStatus:i,onRunSpec:a,onStop:o,expandedSuites:c,toggleSuite:l},`${e.file}:${e.line}`))]})]}):(0,B.jsx)(B.Fragment,{children:e.specs.map(e=>(0,B.jsx)(W,{spec:e,depth:t,isRunning:n,showProjects:r,fileStatus:i,onRunSpec:a,onStop:o},`${e.file}:${e.line}`))})}function K({node:e,depth:i,expandedFolders:c,toggleFolder:l,expandedFiles:u,toggleFile:p,expandedSuites:m,toggleSuite:g,fileStatuses:_,fileSpecs:y,fileSuites:S,specsLoading:D,isRunning:O,showProjects:k,projectPath:M,onRunFile:N,onRunSpec:P,onExpandFile:F,onStop:I}){let{t:L}=h(),[R,H]=(0,z.useState)(!1),q=c.has(e.path);if(e.isFolder)return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(`div`,{"data-testid":`test-folder-${e.path}`,onClick:()=>l(e.path),className:v(`flex h-[24px] cursor-pointer select-none items-center gap-1.5 text-xs`,`text-muted-foreground transition-colors hover:bg-sidebar-accent/50`),style:{paddingLeft:`${8+i*V}px`},children:[(0,B.jsx)(s,{className:v(`icon-sm shrink-0 transition-transform`,q&&`rotate-90`)}),q?(0,B.jsx)(d,{className:`icon-base text-muted-foreground/70 shrink-0`}):(0,B.jsx)(o,{className:`icon-base text-muted-foreground/70 shrink-0`}),(0,B.jsx)(`span`,{className:`font-mono-explorer flex-1 truncate text-xs`,children:e.name})]}),q&&e.children.map(e=>(0,B.jsx)(K,{node:e,depth:i+1,expandedFolders:c,toggleFolder:l,expandedFiles:u,toggleFile:p,expandedSuites:m,toggleSuite:g,fileStatuses:_,fileSpecs:y,fileSuites:S,specsLoading:D,isRunning:O,showProjects:k,projectPath:M,onRunFile:N,onRunSpec:P,onExpandFile:F,onStop:I},e.path))]});let J=_[e.path],Y=u.has(e.path),X=y[e.path],Z=S[e.path],Q=D[e.path],$=()=>{p(e.path),F(e.path)};return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(`div`,{"data-testid":`test-file-${e.path}`,className:v(`group flex h-[24px] items-center gap-1.5 text-xs cursor-pointer transition-colors`,J===`running`?`bg-sidebar-accent text-sidebar-accent-foreground`:`hover:bg-sidebar-accent/50 text-muted-foreground`),style:{paddingLeft:`${8+i*V}px`},onClick:$,children:[(0,B.jsx)(`button`,{"data-testid":`test-file-expand-${e.path}`,className:`shrink-0`,onClick:e=>{e.stopPropagation(),$()},children:(0,B.jsx)(s,{className:v(`icon-sm shrink-0 transition-transform text-muted-foreground`,Y&&`rotate-90`)})}),(0,B.jsx)(j,{filePath:e.path,className:`text-muted-foreground/80 size-4 shrink-0`}),(0,B.jsx)(`span`,{className:`font-mono-explorer flex-1 truncate text-xs`,children:e.name}),(0,B.jsx)(U,{status:J}),J===`running`?(0,B.jsx)(b,{"data-testid":`test-stop-${e.path}`,variant:`ghost`,size:`icon`,className:`text-destructive hover:text-destructive size-5 opacity-100`,onClick:e=>{e.stopPropagation(),I()},children:(0,B.jsx)(t,{className:`icon-xs fill-current`})}):(0,B.jsx)(b,{"data-testid":`test-play-${e.path}`,variant:`ghost`,size:`icon`,className:`size-5 opacity-0 group-hover:opacity-100`,disabled:O,onClick:t=>{t.stopPropagation(),N(e.path)},children:(0,B.jsx)(a,{className:`icon-xs`})}),(0,B.jsxs)(C,{open:R,onOpenChange:H,children:[(0,B.jsx)(A,{asChild:!0,children:(0,B.jsx)(`button`,{"data-testid":`test-file-menu-${e.path}`,className:v(`flex size-6 shrink-0 items-center justify-center rounded-sm hover:bg-sidebar-accent`,R?`opacity-100`:`opacity-0 group-hover:opacity-100`),onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation(),children:(0,B.jsx)(r,{className:`icon-sm`})})}),(0,B.jsx)(T,{align:`end`,className:`min-w-[180px]`,children:(0,B.jsxs)(w,{"data-testid":`test-file-open-editor-${e.path}`,onClick:t=>{t.stopPropagation(),x(M?`${M}/${e.path}`:e.path)},children:[(0,B.jsx)(f,{}),L(`review.openInEditor`,{editor:E()})]})})]})]}),Y&&(Q?(0,B.jsxs)(`div`,{className:`text-muted-foreground flex h-6 items-center gap-2 text-xs`,style:{paddingLeft:`${8+(i+1)*V}px`},children:[(0,B.jsx)(n,{className:`icon-xs animate-spin`}),`Discovering tests…`]}):Z&&Z.length>0?Z.map(e=>(0,B.jsx)(G,{suite:e,depth:i+1,isRunning:O,showProjects:k,fileStatus:J,onRunSpec:P,onStop:I,expandedSuites:m,toggleSuite:g},`${e.file}:${e.line}:${e.title}`)):X&&X.length>0?X.map(e=>(0,B.jsx)(W,{spec:e,depth:i+1,isRunning:O,showProjects:k,fileStatus:J,onRunSpec:P,onStop:I},`${e.file}:${e.line}`)):X?(0,B.jsx)(`div`,{className:`text-muted-foreground flex h-6 items-center text-xs`,style:{paddingLeft:`${8+(i+1)*V}px`},children:`No tests found`}):null)]})}function q({files:e,fileStatuses:n,fileSpecs:r,fileSuites:i,specsLoading:o,isRunning:s,isLoading:c,projectPath:l,availableProjects:u,selectedProjects:d,onToggleProject:f,onRunFile:p,onRunSpec:m,onExpandFile:h,onRunAll:g,onStop:_}){let[v,y]=(0,z.useState)(``),[x,S]=(0,z.useState)(!1),[C,w]=(0,z.useState)(new Set),[T,E]=(0,z.useState)(new Set),[A,j]=(0,z.useState)(new Set),M=(0,z.useRef)(!1),N=(0,z.useMemo)(()=>{if(!v)return e;if(x)return e.filter(e=>e.path.includes(v));let t=v.toLowerCase();return e.filter(e=>e.path.toLowerCase().includes(t))},[e,v,x]),P=(0,z.useMemo)(()=>H(N),[N]);(0,z.useEffect)(()=>{if(e.length!==0)if(M.current)w(e=>{let t=new Set(e),n=!1;for(let e of P)e.isFolder&&!t.has(e.path)&&(t.add(e.path),n=!0);return n?t:e});else{M.current=!0;let t=new Set;if(e.length<=20){let e=n=>{for(let r of n)r.isFolder&&(t.add(r.path),e(r.children))};e(P)}else for(let e of P)e.isFolder&&t.add(e.path);w(t)}},[e.length,P]);let I=(0,z.useMemo)(()=>{if(v){let e=new Set,t=n=>{for(let r of n)r.isFolder&&(e.add(r.path),t(r.children))};return t(P),e}return C},[v,P,C]),L=e=>{w(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},R=e=>{E(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},V=e=>{j(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return(0,B.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden`,children:[(0,B.jsxs)(`div`,{className:`flex items-center gap-2 border-b px-2 py-1.5`,children:[(0,B.jsx)(O,{query:v,onQueryChange:y,placeholder:`Search tests...`,totalMatches:N.length,resultLabel:v?`${N.length}/${e.length}`:``,caseSensitive:x,onCaseSensitiveChange:S,onClose:v?()=>y(``):void 0,autoFocus:!1,testIdPrefix:`test-search`,className:`flex-1`}),s?(0,B.jsxs)(b,{"data-testid":`test-stop`,variant:`destructive`,size:`sm`,className:`h-7 shrink-0 gap-1 px-2 text-xs`,onClick:_,children:[(0,B.jsx)(t,{className:`icon-sm`}),`Stop`]}):(0,B.jsxs)(b,{"data-testid":`test-run-all`,variant:`ghost`,size:`sm`,className:`h-7 shrink-0 gap-1 px-2 text-xs`,disabled:e.length===0,onClick:g,children:[(0,B.jsx)(a,{className:`icon-sm`}),`Run All`]})]}),u.length>1&&(0,B.jsxs)(`div`,{className:`flex items-center gap-3 border-b px-3 py-1.5`,children:[(0,B.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:`Projects:`}),u.map(e=>(0,B.jsxs)(`label`,{"data-testid":`test-project-${e}`,className:`flex cursor-pointer items-center gap-1.5`,children:[(0,B.jsx)(k,{checked:d.includes(e),onCheckedChange:()=>f(e)}),(0,B.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:e})]},e))]}),(0,B.jsx)(D,{className:`flex-1 pr-3`,children:c?(0,B.jsx)(F,{fill:!1,layout:`inline`,className:`py-8`,testId:`test-file-browser-loading`,label:`Loading tests…`}):e.length===0?(0,B.jsx)(`div`,{className:`text-muted-foreground px-4 py-8 text-center text-sm`,children:`No test files found`}):N.length===0?(0,B.jsxs)(`div`,{className:`text-muted-foreground px-4 py-8 text-center text-sm`,children:[`No tests matching "`,v,`"`]}):P.map(e=>(0,B.jsx)(K,{node:e,depth:0,expandedFolders:I,toggleFolder:L,expandedFiles:T,toggleFile:R,expandedSuites:A,toggleSuite:V,fileStatuses:n,fileSpecs:r,fileSuites:i,specsLoading:o,isRunning:s,showProjects:d.length>1,projectPath:l,onRunFile:p,onRunSpec:m,onExpandFile:h,onStop:_},e.path))})]})}var J=`test_viewer_split`,Y=75,X=30,Z=90;function Q(){let e=S(e=>e.selectedProjectId),t=S(e=>e.projects.find(t=>t.id===e.selectedProjectId)?.path),{files:n,isRunning:r,isLoading:i,fileStatuses:a,fileSpecs:o,fileSuites:s,specsLoading:c,outputLines:l,isStreaming:d,activeProjectId:f,activeFile:p,availableProjects:m,selectedProjects:h,consoleEntries:v,networkEntries:x,errorEntries:C,loadFiles:w,startRun:T,startSpecRun:E,stopRun:D,discoverSpecs:O,toggleProject:k}=L();(0,z.useEffect)(()=>{e&&e!==f&&w(e)},[e,f,w]);let A=(0,z.useCallback)(t=>{e&&T(e,t)},[e,T]),j=(0,z.useCallback)((t,n,r)=>{e&&E(e,t,n,r)},[e,E]),F=(0,z.useCallback)(t=>{e&&(o[t]||O(e,t))},[e,o,O]),I=(0,z.useCallback)(()=>{!e||n.length===0||T(e,n[0].path)},[e,n,T]),V=(0,z.useCallback)(()=>{e&&D(e)},[e,D]),H=(0,z.useCallback)(()=>{M.getState().setTestRunnerOpen(!1)},[]),[U,W]=(0,z.useState)(()=>{try{let e=localStorage.getItem(J);return e?Number(e):Y}catch{return Y}}),G=(0,z.useRef)(null),K=(0,z.useRef)(U),{resizing:Q,handlePointerDown:$,handlePointerMove:ee,handlePointerUp:te}=P({direction:`horizontal`,onResizeStart:()=>{K.current=U},onResize:e=>{if(!G.current)return;let t=e/G.current.getBoundingClientRect().width*100,n=Math.max(X,Math.min(Z,K.current+t));W(n);try{localStorage.setItem(J,String(n))}catch{}}});return e?(0,B.jsxs)(`div`,{className:`flex h-full w-full flex-col overflow-hidden`,children:[(0,B.jsxs)(`div`,{className:`border-sidebar-border flex h-12 items-center justify-between border-b px-2`,children:[(0,B.jsx)(`h3`,{className:`text-sidebar-foreground ml-2 text-xs font-semibold tracking-wider uppercase`,children:`Test Runner`}),(0,B.jsxs)(_,{children:[(0,B.jsx)(y,{asChild:!0,children:(0,B.jsx)(b,{variant:`ghost`,size:`icon-sm`,onClick:H,className:`text-muted-foreground`,"data-testid":`test-runner-close`,children:(0,B.jsx)(u,{className:`icon-base`})})}),(0,B.jsx)(g,{side:`top`,children:`Close`})]})]}),(0,B.jsxs)(`div`,{ref:G,className:`relative flex min-h-0 flex-1 overflow-hidden`,children:[(0,B.jsx)(`div`,{className:`min-w-0 overflow-hidden`,style:{width:`${U}%`},children:(0,B.jsx)(R,{isRunning:r,isStreaming:d,outputLines:l,consoleEntries:v,networkEntries:x,errorEntries:C,activeFile:p,projectPath:t,onStop:V})}),(0,B.jsx)(N,{direction:`horizontal`,resizing:Q,onPointerDown:$,onPointerMove:ee,onPointerUp:te,"data-testid":`test-viewer-resize`}),(0,B.jsx)(`div`,{className:`min-w-0 flex-1 overflow-hidden`,children:(0,B.jsx)(q,{files:n,fileStatuses:a,fileSpecs:o,fileSuites:s,specsLoading:c,isRunning:r,isLoading:i,projectPath:t,availableProjects:m,selectedProjects:h,onToggleProject:k,onRunFile:A,onRunSpec:j,onExpandFile:F,onRunAll:I,onStop:V})})]})]}):(0,B.jsx)(`div`,{className:`text-muted-foreground flex h-full items-center justify-center text-sm`,children:`Select a project to run tests`})}export{Q as TestRunnerPane};
|
package/packages/client/dist/assets/{TextSearchDialog-Q9Pvzolm.js → TextSearchDialog-HKGHYT_o.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{_r as t,hr as n,zr as r}from"./icons-sqwAEN28.js";import{o as i}from"./markdown-DBtwZWLP.js";import{t as a}from"./useTranslation-DAPPK3Hy.js";import{t as o}from"./telemetry-BE4cJhqj.js";import{P as s,j as c,lt as ee}from"./index-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{_r as t,hr as n,zr as r}from"./icons-sqwAEN28.js";import{o as i}from"./markdown-DBtwZWLP.js";import{t as a}from"./useTranslation-DAPPK3Hy.js";import{t as o}from"./telemetry-BE4cJhqj.js";import{P as s,j as c,lt as ee}from"./index-CAhq2HfW.js";import{$r as te,Gr as l,Nn as u,Qr as ne,Zr as re,mn as ie,ri as d,vr as f,xt as p,yn as m,yr as h,zr as g}from"./items-CQJpN5w7.js";import{t as _}from"./input-6aKHjE5F.js";import{t as v}from"./loading-state-CiP7DrB8.js";var y=e(r(),1),b=e(i(),1),ae=c(`text-search-dialog`),oe=250,se=480,x=28,S=22;function C({open:e,onOpenChange:t}){return e?(0,b.jsx)(w,{open:e,onOpenChange:t}):null}function w({open:e,onOpenChange:t}){let{t:n}=a(),r=p()?.id??null,i=h(e=>e.textSearchState),c=h(e=>e.setTextSearchState),[u,m]=(0,y.useState)(i.query),[v,C]=(0,y.useState)(i.caseSensitive),[w,k]=(0,y.useState)(i.wholeWord),[A,ce]=(0,y.useState)(i.regex),[j,le]=(0,y.useState)(i.include),[M,N]=(0,y.useState)(i.exclude),[P,F]=(0,y.useState)(null),[I,L]=(0,y.useState)(!1),[R,z]=(0,y.useState)(null),[B,V]=(0,y.useState)({}),[H,U]=(0,y.useState)(0),W=(0,y.useRef)(null),G=(0,y.useRef)(null),K=(0,y.useRef)(0);(0,y.useEffect)(()=>{c({query:u,caseSensitive:v,wholeWord:w,regex:A,include:j,exclude:M})},[u,v,w,A,j,M,c]);let q=(0,y.useCallback)(async()=>{if(!r)return;let e=u.trim();if(!e){F(null),z(null);return}let t=++K.current;L(!0),z(null);let n=await s.searchText({threadId:r,query:e,caseSensitive:v,wholeWord:w,regex:A,include:j.trim()||void 0,exclude:M.trim()||void 0});if(t===K.current){if(L(!1),n.isErr()){z(n.error.message),F(null),ae.warn(`text search failed`,{error:n.error.message});return}o(`text_search.matches`,n.value.totalMatches,{attributes:{truncated:String(n.value.truncated)}}),F(n.value),U(0)}},[r,u,v,w,A,j,M]);(0,y.useEffect)(()=>{if(!e)return;let t=setTimeout(q,oe);return()=>clearTimeout(t)},[e,q]);let J=(0,y.useMemo)(()=>{if(!P)return[];let e=[];return P.files.forEach((t,n)=>{let r=B[t.path]===!0;e.push({kind:`file`,fileIndex:n,path:t.path,matchCount:t.matches.length,collapsed:r}),r||t.matches.forEach((r,i)=>{e.push({kind:`match`,fileIndex:n,matchIndex:i,path:t.path,line:r.line,text:r.text,ranges:r.ranges})})}),e},[P,B]),Y=f({count:J.length,getScrollElement:()=>G.current,estimateSize:e=>J[e]?.kind===`file`?x:S,overscan:12});(0,y.useEffect)(()=>{J.length!==0&&Y.scrollToIndex(H,{align:`auto`})},[H,J.length,Y]);let X=P?.basePath,Z=(0,y.useCallback)(e=>{if(!X)return;let t=e.startsWith(`/`)?e:`${X}/${e}`;g.getState().openFile(t)},[X]),Q=(0,y.useCallback)(e=>{e.kind===`file`?V(t=>({...t,[e.path]:!t[e.path]})):Z(e.path)},[Z]),ue=(0,y.useCallback)(e=>{if(J.length!==0){if(e.key===`ArrowDown`)e.preventDefault(),U(e=>Math.min(e+1,J.length-1));else if(e.key===`ArrowUp`)e.preventDefault(),U(e=>Math.max(e-1,0));else if(e.key===`Enter`){e.preventDefault();let t=J[H];t&&Q(t)}}},[J,H,Q]),de=!!r,$=P?.totalMatches??0,fe=P?.files.length??0,pe=u.trim()?$>0?n(`textSearch.results`,`{{matches}} in {{files}} files`,{matches:$,files:fe}):I?``:n(`textSearch.noResults`,`No results`):``;return(0,b.jsx)(l,{open:e,onOpenChange:t,children:(0,b.jsxs)(ne,{children:[(0,b.jsx)(re,{}),(0,b.jsxs)(d,{"aria-describedby":void 0,className:`bg-card data-[state=closed]:animate-fade-out data-[state=open]:animate-fade-in fixed top-[15%] left-[50%] z-50 flex w-full max-w-2xl translate-x-[-50%] flex-col overflow-hidden rounded-lg border shadow-xl`,onOpenAutoFocus:e=>{e.preventDefault(),W.current?.focus(),W.current?.select()},children:[(0,b.jsx)(te,{className:`sr-only`,children:n(`textSearch.title`,`Search in files`)}),(0,b.jsxs)(`div`,{className:`flex flex-col gap-2 border-b p-2`,children:[(0,b.jsx)(ie,{query:u,onQueryChange:m,totalMatches:$,resultLabel:pe,loading:I,caseSensitive:v,onCaseSensitiveChange:C,wholeWord:w,onWholeWordChange:k,regex:A,onRegexChange:ce,onClose:()=>t(!1),onInputKeyDown:ue,inputRef:W,placeholder:n(`textSearch.placeholder`,`Search in files...`),testIdPrefix:`text-search`}),(0,b.jsxs)(`div`,{className:`flex gap-2`,children:[(0,b.jsx)(_,{value:j,onChange:e=>le(e.target.value),placeholder:n(`textSearch.include`,`files to include (e.g. *.ts, src/**)`),className:`h-7 text-xs`,"data-testid":`text-search-include`}),(0,b.jsx)(_,{value:M,onChange:e=>N(e.target.value),placeholder:n(`textSearch.exclude`,`files to exclude`),className:`h-7 text-xs`,"data-testid":`text-search-exclude`})]})]}),(0,b.jsxs)(`div`,{ref:G,className:`overflow-y-auto`,style:{maxHeight:se},"data-testid":`text-search-results`,children:[de?R?(0,b.jsx)(D,{text:R}):u.trim()?I&&J.length===0?(0,b.jsx)(O,{text:n(`textSearch.searching`,`Searching...`)}):J.length===0?(0,b.jsx)(D,{text:n(`textSearch.noResults`,`No results`)}):(0,b.jsx)(`div`,{style:{height:Y.getTotalSize(),width:`100%`,position:`relative`},children:Y.getVirtualItems().map(e=>{let t=J[e.index];if(!t)return null;let n=e.index===H;return(0,b.jsx)(`div`,{role:`option`,"aria-selected":n,"data-testid":t.kind===`file`?`text-search-file-${t.path}`:`text-search-match-${t.path}:${t.line}`,className:ee(`absolute left-0 top-0 flex w-full cursor-pointer items-center px-2`,n&&`bg-accent text-accent-foreground`),style:{height:e.size,transform:`translateY(${e.start}px)`},onMouseEnter:()=>U(e.index),onClick:()=>Q(t),children:t.kind===`file`?(0,b.jsx)(T,{path:t.path,matchCount:t.matchCount,collapsed:t.collapsed}):(0,b.jsx)(E,{line:t.line,text:t.text,ranges:t.ranges})},e.key)})}):(0,b.jsx)(D,{text:n(`textSearch.empty`,`Type to search`)}):(0,b.jsx)(D,{text:n(`textSearch.noThread`,`Open a thread to search its files`)}),P?.truncated&&(0,b.jsx)(`div`,{className:`text-muted-foreground border-t px-3 py-1.5 text-center text-xs`,children:n(`textSearch.truncated`,`Showing first {{count}} matches — refine your search`,{count:P.totalMatches})})]})]})]})})}function T({path:e,matchCount:r,collapsed:i}){let a=i?n:t,o=e.lastIndexOf(`/`),s=o===-1?e:e.slice(o+1),c=o===-1?``:e.slice(0,o);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{className:`icon-xs mr-1 shrink-0 opacity-60`}),(0,b.jsx)(m,{filePath:e,className:`icon-base mr-1.5 shrink-0`}),(0,b.jsx)(`span`,{className:`truncate text-xs font-medium`,children:s}),c&&(0,b.jsx)(`span`,{className:`text-muted-foreground ml-2 truncate text-xs`,children:c}),(0,b.jsx)(`span`,{className:`text-muted-foreground ml-auto pl-2 text-[10px] tabular-nums`,children:r})]})}function E({line:e,text:t,ranges:n}){return(0,b.jsxs)(`div`,{className:`flex w-full min-w-0 items-baseline gap-2 pl-6`,children:[(0,b.jsx)(`span`,{className:`text-muted-foreground w-10 shrink-0 text-right text-[10px] tabular-nums`,children:e}),(0,b.jsx)(u,{text:t,ranges:n,className:`truncate font-mono text-xs`})]})}function D({text:e}){return(0,b.jsx)(`div`,{className:`text-muted-foreground px-3 py-6 text-center text-sm`,children:e})}function O({text:e}){return(0,b.jsx)(v,{fill:!1,layout:`inline`,size:`compact`,className:`px-3 py-6`,testId:`text-search-loading`,label:e})}export{C as TextSearchDialog};
|
package/packages/client/dist/assets/{ThreadPowerline-DVWTyxRC.js → ThreadPowerline-JsNrt5F9.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{Kn as t,hn as n,pn as r,zr as i}from"./icons-sqwAEN28.js";import{o as a}from"./markdown-DBtwZWLP.js";import{t as o}from"./useTranslation-DAPPK3Hy.js";import{G as s,K as c,W as l,dt as u,lt as d,q as f,st as p}from"./index-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{Kn as t,hn as n,pn as r,zr as i}from"./icons-sqwAEN28.js";import{o as a}from"./markdown-DBtwZWLP.js";import{t as o}from"./useTranslation-DAPPK3Hy.js";import{G as s,K as c,W as l,dt as u,lt as d,q as f,st as p}from"./index-CAhq2HfW.js";import{Fn as m,In as h,Ln as g,Nn as _,Ur as v,hn as y}from"./items-CQJpN5w7.js";var b=e(i(),1),x=e(a(),1);function S(){let[e,t]=b.useState(`arrow`);return b.useEffect(()=>{let e=getComputedStyle(document.documentElement).getPropertyValue(`--powerline-variant`).trim();t(e===`chips`?`chips`:e===`plain`?`plain`:`arrow`)},[]),e}var C={sm:{arrow:6,height:`h-[15px]`,padding:`px-1.5 py-0`,text:`text-[10px] leading-[15px]`,icon:p[`2xs`]},md:{arrow:10,height:`min-h-6`,padding:`px-2 py-0.5`,text:`text-[11px] leading-4`,icon:p.xs}};function w(e){return`drop-shadow(1px 0 0 ${g(e,.35)})`}function T(e){navigator.clipboard.writeText(e),v.success(`Copied to clipboard`)}function E({Icon:e,copyable:n,className:r}){return n?(0,x.jsxs)(x.Fragment,{children:[e&&(0,x.jsx)(e,{className:d(r,`shrink-0 group-hover/seg:hidden`),"aria-hidden":`true`}),(0,x.jsx)(t,{className:d(r,`hidden shrink-0 group-hover/seg:block`,!e&&`block`),"aria-hidden":`true`})]}):e?(0,x.jsx)(e,{className:d(r,`shrink-0`),"aria-hidden":`true`}):null}function D(e){return e?{role:`button`,tabIndex:0,onClick:t=>{t.preventDefault(),t.stopPropagation(),T(e)},onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),t.stopPropagation(),T(e))}}:{}}function O({segments:e,size:t=`md`,variant:n,className:r,query:i,...a}){let o=S(),u=n??o;if(e.length===0)return null;let p=C[t],m=e=>i?.trim()?(0,x.jsx)(_,{text:e,query:i}):e,g=e=>(0,x.jsx)(`span`,{className:d(p.text,`truncate font-medium whitespace-nowrap`,e.emphasis&&`font-bold`),children:m(e.label)});return(0,x.jsx)(c,{delayDuration:300,children:(0,x.jsx)(`div`,{className:d(`inline-flex items-center min-w-0`,u===`chips`&&`gap-1`,u===`plain`&&`gap-1`,r),"data-testid":a[`data-testid`],children:e.map((t,n)=>{let r=n===0,i=n===e.length-1,a=t.textColor||h(t.color),o=t.icon,c=!!t.copyValue,m=D(t.copyValue);return u===`plain`?(0,x.jsxs)(b.Fragment,{children:[(0,x.jsxs)(l,{children:[(0,x.jsx)(f,{asChild:!0,children:(0,x.jsxs)(`div`,{className:d(`group/seg inline-flex items-center gap-1 min-w-0 text-muted-foreground`,c&&`cursor-pointer hover:text-foreground`),"data-testid":`powerline-segment-${t.key}`,...m,children:[(0,x.jsx)(E,{Icon:o,copyable:c,className:p.icon}),g(t)]})}),(0,x.jsx)(s,{children:t.tooltip||t.label})]}),!i&&(0,x.jsx)(`span`,{"aria-hidden":`true`,className:d(p.text,`text-muted-foreground/50 select-none`),children:`/`})]},t.key):u===`chips`?(0,x.jsxs)(l,{children:[(0,x.jsx)(f,{asChild:!0,children:(0,x.jsxs)(`div`,{className:d(`group/seg inline-flex items-center gap-0.5 min-w-0 rounded-full`,p.height,p.padding,c&&`cursor-pointer`),style:{backgroundColor:t.color,color:a},"data-testid":`powerline-segment-${t.key}`,...m,children:[(0,x.jsx)(E,{Icon:o,copyable:c,className:p.icon}),g(t)]})}),(0,x.jsx)(s,{children:t.tooltip||t.label})]},t.key):(0,x.jsxs)(l,{children:[(0,x.jsx)(f,{asChild:!0,children:(0,x.jsx)(`div`,{className:d(`group/seg relative inline-flex min-w-0 shrink`,c&&`cursor-pointer`),style:{zIndex:e.length-n,marginLeft:r?void 0:`-${p.arrow}px`,filter:i?void 0:w(t.color)},"data-testid":`powerline-segment-${t.key}`,...m,children:(0,x.jsxs)(`div`,{className:d(`inline-flex items-center gap-0.5 min-w-0 w-full`,p.height,p.padding,r&&`rounded-l-sm`),style:{backgroundColor:t.color,color:a,paddingRight:`calc(${p.arrow}px + 0.25rem)`,paddingLeft:r?void 0:`calc(${p.arrow}px + 0.375rem)`,clipPath:`polygon(0 0, calc(100% - ${p.arrow}px) 0, 100% 50%, calc(100% - ${p.arrow}px) 100%, 0 100%)`},children:[(0,x.jsx)(E,{Icon:o,copyable:c,className:p.icon}),g(t)]})})}),(0,x.jsx)(s,{children:t.tooltip||t.label})]},t.key)})})})}function k({thread:e,projectName:t,projectColor:i,projectTooltip:a,gitStatus:s,diffStatsSize:c=`xs`,variant:l,copyable:f=!1,className:p,onDiffStatsClick:h,..._}){let{t:v}=o(),S=e.mode===`worktree`,C=u(e),w=S&&e.baseBranch?e.baseBranch:C||e.baseBranch,T=S?C??``:``,E=e.worktreePath??``,D=E?E.split(`/`).filter(Boolean).pop()||E:``,k=i||(t?m(t):`#52525b`),A=g(k,.1),j=g(k,.2),M=g(k,.3),N=!S||w!==T,P=(0,b.useMemo)(()=>{let e=[];if(t&&e.push({key:`project`,icon:n,label:t,color:A,tooltip:a||t,copyValue:f?a||t:void 0}),w&&N){let n=v(S?`powerline.tooltipBaseBranch`:`powerline.tooltipLocalBranch`,{branch:w});e.push({key:`branch`,icon:r,label:w,color:t?j:A,tooltip:n,copyValue:f?w:void 0})}if(S&&T){let r=D?v(`powerline.tooltipWorktreeWithPath`,{branch:T,path:D}):v(`powerline.tooltipWorktree`,{branch:T});e.push({key:`worktree-branch`,icon:n,label:T,color:t?M:j,tooltip:r,copyValue:f?E||T:void 0})}return e},[t,A,a,w,j,S,N,T,M,E,D,f,v]),F=s&&s.state!==`clean`&&(s.linesAdded>0||s.linesDeleted>0||s.dirtyFileCount>0);return P.length===0&&!F?null:(0,x.jsxs)(`div`,{className:d(`flex min-w-0 items-center gap-1.5`,p),children:[P.length>0&&(0,x.jsx)(O,{segments:P,size:`sm`,variant:l,className:`min-w-0 shrink`,"data-testid":_[`data-testid`]}),F&&(h?(0,x.jsx)(`button`,{type:`button`,onClick:h,className:`focus-visible:ring-ring shrink-0 rounded-lg transition-opacity hover:opacity-80 focus-visible:ring-2 focus-visible:outline-none`,"aria-label":v(`review.title`),"data-testid":`prompt-powerline-diffstats`,children:(0,x.jsx)(y,{linesAdded:s.linesAdded,linesDeleted:s.linesDeleted,dirtyFileCount:s.dirtyFileCount,size:c})}):(0,x.jsx)(y,{linesAdded:s.linesAdded,linesDeleted:s.linesDeleted,dirtyFileCount:s.dirtyFileCount,size:c}))]})}export{k as t};
|
package/packages/client/dist/assets/{ThreadStatusPin-CsUuwM1e.js → ThreadStatusPin-R_yWmCoT.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{Lr as t,nt as n,rt as r,zr as i}from"./icons-sqwAEN28.js";import{o as a}from"./markdown-DBtwZWLP.js";import{t as o}from"./useTranslation-DAPPK3Hy.js";import{G as s,W as c,lt as l,q as u}from"./index-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{Lr as t,nt as n,rt as r,zr as i}from"./icons-sqwAEN28.js";import{o as a}from"./markdown-DBtwZWLP.js";import{t as o}from"./useTranslation-DAPPK3Hy.js";import{G as s,W as c,lt as l,q as u}from"./index-CAhq2HfW.js";import{Bt as d,Vt as f,Xt as p,Zt as m,j as h,nn as g}from"./items-CQJpN5w7.js";import{n as _}from"./job-store-CMznU474.js";import{t as v}from"./watcher-store-Dzhw8Q9b.js";var y=e(i(),1),b=[`pending`];function x(e){let t=typeof e==`number`?e:new Date(e).getTime();return Number.isFinite(t)?new Date(t).toLocaleString([],{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`}):``}function S(e,t){let n=e-t;if(n<=0)return`due`;let r=Math.round(n/1e3),i=Math.floor(r/60),a=r%60;return i>0?`in ${i}m ${a}s`:`in ${a}s`}function C(e,t){let n=[];for(let r of Object.values(e))r.threadId===t&&b.includes(r.status)&&n.push(r);return n}function w(e,t){let n=[];for(let r of Object.values(e))r.threadId===t&&r.status===`running`&&n.push(r);return n}var T=e(a(),1);function E({threadId:e}){let n=v(p(t=>C(t.watchersById,e))),r=_(p(t=>w(t.jobsById,e))),[i,a]=(0,y.useState)(()=>Date.now()),o=n.length>0||r.length>0,d=n.length>0;(0,y.useEffect)(()=>{if(!d)return;let e=setInterval(()=>a(Date.now()),1e3);return()=>clearInterval(e)},[d]);let f=(0,y.useMemo)(()=>{if(!o)return``;let e=[];if(r.length>0&&e.push(`${r.length} background job${r.length===1?``:`s`} running`),n.length>0){let t=[...n].sort((e,t)=>e.nextWakeAt-t.nextWakeAt)[0],r=n.length===1?`watcher`:`watchers`;e.push(`${n.length} ${r} · next wake ${S(t.nextWakeAt,i)}`)}return e.join(` · `)},[n,r,o,i]);return o?(0,T.jsxs)(c,{children:[(0,T.jsx)(u,{asChild:!0,children:(0,T.jsx)(`span`,{className:`flex shrink-0 items-center`,"data-testid":`thread-watcher-indicator-${e}`,children:(0,T.jsx)(t,{className:l(`icon-sm`,`text-amber-500`)})})}),(0,T.jsx)(s,{side:`top`,className:`text-xs`,children:f})]}):null}var D={thread:`group-hover/thread:hidden`,card:`group-hover/card:hidden`,row:`group-hover/row:hidden`},O={thread:`group-hover/thread:flex`,card:`group-hover/card:flex`,row:`group-hover/row:flex`};function k({thread:e,onPin:t,hoverGroup:i,showStatusTooltip:a=!1,className:p}){let{t:_}=o(),v=h(e=>e.status),y=m(e.status,v),b=g[y]??g.pending,x=b.icon,S=y===`running`||y===`setting_up`,C=!!t,w=C&&e.pinned&&!S,k=C?D[i]:``,A=O[i],j=f(t=>d(t.readAt,e.id,e.completedAt))&&!S&&!w,M=a?(0,T.jsxs)(c,{children:[(0,T.jsx)(u,{asChild:!0,children:(0,T.jsx)(x,{className:l(`icon-sm`,b.className)})}),(0,T.jsx)(s,{side:`top`,className:`text-xs`,children:y===`runner_offline`?_(`thread.status.runnerOffline`,{defaultValue:`Runner offline`}):_(`thread.status.${y}`)})]}):(0,T.jsx)(x,{className:l(`icon-sm`,b.className)});return(0,T.jsxs)(`span`,{className:`inline-flex shrink-0 items-center gap-1`,children:[(0,T.jsxs)(`span`,{className:l(`relative size-3.5 shrink-0`,p),children:[w?(0,T.jsx)(`span`,{className:l(`absolute inset-0 flex items-center justify-center text-muted-foreground`,k),children:(0,T.jsx)(n,{className:`icon-sm`})}):j?(0,T.jsx)(`span`,{className:l(`absolute inset-0 flex items-center justify-center`,k),"data-testid":`thread-unread-dot-${e.id}`,children:(0,T.jsx)(`span`,{className:`block size-2 rounded-full bg-blue-500`})}):(0,T.jsx)(`span`,{className:l(`absolute inset-0 flex items-center justify-center`,k),children:M}),C&&(0,T.jsx)(`span`,{className:l(`absolute inset-0 hidden cursor-pointer items-center justify-center text-muted-foreground hover:text-foreground`,A),onClick:n=>{n.stopPropagation(),t(!e.pinned)},"data-testid":`thread-pin-toggle-${e.id}`,children:e.pinned?(0,T.jsx)(r,{className:`icon-sm`}):(0,T.jsx)(n,{className:`icon-sm`})})]}),(0,T.jsx)(E,{threadId:e.id})]})}export{S as i,b as n,x as r,k as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{At as t,Bt as n,Ln as r,Lt as i,M as a,Nn as o,Q as s,a as c,ar as l,et as u,i as d,ir as f,lr as p,yr as m,zr as h}from"./icons-sqwAEN28.js";import{o as g}from"./markdown-DBtwZWLP.js";import{c as _,l as v,u as y}from"./use-image-lightbox-Bu7huixI.js";import{t as b}from"./useTranslation-DAPPK3Hy.js";import{G as x,K as S,P as C,W as w,f as T,lt as E,q as D,u as ee}from"./index-CmX0PQ41.js";import{t as te}from"./button-DqIT3IPY.js";import{Dr as O,Lt as k,Ur as A,in as j,wt as M,xt as N,yr as P}from"./items-z89mbR0g.js";import{a as F,i as I,r as L}from"./GitProgressModal-2BUdcYw_.js";import{t as R}from"./loading-state-CuNSmah_.js";import{t as z}from"./use-active-thread-id-BBsLXIrt.js";import{t as B}from"./app-store-DjqdXPml.js";import{r as V}from"./use-thread-creation-d4X0pWGi.js";import{a as H,i as U,n as W,r as G,t as K}from"./use-thread-search-BGPGuqA-.js";import{t as ne}from"./use-minute-tick-C-e4HaZD.js";import{n as q}from"./pipeline-store-DwtuAtoc.js";var J=e(h(),1),Y=e(g(),1),X={reviewer:r,corrector:c,fixer:a},Z={reviewer:`Reviewing`,corrector:`Fixing`,fixer:`Pre-commit fixing`};function re({threadId:e}){let t=q(t=>t.activeRuns[e]);if(!t)return null;let n=t.status===`completed`||t.status===`skipped`,a=t.status===`failed`,o=!n&&!a,s=X[t.currentStage]??r,c=Z[t.currentStage]??t.currentStage;return(0,Y.jsxs)(`div`,{className:E(`flex items-center gap-2 border-b px-3 py-1.5 text-xs`,n&&`border-status-success/20 bg-status-success/5 text-status-success`,a&&`border-status-error/20 bg-status-error/5 text-status-error`,o&&`border-status-info/20 bg-status-info/5 text-status-info`),"data-testid":`pipeline-progress-banner`,children:[n?(0,Y.jsx)(p,{className:`icon-sm`}):a?(0,Y.jsx)(l,{className:`icon-sm`}):(0,Y.jsx)(i,{className:`icon-sm animate-spin`}),(0,Y.jsx)(`span`,{className:`font-medium`,children:`Pipeline`}),o&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:`·`}),(0,Y.jsx)(s,{className:`icon-xs`}),(0,Y.jsx)(`span`,{children:c})]}),t.iteration>0&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:`·`}),(0,Y.jsxs)(`span`,{className:`text-muted-foreground`,children:[`Iteration `,t.iteration,`/`,t.maxIterations??10]})]}),n&&(0,Y.jsx)(`span`,{children:`All checks passed`}),a&&(0,Y.jsx)(`span`,{children:t.hookError||`Max iterations reached`})]})}function ie(e){return new Date(e).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})}function ae(e){let t=new Date(e),n=new Date().getTime()-t.getTime(),r=Math.floor(n/1e3),i=Math.floor(r/60),a=Math.floor(i/60),o=Math.floor(a/24);return r<60?`just now`:i<60?`${i}m ago`:a<24?`${a}h ago`:o<7?`${o}d ago`:ie(e)}function oe(e){let t=new Date(e),n=new Date;return t.getDate()===n.getDate()&&t.getMonth()===n.getMonth()&&t.getFullYear()===n.getFullYear()?``:t.toLocaleDateString([],{month:`short`,day:`numeric`})}function se(e,t){return e.length<=t?e:e.slice(0,t).trimEnd()+`…`}function Q(e){try{return typeof e==`string`?JSON.parse(e):e}catch{return null}}function ce(e,t){if(e===`AskUserQuestion`){let e=t.questions;return!Array.isArray(e)||e.length===0?null:e[0].question??`Question`}return e===`ExitPlanMode`?`Plan ready for review`:null}var $={TodoWrite:`todo`,AskUserQuestion:`question`,ExitPlanMode:`plan`};function le({messages:e,activeMessageId:t,threadStatus:n,onScrollToMessage:r,messagesScrollRef:i}){let a=(0,J.useRef)(null),o=(0,J.useRef)(!1);(0,J.useEffect)(()=>{let e=a.current,t=i?.current;if(!e||!t)return;let n=0,r=(e,t)=>{let n=e.scrollHeight-e.clientHeight,r=t.scrollHeight-t.clientHeight;n<=0||r<=0||(t.scrollTop=e.scrollTop/n*r)},s=()=>{o.current||(o.current=!0,n&&cancelAnimationFrame(n),n=requestAnimationFrame(()=>{r(e,t),n=requestAnimationFrame(()=>{o.current=!1})}))},c=()=>{o.current||(o.current=!0,n&&cancelAnimationFrame(n),n=requestAnimationFrame(()=>{r(t,e),n=requestAnimationFrame(()=>{o.current=!1})}))};return e.addEventListener(`scroll`,s,{passive:!0}),t.addEventListener(`scroll`,c,{passive:!0}),()=>{e.removeEventListener(`scroll`,s),t.removeEventListener(`scroll`,c),n&&cancelAnimationFrame(n)}},[i]);let s=(0,J.useMemo)(()=>{let t=0,r=[],i=[];for(let t of e)if(t.role===`assistant`&&t.toolCalls){for(let e of t.toolCalls)if(e.name===`TodoWrite`){let n=Q(e.input);if(n){let r=n.todos;Array.isArray(r)&&r.length>0&&i.push({todos:r,toolCallId:e.id,timestamp:t.timestamp})}}}let a=i.length>0?i[i.length-1]:null,o=new Map,s=new Map;for(let e=0;e<i.length;e++){let t=i[e];for(let n of t.todos){let r=n.content||n.activeForm||``;o.has(r)||o.set(r,{timestamp:t.timestamp,toolCallId:t.toolCallId,snapshotIdx:e}),s.set(r,{status:n.status,activeForm:n.activeForm,content:n.content})}}let c=new Map;if(a)for(let e of a.todos){let t=e.content||e.activeForm||``,n=o.get(t);if(!n)continue;let r=n.snapshotIdx;c.has(r)||c.set(r,[]),c.get(r).push(t)}if(e.length>0){let n=e[0];r.push({id:`timeline-start`,content:`Start`,timestamp:n.timestamp,index:t++,type:`start`})}let l=0,u=a?a.todos.length:0,d=0;for(let a of e)if(a.role===`user`&&a.content?.trim()&&r.push({id:a.id,content:a.content,timestamp:a.timestamp,index:t++,type:`prompt`}),a.role===`assistant`&&a.toolCalls)for(let e of a.toolCalls){if(e.name===`TodoWrite`){for(;l<i.length&&i[l].toolCallId===e.id;)break;let a=i.findIndex(t=>t.toolCallId===e.id);if(a<0)continue;for(let i=l;i<=a;i++){let a=c.get(i);if(a)for(let i of a){let a=s.get(i),c=o.get(i);if(!a||!c)continue;let l=n===`completed`||n===`failed`||n===`stopped`,f=a.status===`in_progress`&&!l,p=a.status===`completed`||a.status===`in_progress`&&l,m=`${d+1}/${u}`,h=f&&a.activeForm?a.activeForm:a.content||a.activeForm||`Task ${d+1}`;r.push({id:`todo-${e.id}-${d}`,content:`${m} · ${h}`,timestamp:c.timestamp,index:t++,type:`todo`,toolCallId:c.toolCallId,completed:p,inProgress:f}),d++}}l=a+1;continue}let f=$[e.name];if(!f)continue;let p=Q(e.input);if(!p)continue;let m=ce(e.name,p);m&&r.push({id:`tc-${e.id}`,content:m,timestamp:a.timestamp,index:t++,type:f,toolCallId:e.id})}let f=n===`completed`||n===`failed`||n===`stopped`;if(e.length>0&&f){let i=e[e.length-1],a=n===`completed`?`Completed`:n===`failed`?`Failed`:`Stopped`;r.push({id:`timeline-end`,content:a,timestamp:i.timestamp,index:t++,type:`end`})}return r},[e,n]);if(s.length===0)return null;let c=[];for(let e of s){let t=oe(e.timestamp),n=c[c.length-1];n&&n.date===t?n.milestones.push(e):c.push({date:t,milestones:[e]})}return(0,Y.jsx)(S,{delayDuration:200,children:(0,Y.jsx)(`div`,{ref:a,className:`thread-timeline no-scrollbar flex h-full w-[200px] shrink-0 flex-col overflow-y-auto`,children:(0,Y.jsx)(`div`,{className:`flex-1 px-3 py-3`,children:c.map((e,n)=>(0,Y.jsxs)(`div`,{children:[e.date&&(0,Y.jsx)(`div`,{className:`text-muted-foreground/60 mt-1 mb-2 text-[10px] font-medium tracking-wider uppercase`,children:e.date}),e.milestones.map((i,a)=>(0,Y.jsx)(fe,{milestone:i,isLast:n===c.length-1&&a===e.milestones.length-1,isActive:i.type===`prompt`&&i.id===t,onScrollTo:r},i.id))]},e.date))})})})}var ue={prompt:null,todo:n,question:t,plan:o,start:u,end:p},de={prompt:{icon:``,text:``},todo:{icon:`text-muted-foreground`,text:`text-muted-foreground`},question:{icon:`text-muted-foreground`,text:`text-muted-foreground`},plan:{icon:`text-muted-foreground`,text:`text-muted-foreground`},start:{icon:`text-muted-foreground`,text:`text-muted-foreground`},end:{icon:`text-muted-foreground`,text:`text-muted-foreground`}};function fe({milestone:e,isLast:t,isActive:n,onScrollTo:r}){let a=ue[e.type],o=de[e.type];return(0,Y.jsxs)(`div`,{className:`group/milestone flex gap-2`,children:[(0,Y.jsxs)(`div`,{className:`flex w-4 shrink-0 flex-col items-center`,children:[e.inProgress?(0,Y.jsx)(i,{className:`icon-sm mt-0.5 shrink-0 animate-spin text-blue-400`}):a?(0,Y.jsx)(a,{className:E(`icon-sm shrink-0 mt-0.5`,o.icon)}):(0,Y.jsx)(`div`,{className:E(`w-2.5 h-2.5 rounded-full border shrink-0 mt-0.5 transition-colors`,n?`border-primary bg-primary`:`border-primary bg-transparent`)}),!t&&(0,Y.jsx)(`div`,{className:`bg-border min-h-[16px] w-px flex-1`})]}),(0,Y.jsxs)(w,{children:[(0,Y.jsx)(D,{asChild:!0,children:(0,Y.jsx)(`button`,{onClick:()=>{e.type===`prompt`?r?.(e.id):r?.(e.id,e.toolCallId)},className:E(`flex-1 text-left pb-4 min-w-0 group/btn cursor-pointer`,`hover:opacity-100 transition-opacity`),children:(0,Y.jsx)(`div`,{className:E(`text-[11px] leading-snug line-clamp-2 transition-colors`,e.inProgress?`text-blue-400 font-medium`:e.type===`prompt`?n?`text-foreground font-medium`:`text-muted-foreground group-hover/btn:text-foreground`:o.text,e.completed&&`line-through opacity-60`),children:se(e.content,80)})})}),(0,Y.jsx)(x,{side:`left`,align:`start`,className:`max-w-[300px] p-3`,children:(0,Y.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Y.jsx)(`div`,{className:`text-muted-foreground font-mono text-[10px]`,children:ae(e.timestamp)}),(0,Y.jsx)(j,{className:`max-h-[200px]`,children:(0,Y.jsx)(`pre`,{className:`font-mono text-xs leading-relaxed wrap-break-word whitespace-pre-wrap`,children:e.content.trim()})})]})})]})]})}function pe({activeThread:e}){let t=M(),n=P(e=>e.timelineVisible),r=(0,J.useRef)(null),[i,a]=(0,J.useState)(null),{searchOpen:o,setSearchOpen:s,handleSearchNavigate:c,handleSearchClose:l}=K(r,e.id),u=P(e=>e.pendingThreadSearch);return(0,J.useEffect)(()=>{u&&u.threadId===e.id&&s(!0)},[u,e.id,s]),(0,J.useEffect)(()=>{if(!e.id)return;let t=e=>{if(!e.ctrlKey||e.shiftKey||e.metaKey||e.altKey||e.key!==`f`&&e.key!==`F`)return;let t=e.target;if(t&&t.closest(`.xterm`))return;e.preventDefault(),e.stopPropagation(),s(!0);let n=document.querySelector(`[data-testid="thread-search-input"]`);n&&requestAnimationFrame(()=>n.focus())};return window.addEventListener(`keydown`,t,!0),()=>window.removeEventListener(`keydown`,t,!0)},[e.id,s]),(0,Y.jsxs)(`div`,{className:`relative flex h-full min-w-0 flex-1 flex-col`,children:[e.id&&(0,Y.jsx)(re,{threadId:e.id}),(0,Y.jsxs)(`div`,{className:`thread-container flex min-h-0 flex-1`,children:[(0,Y.jsx)(G,{streamRef:r,enablePagination:!0,onVisibleMessageChange:a,searchBar:(0,Y.jsx)(W,{threadId:e.id,open:o,onClose:l,onNavigateToMessage:c})}),n&&t&&t.length>0&&(0,Y.jsx)(le,{messages:t,activeMessageId:i??e.lastUserMessage?.id??t.filter(e=>e.role===`user`&&e.content?.trim()).at(-1)?.id,threadStatus:e.status,messagesScrollRef:{current:r.current?.scrollViewport??null},onScrollToMessage:(e,t)=>{let n=t||e,i=t?`[data-tool-call-id="${t}"]`:`[data-user-msg="${e}"]`,a=(r.current?.scrollViewport)?.querySelector(i);a?a.scrollIntoView({behavior:`smooth`,block:`center`}):(r.current?.expandToItem(n),requestAnimationFrame(()=>{let e=r.current?.scrollViewport?.querySelector(i);e&&e.scrollIntoView({behavior:`smooth`,block:`center`})}))}})]})]})}function me({activeThread:e}){let{t}=b(),n=M(),[r,i]=(0,J.useState)(!1),a=O(t=>{if(e.projectId)return t.projects.find(t=>t.id===e.projectId)?.path}),o=(()=>{let e=n?.find(e=>e.role===`user`);if(e?.images)try{let t=typeof e.images==`string`?JSON.parse(e.images):e.images;return t?.length?t:void 0}catch{return}})();return(0,Y.jsx)(`div`,{className:`flex h-full min-w-0 flex-1 flex-col`,children:(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-4`,children:(0,Y.jsxs)(`div`,{className:`w-full max-w-3xl`,children:[(0,Y.jsx)(V,{onSubmit:(0,J.useCallback)(async(n,r,a)=>{i(!0),k.getState().appendOptimisticMessage(e.id,n,a,r.model,r.mode,r.fileReferences,r.effort);let{allowedTools:o,disallowedTools:s}=ee(T.getState().toolPermissions),c=await C.sendMessage(e.id,n,{provider:r.provider||void 0,model:r.model||void 0,permissionMode:r.mode||void 0,effort:r.effort||void 0,allowedTools:o,disallowedTools:s,fileReferences:r.fileReferences,symbolReferences:r.symbolReferences,baseBranch:r.baseBranch},a);if(c.isErr()){let e=c.error;A.error(e.type===`INTERNAL`?t(`thread.sendFailed`):t(`thread.sendFailedGeneric`,{error:e.message}))}else c.value.handledLocally===`shell_escape`&&k.getState().rollbackOptimisticMessage(e.id);i(!1)},[e.id,t]),loading:r,isNewThread:!0,projectId:e.projectId,initialPrompt:e.initialPrompt,initialImages:o}),(0,Y.jsx)(H,{projectPath:a,projectId:e.projectId,provider:e.provider})]})})})}function he({steps:e}){let t=_(),n=I(e,!0),r=F(e,n),a=(0,J.useMemo)(()=>{let t=e.find(e=>e.status===`running`);if(t)return t;let n=e.filter(e=>e.status===`completed`||e.status===`failed`);return n.length>0?n[n.length-1]:e[0]??null},[e]),o=e.filter(e=>e.status===`completed`).length;if(!a)return(0,Y.jsx)(R,{testId:`worktree-setup-progress`,label:`Preparing…`});let s=n(a.id);return(0,Y.jsxs)(`div`,{className:`flex w-full max-w-md flex-col items-center justify-center gap-6`,"data-testid":`worktree-setup-progress`,children:[(0,Y.jsx)(`div`,{className:`flex min-h-[100px] w-full items-center justify-center`,children:(0,Y.jsx)(y,{mode:`wait`,children:(0,Y.jsxs)(v.div,{initial:t?!1:{opacity:0,y:12,scale:.95},animate:{opacity:1,y:0,scale:1},exit:t?void 0:{opacity:0,y:-16},transition:{duration:.3,ease:`easeOut`},className:`flex flex-col items-center gap-3`,"data-testid":`worktree-setup-step-${a.id}`,children:[(0,Y.jsxs)(`div`,{className:`shrink-0`,children:[a.status===`running`&&(0,Y.jsx)(i,{className:`text-primary size-8 animate-spin`}),a.status===`completed`&&(0,Y.jsx)(m,{className:`size-8 text-emerald-500`}),a.status===`failed`&&(0,Y.jsx)(d,{className:`text-destructive size-8`}),a.status===`pending`&&(0,Y.jsx)(f,{className:`text-muted-foreground/40 size-8`})]}),(0,Y.jsx)(`span`,{className:E(`text-center text-lg font-medium`,a.status===`completed`&&`text-emerald-500`,a.status===`running`&&`text-foreground`,a.status===`failed`&&`text-destructive`,a.status===`pending`&&`text-muted-foreground/60`),children:a.label}),s!=null&&a.status!==`pending`&&(0,Y.jsx)(`span`,{className:`text-muted-foreground/50 text-sm tabular-nums`,children:L(s)}),a.error&&(0,Y.jsx)(`pre`,{className:`bg-destructive/5 text-destructive/80 mt-1 max-h-40 max-w-full overflow-auto rounded-md p-3 font-mono text-xs wrap-break-word whitespace-pre-wrap`,children:a.error})]},a.id+`-`+a.status)})}),e.length>1&&(0,Y.jsx)(`div`,{className:`flex items-center gap-2`,"data-testid":`worktree-setup-dots`,children:e.map(e=>(0,Y.jsx)(`div`,{className:E(`size-2 rounded-full transition-colors duration-300`,e.status===`completed`&&`bg-emerald-500`,e.status===`running`&&`bg-primary`,e.status===`failed`&&`bg-destructive`,e.status===`pending`&&`bg-muted-foreground/20`)},e.id))}),e.length>0&&(0,Y.jsx)(`span`,{className:`text-muted-foreground/40 text-xs tabular-nums`,children:o===e.length&&e.length>0?`Completed in ${L(r)}`:L(r)})]})}function ge(){let{t:e}=b();ne();let t=N(),n=z(),r=!!n&&!!t&&t.id!==n,i=O(e=>e.selectedProjectId),a=P(e=>e.newThreadProjectId),o=P(e=>e.newThreadIsScratch),c=O(e=>e.projects.length>0),l=B(e=>e.setAddProjectOpen);if(o&&!n||a&&!n)return(0,Y.jsx)(`div`,{className:`flex h-full min-w-0 flex-1 flex-col`,children:(0,Y.jsx)(U,{})});if(!n)return i&&c?(0,Y.jsx)(`div`,{className:`flex h-full min-w-0 flex-1 flex-col`,children:(0,Y.jsx)(U,{})}):(0,Y.jsx)(`div`,{className:`flex h-full min-w-0 flex-1 flex-col`,children:(0,Y.jsx)(`div`,{className:`text-muted-foreground flex flex-1 items-center justify-center px-6`,children:(0,Y.jsxs)(`div`,{className:`max-w-3xl text-center`,children:[(0,Y.jsx)(`p`,{className:`mb-4 text-4xl`,children:c?`🚀`:`📁`}),(0,Y.jsx)(`p`,{className:`text-foreground mb-1 text-2xl font-semibold`,children:e(c?`thread.selectOrCreate`:`thread.addProjectFirst`)}),(0,Y.jsx)(`p`,{className:`text-sm`,children:e(c?`thread.threadsRunParallel`:`thread.addProjectDescription`)}),(0,Y.jsxs)(te,{variant:`outline`,size:`sm`,onClick:()=>l(!0),className:`mt-6`,"data-testid":`thread-empty-add-project`,children:[(0,Y.jsx)(s,{className:`icon-sm`}),e(`sidebar.addProject`)]})]})})});if(!t)return(0,Y.jsx)(`div`,{className:`flex h-full min-w-0 flex-1 flex-col`,children:(0,Y.jsx)(R,{testId:`thread-loading-placeholder`,label:e(`common.preparing`,`Preparing…`)})});let u=t.status===`setting_up`?(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-4`,children:(0,Y.jsx)(he,{steps:t.setupProgress??[]})}):t.status===`idle`&&(t.queuedCount??0)===0?(0,Y.jsx)(me,{activeThread:t}):(0,Y.jsx)(pe,{activeThread:t});return r?(0,Y.jsxs)(`div`,{className:`relative flex h-full min-w-0 flex-1 flex-col`,"data-testid":`thread-switching`,children:[u,(0,Y.jsx)(`div`,{className:`bg-background/40 pointer-events-none absolute inset-0 z-10 flex items-start justify-center pt-16`,"aria-hidden":!0,children:(0,Y.jsx)(R,{fill:!1,testId:`thread-switching-spinner`})})]}):(0,Y.jsx)(`div`,{className:E(`flex h-full min-w-0 flex-1 flex-col`),children:u})}export{ge as ThreadView};
|
|
1
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{At as t,Bt as n,Ln as r,Lt as i,M as a,Nn as o,Q as s,a as c,ar as l,et as u,i as d,ir as f,lr as p,yr as m,zr as h}from"./icons-sqwAEN28.js";import{o as g}from"./markdown-DBtwZWLP.js";import{c as _,l as v,u as y}from"./use-image-lightbox-9mwEVC_V.js";import{t as b}from"./useTranslation-DAPPK3Hy.js";import{G as x,K as S,P as C,W as w,f as T,lt as E,q as D,u as ee}from"./index-CAhq2HfW.js";import{t as te}from"./button-QOkjXCsI.js";import{Dr as O,Lt as k,Ur as A,in as j,wt as M,xt as N,yr as P}from"./items-CQJpN5w7.js";import{a as F,i as I,r as L}from"./GitProgressModal-DZRRb0Wv.js";import{t as R}from"./loading-state-CiP7DrB8.js";import{t as z}from"./use-active-thread-id-CegcpJuJ.js";import{t as B}from"./app-store-zHVd_RAl.js";import{r as V}from"./use-thread-creation-DOTmwLZD.js";import{a as H,i as U,n as W,r as G,t as K}from"./use-thread-search-BndwYsGw.js";import{t as ne}from"./use-minute-tick-C-e4HaZD.js";import{n as q}from"./pipeline-store-DwtuAtoc.js";var J=e(h(),1),Y=e(g(),1),X={reviewer:r,corrector:c,fixer:a},Z={reviewer:`Reviewing`,corrector:`Fixing`,fixer:`Pre-commit fixing`};function re({threadId:e}){let t=q(t=>t.activeRuns[e]);if(!t)return null;let n=t.status===`completed`||t.status===`skipped`,a=t.status===`failed`,o=!n&&!a,s=X[t.currentStage]??r,c=Z[t.currentStage]??t.currentStage;return(0,Y.jsxs)(`div`,{className:E(`flex items-center gap-2 border-b px-3 py-1.5 text-xs`,n&&`border-status-success/20 bg-status-success/5 text-status-success`,a&&`border-status-error/20 bg-status-error/5 text-status-error`,o&&`border-status-info/20 bg-status-info/5 text-status-info`),"data-testid":`pipeline-progress-banner`,children:[n?(0,Y.jsx)(p,{className:`icon-sm`}):a?(0,Y.jsx)(l,{className:`icon-sm`}):(0,Y.jsx)(i,{className:`icon-sm animate-spin`}),(0,Y.jsx)(`span`,{className:`font-medium`,children:`Pipeline`}),o&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:`·`}),(0,Y.jsx)(s,{className:`icon-xs`}),(0,Y.jsx)(`span`,{children:c})]}),t.iteration>0&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:`·`}),(0,Y.jsxs)(`span`,{className:`text-muted-foreground`,children:[`Iteration `,t.iteration,`/`,t.maxIterations??10]})]}),n&&(0,Y.jsx)(`span`,{children:`All checks passed`}),a&&(0,Y.jsx)(`span`,{children:t.hookError||`Max iterations reached`})]})}function ie(e){return new Date(e).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})}function ae(e){let t=new Date(e),n=new Date().getTime()-t.getTime(),r=Math.floor(n/1e3),i=Math.floor(r/60),a=Math.floor(i/60),o=Math.floor(a/24);return r<60?`just now`:i<60?`${i}m ago`:a<24?`${a}h ago`:o<7?`${o}d ago`:ie(e)}function oe(e){let t=new Date(e),n=new Date;return t.getDate()===n.getDate()&&t.getMonth()===n.getMonth()&&t.getFullYear()===n.getFullYear()?``:t.toLocaleDateString([],{month:`short`,day:`numeric`})}function se(e,t){return e.length<=t?e:e.slice(0,t).trimEnd()+`…`}function Q(e){try{return typeof e==`string`?JSON.parse(e):e}catch{return null}}function ce(e,t){if(e===`AskUserQuestion`){let e=t.questions;return!Array.isArray(e)||e.length===0?null:e[0].question??`Question`}return e===`ExitPlanMode`?`Plan ready for review`:null}var $={TodoWrite:`todo`,AskUserQuestion:`question`,ExitPlanMode:`plan`};function le({messages:e,activeMessageId:t,threadStatus:n,onScrollToMessage:r,messagesScrollRef:i}){let a=(0,J.useRef)(null),o=(0,J.useRef)(!1);(0,J.useEffect)(()=>{let e=a.current,t=i?.current;if(!e||!t)return;let n=0,r=(e,t)=>{let n=e.scrollHeight-e.clientHeight,r=t.scrollHeight-t.clientHeight;n<=0||r<=0||(t.scrollTop=e.scrollTop/n*r)},s=()=>{o.current||(o.current=!0,n&&cancelAnimationFrame(n),n=requestAnimationFrame(()=>{r(e,t),n=requestAnimationFrame(()=>{o.current=!1})}))},c=()=>{o.current||(o.current=!0,n&&cancelAnimationFrame(n),n=requestAnimationFrame(()=>{r(t,e),n=requestAnimationFrame(()=>{o.current=!1})}))};return e.addEventListener(`scroll`,s,{passive:!0}),t.addEventListener(`scroll`,c,{passive:!0}),()=>{e.removeEventListener(`scroll`,s),t.removeEventListener(`scroll`,c),n&&cancelAnimationFrame(n)}},[i]);let s=(0,J.useMemo)(()=>{let t=0,r=[],i=[];for(let t of e)if(t.role===`assistant`&&t.toolCalls){for(let e of t.toolCalls)if(e.name===`TodoWrite`){let n=Q(e.input);if(n){let r=n.todos;Array.isArray(r)&&r.length>0&&i.push({todos:r,toolCallId:e.id,timestamp:t.timestamp})}}}let a=i.length>0?i[i.length-1]:null,o=new Map,s=new Map;for(let e=0;e<i.length;e++){let t=i[e];for(let n of t.todos){let r=n.content||n.activeForm||``;o.has(r)||o.set(r,{timestamp:t.timestamp,toolCallId:t.toolCallId,snapshotIdx:e}),s.set(r,{status:n.status,activeForm:n.activeForm,content:n.content})}}let c=new Map;if(a)for(let e of a.todos){let t=e.content||e.activeForm||``,n=o.get(t);if(!n)continue;let r=n.snapshotIdx;c.has(r)||c.set(r,[]),c.get(r).push(t)}if(e.length>0){let n=e[0];r.push({id:`timeline-start`,content:`Start`,timestamp:n.timestamp,index:t++,type:`start`})}let l=0,u=a?a.todos.length:0,d=0;for(let a of e)if(a.role===`user`&&a.content?.trim()&&r.push({id:a.id,content:a.content,timestamp:a.timestamp,index:t++,type:`prompt`}),a.role===`assistant`&&a.toolCalls)for(let e of a.toolCalls){if(e.name===`TodoWrite`){for(;l<i.length&&i[l].toolCallId===e.id;)break;let a=i.findIndex(t=>t.toolCallId===e.id);if(a<0)continue;for(let i=l;i<=a;i++){let a=c.get(i);if(a)for(let i of a){let a=s.get(i),c=o.get(i);if(!a||!c)continue;let l=n===`completed`||n===`failed`||n===`stopped`,f=a.status===`in_progress`&&!l,p=a.status===`completed`||a.status===`in_progress`&&l,m=`${d+1}/${u}`,h=f&&a.activeForm?a.activeForm:a.content||a.activeForm||`Task ${d+1}`;r.push({id:`todo-${e.id}-${d}`,content:`${m} · ${h}`,timestamp:c.timestamp,index:t++,type:`todo`,toolCallId:c.toolCallId,completed:p,inProgress:f}),d++}}l=a+1;continue}let f=$[e.name];if(!f)continue;let p=Q(e.input);if(!p)continue;let m=ce(e.name,p);m&&r.push({id:`tc-${e.id}`,content:m,timestamp:a.timestamp,index:t++,type:f,toolCallId:e.id})}let f=n===`completed`||n===`failed`||n===`stopped`;if(e.length>0&&f){let i=e[e.length-1],a=n===`completed`?`Completed`:n===`failed`?`Failed`:`Stopped`;r.push({id:`timeline-end`,content:a,timestamp:i.timestamp,index:t++,type:`end`})}return r},[e,n]);if(s.length===0)return null;let c=[];for(let e of s){let t=oe(e.timestamp),n=c[c.length-1];n&&n.date===t?n.milestones.push(e):c.push({date:t,milestones:[e]})}return(0,Y.jsx)(S,{delayDuration:200,children:(0,Y.jsx)(`div`,{ref:a,className:`thread-timeline no-scrollbar flex h-full w-[200px] shrink-0 flex-col overflow-y-auto`,children:(0,Y.jsx)(`div`,{className:`flex-1 px-3 py-3`,children:c.map((e,n)=>(0,Y.jsxs)(`div`,{children:[e.date&&(0,Y.jsx)(`div`,{className:`text-muted-foreground/60 mt-1 mb-2 text-[10px] font-medium tracking-wider uppercase`,children:e.date}),e.milestones.map((i,a)=>(0,Y.jsx)(fe,{milestone:i,isLast:n===c.length-1&&a===e.milestones.length-1,isActive:i.type===`prompt`&&i.id===t,onScrollTo:r},i.id))]},e.date))})})})}var ue={prompt:null,todo:n,question:t,plan:o,start:u,end:p},de={prompt:{icon:``,text:``},todo:{icon:`text-muted-foreground`,text:`text-muted-foreground`},question:{icon:`text-muted-foreground`,text:`text-muted-foreground`},plan:{icon:`text-muted-foreground`,text:`text-muted-foreground`},start:{icon:`text-muted-foreground`,text:`text-muted-foreground`},end:{icon:`text-muted-foreground`,text:`text-muted-foreground`}};function fe({milestone:e,isLast:t,isActive:n,onScrollTo:r}){let a=ue[e.type],o=de[e.type];return(0,Y.jsxs)(`div`,{className:`group/milestone flex gap-2`,children:[(0,Y.jsxs)(`div`,{className:`flex w-4 shrink-0 flex-col items-center`,children:[e.inProgress?(0,Y.jsx)(i,{className:`icon-sm mt-0.5 shrink-0 animate-spin text-blue-400`}):a?(0,Y.jsx)(a,{className:E(`icon-sm shrink-0 mt-0.5`,o.icon)}):(0,Y.jsx)(`div`,{className:E(`w-2.5 h-2.5 rounded-full border shrink-0 mt-0.5 transition-colors`,n?`border-primary bg-primary`:`border-primary bg-transparent`)}),!t&&(0,Y.jsx)(`div`,{className:`bg-border min-h-[16px] w-px flex-1`})]}),(0,Y.jsxs)(w,{children:[(0,Y.jsx)(D,{asChild:!0,children:(0,Y.jsx)(`button`,{onClick:()=>{e.type===`prompt`?r?.(e.id):r?.(e.id,e.toolCallId)},className:E(`flex-1 text-left pb-4 min-w-0 group/btn cursor-pointer`,`hover:opacity-100 transition-opacity`),children:(0,Y.jsx)(`div`,{className:E(`text-[11px] leading-snug line-clamp-2 transition-colors`,e.inProgress?`text-blue-400 font-medium`:e.type===`prompt`?n?`text-foreground font-medium`:`text-muted-foreground group-hover/btn:text-foreground`:o.text,e.completed&&`line-through opacity-60`),children:se(e.content,80)})})}),(0,Y.jsx)(x,{side:`left`,align:`start`,className:`max-w-[300px] p-3`,children:(0,Y.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Y.jsx)(`div`,{className:`text-muted-foreground font-mono text-[10px]`,children:ae(e.timestamp)}),(0,Y.jsx)(j,{className:`max-h-[200px]`,children:(0,Y.jsx)(`pre`,{className:`font-mono text-xs leading-relaxed wrap-break-word whitespace-pre-wrap`,children:e.content.trim()})})]})})]})]})}function pe({activeThread:e}){let t=M(),n=P(e=>e.timelineVisible),r=(0,J.useRef)(null),[i,a]=(0,J.useState)(null),{searchOpen:o,setSearchOpen:s,handleSearchNavigate:c,handleSearchClose:l}=K(r,e.id),u=P(e=>e.pendingThreadSearch);return(0,J.useEffect)(()=>{u&&u.threadId===e.id&&s(!0)},[u,e.id,s]),(0,J.useEffect)(()=>{if(!e.id)return;let t=e=>{if(!e.ctrlKey||e.shiftKey||e.metaKey||e.altKey||e.key!==`f`&&e.key!==`F`)return;let t=e.target;if(t&&t.closest(`.xterm`))return;e.preventDefault(),e.stopPropagation(),s(!0);let n=document.querySelector(`[data-testid="thread-search-input"]`);n&&requestAnimationFrame(()=>n.focus())};return window.addEventListener(`keydown`,t,!0),()=>window.removeEventListener(`keydown`,t,!0)},[e.id,s]),(0,Y.jsxs)(`div`,{className:`relative flex h-full min-w-0 flex-1 flex-col`,children:[e.id&&(0,Y.jsx)(re,{threadId:e.id}),(0,Y.jsxs)(`div`,{className:`thread-container flex min-h-0 flex-1`,children:[(0,Y.jsx)(G,{streamRef:r,enablePagination:!0,onVisibleMessageChange:a,searchBar:(0,Y.jsx)(W,{threadId:e.id,open:o,onClose:l,onNavigateToMessage:c})}),n&&t&&t.length>0&&(0,Y.jsx)(le,{messages:t,activeMessageId:i??e.lastUserMessage?.id??t.filter(e=>e.role===`user`&&e.content?.trim()).at(-1)?.id,threadStatus:e.status,messagesScrollRef:{current:r.current?.scrollViewport??null},onScrollToMessage:(e,t)=>{let n=t||e,i=t?`[data-tool-call-id="${t}"]`:`[data-user-msg="${e}"]`,a=(r.current?.scrollViewport)?.querySelector(i);a?a.scrollIntoView({behavior:`smooth`,block:`center`}):(r.current?.expandToItem(n),requestAnimationFrame(()=>{let e=r.current?.scrollViewport?.querySelector(i);e&&e.scrollIntoView({behavior:`smooth`,block:`center`})}))}})]})]})}function me({activeThread:e}){let{t}=b(),n=M(),[r,i]=(0,J.useState)(!1),a=O(t=>{if(e.projectId)return t.projects.find(t=>t.id===e.projectId)?.path}),o=(()=>{let e=n?.find(e=>e.role===`user`);if(e?.images)try{let t=typeof e.images==`string`?JSON.parse(e.images):e.images;return t?.length?t:void 0}catch{return}})();return(0,Y.jsx)(`div`,{className:`flex h-full min-w-0 flex-1 flex-col`,children:(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-4`,children:(0,Y.jsxs)(`div`,{className:`w-full max-w-3xl`,children:[(0,Y.jsx)(V,{onSubmit:(0,J.useCallback)(async(n,r,a)=>{i(!0),k.getState().appendOptimisticMessage(e.id,n,a,r.model,r.mode,r.fileReferences,r.effort);let{allowedTools:o,disallowedTools:s}=ee(T.getState().toolPermissions),c=await C.sendMessage(e.id,n,{provider:r.provider||void 0,model:r.model||void 0,permissionMode:r.mode||void 0,effort:r.effort||void 0,allowedTools:o,disallowedTools:s,fileReferences:r.fileReferences,symbolReferences:r.symbolReferences,baseBranch:r.baseBranch},a);if(c.isErr()){let e=c.error;A.error(e.type===`INTERNAL`?t(`thread.sendFailed`):t(`thread.sendFailedGeneric`,{error:e.message}))}else c.value.handledLocally===`shell_escape`&&k.getState().rollbackOptimisticMessage(e.id);i(!1)},[e.id,t]),loading:r,isNewThread:!0,projectId:e.projectId,initialPrompt:e.initialPrompt,initialImages:o}),(0,Y.jsx)(H,{projectPath:a,projectId:e.projectId,provider:e.provider})]})})})}function he({steps:e}){let t=_(),n=I(e,!0),r=F(e,n),a=(0,J.useMemo)(()=>{let t=e.find(e=>e.status===`running`);if(t)return t;let n=e.filter(e=>e.status===`completed`||e.status===`failed`);return n.length>0?n[n.length-1]:e[0]??null},[e]),o=e.filter(e=>e.status===`completed`).length;if(!a)return(0,Y.jsx)(R,{testId:`worktree-setup-progress`,label:`Preparing…`});let s=n(a.id);return(0,Y.jsxs)(`div`,{className:`flex w-full max-w-md flex-col items-center justify-center gap-6`,"data-testid":`worktree-setup-progress`,children:[(0,Y.jsx)(`div`,{className:`flex min-h-[100px] w-full items-center justify-center`,children:(0,Y.jsx)(y,{mode:`wait`,children:(0,Y.jsxs)(v.div,{initial:t?!1:{opacity:0,y:12,scale:.95},animate:{opacity:1,y:0,scale:1},exit:t?void 0:{opacity:0,y:-16},transition:{duration:.3,ease:`easeOut`},className:`flex flex-col items-center gap-3`,"data-testid":`worktree-setup-step-${a.id}`,children:[(0,Y.jsxs)(`div`,{className:`shrink-0`,children:[a.status===`running`&&(0,Y.jsx)(i,{className:`text-primary size-8 animate-spin`}),a.status===`completed`&&(0,Y.jsx)(m,{className:`size-8 text-emerald-500`}),a.status===`failed`&&(0,Y.jsx)(d,{className:`text-destructive size-8`}),a.status===`pending`&&(0,Y.jsx)(f,{className:`text-muted-foreground/40 size-8`})]}),(0,Y.jsx)(`span`,{className:E(`text-center text-lg font-medium`,a.status===`completed`&&`text-emerald-500`,a.status===`running`&&`text-foreground`,a.status===`failed`&&`text-destructive`,a.status===`pending`&&`text-muted-foreground/60`),children:a.label}),s!=null&&a.status!==`pending`&&(0,Y.jsx)(`span`,{className:`text-muted-foreground/50 text-sm tabular-nums`,children:L(s)}),a.error&&(0,Y.jsx)(`pre`,{className:`bg-destructive/5 text-destructive/80 mt-1 max-h-40 max-w-full overflow-auto rounded-md p-3 font-mono text-xs wrap-break-word whitespace-pre-wrap`,children:a.error})]},a.id+`-`+a.status)})}),e.length>1&&(0,Y.jsx)(`div`,{className:`flex items-center gap-2`,"data-testid":`worktree-setup-dots`,children:e.map(e=>(0,Y.jsx)(`div`,{className:E(`size-2 rounded-full transition-colors duration-300`,e.status===`completed`&&`bg-emerald-500`,e.status===`running`&&`bg-primary`,e.status===`failed`&&`bg-destructive`,e.status===`pending`&&`bg-muted-foreground/20`)},e.id))}),e.length>0&&(0,Y.jsx)(`span`,{className:`text-muted-foreground/40 text-xs tabular-nums`,children:o===e.length&&e.length>0?`Completed in ${L(r)}`:L(r)})]})}function ge(){let{t:e}=b();ne();let t=N(),n=z(),r=!!n&&!!t&&t.id!==n,i=O(e=>e.selectedProjectId),a=P(e=>e.newThreadProjectId),o=P(e=>e.newThreadIsScratch),c=O(e=>e.projects.length>0),l=B(e=>e.setAddProjectOpen);if(o&&!n||a&&!n)return(0,Y.jsx)(`div`,{className:`flex h-full min-w-0 flex-1 flex-col`,children:(0,Y.jsx)(U,{})});if(!n)return i&&c?(0,Y.jsx)(`div`,{className:`flex h-full min-w-0 flex-1 flex-col`,children:(0,Y.jsx)(U,{})}):(0,Y.jsx)(`div`,{className:`flex h-full min-w-0 flex-1 flex-col`,children:(0,Y.jsx)(`div`,{className:`text-muted-foreground flex flex-1 items-center justify-center px-6`,children:(0,Y.jsxs)(`div`,{className:`max-w-3xl text-center`,children:[(0,Y.jsx)(`p`,{className:`mb-4 text-4xl`,children:c?`🚀`:`📁`}),(0,Y.jsx)(`p`,{className:`text-foreground mb-1 text-2xl font-semibold`,children:e(c?`thread.selectOrCreate`:`thread.addProjectFirst`)}),(0,Y.jsx)(`p`,{className:`text-sm`,children:e(c?`thread.threadsRunParallel`:`thread.addProjectDescription`)}),(0,Y.jsxs)(te,{variant:`outline`,size:`sm`,onClick:()=>l(!0),className:`mt-6`,"data-testid":`thread-empty-add-project`,children:[(0,Y.jsx)(s,{className:`icon-sm`}),e(`sidebar.addProject`)]})]})})});if(!t)return(0,Y.jsx)(`div`,{className:`flex h-full min-w-0 flex-1 flex-col`,children:(0,Y.jsx)(R,{testId:`thread-loading-placeholder`,label:e(`common.preparing`,`Preparing…`)})});let u=t.status===`setting_up`?(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-4`,children:(0,Y.jsx)(he,{steps:t.setupProgress??[]})}):t.status===`idle`&&(t.queuedCount??0)===0?(0,Y.jsx)(me,{activeThread:t}):(0,Y.jsx)(pe,{activeThread:t});return r?(0,Y.jsxs)(`div`,{className:`relative flex h-full min-w-0 flex-1 flex-col`,"data-testid":`thread-switching`,children:[u,(0,Y.jsx)(`div`,{className:`bg-background/40 pointer-events-none absolute inset-0 z-10 flex items-start justify-center pt-16`,"aria-hidden":!0,children:(0,Y.jsx)(R,{fill:!1,testId:`thread-switching-spinner`})})]}):(0,Y.jsx)(`div`,{className:E(`flex h-full min-w-0 flex-1 flex-col`),children:u})}export{ge as ThreadView};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{zr as t}from"./icons-sqwAEN28.js";import{Dr as n,Lt as r,yr as i}from"./items-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{zr as t}from"./icons-sqwAEN28.js";import{Dr as n,Lt as r,yr as i}from"./items-CQJpN5w7.js";var a=e(t(),1),o=null,s=0,c=-1;n.subscribe(()=>{s++,o=null}),r.subscribe(()=>{s++,o=null}),i.subscribe(()=>{s++,o=null});function l(){return o!==null&&c===s?o:(o={...n.getState(),...r.getState(),...i.getState()},c=s,o)}function u(e){let t=n.subscribe(e),a=r.subscribe(e),o=i.subscribe(e);return()=>{t(),a(),o()}}function d(e){let t=(0,a.useRef)(null),n=(0,a.useRef)(e);n.current=e;let r=(0,a.useCallback)(()=>{let e=n.current(l());return t.current!==null&&Object.is(t.current.value,e)?t.current.value:(t.current={value:e},e)},[]);return(0,a.useSyncExternalStore)(u,r,r)}d.getState=l;var f=new Set([`projects`,`expandedProjects`,`selectedProjectId`,`initialized`,`loadProjects`,`toggleProject`,`selectProject`,`deleteProject`,`reorderProjects`,`renameProject`]),p=new Set([`threadsById`,`threadIdsByProject`,`scratchThreadIds`,`threadTotalByProject`,`scratchThreadTotal`,`selectedThreadId`,`activeThread`,`loadThreadsForProject`,`selectThread`,`archiveThread`,`pinThread`,`deleteThread`,`appendOptimisticMessage`,`refreshActiveThread`,`refreshAllLoadedThreads`,`clearProjectThreads`,`handleWSInit`,`handleWSMessage`,`handleWSToolCall`,`handleWSToolOutput`,`handleWSStatus`,`handleWSResult`,`handleWSQueueUpdate`]);d.setState=e=>{let t={},a={},o={};for(let[n,r]of Object.entries(e))f.has(n)?t[n]=r:p.has(n)?a[n]=r:o[n]=r;Object.keys(t).length>0&&n.setState(t),Object.keys(a).length>0&&r.setState(a),Object.keys(o).length>0&&i.setState(o)};export{d as t};
|
package/packages/client/dist/assets/{automation-store-CN7G1rmj.js → automation-store-5RQ6ZEv3.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-Cyuzqnbw.js";import{t}from"./react-B8mHUpgK.js";import{H as n,j as r,k as i}from"./index-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-Cyuzqnbw.js";import{t}from"./react-B8mHUpgK.js";import{H as n,j as r,k as i}from"./index-CAhq2HfW.js";var a=e({useAutomationStore:()=>u}),o=r(`automation-store`),s=null,c=2e3,l=0,u=t((e,t)=>({automationsByProject:{},inbox:[],inboxCount:0,selectedAutomationRuns:[],loadAutomations:async t=>{(await n.listAutomations(t)).match(n=>{e(e=>({automationsByProject:{...e.automationsByProject,[t]:n}}))},e=>o.warn(`Failed to load automations`,{error:e.message}))},loadInbox:async t=>{if(!i.getState().isAuthenticated)return;let r=Date.now();return r-l<c&&s||s?s:(l=r,s=(async()=>{try{let r=await n.getAutomationInbox(t);if(r.isOk()){let t=r.value,n=t.filter(e=>e.run.triageStatus===`pending`).length;e({inbox:t,inboxCount:n})}else throw o.warn(`Failed to load inbox`,{error:r.error.message}),r.error}finally{s=null}})(),s)},loadRuns:async t=>{(await n.listAutomationRuns(t)).match(t=>e({selectedAutomationRuns:t}),e=>o.warn(`Failed to load runs`,{error:e.message}))},createAutomation:async t=>{let r=await n.createAutomation(t);if(r.isErr())return null;let i=r.value,a=t.projectId;return e(e=>({automationsByProject:{...e.automationsByProject,[a]:[i,...e.automationsByProject[a]||[]]}})),i},updateAutomation:async(t,r)=>{let i=await n.updateAutomation(t,r);if(i.isErr())return;let a=i.value;e(e=>{let n={...e.automationsByProject};for(let[e,r]of Object.entries(n))n[e]=r.map(e=>e.id===t?a:e);return{automationsByProject:n}})},deleteAutomation:async(t,r)=>{(await n.deleteAutomation(t)).isErr()||e(e=>({automationsByProject:{...e.automationsByProject,[r]:(e.automationsByProject[r]||[]).filter(e=>e.id!==t)}}))},triggerAutomation:async e=>{await n.triggerAutomation(e)},triageRun:async(t,r)=>{(await n.triageRun(t,r)).isErr()||e(e=>{let n=e.inbox.map(e=>e.run.id===t?{...e,run:{...e.run,triageStatus:r}}:e);return{inbox:n,inboxCount:n.filter(e=>e.run.triageStatus===`pending`).length}})},handleRunStarted:e=>{t().loadInbox()},handleRunCompleted:e=>{t().loadInbox();let n=t().selectedAutomationRuns;n.length>0&&n[0].automationId===e.automationId&&t().loadRuns(e.automationId)}}));export{u as n,a as t};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/use-ws-
|
|
2
|
-
import{At as e}from"./mermaid-DOtnPRYX.js";import{t}from"./telemetry-BE4cJhqj.js";import{t as n}from"./react-B8mHUpgK.js";import{j as r}from"./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/use-ws-XNYpFLUp.js","assets/rolldown-runtime-Cyuzqnbw.js","assets/index-CAhq2HfW.js","assets/mermaid-DOtnPRYX.js","assets/dist-9FgEnJXd.js","assets/dist-Bdl9_5dx.js","assets/dist-D13Y8-qe.js","assets/icons-sqwAEN28.js","assets/tiptap-ByTP6yRf.js","assets/markdown-DBtwZWLP.js","assets/clsx-CjueKrWZ.js","assets/motion-622LpYRB.js","assets/_core-lD_pNs53.js","assets/initReactI18next-Dr0vnWXF.js","assets/auth-events-BAwnCYTy.js","assets/telemetry-BE4cJhqj.js","assets/circuit-breaker-store-DR3Dx8rQ.js","assets/react-B8mHUpgK.js","assets/index-CD_81O-J.css","assets/items-CQJpN5w7.js","assets/button-QOkjXCsI.js","assets/syntax-C54GZp2G.js","assets/useTranslation-DAPPK3Hy.js","assets/input-6aKHjE5F.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{At as e}from"./mermaid-DOtnPRYX.js";import{t}from"./telemetry-BE4cJhqj.js";import{t as n}from"./react-B8mHUpgK.js";import{j as r}from"./index-CAhq2HfW.js";var i=[`#ef4444`,`#f59e0b`,`#22c55e`,`#3b82f6`,`#ffffff`],a=`browser_panel_width`,o=`browser_panel_defaults`,s=`browser_panel_history`,c=480,l=320,u=20;function d(){try{let e=localStorage.getItem(a);if(e!=null){let t=Number.parseInt(e,10);if(Number.isFinite(t))return Math.max(l,t)}}catch{}return c}function f(){try{let e=localStorage.getItem(o);if(e){let t=JSON.parse(e);return{defaultModel:typeof t.defaultModel==`string`?t.defaultModel:`sonnet`}}}catch{}return{defaultModel:`sonnet`}}function p(e){try{localStorage.setItem(o,JSON.stringify(e))}catch{}}function m(){try{let e=localStorage.getItem(s);if(e){let t=JSON.parse(e);if(Array.isArray(t))return t.filter(e=>e&&typeof e.threadId==`string`&&typeof e.title==`string`&&typeof e.projectId==`string`&&typeof e.sentAt==`number`).slice(0,u)}}catch{}return[]}function h(e){try{localStorage.setItem(s,JSON.stringify(e.slice(0,u)))}catch{}}var g=r(`browser-panel`),_=()=>typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`bp_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`,v={open:!1,url:``,loadedUrl:null,loadError:null,tool:`browse`,drawColor:i[0],annotations:[],drawCanvasRef:null,overlaysVisible:!0,sessionId:null,sessionStatus:`idle`,sessionError:null,showTestIds:!1,animationsPaused:!1,inspectActive:!1},y=f(),b=n((n,r)=>({...v,browserPanelWidth:d(),defaultModel:y.defaultModel,sentHistory:m(),togglePanel:()=>{r().open?(r().closeBrowserSession(),n({...v,open:!1})):(g.info(`panel opened`),t(`browser_panel.opened`,1,{type:`sum`}),n({open:!0}))},closePanel:()=>{r().closeBrowserSession(),n({...v,open:!1})},setUrl:e=>n({url:e}),setLoadError:e=>n({loadError:e}),setTool:e=>n({tool:e}),setDrawColor:e=>n({drawColor:e}),addAnnotation:e=>{let r=_();return g.debug(`annotation added`,{kind:e.kind,id:r}),t(`browser_panel.annotation_added`,1,{type:`sum`,attributes:{kind:e.kind}}),n(t=>({annotations:[...t.annotations,{...e,id:r}]})),r},updateAnnotationNote:(e,t)=>n(n=>({annotations:n.annotations.map(n=>n.id===e?{...n,note:t}:n)})),updateAnnotationDom:(e,t)=>n(n=>({annotations:n.annotations.map(n=>n.id===e&&n.kind===`pin`?{...n,dom:t??void 0}:n)})),updateRegionDom:(e,t)=>n(n=>({annotations:n.annotations.map(n=>n.id===e&&n.kind===`region`?{...n,dom:t??void 0}:n)})),removeAnnotation:e=>n(t=>({annotations:t.annotations.filter(t=>t.id!==e)})),setDrawCanvasRef:e=>n({drawCanvasRef:e}),clearDraw:()=>{let e=r().drawCanvasRef;e&&e.getContext(`2d`)?.clearRect(0,0,e.width,e.height),n(e=>({annotations:e.annotations.filter(e=>e.kind!==`draw`)}))},clearAllAnnotations:()=>{let e=r().drawCanvasRef;e&&e.getContext(`2d`)?.clearRect(0,0,e.width,e.height),g.info(`clear all annotations`),n({annotations:[]})},toggleOverlaysVisibility:()=>n(e=>({overlaysVisible:!e.overlaysVisible})),setBrowserPanelWidth:e=>{let t=typeof window<`u`?Math.floor(window.innerWidth*.8):l*4,r=Math.max(l,Math.min(e,t));try{localStorage.setItem(a,String(r))}catch{}n({browserPanelWidth:r})},setDefaultModel:e=>{p({defaultModel:e}),n({defaultModel:e})},recordSent:e=>{let t=[e,...r().sentHistory.filter(t=>t.threadId!==e.threadId)].slice(0,u);h(t),n({sentHistory:t})},clearSentHistory:()=>{h([]),n({sentHistory:[]})},openBrowserSession:async i=>{let a=r();if(a.sessionId&&a.sessionStatus!==`disconnected`){let{browserSessionClient:t}=await e(async()=>{let{browserSessionClient:e}=await import(`./use-ws-XNYpFLUp.js`).then(e=>e.i);return{browserSessionClient: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]));t.navigate(a.sessionId,i),n({loadedUrl:i,loadError:null});return}let o=typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`bp-session-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`;n({sessionId:o,sessionStatus:`spawning`,sessionError:null,loadedUrl:i,loadError:null}),t(`browser_panel.url_loaded`,1,{type:`sum`,attributes:{protocol:i.split(`:`,1)[0]||`unknown`}});let{browserSessionClient:s}=await e(async()=>{let{browserSessionClient:e}=await import(`./use-ws-XNYpFLUp.js`).then(e=>e.i);return{browserSessionClient: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]));s.open(o,i)},closeBrowserSession:async()=>{let{sessionId:t}=r();if(!t)return;let{browserSessionClient:i}=await e(async()=>{let{browserSessionClient:e}=await import(`./use-ws-XNYpFLUp.js`).then(e=>e.i);return{browserSessionClient: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])),{clearLatestFrame:a}=await e(async()=>{let{clearLatestFrame:e}=await import(`./items-CQJpN5w7.js`).then(e=>e.S);return{clearLatestFrame:e}},__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23]));i.close(t,`user`),a(t),n({sessionId:null,sessionStatus:`idle`,sessionError:null})},setSessionStatus:(e,t=null)=>n(n=>({sessionStatus:e,sessionError:t??n.sessionError})),toggleShowTestIds:()=>n(e=>({showTestIds:!e.showTestIds})),toggleAnimationsPaused:()=>{let t=!r().animationsPaused;n({animationsPaused:t});let{sessionId:i}=r();i&&e(async()=>{let{browserSessionClient:e}=await import(`./use-ws-XNYpFLUp.js`).then(e=>e.i);return{browserSessionClient: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])).then(({browserSessionClient:e})=>{e.execute(i,t?`document.getAnimations().forEach(a => a.pause())`:`document.getAnimations().forEach(a => a.play())`).catch(()=>{})})},toggleInspectActive:()=>n(e=>({inspectActive:!e.inspectActive})),reset:()=>n({...v,open:!1})}));export{i as DRAW_COLORS,b as useBrowserPanelStore};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{Lt as t,zr as n}from"./icons-sqwAEN28.js";import{o as r}from"./markdown-DBtwZWLP.js";import{t as i}from"./clsx-CjueKrWZ.js";import{t as a}from"./dist-D13Y8-qe.js";import{lt as o}from"./index-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{Lt as t,zr as n}from"./icons-sqwAEN28.js";import{o as r}from"./markdown-DBtwZWLP.js";import{t as i}from"./clsx-CjueKrWZ.js";import{t as a}from"./dist-D13Y8-qe.js";import{lt as o}from"./index-CAhq2HfW.js";var s=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,c=i,l=(e,t)=>n=>{if(t?.variants==null)return c(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=s(t)||s(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return c(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)};n();var u={xs:`h-7 px-2 text-xs`,sm:`h-8 px-3 text-sm`,md:`h-9 px-3 text-sm`,lg:`h-10 px-4 text-base`},d={xs:`size-7`,sm:`size-8`,md:`size-9`,lg:`size-10`},f={xs:`[&_svg]:size-3`,sm:`[&_svg]:size-3.5`,md:`[&_svg]:size-4`,lg:`[&_svg]:size-4`},p=e(r(),1),m=l(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary/90`,destructive:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,outline:`border border-input bg-background hover:bg-accent hover:text-accent-foreground`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`hover:bg-accent hover:text-accent-foreground`,link:`text-primary underline-offset-4 hover:underline`},size:{default:o(u.sm,f.sm),xs:o(u.xs,f.xs),sm:o(u.sm,f.sm),md:o(u.md,f.md),lg:o(u.lg,f.lg),icon:o(d.lg,f.md),"icon-xs":o(d.xs,f.sm),"icon-sm":o(d.sm,f.md),"icon-md":o(d.md,f.md)}},defaultVariants:{variant:`default`,size:`default`}});function h({className:e,variant:n,size:r,asChild:i=!1,loading:s=!1,children:c,disabled:l,ref:u,...d}){return(0,p.jsx)(i?a:`button`,{className:o(m({variant:n,size:r,className:e})),ref:u,disabled:l||s,...d,children:i?c:(0,p.jsxs)(p.Fragment,{children:[s&&(0,p.jsx)(t,{className:`icon-base animate-spin`}),c]})})}export{l as i,m as n,u as r,h as t};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/xterm-BrP-ENHg.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{zr as t}from"./icons-sqwAEN28.js";import{At as n}from"./mermaid-DOtnPRYX.js";import{t as r}from"./telemetry-BE4cJhqj.js";import{j as i}from"./index-
|
|
2
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{zr as t}from"./icons-sqwAEN28.js";import{At as n}from"./mermaid-DOtnPRYX.js";import{t as r}from"./telemetry-BE4cJhqj.js";import{j as i}from"./index-CAhq2HfW.js";import"./adapter-g71mvnZo.js";var a=e(t(),1),o=i(`terminal/webgl`),s=!!window.__TAURI_INTERNALS__,c=null;function l(){return c||=Promise.all([n(()=>import(`./xterm-DooSxjI5.js`),[]),n(()=>import(`./addon-fit-DthTIhi3.js`),[]),n(()=>import(`./addon-web-links-xF2oeMXv.js`),[]),n(()=>import(`./addon-search-ncwn9hzV.js`),[]),n(()=>import(`./addon-webgl-GYeinTsr.js`),[]),n(()=>Promise.resolve({}),__vite__mapDeps([0]))]).then(([e,t,n,r,i])=>({Terminal:e.Terminal,FitAddon:t.FitAddon,WebLinksAddon:n.WebLinksAddon,SearchAddon:r.SearchAddon,WebglAddon:i.WebglAddon})),c}function u(e,t){try{let n=new t;return n.onContextLoss(()=>{o.warn(`WebGL context lost, falling back to DOM renderer`),r(`terminal.renderer`,1,{attributes:{renderer:`dom-fallback-context-lost`}}),n.dispose()}),e.loadAddon(n),r(`terminal.renderer`,1,{attributes:{renderer:`webgl`}}),n}catch(e){return o.warn(`WebGL renderer unavailable, using DOM renderer`,{error:e instanceof Error?e.message:String(e)}),r(`terminal.renderer`,1,{attributes:{renderer:`dom-fallback`}}),null}}function d(e){let t=e._core?._renderService;t?._isPaused&&t._handleIntersectionChange&&t._handleIntersectionChange({isIntersecting:!0,intersectionRatio:1})}function f(e,t){t?.offsetParent!=null&&d(e),e.refresh(0,e.rows-1)}function p(e,t,n){e.write(t,()=>{f(e,n)})}var m=new Map,h=new Map;function g(e,t=100){let n=null;return{schedule:()=>{n!==null&&window.clearTimeout(n),n=window.setTimeout(()=>{n=null,e()},t)},dispose:()=>{n!==null&&(window.clearTimeout(n),n=null)}}}s||l();function _(e){let t=getComputedStyle(document.documentElement).getPropertyValue(e).trim();return t?`hsl(${t})`:`#1b1b1b`}function v(e){return getComputedStyle(document.documentElement).getPropertyValue(e).trim()}function y(){return{background:_(`--background`),foreground:_(`--foreground`),cursor:_(`--foreground`),selectionBackground:v(`--terminal-selection`)||`#264f78`,scrollbarSliderBackground:`hsl(${getComputedStyle(document.documentElement).getPropertyValue(`--muted-foreground`).trim()} / 0.25)`,scrollbarSliderHoverBackground:`hsl(${getComputedStyle(document.documentElement).getPropertyValue(`--muted-foreground`).trim()} / 0.4)`,scrollbarSliderActiveBackground:`hsl(${getComputedStyle(document.documentElement).getPropertyValue(`--muted-foreground`).trim()} / 0.5)`,black:v(`--terminal-black`),red:v(`--terminal-red`),green:v(`--terminal-green`),yellow:v(`--terminal-yellow`),blue:v(`--terminal-blue`),magenta:v(`--terminal-magenta`),cyan:v(`--terminal-cyan`),white:v(`--terminal-white`),brightBlack:v(`--terminal-bright-black`),brightRed:v(`--terminal-bright-red`),brightGreen:v(`--terminal-bright-green`),brightYellow:v(`--terminal-bright-yellow`),brightBlue:v(`--terminal-bright-blue`),brightMagenta:v(`--terminal-bright-magenta`),brightCyan:v(`--terminal-bright-cyan`),brightWhite:v(`--terminal-bright-white`)}}function b(e){(0,a.useEffect)(()=>{let t=()=>{e.current?.terminal&&(e.current.terminal.options.theme=y())};t();let n=new MutationObserver(t);return n.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`,`style`]}),()=>n.disconnect()},[e])}export{l as a,m as c,p as d,y as i,h as l,g as n,s as o,_ as r,f as s,u as t,b as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./react-B8mHUpgK.js";import{F as t,j as n}from"./index-
|
|
1
|
+
import{t as e}from"./react-B8mHUpgK.js";import{F as t,j as n}from"./index-CAhq2HfW.js";var r=n(`comments`);function i(e,t){return e.some(e=>e.id===t.id)?e:[...e,t].sort((e,t)=>e.createdAt.localeCompare(t.createdAt))}var a=e((e,n)=>({byThread:{},loadingByThread:{},fetch:async n=>{e(e=>({loadingByThread:{...e.loadingByThread,[n]:!0}})),(await t.getThreadComments(n)).match(t=>e(e=>({byThread:{...e.byThread,[n]:t},loadingByThread:{...e.loadingByThread,[n]:!1}})),t=>{r.warn(`Failed to load comments`,{threadId:n,error:String(t)}),e(e=>({loadingByThread:{...e.loadingByThread,[n]:!1}}))})},post:async(e,i)=>{let a=i.trim();return a?(await t.createThreadComment(e,a)).match(t=>(n().applyAdded(e,t),!0),t=>(r.warn(`Failed to post comment`,{threadId:e,error:String(t)}),!1)):!1},remove:async(e,i)=>{(await t.deleteThreadComment(e,i)).match(()=>n().applyDeleted(e,i),t=>r.warn(`Failed to delete comment`,{threadId:e,commentId:i,error:String(t)}))},applyAdded:(t,n)=>e(e=>({byThread:{...e.byThread,[t]:i(e.byThread[t]??[],n)}})),applyDeleted:(t,n)=>e(e=>{let r=e.byThread[t];return r?{byThread:{...e.byThread,[t]:r.filter(e=>e.id!==n)}}:e})}));export{a as useCommentStore};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{B as t,C as n,Ct as r,En as i,Jn as a,Lt as o,Mn as s,Ot as c,X as l,i as u,lr as d,qn as f,tr as p,yr as m,zr as h}from"./icons-sqwAEN28.js";import{At as ee}from"./mermaid-DOtnPRYX.js";import{o as g}from"./markdown-DBtwZWLP.js";import{i as _,o as te,s as v}from"./dist-Bdl9_5dx.js";import{t as ne}from"./useTranslation-DAPPK3Hy.js";import{n as y,t as b}from"./telemetry-BE4cJhqj.js";import{G as x,W as S,Y as C,a as re,f as ie,i as ae,lt as w,q as T}from"./index-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{B as t,C as n,Ct as r,En as i,Jn as a,Lt as o,Mn as s,Ot as c,X as l,i as u,lr as d,qn as f,tr as p,yr as m,zr as h}from"./icons-sqwAEN28.js";import{At as ee}from"./mermaid-DOtnPRYX.js";import{o as g}from"./markdown-DBtwZWLP.js";import{i as _,o as te,s as v}from"./dist-Bdl9_5dx.js";import{t as ne}from"./useTranslation-DAPPK3Hy.js";import{n as y,t as b}from"./telemetry-BE4cJhqj.js";import{G as x,W as S,Y as C,a as re,f as ie,i as ae,lt as w,q as T}from"./index-CAhq2HfW.js";import{i as oe,t as se}from"./button-QOkjXCsI.js";import{$r as ce,Gr as le,Jr as ue,Xr as E,ar as de,cn as fe,ir as D,mn as pe,nr as O,pn as k,qr as A,rr as j,un as me,vr as M}from"./items-CQJpN5w7.js";import{t as N}from"./FileTree-0rn6jPHG.js";import{t as he}from"./loading-state-CiP7DrB8.js";var P=e(h(),1),F=e(g(),1),I=`Toggle`,L=P.forwardRef((e,t)=>{let{pressed:n,defaultPressed:r,onPressedChange:i,...a}=e,[o,s]=C({prop:n,onChange:i,defaultProp:r??!1,caller:I});return(0,F.jsx)(_.button,{type:`button`,"aria-pressed":o,"data-state":o?`on`:`off`,"data-disabled":e.disabled?``:void 0,...a,ref:t,onClick:v(e.onClick,()=>{e.disabled||s(!o)})})});L.displayName=I;var R=`ToggleGroup`,[z,B]=te(R,[D]),V=D(),H=P.forwardRef((e,t)=>{let{type:n,...r}=e;if(n===`single`)return(0,F.jsx)(ge,{role:`radiogroup`,...r,ref:t});if(n===`multiple`)return(0,F.jsx)(G,{role:`toolbar`,...r,ref:t});throw Error(`Missing prop \`type\` expected on \`${R}\``)});H.displayName=R;var[U,W]=z(R),ge=P.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=C({prop:n,defaultProp:r??``,onChange:i,caller:R});return(0,F.jsx)(U,{scope:e.__scopeToggleGroup,type:`single`,value:P.useMemo(()=>o?[o]:[],[o]),onItemActivate:s,onItemDeactivate:P.useCallback(()=>s(``),[s]),children:(0,F.jsx)(_e,{...a,ref:t})})}),G=P.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=C({prop:n,defaultProp:r??[],onChange:i,caller:R}),c=P.useCallback(e=>s((t=[])=>[...t,e]),[s]),l=P.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,F.jsx)(U,{scope:e.__scopeToggleGroup,type:`multiple`,value:o,onItemActivate:c,onItemDeactivate:l,children:(0,F.jsx)(_e,{...a,ref:t})})});H.displayName=R;var[K,q]=z(R),_e=P.forwardRef((e,t)=>{let{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:a,dir:o,loop:s=!0,...c}=e,l=V(n),u=de(o),d={dir:u,...c};return(0,F.jsx)(K,{scope:n,rovingFocus:i,disabled:r,children:i?(0,F.jsx)(j,{asChild:!0,...l,orientation:a,dir:u,loop:s,children:(0,F.jsx)(_.div,{...d,ref:t})}):(0,F.jsx)(_.div,{...d,ref:t})})}),J=`ToggleGroupItem`,ve=P.forwardRef((e,t)=>{let n=W(J,e.__scopeToggleGroup),r=q(J,e.__scopeToggleGroup),i=V(e.__scopeToggleGroup),a=n.value.includes(e.value),o=r.disabled||e.disabled,s={...e,pressed:a,disabled:o},c=P.useRef(null);return r.rovingFocus?(0,F.jsx)(O,{asChild:!0,...i,focusable:!o,active:a,ref:c,children:(0,F.jsx)(ye,{...s,ref:t})}):(0,F.jsx)(ye,{...s,ref:t})});ve.displayName=J;var ye=P.forwardRef((e,t)=>{let{__scopeToggleGroup:n,value:r,...i}=e,a=W(J,n),o={role:`radio`,"aria-checked":e.pressed,"aria-pressed":void 0};return(0,F.jsx)(L,{...a.type===`single`?o:void 0,...i,ref:t,onPressedChange:e=>{e?a.onItemActivate(r):a.onItemDeactivate(r)}})}),Y=oe(`inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,{variants:{variant:{default:`bg-transparent`,outline:`border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground`},size:{default:`h-9 px-2 min-w-9`,sm:`h-8 px-1.5 min-w-8`,lg:`h-10 px-2.5 min-w-10`}},defaultVariants:{variant:`default`,size:`default`}}),X=P.createContext({size:`default`,variant:`default`});function be({className:e,variant:t,size:n,children:r,ref:i,...a}){let o=P.useMemo(()=>({variant:t,size:n}),[t,n]);return(0,F.jsx)(H,{ref:i,className:w(`flex items-center justify-center gap-1`,e),...a,children:(0,F.jsx)(X.Provider,{value:o,children:r})})}function Z({className:e,children:t,variant:n,size:r,ref:i,...a}){let o=P.useContext(X);return(0,F.jsx)(ve,{ref:i,className:w(Y({variant:n||o.variant,size:r||o.size}),e),...a,children:t})}var xe=/\s+|[A-Za-z0-9_$]+|[^\sA-Za-z0-9_$]/g;function Se(e){return e.match(xe)??[]}var Ce={del:[],add:[]},we=16e4;function Te(e,t){if(!e||!t||e===t)return Ce;let n=Se(e),r=Se(t),i=n.length,a=r.length;if(i===0||a===0||i*a>we)return Ce;let o=a+1,s=new Int32Array((i+1)*o);for(let e=i-1;e>=0;e--){let t=n[e],i=e*o,c=(e+1)*o;for(let e=a-1;e>=0;e--)s[i+e]=t===r[e]?s[c+e+1]+1:Math.max(s[c+e],s[i+e+1])}let c=new Uint8Array(i),l=new Uint8Array(a),u=0,d=0,f=0;for(;u<i&&d<a;)n[u]===r[d]?(c[u]=1,l[d]=1,f++,u++,d++):s[(u+1)*o+d]>=s[u*o+d+1]?u++:d++;return f===0?Ce:{del:Ee(n,c),add:Ee(r,l)}}function Ee(e,t){let n=[],r=0,i=-1;for(let a=0;a<e.length;a++){let o=e[a].length;t[a]===0?i===-1&&(i=r):i!==-1&&(n.push([i,r]),i=-1),r+=o}return i!==-1&&n.push([i,r]),n}function De(e){if(e.length>5e4)return;let t=0;for(;t<e.length;){if(e[t].type!==`del`){t++;continue}let n=t;for(;t<e.length&&e[t].type===`del`;)t++;let r=t,i=t;for(;t<e.length&&e[t].type===`add`;)t++;let a=t,o=Math.min(r-n,a-i);for(let t=0;t<o;t++){let r=e[n+t],a=e[i+t];if(r.conflictRole||a.conflictRole)continue;let{del:o,add:s}=Te(r.text,a.text);o.length&&(r.segments=o),s.length&&(a.segments=s)}}}var Oe=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/,ke=/^<{7}\s?(.*)/,Ae=/^={7}$/,je=/^>{7}\s?(.*)/;function Me(e){let t=[],n=0;for(;n<e.length;){let r=ke.exec(e[n].text);if(!r){n++;continue}let i=n,a=r[1]?.trim()||`Current`,o=-1,s=-1;for(let r=i+1;r<e.length;r++)if(Ae.test(e[r].text)&&o===-1)o=r;else if(o!==-1){let c=je.exec(e[r].text);if(c){s=r;let l=c[1]?.trim()||`Incoming`,u=t.length,d={id:u,startLineIdx:i,separatorLineIdx:o,endLineIdx:s,oursLabel:a,theirsLabel:l};t.push(d),e[i].conflictRole=`marker-start`,e[i].conflictBlockId=u;for(let t=i+1;t<o;t++)e[t].conflictRole=`ours`,e[t].conflictBlockId=u;e[o].conflictRole=`separator`,e[o].conflictBlockId=u;for(let t=o+1;t<s;t++)e[t].conflictRole=`theirs`,e[t].conflictBlockId=u;e[s].conflictRole=`marker-end`,e[s].conflictBlockId=u,n=s+1;break}}s===-1&&n++}return t}function Ne(e){let t=y(`diff.parseUnifiedDiff`,{attributes:{"input.bytes":e.length}}),n=e.split(`
|
|
2
2
|
`),r=[],i=new Map,a=0,o=0,s=!1;for(let e of n){let t=Oe.exec(e);if(t){a=parseInt(t[1],10),o=parseInt(t[2],10),s=!0,i.set(r.length,e);continue}if(s)if(e.startsWith(`+`))r.push({type:`add`,text:e.substring(1),newNo:o++});else if(e.startsWith(`-`))r.push({type:`del`,text:e.substring(1),oldNo:a++});else if(e.startsWith(`\\`))continue;else{let t=e.length>0&&e[0]===` `?e.substring(1):e;r.push({type:`ctx`,text:t,oldNo:a++,newNo:o++})}}let c=Me(r);return De(r),t.end(),b(`diff.parse.lines`,r.length,{type:`gauge`}),b(`diff.parse.hunks`,i.size,{type:`gauge`}),c.length>0&&b(`diff.parse.conflict_blocks`,c.length,{type:`sum`}),{lines:r,hunkHeaders:i,conflictBlocks:c}}function Pe(e,t){if(e.length===0)return[];let n=[],r=e[0].type===`ctx`?`context`:`change`,i=0;for(let t=1;t<=e.length;t++){let a=t<e.length?e[t].type===`ctx`?`context`:`change`:`other`;(a!==r||t===e.length)&&(n.push({kind:r,startIdx:i,endIdx:t-1,collapsed:!1}),r=a,i=t)}for(let e of n)e.kind===`context`&&e.endIdx-e.startIdx+1>t*2&&(e.collapsed=!0);return n}function Fe(e,t,n,r){let i=[],a=e=>{n.has(e)&&i.push({type:`hunk`,text:n.get(e),hunkStartIdx:e})},o=(e,t)=>{for(let n=e;n<=t;n++)a(n),i.push({type:`line`,lineIdx:n})};for(let n=0;n<e.length;n++){let a=e[n];if(a.kind===`change`||!a.collapsed)o(a.startIdx,a.endIdx);else{let e=Math.min(a.startIdx+r-1,a.endIdx),s=Math.max(a.endIdx-r+1,e+1),c=s-e-1;o(a.startIdx,e),c>0&&i.push({type:`fold`,sectionIdx:n,lineCount:c,oldStart:t[e+1]?.oldNo??0,newStart:t[e+1]?.newNo??0}),o(s,a.endIdx)}}return i}function Q(e,t,n){let r=[],i=t;for(;i<=n;){let t=e[i];if(t.type===`ctx`)r.push({left:t,right:t}),i++;else if(t.type===`del`){let t=[];for(;i<=n&&e[i].type===`del`;)t.push(e[i]),i++;let a=[];for(;i<=n&&e[i].type===`add`;)a.push(e[i]),i++;let o=Math.max(t.length,a.length);for(let e=0;e<o;e++)r.push({left:t[e],right:a[e]})}else r.push({right:t}),i++}return r}function Ie(e,t,n){let r=[],i=t;for(;i<=n;){let t=e[i];if(t.type===`ctx`)r.push({left:t,center:t,right:t}),i++;else if(t.type===`del`){let t=[];for(;i<=n&&e[i].type===`del`;)t.push(e[i]),i++;let a=[];for(;i<=n&&e[i].type===`add`;)a.push(e[i]),i++;let o=Math.max(t.length,a.length);for(let e=0;e<o;e++)r.push({left:t[e],center:a[e],right:a[e]})}else r.push({center:t,right:t}),i++}return r}function Le(e){if(e.status===`added`||e.status===`deleted`)return!0;if(e.rawDiff){let t=!1,n=!1;for(let r of e.rawDiff.split(`
|
|
3
3
|
`))if(r.startsWith(`+`)&&!r.startsWith(`+++`)?t=!0:r.startsWith(`-`)&&!r.startsWith(`---`)&&(n=!0),t&&n)return!1;return t!==n}return!!e.oldValue!=!!e.newValue}function Re(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function $(e,t,n=!1){if(!t)return 0;let r=n?t:t.toLowerCase(),i=n?e:e.toLowerCase(),a=0,o=0;for(;(o=i.indexOf(r,o))!==-1;)a++,o+=r.length;return a}var ze=/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/;function Be(e){let t=e.split(`
|
|
4
4
|
`),n=[],r=[],i=[],a=0,o=null,s=-1,c=!0;for(let e of t){let t=ze.exec(e);if(t){c=!1,s++,o={header:e,lines:[],oldStart:parseInt(t[1],10),oldCount:t[2]==null?1:parseInt(t[2],10),newStart:parseInt(t[3],10),newCount:t[4]==null?1:parseInt(t[4],10)},r.push(o);continue}if(c){n.push(e);continue}if(!o||e.startsWith(`\\`))continue;let l,u;e.startsWith(`+`)?(l=`add`,u=e.substring(1)):e.startsWith(`-`)?(l=`del`,u=e.substring(1)):(l=`ctx`,u=e.length>0&&e[0]===` `?e.substring(1):e);let d={index:a++,type:l,text:u,raw:e,hunkIndex:s};o.lines.push(d),i.push(d)}return{headerLines:n,hunks:r,allLines:i}}function Ve(e){let t=new Set;for(let n of e.allLines)(n.type===`add`||n.type===`del`)&&t.add(n.index);return t}function He(e){let t=new Date(e),n=Date.now()-t.getTime(),r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);if(i<24)return`${i}h ago`;let a=Math.floor(i/24);return a<30?`${a}d ago`:t.toLocaleDateString()}function Ue({thread:e,className:t}){return(0,F.jsxs)(`div`,{className:w(`max-h-80 w-80 overflow-y-auto rounded-lg border border-border bg-background p-3 shadow-lg`,t),"data-testid":`comment-thread-${e.id}`,children:[(0,F.jsxs)(`div`,{className:`text-muted-foreground mb-2 flex items-center gap-2 text-[10px]`,children:[(0,F.jsx)(c,{className:`size-3`}),(0,F.jsx)(`span`,{className:`font-mono`,children:e.path}),e.line&&(0,F.jsxs)(`span`,{children:[`line `,e.line]}),(0,F.jsx)(`div`,{className:`flex-1`}),e.is_resolved&&(0,F.jsxs)(`span`,{className:`flex items-center gap-0.5 text-green-400`,children:[(0,F.jsx)(d,{className:`size-3`}),` Resolved`]}),e.is_outdated&&(0,F.jsxs)(`span`,{className:`flex items-center gap-0.5 text-yellow-400`,children:[(0,F.jsx)(p,{className:`size-3`}),` Outdated`]})]}),(0,F.jsx)(`div`,{className:`space-y-2`,children:e.comments.map(e=>(0,F.jsxs)(`div`,{className:`border-border/50 rounded-md border p-2`,"data-testid":`comment-${e.id}`,children:[(0,F.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5`,children:[e.author_avatar_url&&(0,F.jsx)(`img`,{src:e.author_avatar_url,alt:e.author,className:`size-4 rounded-full`}),(0,F.jsx)(`span`,{className:`text-[11px] font-medium`,children:e.author}),e.author_association&&e.author_association!==`NONE`&&(0,F.jsx)(`span`,{className:`bg-muted text-muted-foreground rounded px-1 text-[9px]`,children:e.author_association.toLowerCase()}),(0,F.jsx)(`span`,{className:`text-muted-foreground ml-auto text-[10px]`,children:He(e.created_at)})]}),(0,F.jsx)(`div`,{className:`text-foreground/90 text-[11px] leading-relaxed whitespace-pre-wrap`,children:e.body})]},e.id))})]})}function We({state:e,onToggle:t,size:n=`default`,className:i,"data-testid":a,"aria-label":o}){let s=n===`sm`?`h-3 w-3`:`h-3.5 w-3.5`,c=n===`sm`?`h-2 w-2`:`icon-2xs`;return(0,F.jsx)(`button`,{role:`checkbox`,"aria-checked":e===`indeterminate`?`mixed`:e===`checked`,"aria-label":o,onClick:t,className:w(`flex items-center justify-center cursor-pointer rounded border transition-colors shrink-0`,s,e===`checked`?`bg-primary border-primary text-primary-foreground`:e===`indeterminate`?`bg-muted border-muted-foreground/60 text-foreground`:`bg-transparent border-muted-foreground/40`,i),"data-testid":a,children:e===`indeterminate`?(0,F.jsx)(r,{className:w(c,`stroke-3`)}):e===`checked`?(0,F.jsx)(m,{className:c}):null})}var Ge=(0,P.memo)(function({block:e,onResolve:t}){return t?(0,F.jsxs)(`div`,{className:`flex items-center gap-1.5 px-2 py-0.5 font-sans text-(length:--diff-font-size)`,style:{height:`var(--diff-row-height)`,backgroundColor:`hsl(210 80% 55% / 0.10)`},"data-testid":`conflict-actions-${e.id}`,children:[(0,F.jsxs)(`span`,{className:`text-muted-foreground mr-1 font-medium`,children:[`Conflict `,e.id+1,`:`]}),(0,F.jsx)(`button`,{className:`rounded px-1.5 py-0.5 text-[10px] font-medium text-blue-400 transition-colors hover:bg-blue-500/20 hover:text-blue-300`,onClick:()=>t(e.id,`ours`),"data-testid":`conflict-accept-current-${e.id}`,children:`Accept Current`}),(0,F.jsx)(`span`,{className:`text-muted-foreground/40`,children:`|`}),(0,F.jsx)(`button`,{className:`rounded px-1.5 py-0.5 text-[10px] font-medium text-orange-400 transition-colors hover:bg-orange-500/20 hover:text-orange-300`,onClick:()=>t(e.id,`theirs`),"data-testid":`conflict-accept-incoming-${e.id}`,children:`Accept Incoming`}),(0,F.jsx)(`span`,{className:`text-muted-foreground/40`,children:`|`}),(0,F.jsx)(`button`,{className:`rounded px-1.5 py-0.5 text-[10px] font-medium text-emerald-400 transition-colors hover:bg-emerald-500/20 hover:text-emerald-300`,onClick:()=>t(e.id,`both`),"data-testid":`conflict-accept-both-${e.id}`,children:`Accept Both`})]}):null}),Ke=48,qe=(0,P.memo)(function({lines:e,scrollElement:t,totalSize:n}){let r=(0,P.useRef)(null),i=(0,P.useRef)(null),[a,o]=(0,P.useState)(0),[s,c]=(0,P.useState)(0),[l,u]=(0,P.useState)(0),d=(0,P.useMemo)(()=>{let t=[];for(let n of e)t.push(n.type);return t},[e]);(0,P.useEffect)(()=>{let e=i.current;if(!e)return;let t=new ResizeObserver(e=>{for(let t of e)u(t.contentRect.height)});return t.observe(e),u(e.clientHeight),()=>t.disconnect()},[]),(0,P.useEffect)(()=>{let e=r.current;if(!e||l===0)return;let t=l,n=window.devicePixelRatio||1;e.width=Ke*n,e.height=t*n,Object.assign(e.style,{width:`${Ke}px`,height:`${t}px`});let i=e.getContext(`2d`);if(!i)return;i.scale(n,n),i.clearRect(0,0,Ke,t);let a=d.length;if(a===0)return;let o=Math.max(1,t/a),s=Ke-8;for(let e=0;e<a;e++){let n=d[e];if(n===`ctx`)continue;let r=e/a*t,c=Math.max(o,2);n===`add`?i.fillStyle=`hsl(142, 40%, 45%)`:i.fillStyle=`hsl(0, 45%, 55%)`,i.fillRect(4,r,s,c)}},[d,l]),(0,P.useEffect)(()=>{if(!t)return;let e=()=>{let e=n;if(e===0||l===0)return;let r=t.scrollTop,i=t.clientHeight,a=l/e;o(r*a),c(Math.max(i*a,20))};e(),t.addEventListener(`scroll`,e,{passive:!0});let r=new ResizeObserver(e);return r.observe(t),()=>{t.removeEventListener(`scroll`,e),r.disconnect()}},[t,n,l]);let f=(0,P.useCallback)(e=>{if(!t||l===0)return;let r=e.currentTarget.getBoundingClientRect(),i=(e.clientY-r.top)/l,a=t.clientHeight,o=i*n-a/2;t.scrollTo({top:Math.max(0,Math.min(o,n-a))})},[t,l,n]),p=(0,P.useCallback)(e=>{if(e.preventDefault(),!t||l===0)return;let r=e.clientY,i=t.scrollTop,a=n/l,o=e=>{t.scrollTop=i+(e.clientY-r)*a},s=()=>{document.removeEventListener(`mousemove`,o),document.removeEventListener(`mouseup`,s)};document.addEventListener(`mousemove`,o),document.addEventListener(`mouseup`,s)},[t,l,n]);return(0,F.jsxs)(`div`,{ref:i,className:`border-border/50 bg-muted/20 relative shrink-0 cursor-pointer border-l`,style:{width:Ke},onClick:f,"data-testid":`diff-minimap`,children:[(0,F.jsx)(`canvas`,{ref:r,className:`block`}),(0,F.jsx)(`div`,{className:`border-foreground/20 bg-foreground/10 absolute right-0 left-0 rounded-sm border`,style:{top:a,height:s},onMouseDown:p,"data-testid":`diff-minimap-viewport`})]})}),Je=`hsl(210 80% 55% / 0.15)`,Ye=`hsl(210 80% 55% / 0.30)`,Xe=`hsl(30 80% 55% / 0.15)`,Ze=`hsl(30 80% 55% / 0.30)`,Qe=`hsl(0 0% 50% / 0.25)`;function $e(e){switch(e){case`marker-start`:return Ye;case`ours`:return Je;case`separator`:return Qe;case`theirs`:return Xe;case`marker-end`:return Ze;default:return}}var et=`hsl(var(--card))`,tt={transform:`translateX(calc(-1 * var(--h-scroll, 0px)))`,position:`relative`,zIndex:0};function nt(e){let t=$e(e.conflictRole);if(t)return{backgroundColor:t};if(e.type===`add`)return{backgroundColor:`hsl(var(--diff-added) / 0.22)`};if(e.type===`del`)return{backgroundColor:`hsl(var(--diff-removed) / 0.22)`}}function rt(e){return e.conflictRole===`marker-start`||e.conflictRole===`separator`||e.conflictRole===`marker-end`}function it(e){return rt(e)?`text-muted-foreground/60 italic`:e.conflictRole===`ours`?`text-blue-300`:e.conflictRole===`theirs`?`text-orange-300`:e.type===`add`?`text-diff-added`:e.type===`del`?`text-diff-removed`:`text-foreground/80`}function at(e){return rt(e)?e.conflictRole===`marker-start`?`── Current Change (${e.text.replace(/^<{7}\s?/,``).trim()||`HEAD`}) ──`:e.conflictRole===`separator`?`────────────────────────────────`:`── Incoming Change (${e.text.replace(/^>{7}\s?/,``).trim()||`branch`}) ──`:e.text}var ot=new Map,st=0,ct=0,lt=0,ut=0,dt=0,ft=2e3;function pt(){st&&b(`diff.highlight.cache.hits`,st,{type:`sum`}),ct&&b(`diff.highlight.cache.misses`,ct,{type:`sum`}),lt&&b(`diff.highlight.miss.total_ms`,Math.round(lt),{type:`sum`}),ut&&b(`diff.highlight.cache.evictions`,ut,{type:`sum`}),b(`diff.highlight.cache.size`,ot.size,{type:`gauge`}),st=0,ct=0,lt=0,ut=0,dt=0}function mt(e,t){let n=`${t}:${e}`,r=ot.get(n);if(r===void 0){let i=performance.now();if(r=k(e,t),lt+=performance.now()-i,ot.set(n,r),ct++,ot.size>2e4){let e=ot.keys();for(let t=0;t<5e3;t++){let t=e.next();if(t.done)break;ot.delete(t.value)}ut++}}else st++;return++dt>=ft&&pt(),r}function ht(e,t,n,r,i=!1){if(!t)return e;let a=Re(t),o=new RegExp(a,i?`g`:`gi`),s=n;return e.replace(/(<[^>]*>)|([^<]+)/g,(e,t,n)=>t||(n??``).replace(o,e=>{let t=s===r;return s++,`<mark class="diff-search-hl${t?` diff-search-current`:``}">${e}</mark>`}))}function gt(e,t,n,r=0,i=-1,a=!1){let o=mt(e,t);return n?ht(o,n,r,i,a):o}function _t(e,t,n){if(t.length===0)return e;let r=0,i=0;return e.replace(/(<[^>]*>)|([^<]+)/g,(e,a,o)=>{if(a)return a;let s=o??``,c=``,l=!1,u=0;for(;u<s.length;){let e;if(s[u]===`&`){let t=s.indexOf(`;`,u);t!==-1&&t-u<=10?(e=s.slice(u,t+1),u=t+1):(e=s[u],u++)}else e=s[u],u++;for(;i<t.length&&r>=t[i][1];)i++;let a=i<t.length&&r>=t[i][0]&&r<t[i][1];a&&!l?(c+=`<span class="${n}">`,l=!0):!a&&l&&(c+=`</span>`,l=!1),c+=e,r++}return l&&(c+=`</span>`),c})}function vt(e,t,n,r,i,a=0,o=-1,s=!1){let c=mt(e,t);return n&&n.length>0&&r&&(c=_t(c,n,r)),i&&(c=ht(c,i,a,o,s)),c}var yt=(0,P.memo)(function({left:e,right:t,lang:n,wrap:r,searchQuery:i,searchCaseSensitive:a,matchOffset:o,currentMatchIdx:s}){let c=i&&e?$(e.text,i,a):0,l=$e(e?.conflictRole),u=$e(t?.conflictRole),d=l??(e?.type===`del`?`hsl(var(--diff-removed) / 0.22)`:void 0),f=u??(t?.type===`add`?`hsl(var(--diff-added) / 0.22)`:void 0),p=l??(e?.type===`del`?`color-mix(in srgb, hsl(var(--diff-removed)) 22%, hsl(var(--card)))`:`hsl(var(--card))`),m=u??(t?.type===`add`?`color-mix(in srgb, hsl(var(--diff-added)) 22%, hsl(var(--card)))`:`hsl(var(--card))`);return(0,F.jsxs)(`div`,{className:`flex font-mono text-(length:--diff-font-size)`,style:r?{minHeight:`var(--diff-row-height)`}:{height:`var(--diff-row-height)`},children:[(0,F.jsxs)(`div`,{className:w(`flex flex-1 border-r border-border/30`,r?`items-start overflow-visible`:`items-center overflow-hidden`),style:d?{backgroundColor:d}:void 0,"data-pane":`left`,children:[(0,F.jsxs)(`div`,{className:`relative z-10 flex shrink-0 items-center`,style:{backgroundColor:p},children:[(0,F.jsx)(`span`,{className:`text-muted-foreground/40 w-11 shrink-0 pr-1 text-right select-none`,children:e?.oldNo??``}),(0,F.jsx)(`span`,{className:w(`w-4 shrink-0 select-none text-center`,e?.type===`del`?`text-diff-removed`:`text-foreground/80`),children:e?.type===`del`?`-`:e?` `:``})]}),e&&(0,F.jsx)(`span`,{className:w(r?`whitespace-pre-wrap break-all pr-4`:`whitespace-pre pr-4`,e.type===`del`?`text-diff-removed`:`text-foreground/80`),style:r?void 0:tt,dangerouslySetInnerHTML:{__html:vt(e.text,n,e.segments,`diff-word-del`,i,o??0,s??-1,a)}})]}),(0,F.jsxs)(`div`,{className:w(`flex flex-1`,r?`items-start overflow-visible`:`items-center overflow-hidden`),style:f?{backgroundColor:f}:void 0,"data-pane":`right`,children:[(0,F.jsxs)(`div`,{className:`relative z-10 flex shrink-0 items-center`,style:{backgroundColor:m},children:[(0,F.jsx)(`span`,{className:`text-muted-foreground/40 w-11 shrink-0 pr-1 text-right select-none`,children:t?.newNo??``}),(0,F.jsx)(`span`,{className:w(`w-4 shrink-0 select-none text-center`,t?.type===`add`?`text-diff-added`:`text-foreground/80`),children:t?.type===`add`?`+`:t?` `:``})]}),t&&(0,F.jsx)(`span`,{className:w(r?`whitespace-pre-wrap break-all pr-4`:`whitespace-pre pr-4`,t.type===`add`?`text-diff-added`:`text-foreground/80`),style:r?void 0:tt,dangerouslySetInnerHTML:{__html:vt(t.text,n,t.segments,`diff-word-add`,i,(o??0)+c,s??-1,a)}})]})]})}),bt=(0,P.memo)(function({left:e,center:t,right:n,lang:r,wrap:i,searchQuery:a,searchCaseSensitive:o,matchOffset:s,currentMatchIdx:c}){let l=a&&e?$(e.text,a,o):0,u=a&&t?$(t.text,a,o):0,d=i?`items-start overflow-visible`:`items-center overflow-hidden`,f=$e(e?.conflictRole),p=$e(n?.conflictRole),m=f??(e?.type===`del`?`hsl(var(--diff-removed) / 0.22)`:void 0),h=p??(n?.type===`add`?`hsl(var(--diff-added) / 0.22)`:void 0),ee=f??(e?.type===`del`?`color-mix(in srgb, hsl(var(--diff-removed)) 22%, hsl(var(--card)))`:`hsl(var(--card))`),g=p??(n?.type===`add`?`color-mix(in srgb, hsl(var(--diff-added)) 22%, hsl(var(--card)))`:`hsl(var(--card))`);return(0,F.jsxs)(`div`,{className:`flex font-mono text-(length:--diff-font-size)`,style:i?{minHeight:`var(--diff-row-height)`}:{height:`var(--diff-row-height)`},children:[(0,F.jsxs)(`div`,{className:w(`flex flex-1 border-r border-border/30`,d),style:m?{backgroundColor:m}:void 0,"data-pane":`left`,children:[(0,F.jsxs)(`div`,{className:`relative z-10 flex shrink-0 items-center`,style:{backgroundColor:ee},children:[(0,F.jsx)(`span`,{className:`text-muted-foreground/40 w-11 shrink-0 pr-1 text-right select-none`,children:e?.oldNo??``}),(0,F.jsx)(`span`,{className:w(`w-4 shrink-0 select-none text-center`,e?.type===`del`?`text-diff-removed`:`text-foreground/80`),children:e?.type===`del`?`-`:e?` `:``})]}),e&&(0,F.jsx)(`span`,{className:w(i?`whitespace-pre-wrap break-all pr-2`:`whitespace-pre pr-2`,e.type===`del`?`text-diff-removed`:`text-foreground/80`),style:i?void 0:tt,dangerouslySetInnerHTML:{__html:vt(e.text,r,e.segments,`diff-word-del`,a,s??0,c??-1,o)}})]}),(0,F.jsxs)(`div`,{className:w(`flex flex-1 border-r border-border/30`,d),"data-pane":`center`,children:[(0,F.jsx)(`div`,{className:`relative z-10 flex shrink-0 items-center`,style:{backgroundColor:et},children:(0,F.jsx)(`span`,{className:`text-muted-foreground/40 w-11 shrink-0 pr-1 text-right select-none`,children:t?.newNo??``})}),t&&(0,F.jsx)(`span`,{className:i?`text-foreground pr-2 break-all whitespace-pre-wrap`:`text-foreground pr-2 whitespace-pre`,style:i?void 0:tt,dangerouslySetInnerHTML:{__html:gt(t.text,r,a,(s??0)+l,c??-1,o)}})]}),(0,F.jsxs)(`div`,{className:w(`flex flex-1`,d),style:h?{backgroundColor:h}:void 0,"data-pane":`right`,children:[(0,F.jsxs)(`div`,{className:`relative z-10 flex shrink-0 items-center`,style:{backgroundColor:g},children:[(0,F.jsx)(`span`,{className:`text-muted-foreground/40 w-11 shrink-0 pr-1 text-right select-none`,children:n?.newNo??``}),(0,F.jsx)(`span`,{className:w(`w-4 shrink-0 select-none text-center`,n?.type===`add`?`text-diff-added`:`text-foreground/80`),children:n?.type===`add`?`+`:n?` `:``})]}),n&&(0,F.jsx)(`span`,{className:w(i?`whitespace-pre-wrap break-all pr-2`:`whitespace-pre pr-2`,n.type===`add`?`text-diff-added`:`text-foreground/80`),style:i?void 0:tt,dangerouslySetInnerHTML:{__html:vt(n.text,r,n.segments,`diff-word-add`,a,(s??0)+l+u,c??-1,o)}})]})]})}),xt=(0,P.memo)(function({line:e,lineIdx:t,lang:n,wrap:r,searchQuery:i,searchCaseSensitive:a,matchOffset:o,currentMatchIdx:s,selectable:c,selected:l,onToggle:u}){let d=nt(e),f=rt(e),p=it(e),m=e.type===`add`?`+`:e.type===`del`?`-`:` `,h=e.type===`add`||e.type===`del`,ee=at(e);return(0,F.jsxs)(`div`,{className:w(`flex font-mono text-(length:--diff-font-size)`,r?`items-start`:`items-center`,c&&`pl-1`),style:r?{minHeight:`var(--diff-row-height)`,...d}:{height:`var(--diff-row-height)`,...d},...c&&h&&t!=null?{"data-line-idx":t}:{},children:[c&&(0,F.jsx)(`span`,{className:`flex w-5 shrink-0 items-center justify-center`,"data-gutter":!0,children:h&&(0,F.jsx)(We,{state:l?`checked`:`unchecked`,onToggle:()=>t!=null&&u?.(t),"data-testid":`diff-line-checkbox-${t}`})}),(0,F.jsx)(`span`,{className:`text-muted-foreground/40 w-11 shrink-0 pt-px pr-1 text-right select-none`,"data-gutter":!0,children:e.oldNo??``}),(0,F.jsx)(`span`,{className:`text-muted-foreground/40 w-11 shrink-0 pt-px pr-1 text-right select-none`,"data-gutter":!0,children:e.newNo??``}),(0,F.jsx)(`span`,{className:w(`w-4 shrink-0 select-none pt-px text-center`,p),children:m}),(0,F.jsx)(`span`,{className:w(r?`whitespace-pre-wrap break-all pr-4`:`whitespace-pre pr-4`,p),dangerouslySetInnerHTML:{__html:vt(ee,f?`plaintext`:n,f?void 0:e.segments,e.type===`add`?`diff-word-add`:`diff-word-del`,i,o??0,s??-1,a)}})]})});function St(e,t,n,r){let[i,a]=(0,P.useState)(0);return(0,P.useEffect)(()=>{let e=t.current;if(!n||!e||r<=0){a(0);return}let i=()=>a(r+e.clientWidth);i();let o=new ResizeObserver(i);return o.observe(e),()=>o.disconnect()},[t,n,r]),(0,P.useEffect)(()=>{let r=e.current,i=t.current;if(!n||!r||!i)return;let a=!1,o=()=>{a||=(a=!0,r.style.setProperty(`--h-scroll`,`${i.scrollLeft}px`),!1)},s=e=>{let t=e.deltaX||(e.shiftKey?e.deltaY:0);t!==0&&(e.preventDefault(),i.scrollLeft+=t)};return i.addEventListener(`scroll`,o,{passive:!0}),r.addEventListener(`wheel`,s,{passive:!1}),r.style.setProperty(`--h-scroll`,`0px`),i.scrollLeft=0,()=>{i.removeEventListener(`scroll`,o),r.removeEventListener(`wheel`,s),r.style.removeProperty(`--h-scroll`)}},[e,t,n,r]),i}var Ct=null,wt=null,Tt=new Map,Et=500,Dt=125,Ot=new Set,kt=new Map;function At(e){return`${e}px "JetBrains Mono", ui-monospace, monospace`}function jt(e){return`${e}px "Geist Sans", sans-serif`}function Mt(e,t){return t+`\0`+e}async function Nt(){return Ct||(wt||=ee(()=>import(`./layout-DzX3u-Q7.js`).then(e=>(Ct=e,e)),[]),wt)}async function Pt(e){if(Ot.has(e))return!0;if(typeof document<`u`&&document.fonts?.check(e))return Ot.add(e),!0;let t=kt.get(e);if(t)return t;let n=(async()=>{if(typeof document>`u`||!document.fonts?.load)return!1;try{return await document.fonts.load(e),Ot.add(e),!0}catch{return!1}})();return kt.set(e,n),n}function Ft(){if(Tt.size<=Et)return;let e=Tt.keys();for(let t=0;t<Dt;t++){let t=e.next();if(t.done)break;Tt.delete(t.value)}}async function It(e,t,n){let r=Mt(e,t),i=Tt.get(r);if(i)return i;let a=await Nt();await Pt(t);let o=a.prepare(e,t,n);return Tt.set(r,o),Ft(),o}function Lt(e,t,n){if(!Ct)throw Error(`pretext not loaded — call ensurePretextLoaded() first`);return Ct.layout(e,t,n)}function Rt(e,t){return Tt.get(Mt(e,t))}function zt(){return Ct!==null}async function Bt(e,t,n){let r=n?.yieldEvery??5,i=0;for(let a=0;a<e.length&&!n?.signal?.aborted;a++)await It(e[a],t),i++,a>0&&a%r===0&&await new Promise(e=>setTimeout(e,0));return i}var Vt=(0,P.memo)(function({unifiedDiff:e,splitView:t=!1,viewMode:n,filePath:r,codeFolding:i=!0,contextLines:a=3,showMinimap:o=!1,wordWrap:s=!1,searchQuery:c,searchCaseSensitive:l=!1,currentMatchIndex:u=-1,onMatchCount:d,onResolveConflict:f,selectable:p=!1,selectedLines:m,onLineToggle:h,onHunkToggle:ee,onDragSelect:g,className:_,...te}){let v=n??(t?`split`:`unified`),ne=ie(e=>e.fontSize),y=re[ne],b=ae[ne],x=(0,P.useMemo)(()=>At(b),[b]),S=y,C=(0,P.useRef)(null),T=(0,P.useRef)(null),[oe,se]=(0,P.useState)(null),ce=(0,P.useCallback)(e=>{C.current=e,se(e)},[]),[le,ue]=(0,P.useState)(!1),[E,de]=(0,P.useState)(new Map),[D,pe]=(0,P.useState)(!1),[O,k]=(0,P.useState)(0),A=(0,P.useMemo)(()=>Ne(e),[e]),j=(0,P.useMemo)(()=>r?me(r):`plaintext`,[r]);(0,P.useEffect)(()=>{if(j===`plaintext`||j===`text`){ue(!0);return}let e=!1;return fe(j).then(()=>{e||ue(!0)}),()=>{e=!0}},[j]),(0,P.useEffect)(()=>{if(!s)return;let e=C.current;if(!e)return;let t=new ResizeObserver(e=>{for(let t of e)k(t.contentRect.width)});return t.observe(e),k(e.clientWidth),()=>t.disconnect()},[s]),(0,P.useEffect)(()=>{if(!s)return;let e=!1;return Nt().then(()=>{if(e)return;let t=A.lines.map(e=>e.text).filter(e=>e.length>0&&!Rt(e,x)),n=[...new Set(t)];n.length>0?Bt(n,x).then(()=>{e||pe(!0)}):pe(!0)}),()=>{e=!0}},[s,A.lines,x]),(0,P.useEffect)(()=>{if(v===`unified`)return;let e=C.current;if(!e)return;let t=[],n=()=>{for(let e of t)e.style.userSelect=``;t=[]},r=r=>{let i=window.getSelection();i&&!i.isCollapsed&&i.removeAllRanges(),n();let a=r.target.closest(`[data-pane]`);if(!a)return;let o=a.dataset.pane;e.querySelectorAll(`[data-pane]`).forEach(e=>{e.dataset.pane!==o&&(e.style.userSelect=`none`,t.push(e))})},i=t=>{e.contains(t.target)||n()};return e.addEventListener(`mousedown`,r),document.addEventListener(`mousedown`,i),()=>{e.removeEventListener(`mousedown`,r),document.removeEventListener(`mousedown`,i),n()}},[v]);let N=(0,P.useMemo)(()=>i?Pe(A.lines,a):[],[A.lines,i,a]),he=(0,P.useMemo)(()=>i?N.map((e,t)=>({...e,collapsed:E.has(t)?E.get(t):e.collapsed})):N,[N,E,i]),I=(0,P.useMemo)(()=>{if(!p)return new Map;let e=new Map,t=Array.from(A.hunkHeaders.keys()).toSorted((e,t)=>e-t);for(let n=0;n<t.length;n++){let r=t[n],i=n+1<t.length?t[n+1]:A.lines.length,a=[];for(let e=r;e<i;e++){let t=A.lines[e];t&&(t.type===`add`||t.type===`del`)&&a.push(e)}e.set(r,a)}return e},[p,A.hunkHeaders,A.lines]),L=(0,P.useMemo)(()=>{let e=new Map;for(let t of A.conflictBlocks)e.set(t.startLineIdx,t);return e},[A.conflictBlocks]),R=(0,P.useMemo)(()=>{if(!i){let e=[],t=Array.from(A.hunkHeaders.entries()).toSorted((e,t)=>e[0]-t[0]),n=0;for(let r=0;r<A.lines.length;r++){n<t.length&&t[n][0]===r&&(e.push({type:`hunk`,text:t[n][1],hunkStartIdx:t[n][0]}),n++);let i=L.get(r);i&&e.push({type:`conflict-actions`,block:i}),e.push({type:`line`,lineIdx:r})}return e}let e=Fe(he,A.lines,A.hunkHeaders,a);if(L.size>0){let t=[];for(let n of e){if(n.type===`line`){let e=L.get(n.lineIdx);e&&t.push({type:`conflict-actions`,block:e})}t.push(n)}return t}return e},[i,he,A.lines,A.hunkHeaders,a,L]),z=(0,P.useMemo)(()=>{if(v===`split`||v===`three-pane`){let e=[],t=0;for(;t<R.length;){let n=R[t];if(n.type===`hunk`)e.push({type:`hunk`,text:n.text,hunkStartIdx:n.hunkStartIdx}),t++;else if(n.type===`fold`)e.push(n),t++;else if(n.type===`conflict-actions`)e.push(n),t++;else{let r=n.lineIdx,i=n.lineIdx,a=t+1;for(;a<R.length&&R[a].type===`line`;)i=R[a].lineIdx,a++;if(v===`three-pane`)for(let t of Ie(A.lines,r,i))e.push({type:`three-pane-triple`,triple:t});else for(let t of Q(A.lines,r,i))e.push({type:`split-pair`,pair:t});t=a}}return e}return R.map(e=>e.type===`hunk`?{type:`hunk`,text:e.text,hunkStartIdx:e.hunkStartIdx}:e.type===`fold`||e.type===`conflict-actions`?e:{type:`unified-line`,line:A.lines[e.lineIdx],lineIdx:e.lineIdx})},[v,R,A.lines]),B=(0,P.useMemo)(()=>{if(!c)return null;let e=c,t=[];for(let n of z){let r=0;n.type===`unified-line`?r=$(n.line.text,e,l):n.type===`split-pair`?(n.pair.left&&(r+=$(n.pair.left.text,e,l)),n.pair.right&&(r+=$(n.pair.right.text,e,l))):n.type===`three-pane-triple`&&(n.triple.left&&(r+=$(n.triple.left.text,e,l)),n.triple.center&&(r+=$(n.triple.center.text,e,l)),n.triple.right&&(r+=$(n.triple.right.text,e,l))),t.push(r)}let n=[0];for(let e=0;e<t.length;e++)n.push(n[e]+t[e]);let r=n[n.length-1],i=[];for(let e=0;e<t.length;e++)for(let n=0;n<t[e];n++)i.push(e);return{perRow:t,prefixSum:n,total:r,matchToRow:i}},[z,c,l]);(0,P.useEffect)(()=>{d?.(B?.total??0)},[B?.total,d]),(0,P.useEffect)(()=>{if(!B||u<0||u>=B.total)return;let e=B.matchToRow[u];e!==void 0&&U.scrollToIndex(e,{align:`center`})},[u,B]);let V=(0,P.useMemo)(()=>{if(!s||!D||O<=0||!zt())return null;let e=v===`unified`?120:70,t=O/(v===`three-pane`?3:v===`split`?2:1)-e;if(t<=0)return null;let n=new Map;for(let e=0;e<z.length;e++){let r=z[e],i=1;if(r.type===`unified-line`){let e=Rt(r.line.text,x);if(e){let{lineCount:n}=Lt(e,t,S);i=Math.max(i,n)}}else if(r.type===`split-pair`){for(let e of[r.pair.left,r.pair.right])if(e){let n=Rt(e.text,x);if(n){let{lineCount:e}=Lt(n,t,S);i=Math.max(i,e)}}}else if(r.type===`three-pane-triple`){for(let e of[r.triple.left,r.triple.center,r.triple.right])if(e){let n=Rt(e.text,x);if(n){let{lineCount:e}=Lt(n,t,S);i=Math.max(i,e)}}}i>1&&n.set(e,i*S)}return n},[s,D,O,v,z,x,S]),H=(0,P.useCallback)(e=>{de(t=>{let n=new Map(t),r=n.has(e)?n.get(e):N[e].collapsed;return n.set(e,!r),n})},[N]),U=M({count:z.length,getScrollElement:()=>C.current,estimateSize:e=>V?V.get(e)??y:y,overscan:30});(0,P.useLayoutEffect)(()=>{U.measure()},[s,v,y]);let W=!s&&v!==`unified`,ge=(0,P.useMemo)(()=>{if(s)return 0;let e=0,t=``;for(let n of A.lines)n.text.length>e&&(e=n.text.length,t=n.text);if(e===0)return 0;let n=v===`unified`?120:80;try{let e=document.createElement(`canvas`).getContext(`2d`);if(e){e.font=`${b}px monospace`;let r=e.measureText(t);return Math.ceil(r.width)+n}}catch{}let r=b*.655;return Math.ceil(e*r)+n},[s,A.lines,v,b]),G=St(C,T,W,ge),K=le?j:`plaintext`,q=A.lines.length>5e4?`plaintext`:K,_e=A.lines.length>0,J=(0,P.useRef)({active:!1,mode:!0,startLineIdx:-1}),ve=(0,P.useCallback)(e=>{let t=e.target.closest(`[data-line-idx]`);if(!t)return null;let n=Number(t.getAttribute(`data-line-idx`));return Number.isFinite(n)?n:null},[]),ye=(0,P.useCallback)(e=>{if(!p||!g||e.button!==0||!e.target.closest(`[data-gutter]`))return;let t=ve(e);if(t==null)return;let n=!m?.has(t);J.current={active:!0,mode:n,startLineIdx:t},g(t,t,n),e.preventDefault()},[p,g,m,ve]),Y=(0,P.useCallback)(e=>{if(!J.current.active||!g)return;let t=ve(e);t!=null&&g(J.current.startLineIdx,t,J.current.mode)},[g,ve]),X=(0,P.useCallback)(()=>{J.current={active:!1,mode:!0,startLineIdx:-1}},[]);(0,P.useEffect)(()=>{if(!p)return;let e=()=>{J.current={active:!1,mode:!0,startLineIdx:-1}};return window.addEventListener(`mouseup`,e),()=>window.removeEventListener(`mouseup`,e)},[p]);let be=(0,P.useMemo)(()=>{let e=[];for(let t=0;t<z.length;t++){let n=z[t];n.type===`hunk`&&e.push({index:t,text:n.text,hunkStartIdx:n.hunkStartIdx})}return e},[z]),[Z,xe]=(0,P.useState)(null);(0,P.useEffect)(()=>{let e=C.current;if(!e||be.length===0)return;let t=()=>{let t=e.scrollTop,n=null;for(let e of be){let r=U.measurementsCache[e.index];if((r?r.start:e.index*y)+y<=t)n=e;else break}xe(n)};return t(),e.addEventListener(`scroll`,t,{passive:!0}),()=>e.removeEventListener(`scroll`,t)},[be,U,y]);let Se=v===`unified`?`w-[88px]`:`w-[54px]`,Ce=(0,F.jsxs)(`div`,{className:w(`flex flex-col`,o?`flex-1 min-w-0`:_),"data-testid":te[`data-testid`],children:[(0,F.jsxs)(`div`,{ref:ce,className:w(`flex-1 min-h-0 relative`,W?`overflow-y-auto overflow-x-hidden`:`overflow-auto`),onMouseDown:p?ye:void 0,onMouseMove:p?Y:void 0,onMouseUp:p?X:void 0,onClickCapture:p?e=>{e.target.closest(`[data-gutter]`)&&(e.stopPropagation(),e.preventDefault())}:void 0,children:[Z&&(0,F.jsxs)(`div`,{className:w(`sticky top-0 z-10 flex select-none items-center bg-accent/95 font-mono text-(length:--diff-font-size) text-muted-foreground backdrop-blur-xs border-b border-border/50 px-1`),style:{height:y,marginBottom:-y},"data-testid":`diff-sticky-hunk`,children:[p&&Z.hunkStartIdx!=null?(()=>{let e=I.get(Z.hunkStartIdx)??[],t=e.filter(e=>m?.has(e)).length,n=e.length>0&&t===e.length;return(0,F.jsx)(`span`,{className:`flex w-5 shrink-0 items-center justify-center`,children:(0,F.jsx)(We,{state:t>0&&t<e.length?`indeterminate`:n?`checked`:`unchecked`,onToggle:()=>{e.length>0&&ee?.(e)},"data-testid":`diff-sticky-hunk-checkbox`})})})():p?(0,F.jsx)(`span`,{className:`w-5 shrink-0`}):null,(0,F.jsx)(`span`,{className:w(Se,`shrink-0`)}),(0,F.jsx)(`span`,{className:`truncate`,children:Z.text})]}),(0,F.jsx)(`div`,{style:{height:U.getTotalSize(),minWidth:`100%`,width:ge>0&&!W?ge:`100%`,position:`relative`},children:U.getVirtualItems().map(e=>{let t=z[e.index],n=V?.get(e.index)??y;return(0,F.jsx)(`div`,{style:{position:`absolute`,top:0,left:0,width:`100%`,...s?{minHeight:n}:{height:n},transform:`translateY(${e.start}px)`},...s?{ref:U.measureElement,"data-index":e.index}:{},children:t.type===`conflict-actions`?(0,F.jsx)(Ge,{block:t.block,onResolve:f}):t.type===`hunk`?(0,F.jsxs)(`div`,{className:w(`flex select-none items-center bg-accent font-mono text-(length:--diff-font-size) text-muted-foreground px-1`),style:{height:y},children:[p&&t.hunkStartIdx!=null?(()=>{let e=I.get(t.hunkStartIdx)??[],n=e.filter(e=>m?.has(e)).length,r=e.length>0&&n===e.length;return(0,F.jsx)(`span`,{className:`flex w-5 shrink-0 items-center justify-center`,children:(0,F.jsx)(We,{state:n>0&&n<e.length?`indeterminate`:r?`checked`:`unchecked`,onToggle:()=>{e.length>0&&ee?.(e)},"data-testid":`diff-hunk-checkbox-${t.hunkStartIdx}`})})})():p?(0,F.jsx)(`span`,{className:`w-5 shrink-0`}):null,(0,F.jsx)(`span`,{className:w(Se,`shrink-0`)}),(0,F.jsx)(`span`,{className:`truncate`,children:t.text})]}):t.type===`fold`?(0,F.jsxs)(`button`,{className:w(`flex w-full select-none items-center bg-muted/50 font-mono text-(length:--diff-font-size) text-muted-foreground transition-colors hover:bg-accent/50 hover:text-foreground px-1`),style:{height:y},onClick:()=>H(t.sectionIdx),"data-testid":`diff-fold-toggle`,children:[p&&(0,F.jsx)(`span`,{className:`w-5 shrink-0`}),(0,F.jsx)(`span`,{className:w(Se,`shrink-0`)}),(0,F.jsxs)(`span`,{className:`truncate`,children:[`@@ -`,t.oldStart,`,`,t.lineCount,` +`,t.newStart,`,`,t.lineCount,` @@ ·`,` `,t.lineCount,` lines hidden`]})]}):t.type===`three-pane-triple`?(0,F.jsx)(bt,{left:t.triple.left,center:t.triple.center,right:t.triple.right,lang:q,wrap:s,searchQuery:c,searchCaseSensitive:l,matchOffset:B?.prefixSum[e.index],currentMatchIdx:u}):t.type===`split-pair`?(0,F.jsx)(yt,{left:t.pair.left,right:t.pair.right,lang:q,wrap:s,searchQuery:c,searchCaseSensitive:l,matchOffset:B?.prefixSum[e.index],currentMatchIdx:u}):(0,F.jsx)(xt,{line:t.line,lineIdx:t.lineIdx,lang:q,wrap:s,searchQuery:c,searchCaseSensitive:l,matchOffset:B?.prefixSum[e.index],currentMatchIdx:u,selectable:p,selected:p?m?.has(t.lineIdx):void 0,onToggle:h})},e.index)})})]}),W&&(0,F.jsx)(`div`,{ref:T,className:`shrink-0 overflow-x-auto overflow-y-hidden`,style:{height:10},"data-testid":`diff-h-scrollbar`,children:(0,F.jsx)(`div`,{style:{width:G,height:1}})})]});return _e?o?(0,F.jsxs)(`div`,{className:w(`flex`,_),children:[Ce,(0,F.jsx)(qe,{lines:A.lines,scrollElement:oe,totalSize:U.getTotalSize()})]}):Ce:(0,F.jsx)(`p`,{className:`text-muted-foreground p-4 text-xs`,"data-testid":te[`data-testid`],children:`No diff available`})});function Ht(e){let t=e.toLowerCase().replace(/[_-]/g,``);return t===`todowrite`||t===`updatetodos`||t===`towrite`}function Ut(e){let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n,r=typeof e.content==`string`&&e.content||typeof e.title==`string`&&e.title||typeof e.description==`string`&&e.description||``;if(!r)continue;let i=e.status===`completed`||e.status===`in_progress`?e.status:e.status===`cancelled`?`completed`:`pending`;t.push({content:r,status:i,...typeof e.activeForm==`string`?{activeForm:e.activeForm}:{}})}return t.length>0?t:null}function Wt(e){if(!e)return{};if(typeof e==`string`)try{return JSON.parse(e)}catch{return{value:e}}return e}function Gt(e){for(let t of[`todos`,`entries`,`items`]){let n=e[t];if(Array.isArray(n)){let e=Ut(n);if(e)return e}}let t=e.outcome;if(t&&typeof t==`object`){let e=t;if(Array.isArray(e.todos)){let t=Ut(e.todos);if(t)return t}}return null}function Kt(e,t){return e===`Read`||e===`Write`||e===`Edit`?t.file_path??null:null}function qt(e){let t=e.questions;return Array.isArray(t)?t:null}function Jt(e,t,n){switch(e){case`Read`:case`Write`:case`Edit`:return t.file_path??null;case`Bash`:return t.command??null;case`Glob`:return t.pattern??null;case`Grep`:return t.pattern??null;case`Task`:case`Agent`:return t.description??null;case`WebSearch`:return t.query??null;case`WebFetch`:return t.url??null;case`NotebookEdit`:return t.notebook_path??null;case`TodoWrite`:case`updateTodos`:case`todo_write`:{let e=Gt(t);return e?`${e.filter(e=>e.status===`completed`).length}/${e.length} ${n(`tools.done`)}`:null}case`AskUserQuestion`:{let e=qt(t);return e?`${e.length} ${e.length>1?n(`tools.questionsPlural`):n(`tools.questions`)}`:null}case`Think`:{let e=(t.content??t.description??``).split(`
|