@staff0rd/assist 0.932.1 → 0.932.2

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.
@@ -3,8 +3,8 @@
3
3
  "assist@staff0rd.github.io": {
4
4
  "updates": [
5
5
  {
6
- "version": "0.928.0",
7
- "update_link": "https://github.com/staff0rd/assist/releases/download/v0.928.0/assist-extension.xpi"
6
+ "version": "0.932.1",
7
+ "update_link": "https://github.com/staff0rd/assist/releases/download/v0.932.1/assist-extension.xpi"
8
8
  }
9
9
  ]
10
10
  }
@@ -4013,7 +4013,7 @@ ${f.join(`
4013
4013
  `)})}var bF=E($(),1);function Evr({entry:e,state:t,actions:r}){return(0,bF.jsxs)(ie,{sx:{px:2,pb:2,pl:{xs:2,sm:7.5},display:"grid",gap:1.5},children:[(0,bF.jsx)(kvr,{entry:e,state:t,actions:r}),(0,bF.jsx)(Le,{variant:"caption",color:"text.secondary",children:"History \xB7 ~/.assist/watchers/"}),(0,bF.jsx)(_vr,{lines:e.status?.history??[]})]})}function xF(e){let t=e.status?.loop;return t!==void 0&&(t.phase!=="off"||t.paused===!0)}var SF=E($(),1),FZn={display:"flex",gap:.5,flexWrap:"wrap",justifyContent:{xs:"flex-start",sm:"flex-end"},gridColumn:{xs:"1 / -1",sm:"auto"}};function Rvr({entry:e,state:t,actions:r}){let n=r.notices.busy[e.name],i=e.status?.loop.paused===!0;return(0,SF.jsxs)(ie,{sx:FZn,children:[t.kind==="ready"&&(0,SF.jsx)(Lye,{entry:e,actions:r}),t.kind==="diverged"&&(0,SF.jsx)(Rye,{entry:e,actions:r}),xF(e)&&(0,SF.jsx)(Dt,{size:"small",disabled:n!==void 0,onClick:()=>{r.control(e,i?"resume":"pause")},children:i?"Resume":"Pause"})]})}var $Zn={ready:"warning",diverged:"error"},Avr=e=>t=>{let r=$Zn[e];return{display:"grid",gridTemplateColumns:{xs:"28px minmax(0,1fr)",sm:"28px minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.6fr) auto"},alignItems:"center",columnGap:1.5,rowGap:1,px:2,py:1.5,boxShadow:r?`inset 3px 0 0 ${t.palette[r].main}`:"none"}};var Pvr=E($(),1),Lvr=st((0,Pvr.jsx)("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"}),"ArrowUpward");var Mvr=E($(),1),Ivr=st((0,Mvr.jsx)("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4c-1.48 0-2.85.43-4.01 1.17l1.46 1.46C10.21 6.23 11.08 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.66 0 3 1.34 3 3 0 1.13-.64 2.11-1.56 2.62l1.45 1.45C23.16 18.16 24 16.68 24 15c0-2.64-2.05-4.78-4.65-4.96M3 5.27l2.75 2.74C2.56 8.15 0 10.77 0 14c0 3.31 2.69 6 6 6h11.73l2 2L21 20.73 4.27 4zM7.73 10l8 8H6c-2.21 0-4-1.79-4-4s1.79-4 4-4z"}),"CloudOff");var Dvr=E($(),1),Nvr=st((0,Dvr.jsx)("path",{d:"M6 2v6h.01L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-4 4-3.99-.01-.01H18V2zm10 14.5V20H8v-3.5l4-4zm-4-5-4-4V4h8v3.5z"}),"HourglassEmpty");var Ovr=E($(),1),Bvr=st((0,Ovr.jsx)("path",{d:"M6 19h4V5H6zm8-14v14h4V5z"}),"Pause");var Fvr=E($(),1),$vr=st((0,Fvr.jsx)("path",{d:"M13 3h-2v10h2zm4.83 2.17-1.42 1.42C17.99 7.86 19 9.81 19 12c0 3.87-3.13 7-7 7s-7-3.13-7-7c0-2.19 1.01-4.14 2.58-5.42L6.17 5.17C4.23 6.82 3 9.26 3 12c0 4.97 4.03 9 9 9s9-4.03 9-9c0-2.74-1.23-5.18-3.17-6.83"}),"PowerSettingsNew");var zvr=E($(),1),Hvr=st((0,zvr.jsx)("path",{d:"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z"}),"Warning");var k0=E($(),1),zZn={ok:{tone:"success",icon:(0,k0.jsx)(Sy,{})},ready:{tone:"warning",icon:(0,k0.jsx)(Lvr,{})},diverged:{tone:"error",icon:(0,k0.jsx)(Hvr,{})},retrying:{tone:"warning",icon:(0,k0.jsx)(mge,{})},paused:{tone:"neutral",icon:(0,k0.jsx)(Bvr,{})},off:{tone:"neutral",icon:(0,k0.jsx)($vr,{})},loading:{tone:"neutral",icon:(0,k0.jsx)(Nvr,{})},unavailable:{tone:"neutral",icon:(0,k0.jsx)(Ivr,{})}};function HZn(e,t){return t==="neutral"?e.palette.text.secondary:e.palette[t].main}function Uvr({state:e}){let{tone:t,icon:r}=zZn[e.kind];return(0,k0.jsxs)(ie,{component:"span",sx:n=>({alignSelf:"flex-start",display:"inline-flex",alignItems:"center",gap:.75,height:24,px:1.25,borderRadius:3,fontSize:12,fontWeight:500,whiteSpace:"nowrap",color:HZn(n,t),bgcolor:t==="neutral"?n.palette.action.hover:po(n.palette[t].main,.1),border:t==="neutral"?`1px solid ${n.palette.divider}`:0,"& svg":{fontSize:14}}),children:[r,e.label]})}var HK=E($(),1);function Wvr({state:e}){return(0,HK.jsxs)(ie,{sx:{...Eye,gridColumn:{xs:"2",sm:"auto"},gap:.25},children:[(0,HK.jsx)(Uvr,{state:e}),(0,HK.jsx)(Le,{variant:"caption",color:"text.secondary",noWrap:!0,children:e.line})]})}var gv=E($(),1),Gvr={gridColumn:{xs:"2",sm:"auto"}},UZn={fontFamily:"'Roboto Mono', ui-monospace, Menlo, monospace",fontSize:12,fontVariantNumeric:"tabular-nums"};function Vvr({entry:e}){let t=e.status;if(!t)return(0,gv.jsx)(Le,{variant:"caption",color:"text.secondary",sx:Gvr,children:"\u2014"});let r=t.running!==t.built;return(0,gv.jsxs)(ie,{sx:{...Gvr,display:"flex",flexDirection:"column"},children:[(0,gv.jsxs)(ie,{component:"span",sx:UZn,children:["v",t.running,r&&(0,gv.jsxs)(gv.Fragment,{children:[" ",(0,gv.jsx)(ie,{component:"span",sx:{color:"warning.main"},children:"\u2192"})," ","v",t.built]})]}),(0,gv.jsx)(Le,{variant:"caption",color:"text.secondary",children:r?"running \u2192 built":"running"})]})}function TF(e){return(e.status?.restart.length??0)>0}function qvr(e,t){return e.paused?{kind:"paused",label:"Paused",line:"won't pull until resumed"}:e.phase==="off"?{kind:"off",label:"Off",line:e.reason??"not running"}:e.phase==="retrying"?{kind:"retrying",label:"Retrying",line:`${e.reason??"lap failed"} \xB7 ${t}`}:{kind:"ok",label:"Up to date",line:`watching origin since ${t}`}}function e_(e){let{status:t}=e;if(e.loading)return{kind:"loading",label:"Checking",line:"waiting for node"};if(!t)return{kind:"unavailable",label:"Unavailable",line:e.error??"no update state"};let{loop:r}=t,n=_o(r.since);return r.phase==="diverged"?{kind:"diverged",label:"Diverged \xB7 fixing",line:`diverged ${n}${r.escalationId?` \xB7 session ${r.escalationId}`:""}`}:TF(e)?{kind:"ready",label:"Restart to update",line:`restart ${t.restart.map(yF).join(" + ")}${r.paused?" \xB7 paused":""}`}:qvr(r,n)}var yv=E($(),1);function Yvr({entry:e,actions:t}){let[r,n]=(0,jvr.useState)(!1),i=e_(e);return(0,yv.jsxs)(ie,{component:"article",sx:{"& + &":{borderTop:1,borderColor:"divider"}},children:[(0,yv.jsxs)(ie,{sx:Avr(i.kind),children:[(0,yv.jsx)(bvr,{open:r,label:`${r?"Hide":"Show"} history for ${e.name}`,onToggle:()=>n(o=>!o)}),(0,yv.jsx)(xvr,{entry:e}),(0,yv.jsx)(Vvr,{entry:e}),(0,yv.jsx)(Wvr,{state:i}),(0,yv.jsx)(Rvr,{entry:e,state:i,actions:t})]}),r&&(0,yv.jsx)(Evr,{entry:e,state:i,actions:t})]})}var Kvr=E($(),1),Iye=st((0,Kvr.jsx)("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"}),"Refresh");var zUe=E(de(),1);var CF=E($(),1);function Xvr({entries:e,actions:t}){let[r,n]=(0,zUe.useState)(!1),[i,o]=(0,zUe.useState)(!1),a=e.filter(l=>e_(l).kind==="ready").length,s=e.some(l=>xF(l)&&!l.status?.loop.paused);return(0,CF.jsxs)(ie,{sx:{display:"flex",gap:1,flexWrap:"wrap"},children:[(0,CF.jsx)(Dt,{variant:"outlined",size:"small",startIcon:(0,CF.jsx)(Iye,{}),disabled:!s||r,onClick:()=>{n(!0),t.checkAll(e).finally(()=>n(!1))},children:"Check now"}),(0,CF.jsx)(Dt,{variant:"contained",size:"small",disabled:a===0||i,onClick:()=>{o(!0),t.restartReady(e).finally(()=>o(!1))},children:a?`Restart ready nodes (${a})`:"Restart ready nodes"})]})}function Zvr(e){let t=e.map(o=>e_(o).kind),r=o=>t.filter(a=>a===o).length,n=r("ready"),i=[`${e.length} node${e.length===1?"":"s"}`];return i.push(n?`${n} ready to restart`:"all running their latest build"),r("diverged")&&i.push(`${r("diverged")} diverged`),r("loading")&&i.push(`${r("loading")} checking`),r("unavailable")&&i.push(`${r("unavailable")} unavailable`),i.join(" \xB7 ")}var fbr=E(de(),1);function Qvr(e,t){return`${e}:${t}`}var HUe=E(de(),1);async function wF(e){if(!e)return"web server unreachable";try{return(await e.json()).error??`HTTP ${e.status}`}catch{return`HTTP ${e.status}`}}async function Jvr(e,t){let r;try{r=await fetch(qr(`/api/updates/control?action=${t}`,e.local?void 0:e.name),{method:"POST"})}catch{}return r?.ok?void 0:wF(r)}var WZn=5e3,ebr={pause:"Pausing",resume:"Resuming",check:"Checking"};function tbr(e,t){let{mark:r,setError:n,setBack:i}=e,o=(0,HUe.useCallback)(async(s,l)=>{r(s.name,ebr[l]);let u=await Jvr(s,l);return u&&n(`${ebr[l]} ${s.name} failed: ${u}`),r(s.name),t(),!u&&l==="check"&&setTimeout(t,WZn),!u},[r,n,t]),a=(0,HUe.useCallback)(async s=>{let l=s.filter(d=>xF(d)&&!d.status?.loop.paused),f=(await Promise.all(l.map(d=>o(d,"check")))).filter(Boolean).length;f&&i(`Checking ${f} node${f===1?"":"s"} against origin`)},[o,i]);return{control:o,checkAll:a}}var UUe=E(de(),1);var vv=E(de(),1);var kF={target:"both",label:"Restart daemon",message:"This restarts the sessions daemon and the web server, then reloads the page once the server is back."};function t_(e,t){let r=t?`&node=${encodeURIComponent(t)}`:"";return fetch(`/api/restart?target=${e}${r}`,{method:"POST"})}var eS=E(de(),1);var GZn="/api/health";async function VZn(){try{return(await fetch(GZn,{cache:"no-store"})).ok}catch{return!1}}async function rbr(e){let t=0;for(;!e();){if(t=await VZn()?t+1:0,t>=2)return!e();await new Promise(r=>setTimeout(r,300))}return!1}function qZn(){return{sawDisconnect:!1,waiting:!1,abandoned:!0}}function nbr(e,t,r){let n=(0,eS.useRef)(qZn()),i=(0,eS.useRef)(r);i.current=r,(0,eS.useEffect)(()=>{let s=n.current;if(!(!e||s.abandoned)){if(t){s.sawDisconnect=!0;return}!s.sawDisconnect||s.waiting||(s.waiting=!0,rbr(()=>s.abandoned).then(l=>{l&&i.current()}))}},[e,t]);let o=(0,eS.useCallback)(()=>{n.current.abandoned=!0},[]),a=(0,eS.useCallback)(()=>{n.current.abandoned=!0,n.current={sawDisconnect:!1,waiting:!1,abandoned:!1}},[]);return(0,eS.useEffect)(()=>o,[o]),{arm:a,abandon:o}}var jZn=15e3;function r_(e,t,r){let[n,i]=(0,vv.useState)(!1),[o,a]=(0,vv.useState)(null),s=(0,vv.useRef)(void 0),{arm:l,abandon:u}=nbr(n,t,()=>{clearTimeout(s.current),r?.(),globalThis.location.reload()});(0,vv.useEffect)(()=>()=>clearTimeout(s.current),[]);let f=(0,vv.useCallback)(async h=>{i(!0),l(),s.current=setTimeout(()=>{u(),i(!1),a("Web server did not come back")},jZn);try{if(!(await t_(h)).ok)throw new Error("restart failed")}catch{u(),clearTimeout(s.current),i(!1),a("Failed to restart web server")}},[l,u]),d=(0,vv.useCallback)(()=>f(e),[f,e]);return{pending:n,error:o,clearError:()=>a(null),restart:d,restartTo:f}}function Dye(e){return e.local&&TF(e)}var ibr=15e3;async function Nye(e,t){try{let r=await fetch(qr("/api/updates",t?void 0:e),{signal:AbortSignal.timeout(ibr)}),n=await r.json();if(!r.ok)throw new Error(n?.error??`HTTP ${r.status}`);return{name:e,local:t,status:n}}catch(r){return{name:e,local:t,error:YZn(r)}}}function YZn(e){return e instanceof DOMException&&e.name==="TimeoutError"?`No response after ${ibr/1e3}s`:e instanceof Error?e.message:"Failed to load update state"}var KZn=2e3,XZn=9e4,ZZn=e=>new Promise(t=>setTimeout(t,e));async function obr(e,t){let r=Date.now()+XZn;for(;Date.now()<r;){await ZZn(KZn);let n=await Nye(e.name,e.local),i=n.status;if(i?.daemonReachable&&!t.some(o=>i.restart.includes(o)))return n}}async function abr(e,t,r){let n;try{n=await t_(t,e.local?void 0:e.name)}catch{}if(!n?.ok)throw new Error(await wF(n));let i=await obr(e,r);if(!i?.status)throw new Error(`${e.name} did not come back`);return i.status.running}async function sbr(e,t,r){try{let n=await abr(e,t,e.status?.restart??[]);r.setBack(`${e.name} is running v${n}`)}catch(n){r.setError(`Restart ${e.name} failed: ${n instanceof Error?n.message:String(n)}`)}}function lbr(e){return e.length>1?"both":e[0]}function cbr(e,t,r){let n=r_("webserver",e),i=(0,UUe.useCallback)(async a=>{let s=lbr(a.status?.restart??[]);if(s){if(t.mark(a.name,"Restarting"),Dye(a))return n.restartTo(s==="daemon"?"both":s);await sbr(a,s,t),t.mark(a.name),r()}},[n,t,r]),o=(0,UUe.useCallback)(async a=>{let s=a.filter(l=>e_(l).kind==="ready");await Promise.all(s.filter(l=>!Dye(l)).map(l=>i(l)));for(let l of s.filter(Dye))await i(l)},[i]);return{restart:i,restartReady:o,localError:n.error,clearLocalError:n.clearError}}var _F=E(de(),1);function ubr(){let[e,t]=(0,_F.useState)(null),[r,n]=(0,_F.useState)(null),[i,o]=(0,_F.useState)({}),a=(0,_F.useCallback)((s,l)=>{o(u=>{let f={...u};return l?f[s]=l:delete f[s],f})},[]);return{busy:i,mark:a,back:e,setBack:t,clearBack:()=>t(null),error:r,setError:n,clearError:()=>n(null)}}function dbr(e,t){let{refresh:r}=mF(),n=ubr(),i=cbr(e,n,r),o=tbr(n,r),a=vy(t),s=(0,fbr.useCallback)(l=>{let u=l.status?.loop.escalationId;u&&a(l.local?u:Qvr(l.name,u))},[a]);return{...i,...o,openFix:s,notices:n}}var _0=E($(),1);function hbr({reconnecting:e,selectSession:t}){let{entries:r,loading:n}=mF(),i=dbr(e,t),{notices:o}=i;return(0,_0.jsxs)(Yl,{loading:n,header:(0,_0.jsxs)(ie,{sx:{display:"flex",alignItems:"flex-end",gap:2,flexWrap:"wrap",mb:3},children:[(0,_0.jsxs)(ie,{sx:{flex:"1 1 auto"},children:[(0,_0.jsx)(Le,{variant:"h5",component:"h1",children:"Updates"}),(0,_0.jsx)(Le,{variant:"body2",color:"text.secondary",children:Zvr(r)})]}),(0,_0.jsx)(Xvr,{entries:r,actions:i})]}),children:[(0,_0.jsx)(tn,{variant:"outlined",component:"section","aria-label":"Nodes",children:r.map(a=>(0,_0.jsx)(Yvr,{entry:a,actions:i},a.name))}),(0,_0.jsx)($K,{notices:{...o,error:o.error??i.localError,clearError:()=>{o.clearError(),i.clearLocalError()}}})]})}var rxr=E(de(),1);var EF=E(de(),1);function Oye(e,t){let r=(0,EF.useRef)(null),[n,i]=(0,EF.useState)();return(0,EF.useLayoutEffect)(()=>{e===t&&r.current&&i(r.current.offsetHeight)},[e,t]),{ref:r,height:n}}var mbr=E(de(),1);function Bye(e){if(e.startsWith("local:")){let n=e.slice(6).replace(/\/+$/,"").split("/").filter(Boolean);return n[n.length-1]??e}let t=e.indexOf("/");return t===-1?e:e.slice(t+1)}function Fye(e){let t=o=>o.startsWith("local:"),r=o=>{let a=Bye(o),s=a.split("/");return s[s.length-1]??a},n=new Map;for(let o of new Set(e)){if(t(o))continue;let a=r(o);n.set(a,(n.get(a)??0)+1)}let i=new Map;for(let o of e){if(t(o)){i.set(o,Bye(o));continue}let a=r(o),s=(n.get(a)??0)>1;i.set(o,s?Bye(o):a)}return i}var UK={field:"lastPhase",direction:"desc"};var WK="all",GK="all";async function pbr(e,t,r){let n=new URLSearchParams({page:String(e),pageSize:String(t)});r.origin!==WK&&n.set("origin",r.origin),r.status!==GK&&n.set("status",r.status),r.sort.field!==UK.field&&n.set("sort",r.sort.field),r.sort.direction!==UK.direction&&n.set("direction",r.sort.direction);let i=await fetch(`/api/usage/items?${n}`);if(!i.ok)throw new Error(`Failed to load item usage (HTTP ${i.status}).`);return i.json()}var VK=E($(),1);function gbr({origins:e,origin:t,onChange:r}){let n=(0,mbr.useMemo)(()=>Fye(e.map(o=>o.origin)),[e]),i=e.reduce((o,a)=>o+a.count,0);return(0,VK.jsxs)(Qn,{select:!0,size:"small",label:"Repo",value:t,onChange:o=>r(o.target.value),sx:{minWidth:220},children:[(0,VK.jsx)(ln,{value:WK,children:`All repos (${i})`}),e.map(o=>(0,VK.jsx)(ln,{value:o.origin,children:`${n.get(o.origin)??o.origin} (${o.count})`},o.origin))]})}var WUe=E($(),1),QZn=[{value:GK,label:"All"},{value:"done",label:"Done"},{value:"running",label:"Running"}];function ybr({status:e,onChange:t}){return(0,WUe.jsx)(Ru,{size:"small",exclusive:!0,value:e,onChange:(r,n)=>n&&t(n),"aria-label":"Filter items by status",children:QZn.map(r=>(0,WUe.jsx)(bs,{value:r.value,children:r.label},r.value))})}var RF=E($(),1),JZn={display:"flex",alignItems:"center",gap:2,flexWrap:"wrap",mb:2},eQn="Repos show their bare name, or org/repo when two share one. Totals sum every phase's recorded usage.";function vbr({origins:e,origin:t,onOriginChange:r,status:n,onStatusChange:i}){return(0,RF.jsxs)(ie,{sx:JZn,children:[(0,RF.jsx)(ybr,{status:n,onChange:i}),(0,RF.jsx)(gbr,{origins:e,origin:t,onChange:r}),(0,RF.jsx)(Le,{variant:"caption",color:"text.disabled",children:eQn})]})}var Pbr=E(de(),1);function lh(e){return e<1e3?String(e):e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(1)}M`}function E0(e){let t=Math.round(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60);if(r<60){let o=t%60;return o>0?`${r}m ${o}s`:`${r}m`}let n=Math.floor(r/60),i=r%60;return i>0?`${n}h ${i}m`:`${n}h`}var zye=E($(),1),tQn={whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"},bbr={display:"block",fontSize:"0.75rem",color:"text.disabled",whiteSpace:"nowrap"},rQn={...bbr,fontStyle:"italic"};function $ye({total:e,perPhase:t,partial:r}){return(0,zye.jsxs)(Rn,{align:"right",sx:tQn,children:[e,t?(0,zye.jsx)(Le,{component:"span",sx:r?rQn:bbr,children:t}):null]})}var qK=E($(),1),nQn={width:"100%",maxWidth:0},iQn={display:"block",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},oQn={display:"block",mt:"2px",fontSize:"0.75rem",color:"text.secondary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function xbr({id:e,name:t,type:r,repoLabel:n}){return(0,qK.jsxs)(Rn,{sx:nQn,children:[(0,qK.jsx)(Kr,{component:Cs,to:mT(e),underline:"hover",color:"text.primary",title:t,sx:iQn,children:t}),(0,qK.jsxs)(Le,{component:"span",sx:oQn,children:[oo(e)," \xB7 ",r," \xB7 ",n]})]})}function Sbr(e){let t=Math.max(1,e.recordedPhases);return{active:`${E0(e.activeMs/t)} / phase`,tokens:`${lh(Math.round((e.tokensUp+e.tokensDown)/t))} / phase`}}function Tbr(e){if(!(e.status==="done"||e.recordedPhases>e.phaseCount))return`${e.recordedPhases} of ${e.phaseCount} phases`}var Hye={story:"info",bug:"error"},Uye={todo:"default","in-progress":"warning",done:"success",wontdo:"error"};var aQn=new Set(["done","wontdo"]);function Cbr(e){return aQn.has(e)?{label:e,color:Uye[e]}:{label:"running",color:"warning"}}var GUe=E($(),1),sQn={height:20,fontSize:"0.6875rem"};function wbr({status:e}){let t=Cbr(e);return(0,GUe.jsx)(Rn,{children:(0,GUe.jsx)(rn,{label:t.label,size:"small",variant:"outlined",color:t.color,sx:sQn})})}var R0=E($(),1),kbr={whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"};function _br({row:e,repoLabel:t}){let r=Sbr(e);return(0,R0.jsxs)(df,{hover:!0,children:[(0,R0.jsx)(xbr,{id:e.id,name:e.name,type:e.type,repoLabel:t}),(0,R0.jsx)(wbr,{status:e.status}),(0,R0.jsx)($ye,{total:String(e.phaseCount||e.recordedPhases),perPhase:Tbr(e),partial:!0}),(0,R0.jsx)($ye,{total:E0(e.activeMs),perPhase:r.active}),(0,R0.jsx)($ye,{total:`\u2191 ${lh(e.tokensUp)} \u2193 ${lh(e.tokensDown)}`,perPhase:r.tokens}),(0,R0.jsx)(Rn,{align:"right",sx:kbr,children:(0,R0.jsxs)(ie,{component:"span",sx:{color:Ote(e.peakContextPct)},children:[Math.round(e.peakContextPct),"%"]})}),(0,R0.jsx)(Rn,{align:"right",sx:kbr,children:e.lastPhaseAt?_o(e.lastPhaseAt):"\u2014"})]})}var Ebr=[{label:"Item"},{label:"Status"},{label:"Phases",sort:"phases",numeric:!0},{label:"Active",sort:"active",numeric:!0,tooltip:"Accumulated active time across the item's phases \u2014 not wall clock."},{label:"Tokens",sort:"tokens",numeric:!0},{label:"Peak ctx",sort:"peakContext",numeric:!0,tooltip:"The highest context-window usage any one phase reached."},{label:"Last phase",sort:"lastPhase",numeric:!0,tooltip:"When the item's most recent phase session started."}];var og=E($(),1),lQn={"& th":{whiteSpace:"nowrap"}};function Rbr({column:e}){return e.tooltip?(0,og.jsx)(lr,{title:e.tooltip,describeChild:!0,children:(0,og.jsx)("span",{children:e.label})}):(0,og.jsx)(og.Fragment,{children:e.label})}function Abr({sort:e,onSort:t}){return(0,og.jsx)(b5,{sx:lQn,children:(0,og.jsx)(df,{children:Ebr.map(r=>{let n=r.sort,i=n!==void 0&&e.field===n;return(0,og.jsx)(Rn,{align:r.numeric?"right":"left",sortDirection:i?e.direction:!1,children:n===void 0?(0,og.jsx)(Rbr,{column:r}):(0,og.jsx)(Kxe,{active:i,direction:i?e.direction:"desc",onClick:()=>t(n),children:(0,og.jsx)(Rbr,{column:r})})},r.label)})})})}var yA=E($(),1),cQn={"& td, & th":{px:1.5}};function Lbr({rows:e,origins:t,sort:r,onSort:n}){let i=(0,Pbr.useMemo)(()=>Fye([...t,...e.map(o=>o.origin)]),[t,e]);return(0,yA.jsx)(v5,{component:tn,children:(0,yA.jsxs)(Jv,{size:"small",sx:cQn,children:[(0,yA.jsx)(Abr,{sort:r,onSort:n}),(0,yA.jsx)(eb,{children:e.map(o=>(0,yA.jsx)(_br,{row:o,repoLabel:i.get(o.origin)??o.origin},o.id))})]})})}function Mbr(e){let t=Math.max(1,e.medianPhases),r=e.repoCount===1?"repo":"repos";return{items:String(e.itemCount),itemsFoot:`across ${e.repoCount} ${r} \xB7 ${e.doneCount} done`,phases:String(Math.round(e.medianPhases*10)/10),active:E0(e.medianActiveMs),activeFoot:`${E0(e.medianActiveMs/t)} per phase`,tokens:lh(Math.round(e.medianTokens)),tokensFoot:`${lh(Math.round(e.medianTokens/t))} per phase`}}var AF=E($(),1),Ibr={display:"block"},uQn={fontWeight:400,fontVariantNumeric:"tabular-nums"};function jK({label:e,value:t,foot:r}){return(0,AF.jsxs)(ie,{children:[(0,AF.jsx)(Le,{variant:"caption",color:"text.secondary",sx:Ibr,children:e}),(0,AF.jsx)(Le,{variant:"h5",sx:uQn,children:t}),r?(0,AF.jsx)(Le,{variant:"caption",color:"text.disabled",sx:Ibr,children:r}):null]})}var vA=E($(),1),fQn={display:"flex",flexDirection:{xs:"column",sm:"row"},mb:3,"& > *":{flex:1,minWidth:0,p:2},"& > * + *":{borderColor:"divider",borderTop:{xs:1,sm:0},borderLeft:{xs:0,sm:1}}};function Dbr({summary:e}){let t=Mbr(e);return(0,vA.jsxs)(tn,{sx:fQn,children:[(0,vA.jsx)(jK,{label:"Items with recorded usage",value:t.items,foot:t.itemsFoot}),(0,vA.jsx)(jK,{label:"Median phases",value:t.phases}),(0,vA.jsx)(jK,{label:"Median active time",value:t.active,foot:t.activeFoot}),(0,vA.jsx)(jK,{label:"Median tokens",value:t.tokens,foot:t.tokensFoot})]})}var Cp=E($(),1);function Nbr({items:e,data:t}){let{rows:r,total:n,page:i,pageSize:o}=e,{ref:a,height:s}=Oye(r.length,o);return(0,Cp.jsxs)(Cp.Fragment,{children:[(0,Cp.jsx)(Dbr,{summary:t.summary}),(0,Cp.jsx)(vbr,{origins:t.origins,origin:e.origin,onOriginChange:e.selectOrigin,status:e.status,onStatusChange:e.selectStatus}),n===0?(0,Cp.jsx)(Le,{color:"text.secondary",align:"center",sx:{py:6},children:"No items match this filter."}):(0,Cp.jsxs)(Cp.Fragment,{children:[(0,Cp.jsx)(ie,{ref:a,sx:{minHeight:s},children:(0,Cp.jsx)(Lbr,{rows:r,origins:t.origins.map(l=>l.origin),sort:e.sort,onSort:e.sortBy})}),(0,Cp.jsx)(Oz,{component:"div",count:n,page:i,rowsPerPage:o,rowsPerPageOptions:[o],onPageChange:(l,u)=>e.setPage(u)})]})]})}var tS=E($(),1);function Obr({items:e}){let{data:t}=e;return(0,tS.jsxs)(tS.Fragment,{children:[(0,tS.jsx)(ie,{sx:{height:4,mb:1},children:e.fetching&&(0,tS.jsx)(y5,{})}),t?t.origins.length===0?(0,tS.jsx)(Le,{color:"text.secondary",align:"center",sx:{py:6},children:"No item usage recorded yet."}):(0,tS.jsx)(Nbr,{items:e,data:t}):null]})}function VUe(e,t,r){if(e==null)return;let n=Math.max(0,e-r),i=Math.max(0,t-n)/t;if(!(i<.05))return i}function Wye(e,t){let r=Math.max(0,e-t),n=Math.floor(r/86400),i=Math.floor(r%86400/3600),o=Math.floor(r%3600/60);return n>0?`${n}d ${i}h`:i>0?`${i}h ${o}m`:`${o}m`}function dQn(e,t,r,n){let i=VUe(t,r,n);if(i!=null)return e/i}function n_(e,t,r,n){let i=dQn(e,t,r,n);return i==null?"ok":i>100?"over":i>75?"warn":"ok"}var hQn=["five_hour","seven_day"],pQn=["claude","codex","pi"];function Bbr(e){let[t,r]=e.includes(":")?e.split(":",2):["claude",e],n=pQn.find(o=>o===t),i=hQn.find(o=>o===r);if(!(!n||!i)&&!(n==="claude"&&e.includes(":")))return{harness:n,window:i}}var Fbr={five_hour:{label:"5h",seconds:18e3},seven_day:{label:"7d",seconds:604800,tint:{light:"rgba(0, 0, 0, 0.1)",dark:"rgba(255, 255, 255, 0.1)"}}};function PF(e){let t=Bbr(e);if(!t)return Fbr.five_hour;let r=Fbr[t.window];return t.harness==="claude"?r:{...r,label:`${Mu(t.harness)} ${r.label}`}}var mQn={ok:"success.main",warn:"warning.main",over:"error.main"};function $br(e){return mQn[e]}var XK=E($(),1),gQn={ok:"success",warn:"warning",over:"error"};function zbr({percentage:e,level:t}){return(0,XK.jsxs)(ie,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,XK.jsx)(y5,{variant:"determinate",value:Math.min(100,e),color:gQn[t],sx:{flexGrow:1,height:8,borderRadius:1}}),(0,XK.jsxs)(ie,{sx:{minWidth:40,textAlign:"right",color:$br(t)},children:[Math.round(e),"%"]})]})}function Hbr(e){return e.avgContextPct==null?"\u2014":`${Math.round(e.avgContextPct)}%`}var yQn=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function qUe(e){return yQn.format(e)}var Gye=E($(),1);function Ubr({peak:e}){return(0,Gye.jsx)(Rn,{align:"right",sx:{whiteSpace:"nowrap"},children:(0,Gye.jsx)(lr,{title:`Cycle started ${qUe(new Date(e.createdAt))}`,children:(0,Gye.jsx)("span",{children:qUe(new Date(e.resetsAt*1e3))})})})}var Gbr=E($(),1);function Wbr(){return(0,Gbr.jsx)(rn,{label:"reset",size:"small",color:"warning",variant:"outlined",title:"Quota reset mid-cycle \u2014 this is the peak reached before the reset.",sx:{ml:1}})}function Vbr(e){return!e.tokensUp&&!e.tokensDown?"\u2014":`\u2191 ${lh(e.tokensUp)} \u2193 ${lh(e.tokensDown)}`}var A0=E($(),1);function qbr({peak:e,now:t}){let{label:r,seconds:n,tint:i}=PF(e.window),o=n_(e.usedPercentage,e.resetsAt,n,t);return(0,A0.jsxs)(df,{sx:a=>({backgroundColor:i?a.palette.mode==="dark"?i.dark:i.light:void 0}),children:[(0,A0.jsxs)(Rn,{children:[r,e.resetDetected&&(0,A0.jsx)(Wbr,{})]}),(0,A0.jsx)(Rn,{sx:{minWidth:160},children:(0,A0.jsx)(zbr,{percentage:e.usedPercentage,level:o})}),(0,A0.jsx)(Rn,{align:"right",sx:{whiteSpace:"nowrap"},children:Hbr(e)}),(0,A0.jsx)(Rn,{align:"right",sx:{whiteSpace:"nowrap"},children:e.phaseCount??0}),(0,A0.jsx)(Rn,{align:"right",sx:{whiteSpace:"nowrap"},children:Vbr(e)}),(0,A0.jsx)(Ubr,{peak:e})]})}var Vye=E(de(),1);function i_(e){let[t,r]=(0,Vye.useState)(()=>Math.floor(Date.now()/1e3));return(0,Vye.useEffect)(()=>{let n=setInterval(()=>r(Math.floor(Date.now()/1e3)),e);return()=>clearInterval(n)},[e]),t}var kc=E($(),1);function jbr({peaks:e}){let t=i_(3e4);return(0,kc.jsx)(v5,{component:tn,children:(0,kc.jsxs)(Jv,{size:"small",children:[(0,kc.jsx)(b5,{sx:{"& th":{whiteSpace:"nowrap"}},children:(0,kc.jsxs)(df,{children:[(0,kc.jsx)(Rn,{children:"Window"}),(0,kc.jsx)(Rn,{children:"Peak usage"}),(0,kc.jsx)(Rn,{align:"right",children:(0,kc.jsx)(lr,{title:"Mean context-window usage across all readings in this rate-limit cycle \u2014 distinct from the Peak usage quota above.",children:(0,kc.jsx)("span",{children:"Avg context"})})}),(0,kc.jsx)(Rn,{align:"right",children:(0,kc.jsx)(lr,{title:"Number of phase readings behind the average.",children:(0,kc.jsx)("span",{children:"Phases"})})}),(0,kc.jsx)(Rn,{align:"right",children:"Tokens spent"}),(0,kc.jsx)(Rn,{align:"right",children:"Cycle reset"})]})}),(0,kc.jsx)(eb,{children:e.map(r=>(0,kc.jsx)(qbr,{peak:r,now:t},`${r.window}-${r.resetsAt}-${r.segment}`))})]})})}var o_=E($(),1);function Ybr({rows:e,total:t,page:r,pageSize:n,onPageChange:i}){let{ref:o,height:a}=Oye(e.length,n);return(0,o_.jsxs)(o_.Fragment,{children:[(0,o_.jsx)(ie,{ref:o,sx:{minHeight:a},children:(0,o_.jsx)(jbr,{peaks:e})}),(0,o_.jsx)(Oz,{component:"div",count:t,page:r,rowsPerPage:n,rowsPerPageOptions:[n],onPageChange:(s,l)=>i(l)})]})}var ZK=E(de(),1);function a_(){let[e,t]=(0,ZK.useState)(!1),[r,n]=(0,ZK.useState)(!1);return(0,ZK.useEffect)(()=>{let i=!1;return(async()=>{try{let a=await(await fetch("/api/harness")).json();i||(t(!!a?.exposeCodexActions),n(!!a?.exposePiActions))}catch{t(!1),n(!1)}})(),()=>{i=!0}},[]),{exposeCodexActions:e,exposePiActions:r}}var jUe=E($(),1),Kbr=["five_hour","seven_day"],vQn=["codex:five_hour","codex:seven_day"];function bQn(e){let t=e?[...Kbr,...vQn]:Kbr;return[{value:"all",label:"All"},...t.map(r=>({value:r,label:PF(r).label}))]}function Xbr({window:e,onChange:t}){let{exposeCodexActions:r}=a_();return(0,jUe.jsx)(Ru,{size:"small",exclusive:!0,value:e,onChange:(n,i)=>i&&t(i),"aria-label":"Filter peaks by rate-limit window",children:bQn(r).map(n=>(0,jUe.jsx)(bs,{value:n.value,children:n.label},n.value))})}var bv=E($(),1);function Zbr({history:e}){let{window:t,total:r}=e;return(0,bv.jsxs)(bv.Fragment,{children:[(0,bv.jsx)(Xbr,{window:t,onChange:e.selectWindow}),(0,bv.jsx)(ie,{sx:{height:4,my:1},children:e.fetching&&(0,bv.jsx)(y5,{})}),r===0?(0,bv.jsx)(Le,{color:"text.secondary",align:"center",sx:{py:6},children:t==="all"?"No usage peaks recorded yet.":`No ${PF(t).label} usage peaks recorded yet.`}):(0,bv.jsx)(Ybr,{rows:e.rows,total:r,page:e.page,pageSize:e.pageSize,onPageChange:e.setPage})]})}var jye=E(de(),1);async function Qbr(e,t,r){let n=new URLSearchParams({page:String(e),pageSize:String(t)});r!=="all"&&n.set("window",r);let i=await fetch(`/api/usage/history?${n}`);if(!i.ok)throw new Error(`Failed to load usage history (HTTP ${i.status}).`);return i.json()}var s_=E(de(),1);function qye(e,t,r=!0){let[n,i]=(0,s_.useState)(0),[o,a]=(0,s_.useState)(null),[s,l]=(0,s_.useState)(!1),[u,f]=(0,s_.useState)(null);(0,s_.useEffect)(()=>{if(!r)return;let p=!1;return l(!0),e(n,t).then(m=>{p||(a(m),l(!1))},m=>{p||(f(m instanceof Error?m:new Error(String(m))),l(!1))}),()=>{p=!0}},[e,n,t,r]);let d=o?.total??0;(0,s_.useEffect)(()=>{if(d===0)return;let p=Math.ceil(d/t)-1;n>p&&i(p)},[n,t,d]);let h=o?.rows??[];return{data:o,rows:h,total:d,loaded:o!==null,fetching:s,error:u,page:n,setPage:i,pageSize:t}}var xQn=30;function Jbr(){let[e,t]=(0,jye.useState)("all"),r=(0,jye.useCallback)((o,a)=>Qbr(o,a,e),[e]),n=qye(r,xQn);return{...n,window:e,selectWindow:o=>{t(o),n.setPage(0)}}}var LF=E(de(),1);function exr(e,t){return e.field!==t?{field:t,direction:"desc"}:{field:t,direction:e.direction==="desc"?"asc":"desc"}}var SQn=30;function txr(e){let[t,r]=(0,LF.useState)(WK),[n,i]=(0,LF.useState)(GK),[o,a]=(0,LF.useState)(UK),s=(0,LF.useCallback)((h,p)=>pbr(h,p,{origin:t,status:n,sort:o}),[t,n,o]),l=qye(s,SQn,e);return{...l,origin:t,selectOrigin:h=>{r(h),l.setPage(0)},status:n,selectStatus:h=>{i(h),l.setPage(0)},sort:o,sortBy:h=>{a(p=>exr(p,h)),l.setPage(0)}}}var l_=E($(),1),TQn={borderBottom:1,borderColor:"divider",mb:2};function nxr(){let[e,t]=(0,rxr.useState)("limits"),r=Jbr(),n=txr(e==="items");if(r.error)throw r.error;if(n.error)throw n.error;return(0,l_.jsxs)(Yl,{loading:!r.loaded,title:"Usage history",maxWidth:"lg",children:[(0,l_.jsxs)(S5,{value:e,onChange:(i,o)=>t(o),textColor:"inherit",indicatorColor:"secondary",sx:TQn,"aria-label":"Usage history views",children:[(0,l_.jsx)(Qv,{label:"Rate limits",value:"limits"}),(0,l_.jsx)(Qv,{label:"Items",value:"items"})]}),e==="limits"?(0,l_.jsx)(Zbr,{history:r}):(0,l_.jsx)(Obr,{items:n})]})}var Yye=E(de(),1),YUe=(0,Yye.createContext)([]);function Kye(){return(0,Yye.useContext)(YUe)}var g2r=E(de(),1);function Pa(){let{selectedCwd:e}=Fn();return e||void 0}var rS=E(de(),1);var oxr=E(de(),1);var CQn=new Set(["todo","done","all"]);function ixr(e){return e&&CQn.has(e)?e:"todo"}var axr="backlog-filter",KUe=new Set,sxr=wQn();function wQn(){try{return ixr(localStorage.getItem(axr))}catch{return"todo"}}function kQn(e){return KUe.add(e),()=>KUe.delete(e)}function _Qn(){return sxr}function EQn(e){sxr=e;try{localStorage.setItem(axr,e)}catch{}for(let t of KUe)t()}function MF(){return[(0,oxr.useSyncExternalStore)(kQn,_Qn),EQn]}function lxr(){let e=Pa(),t=yr(),[r]=MF(),[n,i]=(0,rS.useState)(""),[o,a]=(0,rS.useState)(null),[s,l]=(0,rS.useState)(!1),[u,f]=(0,rS.useState)(e),d=(0,rS.useRef)(void 0);return e!==u&&(f(e),a(null),l(n.trim().length>0)),(0,rS.useEffect)(()=>{if(d.current!==void 0&&clearTimeout(d.current),!n.trim()){a(null),l(!1);return}let h=new AbortController,{signal:p}=h;return l(!0),d.current=setTimeout(async()=>{try{let m=await gT({query:n,cwd:e,node:t,signal:p,filter:r});if(p.aborted)return;a(m),l(!1)}catch(m){if(!p.aborted)throw m}},250),()=>{d.current!==void 0&&clearTimeout(d.current),h.abort()}},[n,e,t,r]),{query:n,setQuery:i,results:o,loading:s}}var dxr={position:"relative",display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",alignItems:"center",columnGap:1.5,width:"100%",p:2,mb:1,borderRadius:2,border:1,borderColor:"divider",bgcolor:"background.paper",transition:"box-shadow 0.2s","&:hover":{boxShadow:3}},RQn={"&::after":{content:'""',position:"absolute",inset:0,borderRadius:2,zIndex:1},"&:focus-visible":{outline:"none"},"&:focus-visible::after":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:"2px"}},cxr={position:"relative",zIndex:2},uxr=8,XUe=24,AQn=ho`
