cogpit 3.5.4 → 3.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +11 -5
  2. package/dist/cli-runtime.js +2916 -2294
  3. package/dist/cli.js +1 -1
  4. package/dist/instance-worker.js +510 -254
  5. package/dist/web/assets/AgentCheckDialog-DdcPaEtO.js +1 -0
  6. package/dist/web/assets/{AutomationsPanel-DTiDsq54.js → AutomationsPanel-DHA6W_CZ.js} +1 -1
  7. package/dist/web/assets/{CogpitBlock-Hk57z10V.js → CogpitBlock-CN0s_qTc.js} +15 -15
  8. package/dist/web/assets/CommandPaletteHost-D5mRzqIm.js +1 -0
  9. package/dist/web/assets/{ConfigBrowser-C77Ydij0.js → ConfigBrowser-CXxrxWWl.js} +1 -1
  10. package/dist/web/assets/{CrewPanel-BzEJLKMd.js → CrewPanel-DJM6YaDN.js} +1 -1
  11. package/dist/web/assets/{HighlightedEditor-D1S-wotA.js → HighlightedEditor-G-YJnadM.js} +1 -1
  12. package/dist/web/assets/KeyboardShortcutsDialog-CcyskXfr.js +1 -0
  13. package/dist/web/assets/MissionHome-o1MjTkAZ.js +2 -0
  14. package/dist/web/assets/{MobileFileChanges-DovO__Ap.js → MobileFileChanges-SeyE4VAV.js} +1 -1
  15. package/dist/web/assets/{PluginsDialog-o6ySRFLf.js → PluginsDialog-BPHFbLGS.js} +1 -1
  16. package/dist/web/assets/{PreviewPanel-kD79kXYD.js → PreviewPanel-Cb6P4TQ0.js} +1 -1
  17. package/dist/web/assets/{ProjectFilesPanel-CwEqOA2q.js → ProjectFilesPanel-BIEcyM9w.js} +3 -3
  18. package/dist/web/assets/{ProjectSwitcherModal-BnWbJWEX.js → ProjectSwitcherModal-CXI-isj1.js} +1 -1
  19. package/dist/web/assets/{TerminalOutput-DsK-7nR8.js → TerminalOutput-Cmf1kDEH.js} +1 -1
  20. package/dist/web/assets/{ThemeSelectorModal-D5SBWDm5.js → ThemeSelectorModal-DKvI2x91.js} +1 -1
  21. package/dist/web/assets/{WorkflowsPanel-NU49178V.js → WorkflowsPanel-B7bJ_vvB.js} +1 -1
  22. package/dist/web/assets/WorktreePanel-Bu2NThZy.js +1 -0
  23. package/dist/web/assets/{edition-ui-7WkqSCbs.js → edition-ui-CpK32xJF.js} +1 -1
  24. package/dist/web/assets/index-BYVl1VlW.js +515 -0
  25. package/dist/web/assets/{index-BgZ8qUzM.js → index-DUyjpORE.js} +2 -2
  26. package/dist/web/assets/index-N7rDyHyl.js +2 -0
  27. package/dist/web/assets/index-RGkLLDnk.css +1 -0
  28. package/dist/web/assets/{index-CevokSRq.js → index-TyUw7tBu.js} +2 -2
  29. package/dist/web/assets/index-lC5dVkKa.js +1 -0
  30. package/dist/web/assets/session-parser.worker-tdry_1oJ.js +43 -0
  31. package/dist/web/assets/{switch-DI9dp0Ya.js → switch-DFZA-ROd.js} +1 -1
  32. package/dist/web/assets/{vendor-ui-Dc_kJXxz.js → vendor-ui-B0az9ATE.js} +220 -200
  33. package/dist/web/index.html +4 -4
  34. package/package.json +1 -1
  35. package/dist/web/assets/CommandPaletteHost-BYfieK7H.js +0 -1
  36. package/dist/web/assets/KeyboardShortcutsDialog-B_DSi5JO.js +0 -1
  37. package/dist/web/assets/MissionHome-B3uYgylE.js +0 -2
  38. package/dist/web/assets/WorktreePanel-DPk5b1Os.js +0 -1
  39. package/dist/web/assets/index-Bg4A-xl7.js +0 -510
  40. package/dist/web/assets/index-C2tUYo8z.js +0 -1
  41. package/dist/web/assets/index-DIuobrPN.js +0 -2
  42. package/dist/web/assets/index-DMO9bL9w.css +0 -1
  43. package/dist/web/assets/session-parser.worker-DCsmYUeX.js +0 -41
@@ -8,17 +8,17 @@
8
8
  <meta name="apple-mobile-web-app-capable" content="yes" />
9
9
  <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
10
10
  <meta name="theme-color" content="#09090b" />
11
- <title>Cogpit - Agent Session Dashboard</title>
11
+ <title>Cogpit</title>
12
12
  <style>
13
13
  html, body, #root { height: 100%; height: 100dvh; margin: 0; overflow: hidden; }
