@staff0rd/assist 0.960.0 → 0.961.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4019,7 +4019,7 @@ ${f.join(`
4019
4019
  `,Aoi=go`
4020
4020
  0%, 100% { transform: scale(1); }
4021
4021
  50% { transform: scale(1.08); }
4022
- `,Akr={content:'""',position:"absolute",borderRadius:"inherit",background:"conic-gradient(from calc(var(--rainbow-pill-h) * 1deg) in oklch longer hue, oklch(66% 0.21 0), oklch(66% 0.21 0))",animation:`${Roi} 1.8s linear infinite`},Poi={display:"inline-flex",alignItems:"center",px:1.5,py:"3px",borderRadius:999,position:"relative",isolation:"isolate",fontWeight:700,animation:`${Aoi} 1.6s ease-in-out infinite`,"&::before":{...Akr,inset:0,zIndex:-1},"&::after":{...Akr,inset:"-5px",zIndex:-2,filter:"blur(9px)",opacity:.85},"& span":{color:sl.rainbowPill.text,textShadow:sl.rainbowPill.shadow},"@media (prefers-reduced-motion: reduce)":{animation:"none","&::before, &::after":{animation:"none"}}};function Pkr({children:e}){return(0,i6.jsxs)(i6.Fragment,{children:[(0,i6.jsx)(p5,{styles:Eoi}),(0,i6.jsx)(J,{component:"span","data-testid":"rainbow-pill",sx:Poi,children:e})]})}function Lkr({pct:e,timeLabel:t}){return[Math.round(e),...(t.match(/\d+/g)??[]).map(Number)].join(",")}function Mkr(e){if(e.length!==2)return!1;let[t,r]=e;return Lkr(t)===Lkr(r)}var CT=E($(),1);function Dkr({rateLimits:e}){let t=c$(3e4),r=[{window:e.five_hour,windowSeconds:18e3,fallbackLabel:"5h"},{window:e.seven_day,windowSeconds:604800,fallbackLabel:"7d"}].filter(o=>o.window?.used_percentage!=null),n=Mkr(r.map(o=>({pct:o.window?.used_percentage??0,timeLabel:Fve(o.window?.resets_at,o.fallbackLabel,t)}))),i=r.map((o,a)=>(0,CT.jsxs)(Ikr.Fragment,{children:[a>0?(0,CT.jsx)(J,{component:"span",sx:{color:A$,mr:.5},children:","}):null,(0,CT.jsx)(Rkr,{window:o.window,windowSeconds:o.windowSeconds,fallbackLabel:o.fallbackLabel,now:t})]},o.fallbackLabel));return n?(0,CT.jsx)(Pkr,{children:i}):(0,CT.jsx)(CT.Fragment,{children:i})}var B_=E($(),1);function Okr({groups:e}){return(0,B_.jsx)(B_.Fragment,{children:e.map((t,r)=>(0,B_.jsxs)(Nkr.Fragment,{children:[(0,B_.jsx)(J,{component:"span",sx:{color:A$,ml:r>0?1:0,mr:.5},children:Du(t.harness)}),(0,B_.jsx)(Dkr,{rateLimits:t.rateLimits})]},t.harness))})}var Bkr={root:{fontFamily:"fontFamilyMono",fontSize:12,display:"grid",gap:1},group:{display:"grid",gap:"2px"},heading:{color:e=>e.tokens.color.onAppBar.secondary},foot:{pt:.75,opacity:.6,borderTop:"1px solid color-mix(in srgb, currentColor 18%, transparent)"}};function Loi(e){if(e==="over")return{level:"warn",boundary:100};if(e==="warn")return{level:"ok",boundary:75}}function Moi(e){if(e==="ok")return{level:"warn",boundary:75};if(e==="warn")return{level:"over",boundary:100}}function Ioi(e,t,r,n){if(e>=t)return;let i=e/t;return Math.round(r-n*(1-i))}function zkr(e,t,r,n){if(t==null)return{kind:"unprojectable"};let i=EGe(t,r,n);if(i==null)return{kind:"unprojectable"};let o=T_(e,t,r,n),a=Loi(o),s=Moi(o);return{kind:"projected",recovery:a&&{level:a.level,pct:a.boundary*i,at:Ioi(e,a.boundary,t,r)},worse:s&&{level:s.level,pct:s.boundary*i}}}function zve(e){return t=>t.tokens.color.onAppBar.level[e]}function Hkr(e,t){return e.at==null?"not before reset":`${e.level==="ok"?"green":"under"} in ${J1e(e.at,t)}`}var F_=E($(),1),Ukr={display:"contents"};function XGe({direction:e,threshold:t}){let r=e==="back";if(!t)return(0,F_.jsxs)(J,{component:"span",sx:Ukr,children:[(0,F_.jsx)("span",{}),(0,F_.jsx)("span",{})]});let n=(0,F_.jsx)(J,{component:"span",sx:{opacity:.6},children:r?"\u2190":"\u2192"}),i=(0,F_.jsxs)(J,{component:"span",sx:{color:zve(t.level),textAlign:"right"},children:[Math.round(t.pct),"%"]});return(0,F_.jsxs)(J,{component:"span",sx:Ukr,children:[r?i:n,r?n:i]})}var Wkr={row:{display:"grid",gridTemplateColumns:"2.5ch 4ch 1ch 4ch 1ch 4ch auto",alignItems:"baseline",gap:.75,fontVariantNumeric:"tabular-nums"},pctWeight:500,note:{pl:.75,color:e=>e.tokens.color.onAppBar.secondary}};var $_=E($(),1);function Gkr({label:e,pct:t,resetsAt:r,windowSeconds:n,now:i}){let o=Wkr,a=T_(t,r,n,i),s=zkr(t,r,n,i),l=s.kind==="projected"?s:void 0;return(0,$_.jsxs)(J,{sx:o.row,children:[(0,$_.jsx)(J,{component:"span",sx:{minWidth:"2ch"},children:e}),(0,$_.jsx)(XGe,{direction:"back",threshold:l?.recovery}),(0,$_.jsxs)(J,{component:"span",sx:{minWidth:"4ch",textAlign:"right",fontWeight:o.pctWeight,color:zve(a)},children:[Math.round(t),"%"]}),(0,$_.jsx)(XGe,{direction:"forward",threshold:l?.worse}),(0,$_.jsx)(J,{component:"span",sx:o.note,children:l?l.recovery&&Hkr(l.recovery,i):"no projection yet"})]})}function Vkr(e){return[{label:"5h",window:e.five_hour,windowSeconds:18e3},{label:"7d",window:e.seven_day,windowSeconds:604800}].flatMap(t=>t.window?.used_percentage==null?[]:[{label:t.label,pct:t.window.used_percentage,resetsAt:t.window.resets_at,windowSeconds:t.windowSeconds}])}var jkr=E($(),1);function qkr({rateLimits:e,now:t}){return Vkr(e).map(r=>(0,jkr.jsx)(Gkr,{label:r.label,pct:r.pct,resetsAt:r.resetsAt,windowSeconds:r.windowSeconds,now:t},r.label))}var o6=E($(),1);function Ykr({groups:e}){let t=c$(3e4),r=Bkr;return(0,o6.jsxs)(J,{sx:r.root,children:[e.map(n=>(0,o6.jsxs)(J,{sx:r.group,children:[(0,o6.jsx)(J,{sx:r.heading,children:Du(n.harness)}),(0,o6.jsx)(qkr,{rateLimits:n.rateLimits,now:t})]},n.harness)),(0,o6.jsx)(J,{sx:r.foot,children:"Account usage per harness \u2014 view history"})]})}var QGe=E($(),1),Doi="Claude account usage (5h / 7d windows) \u2014 view history";function Kkr(e){return e.length===0?{title:Doi,content:"Usage"}:{title:(0,QGe.jsx)(Ykr,{groups:e}),content:(0,QGe.jsx)(Okr,{groups:e})}}var Xkr={display:"flex",alignItems:"center",height:22,px:1,borderRadius:1,fontSize:"inherit","&:hover, &:focus-visible":{bgcolor:e=>e.tokens.color.statusBar.hover,color:e=>e.tokens.color.statusBar.hoverText}},Qkr={tooltip:{sx:{p:"10px 12px",minWidth:300,maxWidth:"none"}}};var ZGe=E($(),1),Noi={};function Zkr({rateLimits:e,harnessRateLimits:t=Noi}){let{title:r,content:n}=Kkr(_kr(e,t));return(0,ZGe.jsx)(sr,{title:r,placement:"top-start",slotProps:Qkr,children:(0,ZGe.jsx)(Qr,{component:ks,to:"/usage",underline:"none",color:"inherit",sx:Xkr,children:n})})}var t_r=E(ce(),1);var z_="0.960.0";var Hve=E(ce(),1),JGe=(0,Hve.createContext)(null);function Uve(){return(0,Hve.useContext)(JGe)}var eVe=E($(),1);function Jkr(){let e=Uve();return!e||e===z_?null:(0,eVe.jsx)(sr,{title:`Daemon is running v${e}, but this page was served by v${z_}. Restart the daemon to match.`,children:(0,eVe.jsx)(Ave,{fontSize:"small",color:"warning","aria-label":"Version mismatch"})})}var e_r=e=>({display:"inline-flex",alignItems:"center",gap:.75,px:1,py:0,height:22,borderRadius:1,fontSize:"inherit",lineHeight:1.5,color:"inherit",opacity:1,bgcolor:t=>e?Lv(t).active:"transparent",transition:"opacity .2s ease, background-color .2s ease, color .2s ease","&:hover, &:focus-visible":{bgcolor:t=>Lv(t).hover,color:t=>Lv(t).hoverText},"& .ready-dot":{width:6,height:6,borderRadius:"50%",bgcolor:t=>Lv(t).dot,boxShadow:t=>`0 0 0 3px ${Lv(t).dotRing}`},"& .ready-count":{fontWeight:500,color:t=>Lv(t).readyText}});var ug=E($(),1);function r_r(){let{entries:e}=jF(),t=Bi(),r=(0,t_r.useCallback)(()=>t("/updates"),[t]),{matches:n,chords:i}=Kn("openUpdates");if(Ao(n,r),!z_)return null;let o=e.filter(e$).length;return(0,ug.jsxs)(ug.Fragment,{children:[(0,ug.jsx)(sr,{describeChild:!0,placement:"top-end",title:(0,ug.jsx)(Ou,{label:"Updates",chords:i}),children:(0,ug.jsxs)(un,{component:ks,to:"/updates","aria-label":o?`Updates: ${o} node${o>1?"s have":" has"} an update ready`:"Updates",sx:e_r(o>0),children:[o>0&&(0,ug.jsx)("span",{className:"ready-dot","aria-hidden":!0}),(0,ug.jsxs)("span",{children:["v",z_]}),o>0&&(0,ug.jsxs)("span",{className:"ready-count",children:[o," ready"]})]})}),(0,ug.jsx)(Jkr,{})]})}var Wve=E($(),1);function n_r({socket:e}){return(0,Wve.jsx)(wkr,{start:(0,Wve.jsx)(Zkr,{rateLimits:e.rateLimits,harnessRateLimits:e.harnessRateLimits}),end:(0,Wve.jsx)(r_r,{})})}var Yve=E(ce(),1);var jve=E(ce(),1);function i_r(e,t,r){if(!e)return"Select a repo to search files.";if(r.error)return"Couldn't search files in this repo.";if(!(r.files.length>0||r.loading))return t?"No matching files.":"No files in this repo."}var H_=E($(),1),Ooi={display:"flex",gap:1,alignItems:"center",minWidth:0},Boi={display:"flex",gap:1,alignItems:"baseline",minWidth:0,overflow:"hidden"},Foi={fontFamily:"fontFamilyMono",fontSize:13,whiteSpace:"nowrap"},$oi={fontFamily:"fontFamilyMono",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function zoi(e){let t=e.lastIndexOf("/");return t===-1?{dir:"",basename:e}:{dir:e.slice(0,t),basename:e.slice(t+1)}}function o_r({files:e,highlight:t,onHighlight:r,onSelect:n}){return(0,H_.jsx)(Up,{dense:!0,sx:{py:0},children:e.map((i,o)=>{let{dir:a,basename:s}=zoi(i);return(0,H_.jsxs)(pn,{selected:o===t,onMouseEnter:()=>r(o),onClick:()=>n(i),sx:Ooi,children:[(0,H_.jsx)(Mge,{path:i}),(0,H_.jsxs)(J,{sx:Boi,children:[(0,H_.jsx)(Le,{component:"span",sx:Foi,children:s}),(0,H_.jsx)(Le,{component:"span",color:"text.secondary",sx:$oi,children:a})]})]},i)})})}var Gve=E($(),1),Hoi={maxHeight:420,overflowY:"auto"},Uoi={px:2,py:2,fontSize:13};function a_r({message:e,files:t,highlight:r,onHighlight:n,onSelect:i}){return(0,Gve.jsx)(J,{sx:Hoi,children:e?(0,Gve.jsx)(Le,{color:"text.secondary",sx:Uoi,children:e}):(0,Gve.jsx)(o_r,{files:t,highlight:r,onHighlight:n,onSelect:i})})}var s_r=E($(),1),Woi={mt:6,alignSelf:"flex-start"};function Vve({onClose:e,onEntered:t,centered:r=!1,children:n}){return(0,s_r.jsx)(ql,{open:!0,onClose:e,maxWidth:"sm",fullWidth:!0,slotProps:{paper:{sx:r?void 0:Woi},transition:{onEntered:t}},children:n})}var qve=E(ce(),1);var l_r={files:[],loading:!1,error:!1};function c_r(e,t){let[r,n]=(0,qve.useState)(l_r),i=vr();return(0,qve.useEffect)(()=>{if(!e){n(l_r);return}let o=!1;return n(s=>({...s,loading:!0})),(async()=>{try{let s=await hr(Yr(`/api/files?cwd=${encodeURIComponent(e)}&q=${encodeURIComponent(t)}`,i));if(!s.ok)throw new Error(`HTTP ${s.status}`);let l=await s.json();if(o)return;n({files:Array.isArray(l.files)?l.files:[],loading:!1,error:!1})}catch{o||n({files:[],loading:!1,error:!0})}})(),()=>{o=!0}},[e,t,i]),r}var a6=E($(),1);function Goi(e,t,r){let n=new URLSearchParams({path:e});return t&&n.set("cwd",t),t&&r&&n.set("node",r),`/file?${n}`}function u_r({onClose:e}){let{worktreeNode:t}=$n();return(0,a6.jsx)(yf.Provider,{value:t,children:(0,a6.jsx)(Voi,{onClose:e})})}function Voi({onClose:e}){let{worktreeCwd:t,worktreeNode:r}=$n(),[n,i]=(0,jve.useState)(""),o=c_r(t,n),a=Bi(),s=(0,jve.useRef)(null),l=p=>a(Goi(p,t,r)),{highlight:u,setHighlight:f,onKeyDown:d}=R_(o.files,n,l,e),h=p=>{l(p),e()};return(0,a6.jsxs)(Vve,{onClose:e,onEntered:()=>s.current?.focus(),children:[(0,a6.jsx)(PS,{autoFocus:!0,inputRef:s,value:n,onChange:i,onKeyDown:d,placeholder:"Search files by name..."}),(0,a6.jsx)(a_r,{message:i_r(t,n,o),files:o.files,highlight:u,onHighlight:f,onSelect:h})]})}function f_r(e){Ao(Kn("quickOpen").matches,e)}var h_r=E($(),1);function d_r(){let[e,t]=(0,Yve.useState)(!1);return f_r((0,Yve.useCallback)(()=>t(!0),[])),e?(0,h_r.jsx)(u_r,{onClose:()=>t(!1)}):null}var Kve=E($(),1);function p_r({notice:e,onClose:t,onView:r}){let n=e?.sessionId??null;return(0,Kve.jsx)(Oh,{open:e!==null,autoHideDuration:6e3,onClose:t,children:(0,Kve.jsx)(Si,{severity:"success",variant:"filled",onClose:t,action:n!==null?(0,Kve.jsx)(Mt,{color:"inherit",size:"small",onClick:()=>r(n),children:"View"}):void 0,children:e?.message})})}var rQ=E(ce(),1);function m_r(e){let t=["claude"];return e.exposeCodexActions&&t.push("codex"),e.exposePiActions&&t.push("pi"),t}var R_r=E(ce(),1);var g_r=E($(),1),y_r=st((0,g_r.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2"}),"Circle");var qoi={connected:"success.main",connecting:"warning.main",disconnected:"error.main","version-blocked":"error.main"};function v_r(e){return e?qoi[e]:"success.main"}function b_r(e){return e.split("-")[0].split(".").map(Number)}function x_r(e,t){if(!e||!t||e===t)return;let r=b_r(e),n=b_r(t);for(let i=0;i<Math.max(r.length,n.length);i++){let o=(r[i]??0)-(n[i]??0);if(Number.isNaN(o))return;if(o!==0)return o<0?"behind":"ahead"}}var s6=E($(),1),joi={height:16,fontSize:10},Yoi={opacity:.6,fontSize:"0.85em"};function Koi(e,t){if(t===e.local)return"this machine";let r=e.links.find(n=>n.name===t);return r?r.error?`${r.state}: ${r.error}`:r.state:""}function eQ({nodes:e,name:t,showVersion:r=!1}){let n=Uve()??z_,i=e.links.find(a=>a.name===t),o=x_r(i?.peerVersion,n);return(0,s6.jsx)(sr,{title:Koi(e,t),placement:"right",children:(0,s6.jsxs)(J,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.75},children:[(0,s6.jsx)(y_r,{sx:{fontSize:8,color:v_r(i?.state)}}),t,r&&i?.peerVersion&&(0,s6.jsxs)(J,{component:"span",sx:Yoi,children:["v",i.peerVersion]}),o&&(0,s6.jsx)(Hn,{label:o,size:"small",color:o==="behind"?"warning":"info",sx:joi})]})})}var l6=E($(),1),Xoi={opacity:.6},Qoi={display:"inline-flex",alignItems:"center",gap:.5,px:.5,border:1,borderStyle:"dashed",borderRadius:1};function T_r({nodes:e,name:t,clone:r}){let n=(0,l6.jsx)(eQ,{nodes:e,name:t});return r.kind==="cloned"?n:r.kind==="unavailable"?(0,l6.jsx)(J,{component:"span",sx:Xoi,children:n}):(0,l6.jsx)(sr,{title:p$(t,r.cloneTarget),children:(0,l6.jsxs)(J,{component:"span",sx:Qoi,children:[(0,l6.jsx)(h$,{sx:{fontSize:14}}),n]})})}var C_r=E($(),1),Zoi={px:1.5,borderRadius:.75,fontSize:12,fontWeight:600,color:"text.secondary","&:hover":{color:"text.primary",bgcolor:"action.hover"},"&[aria-checked='true']":{color:"primary.main",bgcolor:"action.selected"},"&.Mui-focusVisible":{outline:2,outlineColor:"primary.main"}};function S_r({value:e,label:t,checked:r,autoFocus:n,onSelect:i}){return(0,C_r.jsx)(un,{role:"radio","aria-checked":r,"data-value":e,tabIndex:r?0:-1,autoFocus:n&&r,onClick:i,sx:Zoi,children:t})}var w_r={ArrowRight:1,ArrowLeft:-1};function Joi(e,t,r){if(e.key==="Tab"){let n=t+(e.shiftKey?-1:1);return n>=0&&n<r?n:void 0}return(t+w_r[e.key]+r)%r}function k_r(e,t,r,n){return i=>{if(i.key==="ArrowUp"||i.key==="ArrowDown"){if(!n)return;i.preventDefault(),n();return}if(i.key!=="Tab"&&!w_r[i.key]){$2(i);return}let o=Joi(i,e.indexOf(t),e.length);o!==void 0&&(i.preventDefault(),r(e[o]),i.currentTarget.querySelector(`[data-value="${e[o]}"]`)?.focus())}}var __r=E(ce(),1);function P$(e){return e?.querySelector('[aria-checked="true"]')}function E_r(e,t){(0,__r.useEffect)(()=>{let r=e.current;if(!r?.contains(document.activeElement))return;let n=P$(r);n&&n!==document.activeElement&&n.focus()},[e,t])}var tVe=E($(),1),eai={border:1,borderColor:"divider",borderRadius:1,height:40,p:"2px",flexShrink:0};function Xve({label:e,options:t,value:r,onChange:n,optionLabel:i=u=>u,groupRef:o,autoFocus:a,onTrack:s,onToggleRow:l}){return E_r(o,r),(0,tVe.jsx)(_t,{ref:o,direction:"row",role:"radiogroup","aria-label":e,spacing:"2px",onFocus:s,onKeyDown:k_r(t,r,n,l),sx:eai,children:t.map(u=>(0,tVe.jsx)(S_r,{value:u,label:i(u),checked:u===r,autoFocus:a,onSelect:()=>n(u)},u))})}var rVe=E($(),1);function A_r({value:e,onChange:t,cloneState:r}){let{nodes:n,names:i,visible:o}=Ac(),a=(0,R_r.useRef)(null);return!o||!n||!e?null:(0,rVe.jsx)(Xve,{label:"Machine",options:i,value:e,onChange:t,optionLabel:s=>(0,rVe.jsx)(T_r,{nodes:n,name:s,clone:r(s)}),groupRef:a,autoFocus:!1,onTrack:()=>{}})}var Qve=E($(),1);function P_r({prompt:e,children:t}){return(0,Qve.jsxs)(_t,{children:[e,(0,Qve.jsx)(_t,{spacing:1,sx:{px:1.5,pb:1.5},children:t})]})}var M_r=E($(),1),tai=".MuiOutlinedInput-notchedOutline",rai={"& .MuiOutlinedInput-root":{px:"18px",py:2,minHeight:92,alignItems:"flex-start",bgcolor:"transparent",borderRadius:0,fontSize:15},[`&&& ${tai}`]:{border:0},"& textarea::placeholder":{color:"text.disabled",opacity:1}};function L_r({value:e,onChange:t,placeholder:r,inputRef:n,autoFocus:i,onTrack:o}){return(0,M_r.jsx)(Wn,{sx:rai,value:e,onChange:a=>t(a.target.value),onKeyDown:$2,onFocus:o,onSelect:o,inputRef:n,placeholder:r,autoFocus:i,fullWidth:!0,multiline:!0,minRows:3,maxRows:12,slotProps:{htmlInput:{"aria-label":"Prompt"}}})}var O_r=E(ce(),1);var wT={draft:{placeholder:"Describe the backlog item to draft...",submitLabel:"Start draft",sessionMode:"assist-draft"},bug:{placeholder:"Describe the bug: what happened, what you expected...",submitLabel:"File bug",sessionMode:"assist-bug"},prompt:{placeholder:P0e,submitLabel:"Start session"},design:{placeholder:"Describe the design task...",submitLabel:"Start design"}},I_r=Object.keys(wT);var nVe=E($(),1);function D_r({anchor:e,harness:t,harnesses:r,onPick:n,onClose:i}){return(0,nVe.jsx)(Bs,{open:e!==null,anchorEl:e,onClose:i,slotProps:{list:{dense:!0,"aria-label":"Harness"}},children:r.map(o=>(0,nVe.jsx)(pn,{role:"menuitemradio","aria-checked":o===t,selected:o===t,onClick:()=>{n(o),i()},sx:{fontSize:13},children:Du(o)},o))})}var c6=E($(),1);function N_r(e){return t=>t==="prompt"&&e?(0,c6.jsxs)(c6.Fragment,{children:["prompt",(0,c6.jsx)(J,{component:"span",sx:{fontWeight:400,whiteSpace:"pre"},children:` \xB7 ${Du(e)}`}),(0,c6.jsx)(xd,{sx:{fontSize:18,mr:-.75}})]}):t}var u6=E($(),1);function B_r({draft:e,harness:t,harnesses:r,focus:n}){let[i,o]=(0,O_r.useState)(null),a=e.mode==="prompt"&&r.length>1,s=()=>o(P$(n.modeRef.current)??null),l=u=>{a&&u==="prompt"?s():e.setMode(u)};return(0,u6.jsxs)(u6.Fragment,{children:[(0,u6.jsx)(Xve,{label:"Mode",options:I_r,value:e.mode,onChange:l,optionLabel:N_r(r.length>1?t:void 0),groupRef:n.modeRef,autoFocus:n.autoFocus==="mode",onTrack:n.trackMode,onToggleRow:a?s:void 0}),(0,u6.jsx)(D_r,{anchor:i,harness:t,harnesses:r,onPick:e.setHarness,onClose:()=>o(null)})]})}var X_r=E(ce(),1);var iVe=E($(),1),nai={zIndex:e=>e.zIndex.modal+1};function F_r({open:e,anchor:t,children:r}){return(0,iVe.jsx)(xP,{open:e,anchorEl:t,placement:"bottom-start",sx:nai,children:(0,iVe.jsx)(nn,{sx:{maxHeight:240,overflowY:"auto",width:t?.clientWidth},onMouseDown:n=>n.preventDefault(),children:r})})}var $_r=E($(),1),z_r=st((0,$_r.jsx)("path",{d:"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z"}),"KeyboardArrowDown");var oVe=E($(),1),iai={fontSize:13,height:36,pr:1,cursor:"pointer","& input":{cursor:"text"}},oai={fontSize:16,color:"text.disabled"};function H_r(e){return{htmlInput:{role:"combobox","aria-label":"Repo","aria-expanded":e},input:{sx:iai,endAdornment:(0,oVe.jsx)(H2e,{position:"end",children:(0,oVe.jsx)(z_r,{sx:oai})})}}}var U_r=E(oP(),1);function W_r({open:e,highlighted:t,accept:r,close:n,navigate:i,openList:o}){return a=>{if(!e){if(a.key==="ArrowDown"){a.preventDefault(),o();return}$2(a);return}if(a.key!=="Escape"){if(a.key==="Enter"){if(a.preventDefault(),t===void 0)return;(0,U_r.flushSync)(()=>{r(t),n()}),$2(a);return}if(a.key!=="Tab"){i(a);return}t!==void 0&&r(t),n()}}}function G_r(e,t){let r=t.trim().toLowerCase();return r?e.filter(n=>Sv(n).toLowerCase().includes(r)):e}var aVe=E(ce(),1);function V_r(){let[e,t]=(0,aVe.useState)(!1),[r,n]=(0,aVe.useState)("");return{open:e,query:r,show:()=>t(!0),filterBy:i=>{n(i),t(!0)},close:()=>{t(!1),n("")}}}var j_r=E(ce(),1);var q_r=e=>e?Sv(e):"";function Y_r(e){let[t,r]=(0,j_r.useState)(()=>q_r(e));return{text:t,setText:r,showRepo:n=>r(q_r(n))}}function K_r(e,t,r){let n=V_r(),i=Y_r(t),o=G_r(e,n.query),a=f=>{r(f),i.showRepo(f)},s=R_(o,n.query,a,n.close),l=()=>s.setHighlight(Math.max(e.indexOf(t),0)),u=()=>{l(),n.show()};return{open:n.open,text:i.text,filtered:o,highlight:s.highlight,setHighlight:s.setHighlight,onKeyDown:W_r({open:n.open,highlighted:o[s.highlight],accept:a,close:n.close,navigate:s.onKeyDown,openList:u}),onClick:()=>{n.open||u()},onType:f=>{i.setText(f),n.filterBy(f)},onFocus:l,onBlur:()=>{n.close(),i.showRepo(t)},pick:f=>{a(f),n.close()}}}var L$=E($(),1);function Q_r({repos:e,value:t,onChange:r,inputRef:n,autoFocus:i,onTrack:o}){let a=K_r(e,t,r),s=(0,X_r.useRef)(null);return(0,L$.jsxs)(J,{ref:s,sx:{flex:1,minWidth:0},children:[(0,L$.jsx)(Wn,{value:a.text,onChange:l=>a.onType(l.target.value),onFocus:l=>{l.target.select(),a.onFocus(),o()},inputRef:n,autoFocus:i,onClick:a.onClick,onBlur:a.onBlur,onKeyDown:a.onKeyDown,placeholder:"Repo",size:"small",fullWidth:!0,slotProps:H_r(a.open)}),(0,L$.jsx)(F_r,{open:a.open,anchor:s.current,children:(0,L$.jsx)(wve,{repos:a.filtered,selected:t,highlight:a.highlight,onHighlight:a.setHighlight,onSelect:a.pick})})]})}var U_=E($(),1);function Z_r({cloneState:e,...t}){let{draft:r,focus:n}=t,{repos:i}=$n();return(0,U_.jsxs)(P_r,{prompt:(0,U_.jsx)(L_r,{value:r.prompt,onChange:r.setPrompt,placeholder:wT[r.mode].placeholder,inputRef:n.promptRef,autoFocus:n.autoFocus==="prompt",onTrack:n.trackPrompt}),children:[(0,U_.jsxs)(_t,{direction:"row",spacing:1,sx:{alignItems:"flex-start"},children:[(0,U_.jsx)(Q_r,{repos:i,value:r.cwd,onChange:r.setCwd,inputRef:n.repoRef,autoFocus:n.autoFocus==="repo",onTrack:n.trackRepo}),(0,U_.jsx)(B_r,{...t})]}),(0,U_.jsx)(A_r,{value:r.node,onChange:r.setNode,cloneState:e})]})}var t5r=E($(),1),J_r=[["Enter","start"],["Shift+Enter","newline"],["Esc","close"]];function e5r({submitLabel:e,disabled:t=!1,loading:r=!1}){return(0,t5r.jsx)(Mt,{type:"submit",variant:"contained",disabled:t,loading:r,children:e})}var f6=E($(),1),aai=e=>({alignItems:"center",flexWrap:"wrap",gap:"14px",py:"10px",pl:"18px",pr:1.5,borderTop:1,borderColor:e.tokens.color.lineSoft,bgcolor:"background.default",fontSize:12,color:"text.secondary"}),sai=e=>({mr:.5,px:"5px",border:1,borderColor:"divider",borderRadius:"4px",fontFamily:e.typography.fontFamilyMono,fontSize:10.5,color:"text.primary"});function r5r(e){return(0,f6.jsxs)(_t,{direction:"row",sx:aai,children:[J_r.map(([t,r])=>(0,f6.jsxs)("span",{children:[(0,f6.jsx)(J,{component:"kbd",sx:sai,children:t}),r]},t)),(0,f6.jsx)(J,{sx:{flex:1}}),(0,f6.jsx)(e5r,{...e})]})}var d6=E(ce(),1);function n5r(e,t){let r=(0,d6.useRef)(e),n=(0,d6.useRef)(null),i=(0,d6.useRef)(null),o=(0,d6.useRef)(null),a=(0,d6.useCallback)(u=>{n.current=u;let{field:f,selectionStart:d,selectionEnd:h}=r.current;u&&f==="prompt"&&u.setSelectionRange(d,h)},[]),s=u=>{let f=u.target;t({field:"prompt",selectionStart:f.selectionStart,selectionEnd:f.selectionEnd})},l=()=>{if(o.current?.closest("form")?.contains(document.activeElement))return;let{field:u}=r.current;({repo:i.current,mode:P$(o.current),prompt:n.current}[u]??n.current)?.focus()};return{autoFocus:e.field,promptRef:a,repoRef:i,modeRef:o,trackPrompt:s,trackRepo:()=>t({...e,field:"repo"}),trackMode:()=>t({...e,field:"mode"}),restore:l}}function lai(e,t,r){return e?r.kind==="cloned"?{kind:"launch",cwd:r.cwd}:r.kind==="clonable"?{kind:"clone",prompt:_ve(r,t)}:{kind:"blocked"}:{kind:"launch",cwd:e}}function i5r(e,t){let{names:r,visible:n}=Ac(),i=Tve(t,n?r:[void 0]);return{cloneState:i,target:lai(t,e,i(e))}}function o5r({mode:e,harness:t,prompt:r,cwd:n,node:i},o){let a=n||void 0,s=i?[i]:[];if(e==="prompt"){t==="claude"?o.onCreate(r,a,...s):o.onCreateHarness(t,r,a,...s);return}if(e==="design"){o.onCreateDesign(r,a,...s);return}let l=i?[{node:i}]:[];Ddr(wT[e].sessionMode,n,(u,f)=>o.onCreateAssist(u,f,...l),()=>{},r)}function a5r(e,t,r,n){return r.kind==="blocked"||e.modePending?!1:r.kind==="clone"?(hve(r.prompt,n.onCreateAssist),!0):(o5r({mode:e.mode,harness:t,prompt:e.prompt,cwd:r.cwd,node:e.node},n),e.clear(),!0)}var Zve=E(ce(),1);function s5r(e,t){let[r,n]=(0,Zve.useState)(!1);return(0,Zve.useEffect)(()=>{!r||e.modePending||(n(!1),t())},[r,e.modePending,t]),()=>{e.modePending?n(!0):t()}}function l5r(e,t,r,n,i){let o=s5r(e,()=>{a5r(e,t,r,n)&&i()});return a=>{a.preventDefault(),o()}}var tQ=E(ce(),1);function c5r(e,t){let r=(0,tQ.useRef)(e),n=(0,tQ.useRef)(null);return(0,tQ.useEffect)(()=>{if(r.current&&!e){let i=n.current;i?.isConnected?i.focus():t()}r.current=e},[e,t]),i=>{n.current=i.target}}var f5r=E($(),1),cai={border:0,margin:0,padding:0,minWidth:0};function u5r({loading:e,restoreFocus:t,children:r}){let n=c5r(e,t);return(0,f5r.jsx)("fieldset",{disabled:e,style:cai,onFocus:n,children:r})}var h6=E($(),1);function d5r({draft:e,launchers:t,onClose:r}){let n=n5r(e.focus,e.setFocus),i=m_r(C_()),o=i.includes(e.harness)?e.harness:"claude",{target:a,cloneState:s}=i5r(e.node,e.cwd),l=l5r(e,o,a,t,r);return(0,h6.jsx)(Vve,{onClose:r,onEntered:n.restore,centered:!0,children:(0,h6.jsx)("form",{onSubmit:l,children:(0,h6.jsxs)(u5r,{loading:e.modePending,restoreFocus:n.restore,children:[(0,h6.jsx)(Z_r,{draft:e,harness:o,harnesses:i,focus:n,cloneState:s}),(0,h6.jsx)(r5r,{submitLabel:a.kind==="clone"?"Clone":wT[e.mode].submitLabel,disabled:a.kind==="blocked",loading:e.modePending})]})})})}var Jve=E(ce(),1);var uai=1e3;async function fai(e){try{let t=e?`?cwd=${encodeURIComponent(e)}`:"",n=await(await hr(`/api/new-session-defaults${t}`)).json();return Object.hasOwn(wT,n?.mode)?n.mode:null}catch{return null}}function h5r(e,t=0){let[r,n]=(0,Jve.useState)(null);return(0,Jve.useEffect)(()=>{let i=!1,o,a=async()=>{let s=await fai(e);i||(s?n({cwd:e,opens:t,mode:s}):o=setTimeout(a,uai))};return a(),()=>{i=!0,clearTimeout(o)}},[e,t]),r?{mode:r.mode,pending:r.cwd!==e||r.opens!==t}:null}function p5r(e,{visible:t,names:r,selected:n}){if(t)return e&&r.includes(e)?e:n}var kT=E(ce(),1),m5r={field:"prompt",selectionStart:0,selectionEnd:0};function g5r(){let[e,t]=(0,kT.useState)(""),[r,n]=(0,kT.useState)(),[i,o]=(0,kT.useState)(),[a,s]=(0,kT.useState)("claude"),[l,u]=(0,kT.useState)(),[f,d]=(0,kT.useState)(m5r),h=(0,kT.useCallback)(()=>{t(""),n(void 0),o(void 0),u(void 0),d(m5r)},[]);return{prompt:e,cwd:r,mode:i,harness:a,node:l,focus:f,setPrompt:t,setNode:u,setCwd:n,setMode:o,setHarness:s,setFocus:d,clear:h}}function y5r(e,t=h5r){let{selectedCwd:r}=$n(),n=Ac(),i=g5r(),o=i.cwd??r,a=t(o,e);return a?{...i,cwd:o,mode:i.mode??a.mode,modePending:i.mode===void 0&&a.pending,node:p5r(i.node,n)}:null}function v5r(e){Ao(Kn("newSession").matches,e)}var b5r=E(ce(),1);function x5r(e,t){let{selectedCwd:r}=$n(),[n,i]=Vc(),o=n.get("new"),a=n.get("newCwd")??r,{setPrompt:s,setCwd:l,setFocus:u}=e??{};(0,b5r.useEffect)(()=>{o===null||!s||!l||!u||(o&&(s(o),l(a),u({field:"prompt",selectionStart:o.length,selectionEnd:o.length})),t(),i(f=>(f.delete("new"),f.delete("newCwd"),f),{replace:!0}))},[o,a,s,l,u,t,i])}var S5r=E($(),1);function T5r({launchers:e}){let[t,r]=(0,rQ.useState)(!1),[n,i]=(0,rQ.useState)(0),o=y5r(n),a=(0,rQ.useCallback)(()=>{r(!0),i(s=>s+1)},[]);return v5r(a),x5r(o,a),!t||!o?null:(0,S5r.jsx)(d5r,{draft:o,launchers:e,onClose:()=>r(!1)})}var ebe=E($(),1);function C5r({reconnecting:e}){return(0,ebe.jsx)(Oh,{open:e,children:(0,ebe.jsx)(Si,{severity:"info",variant:"filled",icon:(0,ebe.jsx)(ao,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var Mv=E($(),1);function w5r({socket:e,onViewLaunchedSession:t}){return(0,Mv.jsxs)(Mv.Fragment,{children:[(0,Mv.jsx)(d_r,{}),(0,Mv.jsx)(T5r,{launchers:{onCreate:e.createSession,onCreateDesign:e.createDesignSession,onCreateHarness:e.createHarnessSession,onCreateAssist:e.createAssistSession}}),(0,Mv.jsx)(C5r,{reconnecting:e.reconnecting}),(0,Mv.jsx)(ec,{error:e.error,onClose:e.clearError}),(0,Mv.jsx)(p_r,{notice:e.success,onClose:e.clearSuccess,onView:t})]})}var Iv=E(ce(),1);var dai=6e4;function hai(e,t,r){return t.map(n=>e.find(i=>i.name===n)??{name:n,local:n===r,loading:!0})}function k5r(e){let t=e.nodes?.local,r=e.names.join(`
4022
+ `,Akr={content:'""',position:"absolute",borderRadius:"inherit",background:"conic-gradient(from calc(var(--rainbow-pill-h) * 1deg) in oklch longer hue, oklch(66% 0.21 0), oklch(66% 0.21 0))",animation:`${Roi} 1.8s linear infinite`},Poi={display:"inline-flex",alignItems:"center",px:1.5,py:"3px",borderRadius:999,position:"relative",isolation:"isolate",fontWeight:700,animation:`${Aoi} 1.6s ease-in-out infinite`,"&::before":{...Akr,inset:0,zIndex:-1},"&::after":{...Akr,inset:"-5px",zIndex:-2,filter:"blur(9px)",opacity:.85},"& span":{color:sl.rainbowPill.text,textShadow:sl.rainbowPill.shadow},"@media (prefers-reduced-motion: reduce)":{animation:"none","&::before, &::after":{animation:"none"}}};function Pkr({children:e}){return(0,i6.jsxs)(i6.Fragment,{children:[(0,i6.jsx)(p5,{styles:Eoi}),(0,i6.jsx)(J,{component:"span","data-testid":"rainbow-pill",sx:Poi,children:e})]})}function Lkr({pct:e,timeLabel:t}){return[Math.round(e),...(t.match(/\d+/g)??[]).map(Number)].join(",")}function Mkr(e){if(e.length!==2)return!1;let[t,r]=e;return Lkr(t)===Lkr(r)}var CT=E($(),1);function Dkr({rateLimits:e}){let t=c$(3e4),r=[{window:e.five_hour,windowSeconds:18e3,fallbackLabel:"5h"},{window:e.seven_day,windowSeconds:604800,fallbackLabel:"7d"}].filter(o=>o.window?.used_percentage!=null),n=Mkr(r.map(o=>({pct:o.window?.used_percentage??0,timeLabel:Fve(o.window?.resets_at,o.fallbackLabel,t)}))),i=r.map((o,a)=>(0,CT.jsxs)(Ikr.Fragment,{children:[a>0?(0,CT.jsx)(J,{component:"span",sx:{color:A$,mr:.5},children:","}):null,(0,CT.jsx)(Rkr,{window:o.window,windowSeconds:o.windowSeconds,fallbackLabel:o.fallbackLabel,now:t})]},o.fallbackLabel));return n?(0,CT.jsx)(Pkr,{children:i}):(0,CT.jsx)(CT.Fragment,{children:i})}var B_=E($(),1);function Okr({groups:e}){return(0,B_.jsx)(B_.Fragment,{children:e.map((t,r)=>(0,B_.jsxs)(Nkr.Fragment,{children:[(0,B_.jsx)(J,{component:"span",sx:{color:A$,ml:r>0?1:0,mr:.5},children:Du(t.harness)}),(0,B_.jsx)(Dkr,{rateLimits:t.rateLimits})]},t.harness))})}var Bkr={root:{fontFamily:"fontFamilyMono",fontSize:12,display:"grid",gap:1},group:{display:"grid",gap:"2px"},heading:{color:e=>e.tokens.color.onAppBar.secondary},foot:{pt:.75,opacity:.6,borderTop:"1px solid color-mix(in srgb, currentColor 18%, transparent)"}};function Loi(e){if(e==="over")return{level:"warn",boundary:100};if(e==="warn")return{level:"ok",boundary:75}}function Moi(e){if(e==="ok")return{level:"warn",boundary:75};if(e==="warn")return{level:"over",boundary:100}}function Ioi(e,t,r,n){if(e>=t)return;let i=e/t;return Math.round(r-n*(1-i))}function zkr(e,t,r,n){if(t==null)return{kind:"unprojectable"};let i=EGe(t,r,n);if(i==null)return{kind:"unprojectable"};let o=T_(e,t,r,n),a=Loi(o),s=Moi(o);return{kind:"projected",recovery:a&&{level:a.level,pct:a.boundary*i,at:Ioi(e,a.boundary,t,r)},worse:s&&{level:s.level,pct:s.boundary*i}}}function zve(e){return t=>t.tokens.color.onAppBar.level[e]}function Hkr(e,t){return e.at==null?"not before reset":`${e.level==="ok"?"green":"under"} in ${J1e(e.at,t)}`}var F_=E($(),1),Ukr={display:"contents"};function XGe({direction:e,threshold:t}){let r=e==="back";if(!t)return(0,F_.jsxs)(J,{component:"span",sx:Ukr,children:[(0,F_.jsx)("span",{}),(0,F_.jsx)("span",{})]});let n=(0,F_.jsx)(J,{component:"span",sx:{opacity:.6},children:r?"\u2190":"\u2192"}),i=(0,F_.jsxs)(J,{component:"span",sx:{color:zve(t.level),textAlign:"right"},children:[Math.round(t.pct),"%"]});return(0,F_.jsxs)(J,{component:"span",sx:Ukr,children:[r?i:n,r?n:i]})}var Wkr={row:{display:"grid",gridTemplateColumns:"2.5ch 4ch 1ch 4ch 1ch 4ch auto",alignItems:"baseline",gap:.75,fontVariantNumeric:"tabular-nums"},pctWeight:500,note:{pl:.75,color:e=>e.tokens.color.onAppBar.secondary}};var $_=E($(),1);function Gkr({label:e,pct:t,resetsAt:r,windowSeconds:n,now:i}){let o=Wkr,a=T_(t,r,n,i),s=zkr(t,r,n,i),l=s.kind==="projected"?s:void 0;return(0,$_.jsxs)(J,{sx:o.row,children:[(0,$_.jsx)(J,{component:"span",sx:{minWidth:"2ch"},children:e}),(0,$_.jsx)(XGe,{direction:"back",threshold:l?.recovery}),(0,$_.jsxs)(J,{component:"span",sx:{minWidth:"4ch",textAlign:"right",fontWeight:o.pctWeight,color:zve(a)},children:[Math.round(t),"%"]}),(0,$_.jsx)(XGe,{direction:"forward",threshold:l?.worse}),(0,$_.jsx)(J,{component:"span",sx:o.note,children:l?l.recovery&&Hkr(l.recovery,i):"no projection yet"})]})}function Vkr(e){return[{label:"5h",window:e.five_hour,windowSeconds:18e3},{label:"7d",window:e.seven_day,windowSeconds:604800}].flatMap(t=>t.window?.used_percentage==null?[]:[{label:t.label,pct:t.window.used_percentage,resetsAt:t.window.resets_at,windowSeconds:t.windowSeconds}])}var jkr=E($(),1);function qkr({rateLimits:e,now:t}){return Vkr(e).map(r=>(0,jkr.jsx)(Gkr,{label:r.label,pct:r.pct,resetsAt:r.resetsAt,windowSeconds:r.windowSeconds,now:t},r.label))}var o6=E($(),1);function Ykr({groups:e}){let t=c$(3e4),r=Bkr;return(0,o6.jsxs)(J,{sx:r.root,children:[e.map(n=>(0,o6.jsxs)(J,{sx:r.group,children:[(0,o6.jsx)(J,{sx:r.heading,children:Du(n.harness)}),(0,o6.jsx)(qkr,{rateLimits:n.rateLimits,now:t})]},n.harness)),(0,o6.jsx)(J,{sx:r.foot,children:"Account usage per harness \u2014 view history"})]})}var QGe=E($(),1),Doi="Claude account usage (5h / 7d windows) \u2014 view history";function Kkr(e){return e.length===0?{title:Doi,content:"Usage"}:{title:(0,QGe.jsx)(Ykr,{groups:e}),content:(0,QGe.jsx)(Okr,{groups:e})}}var Xkr={display:"flex",alignItems:"center",height:22,px:1,borderRadius:1,fontSize:"inherit","&:hover, &:focus-visible":{bgcolor:e=>e.tokens.color.statusBar.hover,color:e=>e.tokens.color.statusBar.hoverText}},Qkr={tooltip:{sx:{p:"10px 12px",minWidth:300,maxWidth:"none"}}};var ZGe=E($(),1),Noi={};function Zkr({rateLimits:e,harnessRateLimits:t=Noi}){let{title:r,content:n}=Kkr(_kr(e,t));return(0,ZGe.jsx)(sr,{title:r,placement:"top-start",slotProps:Qkr,children:(0,ZGe.jsx)(Qr,{component:ks,to:"/usage",underline:"none",color:"inherit",sx:Xkr,children:n})})}var t_r=E(ce(),1);var z_="0.961.0";var Hve=E(ce(),1),JGe=(0,Hve.createContext)(null);function Uve(){return(0,Hve.useContext)(JGe)}var eVe=E($(),1);function Jkr(){let e=Uve();return!e||e===z_?null:(0,eVe.jsx)(sr,{title:`Daemon is running v${e}, but this page was served by v${z_}. Restart the daemon to match.`,children:(0,eVe.jsx)(Ave,{fontSize:"small",color:"warning","aria-label":"Version mismatch"})})}var e_r=e=>({display:"inline-flex",alignItems:"center",gap:.75,px:1,py:0,height:22,borderRadius:1,fontSize:"inherit",lineHeight:1.5,color:"inherit",opacity:1,bgcolor:t=>e?Lv(t).active:"transparent",transition:"opacity .2s ease, background-color .2s ease, color .2s ease","&:hover, &:focus-visible":{bgcolor:t=>Lv(t).hover,color:t=>Lv(t).hoverText},"& .ready-dot":{width:6,height:6,borderRadius:"50%",bgcolor:t=>Lv(t).dot,boxShadow:t=>`0 0 0 3px ${Lv(t).dotRing}`},"& .ready-count":{fontWeight:500,color:t=>Lv(t).readyText}});var ug=E($(),1);function r_r(){let{entries:e}=jF(),t=Bi(),r=(0,t_r.useCallback)(()=>t("/updates"),[t]),{matches:n,chords:i}=Kn("openUpdates");if(Ao(n,r),!z_)return null;let o=e.filter(e$).length;return(0,ug.jsxs)(ug.Fragment,{children:[(0,ug.jsx)(sr,{describeChild:!0,placement:"top-end",title:(0,ug.jsx)(Ou,{label:"Updates",chords:i}),children:(0,ug.jsxs)(un,{component:ks,to:"/updates","aria-label":o?`Updates: ${o} node${o>1?"s have":" has"} an update ready`:"Updates",sx:e_r(o>0),children:[o>0&&(0,ug.jsx)("span",{className:"ready-dot","aria-hidden":!0}),(0,ug.jsxs)("span",{children:["v",z_]}),o>0&&(0,ug.jsxs)("span",{className:"ready-count",children:[o," ready"]})]})}),(0,ug.jsx)(Jkr,{})]})}var Wve=E($(),1);function n_r({socket:e}){return(0,Wve.jsx)(wkr,{start:(0,Wve.jsx)(Zkr,{rateLimits:e.rateLimits,harnessRateLimits:e.harnessRateLimits}),end:(0,Wve.jsx)(r_r,{})})}var Yve=E(ce(),1);var jve=E(ce(),1);function i_r(e,t,r){if(!e)return"Select a repo to search files.";if(r.error)return"Couldn't search files in this repo.";if(!(r.files.length>0||r.loading))return t?"No matching files.":"No files in this repo."}var H_=E($(),1),Ooi={display:"flex",gap:1,alignItems:"center",minWidth:0},Boi={display:"flex",gap:1,alignItems:"baseline",minWidth:0,overflow:"hidden"},Foi={fontFamily:"fontFamilyMono",fontSize:13,whiteSpace:"nowrap"},$oi={fontFamily:"fontFamilyMono",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function zoi(e){let t=e.lastIndexOf("/");return t===-1?{dir:"",basename:e}:{dir:e.slice(0,t),basename:e.slice(t+1)}}function o_r({files:e,highlight:t,onHighlight:r,onSelect:n}){return(0,H_.jsx)(Up,{dense:!0,sx:{py:0},children:e.map((i,o)=>{let{dir:a,basename:s}=zoi(i);return(0,H_.jsxs)(pn,{selected:o===t,onMouseEnter:()=>r(o),onClick:()=>n(i),sx:Ooi,children:[(0,H_.jsx)(Mge,{path:i}),(0,H_.jsxs)(J,{sx:Boi,children:[(0,H_.jsx)(Le,{component:"span",sx:Foi,children:s}),(0,H_.jsx)(Le,{component:"span",color:"text.secondary",sx:$oi,children:a})]})]},i)})})}var Gve=E($(),1),Hoi={maxHeight:420,overflowY:"auto"},Uoi={px:2,py:2,fontSize:13};function a_r({message:e,files:t,highlight:r,onHighlight:n,onSelect:i}){return(0,Gve.jsx)(J,{sx:Hoi,children:e?(0,Gve.jsx)(Le,{color:"text.secondary",sx:Uoi,children:e}):(0,Gve.jsx)(o_r,{files:t,highlight:r,onHighlight:n,onSelect:i})})}var s_r=E($(),1),Woi={mt:6,alignSelf:"flex-start"};function Vve({onClose:e,onEntered:t,centered:r=!1,children:n}){return(0,s_r.jsx)(ql,{open:!0,onClose:e,maxWidth:"sm",fullWidth:!0,slotProps:{paper:{sx:r?void 0:Woi},transition:{onEntered:t}},children:n})}var qve=E(ce(),1);var l_r={files:[],loading:!1,error:!1};function c_r(e,t){let[r,n]=(0,qve.useState)(l_r),i=vr();return(0,qve.useEffect)(()=>{if(!e){n(l_r);return}let o=!1;return n(s=>({...s,loading:!0})),(async()=>{try{let s=await hr(Yr(`/api/files?cwd=${encodeURIComponent(e)}&q=${encodeURIComponent(t)}`,i));if(!s.ok)throw new Error(`HTTP ${s.status}`);let l=await s.json();if(o)return;n({files:Array.isArray(l.files)?l.files:[],loading:!1,error:!1})}catch{o||n({files:[],loading:!1,error:!0})}})(),()=>{o=!0}},[e,t,i]),r}var a6=E($(),1);function Goi(e,t,r){let n=new URLSearchParams({path:e});return t&&n.set("cwd",t),t&&r&&n.set("node",r),`/file?${n}`}function u_r({onClose:e}){let{worktreeNode:t}=$n();return(0,a6.jsx)(yf.Provider,{value:t,children:(0,a6.jsx)(Voi,{onClose:e})})}function Voi({onClose:e}){let{worktreeCwd:t,worktreeNode:r}=$n(),[n,i]=(0,jve.useState)(""),o=c_r(t,n),a=Bi(),s=(0,jve.useRef)(null),l=p=>a(Goi(p,t,r)),{highlight:u,setHighlight:f,onKeyDown:d}=R_(o.files,n,l,e),h=p=>{l(p),e()};return(0,a6.jsxs)(Vve,{onClose:e,onEntered:()=>s.current?.focus(),children:[(0,a6.jsx)(PS,{autoFocus:!0,inputRef:s,value:n,onChange:i,onKeyDown:d,placeholder:"Search files by name..."}),(0,a6.jsx)(a_r,{message:i_r(t,n,o),files:o.files,highlight:u,onHighlight:f,onSelect:h})]})}function f_r(e){Ao(Kn("quickOpen").matches,e)}var h_r=E($(),1);function d_r(){let[e,t]=(0,Yve.useState)(!1);return f_r((0,Yve.useCallback)(()=>t(!0),[])),e?(0,h_r.jsx)(u_r,{onClose:()=>t(!1)}):null}var Kve=E($(),1);function p_r({notice:e,onClose:t,onView:r}){let n=e?.sessionId??null;return(0,Kve.jsx)(Oh,{open:e!==null,autoHideDuration:6e3,onClose:t,children:(0,Kve.jsx)(Si,{severity:"success",variant:"filled",onClose:t,action:n!==null?(0,Kve.jsx)(Mt,{color:"inherit",size:"small",onClick:()=>r(n),children:"View"}):void 0,children:e?.message})})}var rQ=E(ce(),1);function m_r(e){let t=["claude"];return e.exposeCodexActions&&t.push("codex"),e.exposePiActions&&t.push("pi"),t}var R_r=E(ce(),1);var g_r=E($(),1),y_r=st((0,g_r.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2"}),"Circle");var qoi={connected:"success.main",connecting:"warning.main",disconnected:"error.main","version-blocked":"error.main"};function v_r(e){return e?qoi[e]:"success.main"}function b_r(e){return e.split("-")[0].split(".").map(Number)}function x_r(e,t){if(!e||!t||e===t)return;let r=b_r(e),n=b_r(t);for(let i=0;i<Math.max(r.length,n.length);i++){let o=(r[i]??0)-(n[i]??0);if(Number.isNaN(o))return;if(o!==0)return o<0?"behind":"ahead"}}var s6=E($(),1),joi={height:16,fontSize:10},Yoi={opacity:.6,fontSize:"0.85em"};function Koi(e,t){if(t===e.local)return"this machine";let r=e.links.find(n=>n.name===t);return r?r.error?`${r.state}: ${r.error}`:r.state:""}function eQ({nodes:e,name:t,showVersion:r=!1}){let n=Uve()??z_,i=e.links.find(a=>a.name===t),o=x_r(i?.peerVersion,n);return(0,s6.jsx)(sr,{title:Koi(e,t),placement:"right",children:(0,s6.jsxs)(J,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.75},children:[(0,s6.jsx)(y_r,{sx:{fontSize:8,color:v_r(i?.state)}}),t,r&&i?.peerVersion&&(0,s6.jsxs)(J,{component:"span",sx:Yoi,children:["v",i.peerVersion]}),o&&(0,s6.jsx)(Hn,{label:o,size:"small",color:o==="behind"?"warning":"info",sx:joi})]})})}var l6=E($(),1),Xoi={opacity:.6},Qoi={display:"inline-flex",alignItems:"center",gap:.5,px:.5,border:1,borderStyle:"dashed",borderRadius:1};function T_r({nodes:e,name:t,clone:r}){let n=(0,l6.jsx)(eQ,{nodes:e,name:t});return r.kind==="cloned"?n:r.kind==="unavailable"?(0,l6.jsx)(J,{component:"span",sx:Xoi,children:n}):(0,l6.jsx)(sr,{title:p$(t,r.cloneTarget),children:(0,l6.jsxs)(J,{component:"span",sx:Qoi,children:[(0,l6.jsx)(h$,{sx:{fontSize:14}}),n]})})}var C_r=E($(),1),Zoi={px:1.5,borderRadius:.75,fontSize:12,fontWeight:600,color:"text.secondary","&:hover":{color:"text.primary",bgcolor:"action.hover"},"&[aria-checked='true']":{color:"primary.main",bgcolor:"action.selected"},"&.Mui-focusVisible":{outline:2,outlineColor:"primary.main"}};function S_r({value:e,label:t,checked:r,autoFocus:n,onSelect:i}){return(0,C_r.jsx)(un,{role:"radio","aria-checked":r,"data-value":e,tabIndex:r?0:-1,autoFocus:n&&r,onClick:i,sx:Zoi,children:t})}var w_r={ArrowRight:1,ArrowLeft:-1};function Joi(e,t,r){if(e.key==="Tab"){let n=t+(e.shiftKey?-1:1);return n>=0&&n<r?n:void 0}return(t+w_r[e.key]+r)%r}function k_r(e,t,r,n){return i=>{if(i.key==="ArrowUp"||i.key==="ArrowDown"){if(!n)return;i.preventDefault(),n();return}if(i.key!=="Tab"&&!w_r[i.key]){$2(i);return}let o=Joi(i,e.indexOf(t),e.length);o!==void 0&&(i.preventDefault(),r(e[o]),i.currentTarget.querySelector(`[data-value="${e[o]}"]`)?.focus())}}var __r=E(ce(),1);function P$(e){return e?.querySelector('[aria-checked="true"]')}function E_r(e,t){(0,__r.useEffect)(()=>{let r=e.current;if(!r?.contains(document.activeElement))return;let n=P$(r);n&&n!==document.activeElement&&n.focus()},[e,t])}var tVe=E($(),1),eai={border:1,borderColor:"divider",borderRadius:1,height:40,p:"2px",flexShrink:0};function Xve({label:e,options:t,value:r,onChange:n,optionLabel:i=u=>u,groupRef:o,autoFocus:a,onTrack:s,onToggleRow:l}){return E_r(o,r),(0,tVe.jsx)(_t,{ref:o,direction:"row",role:"radiogroup","aria-label":e,spacing:"2px",onFocus:s,onKeyDown:k_r(t,r,n,l),sx:eai,children:t.map(u=>(0,tVe.jsx)(S_r,{value:u,label:i(u),checked:u===r,autoFocus:a,onSelect:()=>n(u)},u))})}var rVe=E($(),1);function A_r({value:e,onChange:t,cloneState:r}){let{nodes:n,names:i,visible:o}=Ac(),a=(0,R_r.useRef)(null);return!o||!n||!e?null:(0,rVe.jsx)(Xve,{label:"Machine",options:i,value:e,onChange:t,optionLabel:s=>(0,rVe.jsx)(T_r,{nodes:n,name:s,clone:r(s)}),groupRef:a,autoFocus:!1,onTrack:()=>{}})}var Qve=E($(),1);function P_r({prompt:e,children:t}){return(0,Qve.jsxs)(_t,{children:[e,(0,Qve.jsx)(_t,{spacing:1,sx:{px:1.5,pb:1.5},children:t})]})}var M_r=E($(),1),tai=".MuiOutlinedInput-notchedOutline",rai={"& .MuiOutlinedInput-root":{px:"18px",py:2,minHeight:92,alignItems:"flex-start",bgcolor:"transparent",borderRadius:0,fontSize:15},[`&&& ${tai}`]:{border:0},"& textarea::placeholder":{color:"text.disabled",opacity:1}};function L_r({value:e,onChange:t,placeholder:r,inputRef:n,autoFocus:i,onTrack:o}){return(0,M_r.jsx)(Wn,{sx:rai,value:e,onChange:a=>t(a.target.value),onKeyDown:$2,onFocus:o,onSelect:o,inputRef:n,placeholder:r,autoFocus:i,fullWidth:!0,multiline:!0,minRows:3,maxRows:12,slotProps:{htmlInput:{"aria-label":"Prompt"}}})}var O_r=E(ce(),1);var wT={draft:{placeholder:"Describe the backlog item to draft...",submitLabel:"Start draft",sessionMode:"assist-draft"},bug:{placeholder:"Describe the bug: what happened, what you expected...",submitLabel:"File bug",sessionMode:"assist-bug"},prompt:{placeholder:P0e,submitLabel:"Start session"},design:{placeholder:"Describe the design task...",submitLabel:"Start design"}},I_r=Object.keys(wT);var nVe=E($(),1);function D_r({anchor:e,harness:t,harnesses:r,onPick:n,onClose:i}){return(0,nVe.jsx)(Bs,{open:e!==null,anchorEl:e,onClose:i,slotProps:{list:{dense:!0,"aria-label":"Harness"}},children:r.map(o=>(0,nVe.jsx)(pn,{role:"menuitemradio","aria-checked":o===t,selected:o===t,onClick:()=>{n(o),i()},sx:{fontSize:13},children:Du(o)},o))})}var c6=E($(),1);function N_r(e){return t=>t==="prompt"&&e?(0,c6.jsxs)(c6.Fragment,{children:["prompt",(0,c6.jsx)(J,{component:"span",sx:{fontWeight:400,whiteSpace:"pre"},children:` \xB7 ${Du(e)}`}),(0,c6.jsx)(xd,{sx:{fontSize:18,mr:-.75}})]}):t}var u6=E($(),1);function B_r({draft:e,harness:t,harnesses:r,focus:n}){let[i,o]=(0,O_r.useState)(null),a=e.mode==="prompt"&&r.length>1,s=()=>o(P$(n.modeRef.current)??null),l=u=>{a&&u==="prompt"?s():e.setMode(u)};return(0,u6.jsxs)(u6.Fragment,{children:[(0,u6.jsx)(Xve,{label:"Mode",options:I_r,value:e.mode,onChange:l,optionLabel:N_r(r.length>1?t:void 0),groupRef:n.modeRef,autoFocus:n.autoFocus==="mode",onTrack:n.trackMode,onToggleRow:a?s:void 0}),(0,u6.jsx)(D_r,{anchor:i,harness:t,harnesses:r,onPick:e.setHarness,onClose:()=>o(null)})]})}var X_r=E(ce(),1);var iVe=E($(),1),nai={zIndex:e=>e.zIndex.modal+1};function F_r({open:e,anchor:t,children:r}){return(0,iVe.jsx)(xP,{open:e,anchorEl:t,placement:"bottom-start",sx:nai,children:(0,iVe.jsx)(nn,{sx:{maxHeight:240,overflowY:"auto",width:t?.clientWidth},onMouseDown:n=>n.preventDefault(),children:r})})}var $_r=E($(),1),z_r=st((0,$_r.jsx)("path",{d:"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z"}),"KeyboardArrowDown");var oVe=E($(),1),iai={fontSize:13,height:36,pr:1,cursor:"pointer","& input":{cursor:"text"}},oai={fontSize:16,color:"text.disabled"};function H_r(e){return{htmlInput:{role:"combobox","aria-label":"Repo","aria-expanded":e},input:{sx:iai,endAdornment:(0,oVe.jsx)(H2e,{position:"end",children:(0,oVe.jsx)(z_r,{sx:oai})})}}}var U_r=E(oP(),1);function W_r({open:e,highlighted:t,accept:r,close:n,navigate:i,openList:o}){return a=>{if(!e){if(a.key==="ArrowDown"){a.preventDefault(),o();return}$2(a);return}if(a.key!=="Escape"){if(a.key==="Enter"){if(a.preventDefault(),t===void 0)return;(0,U_r.flushSync)(()=>{r(t),n()}),$2(a);return}if(a.key!=="Tab"){i(a);return}t!==void 0&&r(t),n()}}}function G_r(e,t){let r=t.trim().toLowerCase();return r?e.filter(n=>Sv(n).toLowerCase().includes(r)):e}var aVe=E(ce(),1);function V_r(){let[e,t]=(0,aVe.useState)(!1),[r,n]=(0,aVe.useState)("");return{open:e,query:r,show:()=>t(!0),filterBy:i=>{n(i),t(!0)},close:()=>{t(!1),n("")}}}var j_r=E(ce(),1);var q_r=e=>e?Sv(e):"";function Y_r(e){let[t,r]=(0,j_r.useState)(()=>q_r(e));return{text:t,setText:r,showRepo:n=>r(q_r(n))}}function K_r(e,t,r){let n=V_r(),i=Y_r(t),o=G_r(e,n.query),a=f=>{r(f),i.showRepo(f)},s=R_(o,n.query,a,n.close),l=()=>s.setHighlight(Math.max(e.indexOf(t),0)),u=()=>{l(),n.show()};return{open:n.open,text:i.text,filtered:o,highlight:s.highlight,setHighlight:s.setHighlight,onKeyDown:W_r({open:n.open,highlighted:o[s.highlight],accept:a,close:n.close,navigate:s.onKeyDown,openList:u}),onClick:()=>{n.open||u()},onType:f=>{i.setText(f),n.filterBy(f)},onFocus:l,onBlur:()=>{n.close(),i.showRepo(t)},pick:f=>{a(f),n.close()}}}var L$=E($(),1);function Q_r({repos:e,value:t,onChange:r,inputRef:n,autoFocus:i,onTrack:o}){let a=K_r(e,t,r),s=(0,X_r.useRef)(null);return(0,L$.jsxs)(J,{ref:s,sx:{flex:1,minWidth:0},children:[(0,L$.jsx)(Wn,{value:a.text,onChange:l=>a.onType(l.target.value),onFocus:l=>{l.target.select(),a.onFocus(),o()},inputRef:n,autoFocus:i,onClick:a.onClick,onBlur:a.onBlur,onKeyDown:a.onKeyDown,placeholder:"Repo",size:"small",fullWidth:!0,slotProps:H_r(a.open)}),(0,L$.jsx)(F_r,{open:a.open,anchor:s.current,children:(0,L$.jsx)(wve,{repos:a.filtered,selected:t,highlight:a.highlight,onHighlight:a.setHighlight,onSelect:a.pick})})]})}var U_=E($(),1);function Z_r({cloneState:e,...t}){let{draft:r,focus:n}=t,{repos:i}=$n();return(0,U_.jsxs)(P_r,{prompt:(0,U_.jsx)(L_r,{value:r.prompt,onChange:r.setPrompt,placeholder:wT[r.mode].placeholder,inputRef:n.promptRef,autoFocus:n.autoFocus==="prompt",onTrack:n.trackPrompt}),children:[(0,U_.jsxs)(_t,{direction:"row",spacing:1,sx:{alignItems:"flex-start"},children:[(0,U_.jsx)(Q_r,{repos:i,value:r.cwd,onChange:r.setCwd,inputRef:n.repoRef,autoFocus:n.autoFocus==="repo",onTrack:n.trackRepo}),(0,U_.jsx)(B_r,{...t})]}),(0,U_.jsx)(A_r,{value:r.node,onChange:r.setNode,cloneState:e})]})}var t5r=E($(),1),J_r=[["Enter","start"],["Shift+Enter","newline"],["Esc","close"]];function e5r({submitLabel:e,disabled:t=!1,loading:r=!1}){return(0,t5r.jsx)(Mt,{type:"submit",variant:"contained",disabled:t,loading:r,children:e})}var f6=E($(),1),aai=e=>({alignItems:"center",flexWrap:"wrap",gap:"14px",py:"10px",pl:"18px",pr:1.5,borderTop:1,borderColor:e.tokens.color.lineSoft,bgcolor:"background.default",fontSize:12,color:"text.secondary"}),sai=e=>({mr:.5,px:"5px",border:1,borderColor:"divider",borderRadius:"4px",fontFamily:e.typography.fontFamilyMono,fontSize:10.5,color:"text.primary"});function r5r(e){return(0,f6.jsxs)(_t,{direction:"row",sx:aai,children:[J_r.map(([t,r])=>(0,f6.jsxs)("span",{children:[(0,f6.jsx)(J,{component:"kbd",sx:sai,children:t}),r]},t)),(0,f6.jsx)(J,{sx:{flex:1}}),(0,f6.jsx)(e5r,{...e})]})}var d6=E(ce(),1);function n5r(e,t){let r=(0,d6.useRef)(e),n=(0,d6.useRef)(null),i=(0,d6.useRef)(null),o=(0,d6.useRef)(null),a=(0,d6.useCallback)(u=>{n.current=u;let{field:f,selectionStart:d,selectionEnd:h}=r.current;u&&f==="prompt"&&u.setSelectionRange(d,h)},[]),s=u=>{let f=u.target;t({field:"prompt",selectionStart:f.selectionStart,selectionEnd:f.selectionEnd})},l=()=>{if(o.current?.closest("form")?.contains(document.activeElement))return;let{field:u}=r.current;({repo:i.current,mode:P$(o.current),prompt:n.current}[u]??n.current)?.focus()};return{autoFocus:e.field,promptRef:a,repoRef:i,modeRef:o,trackPrompt:s,trackRepo:()=>t({...e,field:"repo"}),trackMode:()=>t({...e,field:"mode"}),restore:l}}function lai(e,t,r){return e?r.kind==="cloned"?{kind:"launch",cwd:r.cwd}:r.kind==="clonable"?{kind:"clone",prompt:_ve(r,t)}:{kind:"blocked"}:{kind:"launch",cwd:e}}function i5r(e,t){let{names:r,visible:n}=Ac(),i=Tve(t,n?r:[void 0]);return{cloneState:i,target:lai(t,e,i(e))}}function o5r({mode:e,harness:t,prompt:r,cwd:n,node:i},o){let a=n||void 0,s=i?[i]:[];if(e==="prompt"){t==="claude"?o.onCreate(r,a,...s):o.onCreateHarness(t,r,a,...s);return}if(e==="design"){o.onCreateDesign(r,a,...s);return}let l=i?[{node:i}]:[];Ddr(wT[e].sessionMode,n,(u,f)=>o.onCreateAssist(u,f,...l),()=>{},r)}function a5r(e,t,r,n){return r.kind==="blocked"||e.modePending?!1:r.kind==="clone"?(hve(r.prompt,n.onCreateAssist),!0):(o5r({mode:e.mode,harness:t,prompt:e.prompt,cwd:r.cwd,node:e.node},n),e.clear(),!0)}var Zve=E(ce(),1);function s5r(e,t){let[r,n]=(0,Zve.useState)(!1);return(0,Zve.useEffect)(()=>{!r||e.modePending||(n(!1),t())},[r,e.modePending,t]),()=>{e.modePending?n(!0):t()}}function l5r(e,t,r,n,i){let o=s5r(e,()=>{a5r(e,t,r,n)&&i()});return a=>{a.preventDefault(),o()}}var tQ=E(ce(),1);function c5r(e,t){let r=(0,tQ.useRef)(e),n=(0,tQ.useRef)(null);return(0,tQ.useEffect)(()=>{if(r.current&&!e){let i=n.current;i?.isConnected?i.focus():t()}r.current=e},[e,t]),i=>{n.current=i.target}}var f5r=E($(),1),cai={border:0,margin:0,padding:0,minWidth:0};function u5r({loading:e,restoreFocus:t,children:r}){let n=c5r(e,t);return(0,f5r.jsx)("fieldset",{disabled:e,style:cai,onFocus:n,children:r})}var h6=E($(),1);function d5r({draft:e,launchers:t,onClose:r}){let n=n5r(e.focus,e.setFocus),i=m_r(C_()),o=i.includes(e.harness)?e.harness:"claude",{target:a,cloneState:s}=i5r(e.node,e.cwd),l=l5r(e,o,a,t,r);return(0,h6.jsx)(Vve,{onClose:r,onEntered:n.restore,centered:!0,children:(0,h6.jsx)("form",{onSubmit:l,children:(0,h6.jsxs)(u5r,{loading:e.modePending,restoreFocus:n.restore,children:[(0,h6.jsx)(Z_r,{draft:e,harness:o,harnesses:i,focus:n,cloneState:s}),(0,h6.jsx)(r5r,{submitLabel:a.kind==="clone"?"Clone":wT[e.mode].submitLabel,disabled:a.kind==="blocked",loading:e.modePending})]})})})}var Jve=E(ce(),1);var uai=1e3;async function fai(e){try{let t=e?`?cwd=${encodeURIComponent(e)}`:"",n=await(await hr(`/api/new-session-defaults${t}`)).json();return Object.hasOwn(wT,n?.mode)?n.mode:null}catch{return null}}function h5r(e,t=0){let[r,n]=(0,Jve.useState)(null);return(0,Jve.useEffect)(()=>{let i=!1,o,a=async()=>{let s=await fai(e);i||(s?n({cwd:e,opens:t,mode:s}):o=setTimeout(a,uai))};return a(),()=>{i=!0,clearTimeout(o)}},[e,t]),r?{mode:r.mode,pending:r.cwd!==e||r.opens!==t}:null}function p5r(e,{visible:t,names:r,selected:n}){if(t)return e&&r.includes(e)?e:n}var kT=E(ce(),1),m5r={field:"prompt",selectionStart:0,selectionEnd:0};function g5r(){let[e,t]=(0,kT.useState)(""),[r,n]=(0,kT.useState)(),[i,o]=(0,kT.useState)(),[a,s]=(0,kT.useState)("claude"),[l,u]=(0,kT.useState)(),[f,d]=(0,kT.useState)(m5r),h=(0,kT.useCallback)(()=>{t(""),n(void 0),o(void 0),u(void 0),d(m5r)},[]);return{prompt:e,cwd:r,mode:i,harness:a,node:l,focus:f,setPrompt:t,setNode:u,setCwd:n,setMode:o,setHarness:s,setFocus:d,clear:h}}function y5r(e,t=h5r){let{selectedCwd:r}=$n(),n=Ac(),i=g5r(),o=i.cwd??r,a=t(o,e);return a?{...i,cwd:o,mode:i.mode??a.mode,modePending:i.mode===void 0&&a.pending,node:p5r(i.node,n)}:null}function v5r(e){Ao(Kn("newSession").matches,e)}var b5r=E(ce(),1);function x5r(e,t){let{selectedCwd:r}=$n(),[n,i]=Vc(),o=n.get("new"),a=n.get("newCwd")??r,{setPrompt:s,setCwd:l,setFocus:u}=e??{};(0,b5r.useEffect)(()=>{o===null||!s||!l||!u||(o&&(s(o),l(a),u({field:"prompt",selectionStart:o.length,selectionEnd:o.length})),t(),i(f=>(f.delete("new"),f.delete("newCwd"),f),{replace:!0}))},[o,a,s,l,u,t,i])}var S5r=E($(),1);function T5r({launchers:e}){let[t,r]=(0,rQ.useState)(!1),[n,i]=(0,rQ.useState)(0),o=y5r(n),a=(0,rQ.useCallback)(()=>{r(!0),i(s=>s+1)},[]);return v5r(a),x5r(o,a),!t||!o?null:(0,S5r.jsx)(d5r,{draft:o,launchers:e,onClose:()=>r(!1)})}var ebe=E($(),1);function C5r({reconnecting:e}){return(0,ebe.jsx)(Oh,{open:e,children:(0,ebe.jsx)(Si,{severity:"info",variant:"filled",icon:(0,ebe.jsx)(ao,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var Mv=E($(),1);function w5r({socket:e,onViewLaunchedSession:t}){return(0,Mv.jsxs)(Mv.Fragment,{children:[(0,Mv.jsx)(d_r,{}),(0,Mv.jsx)(T5r,{launchers:{onCreate:e.createSession,onCreateDesign:e.createDesignSession,onCreateHarness:e.createHarnessSession,onCreateAssist:e.createAssistSession}}),(0,Mv.jsx)(C5r,{reconnecting:e.reconnecting}),(0,Mv.jsx)(ec,{error:e.error,onClose:e.clearError}),(0,Mv.jsx)(p_r,{notice:e.success,onClose:e.clearSuccess,onView:t})]})}var Iv=E(ce(),1);var dai=6e4;function hai(e,t,r){return t.map(n=>e.find(i=>i.name===n)??{name:n,local:n===r,loading:!0})}function k5r(e){let t=e.nodes?.local,r=e.names.join(`
4023
4023
  `),[n,i]=(0,Iv.useState)([]),o=(0,Iv.useRef)(0),a=(0,Iv.useCallback)(()=>{let l=r?r.split(`
4024
4024
  `):[];if(l.length===0)return;let u=++o.current;i(f=>hai(f,l,t));for(let f of l)V1e(f,f===t).then(d=>{u===o.current&&i(h=>h.map(p=>p.name===f?d:p))})},[r,t]);(0,Iv.useEffect)(()=>{a();let l=setInterval(a,dai);return()=>clearInterval(l)},[a]);let s=n.length===0;return(0,Iv.useMemo)(()=>({entries:n,loading:s,refresh:a}),[n,s,a])}var W_=E($(),1);function _5r({shell:e,children:t}){let{socket:r,selection:n,launch:i,sidebarCollapse:o}=e,a=k5r(r.nodeSelection);return(0,W_.jsx)(vGe.Provider,{value:a,children:(0,W_.jsx)(dke.Provider,{value:o,children:(0,W_.jsx)(IU.Provider,{value:n,children:(0,W_.jsx)(BGe.Provider,{value:r.nodeSelection,children:(0,W_.jsx)(yf.Provider,{value:n.selectedNode,children:(0,W_.jsx)(rHe.Provider,{value:i,children:(0,W_.jsx)(Eot,{children:t})})})})})})})}var E5r=E($(),1),R5r=st((0,E5r.jsx)("path",{d:"M20 18c1.1 0 1.99-.9 1.99-2L22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2zM4 6h16v10H4z"}),"Computer");var A5r=E(ce(),1);var B0=E($(),1),pai={ml:1,textTransform:"none",fontSize:12};function P5r(){let{nodes:e,names:t,visible:r,selected:n,select:i}=Ac(),[o,a]=(0,A5r.useState)(null);return!r||!e||!n?null:(0,B0.jsxs)(B0.Fragment,{children:[(0,B0.jsx)(Mt,{size:"small",color:"inherit",startIcon:(0,B0.jsx)(R5r,{fontSize:"small"}),"aria-label":"Machine","aria-haspopup":"menu",onClick:s=>a(s.currentTarget),sx:pai,children:(0,B0.jsx)(eQ,{nodes:e,name:n})}),(0,B0.jsx)(Bs,{anchorEl:o,open:!!o,onClose:()=>a(null),children:t.map(s=>(0,B0.jsx)(pn,{selected:s===n,onClick:()=>{i(s),a(null)},sx:{fontSize:13},children:(0,B0.jsx)(eQ,{nodes:e,name:s,showVersion:!0})},s))})]})}var nQ=E(ce(),1);function L5r(e,t){return[...e[0].slice(0,-1),String(t+1)]}var p6=E($(),1),mai=[Ql("secondary"),{ml:.75}];function M5r({index:e,label:t,count:r,...n}){let{chords:i}=Kn("navTab");return(0,p6.jsx)(sr,{describeChild:!0,title:(0,p6.jsx)(Ou,{label:t,chords:[L5r(i,e)]}),children:(0,p6.jsx)(ob,{label:r?(0,p6.jsxs)("span",{children:[t,(0,p6.jsx)(J,{component:"span",sx:mai,children:r})]}):t,...n})})}var I5r=E(ce(),1);var gai=6e4;function D5r(){let e=Oge();return(0,I5r.useEffect)(()=>{A2.refresh();let t=setInterval(()=>{A2.refresh()},gai);return()=>clearInterval(t)},[]),e?.length??0}var sVe=E(ce(),1);function N5r(e,t){let{bound:r}=Kn("navTab"),n=e.length,i=(0,sVe.useCallback)(a=>(WU(a,r)??n)<n,[r,n]),o=(0,sVe.useCallback)(a=>{let s=e[WU(a,r)??-1];s&&t(s)},[e,t,r]);Ao(i,o)}var tbe=E(ce(),1);function O5r(){let[e,t]=(0,tbe.useState)(!1);return(0,tbe.useEffect)(()=>{let r=!1;return(async()=>{try{let i=await(await hr("/api/news/nav")).json();r||t(i?.showInNav===!0)}catch{r||t(!1)}})(),()=>{r=!0}},[]),e}var rbe=E(ce(),1);async function yai(e,t){let r=await hr(Yr(`/api/releases/configured?cwd=${encodeURIComponent(e)}`,t));return r.ok?(await r.json())?.configured===!0:void 0}function B5r(e){let[t,r]=(0,rbe.useState)(null),n=vr(),i=`${n??""}\0${e}`;return(0,rbe.useEffect)(()=>{if(!e)return;let o=!1;return yai(e,n).catch(()=>{}).then(a=>{o||r({key:i,configured:a})}),()=>{o=!0}},[e,n,i]),t?.key===i?t.configured:void 0}var F5r=E(ce(),1);function $5r(e){let{pathname:t}=Go(),r=Bi(),n=t==="/releases"||t.startsWith("/releases/");(0,F5r.useEffect)(()=>{e===!1&&n&&r("/sessions",{replace:!0})},[e,n,r])}var vai={path:"/sessions",label:"Sessions"},bai={path:"/backlog",label:"Backlog"},xai={path:"/next",label:"Next"},Tai={path:"/releases",label:"Releases"},Sai={path:"/news",label:"News"},Cai={path:"/inbox",label:"Inbox"};function z5r(e,t){return[vai,bai,xai,...e?[Tai]:[],...t?[Sai]:[],Cai]}var lVe=E($(),1),wai={mx:"6px"};function H5r({cwd:e}){let t=Go(),r=Bi(),n=B5r(e),i=O5r(),o=D5r();$5r(n);let a=n===!0,s=(0,nQ.useMemo)(()=>z5r(a,i),[a,i]),l=(0,nQ.useMemo)(()=>s.map(d=>d.path),[s]),u=s.findIndex(d=>t.pathname.startsWith(d.path)),f=(0,nQ.useCallback)(d=>{t.pathname!==d&&r(d)},[t.pathname,r]);return N5r(l,f),(0,lVe.jsx)(V5,{sx:wai,value:u===-1?!1:u,textColor:"inherit",indicatorColor:"secondary",children:s.map((d,h)=>(0,lVe.jsx)(M5r,{index:h,label:d.label,count:d.path==="/inbox"?o:void 0,onClick:()=>f(d.path)},d.path))})}var iQ=E($(),1),U5r=(e,t)=>({bgcolor:e,color:t,"& .MuiSvgIcon-root":{color:t},transition:"filter 0.2s ease, transform 0.2s ease","&:hover":{bgcolor:e,color:t,filter:"brightness(1.08)"},"&:active":{transform:"translateY(1px)"}}),kai=e=>({ml:.75,...e.tokens.color.appBar?U5r("primary.main","primary.contrastText"):U5r("primary.contrastText","primary.main")});function W5r(){let[,e]=Vc(),{label:t,chords:r}=Kn("newSession");return(0,iQ.jsx)(sr,{title:(0,iQ.jsx)(Ou,{label:t,chords:r}),children:(0,iQ.jsx)(er,{sx:kai,"aria-label":"New session",onClick:()=>e(i=>(i.set("new",""),i),{replace:!0}),children:(0,iQ.jsx)(GS,{})})})}var nbe=E(ce(),1);var oQ=E($(),1),_ai={strokeWidth:2};function G5r(e){return(0,oQ.jsxs)(I0e,{viewBox:"0 0 24 24",sx:_ai,...e,children:[(0,oQ.jsx)("path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 3.5c-.3 1.15-.3 2.35 0 3.5A5.4 5.4 0 0 0 4 10.5c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"}),(0,oQ.jsx)("path",{d:"M9 18c-4.51 2-5-2-7-2"})]})}var aQ=E($(),1);function V5r({cwd:e}){let[t,r]=(0,nbe.useState)(null),n=vr();return(0,nbe.useEffect)(()=>{if(!e){r(null);return}let i=!1;return(async()=>{try{let a=await(await hr(Yr(`/api/github-url?cwd=${encodeURIComponent(e)}`,n))).json();i||r(a?.url??null)}catch{i||r(null)}})(),()=>{i=!0}},[e,n]),t?(0,aQ.jsx)(sr,{title:"Open in GitHub",children:(0,aQ.jsx)(J,{component:"span",sx:D0e,children:(0,aQ.jsx)(er,{onClick:()=>window.open(t,"_blank"),children:(0,aQ.jsx)(G5r,{})})})}):null}var F0=E($(),1),Eai={color:"inherit",mr:1.5};function q5r({reconnecting:e}){let{pending:t,error:r,clearError:n,restart:i}=x_("webserver",e);return(0,F0.jsxs)(F0.Fragment,{children:[(0,F0.jsx)(sr,{title:"Restart web server",children:(0,F0.jsx)("span",{children:(0,F0.jsx)(er,{sx:Eai,disabled:t,onClick:i,children:t?(0,F0.jsx)(ao,{size:24}):(0,F0.jsx)(W1e,{})})})}),(0,F0.jsx)(ec,{error:r,onClose:n})]})}var K5r=E(ce(),1);var j5r=E(ce(),1);function Y5r(e){let t=Zn().palette.primary.main;Ao(Kn("focusRepoPicker").matches,(0,j5r.useCallback)(()=>Zl({locate:()=>e.current?.querySelector("button")??null,focus:r=>r.focus()},t),[e,t]))}var sQ=E($(),1),Rai={width:240,ml:2};function X5r({repos:e,selected:t,onSelect:r}){let n=(0,K5r.useRef)(null);Y5r(n);let{chords:i}=Kn("focusRepoPicker");return(0,sQ.jsx)(J,{ref:n,sx:Rai,children:(0,sQ.jsx)(L0e,{label:t?Sv(t):"Select repo...",tooltip:(0,sQ.jsx)(Ou,{label:"Repo",chords:i}),typeToOpen:!0,children:(o,a)=>(0,sQ.jsx)(gCr,{repos:e,selected:t,onSelect:r,close:o,initialFilter:a})})})}var aEr=E(ce(),1);var lQ=E(ce(),1);function ibe(e){let[t,r]=(0,lQ.useState)([]),[n,i]=(0,lQ.useState)(!0),o=vr();return(0,lQ.useEffect)(()=>{if(!e){r([]),i(!1);return}let a=!1;return i(!0),hr(Yr(`/api/pr-list?cwd=${encodeURIComponent(e)}`,o)).then(s=>s.json()).then(s=>{a||(r(Array.isArray(s?.prs)?s.prs:[]),i(!1))}).catch(()=>{a||(r([]),i(!1))}),()=>{a=!0}},[e,o]),{prs:t,loading:n}}var cVe=E($(),1);function uVe({text:e}){return(0,cVe.jsx)(J,{sx:{p:1.5},children:(0,cVe.jsx)(Le,{sx:{fontSize:13,color:"text.secondary"},children:e})})}var m6=E($(),1);function Q5r({pr:e,highlighted:t,onHover:r,onPick:n}){let i=Cve(t);return(0,m6.jsx)(pn,{ref:i,selected:t,onMouseDown:o=>o.preventDefault(),onMouseEnter:r,onClick:()=>n(e),sx:{alignItems:"flex-start",py:.75,whiteSpace:"normal"},children:(0,m6.jsxs)(_t,{spacing:.25,sx:{minWidth:0},children:[(0,m6.jsxs)(Le,{sx:{fontSize:13,lineHeight:1.3,fontWeight:500},children:[e.title,e.isDraft&&(0,m6.jsx)(Hn,{label:"Draft",size:"small",variant:"outlined",sx:{ml:.75,height:18,fontSize:10,verticalAlign:"middle"}})]}),(0,m6.jsxs)(Le,{sx:{fontSize:11,color:"text.secondary"},children:["#",e.number," \xB7 ",e.author," \xB7 ",lo(e.createdAt)]})]})})}var fVe=E($(),1);function Z5r({prs:e,highlight:t,onHighlight:r,onPick:n}){return(0,fVe.jsx)(Up,{dense:!0,disablePadding:!0,sx:{maxHeight:200,overflowY:"auto"},children:e.map((i,o)=>(0,fVe.jsx)(Q5r,{pr:i,highlighted:o===t,onHover:()=>r(o),onPick:n},i.number))})}var eEr=E(ce(),1);function J5r(e,t){let r=t.trim().toLowerCase();if(!r)return e;let n=r.replace(/^#/,"");return e.filter(i=>i.title.toLowerCase().includes(r)||i.author.toLowerCase().includes(r)||n!==""&&String(i.number).includes(n))}function tEr(e,t,r){let[n,i]=(0,eEr.useState)(""),o=J5r(e,n),{highlight:a,setHighlight:s,onKeyDown:l}=R_(o,n,t,r);return{filter:n,setFilter:i,filtered:o,highlight:a,setHighlight:s,onKeyDown:l,select:f=>{t(f),r()}}}var G_=E($(),1),rEr={...tF,left:"auto",width:320,maxHeight:"none",overflowY:"visible"};function nEr({cwd:e,onPick:t,close:r}){let{prs:n,loading:i}=ibe(e),o=tEr(n,t,r);return i||n.length===0?(0,G_.jsx)(nn,{elevation:4,sx:rEr,children:(0,G_.jsx)(uVe,{text:i?"Loading open PRs\u2026":"No open PRs"})}):(0,G_.jsxs)(nn,{elevation:4,sx:rEr,children:[(0,G_.jsx)(PS,{autoFocus:!0,value:o.filter,onChange:o.setFilter,onKeyDown:o.onKeyDown,placeholder:"Filter PRs..."}),o.filtered.length===0?(0,G_.jsx)(uVe,{text:"No PRs match"}):(0,G_.jsx)(Z5r,{prs:o.filtered,highlight:o.highlight,onHighlight:o.setHighlight,onPick:o.select})]})}var oEr=E($(),1);function iEr({cwd:e,onPick:t,close:r}){return(0,oEr.jsx)(nEr,{cwd:e,onPick:t,close:r})}var V_=E($(),1);function sEr({cwd:e,disabled:t,onSelect:r}){let{prs:n,loading:i}=ibe(e),[o,a]=(0,aEr.useState)(null);return i||n.length===0?null:(0,V_.jsxs)(V_.Fragment,{children:[(0,V_.jsx)(L0e,{label:"prs",disabled:t,children:s=>(0,V_.jsx)(iEr,{cwd:e,onPick:a,close:s})}),o&&(0,V_.jsx)(a0e,{pr:o,onSelect:s=>{r(o,s),a(null)},onCancel:()=>a(null)})]})}var cEr=E($(),1);function lEr({onStartRun:e,cwd:t}){let r=_0e(t);return!t||r.length===0?null:(0,cEr.jsx)(w0e,{runs:r,onSelect:n=>e(n,t)})}var cQ=E($(),1);function uEr({onCreateAssist:e,onStartRun:t}){let{selectedCwd:r,selectedNode:n}=$n();return(0,cQ.jsxs)(_t,{direction:"row",spacing:.5,sx:{alignItems:"center","&:not(:empty)":{ml:1.5}},children:[(0,cQ.jsx)(sEr,{cwd:r,disabled:!r,onSelect:(i,o)=>e([...o,String(i.number)],r,{...$9(i),node:n})}),(0,cQ.jsx)(lEr,{onStartRun:(i,o)=>t(i,o,void 0,void 0,n),cwd:r})]})}var ch=E($(),1),Aai={minHeight:48,pl:1,pr:14},Pai={flex:1,minWidth:0,display:"flex",alignItems:"center",overflowX:{xs:"auto",sm:"visible"},scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}};function fEr({socket:e,selection:t}){let{collapsed:r,onToggleCollapsed:n}=WS();return(0,ch.jsx)(G5,{variant:"dense",disableGutters:!0,sx:Aai,children:(0,ch.jsxs)(J,{sx:Pai,children:[r&&(0,ch.jsx)(lne,{collapsed:r,onToggleCollapsed:n}),(0,ch.jsx)(q5r,{reconnecting:e.reconnecting}),(0,ch.jsx)(H5r,{cwd:t.selectedCwd}),(0,ch.jsx)(P5r,{}),(0,ch.jsx)(X5r,{repos:t.repos,selected:t.selectedCwd,onSelect:t.setSelectedCwd}),(0,ch.jsxs)(J,{sx:{display:"flex",alignItems:"center",ml:1},children:[(0,ch.jsx)(N0e,{cwd:t.selectedCwd}),(0,ch.jsx)(V5r,{cwd:t.selectedCwd}),(0,ch.jsx)(W5r,{})]}),(0,ch.jsx)(uEr,{onCreateAssist:e.createAssistSession,onStartRun:e.startRun})]})})}var obe=E(ce(),1);function dEr(){let[e,t]=(0,obe.useState)(null);return(0,obe.useEffect)(()=>{let r=!1;return(async()=>{try{let i=await(await hr("/api/health")).json();!r&&typeof i?.nodeName=="string"&&t(i.nodeName)}catch{}})(),()=>{r=!0}},[]),e}var pEr=E($(),1),Lai={lineHeight:"32px",bgcolor:"transparent"};function hEr(){let e=dEr();return e?(0,pEr.jsx)(b2e,{sx:Lai,children:e}):null}var mEr=E($(),1),gEr=st((0,mEr.jsx)("path",{d:"M20 5H4c-1.1 0-1.99.9-1.99 2L2 17c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m-9 3h2v2h-2zm0 3h2v2h-2zM8 8h2v2H8zm0 3h2v2H8zm-1 2H5v-2h2zm0-3H5V8h2zm9 7H8v-2h8zm0-4h-2v-2h2zm0-3h-2V8h2zm3 3h-2v-2h2zm0-3h-2V8h2z"}),"Keyboard");var yEr=E($(),1),vEr=st((0,yEr.jsx)("path",{d:"m12 16.5 4-4h-3v-9h-2v9H8zm9-13h-6v1.99h6v14.03H3V5.49h6V3.5H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2"}),"SystemUpdateAlt");var bEr=E($(),1),xEr=st((0,bEr.jsx)("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6"}),"Brightness4");var TEr=E($(),1),SEr=st((0,TEr.jsx)("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6m0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4"}),"Brightness7");var dVe=E($(),1);function CEr({mode:e}){return e==="dark"?(0,dVe.jsx)(SEr,{fontSize:"small"}):(0,dVe.jsx)(xEr,{fontSize:"small"})}var wEr=E($(),1),kEr=st((0,wEr.jsx)("path",{d:"m20.38 8.57-1.23 1.85a8 8 0 0 1-.22 7.58H5.07A8 8 0 0 1 15.58 6.85l1.85-1.23A10 10 0 0 0 3.35 19a2 2 0 0 0 1.72 1h13.85a2 2 0 0 0 1.74-1 10 10 0 0 0-.27-10.44zm-9.79 6.84a2 2 0 0 0 2.83 0l5.66-8.49-8.49 5.66a2 2 0 0 0 0 2.83"}),"Speed");var M$=E($(),1);function _Er(){let e=p0e();return(0,M$.jsxs)(pn,{onClick:()=>Zgt(!e),children:[(0,M$.jsx)(KT,{children:(0,M$.jsx)(kEr,{fontSize:"small"})}),(0,M$.jsx)(Hp,{children:e?"Hide render HUD":"Show render HUD"})]})}var hl=E($(),1);function EEr({mode:e,restartLabel:t,updateLabel:r,onToggleColorMode:n,onShowShortcuts:i,onRestart:o,onUpdate:a}){return[(0,hl.jsxs)(pn,{onClick:n,children:[(0,hl.jsx)(KT,{children:(0,hl.jsx)(CEr,{mode:e})}),(0,hl.jsx)(Hp,{children:"Toggle dark mode"})]},"color-mode"),(0,hl.jsx)(_Er,{},"render-hud"),(0,hl.jsxs)(pn,{onClick:i,children:[(0,hl.jsx)(KT,{children:(0,hl.jsx)(gEr,{fontSize:"small"})}),(0,hl.jsx)(Hp,{children:"Keyboard shortcuts"})]},"shortcuts"),(0,hl.jsx)(ri,{},"restart-divider"),(0,hl.jsxs)(pn,{onClick:o,children:[(0,hl.jsx)(KT,{children:(0,hl.jsx)(c7,{fontSize:"small"})}),(0,hl.jsx)(Hp,{children:t})]},"restart"),(0,hl.jsxs)(pn,{onClick:a,children:[(0,hl.jsx)(KT,{children:(0,hl.jsx)(vEr,{fontSize:"small"})}),(0,hl.jsx)(Hp,{children:r})]},"update")]}var REr=E(ce(),1);var PEr=E($(),1);function AEr({peer:e,onRestart:t,onClose:r}){let[n,i]=(0,REr.useState)(!1);return(0,PEr.jsx)(Ci,{title:`Restart ${e}?`,message:`Restarts the sessions daemon and web server on ${e}. Its sessions resume when the daemon is back. This page stays open.`,confirmLabel:"Restart",busy:n,autoFocusConfirm:!0,onConfirm:()=>{i(!0),t(e).finally(r)},onCancel:r})}function LEr(e){let t=new Map;for(let r of e){let n=t.get(r.group)??[];n.push(r),t.set(r.group,n)}return[...t].map(([r,n])=>({name:r,shortcuts:n}))}var Mai=Object.keys(i7);function MEr(){let e=o7();return LEr(Mai.map(t=>BS(t,e)))}var Ep=E($(),1),Iai={display:"flex",alignItems:"center",justifyContent:"space-between",pr:1},Dai={display:"flex",alignItems:"center",justifyContent:"space-between",gap:2,py:.5};function IEr({onClose:e}){let t=MEr();return(0,Ep.jsxs)(ql,{open:!0,onClose:e,maxWidth:"xs",fullWidth:!0,"aria-labelledby":"shortcuts-dialog-title",children:[(0,Ep.jsxs)(Ru,{id:"shortcuts-dialog-title",sx:Iai,children:["Keyboard shortcuts",(0,Ep.jsx)(er,{size:"small","aria-label":"Close",onClick:e,children:(0,Ep.jsx)(Ro,{fontSize:"small"})})]}),(0,Ep.jsx)(Eu,{dividers:!0,children:t.map(r=>(0,Ep.jsxs)(J,{component:"section",sx:{mb:1.5},children:[(0,Ep.jsx)(Le,{variant:"overline",color:"text.secondary",children:r.name}),r.shortcuts.map(n=>(0,Ep.jsxs)(J,{sx:Dai,children:[(0,Ep.jsx)(Le,{variant:"body2",children:n.label}),(0,Ep.jsx)(_t,{direction:"row",spacing:.5,children:(0,Ep.jsx)(Fre,{chords:n.chords})})]},n.label))]},r.name))})]})}var g6=E($(),1);function DEr({reconnecting:e,onClose:t}){let{pending:r,error:n,clearError:i,restart:o}=x_(n$.target,e);return(0,g6.jsxs)(g6.Fragment,{children:[(0,g6.jsx)(Ci,{title:n$.label,message:n$.message,confirmLabel:"Restart",busy:r,autoFocusConfirm:!0,onConfirm:()=>{o()},onCancel:t}),(0,g6.jsx)(ec,{error:n,onClose:i})]})}var OEr=E($(),1);function Nai(e){return e?{title:`Update assist on ${e}?`,message:`This runs 'assist update' on ${e} as a new session, then restarts its web server. This page stays open.`}:{title:"Update assist",message:"This starts a new session running 'assist update'. Its output will appear in the terminal."}}function NEr({peer:e,onConfirm:t,onClose:r}){return(0,OEr.jsx)(Ci,{...Nai(e),confirmLabel:"Update",onConfirm:()=>{t(),r()},onCancel:r})}var $0=E(ce(),1);async function Oai(e){try{let t=await hr(`/api/node-doctor?link=${encodeURIComponent(e)}`);return t.ok?(await t.json()).hop:null}catch{return null}}async function BEr(e,t){let r=await Oai(e);if(!r)return t;let n=r.remediation?` \u2014 ${r.remediation}`:"";return`${t}: ${r.hop} hop failed: ${r.error}${n}`}var _T=E(ce(),1);function FEr(e){let{nodes:t}=Ac(),[r,n]=(0,_T.useState)(null),i=(0,_T.useRef)(!1),o=r?t?.links.find(l=>l.name===r.peer):void 0;(0,_T.useEffect)(()=>{if(!(!r||!o)){if(o.state!=="connected"){i.current=!0;return}i.current&&(n(null),e(r.describe(r.peer,o.peerVersion)))}},[r,o,e]);let a=(0,_T.useCallback)((l,u)=>{i.current=!1,n({peer:l,describe:u})},[]),s=(0,_T.useCallback)(()=>n(null),[]);return{watch:a,stop:s}}var Bai=9e4;function abe(){let[e,t]=(0,$0.useState)(null),[r,n]=(0,$0.useState)(null),i=(0,$0.useRef)(void 0),o=(0,$0.useCallback)(f=>{clearTimeout(i.current),t(f)},[]),{watch:a,stop:s}=FEr(o);(0,$0.useEffect)(()=>()=>clearTimeout(i.current),[]);let l=(0,$0.useCallback)(async(f,d)=>{n(await BEr(f,d))},[]);return{requestThenAwait:(0,$0.useCallback)(async(f,d,h,p)=>{let m;try{m=await h()}catch{}return m?.ok?(a(f,p),clearTimeout(i.current),i.current=setTimeout(()=>{s(),l(f,`${f} did not come back`)},Bai),!0):(await l(f,`${d} failed (${await r$(m)})`),!1)},[l,a,s]),back:e,clearBack:()=>t(null),error:r,clearError:()=>n(null)}}var Fai=(e,t)=>t?`${e} is back (v${t})`:`${e} is back`;function $Er(){let{requestThenAwait:e,...t}=abe();return{restart:n=>e(n,`Restart ${n}`,()=>b_("both",n),Fai),...t}}var uQ=E(ce(),1);var z0=E(ce(),1);function zEr(e){return e.commandType==="assist"&&e.assistArgs?.[0]==="update"&&e.status==="done"}function sbe(e,t,r){let[n,i]=(0,z0.useState)(!1),[o,a]=(0,z0.useState)(!1),s=(0,z0.useRef)(!1),l=(0,z0.useRef)(e);l.current=e;let u=(0,z0.useRef)(new Set),f=(0,z0.useCallback)(()=>{s.current=!1,a(!1),u.current=new Set(l.current.filter(zEr).map(d=>d.id)),i(!0)},[]);return(0,z0.useEffect)(()=>{if(!n||o)return;if(t){s.current=!0;return}if(!s.current)return;e.some(h=>zEr(h)&&h.node===r&&!u.current.has(h.id))&&a(!0)},[n,o,t,e,r]),{arm:f,completed:o}}var HEr=(e,t)=>t?`${e} updated to v${t}`:`${e} updated`;function $ai(e){return hr(`/api/self-update?node=${encodeURIComponent(e)}`,{method:"POST"})}function UEr(e){let{nodes:t}=Ac(),{launchAssist:r}=ll(),{requestThenAwait:n,...i}=abe(),[o,a]=(0,uQ.useState)(null),[s,l]=(0,uQ.useState)(),u=m=>t?.links.find(g=>g.name===m)?.state,{arm:f,completed:d}=sbe(e,u(s)!=="connected",s);(0,uQ.useEffect)(()=>{!d||!s||(l(void 0),n(s,`Restart ${s}'s web server`,()=>b_("webserver",s),HEr))},[d,s,n]);let h=async m=>{a(`Updating assist on ${m}\u2026`),await n(m,`Update ${m}`,()=>$ai(m),HEr),a(null)};return{update:m=>{if(u(m)!=="connected"){h(m);return}l(m),f(),r(["update"],void 0,{node:m})},progress:o,...i}}var H0=E($(),1);function WEr({dialog:e,peer:t,sessions:r,reconnecting:n,onClose:i}){let{launchAssist:o,armUpdateReload:a}=ll(),s=$Er(),l=UEr(r);return(0,H0.jsxs)(H0.Fragment,{children:[e==="shortcuts"&&(0,H0.jsx)(IEr,{onClose:i}),e==="restart"&&t&&(0,H0.jsx)(AEr,{peer:t,onRestart:s.restart,onClose:i}),e==="restart"&&!t&&(0,H0.jsx)(DEr,{reconnecting:n,onClose:i}),e==="update"&&(0,H0.jsx)(NEr,{peer:t,onConfirm:()=>{if(t){l.update(t);return}a(),o(["update"])},onClose:i}),(0,H0.jsx)(CX,{notices:s}),(0,H0.jsx)(CX,{notices:l})]})}var GEr=E($(),1),VEr=st((0,GEr.jsx)("path",{d:"M11 18h2v-2h-2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4"}),"HelpOutlineOutlined");var lbe=E($(),1),zai="https://staffordwilliams.com/assist";function qEr(){return(0,lbe.jsx)(sr,{title:"Help",children:(0,lbe.jsx)(er,{component:"a",href:zai,target:"_blank",rel:"noopener noreferrer","aria-label":"Help",size:"small",sx:{color:"inherit"},children:(0,lbe.jsx)(VEr,{fontSize:"small"})})})}var jEr=E($(),1),YEr=st((0,jEr.jsx)("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6"}),"Settings");var KEr=E(ce(),1);var fQ=E($(),1);function XEr(){let e=Bi(),t=(0,KEr.useCallback)(()=>e("/config"),[e]),{matches:r,chords:n}=Kn("openConfig");return Ao(r,t),(0,fQ.jsx)(sr,{describeChild:!0,title:(0,fQ.jsx)(Ou,{label:"Config",chords:n}),children:(0,fQ.jsx)(er,{size:"small",sx:{color:"inherit"},"aria-label":"Config",onClick:t,children:(0,fQ.jsx)(YEr,{fontSize:"small"})})})}var QEr=E($(),1),ZEr=st((0,QEr.jsx)("path",{d:"M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z"}),"Menu");var cbe=E(ce(),1);var dQ=E($(),1);function JEr({open:e,onOpen:t}){let r=(0,cbe.useRef)(null),{matches:n,chords:i}=Kn("openMenu");return Ao(n,(0,cbe.useCallback)(()=>{r.current&&t(r.current)},[t])),(0,dQ.jsx)(sr,{describeChild:!0,title:(0,dQ.jsx)(Ou,{label:"Menu",chords:i}),children:(0,dQ.jsx)(er,{ref:r,onClick:o=>t(o.currentTarget),size:"small",sx:{color:"inherit"},"aria-label":"Open menu","aria-haspopup":"true","aria-expanded":e?"true":void 0,children:(0,dQ.jsx)(ZEr,{fontSize:"small"})})})}var I$=E($(),1);function e4r({open:e,onOpen:t}){return(0,I$.jsxs)(J,{sx:{position:"fixed",top:`calc(8px + ${uy.top})`,right:16,zIndex:r=>r.zIndex.drawer+2,display:"flex",alignItems:"center",gap:.5,color:r=>r.tokens.color.appBar?.text??r.palette.primary.contrastText},children:[(0,I$.jsx)(qEr,{}),(0,I$.jsx)(XEr,{}),(0,I$.jsx)(JEr,{open:e,onOpen:t})]})}var y6=E(ce(),1);var r4r=E(ce(),1);var t4r=!0,Hai=new Set(["openMenu","cycleCards"]),Uai=Object.keys(i7).filter(e=>!Hai.has(e));function n4r(e,t){let r=o7();(0,r4r.useEffect)(()=>{if(!e)return;let n=i=>{Uai.some(o=>BS(o,r).matches(i))&&t()};return globalThis.addEventListener("keydown",n,t4r),()=>globalThis.removeEventListener("keydown",n,t4r)},[e,t,r])}function i4r(){let[e,t]=(0,y6.useState)(null),[r,n]=(0,y6.useState)(!0),i=!!e,o=(0,y6.useCallback)(()=>t(null),[]),a=(0,y6.useCallback)(s=>{n(!0),t(s)},[]);return n4r(i,(0,y6.useCallback)(()=>{n(!1),t(null)},[])),{anchorEl:e,open:i,close:o,openAt:a,restoreFocus:r}}var hQ=E(ce(),1);function o4r(e){Ao(Kn("shortcutsSheet").matches,e)}function a4r(){let[e,t]=(0,hQ.useState)(null);o4r((0,hQ.useCallback)(()=>t("shortcuts"),[]));let r=(0,hQ.useCallback)(()=>t(null),[]);return{dialog:e,showDialog:t,closeDialog:r}}function s4r(){let{nodes:e,selected:t}=Ac();return e&&t&&t!==e.local?t:void 0}function l4r(e){return{restartLabel:e?`Restart ${e}`:n$.label,updateLabel:e?`Update assist on ${e}`:"Update assist"}}var ET=E($(),1);function c4r({mode:e,toggle:t,sessions:r,reconnecting:n}){let{anchorEl:i,open:o,close:a,openAt:s,restoreFocus:l}=i4r(),{dialog:u,showDialog:f,closeDialog:d}=a4r(),h=s4r(),p=m=>()=>{a(),f(m)};return(0,ET.jsxs)(ET.Fragment,{children:[(0,ET.jsx)(e4r,{open:o,onOpen:s}),(0,ET.jsxs)(Bs,{anchorEl:i,open:o,onClose:a,disableRestoreFocus:!l,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[(0,ET.jsx)(hEr,{}),EEr({mode:e,...l4r(h),onToggleColorMode:()=>{t(),a()},onShowShortcuts:p("shortcuts"),onRestart:p("restart"),onUpdate:p("update")})]}),(0,ET.jsx)(WEr,{dialog:u,peer:h,sessions:r,reconnecting:n,onClose:d})]})}var d4r=E(ce(),1);var f4r=E($(),1);function u4r({conflict:e,onConfirm:t,onCancel:r}){let{name:n,cwd:i,port:o,group:a}=e.existing,s=im(i),l=o?` on port ${o}`:"",u=s?` in ${s}`:"",f=a?`, holding the ${a} server slot`:"";return(0,f4r.jsx)(Ci,{title:a?`Replace the ${a} server?`:"Replace running server?",message:`"${n}" is already serving${l}${u}${f}. Replace it \u2014 stop the running server and start this one?`,confirmLabel:"Replace",confirmColor:"error",onConfirm:t,onCancel:r})}var ube=E($(),1);function h4r({socket:e,children:t}){let{serverConflict:r,clearServerConflict:n,retrySession:i,stopSession:o,startRun:a,discardSession:s}=e,l=(0,d4r.useMemo)(()=>({onStop:o,onStart:a,onDiscard:s}),[o,a,s]),u=()=>{r&&(r.runName?a(r.runName,r.cwd,!0,r.launchedFrom,r.node):r.sessionId&&i(r.sessionId,!0),n())};return(0,ube.jsxs)(ike.Provider,{value:l,children:[t,r&&(0,ube.jsx)(u4r,{conflict:r,onConfirm:u,onCancel:n})]})}var p4r=new Map;function m4r(e,t){if(!Yie())return;let r=p4r.get(e);if(p4r.set(e,t),!!r)for(let[n,i]of Object.entries(t))Object.is(i,r[n])||_y(`\u0394 ${e}.${n}`)}var dbe=E(ce(),1);function g4r(e,t,r){if(!t)return null;let n=e[t];if(!n)return null;let i=r.find(o=>o.id===n);return!i||om(i)!==t?null:n}function Dv(e,t,r){if(e)return t.find(n=>n.id===e)??r.find(n=>n.sessionId===e)}function fbe(){let{pathname:e}=Go();return e.startsWith("/backlog")||e.startsWith("/usage")}function y4r({selectedCwd:e,selectedCardId:t,sessions:r,history:n,activeByRepo:i,onSelect:o}){let a=Dv(t,r,n),s=a&&om(a),l=!!(s&&s===e),u=g4r(i,e,r),f=(0,dbe.useRef)(t),d=fbe();(0,dbe.useEffect)(()=>{let h=f.current!==t&&!!s;f.current=t,!(d||h||l||!u)&&o(u)},[t,s,l,u,o,d])}var mbe=E(ce(),1);function v4r(e,t,r,n){return Dv(e,t,r)?.cwd||n}function b4r(e,t,r,n){let i=v4r(e,t,r,n.cwd),o=Dv(e,t,r);return{cwd:i,node:o?.cwd?o.node:n.node}}var hVe=E(ce(),1);function x4r(e,t,r){let{cwd:n,node:i,origin:o}=r,a=(0,hVe.useCallback)((l,u)=>{let f=xT(u,t),d=VX(e,l);return d?d.clones[f]:f===(l===n?i:_p)?l:void 0},[e,t,n,i]),s=(0,hVe.useCallback)(l=>VX(e,l)?.origin??(l===n?o:void 0),[e,n,o]);return{cloneOn:a,originOf:s}}var hbe=E(ce(),1);function T4r(e,t,r,n){let i=(0,hbe.useRef)(e);(0,hbe.useEffect)(()=>{if(i.current===e)return;i.current=e;let o=VX(t,r)?.clones[e];o&&n(o,e)},[e,t,r,n])}var D$=E(ce(),1);function S4r(e,t,r){if(t.node!==void 0)return t.node;let n=new Set(e.flatMap(i=>Object.entries(i.clones).filter(([,o])=>o===t.cwd).map(([o])=>o)));return n.has(r)?r:n.size===0||n.has(_p)?_p:[...n][0]}function C4r(e,t,r,n){let[i,o]=(0,D$.useState)({cwd:e}),a=(0,D$.useCallback)((l,u,f)=>o({cwd:l,node:u,origin:f}),[]);(0,D$.useEffect)(()=>{e&&!i.cwd&&o({cwd:e})},[e,i.cwd]);let s=S4r(t,{cwd:i.cwd,node:i.node===void 0?void 0:xT(i.node,n)},r);return{selectedCwd:i.cwd,selectedNode:s||void 0,selectedPick:{cwd:i.cwd,node:s,origin:i.origin},setSelectedCwd:a}}var w4r=E(ce(),1);function pbe(e,t,r){let n=Dv(e,t,r);return n&&om(n)}function k4r(e,t,r,n){let i=pbe(e,t,r),o=Dv(e,t,r),a=o?.node??_p,s=o?.repoGroup?.origin;(0,w4r.useEffect)(()=>{i&&n(i,a,s)},[i,a,s,n])}function _4r(e,t,r,n,i){let o=i.nodes?.local,a=xT(i.selected,o),s=(0,mbe.useMemo)(()=>HCr(e,t),[e,t]),{selectedCwd:l,selectedNode:u,selectedPick:f,setSelectedCwd:d}=C4r(e,s,a,o);k4r(r,n,t,d),T4r(a,s,l,d);let{cloneOn:h,originOf:p}=x4r(s,o,f),m=(0,mbe.useMemo)(()=>s.map(v=>UCr(v,a)),[s,a]),{cwd:g,node:y}=b4r(r,n,t,{cwd:l,node:u});return(0,mbe.useMemo)(()=>({repos:m,selectedCwd:l,selectedNode:u,worktreeCwd:g,worktreeNode:y,setSelectedCwd:d,cloneOn:h,originOf:p}),[m,l,u,g,y,d,h,p])}var ybe=E(ce(),1);var q_=E(ce(),1);var E4r=E(ce(),1),gbe="assist:reloaded-after-update";function R4r(e){(0,E4r.useEffect)(()=>{globalThis.sessionStorage?.getItem(gbe)&&(globalThis.sessionStorage.removeItem(gbe),e({message:"Reloaded after updating assist",sessionId:null}))},[e])}function A4r(e,t,r,n){let{arm:i,completed:o}=sbe(e,t),a=(0,q_.useRef)(!1),s=(0,q_.useCallback)(()=>{globalThis.sessionStorage?.setItem(gbe,"1")},[]),{error:l,restart:u}=x_("webserver",t,s);return R4r(r),(0,q_.useEffect)(()=>{l&&n(l)},[l,n]),(0,q_.useEffect)(()=>{!o||a.current||(a.current=!0,u())},[o,u]),{armUpdateReload:(0,q_.useCallback)(()=>{a.current=!1,i()},[i])}}function P4r(e){let{armUpdateReload:t}=A4r(e.sessions,e.reconnecting,e.setSuccess,e.setError),r=yy(e.selectSession),n=(0,ybe.useMemo)(()=>({launchAssist:e.createAssistSession,launchAgentInStream:e.createSessionInStream,resumeSession:e.resumeSession,armUpdateReload:t,activateSession:r,sendInput:e.sendInput}),[e.createAssistSession,e.createSessionInStream,e.resumeSession,t,r,e.sendInput]),i=Bi(),o=(0,ybe.useCallback)(a=>{e.selectSession(a),i("/sessions"),e.clearSuccess()},[i,e.selectSession,e.clearSuccess]);return{launch:n,viewLaunchedSession:o}}var L4r=E(ce(),1);function M4r(e,t,r,n){let i=pbe(e,t,r);(0,L4r.useEffect)(()=>{e&&i&&n({type:"set-active",cwd:i,sessionId:e})},[e,i,n])}var vbe=E(ce(),1);function I4r(e,t){let r=(0,vbe.useRef)(new Map);(0,vbe.useEffect)(()=>{let n=new Set;for(let{id:i,status:o}of e)n.add(i),r.current.get(i)!==o&&(r.current.set(i,o),console.debug(`[sessions] render session ${i} status=${o}`),t({type:"ui-status",sessionId:i,status:o}));for(let i of r.current.keys())n.has(i)||r.current.delete(i)},[e,t])}var N$=E(ce(),1),D4r="assist.sessions.node";function Wai(){try{return localStorage.getItem(D4r)}catch{return null}}function Gai(e){try{localStorage.setItem(D4r,e)}catch{}}function N4r(e){let[t,r]=(0,N$.useState)(Wai),n=(0,N$.useCallback)(i=>{r(i),Gai(i)},[]);return(0,N$.useMemo)(()=>{let i=e?[e.local,...e.links.map(o=>o.name)]:[];return{nodes:e,names:i,visible:i.length>1,selected:t&&i.includes(t)?t:e?.local,select:n}},[e,t,n])}var B4r=E(ce(),1);function O4r(e){let t=e;if(t.type==="create")return{cwd:t.cwd,title:t.prompt?.trim()||(t.design?"New design session":"New session"),node:t.node};if(t.type==="create-assist"){let r=t.title?.trim();return{cwd:t.cwd,title:r||"New session",named:!!r,node:t.node}}return null}function F4r(e,t){return(0,B4r.useCallback)(r=>{let n=e.current;n?.readyState===WebSocket.OPEN&&n.send(JSON.stringify(r));let i=O4r(r);i&&t(i)},[e,t])}var Nv=E(ce(),1);function bbe(e,t,r,n,i){e({type:"create",prompt:r||void 0,cwd:n,...t,...i?{node:i}:{}})}function $4r(e){return(t,r,n)=>bbe(e,{design:!0},t,r,n)}function z4r(e){return(t,r,n,i)=>bbe(e,{harness:t},r,n,i)}function H4r(e){return(t,r,n)=>bbe(e,{auto:!0},t,r,n)}function U4r(e){return(t,r,n)=>e({type:"create-assist",assistArgs:t,cwd:r,...n})}function W4r(e){return(t,r,n,i,o)=>e({type:"resume",sessionId:t,cwd:r,name:n,harness:i,node:o})}function G4r(e,t){return(r,n)=>{t.delete(r),e({type:"retry",sessionId:r,replace:n})}}function V4r(e,t){return r=>{t.delete(r),e({type:"restart",sessionId:r})}}function q4r(e,t){return r=>{e({type:"dismiss",sessionId:r}),t.delete(r)}}function j4r(e,t){return r=>{e({type:"discard",sessionId:r}),t.delete(r)}}function Y4r(e){return t=>e({type:"stop",sessionId:t})}function K4r(e){return(t,r,n,i,o)=>e({type:"create-run",runName:t,cwd:r,replace:n,launchedFrom:i,node:o})}function X4r(e){return(t,r)=>e({type:"set-autoapprove",sessionId:t,enabled:r})}function Q4r(e){return(t,r)=>e({type:"set-autoadvance",sessionId:t,enabled:r})}function Z4r(e){return(t,r)=>e({type:"set-starred",sessionId:t,starred:r})}function J4r(e){return(t,r)=>e({type:"input",sessionId:t,data:r,viewerId:SX})}function e3r(e){return(t,r,n,i)=>e({type:"resize",sessionId:t,cols:r,rows:n,viewerId:SX,claim:i==="claim",refresh:i==="refresh"})}function t3r(e){return(t,r,n,i)=>e({type:"pr-decision",sessionId:t,requestId:r,decision:n,...i})}var v6=E(ce(),1);function r3r(e){return(t,r,n)=>e({type:"create",prompt:r||void 0,cwd:n,joinSessionId:t,auto:!0})}function n3r(e){return{createSession:(0,v6.useMemo)(()=>H4r(e),[e]),createSessionInStream:(0,v6.useMemo)(()=>r3r(e),[e]),createDesignSession:(0,v6.useMemo)(()=>$4r(e),[e]),createHarnessSession:(0,v6.useMemo)(()=>z4r(e),[e]),createAssistSession:(0,v6.useMemo)(()=>U4r(e),[e]),resumeSession:(0,v6.useMemo)(()=>W4r(e),[e])}}var pQ=E(ce(),1);function i3r(e,t){let r=(0,pQ.useCallback)((a,s)=>{G4r(e,t.current)(a,s)},[e,t]),n=(0,pQ.useCallback)(a=>{V4r(e,t.current)(a)},[e,t]),i=(0,pQ.useCallback)(a=>{q4r(e,t.current)(a)},[e,t]),o=(0,pQ.useCallback)(a=>{j4r(e,t.current)(a)},[e,t]);return{retrySession:r,restartSession:n,dismissSession:i,discardSession:o}}function o3r(e,t,r){return(n,i)=>{let o=t.get(n);return o&&(i(o),e({type:"snapshot",sessionId:n})),r.set(n,i),()=>r.delete(n)}}function a3r(e,t,r){let n={...n3r(e),sendInput:(0,Nv.useMemo)(()=>J4r(e),[e]),sendResize:(0,Nv.useMemo)(()=>e3r(e),[e]),sendPrDecision:(0,Nv.useMemo)(()=>t3r(e),[e]),setAutoApprove:(0,Nv.useMemo)(()=>X4r(e),[e]),setAutoAdvance:(0,Nv.useMemo)(()=>Q4r(e),[e]),setStarred:(0,Nv.useMemo)(()=>Z4r(e),[e]),stopSession:(0,Nv.useMemo)(()=>Y4r(e),[e]),startRun:(0,Nv.useMemo)(()=>K4r(e),[e])},i=(0,Nv.useMemo)(()=>o3r(e,t.current,r.current),[e,t,r]);return{...n,...i3r(e,t),onOutput:i}}var mQ=E(ce(),1);function s3r(e,t,r){let n=(0,mQ.useCallback)(s=>{r(s),e({type:"fetch-transcript",sessionId:s})},[e,r]),i=(0,mQ.useCallback)(s=>e({type:"fetch-user-messages",sessionId:s}),[e]),o=(0,mQ.useCallback)(()=>{r(null)},[r]),a=(0,mQ.useCallback)(s=>{r(null),t(s)},[t,r]);return{viewTranscript:n,fetchUserMessages:i,clearTranscript:o,selectSession:a}}var Cbe=E(ce(),1);function l3r(e,t){let r=new Set(t.map(i=>i.id)),n=null;for(let i of Object.values(e))r.has(i)&&(n=i);return n}var O$=E(ce(),1);function c3r(){let[e,t]=(0,O$.useState)(null),r=(0,O$.useRef)(e);r.current=e;let n=(0,O$.useCallback)(()=>r.current,[]);return{activeId:e,setActiveId:t,getActiveId:n}}var f3r=E(ce(),1);function u3r(e,t,r=null){return t!==null?e.some(n=>n.id===t)?t:e[0]?.id??null:r&&e.some(n=>n.id===r)?r:e[0]?.id??null}function d3r(e,t,r){let n=fbe();(0,f3r.useEffect)(()=>{if(n){t(null);return}t(i=>u3r(e,i,r))},[e,t,r,n])}var xbe=E(ce(),1);function h3r(){let[e,t]=(0,xbe.useState)({}),[r,n]=(0,xbe.useState)(null),[i,o]=(0,xbe.useState)(null);return{activeByRepo:e,setActiveByRepo:t,daemonVersion:r,setDaemonVersion:n,nodes:i,setNodes:o}}var U0=E(ce(),1);function p3r(e,t){for(let r of t)clearTimeout(e.get(r)),e.delete(r)}function m3r(e,t){let r=new Set(t.map(n=>n.id));return[...e.keys()].filter(n=>!r.has(n))}function g3r(e,t){if(!t.some(n=>e.has(n)))return e;let r=new Set(e);for(let n of t)r.delete(n);return r}function y3r(e,t){let r=[];for(let n of t){let i=e.get(n.id);i!==void 0&&i!==n.startedAt&&r.push(n.id)}return r}function v3r(e,t){return t.filter(r=>r.commandType==="run"&&e.get(r.id)!==r.startedAt).map(r=>r.id)}var Vai=1500;function b3r(){let[e,t]=(0,U0.useState)(new Set),r=(0,U0.useRef)(new Map),n=(0,U0.useRef)(new Map),i=(0,U0.useCallback)(s=>{t(l=>l.has(s)?l:new Set(l).add(s))},[]),o=(0,U0.useCallback)(s=>{let l=n.current;for(let u of s)clearTimeout(l.get(u)),l.set(u,setTimeout(()=>{l.delete(u),i(u)},Vai))},[i]);(0,U0.useEffect)(()=>{let s=n.current;return()=>{for(let l of s.values())clearTimeout(l)}},[]);let a=(0,U0.useCallback)(s=>{let l=m3r(r.current,s),u=[...y3r(r.current,s),...l],f=v3r(r.current,s);r.current=new Map(s.map(d=>[d.id,d.startedAt])),p3r(n.current,l),u.length&&t(d=>g3r(d,u)),o(f)},[o]);return{initialized:e,markInitialized:i,syncSessions:a}}var j_=E(ce(),1);function x3r(){let[e,t]=(0,j_.useState)(null),[r,n]=(0,j_.useState)(null),[i,o]=(0,j_.useState)(null),a=(0,j_.useCallback)(()=>t(null),[]),s=(0,j_.useCallback)(()=>n(null),[]),l=(0,j_.useCallback)(()=>o(null),[]);return{error:e,setError:t,clearError:a,success:r,setSuccess:n,clearSuccess:s,serverConflict:i,setServerConflict:o,clearServerConflict:l}}var Ov=E(ce(),1);function T3r(e,t){return[...e,{...t,status:"launching"}]}function Tbe(e){return e.find(t=>t.status==="launching")}function S3r(e){let t=Tbe(e);return t?e.filter(r=>r.id!==t.id):e}function C3r(e,t){let r=Tbe(e);return r?pVe(e,r.id,t):e}function pVe(e,t,r){return e.map(n=>n.id===t&&n.status==="launching"?{...n,status:"error",error:r}:n)}function w3r(e,t){return e.filter(r=>r.id!==t)}var k3r=E(ce(),1);var qai=6e4,jai="Launch timed out \u2014 the session did not start.";function _3r(e,t){(0,k3r.useEffect)(()=>{let r=e.filter(i=>i.status==="launching");if(r.length===0)return;let n=r.map(i=>setTimeout(()=>t(o=>pVe(o,i.id,jai)),Math.max(0,qai-(Date.now()-i.startedAt))));return()=>n.forEach(clearTimeout)},[e,t])}function E3r(){let[e,t]=(0,Ov.useState)([]),r=(0,Ov.useRef)([]),n=(0,Ov.useCallback)(l=>{r.current=l(r.current),t(r.current)},[]),i=(0,Ov.useCallback)(l=>{n(u=>T3r(u,{id:crypto.randomUUID(),startedAt:Date.now(),...l}))},[n]),o=(0,Ov.useCallback)(()=>{let l=Tbe(r.current);return n(S3r),l?.named?l.title:void 0},[n]),a=(0,Ov.useCallback)(l=>n(u=>C3r(u,l)),[n]),s=(0,Ov.useCallback)(l=>n(u=>w3r(u,l)),[n]);return _3r(e,n),{pendingLaunches:e,addPendingLaunch:i,resolvePendingLaunch:o,failPendingLaunch:a,dismissPendingLaunch:s}}var gQ=E(ce(),1);function R3r(){let[e,t]=(0,gQ.useState)(null),[r,n]=(0,gQ.useState)({}),i=(0,gQ.useCallback)((o,a)=>{o!=="claude"&&n(s=>({...s,[o]:a}))},[]);return{rateLimits:e,setRateLimits:t,harnessRateLimits:r,setHarnessRateLimits:i}}var A3r=E(ce(),1);function P3r(e,t){return(0,A3r.useCallback)(r=>{e(r),t(r)},[e,t])}var mVe=E(ce(),1);function L3r(){let e=(0,mVe.useRef)(new Map),t=(0,mVe.useRef)(new Map);return{buffers:e,handlers:t}}var Sbe=E(ce(),1);function M3r(){let[e,t]=(0,Sbe.useState)(null),[r,n]=(0,Sbe.useState)(null),[i,o]=(0,Sbe.useState)(null);return{transcript:e,setTranscript:t,viewingTranscriptSessionId:r,setViewingTranscriptSessionId:n,userMessages:i,setUserMessages:o}}var Y_=E(ce(),1);function I3r(e,t){let r=e.sessionId;t.buffers.current?.delete(r),t.handlers.current?.get(r)?.("\x1Bc")}function D3r(e,t){let r=e.sessionId,n=t.resolvePendingLaunch();e.isNew&&t.getActiveId()!==null||(t.setViewingTranscriptSessionId(null),t.setActiveId(r)),e.isNew&&t.setSuccess({message:n?`Started ${n}`:"New session started",sessionId:r})}function N3r(e,t){let r=e.message;t.setError(r),t.failPendingLaunch(r)}function O3r(e,t){let r=e.rateLimits,n=e.harness;!n||n==="claude"?t.setRateLimits(r):t.setHarnessRateLimits?.(n,r)}function B3r(e,t){t.setNodes({local:e.local,links:e.links??[]})}function F3r(e,t){t.setSuccess({message:e.message,sessionId:null})}function $3r(e,t){let r=e.sessionId,n=t.buffers.current?.get(r)??"";t.buffers.current?.set(r,n+e.data),t.handlers.current?.get(r)?.(e.data),t.markInitialized(r)}function z3r(e,t){t.setServerConflict({existing:e.existing,runName:e.runName,cwd:e.cwd,sessionId:e.sessionId,launchedFrom:e.launchedFrom,node:e.node})}function H3r(e,t){let r=e.sessions;t.setSessions(r),e.cwd&&t.setCurrentCwd(e.cwd),t.setActiveByRepo(e.active??{})}function U3r(e,t){let r=e.sessionId,n=e.data;t.buffers.current?.set(r,n),t.handlers.current?.get(r)?.(`\x1Bc${n}`)}var Yai={sessions:H3r,created:D3r,history:(e,t)=>t.setHistory(e.sessions),transcript:(e,t)=>t.setTranscript({sessionId:e.sessionId,messages:e.messages}),"user-messages":(e,t)=>t.setUserMessages({sessionId:e.sessionId,messages:e.messages}),hello:(e,t)=>t.setDaemonVersion(e.version),nodes:B3r,error:N3r,notice:F3r,"run-conflict":z3r,limits:O3r,clear:I3r,output:$3r,snapshot:U3r};function W3r(e,t){Yai[e.type]?.(e,t)}function G3r(e,t={}){let r=new WebSocket(Kot("/ws"));return r.onopen=()=>{t.onOpen?.(),r.send(JSON.stringify({type:"hello"})),r.send(JSON.stringify({type:"history"}))},r.onmessage=n=>{W3r(JSON.parse(n.data),e)},r.onclose=()=>t.onClose?.(),r}function V3r(e,t,r,n){let i=!1,o,a=0,s=!1,l=()=>{i||t(G3r(e,{onOpen:()=>{s&&r(),s=!1,n(!1),a=0},onClose:()=>{if(i)return;s=!0,n(!0);let u=Math.min(300*2**a,2e3);a+=1,o=setTimeout(l,u)}}))};return l(),()=>{i=!0,o&&clearTimeout(o)}}function q3r(e){let t=(0,Y_.useRef)(null),[r,n]=(0,Y_.useState)(!1),{handleSessions:i,markInitialized:o,buffers:a,handlers:s}=e;(0,Y_.useEffect)(()=>{let u=()=>{a.current?.clear();let d=s.current;if(d)for(let h of d.values())h("\x1Bc")},f=V3r({...e,setSessions:i},d=>{t.current=d},u,n);return()=>{f(),t.current?.close()}},[i,o,a,s]);let l=(0,Y_.useCallback)(()=>{let u=t.current;u?.readyState===WebSocket.OPEN&&u.send(JSON.stringify({type:"history"}))},[]);return{wsRef:t,requestHistory:l,reconnecting:r}}function j3r(){let[e,t]=(0,Cbe.useState)([]),[r,n]=(0,Cbe.useState)([]),{activeId:i,setActiveId:o,getActiveId:a}=c3r(),s=h3r(),l=M3r(),[u,f]=(0,Cbe.useState)(""),d=x3r(),h=E3r(),p=R3r(),{initialized:m,markInitialized:g,syncSessions:y}=b3r(),v=L3r(),b=P3r(y,t),{wsRef:x,requestHistory:C,reconnecting:S}=q3r({handleSessions:b,setHistory:n,getActiveId:a,setActiveId:o,...s,...l,setCurrentCwd:f,...d,...h,...p,markInitialized:g,...v});return d3r(e,o,l3r(s.activeByRepo,e)),{sessions:e,history:r,activeId:i,setActiveId:o,...s,...l,currentCwd:u,...d,...h,...p,initialized:m,wsRef:x,...v,requestHistory:C,reconnecting:S}}function Y3r(){let e=j3r(),{wsRef:t,buffers:r,handlers:n,addPendingLaunch:i,activeId:o,sessions:a}=e,s=N4r(e.nodes),l=F4r(t,i),u=a3r(l,r,n);M4r(o,a,e.history,l),I4r(a,l);let f=s3r(l,e.setActiveId,e.setViewingTranscriptSessionId);return{...e,...u,...f,nodeSelection:s}}var B$=E(ce(),1);var K3r="assist:sidebar-collapsed";function X3r(){let[e,t]=(0,B$.useState)(()=>Ju(K3r).length>0),r=(0,B$.useCallback)(()=>{t(n=>{let i=!n;return ef(K3r,i?[!0]:[]),i})},[]);return(0,B$.useMemo)(()=>({collapsed:e,onToggleCollapsed:r}),[e,r])}var Q3r=E(ce(),1);function Z3r(){(0,Q3r.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await hr("/api/hotkeys");if(!t.ok)return;let r=await t.json();e||SE.set(r)}catch{}})(),()=>{e=!0}},[])}function J3r(){let e=Y3r(),t=Cge(e),r=_4r(e.currentCwd,e.history,t,e.sessions,e.nodeSelection);y4r({selectedCwd:r.selectedCwd,selectedCardId:t,sessions:e.sessions,history:e.history,activeByRepo:e.activeByRepo,onSelect:e.selectSession});let{launch:n,viewLaunchedSession:i}=P4r(e);Z3r();let o=X3r();return m4r("shell",{...e,selection:r,launch:n,sidebarCollapse:o}),{socket:e,selection:r,launch:n,viewLaunchedSession:i,sidebarCollapse:o}}var fg=E($(),1),Kai={zIndex:e=>e.zIndex.drawer+1,pt:uy.top},Xai={minHeight:48,mt:uy.top};function eRr({mode:e,toggle:t}){let r=J3r(),{socket:n,selection:i,viewLaunchedSession:o}=r;return(0,fg.jsx)(_5r,{shell:r,children:(0,fg.jsxs)(JGe.Provider,{value:n.daemonVersion,children:[(0,fg.jsx)(c4r,{mode:e,toggle:t,sessions:n.sessions,reconnecting:n.reconnecting}),(0,fg.jsx)(n2e,{position:"fixed",sx:Kai,"data-testid":"toolbar",children:(0,fg.jsx)(fEr,{socket:n,selection:i})}),(0,fg.jsx)(G5,{variant:"dense",sx:Xai}),(0,fg.jsx)(h4r,{socket:n,children:(0,fg.jsx)(Tkr,{socket:n})}),(0,fg.jsx)(n_r,{socket:n}),(0,fg.jsx)(w5r,{socket:n,onViewLaunchedSession:o})]})})}var tRr=E(ce(),1);function rRr(){let[e,t]=(0,tRr.useState)(()=>{try{return localStorage.getItem("theme-mode")??"dark"}catch{return"dark"}});return{mode:e,toggle:()=>t(n=>{let i=n==="dark"?"light":"dark";try{localStorage.setItem("theme-mode",i)}catch{}return i})}}function nRr({color:e,radius:t}){return{MuiMenu:{styleOverrides:{paper:{borderRadius:t.md},list:{padding:4}}},MuiMenuItem:{styleOverrides:{root:{minHeight:30,padding:"5px 10px",borderRadius:4,fontSize:13,"&:hover":{backgroundColor:e.raised},"& .MuiListItemIcon-root":{minWidth:28},"& .MuiSvgIcon-root":{fontSize:16},"& .MuiListItemText-primary":{fontSize:13}}}}}}function iRr(e){let{color:t,radius:r,elevation:n,type:i}=e,o={border:`1px solid ${t.line}`};return{...nRr(e),MuiTooltip:{styleOverrides:{tooltip:{...o,backgroundColor:t.overlay.background,color:t.overlay.text,borderRadius:r.md,boxShadow:n.overlay,fontSize:`${i.scale.caption/16}rem`,padding:"6px 10px"},arrow:{color:t.overlay.background}}},MuiPopover:{styleOverrides:{paper:{...o,boxShadow:n.overlay}}},MuiBackdrop:{styleOverrides:{root:{"&:not(.MuiBackdrop-invisible)":{backgroundColor:t.scrim,backdropFilter:"blur(2px)"}}}},MuiDialog:{styleOverrides:{paper:{...o,backgroundColor:t.surface,borderRadius:r.md+4,boxShadow:n.dialog}}}}}var oRr=({variant:e})=>e==="outlined"||e==="tonal",aRr=[{props:{size:"small"},style:{minHeight:26,padding:"4px 9px",fontSize:12}},{props:oRr,style:{padding:"5px 11px"}},{props:e=>oRr(e)&&e.size==="small",style:{padding:"3px 8px"}}];var wbe=["primary","secondary","success","warning","error","info"];function yQ(e,t){return{backgroundColor:Dr(e,t),borderColor:Dr(e,.35),color:e}}function sRr({color:e}){return[{props:{variant:"tonal"},style:{backgroundColor:e.raised,border:`1px solid ${e.line}`,color:e.text.primary,"&:hover":{backgroundColor:e.raised,borderColor:e.text.disabled}}},...wbe.filter(t=>t!=="primary").map(t=>({props:{variant:"tonal",color:t},style:{...yQ(e[t].main,.16),"&:hover":yQ(e[t].main,.24)}}))]}var lRr={"& > *:nth-of-type(1)":{fontSize:16}};function cRr(e){let{color:t,radius:r}=e;return{MuiButton:{defaultProps:{disableElevation:!0},styleOverrides:{root:{minHeight:30,padding:"6px 12px",borderRadius:r.sm,fontSize:13,fontWeight:600,lineHeight:"18px"},startIcon:{marginLeft:-2,marginRight:6,...lRr},endIcon:{marginLeft:6,marginRight:-2,...lRr}},variants:[...aRr,{props:{variant:"text",color:"primary"},style:{color:t.text.secondary,"&:hover":{backgroundColor:t.raised,color:t.text.primary}}},...sRr(e),{props:{variant:"outlined",color:"error"},style:{borderColor:Dr(t.error.main,.35),"&:hover":{borderColor:t.error.main,backgroundColor:Dr(t.error.main,.1)}}}]}}}function gVe({color:e},t){return[{props:{variant:t,color:"default"},style:{backgroundColor:"transparent",border:`1px solid ${e.line}`,color:e.text.secondary,"&.MuiChip-clickable:hover":{backgroundColor:e.raised}}},...wbe.map(r=>({props:{variant:t,color:r},style:{...yQ(e[r].main,.14),borderColor:"transparent","& .MuiChip-deleteIcon":{color:Dr(e[r].main,.7),"&:hover, &:active":{color:e[r].main}},"&.MuiChip-clickable:hover":{backgroundColor:Dr(e[r].main,.22)}}}))]}function uRr(e){return{MuiChip:{styleOverrides:{root:{height:20,fontSize:11,fontWeight:600,borderRadius:999},sizeSmall:{height:20,"& .MuiChip-label":{padding:"0 7px"}},label:{padding:"0 8px"},icon:{fontSize:14,marginLeft:6,marginRight:-2},deleteIcon:{fontSize:14,marginLeft:-2,marginRight:4},outlined:{borderColor:e.color.line}},variants:[...gVe(e,"tonal"),...gVe(e,"filled")]}}}function fRr(e){return{...cRr(e),MuiButtonGroup:{defaultProps:{disableElevation:!0},variants:[{props:{variant:"tonal"},style:{"& .MuiButtonGroup-middleButton, & .MuiButtonGroup-lastButton":{marginLeft:-1}}}]},...uRr(e)}}var yVe=e=>`color-mix(in srgb, currentColor ${e}%, transparent)`,Qai={".MuiAppBar-root &":{color:"inherit","&:hover":{backgroundColor:yVe(8)},"&.Mui-selected":{color:"inherit",backgroundColor:yVe(12),boxShadow:`inset 0 0 0 1px ${yVe(18)}`}}};function dRr({color:e,radius:t}){return{MuiTabs:{styleOverrides:{root:{minHeight:40,alignItems:"center"},list:{gap:2},indicator:{display:"none"}}},MuiTab:{styleOverrides:{root:{minHeight:30,padding:"6px 10px",borderRadius:t.sm,textTransform:"none",fontSize:13,fontWeight:500,opacity:1,color:e.text.secondary,"&:hover":{backgroundColor:e.raised,color:e.text.primary},"&.Mui-selected":{color:e.text.primary,backgroundColor:e.raised,boxShadow:`inset 0 0 0 1px ${e.line}`},...!e.appBar&&Qai}}}}}var hRr=(e,t)=>({width:e,height:e,"& .MuiSvgIcon-root":{fontSize:t}});function pRr({color:e,radius:t}){return{MuiIconButton:{styleOverrides:{root:{...hRr(30,18),padding:0,borderRadius:t.sm,"&:hover":{backgroundColor:e.raised}}},variants:[{props:{size:"small"},style:hRr(26,16)},{props:{color:"default"},style:{color:e.text.secondary,"&:hover":{color:e.text.primary},...!e.appBar&&{".MuiAppBar-root &, .MuiAppBar-root &:hover":{color:"inherit"}}}}]}}}function mRr({color:e,radius:t}){return{MuiToggleButtonGroup:{styleOverrides:{root:{padding:2,gap:2,border:`1px solid ${e.line}`,borderRadius:t.sm,backgroundColor:e.background},grouped:{margin:0,border:0,borderRadius:4}}},MuiToggleButton:{styleOverrides:{root:{padding:"3px 8px",border:0,borderRadius:4,fontSize:13,fontWeight:500,lineHeight:"18px",textTransform:"none",color:e.text.secondary,"& .MuiSvgIcon-root":{fontSize:16},"&:hover":{backgroundColor:"transparent",color:e.text.primary},"&.Mui-selected, &.Mui-selected:hover":{backgroundColor:e.raised,color:e.text.primary}}}}}}var kbe=".MuiOutlinedInput-notchedOutline";function gRr({color:e,radius:t}){return{MuiOutlinedInput:{styleOverrides:{root:{backgroundColor:e.background,borderRadius:t.sm,fontSize:13,color:e.text.primary,[`& ${kbe}`]:{borderColor:e.line},[`&:hover ${kbe}`]:{borderColor:e.text.disabled},[`&.Mui-focused ${kbe}`]:{borderColor:e.primary.main,borderWidth:1},[`&.Mui-error ${kbe}`]:{borderColor:e.error.main}}}},MuiInputLabel:{styleOverrides:{root:{fontSize:13,color:e.text.secondary,"&.Mui-focused":{color:e.primary.main}}}},MuiSelect:{styleOverrides:{icon:{color:e.text.disabled}}}}}function yRr({color:e}){return{MuiSwitch:{styleOverrides:{root:{width:34,height:20,padding:0,"& .MuiSwitch-switchBase":{padding:2,color:e.text.secondary,"&.Mui-checked":{transform:"translateX(14px)",color:e.primary.contrastText},"&.Mui-checked + .MuiSwitch-track":{backgroundColor:e.primary.main,opacity:1}},"& .MuiSwitch-thumb":{width:16,height:16,boxShadow:"none"},"& .MuiSwitch-track":{borderRadius:10,backgroundColor:e.line,opacity:1}}}},MuiFormControlLabel:{styleOverrides:{root:{"&:has(.MuiSwitch-root)":{marginLeft:0,gap:8}}}}}}function vRr(e){let{appBar:t}=e.color;return{...iRr(e),...fRr(e),...pRr(e),...mRr(e),...gRr(e),...yRr(e),...dRr(e),MuiPaper:{styleOverrides:{root:{backgroundImage:"none"},outlined:{borderColor:e.color.line}}},MuiAppBar:{defaultProps:{elevation:e.elevation.appBar},styleOverrides:{root:t&&{backgroundColor:t.background,color:t.text,borderBottom:`1px solid ${e.color.line}`}}}}}var Bv="#0e1116",vVe="#141820",_be="#1b202a",Ebe="#e3e7ee",bVe="#8a93a3",vQ="#8b9cff",Rbe="#5fd0a0",Abe="#f2b45a",Pbe="#f27a7a",bRr={secondary:"rgba(255, 255, 255, 0.7)",hover:"rgba(255, 255, 255, 0.12)",active:"rgba(255, 255, 255, 0.16)",dot:"#ffb74d",dotRing:"rgba(0, 0, 0, 0.15)"},Lbe={dark:{color:{background:Bv,surface:vVe,raised:_be,line:"#262c37",lineSoft:"#1d222b",text:{primary:Ebe,secondary:bVe,disabled:"#5c6473"},selected:"rgba(139, 156, 255, 0.14)",wash:{warning:"rgba(242, 180, 90, 0.09)",error:"rgba(242, 122, 122, 0.09)"},well:Bv,stripe:_be,codeWash:"rgba(255, 255, 255, 0.08)",overlay:{background:_be,text:Ebe},scrim:"rgba(0, 0, 0, 0.5)",appBar:{background:vVe,text:Ebe},onAppBar:{...bRr,secondary:bVe,level:{ok:Rbe,warn:Abe,over:Pbe}},statusBar:{background:vVe,text:bVe,hoverText:Ebe,secondary:"#5c6473",hover:_be,active:"transparent",dot:vQ,dotRing:"rgba(139, 156, 255, 0.14)",readyText:vQ,level:{ok:Rbe,warn:Abe,over:Pbe}},primary:{main:vQ,contrastText:Bv},secondary:{main:"#c99bff",contrastText:Bv},success:{main:Rbe,contrastText:Bv},warning:{main:Abe,contrastText:Bv},error:{main:Pbe,contrastText:Bv},info:{main:"#6cb6ff",contrastText:Bv}},terminal:{background:Bv,foreground:"#d6dbe4",cursor:vQ,cursorAccent:Bv,selectionBackground:"rgba(139, 156, 255, 0.28)",black:"#1b2029",red:Pbe,green:Rbe,yellow:Abe,blue:vQ,magenta:"#c99bff",cyan:"#6cc8d8",white:"#c3c9d4",brightBlack:"#5c6473",brightRed:"#ff9a9a",brightGreen:"#82e0b6",brightYellow:"#ffc97a",brightBlue:"#a9b6ff",brightMagenta:"#dcb8ff",brightCyan:"#8fdbe8",brightWhite:"#eef1f6"},elevation:{appBar:0,overlay:"0 14px 34px rgba(0, 0, 0, 0.45)",dialog:"0 30px 60px rgba(0, 0, 0, 0.5)",stuckHeader:"0 8px 8px -9px rgba(0, 0, 0, 0.8)"}},light:{color:{background:"#fff",surface:"#fff",raised:"rgba(0, 0, 0, 0.04)",line:"rgba(0, 0, 0, 0.12)",lineSoft:"rgba(0, 0, 0, 0.12)",text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},selected:"rgba(0, 0, 0, 0.08)",wash:{warning:"rgba(255, 167, 38, 0.09)",error:"rgba(244, 67, 54, 0.09)"},well:"#f3f4f6",stripe:"rgba(0, 0, 0, 0.1)",codeWash:"rgba(0, 0, 0, 0.06)",overlay:{background:"rgba(97, 97, 97, 0.92)",text:"#fff"},onAppBar:{...bRr,level:{ok:"#b9f6ca",warn:"#ffe57f",over:"#ffcdd2"}},primary:{main:"#1976d2",light:"#42a5f5",dark:"#1565c0",contrastText:"#fff"},secondary:{main:"#9c27b0",light:"#ba68c8",dark:"#7b1fa2",contrastText:"#fff"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20",contrastText:"#fff"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100",contrastText:"#fff"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828",contrastText:"#fff"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b",contrastText:"#fff"},scrim:"rgba(15, 23, 42, 0.32)",statusBar:{background:"#f3f4f6",text:"rgba(0, 0, 0, 0.6)",hoverText:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.38)",hover:"rgba(0, 0, 0, 0.06)",active:"transparent",dot:"#1976d2",dotRing:"rgba(25, 118, 210, 0.16)",readyText:"#1976d2",level:{ok:"#2e7d32",warn:"#ed6c02",over:"#d32f2f"}}},terminal:{background:"#ffffff",foreground:"#333333",cursor:"#333333",cursorAccent:"#ffffff",selectionBackground:"#add6ff",black:"#000000",red:"#cd3131",green:"#107c10",yellow:"#949800",blue:"#0451a5",magenta:"#bc05bc",cyan:"#0598bc",white:"#555555",brightBlack:"#666666",brightRed:"#cd3131",brightGreen:"#14ce14",brightYellow:"#b5ba00",brightBlue:"#0451a5",brightMagenta:"#bc05bc",brightCyan:"#0598bc",brightWhite:"#a5a5a5"},elevation:{appBar:0,overlay:"0 8px 24px rgba(15, 23, 42, 0.12)",dialog:"0 24px 48px rgba(15, 23, 42, 0.18)",stuckHeader:"0 6px 6px -7px rgba(0, 0, 0, 0.2)"}},font:{ui:'"Geist Variable", "Segoe UI", system-ui, sans-serif',mono:'"Geist Mono Variable", ui-monospace, Menlo, Consolas, monospace',terminal:'"Geist Mono Variable", ui-monospace, Menlo, Consolas, monospace'},type:{fontSize:14,terminalFontSize:13,scale:{caption:12,body2:14,body1:15,subtitle2:14,subtitle1:15,h6:16,h5:18,h4:24,button:14},button:{textTransform:"none",fontWeight:600}},radius:{sm:6,md:8},spacing:8};var RT=e=>`${e/16}rem`;function xRr({font:e,type:t}){let{scale:r}=t;return{fontFamily:e.ui,fontFamilyMono:e.mono,fontSize:t.fontSize,button:{...t.button,fontSize:RT(r.button)},caption:{fontSize:RT(r.caption)},body2:{fontSize:RT(r.body2)},body1:{fontSize:RT(r.body1)},subtitle2:{fontSize:RT(r.subtitle2)},subtitle1:{fontSize:RT(r.subtitle1)},h6:{fontSize:RT(r.h6)},h5:{fontSize:RT(r.h5)},h4:{fontSize:RT(r.h4)}}}function TRr(e){return{MuiButtonBase:{styleOverrides:{root:{cursor:"pointer","&.Mui-disabled":{cursor:"default"}}}},MuiLink:{styleOverrides:{root:{cursor:"pointer"}}},MuiAppBar:{defaultProps:{elevation:e.elevation.appBar}}}}function Zai(e){let{dark:t,light:r,...n}=Lbe;return{...n,...e==="dark"?t:r,mode:e}}function SRr(e){let t=Zai(e),{color:r}=t;return K0({tokens:t,palette:{mode:e,background:{default:r.background,paper:r.surface},primary:r.primary,secondary:r.secondary,success:r.success,warning:r.warning,error:r.error,info:r.info,text:r.text,divider:r.line,action:{hover:r.raised,selected:r.selected}},typography:xRr(t),shape:{borderRadius:t.radius.sm},spacing:t.spacing,components:{...TRr(t),...vRr(t)}})}function CRr(){if(typeof document>"u"||!document.fonts)return Promise.resolve();let{font:e,type:t}=Lbe;return Promise.allSettled([document.fonts.load(`${t.fontSize}px ${e.ui}`),document.fonts.load(`${t.terminalFontSize}px ${e.terminal}`)])}$$();$$();var wVe=T6("Preferences",{web:()=>Promise.resolve().then(()=>(ARr(),RRr)).then(e=>new e.PreferencesWeb)});var Mbe=E(ce(),1);var kVe=E(ce(),1);var LRr=E($(),1);function PRr({value:e,error:t,onChange:r}){return(0,LRr.jsx)(Wn,{autoFocus:!0,label:"Node URL",placeholder:"https://mac.tail1234.ts.net:3100",value:e,onChange:n=>r(n.target.value),error:!!t,helperText:t,slotProps:{htmlInput:{autoCapitalize:"none",autoCorrect:"off",inputMode:"url"}}})}var asi=/^[a-z]+:[/]{2}/i;function MRr(e){let t=e.trim(),r=asi.test(t)?t:`https://${t}`;try{let n=new URL(r);return n.protocol!=="https:"&&n.protocol!=="http:"?void 0:n.origin}catch{return}}var K_=E($(),1),ssi={height:"100%",boxSizing:"border-box",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",p:2,bgcolor:"background.default"};function IRr({onSave:e}){let[t,r]=(0,kVe.useState)(""),[n,i]=(0,kVe.useState)();return(0,K_.jsx)(J,{component:"form",onSubmit:a=>{a.preventDefault();let s=MRr(t);s?e(s):i("Enter an http(s) URL, e.g. https://mac.tail1234.ts.net:3100")},sx:ssi,children:(0,K_.jsxs)(_t,{spacing:2,sx:{width:"100%",maxWidth:420},children:[(0,K_.jsx)(Le,{variant:"h6",children:"Connect to a home node"}),(0,K_.jsx)(Le,{variant:"body2",color:"text.secondary",children:"Enter the Tailscale URL of the assist web server to view its sessions and those of the nodes it links to."}),(0,K_.jsx)(PRr,{value:t,error:n,onChange:a=>{r(a),i(void 0)}}),(0,K_.jsx)(Mt,{type:"submit",variant:"contained",disabled:!t.trim(),children:"Connect"})]})})}var BRr=E($(),1),DRr="homeNodeUrl",NRr=b6.isNativePlatform();function ORr({children:e}){let[t,r]=(0,Mbe.useState)(NRr?void 0:""),n=i=>{Yot(i),r(i)};return(0,Mbe.useEffect)(()=>{NRr&&wVe.get({key:DRr}).then(({value:i})=>{i?n(i):r(null)}).catch(()=>r(null))},[]),t===void 0?null:t===null?(0,BRr.jsx)(IRr,{onSave:i=>{wVe.set({key:DRr,value:i}),n(i)}}):e}var FRr=E(ce(),1);var Ibe=E($(),1),lsi=5;function $Rr({children:e}){let[t,r]=(0,FRr.useState)(null);return(0,Ibe.jsxs)(Lke.Provider,{value:t,children:[e,(0,Ibe.jsx)(J,{ref:r,"data-testid":"toast-stack",sx:{position:"fixed",zIndex:"snackbar",bottom:{xs:1,sm:3},left:{xs:1,sm:"50%"},right:{xs:1,sm:"auto"},transform:{sm:"translateX(-50%)"},display:"flex",flexDirection:"column",alignItems:{xs:"stretch",sm:"center"},gap:1,pointerEvents:"none","& > *":{pointerEvents:"auto"},[`& > :nth-last-of-type(n+${lsi+1})`]:{display:"none"}}})]})}$$();var xQ;(function(e){e.Dark="DARK",e.Light="LIGHT",e.Default="DEFAULT"})(xQ||(xQ={}));var zRr;(function(e){e.None="NONE",e.Slide="SLIDE",e.Fade="FADE"})(zRr||(zRr={}));var HRr=T6("StatusBar");var WRr=E(ce(),1);$$();var URr=b6.isNativePlatform();function GRr(e){(0,WRr.useEffect)(()=>{URr&&HRr.setStyle({style:e==="dark"?xQ.Dark:xQ.Light}).catch(()=>{})},[e])}var Fv=E($(),1);function csi(){let{mode:e,toggle:t}=rRr(),r=(0,qRr.useMemo)(()=>SRr(e),[e]);return GRr(e),(0,Fv.jsxs)(RZ,{theme:r,children:[(0,Fv.jsx)(pJ,{}),(0,Fv.jsx)($Rr,{children:(0,Fv.jsx)(ORr,{children:(0,Fv.jsx)(eRr,{mode:e,toggle:t})})})]})}var usi=Mwe([{path:"*",element:(0,Fv.jsx)(csi,{})}]);function fsi(){return(0,Fv.jsx)(wwe,{router:usi})}var VRr=document.getElementById("app");VRr&&CRr().then(()=>{(0,jRr.createRoot)(VRr).render((0,Fv.jsx)(fsi,{}))});})();
4025
4025
  /*! Bundled license information:
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ import { Command } from "commander";
6
6
  // package.json
7
7
  var package_default = {
8
8
  name: "@staff0rd/assist",
9
- version: "0.960.0",
9
+ version: "0.961.0",
10
10
  type: "module",
11
11
  main: "dist/index.js",
12
12
  bin: {
@@ -50003,10 +50003,103 @@ function errorSession(id, persisted, error) {
50003
50003
  };
50004
50004
  }
50005
50005
 
50006
+ // src/commands/sessions/shared/deliberatelyStoppedTaskIds.ts
50007
+ var STOP_TOOLS = /* @__PURE__ */ new Set(["KillShell", "KillBash", "TaskStop"]);
50008
+ function deliberatelyStoppedTaskIds(entry) {
50009
+ if (entry.type !== "assistant") return [];
50010
+ const content = asRecord(entry.message)?.content;
50011
+ if (!Array.isArray(content)) return [];
50012
+ const ids = [];
50013
+ for (const block of content) {
50014
+ const b = asRecord(block);
50015
+ if (b?.type !== "tool_use" || !STOP_TOOLS.has(String(b.name))) continue;
50016
+ const input = asRecord(b.input);
50017
+ const id = input?.task_id ?? input?.shell_id ?? input?.bash_id;
50018
+ if (typeof id === "string") ids.push(id);
50019
+ }
50020
+ return ids;
50021
+ }
50022
+
50023
+ // src/commands/sessions/shared/notifiedTasks.ts
50024
+ var NOTIFICATION = /<task-notification>([\s\S]*?)<\/task-notification>/g;
50025
+ var TASK_ID = /<task-id>([^<]+)<\/task-id>/;
50026
+ var STATUS = /<status>([^<]+)<\/status>/;
50027
+ function notifiedTasks(entry) {
50028
+ const text18 = taskNotificationText(entry);
50029
+ if (!text18) return [];
50030
+ const tasks = [];
50031
+ for (const [, body] of text18.matchAll(NOTIFICATION)) {
50032
+ const id = body.match(TASK_ID)?.[1];
50033
+ if (id) tasks.push({ id, status: body.match(STATUS)?.[1]?.trim() });
50034
+ }
50035
+ return tasks;
50036
+ }
50037
+ function taskNotificationText(entry) {
50038
+ const content = asRecord(entry.message)?.content ?? entry.content;
50039
+ return typeof content === "string" && content.includes("<task-notification>") ? content : void 0;
50040
+ }
50041
+
50042
+ // src/commands/sessions/shared/unfinishedBackgroundTasks.ts
50043
+ var KILLED_STATUSES = /* @__PURE__ */ new Set(["killed", "stopped"]);
50044
+ function unfinishedBackgroundTasks(entries) {
50045
+ const inFlight2 = /* @__PURE__ */ new Set();
50046
+ const killedAwaitingTurn = /* @__PURE__ */ new Set();
50047
+ for (const entry of entries) {
50048
+ const started = startedTaskId(entry);
50049
+ if (started) inFlight2.add(started);
50050
+ for (const finished2 of selfFinishedTaskIds(entry))
50051
+ inFlight2.delete(finished2);
50052
+ for (const killed of killedTaskIds(entry)) killedAwaitingTurn.add(killed);
50053
+ for (const stopped of deliberatelyStoppedTaskIds(entry))
50054
+ inFlight2.delete(stopped);
50055
+ if (entry.type === "assistant") {
50056
+ for (const handled of killedAwaitingTurn) inFlight2.delete(handled);
50057
+ killedAwaitingTurn.clear();
50058
+ }
50059
+ }
50060
+ return [...inFlight2];
50061
+ }
50062
+ function killedTaskIds(entry) {
50063
+ return notifiedTasks(entry).filter(({ status: status2 }) => status2 && KILLED_STATUSES.has(status2)).map(({ id }) => id);
50064
+ }
50065
+ function startedTaskId(entry) {
50066
+ const result = asRecord(entry.toolUseResult);
50067
+ return typeof result?.backgroundTaskId === "string" ? result.backgroundTaskId : void 0;
50068
+ }
50069
+ function selfFinishedTaskIds(entry) {
50070
+ return notifiedTasks(entry).filter(({ status: status2 }) => !(status2 && KILLED_STATUSES.has(status2))).map(({ id }) => id);
50071
+ }
50072
+
50073
+ // src/commands/sessions/shared/pendingAskQuestionTasks.ts
50074
+ var ASK_QUESTION_COMMAND = /\bassist ask-question\b/;
50075
+ function pendingAskQuestionTasks(entries) {
50076
+ const askQuestionToolUses = /* @__PURE__ */ new Set();
50077
+ const askQuestionTasks = /* @__PURE__ */ new Set();
50078
+ for (const entry of entries) {
50079
+ for (const block of contentBlocks(entry)) {
50080
+ const input = asRecord(block.input);
50081
+ if (block.type === "tool_use" && typeof block.id === "string" && typeof input?.command === "string" && ASK_QUESTION_COMMAND.test(input.command))
50082
+ askQuestionToolUses.add(block.id);
50083
+ if (block.type === "tool_result" && askQuestionToolUses.has(block.tool_use_id)) {
50084
+ const taskId = asRecord(entry.toolUseResult)?.backgroundTaskId;
50085
+ if (typeof taskId === "string") askQuestionTasks.add(taskId);
50086
+ }
50087
+ }
50088
+ }
50089
+ return unfinishedBackgroundTasks(entries).filter(
50090
+ (id) => askQuestionTasks.has(id)
50091
+ );
50092
+ }
50093
+ function contentBlocks(entry) {
50094
+ const content = asRecord(entry.message)?.content;
50095
+ if (!Array.isArray(content)) return [];
50096
+ return content.map(asRecord).filter((block) => block !== null);
50097
+ }
50098
+
50006
50099
  // src/commands/sessions/shared/awaitsQuestionAnswer.ts
50007
50100
  function awaitsQuestionAnswer(entries) {
50008
50101
  const events = normalizeTranscriptEvents(entries);
50009
- return hasPendingAskUserQuestion(events, lastDecisiveIndex(events));
50102
+ return hasPendingAskUserQuestion(events, lastDecisiveIndex(events)) || pendingAskQuestionTasks(entries).length > 0;
50010
50103
  }
50011
50104
 
50012
50105
  // src/commands/sessions/daemon/deriveRestoreStatus.ts
@@ -50102,73 +50195,6 @@ function daemonRestartPrompt(backgroundTaskIds) {
50102
50195
  return `${preamble} It killed ${backgroundTaskIds.length} background task(s) that were still running (${backgroundTaskIds.join(", ")}); their output files end where the kill landed, with no exit code. Treat them as killed by the restart, not as interrupted by the user, and restart any of them that should still be running.`;
50103
50196
  }
50104
50197
 
50105
- // src/commands/sessions/shared/deliberatelyStoppedTaskIds.ts
50106
- var STOP_TOOLS = /* @__PURE__ */ new Set(["KillShell", "KillBash", "TaskStop"]);
50107
- function deliberatelyStoppedTaskIds(entry) {
50108
- if (entry.type !== "assistant") return [];
50109
- const content = asRecord(entry.message)?.content;
50110
- if (!Array.isArray(content)) return [];
50111
- const ids = [];
50112
- for (const block of content) {
50113
- const b = asRecord(block);
50114
- if (b?.type !== "tool_use" || !STOP_TOOLS.has(String(b.name))) continue;
50115
- const input = asRecord(b.input);
50116
- const id = input?.task_id ?? input?.shell_id ?? input?.bash_id;
50117
- if (typeof id === "string") ids.push(id);
50118
- }
50119
- return ids;
50120
- }
50121
-
50122
- // src/commands/sessions/shared/notifiedTasks.ts
50123
- var NOTIFICATION = /<task-notification>([\s\S]*?)<\/task-notification>/g;
50124
- var TASK_ID = /<task-id>([^<]+)<\/task-id>/;
50125
- var STATUS = /<status>([^<]+)<\/status>/;
50126
- function notifiedTasks(entry) {
50127
- const text18 = taskNotificationText(entry);
50128
- if (!text18) return [];
50129
- const tasks = [];
50130
- for (const [, body] of text18.matchAll(NOTIFICATION)) {
50131
- const id = body.match(TASK_ID)?.[1];
50132
- if (id) tasks.push({ id, status: body.match(STATUS)?.[1]?.trim() });
50133
- }
50134
- return tasks;
50135
- }
50136
- function taskNotificationText(entry) {
50137
- const content = asRecord(entry.message)?.content ?? entry.content;
50138
- return typeof content === "string" && content.includes("<task-notification>") ? content : void 0;
50139
- }
50140
-
50141
- // src/commands/sessions/shared/unfinishedBackgroundTasks.ts
50142
- var KILLED_STATUSES = /* @__PURE__ */ new Set(["killed", "stopped"]);
50143
- function unfinishedBackgroundTasks(entries) {
50144
- const inFlight2 = /* @__PURE__ */ new Set();
50145
- const killedAwaitingTurn = /* @__PURE__ */ new Set();
50146
- for (const entry of entries) {
50147
- const started = startedTaskId(entry);
50148
- if (started) inFlight2.add(started);
50149
- for (const finished2 of selfFinishedTaskIds(entry))
50150
- inFlight2.delete(finished2);
50151
- for (const killed of killedTaskIds(entry)) killedAwaitingTurn.add(killed);
50152
- for (const stopped of deliberatelyStoppedTaskIds(entry))
50153
- inFlight2.delete(stopped);
50154
- if (entry.type === "assistant") {
50155
- for (const handled of killedAwaitingTurn) inFlight2.delete(handled);
50156
- killedAwaitingTurn.clear();
50157
- }
50158
- }
50159
- return [...inFlight2];
50160
- }
50161
- function killedTaskIds(entry) {
50162
- return notifiedTasks(entry).filter(({ status: status2 }) => status2 && KILLED_STATUSES.has(status2)).map(({ id }) => id);
50163
- }
50164
- function startedTaskId(entry) {
50165
- const result = asRecord(entry.toolUseResult);
50166
- return typeof result?.backgroundTaskId === "string" ? result.backgroundTaskId : void 0;
50167
- }
50168
- function selfFinishedTaskIds(entry) {
50169
- return notifiedTasks(entry).filter(({ status: status2 }) => !(status2 && KILLED_STATUSES.has(status2))).map(({ id }) => id);
50170
- }
50171
-
50172
50198
  // src/commands/sessions/daemon/interruptedBackgroundTasks.ts
50173
50199
  function interruptedBackgroundTasks(persisted) {
50174
50200
  if (!persisted.claudeSessionId) return [];
@@ -50181,17 +50207,20 @@ function interruptedBackgroundTasks(persisted) {
50181
50207
  }
50182
50208
 
50183
50209
  // src/commands/sessions/daemon/pendingQuestionPrompt.ts
50184
- function pendingQuestionPrompt() {
50185
- return "A restart interrupted this conversation while your AskUserQuestion was waiting for an answer. The user never saw it and it is no longer on screen. Ask the same question again with AskUserQuestion.";
50210
+ function pendingQuestionPrompt(backgroundTaskIds) {
50211
+ const preamble = "A restart interrupted this conversation while your question was waiting for an answer. The user never saw it and it is no longer on screen.";
50212
+ if (backgroundTaskIds.length === 0)
50213
+ return `${preamble} Ask the same question again with AskUserQuestion.`;
50214
+ return `${preamble} It killed ${backgroundTaskIds.length} background task(s) that were still running (${backgroundTaskIds.join(", ")}). If you asked with assist ask-question, run the same assist ask-question again as a background task; otherwise ask again with AskUserQuestion. Restart any other killed task that should still be running.`;
50186
50215
  }
50187
50216
 
50188
50217
  // src/commands/sessions/daemon/restoreResumePlan.ts
50189
50218
  function restoreResumePlan(persisted, status2) {
50190
50219
  const tasks = interruptedBackgroundTasks(persisted);
50220
+ if (status2 === "asking")
50221
+ return { prompt: pendingQuestionPrompt(tasks), idle: false };
50191
50222
  if (tasks.length > 0)
50192
50223
  return { prompt: daemonRestartPrompt(tasks), idle: false };
50193
- if (status2 === "asking")
50194
- return { prompt: pendingQuestionPrompt(), idle: false };
50195
50224
  const idle = status2 === "waiting";
50196
50225
  if (!killedByDaemonRestart(persisted.interrupted) || idle) return { idle };
50197
50226
  return { prompt: daemonRestartPrompt(tasks), idle: false };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@staff0rd/assist",
3
- "version": "0.960.0",
3
+ "version": "0.961.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "bin": {