4014
4014
  from { background-position: 0 0; }
4015
4015
  to { background-position: 0 ${XUe}px; }
4016
- `,hxr={...dxr,borderColor:"warning.main",borderLeft:4,borderLeftColor:"warning.main",bgcolor:e=>po(e.palette.warning.main,.08)},PQn={...hxr,borderLeftColor:"transparent",backgroundImage:e=>`repeating-linear-gradient(to bottom, ${e.palette.warning.main} 0 ${uxr}px, transparent ${uxr}px ${XUe}px)`,backgroundOrigin:"border-box",backgroundRepeat:"repeat-y",backgroundSize:`4px ${XUe}px`,animation:`${AQn} 0.9s linear infinite`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}},fxr={"& .MuiButtonBase-root:focus-visible":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:"2px"}},xv={card:dxr,inProgressCard:hxr,inProgressRunningCard:PQn,main:{minWidth:0,textAlign:"left"},stretchedNameLink:{display:"block",fontWeight:500,color:"text.primary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",...RQn},meta:{display:"flex",alignItems:"center",gap:1,...cxr,width:"fit-content",maxWidth:"100%",fontSize:"0.75rem",color:"text.secondary","& a, & p":{fontSize:"0.75rem"},...fxr},id:{color:"text.disabled"},actions:{display:"flex",alignItems:"center",gap:1,flexShrink:0,...cxr,...fxr}};function Xye(e){let t=e.peakContextPct>0?` \xB7 \u2593 ${Math.round(e.peakContextPct)}%`:"";return`\u2191 ${lh(e.tokensUp)} \u2193 ${lh(e.tokensDown)} \xB7 \u23F1 ${E0(e.activeMs)}${t}`}var mxr=E($(),1),LQn={width:6,height:6,borderRadius:"50%",bgcolor:"currentColor",flexShrink:0};function pxr(){return(0,mxr.jsx)(ie,{component:"span",sx:LQn})}var QK=E($(),1),gxr={display:"inline-flex",alignItems:"center",gap:.625,color:"warning.main",fontWeight:500,fontSize:"0.75rem",whiteSpace:"nowrap",borderRadius:1};function yxr({item:e,openSession:t,onSelectSession:r}){let n=Ni();if(e.status!=="in-progress"||e.currentPhase==null)return null;let i=`phase ${e.currentPhase} of ${e.totalPhases??e.currentPhase}`,o=(0,QK.jsx)(pxr,{});if(!t)return(0,QK.jsxs)(ie,{component:"span",sx:gxr,children:[o,i]});let a=()=>{r?.(t.id),n("/sessions")};return(0,QK.jsxs)(pn,{sx:gxr,title:`Open the ${t.status} session`,onClick:a,children:[o,i]})}var wp=E($(),1),MQn={display:"inline-flex",alignItems:"center",gap:.5},IQn={width:8,height:8,borderRadius:"50%",flexShrink:0},DQn={whiteSpace:"nowrap"};function NQn({type:e}){let t=Hye[e];return(0,wp.jsxs)(ie,{component:"span",sx:MQn,children:[(0,wp.jsx)(ie,{component:"span",sx:{...IQn,bgcolor:`${t}.main`}}),e]})}function OQn({item:e}){return e.usageTotal?(0,wp.jsx)(lr,{title:Xye(e.usageTotal),children:(0,wp.jsx)(ie,{component:"span",sx:DQn,children:`\u23F1 ${E0(e.usageTotal.activeMs)}`})}):null}function vxr({item:e,openSession:t,onSelectSession:r}){return(0,wp.jsxs)(ie,{sx:xv.meta,children:[(0,wp.jsx)(ie,{component:"span",sx:xv.id,children:oo(e.id)}),(0,wp.jsx)(NQn,{type:e.type}),(0,wp.jsx)(yxr,{item:e,openSession:t,onSelectSession:r}),(0,wp.jsx)(mL,{jiraKey:e.jiraKey}),(0,wp.jsx)(pT,{githubIssue:e.githubIssue,variant:"icon"}),(0,wp.jsx)(OQn,{item:e})]})}function bxr(e,t){return e.filter(r=>TB(r)?.itemId===t).reduce((r,n)=>r&&r.startedAt>=n.startedAt?r:n,void 0)}var Sxr=E($(),1),BQn={todo:"\u25CB","in-progress":"\u25D4",done:"\u25CF",wontdo:"\u2715"},FQn={todo:"text.disabled","in-progress":"warning.main",done:"success.main",wontdo:"error.main"};function $Qn(e){return{fontSize:"1.125rem",flexShrink:0,color:FQn[e]}}function xxr({status:e}){return(0,Sxr.jsx)(Le,{sx:$Qn(e),children:BQn[e]})}function Zye(e){return e.status==="todo"||e.status==="in-progress"}function zQn(e){if(e.status==="done")return e.totalPhases;if(e.status==="in-progress")return e.currentPhase}function HQn(e,t,r){return r?"complete":e<t?"done":e===t?"current":"remaining"}function Txr(e){let t=e.totalPhases,r=zQn(e);if(!t||r==null)return;let n=e.status==="done";return{reached:r,total:t,segments:Array.from({length:t},(i,o)=>({phase:o+1,kind:HQn(o+1,r,n)}))}}var IF=E($(),1),UQn={done:"text.secondary",current:"warning.main",remaining:"divider",complete:"success.main"},WQn={display:"inline-flex",alignItems:"center",gap:.5,flexShrink:0},GQn={fontSize:"0.6875rem",color:"text.secondary",fontVariantNumeric:"tabular-nums"},VQn={display:"inline-flex",alignItems:"center",gap:"2px"},qQn={width:6,height:12,borderRadius:"1px",flexShrink:0};function Cxr({item:e}){let t=Txr(e);return t?(0,IF.jsxs)(ie,{sx:WQn,title:`Phase ${t.reached} of ${t.total}`,children:[(0,IF.jsx)(ie,{component:"span",sx:GQn,children:`${t.reached}/${t.total}`}),(0,IF.jsx)(ie,{component:"span",sx:VQn,"aria-hidden":!0,children:t.segments.map(r=>(0,IF.jsx)(ie,{component:"span","data-segment":r.kind,sx:{...qQn,bgcolor:UQn[r.kind]}},r.phase))})]}):null}var Zxr=E(de(),1);var t1e=E(de(),1);var bA=E($(),1),jQn={minWidth:0,p:.5,borderRadius:"50%"};function Qye({tooltip:e,disabled:t,onClick:r,compact:n=!1}){return(0,bA.jsx)(lr,{title:e,children:(0,bA.jsx)(ie,{component:"span",sx:{display:"flex"},children:n?(0,bA.jsx)(Dt,{"aria-label":"Build",variant:"contained",color:"success",size:"small",disabled:t,sx:jQn,onClick:r,children:(0,bA.jsx)(Eg,{fontSize:"small"})}):(0,bA.jsx)(Dt,{startIcon:(0,bA.jsx)(Eg,{}),disabled:t,onClick:r,children:"Build"})})})}var ZUe=E($(),1);function Jye(e){let t=[];return e.exposeCodexActions&&t.push({kind:"codex",label:"with Codex"}),e.exposePiActions&&t.push({kind:"pi",label:"with pi"}),t}function e1e({anchorEl:e,open:t,onClose:r,options:n,onSelect:i,stop:o}){return(0,ZUe.jsx)(Os,{anchorEl:e,open:t,onClose:r,onClick:o,children:n.map(a=>(0,ZUe.jsx)(ln,{onClick:s=>{o(s),i(a.kind)},children:a.label},a.kind))})}var Sv=E($(),1);function wxr({tooltip:e,disabled:t,onBuild:r,onSelectHarness:n}){let i=Jye(a_()),o=(0,t1e.useRef)(null),[a,s]=(0,t1e.useState)(!1),l=u=>u.stopPropagation();return(0,Sv.jsxs)(Sv.Fragment,{children:[(0,Sv.jsxs)(RS,{ref:o,variant:"contained",color:"success",size:"small",disabled:t,children:[(0,Sv.jsx)(Qye,{tooltip:e,disabled:t,onClick:u=>{l(u),r()}}),i.length>0&&(0,Sv.jsx)(Dt,{"aria-label":"Build with a different harness",onClick:u=>{l(u),s(!0)},children:(0,Sv.jsx)(bd,{})})]}),(0,Sv.jsx)(e1e,{anchorEl:o.current,open:a,onClose:()=>s(!1),options:i,onSelect:u=>{s(!1),n(u)},stop:l})]})}var kxr=E($(),1),DF=st((0,kxr.jsx)("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96M19 18H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95C8.08 7.14 9.94 6 12 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11c1.56.1 2.78 1.41 2.78 2.96 0 1.65-1.35 3-3 3m-5.55-8h-2.9v3H8l4 4 4-4h-2.55z"}),"CloudDownloadOutlined");var c_=E($(),1),YQn={vertical:"bottom",horizontal:"center"};function r1e({clone:e}){let{prompt:t,confirm:r,cancel:n,error:i,dismissError:o}=e;return(0,c_.jsxs)(c_.Fragment,{children:[t&&(0,c_.jsx)(yi,{title:"Clone repository",message:`Clone ${t.displayName} over SSH into ${t.cloneTarget}${t.node?` on ${t.node}`:""}?`,confirmLabel:"Clone",confirmColor:"primary",onConfirm:r,onCancel:n}),(0,c_.jsx)(pl,{open:!!i,autoHideDuration:8e3,onClose:o,anchorOrigin:YQn,children:(0,c_.jsx)(gi,{severity:"error",onClose:o,variant:"filled",children:i})})]})}var P0=E(de(),1);function QUe(e){return["backlog","clone",e]}function n1e(e,t){t(QUe(e.origin),void 0,{title:`Clone ${e.displayName}`,subtitle:e.origin,...e.node&&{node:e.node}})}function _xr(e,t){return!!e&&e.length===t.length&&e.every((r,n)=>r===t[n])}function Exr(e,t,r){let n=QUe(t.origin),i=new Set(e.filter(o=>_xr(o.assistArgs,n)).map(o=>o.id));return n1e(t,r),{args:n,target:t.cloneTarget,node:t.node,preexisting:i}}function Rxr(e,t){if(!t.id){let n=e.find(i=>_xr(i.assistArgs,t.args)&&!t.preexisting.has(i.id));return n?{type:"latch",id:n.id}:null}let r=e.find(n=>n.id===t.id);return r?r.status==="done"?{type:"done"}:r.status==="error"?{type:"error",message:r.error||"Clone failed."}:null:null}function i1e(e){let{setSelectedCwd:t}=Fn(),{launchAssist:r}=il(),[n,i]=(0,P0.useState)(null),[o,a]=(0,P0.useState)(null),[s,l]=(0,P0.useState)(null),u=(0,P0.useCallback)(p=>{l(null),i(p)},[]),f=(0,P0.useCallback)(()=>i(null),[]),d=(0,P0.useCallback)(()=>l(null),[]),h=(0,P0.useCallback)(()=>{n&&(a(Exr(e,n,r)),i(null))},[n,e,r]);return(0,P0.useEffect)(()=>{if(!o)return;let p=Rxr(e,o);p&&(p.type==="latch"?a(m=>m&&{...m,id:p.id}):p.type==="done"?(o.node?t(o.target,o.node):t(o.target),a(null)):(l(p.message),a(null)))},[e,o,t]),{prompt:n,requestClone:u,confirm:h,cancel:f,error:s,dismissError:d}}function NF(e,t){return`Not cloned ${e?`on ${e}`:"locally"} \u2014 click to clone into ${t}`}var nS=E($(),1),KQn={border:1,borderStyle:"dashed"};function Axr({target:e}){let t=i1e(Kye());return(0,nS.jsxs)(nS.Fragment,{children:[(0,nS.jsx)(lr,{title:NF(e.node,e.cloneTarget),children:(0,nS.jsx)(ir,{"aria-label":"Clone",size:"small",sx:KQn,onClick:r=>{r.stopPropagation(),t.requestClone(e)},children:(0,nS.jsx)(DF,{fontSize:"small"})})}),(0,nS.jsx)(r1e,{clone:t})]})}var rX=E(de(),1);var JK=E(de(),1);function Pxr(e,t,r,n){let i=Pa(),o=yr(),a=(0,JK.useRef)(!1),[s,l]=(0,JK.useState)(!1),[u,f]=(0,JK.useState)(null);return{busy:s,error:u,clearError:()=>f(null),confirm:async()=>{if(!a.current){a.current=!0,l(!0);try{await wL(e,t,i,o)}catch{f(r),a.current=!1,l(!1);return}await n()}}}}var eX=E($(),1),XQn={done:{verb:"done",action:"Mark done"},wontdo:{verb:"won't do",action:"Won't do"}};function Lxr({itemId:e,status:t,target:r,onClose:n}){let{verb:i,action:o}=XQn[t],a=oo(e),{busy:s,error:l,clearError:u,confirm:f}=Pxr(e,t,`Failed to mark item ${a} as ${i}`,async()=>{n(),await r.onClosed()});return(0,eX.jsxs)(ia,{children:[(0,eX.jsx)(yi,{title:`Mark ${a} ${i}`,message:`${r.currentPhase??0} of ${r.totalPhases??0} phases completed. Mark this backlog item as ${i}?`,confirmLabel:o,busy:s,onConfirm:f,onCancel:n}),(0,eX.jsx)(Xl,{error:l,onClose:u})]})}var OF=E($(),1),ZQn=[{status:"done",label:"Mark done"},{status:"wontdo",label:"Won't do"}];function Mxr({anchorEl:e,open:t,onClose:r,onRefine:n,onSelect:i,stop:o}){return(0,OF.jsxs)(Os,{anchorEl:e,open:t,onClose:r,onClick:o,children:[(0,OF.jsx)(ln,{onClick:a=>{o(a),n()},children:"Refine"}),(0,OF.jsx)(Ti,{}),ZQn.map(({status:a,label:s})=>(0,OF.jsx)(ln,{onClick:l=>{o(l),i(a)},children:s},a))]})}var Ixr=E($(),1),Dxr=st((0,Ixr.jsx)("path",{d:"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2"}),"MoreVert");var JUe=E($(),1);function Nxr({anchorRef:e,onClick:t}){return(0,JUe.jsx)(ir,{ref:e,"aria-label":"More actions",size:"small",onClick:t,children:(0,JUe.jsx)(Dxr,{fontSize:"small"})})}var tX=E($(),1);function Oxr({anchorRef:e,tooltip:t,disabled:r,onBuild:n,onMore:i}){return(0,tX.jsxs)(ie,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,tX.jsx)(Qye,{compact:!0,tooltip:t,disabled:r,onClick:n}),(0,tX.jsx)(Nxr,{anchorRef:e,onClick:i})]})}var Bxr=E(de(),1);function o1e(e){let{launchAssist:t}=il(),r=Ni(),n=Pa(),i=yr(),[o,a]=(0,Bxr.useState)(!1);return{launched:o,launch:l=>{if(o)return;a(!0);let u=i?[{node:i}]:[];t(["refine","--once",...l,oo(e)],n,...u),r("/sessions")}}}var u_=E($(),1);function Fxr({itemId:e,tooltip:t,disabled:r,onBuild:n,closeTarget:i}){let o=(0,rX.useRef)(null),[a,s]=(0,rX.useState)(!1),[l,u]=(0,rX.useState)(null),f=o1e(e),d=h=>h.stopPropagation();return(0,u_.jsxs)(u_.Fragment,{children:[(0,u_.jsx)(Oxr,{anchorRef:o,tooltip:t,disabled:r,onBuild:h=>{d(h),n()},onMore:h=>{d(h),s(!0)}}),(0,u_.jsx)(Mxr,{anchorEl:o.current,open:a,onClose:()=>s(!1),onRefine:()=>{s(!1),f.launch([])},onSelect:h=>{s(!1),u(h)},stop:d}),l&&(0,u_.jsx)(Lxr,{itemId:e,status:l,target:i,onClose:()=>u(null)})]})}var a1e=E(de(),1),eWe=(0,a1e.createContext)(()=>{});function $xr(){return(0,a1e.useContext)(eWe)}var s1e=E($(),1);function zxr({session:e}){let t=vy($xr());return(0,s1e.jsxs)(Dt,{variant:"contained",size:"small",startIcon:(0,s1e.jsx)(Hme,{}),onClick:r=>{r.stopPropagation(),t(e.id)},children:["Session ",e.id]})}function Hxr(e,t,r,n){let i=r.node?[{node:r.node}]:[];e(["backlog","run",oo(t),...n],r.cwd,...i)}function QQn(e,t){let r=e.assistArgs;if(r?.[0]!=="backlog"||r[1]!=="run"||!r[2])return!1;try{return cte(r[2])===t}catch{return!1}}function Uxr(e,t){return e.find(r=>r.status!=="done"&&r.status!=="error"&&(QQn(r,t)||TB(r)?.itemId===t))}var l1e=E(de(),1),tWe=(0,l1e.createContext)({nodes:null,names:[],visible:!1,selected:void 0,select:()=>{}});function _c(){return(0,l1e.useContext)(tWe)}function c1e(){let{nodes:e,selected:t}=_c();return t&&t!==e?.local?t:void 0}var Vxr=E(de(),1);var u1e=E(de(),1);function Wxr(e,t){return Promise.all(t.map(async r=>{let n=await JQn(e,r).catch(()=>({}));return[r,n]}))}async function JQn(e,t){let r=await fetch(qr(`/api/repo-location?origin=${encodeURIComponent(e)}`,t||void 0));return r.ok?r.json():{}}var rWe="\0";function Gxr(e,t){let[r,n]=(0,u1e.useState)(null);return(0,u1e.useEffect)(()=>{if(!e||!t)return;let i=!1;return Wxr(e,t.split(rWe)).then(o=>{i||n({origin:e,byNode:Object.fromEntries(o)})}),()=>{i=!0}},[e,t]),r}function f1e(e,t){let{cloneOn:r,originOf:n}=Fn(),i=e?n(e):void 0,o=t.filter(s=>!e||!r(e,s)).map(s=>s??"").join(rWe),a=Gxr(i,o);return(0,Vxr.useCallback)(s=>{let l=e?r(e,s):void 0;if(l)return{kind:"cloned",cwd:l};let u=a&&a.origin===i?a.byNode[s??""]:void 0;return u?.cwd?{kind:"cloned",cwd:u.cwd}:i&&u?.cloneTarget?{kind:"clonable",origin:i,cloneTarget:u.cloneTarget}:{kind:"unavailable"}},[e,r,i,a])}var BF=E(de(),1);var d1e=E(de(),1);function h1e(e){let t=(0,d1e.useRef)(null);return(0,d1e.useEffect)(()=>{e&&t.current?.scrollIntoView({block:"nearest"})},[e]),t}var jxr=E($(),1);function qxr({cwd:e,selected:t,highlighted:r,onHover:n,onSelect:i}){let o=h1e(r);return(0,jxr.jsx)(ln,{ref:o,selected:t,title:e,onClick:i,onMouseEnter:n,sx:{fontSize:12,display:"flex",justifyContent:"space-between",gap:1,...r&&{bgcolor:"action.hover"}},children:Tv(e)})}var nWe=E($(),1);function p1e({repos:e,selected:t,highlight:r,onHighlight:n,onSelect:i}){return(0,nWe.jsx)(zp,{dense:!0,children:e.map((o,a)=>(0,nWe.jsx)(qxr,{cwd:o,selected:o===t,highlighted:a===r,onHover:()=>n(a),onSelect:()=>i(o)},o))})}var m1e=E(de(),1);function f_(e,t,r,n){let[i,o]=(0,m1e.useState)(0);return(0,m1e.useEffect)(()=>{o(0)},[t]),{highlight:i,setHighlight:o,onKeyDown:s=>{let l=e.length;if(s.key==="ArrowDown")s.preventDefault(),l>0&&o(u=>(u+1)%l);else if(s.key==="ArrowUp")s.preventDefault(),l>0&&o(u=>(u-1+l)%l);else if(s.key==="Enter"){s.preventDefault();let u=e[i];u!==void 0&&(r(u),n())}else s.key==="Escape"&&(s.preventDefault(),n())}}}var nX=E($(),1);function Tv(e){let t=e.includes("\\")?"\\":"/";return e.split(t).filter(Boolean).pop()??e}var eJn={...kB};function Yxr({repos:e,selected:t,onSelect:r,close:n,initialFilter:i=""}){let[o,a]=(0,BF.useState)(i),s=(0,BF.useRef)(null);(0,BF.useEffect)(()=>{s.current?.focus()},[]);let l=o.trim().toLowerCase(),u=l?e.filter(m=>m.toLowerCase().includes(l)):e,{highlight:f,setHighlight:d,onKeyDown:h}=f_(u,l,r,n);return(0,nX.jsxs)(tn,{elevation:4,sx:eJn,children:[(0,nX.jsx)(hT,{inputRef:s,value:o,onChange:a,onKeyDown:h,placeholder:"Filter repos..."}),(0,nX.jsx)(p1e,{repos:u,selected:t,highlight:f,onHighlight:d,onSelect:m=>{r(m),n()}})]})}function g1e(e,t){return{origin:e.origin,cloneTarget:e.cloneTarget,displayName:Tv(e.origin),node:t}}function Kxr(){let e=Pa(),t=c1e(),r=f1e(e??"",[t])(t);return e?r.kind==="cloned"?{kind:"ready",cwd:r.cwd,node:t}:r.kind==="clonable"?{kind:"clone",prompt:g1e(r,t)}:{kind:"unavailable",node:t??"this machine"}:{kind:"ready",node:t}}function Xxr(e){return e?`Not cloned on ${e}`:"Build"}var iX=E($(),1);function y1e({itemId:e,compact:t}){let{launchAssist:r}=il(),n=Kxr(),i=Uxr(Kye(),e),[o,a]=(0,Zxr.useState)(!1);if(n.kind==="clone")return(0,iX.jsx)(Axr,{target:n.prompt});if(i)return(0,iX.jsx)(zxr,{session:i});let s=n.kind==="unavailable"?n.node:void 0,l=o||!!s,u=d=>{l||n.kind!=="ready"||(a(!0),Hxr(r,e,n,d))},f=Xxr(s);return t?(0,iX.jsx)(Fxr,{itemId:e,tooltip:f,disabled:l,onBuild:()=>u([]),closeTarget:t}):(0,iX.jsx)(wxr,{tooltip:f,disabled:l,onBuild:()=>u([]),onSelectHarness:d=>u(["--harness",d])})}var Qxr=E(de(),1);var FF=E($(),1);function Jxr({itemId:e,starred:t,onToggled:r}){let n=Pa(),i=yr(),[o,a]=(0,Qxr.useState)(!1);return(0,FF.jsx)(lr,{title:t?"Unstar":"Star",children:(0,FF.jsx)("span",{children:(0,FF.jsx)(ir,{"aria-label":t?"Unstar":"Star","aria-pressed":t,color:t?"warning":"default",size:"small",disabled:o,onClick:async l=>{if(l.stopPropagation(),!o){a(!0);try{await Ete(e,!t,n,i),await r()}finally{a(!1)}}},children:t?(0,FF.jsx)(Tge,{}):(0,FF.jsx)(Cge,{})})})})}var d_=E($(),1);function e2r({item:e,onReload:t}){return(0,d_.jsxs)(d_.Fragment,{children:[(0,d_.jsx)(Cxr,{item:e}),(0,d_.jsx)(Jxr,{itemId:e.id,starred:e.starred,onToggled:t}),Zye(e)&&(0,d_.jsx)(y1e,{itemId:e.id,compact:{currentPhase:e.currentPhase,totalPhases:e.totalPhases,onClosed:t}})]})}var iS=E($(),1);function tJn(e,t){return e?t?xv.inProgressRunningCard:xv.inProgressCard:xv.card}function t2r({item:e,to:t,socket:r,onReload:n}){let i=bxr(r.sessions,e.id),o=e.status==="in-progress",a=o&&i?.status==="running";return(0,iS.jsxs)(ie,{sx:tJn(o,a),children:[(0,iS.jsx)(xxr,{status:e.status}),(0,iS.jsxs)(ie,{sx:xv.main,children:[(0,iS.jsx)(Kr,{component:Cs,to:t,underline:"none",title:e.name,sx:xv.stretchedNameLink,children:e.name}),(0,iS.jsx)(vxr,{item:e,openSession:i,onSelectSession:r.selectSession})]}),(0,iS.jsx)(ie,{sx:xv.actions,children:(0,iS.jsx)(e2r,{item:e,onReload:n})})]})}var n2r=E($(),1),rJn={all:"items",story:"stories",bug:"bugs"},nJn={textAlign:"center",color:"text.disabled",py:6,px:2};function r2r({query:e,typeFilter:t}){let r=rJn[t],n=e.trim()?`No ${r} match your search.`:`No ${r} in the backlog.`;return(0,n2r.jsx)(ie,{sx:nJn,children:n})}var Cv=E($(),1),iJn={display:"flex",justifyContent:"center",py:6};function i2r({loading:e,error:t,query:r,typeFilter:n,items:i,socket:o,itemPath:a,onReload:s}){if(e)return(0,Cv.jsx)(ie,{sx:iJn,children:(0,Cv.jsx)(io,{})});let l=t&&(0,Cv.jsx)(gi,{severity:"error",children:t});return i.length===0?l||(0,Cv.jsx)(r2r,{query:r,typeFilter:n}):(0,Cv.jsxs)(Cv.Fragment,{children:[l,i.map(u=>(0,Cv.jsx)(t2r,{item:u,to:a(u),socket:o,onReload:s},u.id))]})}var $F=E(de(),1);function oJn(e){let t=new URLSearchParams;for(let n of e)t.append("knownCwd",n);let r=t.toString();return r?`/api/backlog/summary?${r}`:"/api/backlog/summary"}async function o2r({cwd:e,node:t,knownCwds:r,signal:n}){return(await fetch(Wc(oJn(r),e,t),{signal:n})).json()}function a2r(){let{repos:e,selectedCwd:t,cloneOn:r}=Fn(),n=c1e(),[i,o]=(0,$F.useState)([]),a=(0,$F.useMemo)(()=>e.map(l=>r(l,n)).filter(l=>!!l),[e,r,n]),s=t?r(t,n):void 0;return(0,$F.useEffect)(()=>{let l=new AbortController;return o2r({cwd:s,node:n,knownCwds:a,signal:l.signal}).then(o).catch(()=>{}),()=>l.abort()},[a,s,n]),{summaries:i,node:n}}var v1e=E($(),1),aJn={borderStyle:"dashed"};function s2r({summary:e,node:t,onSelectCwd:r,onRequestClone:n}){let{origin:i,displayName:o,openCount:a,isCurrent:s,cwd:l,cloneTarget:u}=e,f=!l&&!!u,d=l?()=>r(l):f&&u?()=>n({origin:i,cloneTarget:u,displayName:o,node:t}):void 0,h=(0,v1e.jsx)(rn,{label:`${o} (${a})`,size:"small",color:s?"primary":"default",variant:s?"filled":"outlined",disabled:!l&&!f,onClick:d,icon:f?(0,v1e.jsx)(DF,{}):void 0,sx:f?aJn:void 0});return!f||!u?h:(0,v1e.jsx)(lr,{describeChild:!0,title:NF(t,u),children:h})}var oX=E($(),1),sJn={flexWrap:"wrap",gap:1,mb:2};function l2r({sessions:e}){let{summaries:t,node:r}=a2r(),{setSelectedCwd:n}=Fn(),i=i1e(e);return t.length===0?null:(0,oX.jsxs)(Rt,{direction:"row",sx:sJn,children:[t.map(o=>(0,oX.jsx)(s2r,{summary:o,node:r,onSelectCwd:a=>r?n(a,r):n(a),onRequestClone:i.requestClone},o.origin)),(0,oX.jsx)(r1e,{clone:i})]})}var u2r=E($(),1);function c2r({value:e,onChange:t}){return(0,u2r.jsx)(Qn,{"data-backlog-focus":"search",autoFocus:!0,fullWidth:!0,size:"small",placeholder:"Search backlog\u2026",value:e,onChange:r=>t(r.target.value),sx:{mb:2}})}var iWe=E($(),1),b1e=st([(0,iWe.jsx)("path",{d:"M12 5.99 19.53 19H4.47zM12 2 1 21h22z"},"0"),(0,iWe.jsx)("path",{d:"M13 16h-2v2h2zm0-6h-2v5h2z"},"1")],"WarningAmber");var x1e=E(de(),1);var xA=E($(),1);async function lJn(){let[e,t]=await Promise.all([fetch("/api/backups/list"),fetch("/api/backups/status")]),r=await e.json(),{staleAfterMs:n}=await t.json();return{row:r[0]??null,staleAfterMs:n}}function f2r({warn:e,tooltip:t,children:r}){return(0,xA.jsx)(lr,{title:t,children:(0,xA.jsxs)(Kr,{component:Cs,to:"/backups",underline:"hover",color:e?"warning.main":"text.secondary",variant:"body2",sx:e?{display:"inline-flex",alignItems:"center",gap:.5}:void 0,children:[e&&(0,xA.jsx)(b1e,{fontSize:"inherit"}),r]})})}function d2r(){let[e,t]=(0,x1e.useState)();if((0,x1e.useEffect)(()=>{lJn().then(t)},[]),e===void 0)return null;let{row:r,staleAfterMs:n}=e;if(r===null)return(0,xA.jsx)(f2r,{warn:!0,tooltip:"No backup has been recorded",children:"Never backed up"});let i=new Date(r.createdAt).toLocaleString(),o=Date.now()-new Date(r.createdAt).getTime()>n;return(0,xA.jsxs)(f2r,{warn:o,tooltip:o?`Backup overdue \u2014 last backed up ${i}`:i,children:["Last backed up ",_o(String(r.createdAt))]})}var zF=E($(),1);function h2r(){let[e,t]=MF();return(0,zF.jsxs)(Ru,{value:e,exclusive:!0,size:"small","aria-label":"Status filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,zF.jsx)(bs,{value:"todo",children:"Todo"}),(0,zF.jsx)(bs,{value:"done",children:"Done"}),(0,zF.jsx)(bs,{value:"all",children:"All"})]})}var HF=E($(),1);function p2r({value:e,onChange:t}){return(0,HF.jsxs)(Ru,{value:e,exclusive:!0,size:"small","aria-label":"Type filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,HF.jsx)(bs,{value:"all",children:"All"}),(0,HF.jsx)(bs,{value:"story",children:"Stories"}),(0,HF.jsx)(bs,{value:"bug",children:"Bugs"})]})}var h_=E($(),1),cJn={justifyContent:"space-between",alignItems:"center",mb:3},uJn={fontWeight:600},fJn={alignItems:"center"};function m2r({typeFilter:e,onTypeFilterChange:t}){return(0,h_.jsxs)(Rt,{direction:"row",sx:cJn,children:[(0,h_.jsx)(Le,{variant:"h5",sx:uJn,children:"Backlog"}),(0,h_.jsxs)(Rt,{direction:"row",spacing:2,sx:fJn,children:[(0,h_.jsx)(d2r,{}),(0,h_.jsx)(p2r,{value:e,onChange:t}),(0,h_.jsx)(h2r,{})]})]})}var oS=E($(),1);function y2r({items:e,loading:t,error:r,socket:n,onReload:i}){let o=Pa(),a=yr(),{query:s,setQuery:l,results:u,loading:f}=lxr(),[d,h]=(0,g2r.useState)("all"),p=u??e,m=d==="all"?p:p.filter(g=>g.type===d);return(0,oS.jsxs)(oS.Fragment,{children:[(0,oS.jsx)(m2r,{typeFilter:d,onTypeFilterChange:h}),(0,oS.jsx)(c2r,{value:s,onChange:l}),(0,oS.jsx)(l2r,{sessions:n.sessions}),(0,oS.jsx)(i2r,{loading:t||f,error:u?null:r,query:s,typeFilter:d,items:m,socket:n,itemPath:g=>mT(g.id,o,a),onReload:i})]})}var E1e=E(de(),1);var SA=E(de(),1);async function oWe(e,t,r){let n=await fetch(Wc(`/api/items/${oo(e)}`,t.cwd,t.node),{signal:r});return n.ok?n.json():null}function v2r(e){let t=Pa(),r=yr(),[n,i]=(0,SA.useState)(null),[o,a]=(0,SA.useState)(!0),s=(0,SA.useCallback)(async()=>{i(await oWe(e,{cwd:t,node:r}))},[e,t,r]);return(0,SA.useEffect)(()=>{let l=new AbortController,{signal:u}=l;return a(!0),(async()=>{try{let f=await oWe(e,{cwd:t,node:r},u);if(u.aborted)return;i(f),a(!1)}catch(f){if(!u.aborted)throw f}})(),()=>l.abort()},[e,t,r]),{item:n,loading:o,reload:s}}function b2r(e,t){let r=new Set,n=new Set,i=[];for(let o of t){if(o.cwdMissing)continue;let a=SL(o),s=nm(o);!a||!s||r.has(a)||n.has(s)||(r.add(a),n.add(s),i.push(s))}return e&&!r.has(TL(e,t))&&!n.has(e)&&i.unshift(e),i}var kp="";function dJn(e){let t=new Map([[kp,[]]]);for(let r of e){let n=r.node??kp;t.set(n,[...t.get(n)??[],r])}return t}function x2r(e,t){var n;let r=new Map;for(let[i,o]of dJn(t)){let a=i===kp?e:"";for(let s of b2r(a,o)){let l=TL(s,o),u=r.get(l)??{key:l,origin:l===s?void 0:l,clones:{}};(n=u.clones)[i]??(n[i]=s),r.set(l,u)}}return[...r.values()]}function S2r(e,t){return e.clones[t]??e.clones[kp]??Object.values(e.clones)[0]}function aX(e,t){return e.find(r=>Object.values(r.clones).includes(t))}function aS(e,t){return!e||e===t?kp:e}function T2r(e,t,r,n){if(!t)return e;let i=aS(r,n);return{...e,selectedCwd:t,selectedNode:r,cloneOn:(o,a)=>{let s=e.cloneOn(o,a);return o!==t||s!==o||aS(a,n)===i?s:void 0}}}var TA={description:"item-section-description",acceptanceCriteria:"item-section-acceptance-criteria",plan:"item-section-plan",activity:"item-section-activity",comments:"item-section-comments"},sX=140,aWe="--pinned-header-height",S1e=`var(${aWe}, ${sX}px)`,C2r=`calc(${S1e} + 8px)`;function wv(e){return{id:TA[e],sx:{mb:2,scrollMarginTop:C2r}}}function T1e(e){return{id:`item-phase-${e}`,sx:{scrollMarginTop:C2r}}}var p_=E($(),1);function w2r({criteria:e}){return e.length===0?null:(0,p_.jsxs)(ie,{...wv("acceptanceCriteria"),children:[(0,p_.jsx)(Le,{variant:"overline",sx:{color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"},children:"Acceptance Criteria"}),(0,p_.jsx)(ty,{disablePadding:!0,sx:{maxWidth:"72ch"},children:e.map((t,r)=>(0,p_.jsxs)(LS,{disableGutters:!0,disablePadding:!0,sx:{py:.5,display:"flex",alignItems:"baseline"},children:[(0,p_.jsxs)(Le,{component:"span",sx:{color:"text.secondary",mr:1},children:[r+1,"."]}),(0,p_.jsx)(Ou,{component:"span",className:"markdown",html:j9(t)})]},t))})]})}var lX=E($(),1),hJn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function k2r({description:e}){return e?(0,lX.jsxs)(ie,{...wv("description"),children:[(0,lX.jsx)(Le,{variant:"overline",sx:hJn,children:"Description"}),(0,lX.jsx)(Y9,{content:e,renderMermaid:!0})]}):null}var D2r=E(de(),1);function _2r(e,t=10){let r=i=>e.filter(o=>o.kind===i).reverse(),n=r("commit");return{branches:r("branch"),commits:n.slice(0,t),overflowCommits:n.slice(t),prs:r("pr"),slacks:r("slack"),sessions:r("session")}}var R2r=E($(),1),pJn={color:"text.secondary",alignSelf:"flex-start",textAlign:"left"};function E2r({hiddenCount:e,expanded:t,onToggle:r}){return e===0?null:(0,R2r.jsx)(Kr,{component:"button",type:"button",variant:"body2",underline:"hover",sx:pJn,onClick:n=>{n.stopPropagation(),r()},children:t?"Show fewer commits":`\u2026 and ${e} more commits`})}var CA=E($(),1),mJn={display:"flex",alignItems:"center",gap:1},gJn={color:"text.secondary",fontFamily:"monospace"},yJn={flex:1,overflowWrap:"anywhere"},vJn={color:"text.disabled","&:hover":{color:"text.primary"}};function A2r({conversation:e}){let{resumeSession:t}=il(),r=n=>{n.stopPropagation(),t(e.sessionId,e.cwd??"",e.title,e.harness)};return(0,CA.jsxs)(ie,{sx:mJn,children:[(0,CA.jsx)(Le,{variant:"body2",component:"span",sx:gJn,children:"session"}),(0,CA.jsx)(Le,{variant:"body2",component:"span",sx:yJn,children:e.title??e.sessionId}),(0,CA.jsx)(ir,{size:"small",title:"Resume",sx:vJn,onClick:r,children:(0,CA.jsx)(Eg,{sx:{fontSize:14}})})]})}var L2r=E($(),1),bJn={color:"text.disabled",ml:1};function P2r({gitRef:e}){return e.kind!=="commit"||!e.createdAt?null:(0,L2r.jsx)(ie,{component:"span",sx:bJn,children:xJn(e.createdAt)})}function xJn(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function M2r(e){if(e.kind==="commit"){let t=e.title?` ${e.title}`:"";return`${e.ref.slice(0,8)}${t}`}if(e.kind==="pr"){let t=e.title?` ${e.title}`:"",r=e.state?` (${e.state.toLowerCase()})`:"";return`#${e.ref}${t}${r}`}return e.kind==="slack"||e.kind==="session"?e.title??e.ref:e.ref}var kv=E($(),1),SJn={color:"text.secondary",mr:1,fontFamily:"monospace"};function TJn({gitRef:e}){let t=M2r(e);return!e.url||e.kind==="session"?(0,kv.jsx)(kv.Fragment,{children:t}):(0,kv.jsx)(Kr,{href:e.url,target:"_blank",rel:"noopener",onClick:r=>r.stopPropagation(),children:t})}function I2r({gitRef:e}){return(0,kv.jsxs)(Le,{variant:"body2",children:[(0,kv.jsx)(ie,{component:"span",sx:SJn,children:e.kind}),(0,kv.jsx)(TJn,{gitRef:e}),(0,kv.jsx)(P2r,{gitRef:e})]})}var m_=E($(),1),CJn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function N2r({gitRefs:e,conversations:t=[]}){let[r,n]=(0,D2r.useState)(!1),{branches:i,commits:o,overflowCommits:a,prs:s,slacks:l}=_2r(e),u=[...i,...o,...r?a:[],...s,...l];return u.length===0&&t.length===0?null:(0,m_.jsxs)(ie,{...wv("activity"),children:[(0,m_.jsx)(Le,{variant:"overline",sx:CJn,children:"Activity"}),(0,m_.jsxs)(Rt,{spacing:1,children:[u.map(f=>(0,m_.jsx)(I2r,{gitRef:f},`${f.kind}:${f.ref}`)),t.map(f=>(0,m_.jsx)(A2r,{conversation:f},f.sessionId)),(0,m_.jsx)(E2r,{hiddenCount:a.length,expanded:r,onToggle:()=>n(f=>!f)})]})]})}var wA=E($(),1),wJn={alignItems:"center",fontSize:"0.75rem",color:"text.secondary",mb:.5},kJn={color:"text.disabled"},_Jn={fontWeight:500},EJn={summary:"Phase summary",comment:"Comment"};function O2r({comment:e}){return(0,wA.jsxs)(Rt,{direction:"row",spacing:.5,sx:wJn,children:[e.id!==void 0&&(0,wA.jsxs)(Le,{variant:"caption",sx:kJn,children:["#",e.id]}),(0,wA.jsx)(Le,{variant:"caption",sx:_Jn,children:EJn[e.type]}),e.phase!==void 0&&(0,wA.jsxs)(Le,{variant:"caption",children:["\xB7 Phase ",e.phase]}),(0,wA.jsxs)(Le,{variant:"caption",children:["\xB7 ",RJn(e.timestamp)]})]})}function RJn(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}var B2r=E($(),1),F2r=st((0,B2r.jsx)("path",{d:"M16 9v10H8V9zm-1.5-6h-5l-1 1H5v2h14V4h-3.5zM18 7H6v12c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2z"}),"DeleteOutlined");var sWe=E(de(),1);async function $2r(e,t,r,n){let i=await fetch(Wc(`/api/items/${oo(e)}/comments/${t}`,r,n),{method:"DELETE"});if(!i.ok){let o=await i.json().catch(()=>{});throw new Error(o?.error??`Failed to delete comment (${i.status})`)}}var _v=E($(),1),AJn={mt:-.5,mr:-.5,color:"text.secondary"};function z2r({itemId:e,commentId:t,onDeleted:r}){let n=Pa(),i=yr(),[o,a]=(0,sWe.useState)(!1),[s,l]=(0,sWe.useState)(),u=()=>l(void 0);return(0,_v.jsxs)(_v.Fragment,{children:[o&&(0,_v.jsx)(yi,{message:"Are you sure you want to delete this comment?",onConfirm:async()=>{a(!1);try{await $2r(e,t,n,i),await r()}catch(f){l(f instanceof Error?f.message:"Failed to delete comment")}},onCancel:()=>a(!1)}),(0,_v.jsx)(pl,{open:s!==void 0,autoHideDuration:6e3,onClose:u,children:(0,_v.jsx)(gi,{severity:"error",variant:"filled",onClose:u,children:s})}),(0,_v.jsx)(ir,{"aria-label":"Delete comment",size:"small",sx:AJn,onClick:()=>a(!0),children:(0,_v.jsx)(F2r,{fontSize:"inherit"})})]})}var kA=E($(),1),PJn={summary:{bgcolor:"warning.light",borderColor:"warning.dark"},comment:{bgcolor:"action.selected",borderColor:"divider"}},LJn={justifyContent:"space-between",alignItems:"flex-start"},MJn={color:"text.primary",whiteSpace:"pre-wrap"};function IJn(e){return{p:1.5,bgcolor:e.bgcolor,borderColor:e.borderColor}}function H2r({comment:e,itemId:t,onDeleted:r}){return(0,kA.jsxs)(tn,{variant:"outlined",sx:IJn(PJn[e.type]),children:[(0,kA.jsxs)(Rt,{direction:"row",sx:LJn,children:[(0,kA.jsx)(O2r,{comment:e}),e.id!==void 0&&t!==void 0&&r&&(0,kA.jsx)(z2r,{itemId:t,commentId:e.id,onDeleted:r})]}),(0,kA.jsx)(Le,{variant:"body2",sx:MJn,children:e.text})]})}var UF=E($(),1),DJn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function U2r({comments:e,itemId:t,onCommentDeleted:r}){return e.length===0?null:(0,UF.jsxs)(ie,{...wv("comments"),children:[(0,UF.jsx)(Le,{variant:"overline",sx:DJn,children:"Comments"}),(0,UF.jsx)(Rt,{spacing:1,children:e.map((n,i)=>(0,UF.jsx)(H2r,{comment:n,itemId:t,onDeleted:r},`${n.timestamp}-${i}`))})]})}var W2r=E($(),1);function WF({total:e,sx:t}){return(0,W2r.jsx)(Le,{sx:t,children:Xye(e)})}var V2r=E($(),1),NJn={color:"text.secondary",fontSize:"0.75rem"};function G2r({usage:e}){let t={tokensUp:e.reduce((r,n)=>r+n.tokensUp,0),tokensDown:e.reduce((r,n)=>r+n.tokensDown,0),activeMs:e.reduce((r,n)=>r+n.activeMs,0),peakContextPct:e.reduce((r,n)=>Math.max(r,n.peakContextPct),0)};return(0,V2r.jsx)(WF,{total:t,sx:NJn})}var sS=E($(),1);function q2r({checks:e}){return(0,sS.jsxs)(ie,{sx:{mt:1,pt:1},children:[(0,sS.jsx)(Ti,{sx:{mb:1}}),(0,sS.jsx)(Le,{variant:"overline",sx:{color:"text.disabled",letterSpacing:"0.08em"},children:"Manual Checks"}),(0,sS.jsx)(ty,{disablePadding:!0,sx:{ml:.5,mt:.5},children:e.map(t=>(0,sS.jsxs)(LS,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,sS.jsx)(Le,{component:"span",sx:{mr:1,fontSize:"0.875rem",color:"text.secondary"},children:"\u2610"}),(0,sS.jsx)(Ou,{component:"span",className:"markdown",sx:{fontSize:"0.875rem",color:"text.secondary"},html:j9(t)})]},t))})]})}var C1e={done:{borderColor:"success.light",bgcolor:"success.light"},current:{borderColor:"info.main",bgcolor:"info.light",ring:"info.light"},upcoming:{borderColor:"divider",bgcolor:"background.paper"}};function j2r(e){let t=C1e[e];return{p:2,borderColor:t.ring?"info.main":t.borderColor,bgcolor:t.bgcolor,...t.ring?{boxShadow:"0 0 0 2px"}:{}}}var Y2r={done:"\u2713",current:"\u2022",upcoming:"\u2022"};var Z2r=E(de(),1);var K2r=E(de(),1),Ev=E($(),1);function X2r({phaseName:e,onConfirm:t,onCancel:r}){let[n,i]=(0,K2r.useState)("");return(0,Ev.jsxs)(Wl,{open:!0,onClose:r,maxWidth:"xs",fullWidth:!0,children:[(0,Ev.jsxs)(ku,{children:["Rewind to ",e,"?"]}),(0,Ev.jsxs)(wu,{children:[(0,Ev.jsx)(Le,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"This will mark all later phases as incomplete."}),(0,Ev.jsx)(Qn,{fullWidth:!0,multiline:!0,rows:3,size:"small",placeholder:"Reason for rewinding...",value:n,onChange:o=>i(o.target.value)})]}),(0,Ev.jsxs)(cd,{children:[(0,Ev.jsx)(Dt,{onClick:r,children:"Cancel"}),(0,Ev.jsx)(Dt,{variant:"contained",color:"warning",disabled:n.trim().length===0,onClick:()=>t(n.trim()),children:"Rewind"})]})]})}var _A=E($(),1);function Q2r({itemId:e,phaseNumber:t,phaseName:r,onRewound:n}){let i=Pa(),o=yr(),[a,s]=(0,Z2r.useState)(!1);return(0,_A.jsxs)(_A.Fragment,{children:[(0,_A.jsx)(Dt,{size:"small",color:"warning",variant:"outlined",onClick:()=>s(!0),sx:{ml:"auto",textTransform:"none",fontSize:"0.75rem"},children:"Rewind"}),a&&(0,_A.jsx)(X2r,{phaseName:r,onConfirm:async l=>{await uit(e,t,l,i,o),await n()},onCancel:()=>s(!1)})]})}var GF=E($(),1),OJn={done:{label:"Done",color:"success"},current:{label:"In Progress",color:"info"},upcoming:{label:"Upcoming",color:"default"}},BJn={alignItems:"center",mb:1},FJn={fontWeight:500},$Jn={fontWeight:500,fontSize:"0.75rem"};function J2r({phase:e,index:t,status:r,itemId:n,onRewind:i}){let o=OJn[r],a=r==="done"&&n!==void 0&&i;return(0,GF.jsxs)(Rt,{direction:"row",spacing:1,sx:BJn,children:[(0,GF.jsxs)(Le,{sx:FJn,children:["Phase ",t+1,": ",e.name]}),(0,GF.jsx)(rn,{label:o.label,size:"small",color:o.color,sx:$Jn}),a&&(0,GF.jsx)(Q2r,{itemId:n,phaseNumber:t+1,phaseName:e.name,onRewound:i})]})}var cX=E($(),1),zJn={color:"text.secondary",fontSize:"0.75rem",letterSpacing:"0.08em",display:"block"},HJn={color:"text.secondary",fontSize:"0.75rem",fontFamily:"monospace",display:"block"};function eSr({sessions:e}){return(0,cX.jsxs)(ie,{sx:{mb:1},children:[(0,cX.jsx)(Le,{variant:"overline",sx:zJn,children:"Sessions"}),e.map(t=>(0,cX.jsx)(Le,{sx:HJn,children:`${t.hostname} / ${t.osUser} / ${t.claudeSessionId}`},t.claudeSessionId))]})}var rSr=E($(),1),UJn={color:"text.secondary",fontSize:"0.75rem",mb:1,display:"block"};function tSr({usage:e}){return(0,rSr.jsx)(WF,{total:e,sx:UJn})}var VF=E($(),1);function nSr({tasks:e,marker:t}){return(0,VF.jsx)(ty,{disablePadding:!0,sx:{ml:.5},children:e.map(r=>(0,VF.jsxs)(LS,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,VF.jsx)(Le,{component:"span",sx:{color:"text.secondary",mr:1},children:t}),(0,VF.jsx)(Ou,{component:"span",className:"markdown",html:j9(r.task)})]},r.task))})}var g_=E($(),1);function iSr({phase:e,index:t,status:r,itemId:n,usage:i,sessions:o,onRewind:a}){let s=e.manualChecks??[],l=T1e(t);return(0,g_.jsxs)(tn,{variant:"outlined",id:l.id,sx:{...j2r(r),...l.sx},children:[(0,g_.jsx)(J2r,{phase:e,index:t,status:r,itemId:n,onRewind:a}),i&&(0,g_.jsx)(tSr,{usage:i}),(0,g_.jsx)(nSr,{tasks:e.tasks,marker:Y2r[r]}),s.length>0&&(0,g_.jsx)(q2r,{checks:s}),o&&o.length>0&&(0,g_.jsx)(eSr,{sessions:o})]})}var uX={name:"Review",tasks:[]};function w1e(e){return e.at(-1)?.name===uX.name?e.length-1:e.length}function k1e(e,t){if(t===void 0)return"upcoming";let r=e+1;return r<t?"done":r===t?"current":"upcoming"}function oSr(e=[]){return new Map(e.map(t=>[t.phaseIdx,t]))}function aSr(e=[]){let t=new Map;for(let r of e){let n=t.get(r.phaseIdx);n?n.push(r):t.set(r.phaseIdx,[r])}return t}var lWe=E($(),1);function sSr({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){let a=oSr(n),s=aSr(i),l=w1e(e),u=(i??[]).filter(d=>d.phaseIdx>=l),f=l===e.length&&u.length>0?[...e,uX]:e;return(0,lWe.jsx)(Rt,{spacing:1.5,children:f.map((d,h)=>(0,lWe.jsx)(iSr,{phase:d,index:h,status:k1e(h,t),itemId:r,usage:a.get(h),sessions:h===l?u:s.get(h),onRewind:h<e.length?o:void 0},d.name))})}var EA=E($(),1),WJn={alignItems:"baseline",justifyContent:"space-between",mb:1},GJn={color:"text.secondary",display:"block",letterSpacing:"0.08em"};function lSr({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){return e.length===0?null:(0,EA.jsxs)(ie,{...wv("plan"),children:[(0,EA.jsxs)(Rt,{direction:"row",sx:WJn,children:[(0,EA.jsx)(Le,{variant:"overline",sx:GJn,children:"Plan"}),n&&n.length>0&&(0,EA.jsx)(G2r,{usage:n})]}),(0,EA.jsx)(sSr,{phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o})]})}var y_=E($(),1);function cSr({item:e,onRewind:t,onCommentDeleted:r}){return(0,y_.jsxs)(y_.Fragment,{children:[e.plan&&(0,y_.jsx)(lSr,{phases:e.plan,currentPhase:e.currentPhase,itemId:e.id,usage:e.phaseUsage,sessions:e.phaseSessions,onRewind:t}),(0,y_.jsx)(N2r,{gitRefs:e.gitRefs??[],conversations:e.conversations}),e.comments&&(0,y_.jsx)(U2r,{comments:e.comments,itemId:e.id,onCommentDeleted:r})]})}var qF=E($(),1);function uSr({item:e,onRewind:t,onCommentDeleted:r}){return(0,qF.jsxs)(ie,{sx:{pt:2,flex:1,minWidth:0},children:[(0,qF.jsx)(k2r,{description:e.description}),(0,qF.jsx)(w2r,{criteria:e.acceptanceCriteria}),(0,qF.jsx)(cSr,{item:e,onRewind:t,onCommentDeleted:r})]})}var fSr="item-detail";var fX={wideQuery:`@container ${fSr} (min-width: 760px)`,containerSx:{containerType:"inline-size",containerName:fSr},columnsSx:{display:"flex",columnGap:3}};function VJn(e){let t=e.plan??[];if(t.length===0)return[];let r=w1e(t),i=r===t.length&&(e.phaseSessions??[]).some(o=>o.phaseIdx>=r)?[...t,uX]:t;return[{id:TA.plan,label:"Phases"},...i.map((o,a)=>({id:T1e(a).id,label:`${a+1}`,title:o.name,status:k1e(a,e.currentPhase),nested:!0}))]}function dSr(e){let t=[];return e.description&&t.push({id:TA.description,label:"Description"}),e.acceptanceCriteria.length>0&&t.push({id:TA.acceptanceCriteria,label:"Acceptance Criteria"}),t.push(...VJn(e)),(e.gitRefs?.length??0)+(e.conversations?.length??0)>0&&t.push({id:TA.activity,label:"Activity"}),(e.comments?.length??0)>0&&t.push({id:TA.comments,label:"Comments"}),t}var hSr="1.3125rem",pSr={position:"relative",borderRadius:1,"&::after":{content:'""',position:"absolute",inset:0,borderRadius:"inherit",pointerEvents:"none"},"&:hover::after":{bgcolor:"action.hover"},"&:active::after":{bgcolor:"action.selected"}},qJn={...pSr,display:"block",flexShrink:0,maxWidth:"100%",px:1,py:.5,border:0,bgcolor:"transparent",fontSize:hSr,lineHeight:1.2,letterSpacing:"0.02em",textAlign:"left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"text.secondary"},jJn={...pSr,display:"flex",alignItems:"center",justifyContent:"center",fontSize:hSr,width:"2em",height:"2em",flexShrink:0,lineHeight:1,borderRadius:"50%",border:1,color:"text.primary"},YJn={borderColor:"text.primary",borderWidth:3},KJn={color:"text.primary",fontWeight:700,"&::after":{bgcolor:"action.selected"}};function mSr(e,t){let r=e.status&&C1e[e.status];return r?{...jJn,ml:1.5,bgcolor:r.bgcolor,borderColor:r.borderColor,borderWidth:r.ring?3:1,...t&&YJn}:{...qJn,...t&&KJn}}var ySr=E($(),1);function gSr({section:e,active:t,onSelect:r}){return(0,ySr.jsx)(pn,{sx:mSr(e,t),onClick:()=>r(e.id),title:e.title??e.label,"aria-current":t?"true":void 0,children:e.label})}function vSr(e,t=sX){return Tme(e,t)}var cWe=E($(),1),XJn=48,ZJn=260,QJn={display:"none",[fX.wideQuery]:{display:"flex"},position:"sticky",top:S1e,alignSelf:"flex-start",width:ZJn,flexShrink:0,maxHeight:`calc(100vh - ${XJn}px - ${S1e})`,alignItems:"flex-start",overflowY:"auto",overflowX:"hidden",py:2};function JJn(e){document.getElementById(e)?.scrollIntoView({behavior:"smooth",block:"start"})}function bSr({item:e,headerHeight:t}){let r=dSr(e),n=vSr(r.map(i=>i.id),t);return r.length===0?null:(0,cWe.jsx)(Rt,{component:"nav",spacing:1,sx:QJn,children:r.map(i=>(0,cWe.jsx)(gSr,{section:i,active:i.id===n,onSelect:JJn},i.id))})}var SSr=E($(),1);function xSr({to:e}){let t=Ni();return(0,SSr.jsx)(Dt,{"data-backlog-focus":"back",variant:"text",size:"small",onClick:()=>t(e),sx:{mb:2,textTransform:"none"},children:"\u2190 Back"})}var TSr=E(de(),1);var RA=E($(),1);function CSr({itemId:e,onDeleted:t}){let r=Pa(),n=yr(),[i,o]=(0,TSr.useState)(!1);return(0,RA.jsxs)(RA.Fragment,{children:[i&&(0,RA.jsx)(yi,{onConfirm:async()=>{await cit(e,r,n),await t()},onCancel:()=>o(!1)}),(0,RA.jsx)(Dt,{variant:"contained",color:"error",size:"small",onClick:()=>o(!0),children:"Delete"})]})}var uWe=E($(),1),wSr=e=>{let{value:t,options:r,colors:n,onChange:i}=e;return(0,uWe.jsx)(DS,{value:t,onChange:o=>i(o.target.value),size:"small",sx:{fontSize:"0.75rem",fontWeight:500,borderRadius:4,bgcolor:n[t].bg,color:n[t].text,"& .MuiSelect-select":{py:.5,px:1.5},"& .MuiSelect-icon":{color:"inherit"}},children:r.map(o=>(0,uWe.jsx)(ln,{value:o,children:o},o))})};var fWe=E($(),1),eei={todo:{bg:"action.selected",text:"text.primary"},"in-progress":{bg:"warning.main",text:"warning.contrastText"},done:{bg:"success.main",text:"success.contrastText"},wontdo:{bg:"error.main",text:"error.contrastText"}},tei=["todo","in-progress","done","wontdo"];function kSr({current:e,onStatusChange:t}){return t?(0,fWe.jsx)(wSr,{value:e,options:tei,colors:eei,onChange:t}):(0,fWe.jsx)(rn,{label:e,size:"small",color:Uye[e],sx:{fontWeight:500,fontSize:"0.75rem"}})}var lS=E($(),1),rei={alignItems:"center",color:"text.disabled",fontSize:"0.875rem"},nei={fontWeight:500,fontSize:"0.75rem"},iei={color:"text.secondary",fontSize:"0.75rem"};function _Sr({item:e,onStatusChange:t}){let r=Hye[e.type];return(0,lS.jsxs)(Rt,{direction:"row",spacing:1,sx:rei,children:[(0,lS.jsx)(Le,{variant:"body2",color:"text.disabled",children:oo(e.id)}),r&&(0,lS.jsx)(rn,{label:e.type,size:"small",color:r,sx:nei}),(0,lS.jsx)(kSr,{current:e.status,onStatusChange:t}),(0,lS.jsx)(mL,{jiraKey:e.jiraKey}),(0,lS.jsx)(pT,{githubIssue:e.githubIssue,origin:e.origin}),e.usageTotal&&(0,lS.jsx)(WF,{total:e.usageTotal,sx:iei})]})}var ESr=E($(),1),RSr=st((0,ESr.jsx)("path",{d:"M3 17v2h6v-2zM3 5v2h10V5zm10 16v-2h8v-2h-8v-2h-2v6zM7 9v2H3v2h4v2h2V9zm14 4v-2H11v2zm-6-4h2V7h4V5h-4V3h-2z"}),"Tune");var _1e=E(de(),1);var L0=E($(),1);function ASr({itemId:e}){let{launched:t,launch:r}=o1e(e),n=a_(),i=(0,_1e.useRef)(null),[o,a]=(0,_1e.useState)(!1),s=u=>u.stopPropagation(),l=Jye(n);return(0,L0.jsxs)(L0.Fragment,{children:[(0,L0.jsxs)(RS,{ref:i,variant:"outlined",size:"small",disabled:t,children:[(0,L0.jsx)(Dt,{startIcon:(0,L0.jsx)(RSr,{}),onClick:u=>{s(u),r([])},children:"Refine"}),l.length>0&&(0,L0.jsx)(Dt,{size:"small","aria-label":"Refine with a different harness",onClick:u=>{s(u),a(!0)},children:(0,L0.jsx)(bd,{})})]}),(0,L0.jsx)(e1e,{anchorEl:i.current,open:o,onClose:()=>a(!1),options:l,onSelect:u=>{a(!1),r(["--harness",u])},stop:s})]})}var jF=E(de(),1);function PSr(){let e=(0,jF.useRef)(null),[t,r]=(0,jF.useState)(!1);return(0,jF.useEffect)(()=>{let n=e.current;if(!n)return;let i=new IntersectionObserver(([o])=>r(!o.isIntersecting),{threshold:0});return i.observe(n),()=>i.disconnect()},[]),{sentinelRef:e,stuck:t}}var id=E($(),1),oei={justifyContent:"space-between",alignItems:"center",mb:2};function aei(e){return e.palette.mode==="dark"?"0 8px 8px -9px rgba(0, 0, 0, 0.8)":"0 6px 6px -7px rgba(0, 0, 0, 0.2)"}function sei(e){return t=>({position:"sticky",top:0,zIndex:1,bgcolor:"background.default",mx:-2,px:2,pb:2,borderBottom:1,borderColor:"divider",boxShadow:e?aei(t):"none",transition:t.transitions.create("box-shadow")})}function LSr({item:e,onDeleted:t,onStatusChange:r,ref:n}){let{sentinelRef:i,stuck:o}=PSr();return(0,id.jsxs)(id.Fragment,{children:[(0,id.jsx)(ie,{ref:i,sx:{height:0}}),(0,id.jsxs)(ie,{ref:n,sx:sei(o),children:[(0,id.jsxs)(Rt,{direction:"row",sx:oei,children:[(0,id.jsx)(xSr,{to:"/backlog"}),(0,id.jsxs)(Rt,{direction:"row",spacing:1,children:[Zye(e)&&(0,id.jsx)(y1e,{itemId:e.id}),(0,id.jsx)(ASr,{itemId:e.id}),(0,id.jsx)(CSr,{itemId:e.id,onDeleted:t})]})]}),(0,id.jsx)(Le,{variant:"h5",component:"h2",children:e.name}),(0,id.jsx)(_Sr,{item:e,onStatusChange:r})]})]})}var MSr=E(de(),1);function ISr(){let e=(0,MSr.useRef)(null),t=r0e(e,sX),r={[aWe]:`${t}px`};return{headerRef:e,headerHeight:t,style:r}}var v_=E($(),1);function DSr({item:e,onReload:t}){let r=Ni(),n=Pa(),i=yr(),{headerRef:o,headerHeight:a,style:s}=ISr();return _y("ItemDetail"),(0,v_.jsxs)(ie,{style:s,children:[(0,v_.jsx)(LSr,{ref:o,item:e,onDeleted:async()=>{await t(),r("/backlog")},onStatusChange:async f=>{await wL(e.id,f,n,i),await t()}}),(0,v_.jsx)(ie,{sx:fX.containerSx,children:(0,v_.jsxs)(ie,{sx:fX.columnsSx,children:[(0,v_.jsx)(uSr,{item:e,onRewind:t,onCommentDeleted:t}),(0,v_.jsx)(bSr,{item:e,headerHeight:a})]})})]})}var AA=E($(),1),lei={display:"flex",justifyContent:"center",py:6};function NSr({onReload:e}){let[t]=Uc(),r=t.get("cwd")||void 0,n=t.get("node")||void 0,i=Fn(),o=_c().nodes?.local,a=(0,E1e.useMemo)(()=>T2r(i,r,n,o),[i,r,n,o]);return _y("ItemRoute"),(0,AA.jsx)(JH.Provider,{value:a,children:(0,AA.jsx)(mf.Provider,{value:a.selectedNode,children:(0,AA.jsx)(cei,{onReload:e})})})}function cei({onReload:e}){let{id:t}=KTe(),r=Number.NaN;try{r=cte(t??"")}catch{r=Number.NaN}let{item:n,loading:i,reload:o}=v2r(r),a=(0,E1e.useCallback)(async()=>{await Promise.all([o(),e()])},[o,e]);return i?(0,AA.jsx)(ie,{sx:lei,children:(0,AA.jsx)(io,{})}):n?(0,AA.jsx)(DSr,{item:n,onReload:a}):null}var PA=E($(),1);function OSr({items:e,loading:t,error:r,socket:n,onReload:i}){return(0,PA.jsxs)(Y5,{children:[(0,PA.jsx)(Ts,{index:!0,element:(0,PA.jsx)(y2r,{items:e,loading:t,error:r,socket:n,onReload:i})}),(0,PA.jsx)(Ts,{path:"items/:id",element:(0,PA.jsx)(NSr,{onReload:i})})]})}var M0=E(de(),1);var BSr=new Map;function FSr(e,t,r){return JSON.stringify([e??null,t,r??null])}var dX={get(e,t,r){return BSr.get(FSr(e,t,r))},set(e,t,r,n){BSr.set(FSr(e,t,n),r)}};function uei(e,t){return e===t?!0:!e||!t?!1:e.tokensUp===t.tokensUp&&e.tokensDown===t.tokensDown&&e.activeMs===t.activeMs&&e.peakContextPct===t.peakContextPct}function $Sr(e,t){return e===t?!0:e.length!==t.length?!1:e.every((r,n)=>{let i=t[n];return r.id===i.id&&r.type===i.type&&r.name===i.name&&r.status===i.status&&r.starred===i.starred&&uei(r.usageTotal,i.usageTotal)})}function zSr({setItems:e,setLoading:t,setError:r}){return{onLoaded:n=>{e(i=>$Sr(i,n)?i:n),t(!1),r(null)},onError:n=>{t(!1),r(n)}}}async function HSr(e,t,r,n){let i=await gT({cwd:e,node:n,signal:r,filter:t});return r.aborted||dX.set(e,t,i,n),i}function USr(e,t,r,{onLoaded:n,onError:i},o){return(async()=>{try{let a=await HSr(e,t,r,o);r.aborted||n(a)}catch(a){r.aborted||i(a instanceof Error?a.message:"Failed to load.")}})()}var fei=5e3;function WSr(e,t,r,n){let i=new AbortController,o=!1,a=()=>{o||(o=!0,USr(e,t,i.signal,r,n).finally(()=>{o=!1}))};a();let s=setInterval(a,fei);return()=>{i.abort(),clearInterval(s)}}function GSr(){let e=Pa(),t=yr(),[r]=MF(),n=dX.get(e,r,t),i=n??[],o=n===void 0,[a,s]=(0,M0.useState)(i),[l,u]=(0,M0.useState)(o),[f,d]=(0,M0.useState)(null),[h,p]=(0,M0.useState)(e),[m,g]=(0,M0.useState)(t),[y,v]=(0,M0.useState)(r);(e!==h||t!==m||r!==y)&&(p(e),g(t),v(r),s(i),u(o),d(null));let b=(0,M0.useCallback)(async()=>{let x=await gT({cwd:e,node:t,filter:r});s(x),dX.set(e,r,x,t),u(!1)},[e,t,r]);return(0,M0.useEffect)(()=>WSr(e,r,zSr({setItems:s,setLoading:u,setError:d}),t),[e,t,r]),{items:a,loading:l,error:f,reload:b}}var YF=E($(),1);function VSr({socket:e}){let{items:t,loading:r,error:n,reload:i}=GSr();return wre(!r),(0,YF.jsx)(YUe.Provider,{value:e.sessions,children:(0,YF.jsx)(eWe.Provider,{value:e.selectSession,children:(0,YF.jsx)(Y5,{children:(0,YF.jsx)(Ts,{path:"/*",element:(0,YF.jsx)(OSr,{items:t,loading:r,error:n,socket:e,onReload:i})})})})})}var dWe=E($(),1);function qSr({socket:e}){return(0,dWe.jsx)(fz,{maxWidth:"lg",sx:{py:3,px:2},children:(0,dWe.jsx)(VSr,{socket:e})})}var Mi=E($(),1);function jSr({socket:e}){return _y("AppRoutes"),(0,Mi.jsxs)(Mi.Fragment,{children:[(0,Mi.jsx)(ecr,{}),(0,Mi.jsx)(Y5,{children:(0,Mi.jsxs)(Ts,{element:(0,Mi.jsx)(ast,{socket:e}),children:[(0,Mi.jsx)(Ts,{path:"sessions",element:(0,Mi.jsx)(vvr,{socket:e})}),(0,Mi.jsx)(Ts,{path:"backlog/*",element:(0,Mi.jsx)(qSr,{socket:e})}),(0,Mi.jsx)(Ts,{path:"next",element:(0,Mi.jsx)(elr,{sessions:e.sessions,selectSession:e.selectSession})}),(0,Mi.jsx)(Ts,{path:"news",element:(0,Mi.jsx)(lsr,{})}),(0,Mi.jsx)(Ts,{path:"releases",element:(0,Mi.jsx)(Xlr,{})}),(0,Mi.jsx)(Ts,{path:"usage",element:(0,Mi.jsx)(nxr,{})}),(0,Mi.jsx)(Ts,{path:"backups",element:(0,Mi.jsx)(pst,{})}),(0,Mi.jsx)(Ts,{path:"config",element:(0,Mi.jsx)(mct,{})}),(0,Mi.jsx)(Ts,{path:"updates",element:(0,Mi.jsx)(hbr,{reconnecting:e.reconnecting,selectSession:e.selectSession})}),(0,Mi.jsx)(Ts,{path:"diff",element:(0,Mi.jsx)(Ear,{socket:e})}),(0,Mi.jsx)(Ts,{path:"file",element:(0,Mi.jsx)(nsr,{socket:e})}),(0,Mi.jsx)(Ts,{path:"*",element:(0,Mi.jsx)(tCe,{to:"/sessions",replace:!0})})]})})]})}var M1e=E(de(),1);var L1e=E(de(),1);function YSr(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 b_=E($(),1),dei={display:"flex",gap:1,alignItems:"center",minWidth:0},hei={display:"flex",gap:1,alignItems:"baseline",minWidth:0,overflow:"hidden"},pei={fontFamily:"monospace",fontSize:13,whiteSpace:"nowrap"},mei={fontFamily:"monospace",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function gei(e){let t=e.lastIndexOf("/");return t===-1?{dir:"",basename:e}:{dir:e.slice(0,t),basename:e.slice(t+1)}}function KSr({files:e,highlight:t,onHighlight:r,onSelect:n}){return(0,b_.jsx)(zp,{dense:!0,sx:{py:0},children:e.map((i,o)=>{let{dir:a,basename:s}=gei(i);return(0,b_.jsxs)(ln,{selected:o===t,onMouseEnter:()=>r(o),onClick:()=>n(i),sx:dei,children:[(0,b_.jsx)(tB,{path:i}),(0,b_.jsxs)(ie,{sx:hei,children:[(0,b_.jsx)(Le,{component:"span",sx:pei,children:s}),(0,b_.jsx)(Le,{component:"span",color:"text.secondary",sx:mei,children:a})]})]},i)})})}var R1e=E($(),1),yei={maxHeight:420,overflowY:"auto"},vei={px:2,py:2,fontSize:13};function XSr({message:e,files:t,highlight:r,onHighlight:n,onSelect:i}){return(0,R1e.jsx)(ie,{sx:yei,children:e?(0,R1e.jsx)(Le,{color:"text.secondary",sx:vei,children:e}):(0,R1e.jsx)(KSr,{files:t,highlight:r,onHighlight:n,onSelect:i})})}var ZSr=E($(),1),bei={mt:6,alignSelf:"flex-start"};function A1e({onClose:e,onEntered:t,centered:r=!1,children:n}){return(0,ZSr.jsx)(Wl,{open:!0,onClose:e,maxWidth:"sm",fullWidth:!0,slotProps:{paper:{sx:r?void 0:bei},transition:{onEntered:t}},children:n})}var P1e=E(de(),1);var QSr={files:[],loading:!1,error:!1};function JSr(e,t){let[r,n]=(0,P1e.useState)(QSr),i=yr();return(0,P1e.useEffect)(()=>{if(!e){n(QSr);return}let o=!1;return n(s=>({...s,loading:!0})),(async()=>{try{let s=await fetch(qr(`/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 LA=E($(),1);function xei(e,t,r){let n=new URLSearchParams({path:e});return t&&n.set("cwd",t),t&&r&&n.set("node",r),`/file?${n}`}function eTr({onClose:e}){let{worktreeNode:t}=Fn();return(0,LA.jsx)(mf.Provider,{value:t,children:(0,LA.jsx)(Sei,{onClose:e})})}function Sei({onClose:e}){let{worktreeCwd:t,worktreeNode:r}=Fn(),[n,i]=(0,L1e.useState)(""),o=JSr(t,n),a=Ni(),s=(0,L1e.useRef)(null),l=p=>a(xei(p,t,r)),{highlight:u,setHighlight:f,onKeyDown:d}=f_(o.files,n,l,e),h=p=>{l(p),e()};return(0,LA.jsxs)(A1e,{onClose:e,onEntered:()=>s.current?.focus(),children:[(0,LA.jsx)(hT,{autoFocus:!0,inputRef:s,value:n,onChange:i,onKeyDown:d,placeholder:"Search files by name..."}),(0,LA.jsx)(XSr,{message:YSr(t,n,o),files:o.files,highlight:u,onHighlight:f,onSelect:h})]})}function tTr(e){Eo(qn("quickOpen").matches,e)}var nTr=E($(),1);function rTr(){let[e,t]=(0,M1e.useState)(!1);return tTr((0,M1e.useCallback)(()=>t(!0),[])),e?(0,nTr.jsx)(eTr,{onClose:()=>t(!1)}):null}var I1e=E($(),1);function iTr({notice:e,onClose:t,onView:r}){let n=e?.sessionId??null;return(0,I1e.jsx)(pl,{open:e!==null,autoHideDuration:6e3,onClose:t,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,I1e.jsx)(gi,{severity:"success",variant:"filled",onClose:t,action:n!==null?(0,I1e.jsx)(Dt,{color:"inherit",size:"small",onClick:()=>r(n),children:"View"}):void 0,children:e?.message})})}var mX=E(de(),1);function oTr(e){let t=["claude"];return e.exposeCodexActions&&t.push("codex"),e.exposePiActions&&t.push("pi"),t}var vTr=E(de(),1);var aTr=E($(),1),sTr=st((0,aTr.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 x_="0.932.1";var Tei={connected:"success.main",connecting:"warning.main",disconnected:"error.main","version-blocked":"error.main"};function lTr(e){return e?Tei[e]:"success.main"}function cTr(e){return e.split("-")[0].split(".").map(Number)}function uTr(e,t){if(!e||!t||e===t)return;let r=cTr(e),n=cTr(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 D1e=E(de(),1),hWe=(0,D1e.createContext)(null);function N1e(){return(0,D1e.useContext)(hWe)}var MA=E($(),1),Cei={height:16,fontSize:10},wei={opacity:.6,fontSize:"0.85em"};function kei(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 hX({nodes:e,name:t,showVersion:r=!1}){let n=N1e()??x_,i=e.links.find(a=>a.name===t),o=uTr(i?.peerVersion,n);return(0,MA.jsx)(lr,{title:kei(e,t),placement:"right",children:(0,MA.jsxs)(ie,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.75},children:[(0,MA.jsx)(sTr,{sx:{fontSize:8,color:lTr(i?.state)}}),t,r&&i?.peerVersion&&(0,MA.jsxs)(ie,{component:"span",sx:wei,children:["v",i.peerVersion]}),o&&(0,MA.jsx)(rn,{label:o,size:"small",color:o==="behind"?"warning":"info",sx:Cei})]})})}var IA=E($(),1),_ei={opacity:.6},Eei={display:"inline-flex",alignItems:"center",gap:.5,px:.5,border:1,borderStyle:"dashed",borderRadius:1};function fTr({nodes:e,name:t,clone:r}){let n=(0,IA.jsx)(hX,{nodes:e,name:t});return r.kind==="cloned"?n:r.kind==="unavailable"?(0,IA.jsx)(ie,{component:"span",sx:_ei,children:n}):(0,IA.jsx)(lr,{title:NF(t,r.cloneTarget),children:(0,IA.jsxs)(ie,{component:"span",sx:Eei,children:[(0,IA.jsx)(DF,{sx:{fontSize:14}}),n]})})}var hTr=E($(),1),Rei={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 dTr({value:e,label:t,checked:r,autoFocus:n,onSelect:i}){return(0,hTr.jsx)(pn,{role:"radio","aria-checked":r,"data-value":e,tabIndex:r?0:-1,autoFocus:n&&r,onClick:i,sx:Rei,children:t})}var pTr={ArrowRight:1,ArrowLeft:-1};function Aei(e,t,r){if(e.key==="Tab"){let n=t+(e.shiftKey?-1:1);return n>=0&&n<r?n:void 0}return(t+pTr[e.key]+r)%r}function mTr(e,t,r,n){return i=>{if(i.key==="ArrowUp"||i.key==="ArrowDown"){if(!n)return;i.preventDefault(),n();return}if(i.key!=="Tab"&&!pTr[i.key]){E2(i);return}let o=Aei(i,e.indexOf(t),e.length);o!==void 0&&(i.preventDefault(),r(e[o]),i.currentTarget.querySelector(`[data-value="${e[o]}"]`)?.focus())}}var gTr=E(de(),1);function KF(e){return e?.querySelector('[aria-checked="true"]')}function yTr(e,t){(0,gTr.useEffect)(()=>{let r=e.current;if(!r?.contains(document.activeElement))return;let n=KF(r);n&&n!==document.activeElement&&n.focus()},[e,t])}var pWe=E($(),1),Pei={border:1,borderColor:"divider",borderRadius:1,height:40,p:"2px",flexShrink:0};function O1e({label:e,options:t,value:r,onChange:n,optionLabel:i=u=>u,groupRef:o,autoFocus:a,onTrack:s,onToggleRow:l}){return yTr(o,r),(0,pWe.jsx)(Rt,{ref:o,direction:"row",role:"radiogroup","aria-label":e,spacing:"2px",onFocus:s,onKeyDown:mTr(t,r,n,l),sx:Pei,children:t.map(u=>(0,pWe.jsx)(dTr,{value:u,label:i(u),checked:u===r,autoFocus:a,onSelect:()=>n(u)},u))})}var mWe=E($(),1);function bTr({value:e,onChange:t,cloneState:r}){let{nodes:n,names:i,visible:o}=_c(),a=(0,vTr.useRef)(null);return!o||!n||!e?null:(0,mWe.jsx)(O1e,{label:"Machine",options:i,value:e,onChange:t,optionLabel:s=>(0,mWe.jsx)(fTr,{nodes:n,name:s,clone:r(s)}),groupRef:a,autoFocus:!1,onTrack:()=>{}})}var STr=E($(),1);function xTr({value:e,onChange:t,placeholder:r,inputRef:n,autoFocus:i,onTrack:o}){return(0,STr.jsx)(Qn,{value:e,onChange:a=>t(a.target.value),onKeyDown:E2,onFocus:o,onSelect:o,inputRef:n,placeholder:r,autoFocus:i,fullWidth:!0,multiline:!0,minRows:3,maxRows:12,slotProps:{htmlInput:{"aria-label":"Prompt"},input:{sx:{fontSize:14}}}})}var kTr=E(de(),1);var cS={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:kge,submitLabel:"Start session"},design:{placeholder:"Describe the design task...",submitLabel:"Start design"}},TTr=Object.keys(cS);var gWe=E($(),1);function CTr({anchor:e,harness:t,harnesses:r,onPick:n,onClose:i}){return(0,gWe.jsx)(Os,{open:e!==null,anchorEl:e,onClose:i,slotProps:{list:{dense:!0,"aria-label":"Harness"}},children:r.map(o=>(0,gWe.jsx)(ln,{role:"menuitemradio","aria-checked":o===t,selected:o===t,onClick:()=>{n(o),i()},sx:{fontSize:13},children:Mu(o)},o))})}var DA=E($(),1);function wTr(e){return t=>t==="prompt"&&e?(0,DA.jsxs)(DA.Fragment,{children:["prompt",(0,DA.jsx)(ie,{component:"span",sx:{fontWeight:400,whiteSpace:"pre"},children:` \xB7 ${Mu(e)}`}),(0,DA.jsx)(bd,{sx:{fontSize:18,mr:-.75}})]}):t}var NA=E($(),1);function _Tr({draft:e,harness:t,harnesses:r,focus:n}){let[i,o]=(0,kTr.useState)(null),a=e.mode==="prompt"&&r.length>1,s=()=>o(KF(n.modeRef.current)??null),l=u=>{a&&u==="prompt"?s():e.setMode(u)};return(0,NA.jsxs)(NA.Fragment,{children:[(0,NA.jsx)(O1e,{label:"Mode",options:TTr,value:e.mode,onChange:l,optionLabel:wTr(r.length>1?t:void 0),groupRef:n.modeRef,autoFocus:n.autoFocus==="mode",onTrack:n.trackMode,onToggleRow:a?s:void 0}),(0,NA.jsx)(CTr,{anchor:i,harness:t,harnesses:r,onPick:e.setHarness,onClose:()=>o(null)})]})}var BTr=E(de(),1);var yWe=E($(),1),Lei={zIndex:e=>e.zIndex.modal+1};function ETr({open:e,anchor:t,children:r}){return(0,yWe.jsx)(W6,{open:e,anchorEl:t,placement:"bottom-start",sx:Lei,children:(0,yWe.jsx)(tn,{sx:{maxHeight:240,overflowY:"auto",width:t?.clientWidth},onMouseDown:n=>n.preventDefault(),children:r})})}function RTr(e){return{htmlInput:{role:"combobox","aria-label":"Repo","aria-expanded":e},input:{sx:{fontSize:13,height:40}}}}var ATr=E(H$(),1);function PTr({open:e,highlighted:t,accept:r,close:n,navigate:i,openList:o}){return a=>{if(!e){if(a.key==="ArrowDown"){a.preventDefault(),o();return}E2(a);return}if(a.key!=="Escape"){if(a.key==="Enter"){if(a.preventDefault(),t===void 0)return;(0,ATr.flushSync)(()=>{r(t),n()}),E2(a);return}if(a.key!=="Tab"){i(a);return}t!==void 0&&r(t),n()}}}function LTr(e,t){let r=t.trim().toLowerCase();return r?e.filter(n=>Tv(n).toLowerCase().includes(r)):e}var vWe=E(de(),1);function MTr(){let[e,t]=(0,vWe.useState)(!1),[r,n]=(0,vWe.useState)("");return{open:e,query:r,show:()=>t(!0),filterBy:i=>{n(i),t(!0)},close:()=>{t(!1),n("")}}}var DTr=E(de(),1);var ITr=e=>e?Tv(e):"";function NTr(e){let[t,r]=(0,DTr.useState)(()=>ITr(e));return{text:t,setText:r,showRepo:n=>r(ITr(n))}}function OTr(e,t,r){let n=MTr(),i=NTr(t),o=LTr(e,n.query),a=f=>{r(f),i.showRepo(f)},s=f_(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:PTr({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 XF=E($(),1);function FTr({repos:e,value:t,onChange:r,inputRef:n,autoFocus:i,onTrack:o}){let a=OTr(e,t,r),s=(0,BTr.useRef)(null);return(0,XF.jsxs)(ie,{ref:s,sx:{flex:1,minWidth:0},children:[(0,XF.jsx)(Qn,{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:RTr(a.open)}),(0,XF.jsx)(ETr,{open:a.open,anchor:s.current,children:(0,XF.jsx)(p1e,{repos:a.filtered,selected:t,highlight:a.highlight,onHighlight:a.setHighlight,onSelect:a.pick})})]})}var S_=E($(),1);function $Tr({cloneState:e,...t}){let{draft:r,focus:n}=t,{repos:i}=Fn();return(0,S_.jsxs)(Rt,{spacing:1,sx:{p:1},children:[(0,S_.jsx)(xTr,{value:r.prompt,onChange:r.setPrompt,placeholder:cS[r.mode].placeholder,inputRef:n.promptRef,autoFocus:n.autoFocus==="prompt",onTrack:n.trackPrompt}),(0,S_.jsxs)(Rt,{direction:"row",spacing:1,sx:{alignItems:"flex-start"},children:[(0,S_.jsx)(FTr,{repos:i,value:r.cwd,onChange:r.setCwd,inputRef:n.repoRef,autoFocus:n.autoFocus==="repo",onTrack:n.trackRepo}),(0,S_.jsx)(_Tr,{...t})]}),(0,S_.jsx)(bTr,{value:r.node,onChange:r.setNode,cloneState:e})]})}var ZF=E($(),1),Mei=["Enter start","Shift+Enter newline","Esc close"],Iei={alignItems:"center",px:1.5,py:1,borderTop:1,borderColor:"divider",bgcolor:"action.hover"};function zTr({submitLabel:e,disabled:t=!1,loading:r=!1}){return(0,ZF.jsxs)(Rt,{direction:"row",spacing:1.5,sx:Iei,children:[(0,ZF.jsx)(Rt,{direction:"row",spacing:1.5,sx:{mr:"auto"},children:Mei.map(n=>(0,ZF.jsx)(Le,{variant:"caption",color:"text.secondary",children:n},n))}),(0,ZF.jsx)(Dt,{type:"submit",variant:"contained",size:"small",disabled:t,loading:r,children:e})]})}var OA=E(de(),1);function HTr(e,t){let r=(0,OA.useRef)(e),n=(0,OA.useRef)(null),i=(0,OA.useRef)(null),o=(0,OA.useRef)(null),a=(0,OA.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:KF(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 Dei(e,t,r){return e?r.kind==="cloned"?{kind:"launch",cwd:r.cwd}:r.kind==="clonable"?{kind:"clone",prompt:g1e(r,t)}:{kind:"blocked"}:{kind:"launch",cwd:e}}function UTr(e,t){let{names:r,visible:n}=_c(),i=f1e(t,n?r:[void 0]);return{cloneState:i,target:Dei(t,e,i(e))}}function WTr({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}]:[];Vcr(cS[e].sessionMode,n,(u,f)=>o.onCreateAssist(u,f,...l),()=>{},r)}function GTr(e,t,r,n){return r.kind==="blocked"||e.modePending?!1:r.kind==="clone"?(n1e(r.prompt,n.onCreateAssist),!0):(WTr({mode:e.mode,harness:t,prompt:e.prompt,cwd:r.cwd,node:e.node},n),e.clear(),!0)}var B1e=E(de(),1);function VTr(e,t){let[r,n]=(0,B1e.useState)(!1);return(0,B1e.useEffect)(()=>{!r||e.modePending||(n(!1),t())},[r,e.modePending,t]),()=>{e.modePending?n(!0):t()}}function qTr(e,t,r,n,i){let o=VTr(e,()=>{GTr(e,t,r,n)&&i()});return a=>{a.preventDefault(),o()}}var pX=E(de(),1);function jTr(e,t){let r=(0,pX.useRef)(e),n=(0,pX.useRef)(null);return(0,pX.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 KTr=E($(),1),Nei={border:0,margin:0,padding:0,minWidth:0};function YTr({loading:e,restoreFocus:t,children:r}){let n=jTr(e,t);return(0,KTr.jsx)("fieldset",{disabled:e,style:Nei,onFocus:n,children:r})}var BA=E($(),1);function XTr({draft:e,launchers:t,onClose:r}){let n=HTr(e.focus,e.setFocus),i=oTr(a_()),o=i.includes(e.harness)?e.harness:"claude",{target:a,cloneState:s}=UTr(e.node,e.cwd),l=qTr(e,o,a,t,r);return(0,BA.jsx)(A1e,{onClose:r,onEntered:n.restore,centered:!0,children:(0,BA.jsx)("form",{onSubmit:l,children:(0,BA.jsxs)(YTr,{loading:e.modePending,restoreFocus:n.restore,children:[(0,BA.jsx)($Tr,{draft:e,harness:o,harnesses:i,focus:n,cloneState:s}),(0,BA.jsx)(zTr,{submitLabel:a.kind==="clone"?"Clone":cS[e.mode].submitLabel,disabled:a.kind==="blocked",loading:e.modePending})]})})})}var F1e=E(de(),1);var Oei=1e3;async function Bei(e){try{let t=e?`?cwd=${encodeURIComponent(e)}`:"",n=await(await fetch(`/api/new-session-defaults${t}`)).json();return Object.hasOwn(cS,n?.mode)?n.mode:null}catch{return null}}function ZTr(e,t=0){let[r,n]=(0,F1e.useState)(null);return(0,F1e.useEffect)(()=>{let i=!1,o,a=async()=>{let s=await Bei(e);i||(s?n({cwd:e,opens:t,mode:s}):o=setTimeout(a,Oei))};return a(),()=>{i=!0,clearTimeout(o)}},[e,t]),r?{mode:r.mode,pending:r.cwd!==e||r.opens!==t}:null}function QTr(e,{visible:t,names:r,selected:n}){if(t)return e&&r.includes(e)?e:n}var uS=E(de(),1),JTr={field:"prompt",selectionStart:0,selectionEnd:0};function eCr(){let[e,t]=(0,uS.useState)(""),[r,n]=(0,uS.useState)(),[i,o]=(0,uS.useState)(),[a,s]=(0,uS.useState)("claude"),[l,u]=(0,uS.useState)(),[f,d]=(0,uS.useState)(JTr),h=(0,uS.useCallback)(()=>{t(""),n(void 0),o(void 0),u(void 0),d(JTr)},[]);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 tCr(e,t=ZTr){let{selectedCwd:r}=Fn(),n=_c(),i=eCr(),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:QTr(i.node,n)}:null}function rCr(e){Eo(qn("newSession").matches,e)}var nCr=E(de(),1);function iCr(e,t){let{selectedCwd:r}=Fn(),[n,i]=Uc(),o=n.get("new"),a=n.get("newCwd")??r,{setPrompt:s,setCwd:l,setFocus:u}=e??{};(0,nCr.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 aCr=E($(),1);function oCr({launchers:e}){let[t,r]=(0,mX.useState)(!1),[n,i]=(0,mX.useState)(0),o=tCr(n),a=(0,mX.useCallback)(()=>{r(!0),i(s=>s+1)},[]);return rCr(a),iCr(o,a),!t||!o?null:(0,aCr.jsx)(XTr,{draft:o,launchers:e,onClose:()=>r(!1)})}var $1e=E($(),1);function sCr({reconnecting:e}){return(0,$1e.jsx)(pl,{open:e,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,$1e.jsx)(gi,{severity:"info",variant:"filled",icon:(0,$1e.jsx)(io,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var Rv=E($(),1);function lCr({socket:e,onViewLaunchedSession:t}){return(0,Rv.jsxs)(Rv.Fragment,{children:[(0,Rv.jsx)(rTr,{}),(0,Rv.jsx)(oCr,{launchers:{onCreate:e.createSession,onCreateDesign:e.createDesignSession,onCreateHarness:e.createHarnessSession,onCreateAssist:e.createAssistSession}}),(0,Rv.jsx)(sCr,{reconnecting:e.reconnecting}),(0,Rv.jsx)(Xl,{error:e.error,onClose:e.clearError}),(0,Rv.jsx)(iTr,{notice:e.success,onClose:e.clearSuccess,onView:t})]})}var Av=E(de(),1);var Fei=6e4;function $ei(e,t,r){return t.map(n=>e.find(i=>i.name===n)??{name:n,local:n===r,loading:!0})}function cCr(e){let t=e.nodes?.local,r=e.names.join(`
4016
+ `,hxr={...dxr,borderColor:"warning.main",borderLeft:4,borderLeftColor:"warning.main",bgcolor:e=>po(e.palette.warning.main,.08)},PQn={...hxr,borderLeftColor:"transparent",backgroundImage:e=>`repeating-linear-gradient(to bottom, ${e.palette.warning.main} 0 ${uxr}px, transparent ${uxr}px ${XUe}px)`,backgroundOrigin:"border-box",backgroundRepeat:"repeat-y",backgroundSize:`4px ${XUe}px`,animation:`${AQn} 0.9s linear infinite`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}},fxr={"& .MuiButtonBase-root:focus-visible":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:"2px"}},xv={card:dxr,inProgressCard:hxr,inProgressRunningCard:PQn,main:{minWidth:0,textAlign:"left"},stretchedNameLink:{display:"block",fontWeight:500,color:"text.primary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",...RQn},meta:{display:"flex",alignItems:"center",gap:1,...cxr,width:"fit-content",maxWidth:"100%",fontSize:"0.75rem",color:"text.secondary","& a, & p":{fontSize:"0.75rem"},...fxr},id:{color:"text.disabled"},actions:{display:"flex",alignItems:"center",gap:1,flexShrink:0,...cxr,...fxr}};function Xye(e){let t=e.peakContextPct>0?` \xB7 \u2593 ${Math.round(e.peakContextPct)}%`:"";return`\u2191 ${lh(e.tokensUp)} \u2193 ${lh(e.tokensDown)} \xB7 \u23F1 ${E0(e.activeMs)}${t}`}var mxr=E($(),1),LQn={width:6,height:6,borderRadius:"50%",bgcolor:"currentColor",flexShrink:0};function pxr(){return(0,mxr.jsx)(ie,{component:"span",sx:LQn})}var QK=E($(),1),gxr={display:"inline-flex",alignItems:"center",gap:.625,color:"warning.main",fontWeight:500,fontSize:"0.75rem",whiteSpace:"nowrap",borderRadius:1};function yxr({item:e,openSession:t,onSelectSession:r}){let n=Ni();if(e.status!=="in-progress"||e.currentPhase==null)return null;let i=`phase ${e.currentPhase} of ${e.totalPhases??e.currentPhase}`,o=(0,QK.jsx)(pxr,{});if(!t)return(0,QK.jsxs)(ie,{component:"span",sx:gxr,children:[o,i]});let a=()=>{r?.(t.id),n("/sessions")};return(0,QK.jsxs)(pn,{sx:gxr,title:`Open the ${t.status} session`,onClick:a,children:[o,i]})}var wp=E($(),1),MQn={display:"inline-flex",alignItems:"center",gap:.5},IQn={width:8,height:8,borderRadius:"50%",flexShrink:0},DQn={whiteSpace:"nowrap"};function NQn({type:e}){let t=Hye[e];return(0,wp.jsxs)(ie,{component:"span",sx:MQn,children:[(0,wp.jsx)(ie,{component:"span",sx:{...IQn,bgcolor:`${t}.main`}}),e]})}function OQn({item:e}){return e.usageTotal?(0,wp.jsx)(lr,{title:Xye(e.usageTotal),children:(0,wp.jsx)(ie,{component:"span",sx:DQn,children:`\u23F1 ${E0(e.usageTotal.activeMs)}`})}):null}function vxr({item:e,openSession:t,onSelectSession:r}){return(0,wp.jsxs)(ie,{sx:xv.meta,children:[(0,wp.jsx)(ie,{component:"span",sx:xv.id,children:oo(e.id)}),(0,wp.jsx)(NQn,{type:e.type}),(0,wp.jsx)(yxr,{item:e,openSession:t,onSelectSession:r}),(0,wp.jsx)(mL,{jiraKey:e.jiraKey}),(0,wp.jsx)(pT,{githubIssue:e.githubIssue,variant:"icon"}),(0,wp.jsx)(OQn,{item:e})]})}function bxr(e,t){return e.filter(r=>TB(r)?.itemId===t).reduce((r,n)=>r&&r.startedAt>=n.startedAt?r:n,void 0)}var Sxr=E($(),1),BQn={todo:"\u25CB","in-progress":"\u25D4",done:"\u25CF",wontdo:"\u2715"},FQn={todo:"text.disabled","in-progress":"warning.main",done:"success.main",wontdo:"error.main"};function $Qn(e){return{fontSize:"1.125rem",flexShrink:0,color:FQn[e]}}function xxr({status:e}){return(0,Sxr.jsx)(Le,{sx:$Qn(e),children:BQn[e]})}function Zye(e){return e.status==="todo"||e.status==="in-progress"}function zQn(e){if(e.status==="done")return e.totalPhases;if(e.status==="in-progress")return e.currentPhase}function HQn(e,t,r){return r?"complete":e<t?"done":e===t?"current":"remaining"}function Txr(e){let t=e.totalPhases,r=zQn(e);if(!t||r==null)return;let n=e.status==="done";return{reached:r,total:t,segments:Array.from({length:t},(i,o)=>({phase:o+1,kind:HQn(o+1,r,n)}))}}var IF=E($(),1),UQn={done:"text.secondary",current:"warning.main",remaining:"divider",complete:"success.main"},WQn={display:"inline-flex",alignItems:"center",gap:.5,flexShrink:0},GQn={fontSize:"0.6875rem",color:"text.secondary",fontVariantNumeric:"tabular-nums"},VQn={display:"inline-flex",alignItems:"center",gap:"2px"},qQn={width:6,height:12,borderRadius:"1px",flexShrink:0};function Cxr({item:e}){let t=Txr(e);return t?(0,IF.jsxs)(ie,{sx:WQn,title:`Phase ${t.reached} of ${t.total}`,children:[(0,IF.jsx)(ie,{component:"span",sx:GQn,children:`${t.reached}/${t.total}`}),(0,IF.jsx)(ie,{component:"span",sx:VQn,"aria-hidden":!0,children:t.segments.map(r=>(0,IF.jsx)(ie,{component:"span","data-segment":r.kind,sx:{...qQn,bgcolor:UQn[r.kind]}},r.phase))})]}):null}var Zxr=E(de(),1);var t1e=E(de(),1);var bA=E($(),1),jQn={minWidth:0,p:.5,borderRadius:"50%"};function Qye({tooltip:e,disabled:t,onClick:r,compact:n=!1}){return(0,bA.jsx)(lr,{title:e,children:(0,bA.jsx)(ie,{component:"span",sx:{display:"flex"},children:n?(0,bA.jsx)(Dt,{"aria-label":"Build",variant:"contained",color:"success",size:"small",disabled:t,sx:jQn,onClick:r,children:(0,bA.jsx)(Eg,{fontSize:"small"})}):(0,bA.jsx)(Dt,{startIcon:(0,bA.jsx)(Eg,{}),disabled:t,onClick:r,children:"Build"})})})}var ZUe=E($(),1);function Jye(e){let t=[];return e.exposeCodexActions&&t.push({kind:"codex",label:"with Codex"}),e.exposePiActions&&t.push({kind:"pi",label:"with pi"}),t}function e1e({anchorEl:e,open:t,onClose:r,options:n,onSelect:i,stop:o}){return(0,ZUe.jsx)(Os,{anchorEl:e,open:t,onClose:r,onClick:o,children:n.map(a=>(0,ZUe.jsx)(ln,{onClick:s=>{o(s),i(a.kind)},children:a.label},a.kind))})}var Sv=E($(),1);function wxr({tooltip:e,disabled:t,onBuild:r,onSelectHarness:n}){let i=Jye(a_()),o=(0,t1e.useRef)(null),[a,s]=(0,t1e.useState)(!1),l=u=>u.stopPropagation();return(0,Sv.jsxs)(Sv.Fragment,{children:[(0,Sv.jsxs)(RS,{ref:o,variant:"contained",color:"success",size:"small",disabled:t,children:[(0,Sv.jsx)(Qye,{tooltip:e,disabled:t,onClick:u=>{l(u),r()}}),i.length>0&&(0,Sv.jsx)(Dt,{"aria-label":"Build with a different harness",onClick:u=>{l(u),s(!0)},children:(0,Sv.jsx)(bd,{})})]}),(0,Sv.jsx)(e1e,{anchorEl:o.current,open:a,onClose:()=>s(!1),options:i,onSelect:u=>{s(!1),n(u)},stop:l})]})}var kxr=E($(),1),DF=st((0,kxr.jsx)("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96M19 18H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95C8.08 7.14 9.94 6 12 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11c1.56.1 2.78 1.41 2.78 2.96 0 1.65-1.35 3-3 3m-5.55-8h-2.9v3H8l4 4 4-4h-2.55z"}),"CloudDownloadOutlined");var c_=E($(),1),YQn={vertical:"bottom",horizontal:"center"};function r1e({clone:e}){let{prompt:t,confirm:r,cancel:n,error:i,dismissError:o}=e;return(0,c_.jsxs)(c_.Fragment,{children:[t&&(0,c_.jsx)(yi,{title:"Clone repository",message:`Clone ${t.displayName} over SSH into ${t.cloneTarget}${t.node?` on ${t.node}`:""}?`,confirmLabel:"Clone",confirmColor:"primary",onConfirm:r,onCancel:n}),(0,c_.jsx)(pl,{open:!!i,autoHideDuration:8e3,onClose:o,anchorOrigin:YQn,children:(0,c_.jsx)(gi,{severity:"error",onClose:o,variant:"filled",children:i})})]})}var P0=E(de(),1);function QUe(e){return["backlog","clone",e]}function n1e(e,t){t(QUe(e.origin),void 0,{title:`Clone ${e.displayName}`,subtitle:e.origin,...e.node&&{node:e.node}})}function _xr(e,t){return!!e&&e.length===t.length&&e.every((r,n)=>r===t[n])}function Exr(e,t,r){let n=QUe(t.origin),i=new Set(e.filter(o=>_xr(o.assistArgs,n)).map(o=>o.id));return n1e(t,r),{args:n,target:t.cloneTarget,node:t.node,preexisting:i}}function Rxr(e,t){if(!t.id){let n=e.find(i=>_xr(i.assistArgs,t.args)&&!t.preexisting.has(i.id));return n?{type:"latch",id:n.id}:null}let r=e.find(n=>n.id===t.id);return r?r.status==="done"?{type:"done"}:r.status==="error"?{type:"error",message:r.error||"Clone failed."}:null:null}function i1e(e){let{setSelectedCwd:t}=Fn(),{launchAssist:r}=il(),[n,i]=(0,P0.useState)(null),[o,a]=(0,P0.useState)(null),[s,l]=(0,P0.useState)(null),u=(0,P0.useCallback)(p=>{l(null),i(p)},[]),f=(0,P0.useCallback)(()=>i(null),[]),d=(0,P0.useCallback)(()=>l(null),[]),h=(0,P0.useCallback)(()=>{n&&(a(Exr(e,n,r)),i(null))},[n,e,r]);return(0,P0.useEffect)(()=>{if(!o)return;let p=Rxr(e,o);p&&(p.type==="latch"?a(m=>m&&{...m,id:p.id}):p.type==="done"?(o.node?t(o.target,o.node):t(o.target),a(null)):(l(p.message),a(null)))},[e,o,t]),{prompt:n,requestClone:u,confirm:h,cancel:f,error:s,dismissError:d}}function NF(e,t){return`Not cloned ${e?`on ${e}`:"locally"} \u2014 click to clone into ${t}`}var nS=E($(),1),KQn={border:1,borderStyle:"dashed"};function Axr({target:e}){let t=i1e(Kye());return(0,nS.jsxs)(nS.Fragment,{children:[(0,nS.jsx)(lr,{title:NF(e.node,e.cloneTarget),children:(0,nS.jsx)(ir,{"aria-label":"Clone",size:"small",sx:KQn,onClick:r=>{r.stopPropagation(),t.requestClone(e)},children:(0,nS.jsx)(DF,{fontSize:"small"})})}),(0,nS.jsx)(r1e,{clone:t})]})}var rX=E(de(),1);var JK=E(de(),1);function Pxr(e,t,r,n){let i=Pa(),o=yr(),a=(0,JK.useRef)(!1),[s,l]=(0,JK.useState)(!1),[u,f]=(0,JK.useState)(null);return{busy:s,error:u,clearError:()=>f(null),confirm:async()=>{if(!a.current){a.current=!0,l(!0);try{await wL(e,t,i,o)}catch{f(r),a.current=!1,l(!1);return}await n()}}}}var eX=E($(),1),XQn={done:{verb:"done",action:"Mark done"},wontdo:{verb:"won't do",action:"Won't do"}};function Lxr({itemId:e,status:t,target:r,onClose:n}){let{verb:i,action:o}=XQn[t],a=oo(e),{busy:s,error:l,clearError:u,confirm:f}=Pxr(e,t,`Failed to mark item ${a} as ${i}`,async()=>{n(),await r.onClosed()});return(0,eX.jsxs)(ia,{children:[(0,eX.jsx)(yi,{title:`Mark ${a} ${i}`,message:`${r.currentPhase??0} of ${r.totalPhases??0} phases completed. Mark this backlog item as ${i}?`,confirmLabel:o,busy:s,onConfirm:f,onCancel:n}),(0,eX.jsx)(Xl,{error:l,onClose:u})]})}var OF=E($(),1),ZQn=[{status:"done",label:"Mark done"},{status:"wontdo",label:"Won't do"}];function Mxr({anchorEl:e,open:t,onClose:r,onRefine:n,onSelect:i,stop:o}){return(0,OF.jsxs)(Os,{anchorEl:e,open:t,onClose:r,onClick:o,children:[(0,OF.jsx)(ln,{onClick:a=>{o(a),n()},children:"Refine"}),(0,OF.jsx)(Ti,{}),ZQn.map(({status:a,label:s})=>(0,OF.jsx)(ln,{onClick:l=>{o(l),i(a)},children:s},a))]})}var Ixr=E($(),1),Dxr=st((0,Ixr.jsx)("path",{d:"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2"}),"MoreVert");var JUe=E($(),1);function Nxr({anchorRef:e,onClick:t}){return(0,JUe.jsx)(ir,{ref:e,"aria-label":"More actions",size:"small",onClick:t,children:(0,JUe.jsx)(Dxr,{fontSize:"small"})})}var tX=E($(),1);function Oxr({anchorRef:e,tooltip:t,disabled:r,onBuild:n,onMore:i}){return(0,tX.jsxs)(ie,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,tX.jsx)(Qye,{compact:!0,tooltip:t,disabled:r,onClick:n}),(0,tX.jsx)(Nxr,{anchorRef:e,onClick:i})]})}var Bxr=E(de(),1);function o1e(e){let{launchAssist:t}=il(),r=Ni(),n=Pa(),i=yr(),[o,a]=(0,Bxr.useState)(!1);return{launched:o,launch:l=>{if(o)return;a(!0);let u=i?[{node:i}]:[];t(["refine","--once",...l,oo(e)],n,...u),r("/sessions")}}}var u_=E($(),1);function Fxr({itemId:e,tooltip:t,disabled:r,onBuild:n,closeTarget:i}){let o=(0,rX.useRef)(null),[a,s]=(0,rX.useState)(!1),[l,u]=(0,rX.useState)(null),f=o1e(e),d=h=>h.stopPropagation();return(0,u_.jsxs)(u_.Fragment,{children:[(0,u_.jsx)(Oxr,{anchorRef:o,tooltip:t,disabled:r,onBuild:h=>{d(h),n()},onMore:h=>{d(h),s(!0)}}),(0,u_.jsx)(Mxr,{anchorEl:o.current,open:a,onClose:()=>s(!1),onRefine:()=>{s(!1),f.launch([])},onSelect:h=>{s(!1),u(h)},stop:d}),l&&(0,u_.jsx)(Lxr,{itemId:e,status:l,target:i,onClose:()=>u(null)})]})}var a1e=E(de(),1),eWe=(0,a1e.createContext)(()=>{});function $xr(){return(0,a1e.useContext)(eWe)}var s1e=E($(),1);function zxr({session:e}){let t=vy($xr());return(0,s1e.jsxs)(Dt,{variant:"contained",size:"small",startIcon:(0,s1e.jsx)(Hme,{}),onClick:r=>{r.stopPropagation(),t(e.id)},children:["Session ",e.id]})}function Hxr(e,t,r,n){let i=r.node?[{node:r.node}]:[];e(["backlog","run",oo(t),...n],r.cwd,...i)}function QQn(e,t){let r=e.assistArgs;if(r?.[0]!=="backlog"||r[1]!=="run"||!r[2])return!1;try{return cte(r[2])===t}catch{return!1}}function Uxr(e,t){return e.find(r=>r.status!=="done"&&r.status!=="error"&&(QQn(r,t)||TB(r)?.itemId===t))}var l1e=E(de(),1),tWe=(0,l1e.createContext)({nodes:null,names:[],visible:!1,selected:void 0,select:()=>{}});function _c(){return(0,l1e.useContext)(tWe)}function c1e(){let{nodes:e,selected:t}=_c();return t&&t!==e?.local?t:void 0}var Vxr=E(de(),1);var u1e=E(de(),1);function Wxr(e,t){return Promise.all(t.map(async r=>{let n=await JQn(e,r).catch(()=>({}));return[r,n]}))}async function JQn(e,t){let r=await fetch(qr(`/api/repo-location?origin=${encodeURIComponent(e)}`,t||void 0));return r.ok?r.json():{}}var rWe="\0";function Gxr(e,t){let[r,n]=(0,u1e.useState)(null);return(0,u1e.useEffect)(()=>{if(!e||!t)return;let i=!1;return Wxr(e,t.split(rWe)).then(o=>{i||n({origin:e,byNode:Object.fromEntries(o)})}),()=>{i=!0}},[e,t]),r}function f1e(e,t){let{cloneOn:r,originOf:n}=Fn(),i=e?n(e):void 0,o=t.filter(s=>!e||!r(e,s)).map(s=>s??"").join(rWe),a=Gxr(i,o);return(0,Vxr.useCallback)(s=>{let l=e?r(e,s):void 0;if(l)return{kind:"cloned",cwd:l};let u=a&&a.origin===i?a.byNode[s??""]:void 0;return u?.cwd?{kind:"cloned",cwd:u.cwd}:i&&u?.cloneTarget?{kind:"clonable",origin:i,cloneTarget:u.cloneTarget}:{kind:"unavailable"}},[e,r,i,a])}var BF=E(de(),1);var d1e=E(de(),1);function h1e(e){let t=(0,d1e.useRef)(null);return(0,d1e.useEffect)(()=>{e&&t.current?.scrollIntoView({block:"nearest"})},[e]),t}var jxr=E($(),1);function qxr({cwd:e,selected:t,highlighted:r,onHover:n,onSelect:i}){let o=h1e(r);return(0,jxr.jsx)(ln,{ref:o,selected:t,title:e,onClick:i,onMouseEnter:n,sx:{fontSize:12,display:"flex",justifyContent:"space-between",gap:1,...r&&{bgcolor:"action.hover"}},children:Tv(e)})}var nWe=E($(),1);function p1e({repos:e,selected:t,highlight:r,onHighlight:n,onSelect:i}){return(0,nWe.jsx)(zp,{dense:!0,children:e.map((o,a)=>(0,nWe.jsx)(qxr,{cwd:o,selected:o===t,highlighted:a===r,onHover:()=>n(a),onSelect:()=>i(o)},o))})}var m1e=E(de(),1);function f_(e,t,r,n){let[i,o]=(0,m1e.useState)(0);return(0,m1e.useEffect)(()=>{o(0)},[t]),{highlight:i,setHighlight:o,onKeyDown:s=>{let l=e.length;if(s.key==="ArrowDown")s.preventDefault(),l>0&&o(u=>(u+1)%l);else if(s.key==="ArrowUp")s.preventDefault(),l>0&&o(u=>(u-1+l)%l);else if(s.key==="Enter"){s.preventDefault();let u=e[i];u!==void 0&&(r(u),n())}else s.key==="Escape"&&(s.preventDefault(),n())}}}var nX=E($(),1);function Tv(e){let t=e.includes("\\")?"\\":"/";return e.split(t).filter(Boolean).pop()??e}var eJn={...kB};function Yxr({repos:e,selected:t,onSelect:r,close:n,initialFilter:i=""}){let[o,a]=(0,BF.useState)(i),s=(0,BF.useRef)(null);(0,BF.useEffect)(()=>{s.current?.focus()},[]);let l=o.trim().toLowerCase(),u=l?e.filter(m=>m.toLowerCase().includes(l)):e,{highlight:f,setHighlight:d,onKeyDown:h}=f_(u,l,r,n);return(0,nX.jsxs)(tn,{elevation:4,sx:eJn,children:[(0,nX.jsx)(hT,{inputRef:s,value:o,onChange:a,onKeyDown:h,placeholder:"Filter repos..."}),(0,nX.jsx)(p1e,{repos:u,selected:t,highlight:f,onHighlight:d,onSelect:m=>{r(m),n()}})]})}function g1e(e,t){return{origin:e.origin,cloneTarget:e.cloneTarget,displayName:Tv(e.origin),node:t}}function Kxr(){let e=Pa(),t=c1e(),r=f1e(e??"",[t])(t);return e?r.kind==="cloned"?{kind:"ready",cwd:r.cwd,node:t}:r.kind==="clonable"?{kind:"clone",prompt:g1e(r,t)}:{kind:"unavailable",node:t??"this machine"}:{kind:"ready",node:t}}function Xxr(e){return e?`Not cloned on ${e}`:"Build"}var iX=E($(),1);function y1e({itemId:e,compact:t}){let{launchAssist:r}=il(),n=Kxr(),i=Uxr(Kye(),e),[o,a]=(0,Zxr.useState)(!1);if(n.kind==="clone")return(0,iX.jsx)(Axr,{target:n.prompt});if(i)return(0,iX.jsx)(zxr,{session:i});let s=n.kind==="unavailable"?n.node:void 0,l=o||!!s,u=d=>{l||n.kind!=="ready"||(a(!0),Hxr(r,e,n,d))},f=Xxr(s);return t?(0,iX.jsx)(Fxr,{itemId:e,tooltip:f,disabled:l,onBuild:()=>u([]),closeTarget:t}):(0,iX.jsx)(wxr,{tooltip:f,disabled:l,onBuild:()=>u([]),onSelectHarness:d=>u(["--harness",d])})}var Qxr=E(de(),1);var FF=E($(),1);function Jxr({itemId:e,starred:t,onToggled:r}){let n=Pa(),i=yr(),[o,a]=(0,Qxr.useState)(!1);return(0,FF.jsx)(lr,{title:t?"Unstar":"Star",children:(0,FF.jsx)("span",{children:(0,FF.jsx)(ir,{"aria-label":t?"Unstar":"Star","aria-pressed":t,color:t?"warning":"default",size:"small",disabled:o,onClick:async l=>{if(l.stopPropagation(),!o){a(!0);try{await Ete(e,!t,n,i),await r()}finally{a(!1)}}},children:t?(0,FF.jsx)(Tge,{}):(0,FF.jsx)(Cge,{})})})})}var d_=E($(),1);function e2r({item:e,onReload:t}){return(0,d_.jsxs)(d_.Fragment,{children:[(0,d_.jsx)(Cxr,{item:e}),(0,d_.jsx)(Jxr,{itemId:e.id,starred:e.starred,onToggled:t}),Zye(e)&&(0,d_.jsx)(y1e,{itemId:e.id,compact:{currentPhase:e.currentPhase,totalPhases:e.totalPhases,onClosed:t}})]})}var iS=E($(),1);function tJn(e,t){return e?t?xv.inProgressRunningCard:xv.inProgressCard:xv.card}function t2r({item:e,to:t,socket:r,onReload:n}){let i=bxr(r.sessions,e.id),o=e.status==="in-progress",a=o&&i?.status==="running";return(0,iS.jsxs)(ie,{sx:tJn(o,a),children:[(0,iS.jsx)(xxr,{status:e.status}),(0,iS.jsxs)(ie,{sx:xv.main,children:[(0,iS.jsx)(Kr,{component:Cs,to:t,underline:"none",title:e.name,sx:xv.stretchedNameLink,children:e.name}),(0,iS.jsx)(vxr,{item:e,openSession:i,onSelectSession:r.selectSession})]}),(0,iS.jsx)(ie,{sx:xv.actions,children:(0,iS.jsx)(e2r,{item:e,onReload:n})})]})}var n2r=E($(),1),rJn={all:"items",story:"stories",bug:"bugs"},nJn={textAlign:"center",color:"text.disabled",py:6,px:2};function r2r({query:e,typeFilter:t}){let r=rJn[t],n=e.trim()?`No ${r} match your search.`:`No ${r} in the backlog.`;return(0,n2r.jsx)(ie,{sx:nJn,children:n})}var Cv=E($(),1),iJn={display:"flex",justifyContent:"center",py:6};function i2r({loading:e,error:t,query:r,typeFilter:n,items:i,socket:o,itemPath:a,onReload:s}){if(e)return(0,Cv.jsx)(ie,{sx:iJn,children:(0,Cv.jsx)(io,{})});let l=t&&(0,Cv.jsx)(gi,{severity:"error",children:t});return i.length===0?l||(0,Cv.jsx)(r2r,{query:r,typeFilter:n}):(0,Cv.jsxs)(Cv.Fragment,{children:[l,i.map(u=>(0,Cv.jsx)(t2r,{item:u,to:a(u),socket:o,onReload:s},u.id))]})}var $F=E(de(),1);function oJn(e){let t=new URLSearchParams;for(let n of e)t.append("knownCwd",n);let r=t.toString();return r?`/api/backlog/summary?${r}`:"/api/backlog/summary"}async function o2r({cwd:e,node:t,knownCwds:r,signal:n}){return(await fetch(Wc(oJn(r),e,t),{signal:n})).json()}function a2r(){let{repos:e,selectedCwd:t,cloneOn:r}=Fn(),n=c1e(),[i,o]=(0,$F.useState)([]),a=(0,$F.useMemo)(()=>e.map(l=>r(l,n)).filter(l=>!!l),[e,r,n]),s=t?r(t,n):void 0;return(0,$F.useEffect)(()=>{let l=new AbortController;return o2r({cwd:s,node:n,knownCwds:a,signal:l.signal}).then(o).catch(()=>{}),()=>l.abort()},[a,s,n]),{summaries:i,node:n}}var v1e=E($(),1),aJn={borderStyle:"dashed"};function s2r({summary:e,node:t,onSelectCwd:r,onRequestClone:n}){let{origin:i,displayName:o,openCount:a,isCurrent:s,cwd:l,cloneTarget:u}=e,f=!l&&!!u,d=l?()=>r(l):f&&u?()=>n({origin:i,cloneTarget:u,displayName:o,node:t}):void 0,h=(0,v1e.jsx)(rn,{label:`${o} (${a})`,size:"small",color:s?"primary":"default",variant:s?"filled":"outlined",disabled:!l&&!f,onClick:d,icon:f?(0,v1e.jsx)(DF,{}):void 0,sx:f?aJn:void 0});return!f||!u?h:(0,v1e.jsx)(lr,{describeChild:!0,title:NF(t,u),children:h})}var oX=E($(),1),sJn={flexWrap:"wrap",gap:1,mb:2};function l2r({sessions:e}){let{summaries:t,node:r}=a2r(),{setSelectedCwd:n}=Fn(),i=i1e(e);return t.length===0?null:(0,oX.jsxs)(Rt,{direction:"row",sx:sJn,children:[t.map(o=>(0,oX.jsx)(s2r,{summary:o,node:r,onSelectCwd:a=>r?n(a,r):n(a),onRequestClone:i.requestClone},o.origin)),(0,oX.jsx)(r1e,{clone:i})]})}var u2r=E($(),1);function c2r({value:e,onChange:t}){return(0,u2r.jsx)(Qn,{"data-backlog-focus":"search",autoFocus:!0,fullWidth:!0,size:"small",placeholder:"Search backlog\u2026",value:e,onChange:r=>t(r.target.value),sx:{mb:2}})}var iWe=E($(),1),b1e=st([(0,iWe.jsx)("path",{d:"M12 5.99 19.53 19H4.47zM12 2 1 21h22z"},"0"),(0,iWe.jsx)("path",{d:"M13 16h-2v2h2zm0-6h-2v5h2z"},"1")],"WarningAmber");var x1e=E(de(),1);var xA=E($(),1);async function lJn(){let[e,t]=await Promise.all([fetch("/api/backups/list"),fetch("/api/backups/status")]),r=await e.json(),{staleAfterMs:n}=await t.json();return{row:r[0]??null,staleAfterMs:n}}function f2r({warn:e,tooltip:t,children:r}){return(0,xA.jsx)(lr,{title:t,children:(0,xA.jsxs)(Kr,{component:Cs,to:"/backups",underline:"hover",color:e?"warning.main":"text.secondary",variant:"body2",sx:e?{display:"inline-flex",alignItems:"center",gap:.5}:void 0,children:[e&&(0,xA.jsx)(b1e,{fontSize:"inherit"}),r]})})}function d2r(){let[e,t]=(0,x1e.useState)();if((0,x1e.useEffect)(()=>{lJn().then(t)},[]),e===void 0)return null;let{row:r,staleAfterMs:n}=e;if(r===null)return(0,xA.jsx)(f2r,{warn:!0,tooltip:"No backup has been recorded",children:"Never backed up"});let i=new Date(r.createdAt).toLocaleString(),o=Date.now()-new Date(r.createdAt).getTime()>n;return(0,xA.jsxs)(f2r,{warn:o,tooltip:o?`Backup overdue \u2014 last backed up ${i}`:i,children:["Last backed up ",_o(String(r.createdAt))]})}var zF=E($(),1);function h2r(){let[e,t]=MF();return(0,zF.jsxs)(Ru,{value:e,exclusive:!0,size:"small","aria-label":"Status filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,zF.jsx)(bs,{value:"todo",children:"Todo"}),(0,zF.jsx)(bs,{value:"done",children:"Done"}),(0,zF.jsx)(bs,{value:"all",children:"All"})]})}var HF=E($(),1);function p2r({value:e,onChange:t}){return(0,HF.jsxs)(Ru,{value:e,exclusive:!0,size:"small","aria-label":"Type filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,HF.jsx)(bs,{value:"all",children:"All"}),(0,HF.jsx)(bs,{value:"story",children:"Stories"}),(0,HF.jsx)(bs,{value:"bug",children:"Bugs"})]})}var h_=E($(),1),cJn={justifyContent:"space-between",alignItems:"center",mb:3},uJn={fontWeight:600},fJn={alignItems:"center"};function m2r({typeFilter:e,onTypeFilterChange:t}){return(0,h_.jsxs)(Rt,{direction:"row",sx:cJn,children:[(0,h_.jsx)(Le,{variant:"h5",sx:uJn,children:"Backlog"}),(0,h_.jsxs)(Rt,{direction:"row",spacing:2,sx:fJn,children:[(0,h_.jsx)(d2r,{}),(0,h_.jsx)(p2r,{value:e,onChange:t}),(0,h_.jsx)(h2r,{})]})]})}var oS=E($(),1);function y2r({items:e,loading:t,error:r,socket:n,onReload:i}){let o=Pa(),a=yr(),{query:s,setQuery:l,results:u,loading:f}=lxr(),[d,h]=(0,g2r.useState)("all"),p=u??e,m=d==="all"?p:p.filter(g=>g.type===d);return(0,oS.jsxs)(oS.Fragment,{children:[(0,oS.jsx)(m2r,{typeFilter:d,onTypeFilterChange:h}),(0,oS.jsx)(c2r,{value:s,onChange:l}),(0,oS.jsx)(l2r,{sessions:n.sessions}),(0,oS.jsx)(i2r,{loading:t||f,error:u?null:r,query:s,typeFilter:d,items:m,socket:n,itemPath:g=>mT(g.id,o,a),onReload:i})]})}var E1e=E(de(),1);var SA=E(de(),1);async function oWe(e,t,r){let n=await fetch(Wc(`/api/items/${oo(e)}`,t.cwd,t.node),{signal:r});return n.ok?n.json():null}function v2r(e){let t=Pa(),r=yr(),[n,i]=(0,SA.useState)(null),[o,a]=(0,SA.useState)(!0),s=(0,SA.useCallback)(async()=>{i(await oWe(e,{cwd:t,node:r}))},[e,t,r]);return(0,SA.useEffect)(()=>{let l=new AbortController,{signal:u}=l;return a(!0),(async()=>{try{let f=await oWe(e,{cwd:t,node:r},u);if(u.aborted)return;i(f),a(!1)}catch(f){if(!u.aborted)throw f}})(),()=>l.abort()},[e,t,r]),{item:n,loading:o,reload:s}}function b2r(e,t){let r=new Set,n=new Set,i=[];for(let o of t){if(o.cwdMissing)continue;let a=SL(o),s=nm(o);!a||!s||r.has(a)||n.has(s)||(r.add(a),n.add(s),i.push(s))}return e&&!r.has(TL(e,t))&&!n.has(e)&&i.unshift(e),i}var kp="";function dJn(e){let t=new Map([[kp,[]]]);for(let r of e){let n=r.node??kp;t.set(n,[...t.get(n)??[],r])}return t}function x2r(e,t){var n;let r=new Map;for(let[i,o]of dJn(t)){let a=i===kp?e:"";for(let s of b2r(a,o)){let l=TL(s,o),u=r.get(l)??{key:l,origin:l===s?void 0:l,clones:{}};(n=u.clones)[i]??(n[i]=s),r.set(l,u)}}return[...r.values()]}function S2r(e,t){return e.clones[t]??e.clones[kp]??Object.values(e.clones)[0]}function aX(e,t){return e.find(r=>Object.values(r.clones).includes(t))}function aS(e,t){return!e||e===t?kp:e}function T2r(e,t,r,n){if(!t)return e;let i=aS(r,n);return{...e,selectedCwd:t,selectedNode:r,cloneOn:(o,a)=>{let s=e.cloneOn(o,a);return o!==t||s!==o||aS(a,n)===i?s:void 0}}}var TA={description:"item-section-description",acceptanceCriteria:"item-section-acceptance-criteria",plan:"item-section-plan",activity:"item-section-activity",comments:"item-section-comments"},sX=140,aWe="--pinned-header-height",S1e=`var(${aWe}, ${sX}px)`,C2r=`calc(${S1e} + 8px)`;function wv(e){return{id:TA[e],sx:{mb:2,scrollMarginTop:C2r}}}function T1e(e){return{id:`item-phase-${e}`,sx:{scrollMarginTop:C2r}}}var p_=E($(),1);function w2r({criteria:e}){return e.length===0?null:(0,p_.jsxs)(ie,{...wv("acceptanceCriteria"),children:[(0,p_.jsx)(Le,{variant:"overline",sx:{color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"},children:"Acceptance Criteria"}),(0,p_.jsx)(ty,{disablePadding:!0,sx:{maxWidth:"72ch"},children:e.map((t,r)=>(0,p_.jsxs)(LS,{disableGutters:!0,disablePadding:!0,sx:{py:.5,display:"flex",alignItems:"baseline"},children:[(0,p_.jsxs)(Le,{component:"span",sx:{color:"text.secondary",mr:1},children:[r+1,"."]}),(0,p_.jsx)(Ou,{component:"span",className:"markdown",html:j9(t)})]},t))})]})}var lX=E($(),1),hJn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function k2r({description:e}){return e?(0,lX.jsxs)(ie,{...wv("description"),children:[(0,lX.jsx)(Le,{variant:"overline",sx:hJn,children:"Description"}),(0,lX.jsx)(Y9,{content:e,renderMermaid:!0})]}):null}var D2r=E(de(),1);function _2r(e,t=10){let r=i=>e.filter(o=>o.kind===i).reverse(),n=r("commit");return{branches:r("branch"),commits:n.slice(0,t),overflowCommits:n.slice(t),prs:r("pr"),slacks:r("slack"),sessions:r("session")}}var R2r=E($(),1),pJn={color:"text.secondary",alignSelf:"flex-start",textAlign:"left"};function E2r({hiddenCount:e,expanded:t,onToggle:r}){return e===0?null:(0,R2r.jsx)(Kr,{component:"button",type:"button",variant:"body2",underline:"hover",sx:pJn,onClick:n=>{n.stopPropagation(),r()},children:t?"Show fewer commits":`\u2026 and ${e} more commits`})}var CA=E($(),1),mJn={display:"flex",alignItems:"center",gap:1},gJn={color:"text.secondary",fontFamily:"monospace"},yJn={flex:1,overflowWrap:"anywhere"},vJn={color:"text.disabled","&:hover":{color:"text.primary"}};function A2r({conversation:e}){let{resumeSession:t}=il(),r=n=>{n.stopPropagation(),t(e.sessionId,e.cwd??"",e.title,e.harness)};return(0,CA.jsxs)(ie,{sx:mJn,children:[(0,CA.jsx)(Le,{variant:"body2",component:"span",sx:gJn,children:"session"}),(0,CA.jsx)(Le,{variant:"body2",component:"span",sx:yJn,children:e.title??e.sessionId}),(0,CA.jsx)(ir,{size:"small",title:"Resume",sx:vJn,onClick:r,children:(0,CA.jsx)(Eg,{sx:{fontSize:14}})})]})}var L2r=E($(),1),bJn={color:"text.disabled",ml:1};function P2r({gitRef:e}){return e.kind!=="commit"||!e.createdAt?null:(0,L2r.jsx)(ie,{component:"span",sx:bJn,children:xJn(e.createdAt)})}function xJn(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function M2r(e){if(e.kind==="commit"){let t=e.title?` ${e.title}`:"";return`${e.ref.slice(0,8)}${t}`}if(e.kind==="pr"){let t=e.title?` ${e.title}`:"",r=e.state?` (${e.state.toLowerCase()})`:"";return`#${e.ref}${t}${r}`}return e.kind==="slack"||e.kind==="session"?e.title??e.ref:e.ref}var kv=E($(),1),SJn={color:"text.secondary",mr:1,fontFamily:"monospace"};function TJn({gitRef:e}){let t=M2r(e);return!e.url||e.kind==="session"?(0,kv.jsx)(kv.Fragment,{children:t}):(0,kv.jsx)(Kr,{href:e.url,target:"_blank",rel:"noopener",onClick:r=>r.stopPropagation(),children:t})}function I2r({gitRef:e}){return(0,kv.jsxs)(Le,{variant:"body2",children:[(0,kv.jsx)(ie,{component:"span",sx:SJn,children:e.kind}),(0,kv.jsx)(TJn,{gitRef:e}),(0,kv.jsx)(P2r,{gitRef:e})]})}var m_=E($(),1),CJn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function N2r({gitRefs:e,conversations:t=[]}){let[r,n]=(0,D2r.useState)(!1),{branches:i,commits:o,overflowCommits:a,prs:s,slacks:l}=_2r(e),u=[...i,...o,...r?a:[],...s,...l];return u.length===0&&t.length===0?null:(0,m_.jsxs)(ie,{...wv("activity"),children:[(0,m_.jsx)(Le,{variant:"overline",sx:CJn,children:"Activity"}),(0,m_.jsxs)(Rt,{spacing:1,children:[u.map(f=>(0,m_.jsx)(I2r,{gitRef:f},`${f.kind}:${f.ref}`)),t.map(f=>(0,m_.jsx)(A2r,{conversation:f},f.sessionId)),(0,m_.jsx)(E2r,{hiddenCount:a.length,expanded:r,onToggle:()=>n(f=>!f)})]})]})}var wA=E($(),1),wJn={alignItems:"center",fontSize:"0.75rem",color:"text.secondary",mb:.5},kJn={color:"text.disabled"},_Jn={fontWeight:500},EJn={summary:"Phase summary",comment:"Comment"};function O2r({comment:e}){return(0,wA.jsxs)(Rt,{direction:"row",spacing:.5,sx:wJn,children:[e.id!==void 0&&(0,wA.jsxs)(Le,{variant:"caption",sx:kJn,children:["#",e.id]}),(0,wA.jsx)(Le,{variant:"caption",sx:_Jn,children:EJn[e.type]}),e.phase!==void 0&&(0,wA.jsxs)(Le,{variant:"caption",children:["\xB7 Phase ",e.phase]}),(0,wA.jsxs)(Le,{variant:"caption",children:["\xB7 ",RJn(e.timestamp)]})]})}function RJn(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}var B2r=E($(),1),F2r=st((0,B2r.jsx)("path",{d:"M16 9v10H8V9zm-1.5-6h-5l-1 1H5v2h14V4h-3.5zM18 7H6v12c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2z"}),"DeleteOutlined");var sWe=E(de(),1);async function $2r(e,t,r,n){let i=await fetch(Wc(`/api/items/${oo(e)}/comments/${t}`,r,n),{method:"DELETE"});if(!i.ok){let o=await i.json().catch(()=>{});throw new Error(o?.error??`Failed to delete comment (${i.status})`)}}var _v=E($(),1),AJn={mt:-.5,mr:-.5,color:"text.secondary"};function z2r({itemId:e,commentId:t,onDeleted:r}){let n=Pa(),i=yr(),[o,a]=(0,sWe.useState)(!1),[s,l]=(0,sWe.useState)(),u=()=>l(void 0);return(0,_v.jsxs)(_v.Fragment,{children:[o&&(0,_v.jsx)(yi,{message:"Are you sure you want to delete this comment?",onConfirm:async()=>{a(!1);try{await $2r(e,t,n,i),await r()}catch(f){l(f instanceof Error?f.message:"Failed to delete comment")}},onCancel:()=>a(!1)}),(0,_v.jsx)(pl,{open:s!==void 0,autoHideDuration:6e3,onClose:u,children:(0,_v.jsx)(gi,{severity:"error",variant:"filled",onClose:u,children:s})}),(0,_v.jsx)(ir,{"aria-label":"Delete comment",size:"small",sx:AJn,onClick:()=>a(!0),children:(0,_v.jsx)(F2r,{fontSize:"inherit"})})]})}var kA=E($(),1),PJn={summary:{bgcolor:"warning.light",borderColor:"warning.dark"},comment:{bgcolor:"action.selected",borderColor:"divider"}},LJn={justifyContent:"space-between",alignItems:"flex-start"},MJn={color:"text.primary",whiteSpace:"pre-wrap"};function IJn(e){return{p:1.5,bgcolor:e.bgcolor,borderColor:e.borderColor}}function H2r({comment:e,itemId:t,onDeleted:r}){return(0,kA.jsxs)(tn,{variant:"outlined",sx:IJn(PJn[e.type]),children:[(0,kA.jsxs)(Rt,{direction:"row",sx:LJn,children:[(0,kA.jsx)(O2r,{comment:e}),e.id!==void 0&&t!==void 0&&r&&(0,kA.jsx)(z2r,{itemId:t,commentId:e.id,onDeleted:r})]}),(0,kA.jsx)(Le,{variant:"body2",sx:MJn,children:e.text})]})}var UF=E($(),1),DJn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function U2r({comments:e,itemId:t,onCommentDeleted:r}){return e.length===0?null:(0,UF.jsxs)(ie,{...wv("comments"),children:[(0,UF.jsx)(Le,{variant:"overline",sx:DJn,children:"Comments"}),(0,UF.jsx)(Rt,{spacing:1,children:e.map((n,i)=>(0,UF.jsx)(H2r,{comment:n,itemId:t,onDeleted:r},`${n.timestamp}-${i}`))})]})}var W2r=E($(),1);function WF({total:e,sx:t}){return(0,W2r.jsx)(Le,{sx:t,children:Xye(e)})}var V2r=E($(),1),NJn={color:"text.secondary",fontSize:"0.75rem"};function G2r({usage:e}){let t={tokensUp:e.reduce((r,n)=>r+n.tokensUp,0),tokensDown:e.reduce((r,n)=>r+n.tokensDown,0),activeMs:e.reduce((r,n)=>r+n.activeMs,0),peakContextPct:e.reduce((r,n)=>Math.max(r,n.peakContextPct),0)};return(0,V2r.jsx)(WF,{total:t,sx:NJn})}var sS=E($(),1);function q2r({checks:e}){return(0,sS.jsxs)(ie,{sx:{mt:1,pt:1},children:[(0,sS.jsx)(Ti,{sx:{mb:1}}),(0,sS.jsx)(Le,{variant:"overline",sx:{color:"text.disabled",letterSpacing:"0.08em"},children:"Manual Checks"}),(0,sS.jsx)(ty,{disablePadding:!0,sx:{ml:.5,mt:.5},children:e.map(t=>(0,sS.jsxs)(LS,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,sS.jsx)(Le,{component:"span",sx:{mr:1,fontSize:"0.875rem",color:"text.secondary"},children:"\u2610"}),(0,sS.jsx)(Ou,{component:"span",className:"markdown",sx:{fontSize:"0.875rem",color:"text.secondary"},html:j9(t)})]},t))})]})}var C1e={done:{borderColor:"success.light",bgcolor:"success.light"},current:{borderColor:"info.main",bgcolor:"info.light",ring:"info.light"},upcoming:{borderColor:"divider",bgcolor:"background.paper"}};function j2r(e){let t=C1e[e];return{p:2,borderColor:t.ring?"info.main":t.borderColor,bgcolor:t.bgcolor,...t.ring?{boxShadow:"0 0 0 2px"}:{}}}var Y2r={done:"\u2713",current:"\u2022",upcoming:"\u2022"};var Z2r=E(de(),1);var K2r=E(de(),1),Ev=E($(),1);function X2r({phaseName:e,onConfirm:t,onCancel:r}){let[n,i]=(0,K2r.useState)("");return(0,Ev.jsxs)(Wl,{open:!0,onClose:r,maxWidth:"xs",fullWidth:!0,children:[(0,Ev.jsxs)(ku,{children:["Rewind to ",e,"?"]}),(0,Ev.jsxs)(wu,{children:[(0,Ev.jsx)(Le,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"This will mark all later phases as incomplete."}),(0,Ev.jsx)(Qn,{fullWidth:!0,multiline:!0,rows:3,size:"small",placeholder:"Reason for rewinding...",value:n,onChange:o=>i(o.target.value)})]}),(0,Ev.jsxs)(cd,{children:[(0,Ev.jsx)(Dt,{onClick:r,children:"Cancel"}),(0,Ev.jsx)(Dt,{variant:"contained",color:"warning",disabled:n.trim().length===0,onClick:()=>t(n.trim()),children:"Rewind"})]})]})}var _A=E($(),1);function Q2r({itemId:e,phaseNumber:t,phaseName:r,onRewound:n}){let i=Pa(),o=yr(),[a,s]=(0,Z2r.useState)(!1);return(0,_A.jsxs)(_A.Fragment,{children:[(0,_A.jsx)(Dt,{size:"small",color:"warning",variant:"outlined",onClick:()=>s(!0),sx:{ml:"auto",textTransform:"none",fontSize:"0.75rem"},children:"Rewind"}),a&&(0,_A.jsx)(X2r,{phaseName:r,onConfirm:async l=>{await uit(e,t,l,i,o),await n()},onCancel:()=>s(!1)})]})}var GF=E($(),1),OJn={done:{label:"Done",color:"success"},current:{label:"In Progress",color:"info"},upcoming:{label:"Upcoming",color:"default"}},BJn={alignItems:"center",mb:1},FJn={fontWeight:500},$Jn={fontWeight:500,fontSize:"0.75rem"};function J2r({phase:e,index:t,status:r,itemId:n,onRewind:i}){let o=OJn[r],a=r==="done"&&n!==void 0&&i;return(0,GF.jsxs)(Rt,{direction:"row",spacing:1,sx:BJn,children:[(0,GF.jsxs)(Le,{sx:FJn,children:["Phase ",t+1,": ",e.name]}),(0,GF.jsx)(rn,{label:o.label,size:"small",color:o.color,sx:$Jn}),a&&(0,GF.jsx)(Q2r,{itemId:n,phaseNumber:t+1,phaseName:e.name,onRewound:i})]})}var cX=E($(),1),zJn={color:"text.secondary",fontSize:"0.75rem",letterSpacing:"0.08em",display:"block"},HJn={color:"text.secondary",fontSize:"0.75rem",fontFamily:"monospace",display:"block"};function eSr({sessions:e}){return(0,cX.jsxs)(ie,{sx:{mb:1},children:[(0,cX.jsx)(Le,{variant:"overline",sx:zJn,children:"Sessions"}),e.map(t=>(0,cX.jsx)(Le,{sx:HJn,children:`${t.hostname} / ${t.osUser} / ${t.claudeSessionId}`},t.claudeSessionId))]})}var rSr=E($(),1),UJn={color:"text.secondary",fontSize:"0.75rem",mb:1,display:"block"};function tSr({usage:e}){return(0,rSr.jsx)(WF,{total:e,sx:UJn})}var VF=E($(),1);function nSr({tasks:e,marker:t}){return(0,VF.jsx)(ty,{disablePadding:!0,sx:{ml:.5},children:e.map(r=>(0,VF.jsxs)(LS,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,VF.jsx)(Le,{component:"span",sx:{color:"text.secondary",mr:1},children:t}),(0,VF.jsx)(Ou,{component:"span",className:"markdown",html:j9(r.task)})]},r.task))})}var g_=E($(),1);function iSr({phase:e,index:t,status:r,itemId:n,usage:i,sessions:o,onRewind:a}){let s=e.manualChecks??[],l=T1e(t);return(0,g_.jsxs)(tn,{variant:"outlined",id:l.id,sx:{...j2r(r),...l.sx},children:[(0,g_.jsx)(J2r,{phase:e,index:t,status:r,itemId:n,onRewind:a}),i&&(0,g_.jsx)(tSr,{usage:i}),(0,g_.jsx)(nSr,{tasks:e.tasks,marker:Y2r[r]}),s.length>0&&(0,g_.jsx)(q2r,{checks:s}),o&&o.length>0&&(0,g_.jsx)(eSr,{sessions:o})]})}var uX={name:"Review",tasks:[]};function w1e(e){return e.at(-1)?.name===uX.name?e.length-1:e.length}function k1e(e,t){if(t===void 0)return"upcoming";let r=e+1;return r<t?"done":r===t?"current":"upcoming"}function oSr(e=[]){return new Map(e.map(t=>[t.phaseIdx,t]))}function aSr(e=[]){let t=new Map;for(let r of e){let n=t.get(r.phaseIdx);n?n.push(r):t.set(r.phaseIdx,[r])}return t}var lWe=E($(),1);function sSr({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){let a=oSr(n),s=aSr(i),l=w1e(e),u=(i??[]).filter(d=>d.phaseIdx>=l),f=l===e.length&&u.length>0?[...e,uX]:e;return(0,lWe.jsx)(Rt,{spacing:1.5,children:f.map((d,h)=>(0,lWe.jsx)(iSr,{phase:d,index:h,status:k1e(h,t),itemId:r,usage:a.get(h),sessions:h===l?u:s.get(h),onRewind:h<e.length?o:void 0},d.name))})}var EA=E($(),1),WJn={alignItems:"baseline",justifyContent:"space-between",mb:1},GJn={color:"text.secondary",display:"block",letterSpacing:"0.08em"};function lSr({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){return e.length===0?null:(0,EA.jsxs)(ie,{...wv("plan"),children:[(0,EA.jsxs)(Rt,{direction:"row",sx:WJn,children:[(0,EA.jsx)(Le,{variant:"overline",sx:GJn,children:"Plan"}),n&&n.length>0&&(0,EA.jsx)(G2r,{usage:n})]}),(0,EA.jsx)(sSr,{phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o})]})}var y_=E($(),1);function cSr({item:e,onRewind:t,onCommentDeleted:r}){return(0,y_.jsxs)(y_.Fragment,{children:[e.plan&&(0,y_.jsx)(lSr,{phases:e.plan,currentPhase:e.currentPhase,itemId:e.id,usage:e.phaseUsage,sessions:e.phaseSessions,onRewind:t}),(0,y_.jsx)(N2r,{gitRefs:e.gitRefs??[],conversations:e.conversations}),e.comments&&(0,y_.jsx)(U2r,{comments:e.comments,itemId:e.id,onCommentDeleted:r})]})}var qF=E($(),1);function uSr({item:e,onRewind:t,onCommentDeleted:r}){return(0,qF.jsxs)(ie,{sx:{pt:2,flex:1,minWidth:0},children:[(0,qF.jsx)(k2r,{description:e.description}),(0,qF.jsx)(w2r,{criteria:e.acceptanceCriteria}),(0,qF.jsx)(cSr,{item:e,onRewind:t,onCommentDeleted:r})]})}var fSr="item-detail";var fX={wideQuery:`@container ${fSr} (min-width: 760px)`,containerSx:{containerType:"inline-size",containerName:fSr},columnsSx:{display:"flex",columnGap:3}};function VJn(e){let t=e.plan??[];if(t.length===0)return[];let r=w1e(t),i=r===t.length&&(e.phaseSessions??[]).some(o=>o.phaseIdx>=r)?[...t,uX]:t;return[{id:TA.plan,label:"Phases"},...i.map((o,a)=>({id:T1e(a).id,label:`${a+1}`,title:o.name,status:k1e(a,e.currentPhase),nested:!0}))]}function dSr(e){let t=[];return e.description&&t.push({id:TA.description,label:"Description"}),e.acceptanceCriteria.length>0&&t.push({id:TA.acceptanceCriteria,label:"Acceptance Criteria"}),t.push(...VJn(e)),(e.gitRefs?.length??0)+(e.conversations?.length??0)>0&&t.push({id:TA.activity,label:"Activity"}),(e.comments?.length??0)>0&&t.push({id:TA.comments,label:"Comments"}),t}var hSr="1.3125rem",pSr={position:"relative",borderRadius:1,"&::after":{content:'""',position:"absolute",inset:0,borderRadius:"inherit",pointerEvents:"none"},"&:hover::after":{bgcolor:"action.hover"},"&:active::after":{bgcolor:"action.selected"}},qJn={...pSr,display:"block",flexShrink:0,maxWidth:"100%",px:1,py:.5,border:0,bgcolor:"transparent",fontSize:hSr,lineHeight:1.2,letterSpacing:"0.02em",textAlign:"left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"text.secondary"},jJn={...pSr,display:"flex",alignItems:"center",justifyContent:"center",fontSize:hSr,width:"2em",height:"2em",flexShrink:0,lineHeight:1,borderRadius:"50%",border:1,color:"text.primary"},YJn={borderColor:"text.primary",borderWidth:3},KJn={color:"text.primary",fontWeight:700,"&::after":{bgcolor:"action.selected"}};function mSr(e,t){let r=e.status&&C1e[e.status];return r?{...jJn,ml:1.5,bgcolor:r.bgcolor,borderColor:r.borderColor,borderWidth:r.ring?3:1,...t&&YJn}:{...qJn,...t&&KJn}}var ySr=E($(),1);function gSr({section:e,active:t,onSelect:r}){return(0,ySr.jsx)(pn,{sx:mSr(e,t),onClick:()=>r(e.id),title:e.title??e.label,"aria-current":t?"true":void 0,children:e.label})}function vSr(e,t=sX){return Tme(e,t)}var cWe=E($(),1),XJn=48,ZJn=260,QJn={display:"none",[fX.wideQuery]:{display:"flex"},position:"sticky",top:S1e,alignSelf:"flex-start",width:ZJn,flexShrink:0,maxHeight:`calc(100vh - ${XJn}px - ${S1e})`,alignItems:"flex-start",overflowY:"auto",overflowX:"hidden",py:2};function JJn(e){document.getElementById(e)?.scrollIntoView({behavior:"smooth",block:"start"})}function bSr({item:e,headerHeight:t}){let r=dSr(e),n=vSr(r.map(i=>i.id),t);return r.length===0?null:(0,cWe.jsx)(Rt,{component:"nav",spacing:1,sx:QJn,children:r.map(i=>(0,cWe.jsx)(gSr,{section:i,active:i.id===n,onSelect:JJn},i.id))})}var SSr=E($(),1);function xSr({to:e}){let t=Ni();return(0,SSr.jsx)(Dt,{"data-backlog-focus":"back",variant:"text",size:"small",onClick:()=>t(e),sx:{mb:2,textTransform:"none"},children:"\u2190 Back"})}var TSr=E(de(),1);var RA=E($(),1);function CSr({itemId:e,onDeleted:t}){let r=Pa(),n=yr(),[i,o]=(0,TSr.useState)(!1);return(0,RA.jsxs)(RA.Fragment,{children:[i&&(0,RA.jsx)(yi,{onConfirm:async()=>{await cit(e,r,n),await t()},onCancel:()=>o(!1)}),(0,RA.jsx)(Dt,{variant:"contained",color:"error",size:"small",onClick:()=>o(!0),children:"Delete"})]})}var uWe=E($(),1),wSr=e=>{let{value:t,options:r,colors:n,onChange:i}=e;return(0,uWe.jsx)(DS,{value:t,onChange:o=>i(o.target.value),size:"small",sx:{fontSize:"0.75rem",fontWeight:500,borderRadius:4,bgcolor:n[t].bg,color:n[t].text,"& .MuiSelect-select":{py:.5,px:1.5},"& .MuiSelect-icon":{color:"inherit"}},children:r.map(o=>(0,uWe.jsx)(ln,{value:o,children:o},o))})};var fWe=E($(),1),eei={todo:{bg:"action.selected",text:"text.primary"},"in-progress":{bg:"warning.main",text:"warning.contrastText"},done:{bg:"success.main",text:"success.contrastText"},wontdo:{bg:"error.main",text:"error.contrastText"}},tei=["todo","in-progress","done","wontdo"];function kSr({current:e,onStatusChange:t}){return t?(0,fWe.jsx)(wSr,{value:e,options:tei,colors:eei,onChange:t}):(0,fWe.jsx)(rn,{label:e,size:"small",color:Uye[e],sx:{fontWeight:500,fontSize:"0.75rem"}})}var lS=E($(),1),rei={alignItems:"center",color:"text.disabled",fontSize:"0.875rem"},nei={fontWeight:500,fontSize:"0.75rem"},iei={color:"text.secondary",fontSize:"0.75rem"};function _Sr({item:e,onStatusChange:t}){let r=Hye[e.type];return(0,lS.jsxs)(Rt,{direction:"row",spacing:1,sx:rei,children:[(0,lS.jsx)(Le,{variant:"body2",color:"text.disabled",children:oo(e.id)}),r&&(0,lS.jsx)(rn,{label:e.type,size:"small",color:r,sx:nei}),(0,lS.jsx)(kSr,{current:e.status,onStatusChange:t}),(0,lS.jsx)(mL,{jiraKey:e.jiraKey}),(0,lS.jsx)(pT,{githubIssue:e.githubIssue,origin:e.origin}),e.usageTotal&&(0,lS.jsx)(WF,{total:e.usageTotal,sx:iei})]})}var ESr=E($(),1),RSr=st((0,ESr.jsx)("path",{d:"M3 17v2h6v-2zM3 5v2h10V5zm10 16v-2h8v-2h-8v-2h-2v6zM7 9v2H3v2h4v2h2V9zm14 4v-2H11v2zm-6-4h2V7h4V5h-4V3h-2z"}),"Tune");var _1e=E(de(),1);var L0=E($(),1);function ASr({itemId:e}){let{launched:t,launch:r}=o1e(e),n=a_(),i=(0,_1e.useRef)(null),[o,a]=(0,_1e.useState)(!1),s=u=>u.stopPropagation(),l=Jye(n);return(0,L0.jsxs)(L0.Fragment,{children:[(0,L0.jsxs)(RS,{ref:i,variant:"outlined",size:"small",disabled:t,children:[(0,L0.jsx)(Dt,{startIcon:(0,L0.jsx)(RSr,{}),onClick:u=>{s(u),r([])},children:"Refine"}),l.length>0&&(0,L0.jsx)(Dt,{size:"small","aria-label":"Refine with a different harness",onClick:u=>{s(u),a(!0)},children:(0,L0.jsx)(bd,{})})]}),(0,L0.jsx)(e1e,{anchorEl:i.current,open:o,onClose:()=>a(!1),options:l,onSelect:u=>{a(!1),r(["--harness",u])},stop:s})]})}var jF=E(de(),1);function PSr(){let e=(0,jF.useRef)(null),[t,r]=(0,jF.useState)(!1);return(0,jF.useEffect)(()=>{let n=e.current;if(!n)return;let i=new IntersectionObserver(([o])=>r(!o.isIntersecting),{threshold:0});return i.observe(n),()=>i.disconnect()},[]),{sentinelRef:e,stuck:t}}var id=E($(),1),oei={justifyContent:"space-between",alignItems:"center",mb:2};function aei(e){return e.palette.mode==="dark"?"0 8px 8px -9px rgba(0, 0, 0, 0.8)":"0 6px 6px -7px rgba(0, 0, 0, 0.2)"}function sei(e){return t=>({position:"sticky",top:0,zIndex:1,bgcolor:"background.default",mx:-2,px:2,pb:2,borderBottom:1,borderColor:"divider",boxShadow:e?aei(t):"none",transition:t.transitions.create("box-shadow")})}function LSr({item:e,onDeleted:t,onStatusChange:r,ref:n}){let{sentinelRef:i,stuck:o}=PSr();return(0,id.jsxs)(id.Fragment,{children:[(0,id.jsx)(ie,{ref:i,sx:{height:0}}),(0,id.jsxs)(ie,{ref:n,sx:sei(o),children:[(0,id.jsxs)(Rt,{direction:"row",sx:oei,children:[(0,id.jsx)(xSr,{to:"/backlog"}),(0,id.jsxs)(Rt,{direction:"row",spacing:1,children:[Zye(e)&&(0,id.jsx)(y1e,{itemId:e.id}),(0,id.jsx)(ASr,{itemId:e.id}),(0,id.jsx)(CSr,{itemId:e.id,onDeleted:t})]})]}),(0,id.jsx)(Le,{variant:"h5",component:"h2",children:e.name}),(0,id.jsx)(_Sr,{item:e,onStatusChange:r})]})]})}var MSr=E(de(),1);function ISr(){let e=(0,MSr.useRef)(null),t=r0e(e,sX),r={[aWe]:`${t}px`};return{headerRef:e,headerHeight:t,style:r}}var v_=E($(),1);function DSr({item:e,onReload:t}){let r=Ni(),n=Pa(),i=yr(),{headerRef:o,headerHeight:a,style:s}=ISr();return _y("ItemDetail"),(0,v_.jsxs)(ie,{style:s,children:[(0,v_.jsx)(LSr,{ref:o,item:e,onDeleted:async()=>{await t(),r("/backlog")},onStatusChange:async f=>{await wL(e.id,f,n,i),await t()}}),(0,v_.jsx)(ie,{sx:fX.containerSx,children:(0,v_.jsxs)(ie,{sx:fX.columnsSx,children:[(0,v_.jsx)(uSr,{item:e,onRewind:t,onCommentDeleted:t}),(0,v_.jsx)(bSr,{item:e,headerHeight:a})]})})]})}var AA=E($(),1),lei={display:"flex",justifyContent:"center",py:6};function NSr({onReload:e}){let[t]=Uc(),r=t.get("cwd")||void 0,n=t.get("node")||void 0,i=Fn(),o=_c().nodes?.local,a=(0,E1e.useMemo)(()=>T2r(i,r,n,o),[i,r,n,o]);return _y("ItemRoute"),(0,AA.jsx)(JH.Provider,{value:a,children:(0,AA.jsx)(mf.Provider,{value:a.selectedNode,children:(0,AA.jsx)(cei,{onReload:e})})})}function cei({onReload:e}){let{id:t}=KTe(),r=Number.NaN;try{r=cte(t??"")}catch{r=Number.NaN}let{item:n,loading:i,reload:o}=v2r(r),a=(0,E1e.useCallback)(async()=>{await Promise.all([o(),e()])},[o,e]);return i?(0,AA.jsx)(ie,{sx:lei,children:(0,AA.jsx)(io,{})}):n?(0,AA.jsx)(DSr,{item:n,onReload:a}):null}var PA=E($(),1);function OSr({items:e,loading:t,error:r,socket:n,onReload:i}){return(0,PA.jsxs)(Y5,{children:[(0,PA.jsx)(Ts,{index:!0,element:(0,PA.jsx)(y2r,{items:e,loading:t,error:r,socket:n,onReload:i})}),(0,PA.jsx)(Ts,{path:"items/:id",element:(0,PA.jsx)(NSr,{onReload:i})})]})}var M0=E(de(),1);var BSr=new Map;function FSr(e,t,r){return JSON.stringify([e??null,t,r??null])}var dX={get(e,t,r){return BSr.get(FSr(e,t,r))},set(e,t,r,n){BSr.set(FSr(e,t,n),r)}};function uei(e,t){return e===t?!0:!e||!t?!1:e.tokensUp===t.tokensUp&&e.tokensDown===t.tokensDown&&e.activeMs===t.activeMs&&e.peakContextPct===t.peakContextPct}function $Sr(e,t){return e===t?!0:e.length!==t.length?!1:e.every((r,n)=>{let i=t[n];return r.id===i.id&&r.type===i.type&&r.name===i.name&&r.status===i.status&&r.starred===i.starred&&uei(r.usageTotal,i.usageTotal)})}function zSr({setItems:e,setLoading:t,setError:r}){return{onLoaded:n=>{e(i=>$Sr(i,n)?i:n),t(!1),r(null)},onError:n=>{t(!1),r(n)}}}async function HSr(e,t,r,n){let i=await gT({cwd:e,node:n,signal:r,filter:t});return r.aborted||dX.set(e,t,i,n),i}function USr(e,t,r,{onLoaded:n,onError:i},o){return(async()=>{try{let a=await HSr(e,t,r,o);r.aborted||n(a)}catch(a){r.aborted||i(a instanceof Error?a.message:"Failed to load.")}})()}var fei=5e3;function WSr(e,t,r,n){let i=new AbortController,o=!1,a=()=>{o||(o=!0,USr(e,t,i.signal,r,n).finally(()=>{o=!1}))};a();let s=setInterval(a,fei);return()=>{i.abort(),clearInterval(s)}}function GSr(){let e=Pa(),t=yr(),[r]=MF(),n=dX.get(e,r,t),i=n??[],o=n===void 0,[a,s]=(0,M0.useState)(i),[l,u]=(0,M0.useState)(o),[f,d]=(0,M0.useState)(null),[h,p]=(0,M0.useState)(e),[m,g]=(0,M0.useState)(t),[y,v]=(0,M0.useState)(r);(e!==h||t!==m||r!==y)&&(p(e),g(t),v(r),s(i),u(o),d(null));let b=(0,M0.useCallback)(async()=>{let x=await gT({cwd:e,node:t,filter:r});s(x),dX.set(e,r,x,t),u(!1)},[e,t,r]);return(0,M0.useEffect)(()=>WSr(e,r,zSr({setItems:s,setLoading:u,setError:d}),t),[e,t,r]),{items:a,loading:l,error:f,reload:b}}var YF=E($(),1);function VSr({socket:e}){let{items:t,loading:r,error:n,reload:i}=GSr();return wre(!r),(0,YF.jsx)(YUe.Provider,{value:e.sessions,children:(0,YF.jsx)(eWe.Provider,{value:e.selectSession,children:(0,YF.jsx)(Y5,{children:(0,YF.jsx)(Ts,{path:"/*",element:(0,YF.jsx)(OSr,{items:t,loading:r,error:n,socket:e,onReload:i})})})})})}var dWe=E($(),1);function qSr({socket:e}){return(0,dWe.jsx)(fz,{maxWidth:"lg",sx:{py:3,px:2},children:(0,dWe.jsx)(VSr,{socket:e})})}var Mi=E($(),1);function jSr({socket:e}){return _y("AppRoutes"),(0,Mi.jsxs)(Mi.Fragment,{children:[(0,Mi.jsx)(ecr,{}),(0,Mi.jsx)(Y5,{children:(0,Mi.jsxs)(Ts,{element:(0,Mi.jsx)(ast,{socket:e}),children:[(0,Mi.jsx)(Ts,{path:"sessions",element:(0,Mi.jsx)(vvr,{socket:e})}),(0,Mi.jsx)(Ts,{path:"backlog/*",element:(0,Mi.jsx)(qSr,{socket:e})}),(0,Mi.jsx)(Ts,{path:"next",element:(0,Mi.jsx)(elr,{sessions:e.sessions,selectSession:e.selectSession})}),(0,Mi.jsx)(Ts,{path:"news",element:(0,Mi.jsx)(lsr,{})}),(0,Mi.jsx)(Ts,{path:"releases",element:(0,Mi.jsx)(Xlr,{})}),(0,Mi.jsx)(Ts,{path:"usage",element:(0,Mi.jsx)(nxr,{})}),(0,Mi.jsx)(Ts,{path:"backups",element:(0,Mi.jsx)(pst,{})}),(0,Mi.jsx)(Ts,{path:"config",element:(0,Mi.jsx)(mct,{})}),(0,Mi.jsx)(Ts,{path:"updates",element:(0,Mi.jsx)(hbr,{reconnecting:e.reconnecting,selectSession:e.selectSession})}),(0,Mi.jsx)(Ts,{path:"diff",element:(0,Mi.jsx)(Ear,{socket:e})}),(0,Mi.jsx)(Ts,{path:"file",element:(0,Mi.jsx)(nsr,{socket:e})}),(0,Mi.jsx)(Ts,{path:"*",element:(0,Mi.jsx)(tCe,{to:"/sessions",replace:!0})})]})})]})}var M1e=E(de(),1);var L1e=E(de(),1);function YSr(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 b_=E($(),1),dei={display:"flex",gap:1,alignItems:"center",minWidth:0},hei={display:"flex",gap:1,alignItems:"baseline",minWidth:0,overflow:"hidden"},pei={fontFamily:"monospace",fontSize:13,whiteSpace:"nowrap"},mei={fontFamily:"monospace",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function gei(e){let t=e.lastIndexOf("/");return t===-1?{dir:"",basename:e}:{dir:e.slice(0,t),basename:e.slice(t+1)}}function KSr({files:e,highlight:t,onHighlight:r,onSelect:n}){return(0,b_.jsx)(zp,{dense:!0,sx:{py:0},children:e.map((i,o)=>{let{dir:a,basename:s}=gei(i);return(0,b_.jsxs)(ln,{selected:o===t,onMouseEnter:()=>r(o),onClick:()=>n(i),sx:dei,children:[(0,b_.jsx)(tB,{path:i}),(0,b_.jsxs)(ie,{sx:hei,children:[(0,b_.jsx)(Le,{component:"span",sx:pei,children:s}),(0,b_.jsx)(Le,{component:"span",color:"text.secondary",sx:mei,children:a})]})]},i)})})}var R1e=E($(),1),yei={maxHeight:420,overflowY:"auto"},vei={px:2,py:2,fontSize:13};function XSr({message:e,files:t,highlight:r,onHighlight:n,onSelect:i}){return(0,R1e.jsx)(ie,{sx:yei,children:e?(0,R1e.jsx)(Le,{color:"text.secondary",sx:vei,children:e}):(0,R1e.jsx)(KSr,{files:t,highlight:r,onHighlight:n,onSelect:i})})}var ZSr=E($(),1),bei={mt:6,alignSelf:"flex-start"};function A1e({onClose:e,onEntered:t,centered:r=!1,children:n}){return(0,ZSr.jsx)(Wl,{open:!0,onClose:e,maxWidth:"sm",fullWidth:!0,slotProps:{paper:{sx:r?void 0:bei},transition:{onEntered:t}},children:n})}var P1e=E(de(),1);var QSr={files:[],loading:!1,error:!1};function JSr(e,t){let[r,n]=(0,P1e.useState)(QSr),i=yr();return(0,P1e.useEffect)(()=>{if(!e){n(QSr);return}let o=!1;return n(s=>({...s,loading:!0})),(async()=>{try{let s=await fetch(qr(`/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 LA=E($(),1);function xei(e,t,r){let n=new URLSearchParams({path:e});return t&&n.set("cwd",t),t&&r&&n.set("node",r),`/file?${n}`}function eTr({onClose:e}){let{worktreeNode:t}=Fn();return(0,LA.jsx)(mf.Provider,{value:t,children:(0,LA.jsx)(Sei,{onClose:e})})}function Sei({onClose:e}){let{worktreeCwd:t,worktreeNode:r}=Fn(),[n,i]=(0,L1e.useState)(""),o=JSr(t,n),a=Ni(),s=(0,L1e.useRef)(null),l=p=>a(xei(p,t,r)),{highlight:u,setHighlight:f,onKeyDown:d}=f_(o.files,n,l,e),h=p=>{l(p),e()};return(0,LA.jsxs)(A1e,{onClose:e,onEntered:()=>s.current?.focus(),children:[(0,LA.jsx)(hT,{autoFocus:!0,inputRef:s,value:n,onChange:i,onKeyDown:d,placeholder:"Search files by name..."}),(0,LA.jsx)(XSr,{message:YSr(t,n,o),files:o.files,highlight:u,onHighlight:f,onSelect:h})]})}function tTr(e){Eo(qn("quickOpen").matches,e)}var nTr=E($(),1);function rTr(){let[e,t]=(0,M1e.useState)(!1);return tTr((0,M1e.useCallback)(()=>t(!0),[])),e?(0,nTr.jsx)(eTr,{onClose:()=>t(!1)}):null}var I1e=E($(),1);function iTr({notice:e,onClose:t,onView:r}){let n=e?.sessionId??null;return(0,I1e.jsx)(pl,{open:e!==null,autoHideDuration:6e3,onClose:t,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,I1e.jsx)(gi,{severity:"success",variant:"filled",onClose:t,action:n!==null?(0,I1e.jsx)(Dt,{color:"inherit",size:"small",onClick:()=>r(n),children:"View"}):void 0,children:e?.message})})}var mX=E(de(),1);function oTr(e){let t=["claude"];return e.exposeCodexActions&&t.push("codex"),e.exposePiActions&&t.push("pi"),t}var vTr=E(de(),1);var aTr=E($(),1),sTr=st((0,aTr.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 x_="0.932.2";var Tei={connected:"success.main",connecting:"warning.main",disconnected:"error.main","version-blocked":"error.main"};function lTr(e){return e?Tei[e]:"success.main"}function cTr(e){return e.split("-")[0].split(".").map(Number)}function uTr(e,t){if(!e||!t||e===t)return;let r=cTr(e),n=cTr(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 D1e=E(de(),1),hWe=(0,D1e.createContext)(null);function N1e(){return(0,D1e.useContext)(hWe)}var MA=E($(),1),Cei={height:16,fontSize:10},wei={opacity:.6,fontSize:"0.85em"};function kei(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 hX({nodes:e,name:t,showVersion:r=!1}){let n=N1e()??x_,i=e.links.find(a=>a.name===t),o=uTr(i?.peerVersion,n);return(0,MA.jsx)(lr,{title:kei(e,t),placement:"right",children:(0,MA.jsxs)(ie,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.75},children:[(0,MA.jsx)(sTr,{sx:{fontSize:8,color:lTr(i?.state)}}),t,r&&i?.peerVersion&&(0,MA.jsxs)(ie,{component:"span",sx:wei,children:["v",i.peerVersion]}),o&&(0,MA.jsx)(rn,{label:o,size:"small",color:o==="behind"?"warning":"info",sx:Cei})]})})}var IA=E($(),1),_ei={opacity:.6},Eei={display:"inline-flex",alignItems:"center",gap:.5,px:.5,border:1,borderStyle:"dashed",borderRadius:1};function fTr({nodes:e,name:t,clone:r}){let n=(0,IA.jsx)(hX,{nodes:e,name:t});return r.kind==="cloned"?n:r.kind==="unavailable"?(0,IA.jsx)(ie,{component:"span",sx:_ei,children:n}):(0,IA.jsx)(lr,{title:NF(t,r.cloneTarget),children:(0,IA.jsxs)(ie,{component:"span",sx:Eei,children:[(0,IA.jsx)(DF,{sx:{fontSize:14}}),n]})})}var hTr=E($(),1),Rei={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 dTr({value:e,label:t,checked:r,autoFocus:n,onSelect:i}){return(0,hTr.jsx)(pn,{role:"radio","aria-checked":r,"data-value":e,tabIndex:r?0:-1,autoFocus:n&&r,onClick:i,sx:Rei,children:t})}var pTr={ArrowRight:1,ArrowLeft:-1};function Aei(e,t,r){if(e.key==="Tab"){let n=t+(e.shiftKey?-1:1);return n>=0&&n<r?n:void 0}return(t+pTr[e.key]+r)%r}function mTr(e,t,r,n){return i=>{if(i.key==="ArrowUp"||i.key==="ArrowDown"){if(!n)return;i.preventDefault(),n();return}if(i.key!=="Tab"&&!pTr[i.key]){E2(i);return}let o=Aei(i,e.indexOf(t),e.length);o!==void 0&&(i.preventDefault(),r(e[o]),i.currentTarget.querySelector(`[data-value="${e[o]}"]`)?.focus())}}var gTr=E(de(),1);function KF(e){return e?.querySelector('[aria-checked="true"]')}function yTr(e,t){(0,gTr.useEffect)(()=>{let r=e.current;if(!r?.contains(document.activeElement))return;let n=KF(r);n&&n!==document.activeElement&&n.focus()},[e,t])}var pWe=E($(),1),Pei={border:1,borderColor:"divider",borderRadius:1,height:40,p:"2px",flexShrink:0};function O1e({label:e,options:t,value:r,onChange:n,optionLabel:i=u=>u,groupRef:o,autoFocus:a,onTrack:s,onToggleRow:l}){return yTr(o,r),(0,pWe.jsx)(Rt,{ref:o,direction:"row",role:"radiogroup","aria-label":e,spacing:"2px",onFocus:s,onKeyDown:mTr(t,r,n,l),sx:Pei,children:t.map(u=>(0,pWe.jsx)(dTr,{value:u,label:i(u),checked:u===r,autoFocus:a,onSelect:()=>n(u)},u))})}var mWe=E($(),1);function bTr({value:e,onChange:t,cloneState:r}){let{nodes:n,names:i,visible:o}=_c(),a=(0,vTr.useRef)(null);return!o||!n||!e?null:(0,mWe.jsx)(O1e,{label:"Machine",options:i,value:e,onChange:t,optionLabel:s=>(0,mWe.jsx)(fTr,{nodes:n,name:s,clone:r(s)}),groupRef:a,autoFocus:!1,onTrack:()=>{}})}var STr=E($(),1);function xTr({value:e,onChange:t,placeholder:r,inputRef:n,autoFocus:i,onTrack:o}){return(0,STr.jsx)(Qn,{value:e,onChange:a=>t(a.target.value),onKeyDown:E2,onFocus:o,onSelect:o,inputRef:n,placeholder:r,autoFocus:i,fullWidth:!0,multiline:!0,minRows:3,maxRows:12,slotProps:{htmlInput:{"aria-label":"Prompt"},input:{sx:{fontSize:14}}}})}var kTr=E(de(),1);var cS={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:kge,submitLabel:"Start session"},design:{placeholder:"Describe the design task...",submitLabel:"Start design"}},TTr=Object.keys(cS);var gWe=E($(),1);function CTr({anchor:e,harness:t,harnesses:r,onPick:n,onClose:i}){return(0,gWe.jsx)(Os,{open:e!==null,anchorEl:e,onClose:i,slotProps:{list:{dense:!0,"aria-label":"Harness"}},children:r.map(o=>(0,gWe.jsx)(ln,{role:"menuitemradio","aria-checked":o===t,selected:o===t,onClick:()=>{n(o),i()},sx:{fontSize:13},children:Mu(o)},o))})}var DA=E($(),1);function wTr(e){return t=>t==="prompt"&&e?(0,DA.jsxs)(DA.Fragment,{children:["prompt",(0,DA.jsx)(ie,{component:"span",sx:{fontWeight:400,whiteSpace:"pre"},children:` \xB7 ${Mu(e)}`}),(0,DA.jsx)(bd,{sx:{fontSize:18,mr:-.75}})]}):t}var NA=E($(),1);function _Tr({draft:e,harness:t,harnesses:r,focus:n}){let[i,o]=(0,kTr.useState)(null),a=e.mode==="prompt"&&r.length>1,s=()=>o(KF(n.modeRef.current)??null),l=u=>{a&&u==="prompt"?s():e.setMode(u)};return(0,NA.jsxs)(NA.Fragment,{children:[(0,NA.jsx)(O1e,{label:"Mode",options:TTr,value:e.mode,onChange:l,optionLabel:wTr(r.length>1?t:void 0),groupRef:n.modeRef,autoFocus:n.autoFocus==="mode",onTrack:n.trackMode,onToggleRow:a?s:void 0}),(0,NA.jsx)(CTr,{anchor:i,harness:t,harnesses:r,onPick:e.setHarness,onClose:()=>o(null)})]})}var BTr=E(de(),1);var yWe=E($(),1),Lei={zIndex:e=>e.zIndex.modal+1};function ETr({open:e,anchor:t,children:r}){return(0,yWe.jsx)(W6,{open:e,anchorEl:t,placement:"bottom-start",sx:Lei,children:(0,yWe.jsx)(tn,{sx:{maxHeight:240,overflowY:"auto",width:t?.clientWidth},onMouseDown:n=>n.preventDefault(),children:r})})}function RTr(e){return{htmlInput:{role:"combobox","aria-label":"Repo","aria-expanded":e},input:{sx:{fontSize:13,height:40}}}}var ATr=E(H$(),1);function PTr({open:e,highlighted:t,accept:r,close:n,navigate:i,openList:o}){return a=>{if(!e){if(a.key==="ArrowDown"){a.preventDefault(),o();return}E2(a);return}if(a.key!=="Escape"){if(a.key==="Enter"){if(a.preventDefault(),t===void 0)return;(0,ATr.flushSync)(()=>{r(t),n()}),E2(a);return}if(a.key!=="Tab"){i(a);return}t!==void 0&&r(t),n()}}}function LTr(e,t){let r=t.trim().toLowerCase();return r?e.filter(n=>Tv(n).toLowerCase().includes(r)):e}var vWe=E(de(),1);function MTr(){let[e,t]=(0,vWe.useState)(!1),[r,n]=(0,vWe.useState)("");return{open:e,query:r,show:()=>t(!0),filterBy:i=>{n(i),t(!0)},close:()=>{t(!1),n("")}}}var DTr=E(de(),1);var ITr=e=>e?Tv(e):"";function NTr(e){let[t,r]=(0,DTr.useState)(()=>ITr(e));return{text:t,setText:r,showRepo:n=>r(ITr(n))}}function OTr(e,t,r){let n=MTr(),i=NTr(t),o=LTr(e,n.query),a=f=>{r(f),i.showRepo(f)},s=f_(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:PTr({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 XF=E($(),1);function FTr({repos:e,value:t,onChange:r,inputRef:n,autoFocus:i,onTrack:o}){let a=OTr(e,t,r),s=(0,BTr.useRef)(null);return(0,XF.jsxs)(ie,{ref:s,sx:{flex:1,minWidth:0},children:[(0,XF.jsx)(Qn,{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:RTr(a.open)}),(0,XF.jsx)(ETr,{open:a.open,anchor:s.current,children:(0,XF.jsx)(p1e,{repos:a.filtered,selected:t,highlight:a.highlight,onHighlight:a.setHighlight,onSelect:a.pick})})]})}var S_=E($(),1);function $Tr({cloneState:e,...t}){let{draft:r,focus:n}=t,{repos:i}=Fn();return(0,S_.jsxs)(Rt,{spacing:1,sx:{p:1},children:[(0,S_.jsx)(xTr,{value:r.prompt,onChange:r.setPrompt,placeholder:cS[r.mode].placeholder,inputRef:n.promptRef,autoFocus:n.autoFocus==="prompt",onTrack:n.trackPrompt}),(0,S_.jsxs)(Rt,{direction:"row",spacing:1,sx:{alignItems:"flex-start"},children:[(0,S_.jsx)(FTr,{repos:i,value:r.cwd,onChange:r.setCwd,inputRef:n.repoRef,autoFocus:n.autoFocus==="repo",onTrack:n.trackRepo}),(0,S_.jsx)(_Tr,{...t})]}),(0,S_.jsx)(bTr,{value:r.node,onChange:r.setNode,cloneState:e})]})}var ZF=E($(),1),Mei=["Enter start","Shift+Enter newline","Esc close"],Iei={alignItems:"center",px:1.5,py:1,borderTop:1,borderColor:"divider",bgcolor:"action.hover"};function zTr({submitLabel:e,disabled:t=!1,loading:r=!1}){return(0,ZF.jsxs)(Rt,{direction:"row",spacing:1.5,sx:Iei,children:[(0,ZF.jsx)(Rt,{direction:"row",spacing:1.5,sx:{mr:"auto"},children:Mei.map(n=>(0,ZF.jsx)(Le,{variant:"caption",color:"text.secondary",children:n},n))}),(0,ZF.jsx)(Dt,{type:"submit",variant:"contained",size:"small",disabled:t,loading:r,children:e})]})}var OA=E(de(),1);function HTr(e,t){let r=(0,OA.useRef)(e),n=(0,OA.useRef)(null),i=(0,OA.useRef)(null),o=(0,OA.useRef)(null),a=(0,OA.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:KF(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 Dei(e,t,r){return e?r.kind==="cloned"?{kind:"launch",cwd:r.cwd}:r.kind==="clonable"?{kind:"clone",prompt:g1e(r,t)}:{kind:"blocked"}:{kind:"launch",cwd:e}}function UTr(e,t){let{names:r,visible:n}=_c(),i=f1e(t,n?r:[void 0]);return{cloneState:i,target:Dei(t,e,i(e))}}function WTr({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}]:[];Vcr(cS[e].sessionMode,n,(u,f)=>o.onCreateAssist(u,f,...l),()=>{},r)}function GTr(e,t,r,n){return r.kind==="blocked"||e.modePending?!1:r.kind==="clone"?(n1e(r.prompt,n.onCreateAssist),!0):(WTr({mode:e.mode,harness:t,prompt:e.prompt,cwd:r.cwd,node:e.node},n),e.clear(),!0)}var B1e=E(de(),1);function VTr(e,t){let[r,n]=(0,B1e.useState)(!1);return(0,B1e.useEffect)(()=>{!r||e.modePending||(n(!1),t())},[r,e.modePending,t]),()=>{e.modePending?n(!0):t()}}function qTr(e,t,r,n,i){let o=VTr(e,()=>{GTr(e,t,r,n)&&i()});return a=>{a.preventDefault(),o()}}var pX=E(de(),1);function jTr(e,t){let r=(0,pX.useRef)(e),n=(0,pX.useRef)(null);return(0,pX.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 KTr=E($(),1),Nei={border:0,margin:0,padding:0,minWidth:0};function YTr({loading:e,restoreFocus:t,children:r}){let n=jTr(e,t);return(0,KTr.jsx)("fieldset",{disabled:e,style:Nei,onFocus:n,children:r})}var BA=E($(),1);function XTr({draft:e,launchers:t,onClose:r}){let n=HTr(e.focus,e.setFocus),i=oTr(a_()),o=i.includes(e.harness)?e.harness:"claude",{target:a,cloneState:s}=UTr(e.node,e.cwd),l=qTr(e,o,a,t,r);return(0,BA.jsx)(A1e,{onClose:r,onEntered:n.restore,centered:!0,children:(0,BA.jsx)("form",{onSubmit:l,children:(0,BA.jsxs)(YTr,{loading:e.modePending,restoreFocus:n.restore,children:[(0,BA.jsx)($Tr,{draft:e,harness:o,harnesses:i,focus:n,cloneState:s}),(0,BA.jsx)(zTr,{submitLabel:a.kind==="clone"?"Clone":cS[e.mode].submitLabel,disabled:a.kind==="blocked",loading:e.modePending})]})})})}var F1e=E(de(),1);var Oei=1e3;async function Bei(e){try{let t=e?`?cwd=${encodeURIComponent(e)}`:"",n=await(await fetch(`/api/new-session-defaults${t}`)).json();return Object.hasOwn(cS,n?.mode)?n.mode:null}catch{return null}}function ZTr(e,t=0){let[r,n]=(0,F1e.useState)(null);return(0,F1e.useEffect)(()=>{let i=!1,o,a=async()=>{let s=await Bei(e);i||(s?n({cwd:e,opens:t,mode:s}):o=setTimeout(a,Oei))};return a(),()=>{i=!0,clearTimeout(o)}},[e,t]),r?{mode:r.mode,pending:r.cwd!==e||r.opens!==t}:null}function QTr(e,{visible:t,names:r,selected:n}){if(t)return e&&r.includes(e)?e:n}var uS=E(de(),1),JTr={field:"prompt",selectionStart:0,selectionEnd:0};function eCr(){let[e,t]=(0,uS.useState)(""),[r,n]=(0,uS.useState)(),[i,o]=(0,uS.useState)(),[a,s]=(0,uS.useState)("claude"),[l,u]=(0,uS.useState)(),[f,d]=(0,uS.useState)(JTr),h=(0,uS.useCallback)(()=>{t(""),n(void 0),o(void 0),u(void 0),d(JTr)},[]);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 tCr(e,t=ZTr){let{selectedCwd:r}=Fn(),n=_c(),i=eCr(),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:QTr(i.node,n)}:null}function rCr(e){Eo(qn("newSession").matches,e)}var nCr=E(de(),1);function iCr(e,t){let{selectedCwd:r}=Fn(),[n,i]=Uc(),o=n.get("new"),a=n.get("newCwd")??r,{setPrompt:s,setCwd:l,setFocus:u}=e??{};(0,nCr.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 aCr=E($(),1);function oCr({launchers:e}){let[t,r]=(0,mX.useState)(!1),[n,i]=(0,mX.useState)(0),o=tCr(n),a=(0,mX.useCallback)(()=>{r(!0),i(s=>s+1)},[]);return rCr(a),iCr(o,a),!t||!o?null:(0,aCr.jsx)(XTr,{draft:o,launchers:e,onClose:()=>r(!1)})}var $1e=E($(),1);function sCr({reconnecting:e}){return(0,$1e.jsx)(pl,{open:e,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,$1e.jsx)(gi,{severity:"info",variant:"filled",icon:(0,$1e.jsx)(io,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var Rv=E($(),1);function lCr({socket:e,onViewLaunchedSession:t}){return(0,Rv.jsxs)(Rv.Fragment,{children:[(0,Rv.jsx)(rTr,{}),(0,Rv.jsx)(oCr,{launchers:{onCreate:e.createSession,onCreateDesign:e.createDesignSession,onCreateHarness:e.createHarnessSession,onCreateAssist:e.createAssistSession}}),(0,Rv.jsx)(sCr,{reconnecting:e.reconnecting}),(0,Rv.jsx)(Xl,{error:e.error,onClose:e.clearError}),(0,Rv.jsx)(iTr,{notice:e.success,onClose:e.clearSuccess,onView:t})]})}var Av=E(de(),1);var Fei=6e4;function $ei(e,t,r){return t.map(n=>e.find(i=>i.name===n)??{name:n,local:n===r,loading:!0})}function cCr(e){let t=e.nodes?.local,r=e.names.join(`
4017
4017
  `),[n,i]=(0,Av.useState)([]),o=(0,Av.useRef)(0),a=(0,Av.useCallback)(()=>{let l=r?r.split(`