14
14
  .dark body { background: var(--canvas, #09090b); color: var(--foreground, #fafafa); }
15
15
  body { background: var(--canvas, #fafafa); color: var(--foreground, #09090b); }
16
16
  </style>
17
- <script type="module" crossorigin src="/assets/index-Bg4A-xl7.js"></script>
17
+ <script type="module" crossorigin src="/assets/index-BYVl1VlW.js"></script>
18
18
  <link rel="modulepreload" crossorigin href="/assets/vendor-react-gGw_S5I_.js">
19
- <link rel="modulepreload" crossorigin href="/assets/vendor-ui-Dc_kJXxz.js">
19
+ <link rel="modulepreload" crossorigin href="/assets/vendor-ui-B0az9ATE.js">
20
20
  <link rel="modulepreload" crossorigin href="/assets/vendor-markdown-BEJ8yVzA.js">
21
- <link rel="stylesheet" crossorigin href="/assets/index-DMO9bL9w.css">
21
+ <link rel="stylesheet" crossorigin href="/assets/index-RGkLLDnk.css">
22
22
  <script src="/theme-bootstrap.js"></script>
23
23
  </head>
24
24
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cogpit",
3
- "version": "3.5.4",
3
+ "version": "3.5.5",
4
4
  "description": "Run Cogpit's local Claude Code, Codex, and GitHub Copilot CLI interface without installing it",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1 +0,0 @@
1
- import{c as ie,j as u,r as M}from"./vendor-react-gGw_S5I_.js";import{bb as h,bc as Z,x as ue,bd as he,be as ge,bf as fe,bg as ve,bh as we,bi as be,bj as Ce,bk as Se,W as je,bl as ye,bm as xe,aH as ee,aY as p,bn as Te,a$ as Pe,bo as Oe,bp as ke,bq as Ne,br as Fe,bs as $e,F as Ee}from"./index-Bg4A-xl7.js";import{bg as Ie,dd as Re,bT as te,ak as Ae,cS as De,cO as Le,bl as He,cl as Me,b5 as ne,a7 as Be,c1 as qe,aB as Ge,cF as Ke,cx as We,de as ze,cu as Ue,bP as _e,c7 as ae,df as pe,cz as Ve,cT as Xe,dg as Ye,dh as Je,aF as Qe,a3 as Ze,aT as oe,co as et,c2 as tt,aa as nt}from"./vendor-ui-Dc_kJXxz.js";import"./vendor-markdown-BEJ8yVzA.js";function a(t,e,s,c,l,m,d){return{id:t,label:e,icon:c,run:l,shortcut:m,description:d,value:`${e} ${s}`}}function V(...t){return t.filter(e=>e!==!1&&e!==void 0)}function at(t){const e=ie.c(40);let s,c,l,m,d,w,b,r,C,g,j,f,y,N,x;if(e[0]!==t){const I=V(a("home","Go to Mission Control","home overview dashboard",Le,t.onGoHome),a("mission-control",t.showMission?"Exit Mission Control":"Open Mission Control","live sessions blocked waiting answer everything at once",De,t.onToggleMissionControl,h("missionControl")),...(t.extraActions??[]).map(ot),a("new-session","Start a new session","project agent chat create",Ie,t.onNewSession,h("newSession")),t.onDuplicateSession&&a("duplicate-session","Duplicate this session","copy fork clone branch thread",Re,t.onDuplicateSession),t.canFocusComposer&&a("focus-composer","Focus message composer","chat prompt input",te,t.onFocusComposer,h("focusComposer")),t.onFindInConversation&&a("find-in-conversation","Find in conversation","search text transcript turns matches",Ae,t.onFindInConversation,h("findInConversation"))),F=(t.projects??[]).slice(0,8).map(n=>a(`project-${n.dirName}`,n.shortName,`${n.path} ${n.dirName} project workspace`,He,()=>{var i;return(i=t.onOpenProject)==null?void 0:i.call(t,n.dirName)},void 0,`${n.path} · ${n.sessionCount} session${n.sessionCount===1?"":"s"}`)),$=(t.recentSessions??[]).slice(0,10).map(n=>{const v=(n.aiTitle||n.name||n.slug||n.lastUserMessage||n.firstUserMessage||n.sessionId).replace(/\s+/g," ").trim().slice(0,160)||n.sessionId,L=[n.projectShortName,n.gitBranch].filter(Boolean).join(" · ");return a(`session-${n.dirName}-${n.fileName}`,v,`${n.projectShortName} ${n.cwd??""} ${n.gitBranch??""} ${n.sessionId} recent thread conversation`,te,()=>{var q;return(q=t.onOpenSession)==null?void 0:q.call(t,n.dirName,n.fileName)},void 0,L)}),R=t.devices??[],E=R.length>1&&t.onSwitchDevice?R.slice(0,Z.length).map((n,i)=>a(`device-${n.id}`,n.isActive?`${n.name} (current)`:`Switch to ${n.name}`,`device machine host remote ${n.id}`,n.isLocal?Me:ne,()=>{var v;return(v=t.onSwitchDevice)==null?void 0:v.call(t,n.id)},h(Z[i]))):[],o=V(a("toggle-sidebar",t.showSidebar?"Hide session sidebar":"Show session sidebar","projects navigation panel",ze,t.onToggleSidebar,h("toggleSidebar")),t.hasSession&&a("toggle-stats",t.showStats?"Hide session details":"Show session details","stats tokens usage panel",We,t.onToggleStats,h("toggleStats")),t.onToggleProjectFiles&&a("project-files",t.showProjectFiles?"Close project files":"Open project files","browse edit save workspace source code",Ke,t.onToggleProjectFiles,h("projectFiles")),t.onToggleBrowser&&a("toggle-browser",t.showBrowser?"Hide browser":"Show browser","web page live view browse panel",Ge,t.onToggleBrowser),t.hasFileChanges&&a("toggle-file-changes",t.showFileChanges?"Hide file changes":"Show file changes","diff edits review panel",qe,t.onToggleFileChanges),t.supportsWorktrees&&t.canOpenTerminal&&a("toggle-worktrees",t.showWorktrees?"Hide worktrees":"Show worktrees","git branches panel",Be,t.onToggleWorktrees)),A=V(t.onOpenProjectInEditor&&a("open-project-editor","Open project in editor","code cursor vscode zed workspace",tt,t.onOpenProjectInEditor),t.onRevealProject&&a("reveal-project","Reveal project in file manager","finder explorer folder directory",et,t.onRevealProject),t.onCopyResumeCommand&&a("copy-resume-command","Copy resume command","cli claude codex copilot terminal clipboard continue session",oe,t.onCopyResumeCommand),t.onCopyProjectPath&&a("copy-project-path","Copy project path","workspace directory clipboard",oe,t.onCopyProjectPath),t.onOpenIntegratedTerminal&&a("integrated-terminal","New integrated terminal","embedded shell command line process panel",Ze,t.onOpenIntegratedTerminal,h("newIntegratedTerminal")),t.canOpenTerminal&&a("terminal","Open in system terminal","external shell command line app",Qe,t.onOpenTerminal,h("systemTerminal")),t.onTogglePreview&&a("preview","Toggle development preview","browser localhost dev server website",Je,t.onTogglePreview,h("preview")),t.onOpenKeyboardShortcuts&&a("keyboard-shortcuts","Customize keyboard shortcuts","keybindings hotkeys settings",Ye,t.onOpenKeyboardShortcuts),t.onOpenConfig&&a("config",t.showConfig?"Close agent configuration":"Open agent configuration","skills commands claude settings files",Xe,t.onOpenConfig),a("settings","Open Cogpit settings","preferences network",Ve,t.onOpenSettings),a("theme","Change theme & chat width","appearance light dark oled width narrow wide",pe,t.onOpenTheme,h("themeSelector")),a("expand","Expand all groups","conversation details",ae,t.onExpandAll,h("expandAll")),a("expand-payloads","Expand all tool payloads","raw input result diff conversation details",ae,t.onExpandToolPayloads,h("expandToolPayloads")),a("collapse","Collapse all","conversation groups payloads details",_e,t.onCollapseAll),t.onKillAll&&a("kill-all","Kill all agent processes","stop terminate halt everything runaway",Ue,t.onKillAll),t.onOpenDevices&&a("manage-devices","Manage devices…","remote machines hub hosts edit rename remove switch",nt,()=>{var n;return(n=t.onOpenDevices)==null?void 0:n.call(t,"manage")}),t.onOpenDevices&&a("add-device","Add device…","remote machine hub host connect pair new",ne,()=>{var n;return(n=t.onOpenDevices)==null?void 0:n.call(t,"add")})),k=[{value:"Navigation",items:I},...$.length>0?[{value:"Recent sessions",items:$}]:[],...F.length>0?[{value:"Projects",items:F}]:[],...E.length>0?[{value:"Devices",items:E}]:[],{value:"View",items:o},{value:"Tools",items:A}],D=function(i){t.onOpenChange(!1),i.run()};l=ve,y=t.open,N=t.onOpenChange,x="Command palette",w="Search for a Cogpit action to run.",b="max-w-xl",c=we,C="Search commands",g=!0,e[16]===Symbol.for("react.memo_cache_sentinel")?(j=u.jsx(be,{"aria-label":"Search commands",autoFocus:!0,placeholder:"Search commands..."}),e[16]=j):j=e[16],e[17]!==t.loadingNavigation?(f=t.loadingNavigation&&u.jsxs("div",{className:"motion-enter flex items-center gap-2 px-3 py-2 text-xs text-muted-foreground",role:"status",children:[u.jsx(ue,{className:"size-3.5"}),"Loading projects and sessions..."]}),e[17]=t.loadingNavigation,e[18]=f):f=e[18],s=Ce,m="max-h-[min(26rem,60vh)]",e[19]===Symbol.for("react.memo_cache_sentinel")?(d=u.jsx(Se,{children:"No matching actions."}),e[19]=d):d=e[19],r=k.map(n=>u.jsx(he,{heading:n.value,children:n.items.map(i=>{const v=i.icon;return u.jsxs(ge,{value:i.value,onSelect:()=>D(i),children:[u.jsx(v,{"aria-hidden":"true"}),u.jsxs("span",{className:"min-w-0 flex-1",children:[u.jsx("span",{className:"block truncate",children:i.label}),i.description&&u.jsx("span",{className:"block truncate text-xs text-muted-foreground",children:i.description})]}),i.shortcut&&u.jsx(fe,{children:i.shortcut})]},i.id)})},n.value)),e[0]=t,e[1]=s,e[2]=c,e[3]=l,e[4]=m,e[5]=d,e[6]=w,e[7]=b,e[8]=r,e[9]=C,e[10]=g,e[11]=j,e[12]=f,e[13]=y,e[14]=N,e[15]=x}else s=e[1],c=e[2],l=e[3],m=e[4],d=e[5],w=e[6],b=e[7],r=e[8],C=e[9],g=e[10],j=e[11],f=e[12],y=e[13],N=e[14],x=e[15];let T;e[20]!==s||e[21]!==m||e[22]!==d||e[23]!==r?(T=u.jsxs(s,{className:m,children:[d,r]}),e[20]=s,e[21]=m,e[22]=d,e[23]=r,e[24]=T):T=e[24];let P;e[25]!==c||e[26]!==T||e[27]!==C||e[28]!==g||e[29]!==j||e[30]!==f?(P=u.jsxs(c,{label:C,loop:g,children:[j,f,T]}),e[25]=c,e[26]=T,e[27]=C,e[28]=g,e[29]=j,e[30]=f,e[31]=P):P=e[31];let O;return e[32]!==l||e[33]!==w||e[34]!==b||e[35]!==P||e[36]!==y||e[37]!==N||e[38]!==x?(O=u.jsx(l,{open:y,onOpenChange:N,title:x,description:w,className:b,children:P}),e[32]=l,e[33]=w,e[34]=b,e[35]=P,e[36]=y,e[37]=N,e[38]=x,e[39]=O):O=e[39],O}function ot(t){return a(t.id,t.label,t.keywords,t.icon,t.onSelect)}async function se(t,e){const s=await Ee(t,{signal:e});if(!s.ok)throw new Error(`Request failed (${s.status})`);const c=await s.json();return Array.isArray(c)?c:[]}function rt(t){var X;const e=ie.c(51);let s,c,l,m,d,w;e[0]!==t?({open:l,currentProjectDirName:s,projectCwd:d,onProcessStarted:c,launchTerminalRequest:w,...m}=t,e[0]=t,e[1]=s,e[2]=c,e[3]=l,e[4]=m,e[5]=d,e[6]=w):(s=e[1],c=e[2],l=e[3],m=e[4],d=e[5],w=e[6]);const b=w===void 0?0:w,r=je();let C;e[7]===Symbol.for("react.memo_cache_sentinel")?(C=[],e[7]=C):C=e[7];const[g,j]=M.useState(C);let f;e[8]===Symbol.for("react.memo_cache_sentinel")?(f=[],e[8]=f):f=e[8];const[y,N]=M.useState(f),[x,T]=M.useState(!1),P=M.useRef(0),O=ye();let I,F;e[9]!==O||e[10]!==l?(I=()=>{if(!l)return;const S=new AbortController,B=Pe();return T(!0),Promise.allSettled([se("/api/projects",S.signal),se(Oe({limit:"12",perProject:"3"},O),S.signal)]).then(me=>{const[Y,J]=me;if(S.signal.aborted)return;const Q=J.status==="fulfilled"?J.value:[];ke(Q,B),j(Y.status==="fulfilled"?Y.value:[]),N(Q),T(!1)}),()=>S.abort()},F=[l,O],e[9]=O,e[10]=l,e[11]=I,e[12]=F):(I=e[11],F=e[12]),M.useEffect(I,F);let $;e[13]!==g?($=xe(g),e[13]=g,e[14]=$):$=e[14];const R=$;let E;e:{if(d){E=d;break e}if(!s){E=null;break e}let S;e[15]!==s||e[16]!==g?(S=((X=g.find(B=>B.dirName===s))==null?void 0:X.path)??null,e[15]=s,e[16]=g,e[17]=S):S=e[17],E=S}const o=E;let A;e[18]!==c||e[19]!==r||e[20]!==o?(A=()=>{if(!o)return;const S=r.spawnTerminal({cwd:o}),B=o.replace(/\/+$/,"").split("/").at(-1)||"Terminal";c({id:S,name:B,type:"terminal",status:"running",source:o})},e[18]=c,e[19]=r,e[20]=o,e[21]=A):A=e[21];const k=A;let D,n;e[22]!==k||e[23]!==b||e[24]!==r.status||e[25]!==o?(n=()=>{b<=P.current||!o||r.status!=="connected"||(P.current=b,k())},D=[k,b,r.status,o],e[22]=k,e[23]=b,e[24]=r.status,e[25]=o,e[26]=D,e[27]=n):(D=e[26],n=e[27]),M.useEffect(n,D);let i;e[28]!==s||e[29]!==o?(i={path:o,dirName:s},e[28]=s,e[29]=o,e[30]=i):i=e[30];const v=i;let L;e[31]!==v?(L=()=>Ne(v),e[31]=v,e[32]=L):L=e[32];const q=L;let G;e[33]!==v?(G=()=>Fe(v),e[33]=v,e[34]=G):G=e[34];const le=G,ce=!ee()&&p("hostFiles"),re=p("hostFiles")&&(!ee()||Te());let K;e[35]!==o?(K=()=>{o&&$e(o)},e[35]=o,e[36]=K):K=e[36];const de=K;let H;e[37]!==k||e[38]!==r.status||e[39]!==o?(H=o&&r.status==="connected"&&p("terminal")?k:void 0,e[37]=k,e[38]=r.status,e[39]=o,e[40]=H):H=e[40];const z=o&&re?q:void 0,U=o&&ce?le:void 0,_=o?de:void 0;let W;return e[41]!==x||e[42]!==l||e[43]!==m||e[44]!==y||e[45]!==R||e[46]!==H||e[47]!==z||e[48]!==U||e[49]!==_?(W=u.jsx(at,{...m,open:l,projects:R,recentSessions:y,loadingNavigation:x,onOpenIntegratedTerminal:H,onOpenProjectInEditor:z,onRevealProject:U,onCopyProjectPath:_}),e[41]=x,e[42]=l,e[43]=m,e[44]=y,e[45]=R,e[46]=H,e[47]=z,e[48]=U,e[49]=_,e[50]=W):W=e[50],W}export{rt as CommandPaletteHost};
@@ -1 +0,0 @@
1
- import{c as O,j as t,r as E}from"./vendor-react-gGw_S5I_.js";import{o as H,bB as $,bC as T,bD as J,B as P,bE as Q,bF as Y,n as _,l as q,D as M,j as U,S as V,ax as W,az as X,aw as Z,bG as ee,G as te,I as se,m as ae,bH as le,bI as ne,bJ as re}from"./index-Bg4A-xl7.js";import{bJ as F,dg as oe,ak as ce}from"./vendor-ui-Dc_kJXxz.js";import"./vendor-markdown-BEJ8yVzA.js";const ie=new Set(["Alt","Control","Meta","Shift"]);function pe(e){const s=O.c(6),{open:f,onOpenChange:l}=e,x=f?"open":"closed";let a;s[0]!==x?(a=t.jsx(de,{},x),s[0]=x,s[1]=a):a=s[1];let r;return s[2]!==l||s[3]!==f||s[4]!==a?(r=t.jsx(H,{open:f,onOpenChange:l,children:a}),s[2]=l,s[3]=f,s[4]=a,s[5]=r):r=s[5],r}function de(){const e=O.c(45),[s,f]=E.useState(""),[l,x]=E.useState(null),[a,r]=E.useState(null),[A,B]=E.useState($);let I,k;e[0]!==l?(I=()=>{if(!l)return;const v=l,G=function(n){if(n.key==="Escape"){n.preventDefault(),n.stopPropagation(),x(null),r(null);return}if(ie.has(n.key))return;n.preventDefault(),n.stopPropagation();const c=le(n),p=ne(c,v);if(p){r(`Already assigned to “${p.label}”.`);return}re(v,c),B($()),x(null),r(null)};return window.addEventListener("keydown",G,!0),()=>window.removeEventListener("keydown",G,!0)},k=[l],e[0]=l,e[1]=I,e[2]=k):(I=e[1],k=e[2]),E.useEffect(I,k);let b,g,d,j,y,N,S,w,m,u,h;if(e[3]!==A||e[4]!==a||e[5]!==s||e[6]!==l){const v=s.trim().toLowerCase(),G=v?T.filter(i=>`${i.label} ${i.description} ${i.group}`.toLowerCase().includes(v)):T;g=_,S="max-w-2xl gap-0 overflow-hidden p-0",w=!1,e[18]===Symbol.for("react.memo_cache_sentinel")?(m=t.jsxs(q,{className:"p-4 pb-3",children:[t.jsxs(M,{className:"flex items-center gap-2",children:[t.jsx(oe,{"data-icon":"inline-start","aria-hidden":"true",className:"size-4"}),"Keyboard shortcuts"]}),t.jsx(U,{children:"Click a shortcut, then press a new key combination. Changes are saved on this device."})]}),u=t.jsx(V,{}),e[18]=m,e[19]=u):(m=e[18],u=e[19]);let K;e[20]===Symbol.for("react.memo_cache_sentinel")?(K=t.jsx(W,{children:t.jsx(ce,{"data-icon":"inline-start","aria-hidden":"true"})}),e[20]=K):K=e[20];let n;e[21]===Symbol.for("react.memo_cache_sentinel")?(n=i=>f(i.target.value),e[21]=n):n=e[21];let c;e[22]!==s?(c=t.jsxs(X,{className:"flex-1",children:[K,t.jsx(Z,{"aria-label":"Search keyboard shortcuts",value:s,onChange:n,placeholder:"Search shortcuts…"})]}),e[22]=s,e[23]=c):c=e[23];let p;e[24]===Symbol.for("react.memo_cache_sentinel")?(p=t.jsxs(P,{variant:"outline",size:"sm",onClick:()=>{ee(),B($()),r(null)},children:[t.jsx(F,{"data-icon":"inline-start"}),"Reset all"]}),e[24]=p):p=e[24],e[25]!==c?(h=t.jsxs("div",{className:"flex items-center gap-2 p-3",children:[c,p]}),e[25]=c,e[26]=h):h=e[26],e[27]!==a?(d=a&&t.jsx(te,{variant:"destructive",className:"mx-3 mb-2 w-auto",children:t.jsxs(se,{children:[a," Press another shortcut or Esc to cancel."]})}),e[27]=a,e[28]=d):d=e[28],b=ae,N="h-[min(28rem,60vh)]",j="flex flex-col gap-4 px-3 pb-4",y=J.map(i=>{const L=G.filter(o=>o.group===i);return L.length===0?null:t.jsxs("section",{className:"flex flex-col gap-1",children:[t.jsx("h3",{className:"px-2 py-1 text-xs font-medium text-muted-foreground",children:i}),L.map(o=>{const z=l===o.command;return t.jsxs("div",{className:"flex min-h-12 items-center gap-3 rounded-md px-2 py-1.5 hover:bg-accent",children:[t.jsxs("div",{className:"min-w-0 flex-1",children:[t.jsx("p",{className:"truncate text-sm",children:o.label}),t.jsx("p",{className:"truncate text-xs text-muted-foreground",children:o.description})]}),t.jsx(P,{variant:z?"secondary":"outline",size:"sm",className:"min-w-28 font-mono text-xs",onClick:()=>{r(null),x(z?null:o.command)},"aria-label":`Change shortcut for ${o.label}`,children:z?"Press keys…":Q(A[o.command])}),t.jsx(P,{variant:"ghost",size:"icon-sm",onClick:()=>{Y(o.command),B($()),r(null)},"aria-label":`Reset shortcut for ${o.label}`,children:t.jsx(F,{"data-icon":"inline-start"})})]},o.command)})]},i)}),e[3]=A,e[4]=a,e[5]=s,e[6]=l,e[7]=b,e[8]=g,e[9]=d,e[10]=j,e[11]=y,e[12]=N,e[13]=S,e[14]=w,e[15]=m,e[16]=u,e[17]=h}else b=e[7],g=e[8],d=e[9],j=e[10],y=e[11],N=e[12],S=e[13],w=e[14],m=e[15],u=e[16],h=e[17];let C;e[29]!==j||e[30]!==y?(C=t.jsx("div",{className:j,children:y}),e[29]=j,e[30]=y,e[31]=C):C=e[31];let D;e[32]!==b||e[33]!==C||e[34]!==N?(D=t.jsx(b,{className:N,children:C}),e[32]=b,e[33]=C,e[34]=N,e[35]=D):D=e[35];let R;return e[36]!==g||e[37]!==d||e[38]!==D||e[39]!==S||e[40]!==w||e[41]!==m||e[42]!==u||e[43]!==h?(R=t.jsxs(g,{className:S,showCloseButton:w,children:[m,u,h,d,D]}),e[36]=g,e[37]=d,e[38]=D,e[39]=S,e[40]=w,e[41]=m,e[42]=u,e[43]=h,e[44]=R):R=e[44],R}export{pe as KeyboardShortcutsDialog};
@@ -1,2 +0,0 @@
1
- import{c as Q,r as G,j as t}from"./vendor-react-gGw_S5I_.js";import{al as Le,cd as Qe,ce as Ve,cf as Ye,cg as Ge,c as te,ch as Xe,ag as We,ci as Fe,cj as Ae,ck as Je,cl as Ze,cm as es,ad as ss,B as U,cn as ts,co as ns,bK as is,cp as ls,au as Ee,H as Pe,G as _e,bA as os,cq as qe,aA as rs,aB as as,cr as cs,cs as ds,ct as us,cu as fs,cv as ms,cw as De,cx as xs,cy as gs,cz as ps,ah as hs,cA as bs,V as je,E as ws,f as js,i as Ns,cB as ys,k as vs,cC as ve,cD as Is,cE as ks,cF as qs,b8 as Ss,cG as Cs}from"./index-Bg4A-xl7.js";import{bl as Me,aP as As,bN as Ds,U as Es,b1 as Ps,b4 as _s,dw as Ms,A as Ue,bp as Os,ak as Rs,X as Ts,al as Ks,C as $s}from"./vendor-ui-Dc_kJXxz.js";import"./vendor-markdown-BEJ8yVzA.js";const zs=6;function Bs(c){const e=Q.c(87),{recent:s,start:n}=c,[l,o]=G.useState(null),[i,x]=G.useState(""),a=l??s[0]??null,d=(l&&!s.some(E=>Oe(E,l))?[l,...s]:[...s]).slice(0,zs);let p;e[0]!==i?(p=i.trim(),e[0]=i,e[1]=p):p=e[1];const u=p;let f;e[2]!==a||e[3]!==n.defaultAgentKind?(f=a?Le(a.dirName):n.defaultAgentKind,e[2]=a,e[3]=n.defaultAgentKind,e[4]=f):f=e[4];const r=f,g=n.model.selectedModel,m=a==null?void 0:a.dirName;let h;e[5]!==m?(h=Qe(m),e[5]=m,e[6]=h):h=e[6];const{imageInput:b}=Ve(r,g,h.instanceId),{images:w,uploading:I,isDragOver:j,imageError:N,hasUnsupportedAttachments:y,dismissImageError:v,removeImage:k,clearImages:D,handleDragOver:A,handleDragLeave:q,handleDrop:S,handlePaste:_}=Ye(b),O=!!(a&&(u||w.length>0))&&!I&&!y;let M;e[7]===Symbol.for("react.memo_cache_sentinel")?(M=(E,ae)=>{o({dirName:E,cwd:ae,name:ae?Fe(ae):E})},e[7]=M):M=e[7];const P=M;let z;e[8]!==P||e[9]!==n.defaultAgentKind?(z=E=>P(Ae(n.defaultAgentKind,E),E),e[8]=P,e[9]=n.defaultAgentKind,e[10]=z):z=e[10];const H=z,L=a==null?void 0:a.cwd;let F;e[11]!==L||e[12]!==a?(F=a&&L?E=>o({...a,dirName:Ae(E,L)}):void 0,e[11]=L,e[12]=a,e[13]=F):F=e[13];const V=F;let C;e[14]!==l||e[15]!==a?(C=()=>{!l&&a&&o(a)},e[14]=l,e[15]=a,e[16]=C):C=e[16];const $=C;let Y;e[17]!==O||e[18]!==D||e[19]!==w||e[20]!==u||e[21]!==a||e[22]!==n?(Y=E=>{E==null||E.preventDefault(),!(!a||!O)&&(n.onStart(a.dirName,a.cwd,u,w.length>0?w.map(Ls):void 0),x(""),D())},e[17]=O,e[18]=D,e[19]=w,e[20]=u,e[21]=a,e[22]=n,e[23]=Y):Y=e[23];const B=Y;let X;e[24]!==B?(X=E=>{E.key==="Enter"&&!E.shiftKey&&!E.nativeEvent.isComposing&&(E.preventDefault(),B())},e[24]=B,e[25]=X):X=e[25];const J=X,ne="Start a session",ie="flex min-w-0 flex-col gap-3",be="flex flex-wrap items-center gap-1.5",le="group",oe="Projects",Z=d.map(E=>{const ae=a!==null&&Oe(E,a);return t.jsxs("button",{type:"button","aria-pressed":ae,title:E.cwd??E.name,onClick:()=>o(E),className:te("flex max-w-48 items-center gap-1.5 rounded-full border py-1 pl-1.5 pr-3 text-xs outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring",ae?"border-foreground/80 bg-foreground text-background":"border-border/70 text-muted-foreground hover:border-foreground/40 hover:text-foreground"),children:[t.jsx(Ge,{projectPath:E.cwd??null,fallback:t.jsx(Me,{className:"size-3.5","aria-hidden":"true"}),className:"size-4"}),t.jsx("span",{className:"truncate",children:E.name})]},E.cwd??E.dirName)}),ee=d.length>0;let W;e[26]!==P||e[27]!==H||e[28]!==n.defaultAgentKind||e[29]!==ee?(W=t.jsx(Fs,{defaultAgentKind:n.defaultAgentKind,onChoose:P,onChooseFolder:H,anyListed:ee}),e[26]=P,e[27]=H,e[28]=n.defaultAgentKind,e[29]=ee,e[30]=W):W=e[30];let T;e[31]!==Z||e[32]!==W?(T=t.jsxs("div",{className:be,role:le,"aria-label":oe,children:[Z,W]}),e[31]=Z,e[32]=W,e[33]=T):T=e[33];let R;e[34]!==S||e[35]!==$?(R=E=>{$(),S(E)},e[34]=S,e[35]=$,e[36]=R):R=e[36];let K;e[37]!==j?(K=j&&t.jsx(Je,{}),e[37]=j,e[38]=K):K=e[38];let se;e[39]!==k?(se=(E,ae)=>k(ae),e[39]=k,e[40]=se):se=e[40];let re;e[41]!==w||e[42]!==se?(re=t.jsx(Ze,{images:w,onRemove:se}),e[41]=w,e[42]=se,e[43]=re):re=e[43];const we=y?void 0:v;let ce;e[44]!==N||e[45]!==we?(ce=t.jsx(es,{message:N,onDismiss:we}),e[44]=N,e[45]=we,e[46]=ce):ce=e[46];let de;e[47]!==$?(de=E=>{$(),x(E.target.value)},e[47]=$,e[48]=de):de=e[48];let ue;e[49]!==_||e[50]!==$?(ue=E=>{$(),_(E)},e[49]=_,e[50]=$,e[51]=ue):ue=e[51];const Ie=a?`Describe the task for ${a.name}`:"Pick a project, then describe the task";let fe;e[52]!==J||e[53]!==de||e[54]!==ue||e[55]!==Ie||e[56]!==i?(fe=t.jsx(ss,{"aria-label":"First message",value:i,onChange:de,onPaste:ue,onKeyDown:J,placeholder:Ie,rows:1,className:"max-h-48 min-h-9 flex-1 resize-none rounded-none border-0 bg-transparent px-0 py-2 shadow-none focus-visible:border-transparent focus-visible:ring-0"}),e[52]=J,e[53]=de,e[54]=ue,e[55]=Ie,e[56]=i,e[57]=fe):fe=e[57];let me;e[58]!==r||e[59]!==a||e[60]!==n.model.onEffortChange||e[61]!==n.model.onModelChange||e[62]!==n.model.selectedEffort||e[63]!==n.model.selectedModel||e[64]!==V?(me=a&&t.jsx(Xe,{isNewSession:!0,agentKind:r,onAgentKindChange:V,selectedModel:n.model.selectedModel,onModelChange:n.model.onModelChange,selectedEffort:n.model.selectedEffort,onEffortChange:n.model.onEffortChange}),e[58]=r,e[59]=a,e[60]=n.model.onEffortChange,e[61]=n.model.onModelChange,e[62]=n.model.selectedEffort,e[63]=n.model.selectedModel,e[64]=V,e[65]=me):me=e[65];const ke=!O;let Ne;e[66]===Symbol.for("react.memo_cache_sentinel")?(Ne=t.jsx(As,{"data-icon":"icon"}),e[66]=Ne):Ne=e[66];let xe;e[67]!==ke?(xe=t.jsx(U,{type:"submit",size:"icon-xs",disabled:ke,"aria-label":"Start session",title:"Start session (Enter)",children:Ne}),e[67]=ke,e[68]=xe):xe=e[68];let ge;e[69]!==me||e[70]!==xe?(ge=t.jsxs("div",{className:"flex shrink-0 items-center gap-1 pb-0.5",children:[me,xe]}),e[69]=me,e[70]=xe,e[71]=ge):ge=e[71];let pe;e[72]!==fe||e[73]!==ge?(pe=t.jsxs("div",{className:"flex items-end gap-2 rounded-xl border bg-popover py-2 pl-4 pr-2 shadow-lg shadow-black/5 transition-[border-color,box-shadow] duration-150 focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50",children:[fe,ge]}),e[72]=fe,e[73]=ge,e[74]=pe):pe=e[74];let he;e[75]!==q||e[76]!==A||e[77]!==B||e[78]!==R||e[79]!==K||e[80]!==re||e[81]!==ce||e[82]!==pe?(he=t.jsxs("form",{onSubmit:B,onDragOver:A,onDragLeave:q,onDrop:R,className:"relative min-w-0",children:[K,re,ce,pe]}),e[75]=q,e[76]=A,e[77]=B,e[78]=R,e[79]=K,e[80]=re,e[81]=ce,e[82]=pe,e[83]=he):he=e[83];let ye;return e[84]!==T||e[85]!==he?(ye=t.jsxs("section",{"aria-label":ne,className:ie,children:[T,he]}),e[84]=T,e[85]=he,e[86]=ye):ye=e[86],ye}function Ls(c){const{data:e,mediaType:s}=c;return{data:e,mediaType:s}}function Oe(c,e){return c.cwd&&e.cwd?c.cwd===e.cwd:c.dirName===e.dirName}function Fs(c){const e=Q.c(19),{defaultAgentKind:s,onChoose:n,onChooseFolder:l,anyListed:o}=c,[i,x]=G.useState(!1),a=We(i),d=o?"ghost":"outline";let p;e[0]!==d?(p=t.jsx(U,{variant:d,size:"xs",className:"rounded-full text-muted-foreground"}),e[0]=d,e[1]=p):p=e[1];let u;e[2]===Symbol.for("react.memo_cache_sentinel")?(u=t.jsx(Me,{"data-icon":"inline-start"}),e[2]=u):u=e[2];const f=o?"Other project":"Choose a project";let r;e[3]!==p||e[4]!==f?(r=t.jsxs(ts,{render:p,children:[u,f]}),e[3]=p,e[4]=f,e[5]=r):r=e[5];let g;e[6]!==n?(g=(w,I)=>{x(!1),n(w,I)},e[6]=n,e[7]=g):g=e[7];let m;e[8]!==l?(m=w=>{x(!1),l(w)},e[8]=l,e[9]=m):m=e[9];let h;e[10]!==s||e[11]!==a||e[12]!==g||e[13]!==m?(h=t.jsx(ns,{align:"start",className:"w-96 max-w-[calc(100vw-2rem)] p-0",children:t.jsx(is,{projects:a,defaultAgentKind:s,onNewSession:g,onNewFolder:m})}),e[10]=s,e[11]=a,e[12]=g,e[13]=m,e[14]=h):h=e[14];let b;return e[15]!==i||e[16]!==r||e[17]!==h?(b=t.jsxs(ls,{open:i,onOpenChange:x,children:[r,h]}),e[15]=i,e[16]=r,e[17]=h,e[18]=b):b=e[18],b}function Us(c){const e={};for(const s of c)s.type==="boolean"?e[s.name]=s.defaultValue===!0:s.defaultValue!==void 0?e[s.name]=String(s.defaultValue):e[s.name]="";return e}function Hs(c,e){const s={};for(const n of c){const l=e[n.name];if(typeof l=="boolean"){s[n.name]=l;continue}l!==""&&(s[n.name]=n.type==="number"||n.type==="integer"?Number(l):l)}return s}function Qs(c,e){return c.every(s=>{if(!s.required)return!0;const n=e[s.name];return typeof n=="boolean"?!0:n===""?!1:s.type==="number"||s.type==="integer"?Number.isFinite(Number(n)):!0})}function Vs(c){const e=Q.c(52),{request:s,responding:n,onAnswer:l}=c;let o;e[0]!==s.fields?(o=()=>Us(s.fields),e[0]=s.fields,e[1]=o):o=e[1];const[i,x]=G.useState(o);let a;e[2]!==s.fields||e[3]!==i?(a=Qs(s.fields,i),e[2]=s.fields,e[3]=i,e[4]=a):a=e[4];const d=a,p=s.displayName||s.title||s.serverName;let u;e[5]===Symbol.for("react.memo_cache_sentinel")?(u=(j,N)=>{x(y=>({...y,[j]:N}))},e[5]=u):u=e[5];const f=u;let r;e[6]!==l||e[7]!==s.requestId?(r=()=>l==null?void 0:l(s.requestId,{action:"decline"}),e[6]=l,e[7]=s.requestId,e[8]=r):r=e[8];const g=r;if(s.mode==="url"&&s.url){const j=s.url;let N;e[9]!==s.message?(N=t.jsx("p",{className:"text-sm leading-relaxed text-foreground",children:s.message}),e[9]=s.message,e[10]=N):N=e[10];let y;e[11]!==j?(y=t.jsx("p",{className:"mt-1 truncate font-mono text-xs text-muted-foreground",title:j,children:j}),e[11]=j,e[12]=y):y=e[12];let v;e[13]!==g||e[14]!==l||e[15]!==s.requestId||e[16]!==n||e[17]!==j?(v=l&&t.jsxs("div",{className:"mt-3 flex items-center gap-2",children:[t.jsxs(U,{size:"sm",disabled:n,onClick:()=>{window.open(j,"_blank","noopener,noreferrer"),l(s.requestId,{action:"accept"})},children:["Open link",t.jsx(Ds,{"data-icon":"inline-end"})]}),t.jsx(U,{variant:"ghost",size:"sm",disabled:n,onClick:g,children:"Decline"})]}),e[13]=g,e[14]=l,e[15]=s.requestId,e[16]=n,e[17]=j,e[18]=v):v=e[18];let k;return e[19]!==p||e[20]!==N||e[21]!==y||e[22]!==v?(k=t.jsxs(Re,{server:p,children:[N,y,v]}),e[19]=p,e[20]=N,e[21]=y,e[22]=v,e[23]=k):k=e[23],k}let m;e[24]!==s.message?(m=t.jsx("p",{className:"text-sm leading-relaxed text-foreground",children:s.message}),e[24]=s.message,e[25]=m):m=e[25];let h;if(e[26]!==l||e[27]!==s.fields||e[28]!==s.requestId||e[29]!==n||e[30]!==i){let j;e[32]!==l||e[33]!==s.requestId||e[34]!==n||e[35]!==i?(j=N=>t.jsx(Ys,{id:`elicit-${s.requestId}-${N.name}`,field:N,value:i[N.name],disabled:n||!l,onChange:y=>f(N.name,y)},N.name),e[32]=l,e[33]=s.requestId,e[34]=n,e[35]=i,e[36]=j):j=e[36],h=s.fields.map(j),e[26]=l,e[27]=s.fields,e[28]=s.requestId,e[29]=n,e[30]=i,e[31]=h}else h=e[31];let b;e[37]!==h?(b=t.jsx("div",{className:"mt-3 flex flex-col gap-3",children:h}),e[37]=h,e[38]=b):b=e[38];let w;e[39]!==d||e[40]!==g||e[41]!==l||e[42]!==s.fields||e[43]!==s.requestId||e[44]!==n||e[45]!==i?(w=l&&t.jsxs("div",{className:"mt-3 flex items-center gap-2",children:[t.jsx(U,{size:"sm",disabled:n||!d,onClick:()=>l(s.requestId,{action:"accept",content:Hs(s.fields,i)}),children:"Send"}),t.jsx(U,{variant:"ghost",size:"sm",disabled:n,onClick:g,children:"Decline"})]}),e[39]=d,e[40]=g,e[41]=l,e[42]=s.fields,e[43]=s.requestId,e[44]=n,e[45]=i,e[46]=w):w=e[46];let I;return e[47]!==p||e[48]!==m||e[49]!==b||e[50]!==w?(I=t.jsxs(Re,{server:p,children:[m,b,w]}),e[47]=p,e[48]=m,e[49]=b,e[50]=w,e[51]=I):I=e[51],I}function Ys(c){const e=Q.c(55),{id:s,field:n,value:l,disabled:o,onChange:i}=c;if(n.type==="boolean"){const g=l===!0;let m;e[0]!==i?(m=I=>i(I===!0),e[0]=i,e[1]=m):m=e[1];let h;e[2]!==o||e[3]!==s||e[4]!==g||e[5]!==m?(h=t.jsx(os,{id:s,checked:g,disabled:o,onCheckedChange:m}),e[2]=o,e[3]=s,e[4]=g,e[5]=m,e[6]=h):h=e[6];let b;e[7]!==n?(b=t.jsx(Se,{field:n}),e[7]=n,e[8]=b):b=e[8];let w;return e[9]!==s||e[10]!==h||e[11]!==b?(w=t.jsxs(qe,{htmlFor:s,className:"items-start gap-2 font-normal",children:[h,b]}),e[9]=s,e[10]=h,e[11]=b,e[12]=w):w=e[12],w}if(n.type==="enum"){let g;e[13]!==n?(g=t.jsx(Se,{field:n}),e[13]=n,e[14]=g):g=e[14];let m;e[15]!==s||e[16]!==g?(m=t.jsx(qe,{htmlFor:s,children:g}),e[15]=s,e[16]=g,e[17]=m):m=e[17];let h;e[18]!==l?(h=typeof l=="string"&&l?[l]:[],e[18]=l,e[19]=h):h=e[19];let b;e[20]!==i?(b=v=>{v[0]&&i(v[0])},e[20]=i,e[21]=b):b=e[21];const w=n.label;let I;e[22]!==n.options?(I=n.options??[],e[22]=n.options,e[23]=I):I=e[23];let j;if(e[24]!==o||e[25]!==I){let v;e[27]!==o?(v=k=>t.jsx(rs,{value:k.value,disabled:o,className:"w-full justify-start px-3",children:k.label},k.value),e[27]=o,e[28]=v):v=e[28],j=I.map(v),e[24]=o,e[25]=I,e[26]=j}else j=e[26];let N;e[29]!==n.label||e[30]!==s||e[31]!==h||e[32]!==b||e[33]!==j?(N=t.jsx(as,{id:s,value:h,onValueChange:b,orientation:"vertical",variant:"outline",size:"sm",className:"w-full items-stretch","aria-label":w,children:j}),e[29]=n.label,e[30]=s,e[31]=h,e[32]=b,e[33]=j,e[34]=N):N=e[34];let y;return e[35]!==m||e[36]!==N?(y=t.jsxs("div",{className:"flex flex-col gap-1.5",children:[m,N]}),e[35]=m,e[36]=N,e[37]=y):y=e[37],y}let x;e[38]!==n?(x=t.jsx(Se,{field:n}),e[38]=n,e[39]=x):x=e[39];let a;e[40]!==s||e[41]!==x?(a=t.jsx(qe,{htmlFor:s,children:x}),e[40]=s,e[41]=x,e[42]=a):a=e[42];const d=n.type==="string"?"text":"number",p=typeof l=="string"?l:"";let u;e[43]!==i?(u=g=>i(g.target.value),e[43]=i,e[44]=u):u=e[44];let f;e[45]!==o||e[46]!==n.label||e[47]!==s||e[48]!==d||e[49]!==p||e[50]!==u?(f=t.jsx(Ee,{id:s,"aria-label":n.label,type:d,value:p,disabled:o,onChange:u}),e[45]=o,e[46]=n.label,e[47]=s,e[48]=d,e[49]=p,e[50]=u,e[51]=f):f=e[51];let r;return e[52]!==a||e[53]!==f?(r=t.jsxs("div",{className:"flex flex-col gap-1.5",children:[a,f]}),e[52]=a,e[53]=f,e[54]=r):r=e[54],r}function Se(c){const e=Q.c(8),{field:s}=c;let n;e[0]!==s.required?(n=s.required&&t.jsx("span",{className:"ml-0.5 text-warning",children:"*"}),e[0]=s.required,e[1]=n):n=e[1];let l;e[2]!==s.description?(l=s.description&&t.jsx("span",{className:"block text-xs font-normal text-muted-foreground",children:s.description}),e[2]=s.description,e[3]=l):l=e[3];let o;return e[4]!==s.label||e[5]!==n||e[6]!==l?(o=t.jsxs("span",{className:"min-w-0",children:[s.label,n,l]}),e[4]=s.label,e[5]=n,e[6]=l,e[7]=o):o=e[7],o}function Re(c){const e=Q.c(8),{server:s,children:n}=c;let l;e[0]===Symbol.for("react.memo_cache_sentinel")?(l=t.jsx(Es,{className:"text-info"}),e[0]=l):l=e[0];let o;e[1]!==s?(o=t.jsxs(Pe,{children:[s," needs input"]}),e[1]=s,e[2]=o):o=e[2];let i;e[3]!==n?(i=t.jsx("div",{className:"col-start-2 mt-1 min-w-0",children:n}),e[3]=n,e[4]=i):i=e[4];let x;return e[5]!==o||e[6]!==i?(x=t.jsxs(_e,{className:"border-info/40 bg-info/5",children:[l,o,i]}),e[5]=o,e[6]=i,e[7]=x):x=e[7],x}function Gs(c){const e=Q.c(15),{request:s,responding:n,onChoose:l}=c;let o,i;e[0]===Symbol.for("react.memo_cache_sentinel")?(o=t.jsx(Ps,{className:"text-warning"}),i=t.jsx(Pe,{children:"The agent declined this request"}),e[0]=o,e[1]=i):(o=e[0],i=e[1]);let x;e[2]!==s.originalModel?(x=t.jsxs("p",{className:"text-sm leading-relaxed text-foreground",children:[s.originalModel," would not answer. Retrying on a fallback model may work."]}),e[2]=s.originalModel,e[3]=x):x=e[3];let a;e[4]!==s.guidanceText?(a=s.guidanceText&&t.jsx("p",{className:"mt-1 text-sm leading-relaxed text-muted-foreground",children:s.guidanceText}),e[4]=s.guidanceText,e[5]=a):a=e[5];let d;e[6]!==l||e[7]!==s.fallbackModel||e[8]!==s.requestId||e[9]!==n?(d=l&&t.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[t.jsxs(U,{size:"sm",disabled:n,onClick:()=>l(s.requestId,"retry_fallback"),children:["Retry on ",s.fallbackModel]}),t.jsx(U,{variant:"outline",size:"sm",disabled:n,onClick:()=>l(s.requestId,"edit_prompt"),children:"Edit prompt"}),t.jsx(U,{variant:"ghost",size:"sm",disabled:n,className:"ml-auto text-muted-foreground",onClick:()=>l(s.requestId,"cancelled"),children:"Dismiss"})]}),e[6]=l,e[7]=s.fallbackModel,e[8]=s.requestId,e[9]=n,e[10]=d):d=e[10];let p;return e[11]!==x||e[12]!==a||e[13]!==d?(p=t.jsxs(_e,{className:"border-warning/40 bg-warning/5",children:[o,i,t.jsxs("div",{className:"col-start-2 mt-1 min-w-0",children:[x,a,d]})]}),e[11]=x,e[12]=a,e[13]=d,e[14]=p):p=e[14],p}function Xs(c){const e=Q.c(64),{request:s,input:n,canAnswer:l,onOpen:o}=c;let i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=new Set,e[0]=i):i=e[0];const[x,a]=G.useState(i),{sessionId:d}=s;switch(s.kind){case"permission":{const p=s.request;let u;e[1]!==n.responding||e[2]!==s.request.requestId?(u=n.responding.has(s.request.requestId),e[1]=n.responding,e[2]=s.request.requestId,e[3]=u):u=e[3];let f;e[4]!==l||e[5]!==n||e[6]!==d?(f=l?(g,m)=>void n.respond(d,g,m):void 0,e[4]=l,e[5]=n,e[6]=d,e[7]=f):f=e[7];let r;return e[8]!==s.request||e[9]!==u||e[10]!==f?(r=t.jsx(ds,{request:p,queued:0,responding:u,onRespond:f}),e[8]=s.request,e[9]=u,e[10]=f,e[11]=r):r=e[11],r}case"question":{const p=s.request;let u;e[12]!==n.responding||e[13]!==s.request.toolUseId?(u=n.responding.has(s.request.toolUseId),e[12]=n.responding,e[13]=s.request.toolUseId,e[14]=u):u=e[14];let f;e[15]!==x||e[16]!==s.request.toolUseId?(f=x.has(s.request.toolUseId),e[15]=x,e[16]=s.request.toolUseId,e[17]=f):f=e[17];let r;e[18]!==l||e[19]!==n||e[20]!==d?(r=l?async(m,h)=>{(await n.answerQuestion(d,m,h)).gone&&a(w=>new Set(w).add(m))}:void 0,e[18]=l,e[19]=n,e[20]=d,e[21]=r):r=e[21];let g;return e[22]!==o||e[23]!==s.request||e[24]!==u||e[25]!==f||e[26]!==r?(g=t.jsx(cs,{request:p,responding:u,gone:f,onAnswer:r,onOpenSession:o}),e[22]=o,e[23]=s.request,e[24]=u,e[25]=f,e[26]=r,e[27]=g):g=e[27],g}case"elicitation":{const p=s.request;let u;e[28]!==n.responding||e[29]!==s.request.requestId?(u=n.responding.has(s.request.requestId),e[28]=n.responding,e[29]=s.request.requestId,e[30]=u):u=e[30];let f;e[31]!==l||e[32]!==n||e[33]!==d?(f=l?(g,m)=>void n.answerElicitation(d,g,m):void 0,e[31]=l,e[32]=n,e[33]=d,e[34]=f):f=e[34];let r;return e[35]!==s.request||e[36]!==u||e[37]!==f?(r=t.jsx(Vs,{request:p,responding:u,onAnswer:f}),e[35]=s.request,e[36]=u,e[37]=f,e[38]=r):r=e[38],r}case"dialog":{const p=s.request;let u;e[39]!==n.responding||e[40]!==s.request.requestId?(u=n.responding.has(s.request.requestId),e[39]=n.responding,e[40]=s.request.requestId,e[41]=u):u=e[41];let f;e[42]!==l||e[43]!==n||e[44]!==d?(f=l?(g,m)=>void n.answerDialog(d,g,m):void 0,e[42]=l,e[43]=n,e[44]=d,e[45]=f):f=e[45];let r;return e[46]!==s.request||e[47]!==u||e[48]!==f?(r=t.jsx(Gs,{request:p,responding:u,onChoose:f}),e[46]=s.request,e[47]=u,e[48]=f,e[49]=r):r=e[49],r}case"plan":case"deferred":{let p;e[50]!==s.kind?(p=s.kind==="plan"?t.jsx(_s,{className:"text-warning"}):t.jsx(Ms,{className:"text-warning"}),e[50]=s.kind,e[51]=p):p=e[51];const u=s.kind==="plan"?"A plan is waiting for review":"A permission was deferred";let f;e[52]!==u?(f=t.jsx(Pe,{children:u}),e[52]=u,e[53]=f):f=e[53];const r=s.kind==="plan"?"Review it in its session.":"Open the session and resume it to answer.";let g;e[54]!==r?(g=t.jsx("p",{className:"col-start-2 mt-1 text-sm text-muted-foreground",children:r}),e[54]=r,e[55]=g):g=e[55];let m;e[56]===Symbol.for("react.memo_cache_sentinel")?(m=t.jsx(Ue,{"data-icon":"inline-end"}),e[56]=m):m=e[56];let h;e[57]!==o?(h=t.jsx("div",{className:"col-start-2 mt-2",children:t.jsxs(U,{size:"xs",onClick:o,children:["Open session",m]})}),e[57]=o,e[58]=h):h=e[58];let b;return e[59]!==p||e[60]!==f||e[61]!==g||e[62]!==h?(b=t.jsxs(_e,{className:"border-warning/40 bg-warning/5",children:[p,f,g,h]}),e[59]=p,e[60]=f,e[61]=g,e[62]=h,e[63]=b):b=e[63],b}}}function Ws(c,e,s=()=>!0){const n=new Map(e.map(i=>[i.sessionId,i])),l=i=>{const x=n.get(i);return x?De(x):Date.now()},o=[];for(const[i,x]of c.permissionsBySession)for(const a of x)o.push({kind:"permission",sessionId:i,since:a.timestamp,request:a});for(const[i,x]of c.questionsBySession)for(const a of x)o.push({kind:"question",sessionId:i,since:a.askedAt,request:a});for(const[i,x]of c.elicitationsBySession)for(const a of x)o.push({kind:"elicitation",sessionId:i,since:a.askedAt,request:a});for(const[i,x]of c.dialogsBySession)for(const a of x)o.push({kind:"dialog",sessionId:i,since:a.askedAt,request:a});for(const i of c.awaitingPlan)o.push({kind:"plan",sessionId:i,since:l(i)});for(const i of e)i.agentStatus==="deferred"&&!i.archived&&o.push({kind:"deferred",sessionId:i.sessionId,since:l(i.sessionId)});return o.filter(i=>s(i.sessionId)).sort((i,x)=>i.since-x.since)}function Te(c){switch(c.kind){case"permission":return c.request.requestId;case"question":return c.request.toolUseId;case"elicitation":case"dialog":return c.request.requestId;default:return`${c.kind}:${c.sessionId}`}}const Js=7*864e5,Ke=3,Zs=30,et=50,$e={"needs-you":0,working:1,done:2};function st(c,e){const s=c.filter(o=>!o.archived&&!(o.teamName&&o.agentName)),{topLevel:n,crewOf:l}=us(s);return n.map(o=>{const i=l.get(o.sessionId)??[],x=i.length?fs(o,i):o.lastActivityAt||o.lastModified,a=[o,...i].flatMap(d=>(d.pullRequests??[]).map(p=>({pullRequest:p,by:d}))).sort((d,p)=>Date.parse(p.pullRequest.timestamp)-Date.parse(d.pullRequest.timestamp))[0];return{session:o,state:e(o).state,crew:i.map(d=>({member:d,state:e(d).state})).sort((d,p)=>$e[d.state]-$e[p.state]||De(p.member)-De(d.member)),counts:i.length?ms(i,e):null,activityAt:x,...a&&{landed:{number:a.pullRequest.number,title:a.pullRequest.title,url:a.pullRequest.url,by:a.by}}}}).sort((o,i)=>Date.parse(i.activityAt)-Date.parse(o.activityAt))}function tt(c,e=Date.now()){const s=c.filter(n=>e-Date.parse(n.activityAt)<Js);return(s.length>=Ke?s:c.slice(0,Ke)).slice(0,Zs)}function nt(c,e,s=6){const n=[],l=new Set;for(const o of c){const i=e(o.session);if(!(!i.cwd||l.has(i.cwd))&&(l.add(i.cwd),n.push(i),n.length===s))break}return n}function it(c,e,s){const n=e.toLowerCase().split(/\s+/).filter(Boolean);return n.length===0?[]:c.filter(l=>{const o=s(l).filter(Boolean).join(`
2
- `).toLowerCase();return n.every(i=>o.includes(i))}).slice(0,et)}const ze={"needs-you":ve.attention,working:ve.working,done:"bg-muted-foreground/40"},lt={"needs-you":"needs you",working:"working",done:"done"},ot=3;function rt(c,e){const s=c.cwd?Cs(c.cwd):null,n=(s==null?void 0:s.parentPath)??c.cwd,l=s?Ae(Le(c.dirName),s.parentPath):c.dirName;return{dirName:l,cwd:n,name:e[l]??(n?Fe(n):c.projectShortName)}}function at(c){const e=c.target instanceof HTMLElement&&c.target.closest("input,textarea,select,[contenteditable=true]");return!c.metaKey&&!c.ctrlKey&&!c.altKey&&!e}function vt(c){const e=Q.c(81),{onOpenSession:s,onBrowseProjects:n,start:l}=c,o=xs(),i=gs(),{names:x,rename:a}=ps(),{names:d}=hs(),p=bs(),[u,f]=G.useState(""),r=G.useRef(null);let g;e[0]!==o.sessions?(g=o.sessions.filter(ut),e[0]=o.sessions,e[1]=g):g=e[1];const m=g;let h;e[2]!==m?(h=new Map(m.map(dt)),e[2]=m,e[3]=h):h=e[3];const b=h;let w;e[4]!==i.awaitingDialog||e[5]!==i.awaitingElicitation?(w=new Set([...i.awaitingElicitation,...i.awaitingDialog]),e[4]=i.awaitingDialog,e[5]=i.awaitingElicitation,e[6]=w):w=e[6];let I;e[7]!==i.awaitingPermission||e[8]!==i.awaitingPlan||e[9]!==i.awaitingQuestion||e[10]!==w?(I={awaitingPermission:i.awaitingPermission,awaitingQuestion:i.awaitingQuestion,awaitingPrompt:w,awaitingPlan:i.awaitingPlan},e[7]=i.awaitingPermission,e[8]=i.awaitingPlan,e[9]=i.awaitingQuestion,e[10]=w,e[11]=I):I=e[11];const j=I;let N;e[12]!==o.procBySession||e[13]!==j?(N=T=>Is(T,o.procBySession,j),e[12]=o.procBySession,e[13]=j,e[14]=N):N=e[14];const y=N;let v;e[15]!==b||e[16]!==p?(v=T=>{const R=b.get(T);return p(R==null?void 0:R.access).canInteract},e[15]=b,e[16]=p,e[17]=v):v=e[17];const k=v;let D;e[18]!==k||e[19]!==i||e[20]!==m?(D=Ws(i,m,k),e[18]=k,e[19]=i,e[20]=m,e[21]=D):D=e[21];const A=D;let q;e[22]!==b||e[23]!==x?(q=T=>ks(T,b,x),e[22]=b,e[23]=x,e[24]=q):q=e[24];const S=q;let _;e[25]!==d?(_=T=>d[T.dirName]??qs(T),e[25]=d,e[26]=_):_=e[26];const O=_;let M,P,z;if(e[27]!==S||e[28]!==O||e[29]!==d||e[30]!==u||e[31]!==m||e[32]!==y){M=st(m,y),z=u.trim().length>0?it(M,u,K=>{var se;return[S(K.session.sessionId),O(K.session),K.session.gitBranch,K.session.cwd,K.session.lastUserMessage,K.session.firstUserMessage,(se=K.landed)==null?void 0:se.title,K.landed&&`#${K.landed.number}`,...K.crew.map(re=>{const{member:we}=re;return S(we.sessionId)})]}):tt(M);let R;e[36]!==d?(R=K=>rt(K,d),e[36]=d,e[37]=R):R=e[37],P=nt(M,R),e[27]=S,e[28]=O,e[29]=d,e[30]=u,e[31]=m,e[32]=y,e[33]=M,e[34]=P,e[35]=z}else M=e[33],P=e[34],z=e[35];const H=P;let L;e[38]!==b||e[39]!==s?(L=T=>{const R=b.get(T);R?s(R.dirName,R.fileName):Ss(T)},e[38]=b,e[39]=s,e[40]=L):L=e[40];const F=L;let V;e[41]!==o.processes?(V=o.processes.filter(ct),e[41]=o.processes,e[42]=V):V=e[42];const C=V.length;let $,Y;e[43]===Symbol.for("react.memo_cache_sentinel")?($=()=>{const T=R=>{var K;R.key==="/"&&at(R)&&(R.preventDefault(),(K=r.current)==null||K.focus())};return window.addEventListener("keydown",T),()=>window.removeEventListener("keydown",T)},Y=[],e[43]=$,e[44]=Y):($=e[43],Y=e[44]),G.useEffect($,Y);let B;e[45]===Symbol.for("react.memo_cache_sentinel")?(B=t.jsx("h1",{className:"text-xl font-semibold tracking-tight",children:"Mission Control"}),e[45]=B):B=e[45];let X;e[46]!==C?(X=C>0&&t.jsxs("p",{className:"text-xs text-muted-foreground",children:[C," ",C===1?"agent":"agents"," running on this machine"]}),e[46]=C,e[47]=X):X=e[47];let J;e[48]!==X?(J=t.jsxs("div",{className:"flex flex-wrap items-baseline justify-between gap-x-4 gap-y-1",children:[B,X]}),e[48]=X,e[49]=J):J=e[49];let ne;e[50]!==H||e[51]!==l?(ne=l&&t.jsx(Bs,{recent:H,start:l}),e[50]=H,e[51]=l,e[52]=ne):ne=e[52];let ie;e[53]!==J||e[54]!==ne?(ie=t.jsxs("div",{className:"mx-auto flex w-full max-w-6xl shrink-0 flex-col gap-8 px-6 pt-16 lg:px-10",children:[J,ne]}),e[53]=J,e[54]=ne,e[55]=ie):ie=e[55];const be=A.length>0&&"lg:grid lg:grid-cols-[minmax(0,380px)_minmax(0,1fr)] lg:grid-rows-[minmax(0,1fr)]";let le;e[56]!==be?(le=te("mx-auto flex w-full max-w-6xl flex-col gap-8 px-6 pb-10 pt-10 lg:h-full lg:px-10",be),e[56]=be,e[57]=le):le=e[57];let oe;e[58]!==b||e[59]!==k||e[60]!==i||e[61]!==S||e[62]!==F||e[63]!==A?(oe=A.length>0?t.jsx(ft,{queue:A,input:i,byId:b,nameOf:S,onOpen:F,canAnswer:k}):t.jsxs("p",{className:"flex shrink-0 items-center gap-2 text-xs text-muted-foreground",children:[t.jsx("span",{className:"size-1.5 rounded-full bg-success/40","aria-hidden":"true"}),"Nothing is waiting on you."]}),e[58]=b,e[59]=k,e[60]=i,e[61]=S,e[62]=F,e[63]=A,e[64]=oe):oe=e[64];let Z;e[65]!==S||e[66]!==n||e[67]!==F||e[68]!==O||e[69]!==u||e[70]!==a||e[71]!==M.length||e[72]!==z?(Z=t.jsx(xt,{sessions:z,total:M.length,query:u,onQueryChange:f,searchRef:r,nameOf:S,projectLabel:O,onOpen:F,onRename:a,onBrowseProjects:n}),e[65]=S,e[66]=n,e[67]=F,e[68]=O,e[69]=u,e[70]=a,e[71]=M.length,e[72]=z,e[73]=Z):Z=e[73];let ee;e[74]!==le||e[75]!==oe||e[76]!==Z?(ee=t.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto lg:overflow-hidden",children:t.jsxs("div",{className:le,children:[oe,Z]})}),e[74]=le,e[75]=oe,e[76]=Z,e[77]=ee):ee=e[77];let W;return e[78]!==ie||e[79]!==ee?(W=t.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[ie,ee]}),e[78]=ie,e[79]=ee,e[80]=W):W=e[80],W}function ct(c){return c.sessionId}function dt(c){return[c.sessionId,c]}function ut(c){return!c.archived}function He(c){const e=Q.c(9),{title:s,count:n,children:l}=c;let o;e[0]!==s?(o=t.jsx("h2",{className:"text-sm font-medium",children:s}),e[0]=s,e[1]=o):o=e[1];let i;e[2]!==n?(i=n!==void 0&&t.jsx("span",{className:"text-xs tabular-nums text-muted-foreground",children:n}),e[2]=n,e[3]=i):i=e[3];let x;e[4]===Symbol.for("react.memo_cache_sentinel")?(x=t.jsx("span",{className:"flex-1"}),e[4]=x):x=e[4];let a;return e[5]!==l||e[6]!==o||e[7]!==i?(a=t.jsxs("div",{className:"mb-3 flex flex-wrap items-center gap-2",children:[o,i,x,l]}),e[5]=l,e[6]=o,e[7]=i,e[8]=a):a=e[8],a}function Ce(c,e){const s=c==null?void 0:c.crew;return s?e(s.rootId)??s.rootTitle??null:null}const Be={permission:"asked a permission",question:"asked a question",elicitation:"asked for input",dialog:"needs a choice",plan:"has a plan to review",deferred:"has a deferred permission"};function ft(c){const e=Q.c(71),{queue:s,input:n,byId:l,nameOf:o,onOpen:i,canAnswer:x}=c,[a,d]=G.useState(0);let p;e[0]===Symbol.for("react.memo_cache_sentinel")?(p=new Set,e[0]=p):p=e[0];const u=G.useRef(p),f=Math.min(a,s.length-1),r=s[f];let g;if(e[1]!==l||e[2]!==o||e[3]!==r.sessionId){const C=l.get(r.sessionId);g=Ce(C,o),e[1]=l,e[2]=o,e[3]=r.sessionId,e[4]=g}else g=e[4];const m=g;let h;e[5]!==f||e[6]!==x||e[7]!==n||e[8]!==i||e[9]!==s.length||e[10]!==r.kind||e[11]!==r.request||e[12]!==r.sessionId?(h=C=>{const $=C.target;if(!($.closest("input,textarea,select,[contenteditable=true]")||C.metaKey||C.ctrlKey||C.altKey)&&((C.key==="j"||C.key==="n"||C.key==="ArrowDown")&&(C.preventDefault(),d(Math.min(s.length-1,f+1))),(C.key==="k"||C.key==="ArrowUp")&&(C.preventDefault(),d(Math.max(0,f-1))),C.key==="o"&&(C.preventDefault(),i(r.sessionId)),(C.key==="Enter"||C.key==="d")&&$===C.currentTarget&&x(r.sessionId))){if(r.kind!=="permission")return;const Y=C.key==="d"||r.request.defaultToNo?"deny":"allow",B=r.request.requestId;if(r.request.availableDecisions&&!r.request.availableDecisions.includes(Y)||(C.preventDefault(),u.current.has(B)||n.responding.has(B)))return;u.current.add(B),n.respond(r.sessionId,B,Y).finally(()=>u.current.delete(B))}},e[5]=f,e[6]=x,e[7]=n,e[8]=i,e[9]=s.length,e[10]=r.kind,e[11]=r.request,e[12]=r.sessionId,e[13]=h):h=e[13];const b=h;let w;e[14]!==f||e[15]!==s.length?(w=s.length>1&&t.jsxs("span",{className:"flex items-center gap-1 text-xs tabular-nums text-muted-foreground",children:[f+1," of ",s.length,t.jsx(U,{variant:"ghost",size:"icon-xs","aria-label":"Previous request",disabled:f===0,onClick:()=>d(f-1),children:t.jsx(Os,{"data-icon":"inline-start"})}),t.jsx(U,{variant:"ghost",size:"icon-xs","aria-label":"Next request",disabled:f===s.length-1,onClick:()=>d(f+1),children:t.jsx(Ue,{"data-icon":"inline-start"})})]}),e[14]=f,e[15]=s.length,e[16]=w):w=e[16];let I;e[17]!==s.length||e[18]!==w?(I=t.jsx(He,{title:"Needs you",count:s.length,children:w}),e[17]=s.length,e[18]=w,e[19]=I):I=e[19];let j;e[20]===Symbol.for("react.memo_cache_sentinel")?(j=t.jsx("span",{className:"size-1.5 shrink-0 rounded-full bg-warning","aria-hidden":"true"}),e[20]=j):j=e[20];let N;e[21]!==i||e[22]!==r.sessionId?(N=()=>i(r.sessionId),e[21]=i,e[22]=r.sessionId,e[23]=N):N=e[23];let y;e[24]!==o||e[25]!==r.sessionId?(y=o(r.sessionId)??"A session",e[24]=o,e[25]=r.sessionId,e[26]=y):y=e[26];let v;e[27]!==N||e[28]!==y?(v=t.jsx("button",{type:"button",onClick:N,className:"min-w-0 truncate rounded-sm font-medium outline-none hover:underline focus-visible:ring-2 focus-visible:ring-ring",children:y}),e[27]=N,e[28]=y,e[29]=v):v=e[29];let k;e[30]!==m?(k=m&&t.jsxs("span",{className:"min-w-0 truncate text-muted-foreground",children:["· ",m]}),e[30]=m,e[31]=k):k=e[31];let D;e[32]!==r.since?(D=je(new Date(r.since).toISOString()),e[32]=r.since,e[33]=D):D=e[33];let A;e[34]!==D?(A=t.jsxs("span",{className:"ml-auto shrink-0 text-xs tabular-nums text-warning",children:["waiting ",D]}),e[34]=D,e[35]=A):A=e[35];let q;e[36]!==k||e[37]!==A||e[38]!==v?(q=t.jsxs("div",{className:"flex items-center gap-2 px-0.5 text-[13px]",children:[j,v,k,A]}),e[36]=k,e[37]=A,e[38]=v,e[39]=q):q=e[39];const S=Be[r.kind];let _;e[40]!==S?(_=t.jsx("p",{className:"px-0.5 text-xs text-muted-foreground",children:S}),e[40]=S,e[41]=_):_=e[41];let O;e[42]!==r?(O=Te(r),e[42]=r,e[43]=O):O=e[43];let M;e[44]!==x||e[45]!==r.sessionId?(M=x(r.sessionId),e[44]=x,e[45]=r.sessionId,e[46]=M):M=e[46];let P;e[47]!==i||e[48]!==r.sessionId?(P=()=>i(r.sessionId),e[47]=i,e[48]=r.sessionId,e[49]=P):P=e[49];let z;e[50]!==n||e[51]!==r||e[52]!==O||e[53]!==M||e[54]!==P?(z=t.jsx(Xs,{request:r,input:n,canAnswer:M,onOpen:P},O),e[50]=n,e[51]=r,e[52]=O,e[53]=M,e[54]=P,e[55]=z):z=e[55];let H;e[56]!==q||e[57]!==_||e[58]!==z?(H=t.jsxs("div",{className:"flex flex-col gap-2",children:[q,_,z]}),e[56]=q,e[57]=_,e[58]=z,e[59]=H):H=e[59];let L;e[60]!==f||e[61]!==l||e[62]!==o||e[63]!==s?(L=s.length>1&&t.jsx("ol",{className:"mt-3 flex flex-col","aria-label":"Also waiting",children:s.map((C,$)=>$===f?null:t.jsx("li",{children:t.jsxs("button",{type:"button",onClick:()=>d($),className:"grid w-full grid-cols-[18px_minmax(0,1fr)_auto] items-center gap-2.5 rounded-lg px-2 py-2 text-left text-[12.5px] outline-none hover:bg-accent focus-visible:ring-2 focus-visible:ring-ring",children:[t.jsx("span",{className:"text-right text-[11px] tabular-nums text-muted-foreground/80",children:$+1}),t.jsxs("span",{className:"flex min-w-0 flex-col",children:[t.jsxs("span",{className:"truncate font-medium",children:[o(C.sessionId)??"A session",Ce(l.get(C.sessionId),o)&&t.jsxs("span",{className:"font-normal text-muted-foreground",children:[" · ",Ce(l.get(C.sessionId),o)]})]}),t.jsx("span",{className:"truncate text-[11.5px] text-muted-foreground",children:Be[C.kind]})]}),t.jsx("span",{className:"text-[11px] tabular-nums text-warning",children:je(new Date(C.since).toISOString())})]})},Te(C)))}),e[60]=f,e[61]=l,e[62]=o,e[63]=s,e[64]=L):L=e[64];let F;e[65]===Symbol.for("react.memo_cache_sentinel")?(F=t.jsx("p",{className:"mt-2 px-0.5 text-[11px] text-muted-foreground/80",children:"J / K move · Enter answers · D denies · O opens"}),e[65]=F):F=e[65];let V;return e[66]!==b||e[67]!==H||e[68]!==L||e[69]!==I?(V=t.jsxs("section",{"aria-label":"Needs you",tabIndex:0,onKeyDown:b,className:"min-w-0 rounded-xl outline-none focus-visible:ring-2 focus-visible:ring-ring lg:min-h-0 lg:overflow-y-auto",children:[I,H,L,F]}),e[66]=b,e[67]=H,e[68]=L,e[69]=I,e[70]=V):V=e[70],V}function mt(c){var e,s;return c.state==="needs-you"||(((e=c.counts)==null?void 0:e.needsYou)??0)>0?ve.attention:c.state==="working"||(((s=c.counts)==null?void 0:s.working)??0)>0?ve.working:null}function xt(c){const e=Q.c(39),{sessions:s,total:n,query:l,onQueryChange:o,searchRef:i,nameOf:x,projectLabel:a,onOpen:d,onRename:p,onBrowseProjects:u}=c;let f;e[0]!==l?(f=l.trim(),e[0]=l,e[1]=f):f=e[1];const r=f.length>0;let g;e[2]!==o||e[3]!==i?(g=()=>{var q;o(""),(q=i.current)==null||q.focus()},e[2]=o,e[3]=i,e[4]=g):g=e[4];const m=g,h=r?s.length:n;let b;e[5]===Symbol.for("react.memo_cache_sentinel")?(b=t.jsx(Rs,{className:"pointer-events-none absolute left-2.5 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground","aria-hidden":"true"}),e[5]=b):b=e[5];let w;e[6]!==o?(w=q=>o(q.target.value),e[6]=o,e[7]=w):w=e[7];let I;e[8]!==m||e[9]!==i?(I=q=>{var S;q.key==="Escape"&&(q.preventDefault(),m(),(S=i.current)==null||S.blur())},e[8]=m,e[9]=i,e[10]=I):I=e[10];let j;e[11]!==l||e[12]!==i||e[13]!==w||e[14]!==I?(j=t.jsx(Ee,{ref:i,type:"search","aria-label":"Search sessions",placeholder:"Search sessions",value:l,onChange:w,onKeyDown:I,className:"h-7 pl-8 pr-7 text-xs [&::-webkit-search-cancel-button]:hidden"}),e[11]=l,e[12]=i,e[13]=w,e[14]=I,e[15]=j):j=e[15];let N;e[16]!==m||e[17]!==r?(N=r?t.jsx("button",{type:"button","aria-label":"Clear search",onClick:m,className:"absolute right-1.5 top-1/2 flex size-4 -translate-y-1/2 items-center justify-center rounded-sm text-muted-foreground outline-none hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring",children:t.jsx(Ts,{className:"size-3"})}):t.jsx("kbd",{className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 font-mono text-[10px] text-muted-foreground/70","aria-hidden":"true",children:"/"}),e[16]=m,e[17]=r,e[18]=N):N=e[18];let y;e[19]!==j||e[20]!==N?(y=t.jsxs("div",{className:"relative w-full max-w-64",children:[b,j,N]}),e[19]=j,e[20]=N,e[21]=y):y=e[21];let v;e[22]!==u?(v=u&&t.jsxs(U,{variant:"ghost",size:"xs",className:"text-muted-foreground",onClick:u,children:[t.jsx(Me,{"data-icon":"inline-start"}),"All projects"]}),e[22]=u,e[23]=v):v=e[23];let k;e[24]!==v||e[25]!==h||e[26]!==y?(k=t.jsxs(He,{title:"Your sessions",count:h,children:[y,v]}),e[24]=v,e[25]=h,e[26]=y,e[27]=k):k=e[27];let D;e[28]!==x||e[29]!==d||e[30]!==p||e[31]!==a||e[32]!==l||e[33]!==r||e[34]!==s?(D=s.length===0?t.jsx(ws,{children:t.jsx(js,{children:t.jsx(Ns,{children:r?`No session matches “${l.trim()}”.`:"Start a session and it shows up here, with every session it starts."})})}):t.jsx("ul",{className:"flex flex-col lg:min-h-0 lg:flex-1 lg:overflow-y-auto",children:s.map(q=>t.jsx(gt,{entry:q,nameOf:x,projectLabel:a,onOpen:d,onRename:p},q.session.sessionId))}),e[28]=x,e[29]=d,e[30]=p,e[31]=a,e[32]=l,e[33]=r,e[34]=s,e[35]=D):D=e[35];let A;return e[36]!==k||e[37]!==D?(A=t.jsxs("section",{"aria-label":"Your sessions",className:"flex min-w-0 flex-col lg:min-h-0 lg:flex-1",children:[k,D]}),e[36]=k,e[37]=D,e[38]=A):A=e[38],A}function gt(c){const e=Q.c(60),{entry:s,nameOf:n,projectLabel:l,onOpen:o,onRename:i}=c,[x,a]=G.useState(null),{session:d}=s;let p;e[0]!==n||e[1]!==d.sessionId?(p=n(d.sessionId)??"Untitled session",e[0]=n,e[1]=d.sessionId,e[2]=p):p=e[2];const u=p;let f;e[3]!==d?(f=ys(d),e[3]=d,e[4]=f):f=e[4];const r=f;let g,m;if(e[5]!==x||e[6]!==s||e[7]!==n||e[8]!==o||e[9]!==i||e[10]!==r||e[11]!==l||e[12]!==d||e[13]!==u){const I=mt(s);let j;e[16]!==x||e[17]!==i||e[18]!==r||e[19]!==d.sessionId||e[20]!==u?(j=()=>{if(x===null)return;const P=x.trim();a(null),P!==u&&i(d.sessionId,P===r?"":P)},e[16]=x,e[17]=i,e[18]=r,e[19]=d.sessionId,e[20]=u,e[21]=j):j=e[21];const N=j;let y;e[22]!==s.counts||e[23]!==d.isActive?(y=s.counts?t.jsxs(t.Fragment,{children:[s.counts.working>0&&t.jsxs("span",{children:[t.jsx("span",{className:"font-medium text-foreground tabular-nums",children:s.counts.working})," working"]}),s.counts.needsYou>0&&t.jsxs("span",{className:"text-warning",children:[t.jsx("span",{className:"font-medium tabular-nums",children:s.counts.needsYou})," need you"]}),t.jsxs("span",{children:[t.jsx("span",{className:"font-medium text-foreground tabular-nums",children:s.counts.size})," in crew"]})]}):d.isActive&&t.jsx("span",{children:"working"}),e[22]=s.counts,e[23]=d.isActive,e[24]=y):y=e[24];let v;e[25]!==y?(v=t.jsx("span",{className:"flex items-center gap-3 text-xs text-muted-foreground",children:y}),e[25]=y,e[26]=v):v=e[26];let k;e[27]!==s.landed?(k=s.landed&&t.jsxs(vs,{variant:"outline",className:"shrink-0",children:["#",s.landed.number]}),e[27]=s.landed,e[28]=k):k=e[28];let D;e[29]!==s.landed||e[30]!==n||e[31]!==d.lastUserMessage?(D=s.landed?`${s.landed.title??"Pull request"} · ${n(s.landed.by.sessionId)??""}`:d.lastUserMessage??"",e[29]=s.landed,e[30]=n,e[31]=d.lastUserMessage,e[32]=D):D=e[32];let A;e[33]!==D?(A=t.jsx("span",{className:"truncate",children:D}),e[33]=D,e[34]=A):A=e[34];let q;e[35]!==A||e[36]!==k?(q=t.jsxs("span",{className:"flex min-w-0 items-center gap-2 text-xs text-muted-foreground",children:[k,A]}),e[35]=A,e[36]=k,e[37]=q):q=e[37];let S;e[38]!==s.activityAt||e[39]!==s.counts?(S=s.counts?`crew active ${je(s.activityAt)}`:je(s.activityAt),e[38]=s.activityAt,e[39]=s.counts,e[40]=S):S=e[40];let _;e[41]!==S?(_=t.jsx("span",{className:"text-[11px] tabular-nums text-muted-foreground/80",children:S}),e[41]=S,e[42]=_):_=e[42];let O;e[43]!==q||e[44]!==_||e[45]!==v?(O=t.jsxs(t.Fragment,{children:[v,q,_]}),e[43]=q,e[44]=_,e[45]=v,e[46]=O):O=e[46];const M=O;g="group/row relative border-t border-border/70 first:border-t-0",m=x===null?t.jsxs("button",{type:"button",onClick:()=>o(d.sessionId),className:te("grid w-full grid-cols-1 items-center gap-x-4 gap-y-1 rounded-lg py-3 pl-3 pr-10 text-left xl:grid-cols-[minmax(0,1fr)_auto]","outline-none hover:bg-accent focus-visible:ring-2 focus-visible:ring-ring"),children:[t.jsxs("span",{className:"flex min-w-0 items-center gap-2.5",children:[I&&t.jsx("span",{className:te("size-1.5 shrink-0 rounded-full",I),"aria-hidden":"true"}),t.jsx("span",{className:"truncate text-[13.5px] font-medium",children:u}),t.jsx("span",{className:"hidden min-w-0 truncate text-xs text-muted-foreground sm:inline",children:l(d)})]}),M]}):t.jsxs("div",{className:"grid w-full grid-cols-1 items-center gap-x-4 gap-y-1 rounded-lg py-3 pl-3 pr-10 text-left xl:grid-cols-[minmax(0,1fr)_auto]",children:[t.jsxs("span",{className:"flex min-w-0 items-center gap-2.5",children:[I&&t.jsx("span",{className:te("size-1.5 shrink-0 rounded-full",I),"aria-hidden":"true"}),t.jsx(Ee,{autoFocus:!0,"aria-label":"Session name",value:x,placeholder:r,onChange:P=>a(P.target.value),onFocus:pt,onBlur:N,onKeyDown:P=>{P.key==="Enter"&&(P.preventDefault(),N()),P.key==="Escape"&&(P.preventDefault(),a(null))},className:"h-7 max-w-md text-[13.5px] font-medium"}),t.jsx("span",{className:"hidden min-w-0 truncate text-xs text-muted-foreground sm:inline",children:l(d)})]}),M]}),e[5]=x,e[6]=s,e[7]=n,e[8]=o,e[9]=i,e[10]=r,e[11]=l,e[12]=d,e[13]=u,e[14]=g,e[15]=m}else g=e[14],m=e[15];let h;e[47]!==s||e[48]!==n||e[49]!==o||e[50]!==u?(h=s.crew.length>0&&t.jsx(ht,{entry:s,title:u,nameOf:n,onOpen:o}),e[47]=s,e[48]=n,e[49]=o,e[50]=u,e[51]=h):h=e[51];let b;e[52]!==x||e[53]!==u?(b=x===null&&t.jsx(U,{variant:"ghost",size:"icon-xs","aria-label":`Rename ${u}`,title:"Rename",onClick:()=>a(u),className:"absolute right-2 top-2.5 text-muted-foreground opacity-0 transition-opacity group-hover/row:opacity-100 focus-visible:opacity-100",children:t.jsx(Ks,{"data-icon":"icon"})}),e[52]=x,e[53]=u,e[54]=b):b=e[54];let w;return e[55]!==g||e[56]!==m||e[57]!==h||e[58]!==b?(w=t.jsxs("li",{className:g,children:[m,h,b]}),e[55]=g,e[56]=m,e[57]=h,e[58]=b,e[59]=w):w=e[59],w}function pt(c){return c.target.select()}function ht(c){const e=Q.c(50),{entry:s,title:n,nameOf:l,onOpen:o}=c,[i,x]=G.useState(!1);let a,d,p,u,f,r,g,m;if(e[0]!==s.crew||e[1]!==s.session||e[2]!==i||e[3]!==l||e[4]!==o||e[5]!==n){a=s.crew.filter(bt),d=a.slice(0,ot);let A;e[14]!==s.session||e[15]!==l?(A=q=>{var _;const S=(_=q.crew)==null?void 0:_.parentId;return S&&S!==s.session.sessionId?l(S):void 0},e[14]=s.session,e[15]=l,e[16]=A):A=e[16],m=A,g="-mt-1.5 flex flex-col gap-1.5 px-3 pb-3",p="group",u=`${n} crew`,f="flex min-w-0 flex-wrap items-center gap-1.5",r=!i&&d.map(q=>{const{member:S,state:_}=q;return t.jsxs("button",{type:"button","aria-label":`Open ${l(S.sessionId)??"crew member"}`,onClick:()=>o(S.sessionId),className:"flex max-w-56 items-center gap-1.5 rounded-md border border-border/70 px-2 py-0.5 text-xs outline-none hover:bg-accent focus-visible:ring-2 focus-visible:ring-ring",children:[t.jsx("span",{className:te("size-1.5 shrink-0 rounded-full",ze[_]),"aria-hidden":"true"}),t.jsx("span",{className:"truncate",children:l(S.sessionId)??"Crew member"})]},S.sessionId)}),e[0]=s.crew,e[1]=s.session,e[2]=i,e[3]=l,e[4]=o,e[5]=n,e[6]=a,e[7]=d,e[8]=p,e[9]=u,e[10]=f,e[11]=r,e[12]=g,e[13]=m}else a=e[6],d=e[7],p=e[8],u=e[9],f=e[10],r=e[11],g=e[12],m=e[13];let h;e[17]!==i||e[18]!==a||e[19]!==d?(h=!i&&a.length>d.length&&t.jsxs("span",{className:"text-xs tabular-nums text-muted-foreground",children:["+",a.length-d.length," more"]}),e[17]=i,e[18]=a,e[19]=d,e[20]=h):h=e[20];let b;e[21]!==i?(b=()=>x(!i),e[21]=i,e[22]=b):b=e[22];const w=i&&"rotate-180";let I;e[23]!==w?(I=te("transition-transform",w),e[23]=w,e[24]=I):I=e[24];let j;e[25]!==I?(j=t.jsx($s,{"data-icon":"inline-start",className:I}),e[25]=I,e[26]=j):j=e[26];const N=i?"Hide crew":`Show crew (${s.crew.length})`;let y;e[27]!==i||e[28]!==j||e[29]!==N||e[30]!==b?(y=t.jsxs(U,{variant:"ghost",size:"xs","aria-expanded":i,onClick:b,className:"text-muted-foreground",children:[j,N]}),e[27]=i,e[28]=j,e[29]=N,e[30]=b,e[31]=y):y=e[31];let v;e[32]!==p||e[33]!==y||e[34]!==u||e[35]!==f||e[36]!==r||e[37]!==h?(v=t.jsxs("div",{role:p,"aria-label":u,className:f,children:[r,h,y]}),e[32]=p,e[33]=y,e[34]=u,e[35]=f,e[36]=r,e[37]=h,e[38]=v):v=e[38];let k;e[39]!==s.crew||e[40]!==i||e[41]!==l||e[42]!==o||e[43]!==n||e[44]!==m?(k=i&&t.jsx("ul",{"aria-label":`${n} crew members`,className:"flex max-h-72 flex-col overflow-y-auto rounded-md border border-border/70",children:s.crew.map(A=>{const{member:q,state:S}=A;return t.jsx("li",{children:t.jsxs("button",{type:"button","aria-label":`Open ${l(q.sessionId)??"crew member"}`,onClick:()=>o(q.sessionId),className:"grid w-full grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-2.5 px-2.5 py-1.5 text-left text-xs outline-none hover:bg-accent focus-visible:bg-accent",children:[t.jsx("span",{className:te("size-1.5 rounded-full",ze[S]),"aria-hidden":"true"}),t.jsxs("span",{className:"truncate",children:[l(q.sessionId)??"Crew member",m(q)&&t.jsxs("span",{className:"text-muted-foreground",children:[" · via ",m(q)]})]}),t.jsx("span",{className:te("tabular-nums text-muted-foreground",S==="needs-you"&&"text-warning"),children:S==="done"?je(q.lastActivityAt||q.lastModified):lt[S]})]})},q.sessionId)})}),e[39]=s.crew,e[40]=i,e[41]=l,e[42]=o,e[43]=n,e[44]=m,e[45]=k):k=e[45];let D;return e[46]!==v||e[47]!==k||e[48]!==g?(D=t.jsxs("div",{className:g,children:[v,k]}),e[46]=v,e[47]=k,e[48]=g,e[49]=D):D=e[49],D}function bt(c){const{state:e}=c;return e!=="done"}export{vt as MissionHome};
@@ -1 +0,0 @@
1
- import{r as x,j as e}from"./vendor-react-gGw_S5I_.js";import{b7 as Y,B as h,c as R,S as Z,E as _,f as ee,U as se,h as ne,i as ae,k as re,d8 as C,V as te,y as ie,z as oe,d3 as S,d9 as le,A as ce,aa as U,a9 as F,a5 as T,a2 as de,a3 as $,a4 as P,a7 as O,a6 as I,a8 as B,F as p,a1 as d}from"./index-Bg4A-xl7.js";import{a7 as b,a5 as he,V as me,X as xe,bN as ue,bw as pe,b0 as M,A as ge,c1 as je}from"./vendor-ui-Dc_kJXxz.js";import"./vendor-markdown-BEJ8yVzA.js";function y(l){return l.commitsAhead>0&&(!l.branch||C(l.name,l.branch))}const fe={M:"text-warning",A:"text-success",D:"text-destructive",R:"text-info"};function Ce({worktrees:l,loading:g,dirName:t,onRefetch:j,onOpenSession:W,onClose:H}){const c=Y("hostFiles"),[J,N]=x.useState(null),[L,w]=x.useState(null),[G,u]=x.useState(!1),[a,m]=x.useState(null),[r,f]=x.useState(null),D=async s=>{if(!(!c||!t)){N(s.name);try{const n=await p(`/api/worktrees/${encodeURIComponent(t)}/${encodeURIComponent(s.name)}`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({force:s.isDirty})});if(!n.ok){const{error:i}=await n.json().catch(()=>({error:void 0}));throw new Error(i??`HTTP ${n.status}`)}j()}catch(n){d.error(`Failed to delete worktree: ${n instanceof Error?n.message:"Unknown error"}`)}finally{N(null)}}},V=s=>{if(!(!c||!t)){if(s.isDirty){m({worktree:s,reason:"dirty"});return}if(y(s)){m({worktree:s,reason:"unpushed"});return}D(s)}},q=()=>{if(!a)return;const{worktree:s,reason:n}=a;if(n==="dirty"&&y(s)){m({worktree:s,reason:"unpushed"});return}m(null),D(s)},X=async s=>{if(!(!c||!t)){w(s.name);try{const n=await p(`/api/worktrees/${encodeURIComponent(t)}/create-pr`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeName:s.name,title:s.name.replace(/-/g," ")})});if(n.ok){const i=await n.json();i.url?window.open(i.url,"_blank","noopener,noreferrer"):d.warning("PR created but no URL was returned")}else{const i=await n.json().catch(()=>({error:"Unknown error"}));d.error(`Failed to create PR: ${i.error||"Unknown error"}`)}}catch(n){d.error(`Error creating PR: ${n instanceof Error?n.message:"Unknown error"}`)}finally{w(null)}}},K=async()=>{if(!(!c||!t)){u(!0);try{const s=await p(`/api/worktrees/${encodeURIComponent(t)}/cleanup`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})});if(s.ok){const{stale:n}=await s.json();n.length===0?d.info("No stale worktrees found"):f(n.map(i=>i.name))}}catch(s){d.error(`Cleanup failed: ${s instanceof Error?s.message:"Unknown error"}`)}finally{u(!1)}}},Q=async()=>{if(!c||!t||!r)return;const s=r;f(null),u(!0);try{await p(`/api/worktrees/${encodeURIComponent(t)}/cleanup`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({confirm:!0,names:s})}),j()}catch(n){d.error(`Cleanup failed: ${n instanceof Error?n.message:"Unknown error"}`)}finally{u(!1)}};return e.jsxs(e.Fragment,{children:[e.jsxs("aside",{"aria-label":"Worktrees",className:"flex size-full min-h-0 flex-col bg-canvas",children:[e.jsxs("div",{className:"flex h-10 shrink-0 items-center gap-2 px-3",children:[e.jsx(b,{"data-icon":"inline-start","aria-hidden":"true",className:"size-4 text-muted-foreground"}),e.jsx("h2",{className:"text-sm font-medium",children:"Worktrees"}),e.jsx("div",{className:"flex-1"}),c&&e.jsx(h,{variant:"ghost",size:"icon-sm",onClick:K,disabled:G,"aria-label":"Cleanup stale worktrees",children:e.jsx(he,{"data-icon":"inline-start"})}),e.jsx(h,{variant:"ghost",size:"icon-sm",onClick:j,disabled:g,"aria-label":"Refresh worktrees",children:e.jsx(me,{"data-icon":"inline-start",className:R(g&&"animate-spin")})}),e.jsx(h,{variant:"ghost",size:"icon-sm",onClick:H,"aria-label":"Close worktrees",children:e.jsx(xe,{"data-icon":"inline-start"})})]}),e.jsx(Z,{}),e.jsxs("div",{className:"flex min-h-0 flex-1 flex-col gap-2 overflow-y-auto p-3",children:[!t&&e.jsx("div",{className:"flex items-center justify-center h-full text-sm text-muted-foreground",children:"Select a project to view worktrees"}),t&&l.length===0&&!g&&e.jsx(_,{className:"border-0 py-16",children:e.jsxs(ee,{children:[e.jsx(se,{variant:"icon",children:e.jsx(b,{})}),e.jsx(ne,{children:"No worktrees"}),e.jsx(ae,{children:"Create a new session with “Isolate in worktree” enabled"})]})}),l.map(s=>{var A,z,E;const n=((A=s.changedFiles)==null?void 0:A.reduce((o,v)=>o+v.additions,0))??0,i=((z=s.changedFiles)==null?void 0:z.reduce((o,v)=>o+v.deletions,0))??0,k=((E=s.changedFiles)==null?void 0:E.length)??0;return e.jsxs("div",{className:"rounded-lg border bg-card p-3 transition-colors hover:bg-accent/40",children:[e.jsxs("div",{className:"mb-1.5 flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("span",{className:"truncate text-sm font-medium text-foreground",children:s.name}),s.isDirty&&e.jsx("span",{className:"flex size-2 shrink-0 rounded-full bg-warning",title:"Uncommitted changes"}),s.commitsAhead>0&&e.jsxs(re,{variant:"outline",className:"h-5 shrink-0 px-1.5 text-xs",children:[s.commitsAhead," ahead"]})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-0.5",children:[s.linkedSessions.length>0&&e.jsx(h,{variant:"ghost",size:"icon-xs",onClick:()=>W(s.linkedSessions[0]),"aria-label":"Open session",children:e.jsx(ue,{"data-icon":"inline-start"})}),c&&e.jsxs(e.Fragment,{children:[e.jsx(h,{variant:"ghost",size:"icon-xs",onClick:()=>X(s),disabled:L===s.name||s.commitsAhead===0,"aria-label":"Create PR",children:e.jsx(pe,{"data-icon":"inline-start"})}),e.jsx(h,{variant:"ghost",size:"icon-xs",onClick:()=>V(s),disabled:J===s.name,className:"text-destructive hover:bg-destructive/10 hover:text-destructive","aria-label":"Delete worktree",children:e.jsx(M,{"data-icon":"inline-start"})})]})]})]}),e.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[e.jsx("span",{className:"shrink-0 font-mono",children:s.head}),e.jsx("span",{className:"truncate",children:s.headMessage})]}),(s.createdAt||!C(s.name,s.branch))&&e.jsxs("div",{className:"mt-0.5 flex min-w-0 items-center gap-1.5 text-xs text-muted-foreground",children:[!C(s.name,s.branch)&&e.jsxs("span",{className:"flex min-w-0 items-center gap-1",children:[e.jsx(b,{className:"size-3 shrink-0","aria-hidden":"true"}),e.jsx("span",{className:"truncate",children:s.branch||"detached"})]}),s.createdAt&&e.jsx("span",{className:"shrink-0",children:te(s.createdAt)})]}),k>0&&e.jsxs(ie,{className:"mt-2",children:[e.jsxs("div",{className:"relative flex w-full items-center gap-1.5 text-xs text-muted-foreground transition-colors hover:text-foreground",children:[e.jsxs(oe,{className:"group flex items-center gap-1.5 after:absolute after:inset-0",children:[e.jsx(ge,{"data-icon":"inline-start",className:"size-3 transition-transform group-data-panel-open:rotate-90 motion-reduce:transition-none"}),e.jsx(je,{"data-icon":"inline-start",className:"size-3"}),e.jsxs("span",{children:[k," file",k!==1?"s":""," changed"]})]}),e.jsx(S,{add:n,del:i,breakdown:le(s.changedFiles),className:"relative ml-1"})]}),e.jsx(ce,{children:e.jsx("div",{className:"mt-1.5 flex flex-col gap-px rounded-md bg-muted/40 p-1.5",children:s.changedFiles.map(o=>e.jsxs("div",{className:"flex items-center gap-2 px-1 py-0.5 font-mono text-xs",children:[e.jsx("span",{className:R("shrink-0 w-3 text-center",fe[o.status]??"text-muted-foreground"),children:o.status}),e.jsx("span",{className:"truncate text-foreground/80",children:o.path}),e.jsx(S,{add:o.additions,del:o.deletions,className:"ml-auto text-muted-foreground"})]},o.path))})})]})]},s.name)})]})]}),e.jsx(U,{open:a!==null,onOpenChange:s=>{s||m(null)},children:e.jsxs(F,{size:"sm",children:[e.jsxs(T,{children:[e.jsx(de,{className:"bg-destructive/10 text-destructive",children:e.jsx(M,{})}),e.jsx($,{children:(a==null?void 0:a.reason)==="dirty"?"Delete worktree with uncommitted changes?":"Delete worktree with unpushed commits?"}),e.jsxs(P,{children:[(a==null?void 0:a.reason)==="dirty"?`"${a.worktree.name}" has uncommitted changes.`:`"${a==null?void 0:a.worktree.name}" has ${a==null?void 0:a.worktree.commitsAhead} unpushed commit(s).`," "," ","Deleting it cannot be undone."]})]}),e.jsxs(O,{children:[e.jsx(I,{size:"sm",children:"Cancel"}),e.jsx(B,{variant:"destructive",size:"sm",onClick:q,children:(a==null?void 0:a.reason)==="dirty"&&y(a.worktree)?"Continue":"Delete worktree"})]})]})}),e.jsx(U,{open:r!==null,onOpenChange:s=>{s||f(null)},children:e.jsxs(F,{children:[e.jsxs(T,{children:[e.jsx($,{children:"Remove stale worktrees?"}),e.jsxs(P,{children:[r==null?void 0:r.length," stale worktree",(r==null?void 0:r.length)===1?"":"s"," will be removed: ",r==null?void 0:r.join(", "),"."]})]}),e.jsxs(O,{children:[e.jsx(I,{size:"sm",children:"Cancel"}),e.jsx(B,{variant:"destructive",size:"sm",onClick:()=>void Q(),children:"Remove worktrees"})]})]})})]})}export{Ce as WorktreePanel};