4018
4018
  `):[];if(l.length===0)return;let u=++o.current;i(f=>$ei(f,l,t));for(let f of l)Nye(f,f===t).then(d=>{u===o.current&&i(h=>h.map(p=>p.name===f?d:p))})},[r,t]);(0,Av.useEffect)(()=>{a();let l=setInterval(a,Fei);return()=>clearInterval(l)},[a]);let s=n.length===0;return(0,Av.useMemo)(()=>({entries:n,loading:s,refresh:a}),[n,s,a])}var T_=E($(),1);function uCr({shell:e,children:t}){let{socket:r,selection:n,launch:i,sidebarCollapse:o}=e,a=cCr(r.nodeSelection);return(0,T_.jsx)(OUe.Provider,{value:a,children:(0,T_.jsx)(zCe.Provider,{value:o,children:(0,T_.jsx)(JH.Provider,{value:n,children:(0,T_.jsx)(tWe.Provider,{value:r.nodeSelection,children:(0,T_.jsx)(mf.Provider,{value:n.selectedNode,children:(0,T_.jsx)(w$e.Provider,{value:i,children:(0,T_.jsx)(Snt,{children:t})})})})})})})}var fCr=E($(),1),dCr=st((0,fCr.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 hCr=E(de(),1);var I0=E($(),1),zei={ml:1,textTransform:"none",fontSize:12};function pCr(){let{nodes:e,names:t,visible:r,selected:n,select:i}=_c(),[o,a]=(0,hCr.useState)(null);return!r||!e||!n?null:(0,I0.jsxs)(I0.Fragment,{children:[(0,I0.jsx)(Dt,{size:"small",color:"inherit",startIcon:(0,I0.jsx)(dCr,{fontSize:"small"}),"aria-label":"Machine","aria-haspopup":"menu",onClick:s=>a(s.currentTarget),sx:zei,children:(0,I0.jsx)(hX,{nodes:e,name:n})}),(0,I0.jsx)(Os,{anchorEl:o,open:!!o,onClose:()=>a(null),children:t.map(s=>(0,I0.jsx)(ln,{selected:s===n,onClick:()=>{i(s),a(null)},sx:{fontSize:13},children:(0,I0.jsx)(hX,{nodes:e,name:s,showVersion:!0})},s))})]})}var gX=E(de(),1);function mCr(e,t){return[...e[0].slice(0,-1),String(t+1)]}var z1e=E($(),1);function gCr({index:e,label:t,...r}){let{chords:n}=qn("navTab");return(0,z1e.jsx)(lr,{describeChild:!0,title:(0,z1e.jsx)(Iu,{label:t,chords:[mCr(n,e)]}),children:(0,z1e.jsx)(Qv,{label:t,...r})})}var bWe=E(de(),1);function yCr(e,t){let{bound:r}=qn("navTab"),n=e.length,i=(0,bWe.useCallback)(a=>(lU(a,r)??n)<n,[r,n]),o=(0,bWe.useCallback)(a=>{let s=e[lU(a,r)??-1];s&&t(s)},[e,t,r]);Eo(i,o)}var H1e=E(de(),1);function vCr(){let[e,t]=(0,H1e.useState)(!1);return(0,H1e.useEffect)(()=>{let r=!1;return(async()=>{try{let i=await(await fetch("/api/news/nav")).json();r||t(i?.showInNav===!0)}catch{r||t(!1)}})(),()=>{r=!0}},[]),e}var U1e=E(de(),1);async function Hei(e,t){let r=await fetch(qr(`/api/releases/configured?cwd=${encodeURIComponent(e)}`,t));return r.ok?(await r.json())?.configured===!0:void 0}function bCr(e){let[t,r]=(0,U1e.useState)(null),n=yr(),i=`${n??""}\0${e}`;return(0,U1e.useEffect)(()=>{if(!e)return;let o=!1;return Hei(e,n).catch(()=>{}).then(a=>{o||r({key:i,configured:a})}),()=>{o=!0}},[e,n,i]),t?.key===i?t.configured:void 0}var xCr=E(de(),1);function SCr(e){let{pathname:t}=Uo(),r=Ni(),n=t==="/releases"||t.startsWith("/releases/");(0,xCr.useEffect)(()=>{e===!1&&n&&r("/sessions",{replace:!0})},[e,n,r])}var Uei={path:"/sessions",label:"Sessions"},Wei={path:"/backlog",label:"Backlog"},Gei={path:"/next",label:"Next"},Vei={path:"/releases",label:"Releases"},qei={path:"/news",label:"News"};function TCr(e,t){return[Uei,Wei,Gei,...e?[Vei]:[],...t?[qei]:[]]}var xWe=E($(),1);function CCr({cwd:e}){let t=Uo(),r=Ni(),n=bCr(e),i=vCr();SCr(n);let o=n===!0,a=(0,gX.useMemo)(()=>TCr(o,i),[o,i]),s=(0,gX.useMemo)(()=>a.map(f=>f.path),[a]),l=a.findIndex(f=>t.pathname.startsWith(f.path)),u=(0,gX.useCallback)(f=>{t.pathname!==f&&r(f)},[t.pathname,r]);return yCr(s,u),(0,xWe.jsx)(S5,{value:l===-1?!1:l,textColor:"inherit",indicatorColor:"secondary",children:a.map((f,d)=>(0,xWe.jsx)(gCr,{index:d,label:f.label,onClick:()=>u(f.path)},f.path))})}var wCr=E($(),1),kCr=st((0,wCr.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m5 11h-4v4h-2v-4H7v-2h4V7h2v4h4z"}),"AddCircle");var yX=E($(),1),jei={color:"success.light"};function _Cr(){let[,e]=Uc(),{label:t,chords:r}=qn("newSession");return(0,yX.jsx)(lr,{title:(0,yX.jsx)(Iu,{label:t,chords:r}),children:(0,yX.jsx)(ir,{size:"small",sx:jei,"aria-label":"New session",onClick:()=>e(i=>(i.set("new",""),i),{replace:!0}),children:(0,yX.jsx)(kCr,{})})})}var G1e=E(de(),1);var W1e=E($(),1),Yei={color:"inherit"};function ECr({cwd:e}){let[t,r]=(0,G1e.useState)(null),n=yr();return(0,G1e.useEffect)(()=>{if(!e){r(null);return}let i=!1;return(async()=>{try{let a=await(await fetch(qr(`/api/github-url?cwd=${encodeURIComponent(e)}`,n))).json();i||r(a?.url??null)}catch{i||r(null)}})(),()=>{i=!0}},[e,n]),t?(0,W1e.jsx)(lr,{title:"Open in GitHub",children:(0,W1e.jsx)(ir,{sx:Yei,onClick:()=>window.open(t,"_blank"),children:(0,W1e.jsx)(dL,{})})}):null}var DCr=E(de(),1);var Kei={ok:"success",warn:"warning",over:"error"},Xei={ok:W0.A100,warn:gve.A100,over:U0[100]},QF="rgba(255, 255, 255, 0.7)";function JF(e){return t=>t.palette.mode==="dark"?t.palette[Kei[e]].main:Xei[e]}var ICr=E(de(),1);function V1e(e,t,r){return e!=null?Wye(e,r):t}var q1e=E($(),1);function RCr({window:e,windowSeconds:t,fallbackLabel:r,now:n}){let i=e?.used_percentage;if(i==null)return null;let o=n_(i,e?.resets_at,t,n),a=V1e(e?.resets_at,r,n);return(0,q1e.jsxs)(ie,{component:"span",children:[(0,q1e.jsxs)(ie,{component:"span",sx:{color:JF(o)},children:[Math.round(i),"%"]})," ",(0,q1e.jsxs)(ie,{component:"span",sx:{color:QF},children:["(",a,")"]})]})}var FA=E($(),1),Zei='@property --rainbow-pill-h { syntax: "<number>"; inherits: true; initial-value: 0; }',Qei=ho`
4019
4019
  from { --rainbow-pill-h: 0; }
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.932.1",
9
+ version: "0.932.2",
10
10
  type: "module",
11
11
  main: "dist/index.js",
12
12
  bin: {
@@ -48561,6 +48561,13 @@ function endsStreamLife(session, status2, sharedWithOtherAgents) {
48561
48561
  return false;
48562
48562
  }
48563
48563
 
48564
+ // src/commands/sessions/daemon/autoDismissReason.ts
48565
+ function autoDismissReason(session) {
48566
+ if (session.reviewStarted)
48567
+ return `backlog run reached review (Continue ${session.autoAdvance ? "on" : "off"})`;
48568
+ return `assist ${session.assistArgs?.join(" ") ?? ""} exited cleanly`;
48569
+ }
48570
+
48564
48571
  // src/commands/sessions/daemon/SessionInterruption.ts
48565
48572
  var DAEMON_RESTART = "daemon-restart";
48566
48573
  function daemonRestartInterruption() {
@@ -48575,9 +48582,7 @@ function shouldAutoDismiss(session, exitCode) {
48575
48582
  if (session.status !== "done" || exitCode !== 0) {
48576
48583
  return false;
48577
48584
  }
48578
- if (session.reviewStarted) {
48579
- return session.autoAdvance === true;
48580
- }
48585
+ if (session.reviewStarted) return true;
48581
48586
  const args = session.assistArgs;
48582
48587
  if (args === void 0) return false;
48583
48588
  if (args[0] === "update") return true;
@@ -48597,8 +48602,12 @@ function finishStatusChange(session, status2, exitCode, deps2) {
48597
48602
  if (status2 !== "stopped") session.undurable = void 0;
48598
48603
  if (endsWithoutRestart(session, status2))
48599
48604
  reportUndeliveredPrompts(session, `ended (${status2})`);
48600
- if (shouldAutoDismiss(session, exitCode)) deps2.dismiss(session.id);
48601
- else deps2.notify();
48605
+ if (shouldAutoDismiss(session, exitCode)) {
48606
+ daemonLog(
48607
+ `session ${session.id} auto-dismissed: ${autoDismissReason(session)}`
48608
+ );
48609
+ deps2.dismiss(session.id);
48610
+ } else deps2.notify();
48602
48611
  }
48603
48612
 
48604
48613
  // src/commands/sessions/daemon/applyStatusChange.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@staff0rd/assist",
3
- "version": "0.932.1",
3
+ "version": "0.932.2",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "bin": {