@staff0rd/assist 0.795.2 → 0.796.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3973,7 +3973,7 @@ ${f.join(`
3973
3973
  `)})}var tB=P(z(),1);function Ohr({entry:e,state:t,actions:r}){return(0,tB.jsxs)(le,{sx:{px:2,pb:2,pl:{xs:2,sm:7.5},display:"grid",gap:1.5},children:[(0,tB.jsx)(Dhr,{entry:e,state:t,actions:r}),(0,tB.jsx)(Oe,{variant:"caption",color:"text.secondary",children:"History \xB7 ~/.assist/watchers/"}),(0,tB.jsx)(Nhr,{lines:e.status?.history??[]})]})}function rB(e){let t=e.status?.loop;return t!==void 0&&(t.phase!=="off"||t.paused===!0)}var nB=P(z(),1),SUn={display:"flex",gap:.5,flexWrap:"wrap",justifyContent:{xs:"flex-start",sm:"flex-end"},gridColumn:{xs:"1 / -1",sm:"auto"}};function Bhr({entry:e,state:t,actions:r}){let n=r.notices.busy[e.name],i=e.status?.loop.paused===!0;return(0,nB.jsxs)(le,{sx:SUn,children:[t.kind==="ready"&&(0,nB.jsx)(mge,{entry:e,actions:r}),t.kind==="diverged"&&(0,nB.jsx)(dge,{entry:e,actions:r}),rB(e)&&(0,nB.jsx)(qt,{size:"small",disabled:n!==void 0,onClick:()=>{r.control(e,i?"resume":"pause")},children:i?"Resume":"Pause"})]})}var CUn={ready:"warning",diverged:"error"},Fhr=e=>t=>{let r=CUn[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 $hr=P(z(),1),zhr=ut((0,$hr.jsx)("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"}),"ArrowUpward");var Hhr=P(z(),1),Uhr=ut((0,Hhr.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 Whr=P(z(),1),Vhr=ut((0,Whr.jsx)("path",{d:"M6 19h4V5H6zm8-14v14h4V5z"}),"Pause");var Ghr=P(z(),1),qhr=ut((0,Ghr.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 jhr=P(z(),1),Yhr=ut((0,jhr.jsx)("path",{d:"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z"}),"Warning");var q1=P(z(),1),wUn={ok:{tone:"success",icon:(0,q1.jsx)(X0,{})},ready:{tone:"warning",icon:(0,q1.jsx)(zhr,{})},diverged:{tone:"error",icon:(0,q1.jsx)(Yhr,{})},retrying:{tone:"warning",icon:(0,q1.jsx)($ee,{})},paused:{tone:"neutral",icon:(0,q1.jsx)(Vhr,{})},off:{tone:"neutral",icon:(0,q1.jsx)(qhr,{})},unavailable:{tone:"neutral",icon:(0,q1.jsx)(Uhr,{})}};function kUn(e,t){return t==="neutral"?e.palette.text.secondary:e.palette[t].main}function Khr({state:e}){let{tone:t,icon:r}=wUn[e.kind];return(0,q1.jsxs)(le,{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:kUn(n,t),bgcolor:t==="neutral"?n.palette.action.hover:Ea(n.palette[t].main,.1),border:t==="neutral"?`1px solid ${n.palette.divider}`:0,"& svg":{fontSize:14}}),children:[r,e.label]})}var sY=P(z(),1);function Xhr({state:e}){return(0,sY.jsxs)(le,{sx:{...fge,gridColumn:{xs:"2",sm:"auto"},gap:.25},children:[(0,sY.jsx)(Khr,{state:e}),(0,sY.jsx)(Oe,{variant:"caption",color:"text.secondary",noWrap:!0,children:e.line})]})}var j1=P(z(),1),Zhr={gridColumn:{xs:"2",sm:"auto"}},_Un={fontFamily:"'Roboto Mono', ui-monospace, Menlo, monospace",fontSize:12,fontVariantNumeric:"tabular-nums"};function Qhr({entry:e}){let t=e.status;if(!t)return(0,j1.jsx)(Oe,{variant:"caption",color:"text.secondary",sx:Zhr,children:"\u2014"});let r=t.running!==t.built;return(0,j1.jsxs)(le,{sx:{...Zhr,display:"flex",flexDirection:"column"},children:[(0,j1.jsxs)(le,{component:"span",sx:_Un,children:["v",t.running,r&&(0,j1.jsxs)(j1.Fragment,{children:[" ",(0,j1.jsx)(le,{component:"span",sx:{color:"warning.main"},children:"\u2192"})," ","v",t.built]})]}),(0,j1.jsx)(Oe,{variant:"caption",color:"text.secondary",children:r?"running \u2192 built":"running"})]})}function yge(e){return(e.status?.restart.length??0)>0}function Jhr(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 vk(e){let{status:t}=e;if(!t)return{kind:"unavailable",label:"Unavailable",line:e.error??"no update state"};let{loop:r}=t,n=Do(r.since);return r.phase==="diverged"?{kind:"diverged",label:"Diverged \xB7 fixing",line:`diverged ${n}${r.escalationId?` \xB7 session ${r.escalationId}`:""}`}:yge(e)?{kind:"ready",label:"Restart to update",line:`restart ${t.restart.map(J9).join(" + ")}${r.paused?" \xB7 paused":""}`}:Jhr(r,n)}var Y1=P(z(),1);function tpr({entry:e,actions:t}){let[r,n]=(0,epr.useState)(!1),i=vk(e);return(0,Y1.jsxs)(le,{component:"article",sx:{"& + &":{borderTop:1,borderColor:"divider"}},children:[(0,Y1.jsxs)(le,{sx:Fhr(i.kind),children:[(0,Y1.jsx)(Rhr,{open:r,label:`${r?"Hide":"Show"} history for ${e.name}`,onToggle:()=>n(o=>!o)}),(0,Y1.jsx)(Ahr,{entry:e}),(0,Y1.jsx)(Qhr,{entry:e}),(0,Y1.jsx)(Xhr,{state:i}),(0,Y1.jsx)(Bhr,{entry:e,state:i,actions:t})]}),r&&(0,Y1.jsx)(Ohr,{entry:e,state:i,actions:t})]})}var rpr=P(z(),1),vge=ut((0,rpr.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 O$e=P(ge(),1);var iB=P(z(),1);function npr({entries:e,actions:t}){let[r,n]=(0,O$e.useState)(!1),[i,o]=(0,O$e.useState)(!1),a=e.filter(l=>vk(l).kind==="ready").length,s=e.some(l=>rB(l)&&!l.status?.loop.paused);return(0,iB.jsxs)(le,{sx:{display:"flex",gap:1,flexWrap:"wrap"},children:[(0,iB.jsx)(qt,{variant:"outlined",size:"small",startIcon:(0,iB.jsx)(vge,{}),disabled:!s||r,onClick:()=>{n(!0),t.checkAll(e).finally(()=>n(!1))},children:"Check now"}),(0,iB.jsx)(qt,{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 ipr(e){let t=e.map(o=>vk(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("unavailable")&&i.push(`${r("unavailable")} unavailable`),i.join(" \xB7 ")}var ypr=P(ge(),1);function opr(e,t){return`${e}:${t}`}var B$e=P(ge(),1);async function oB(e){if(!e)return"web server unreachable";try{return(await e.json()).error??`HTTP ${e.status}`}catch{return`HTTP ${e.status}`}}async function apr(e,t){let r;try{r=await fetch(tn(`/api/updates/control?action=${t}`,e.local?void 0:e.name),{method:"POST"})}catch{}return r?.ok?void 0:oB(r)}var EUn=5e3,spr={pause:"Pausing",resume:"Resuming",check:"Checking"};function lpr(e,t){let{mark:r,setError:n,setBack:i}=e,o=(0,B$e.useCallback)(async(s,l)=>{r(s.name,spr[l]);let u=await apr(s,l);return u&&n(`${spr[l]} ${s.name} failed: ${u}`),r(s.name),t(),!u&&l==="check"&&setTimeout(t,EUn),!u},[r,n,t]),a=(0,B$e.useCallback)(async s=>{let l=s.filter(d=>rB(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 F$e=P(ge(),1);var K1=P(ge(),1);var aB={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 bk(e,t){let r=t?`&node=${encodeURIComponent(t)}`:"";return fetch(`/api/restart?target=${e}${r}`,{method:"POST"})}var E2=P(ge(),1);var RUn="/api/session-layout";async function AUn(){try{return(await fetch(RUn,{cache:"no-store"})).ok}catch{return!1}}async function cpr(e){let t=0;for(;!e();){if(t=await AUn()?t+1:0,t>=2)return!e();await new Promise(r=>setTimeout(r,300))}return!1}function PUn(){return{sawDisconnect:!1,waiting:!1,abandoned:!0}}function upr(e,t,r){let n=(0,E2.useRef)(PUn()),i=(0,E2.useRef)(r);i.current=r,(0,E2.useEffect)(()=>{let s=n.current;if(!(!e||s.abandoned)){if(t){s.sawDisconnect=!0;return}!s.sawDisconnect||s.waiting||(s.waiting=!0,cpr(()=>s.abandoned).then(l=>{l&&i.current()}))}},[e,t]);let o=(0,E2.useCallback)(()=>{n.current.abandoned=!0},[]),a=(0,E2.useCallback)(()=>{n.current.abandoned=!0,n.current={sawDisconnect:!1,waiting:!1,abandoned:!1}},[]);return(0,E2.useEffect)(()=>o,[o]),{arm:a,abandon:o}}var LUn=15e3;function xk(e,t,r){let[n,i]=(0,K1.useState)(!1),[o,a]=(0,K1.useState)(null),s=(0,K1.useRef)(void 0),{arm:l,abandon:u}=upr(n,t,()=>{clearTimeout(s.current),r?.(),globalThis.location.reload()});(0,K1.useEffect)(()=>()=>clearTimeout(s.current),[]);let f=(0,K1.useCallback)(async h=>{i(!0),l(),s.current=setTimeout(()=>{u(),i(!1),a("Web server did not come back")},LUn);try{if(!(await bk(h)).ok)throw new Error("restart failed")}catch{u(),clearTimeout(s.current),i(!1),a("Failed to restart web server")}},[l,u]),d=(0,K1.useCallback)(()=>f(e),[f,e]);return{pending:n,error:o,clearError:()=>a(null),restart:d,restartTo:f}}function bge(e){return e.local&&(e.status?.restart.includes("webserver")??!1)}async function xge(e,t){try{let r=await fetch(tn("/api/updates",t?void 0:e)),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:r instanceof Error?r.message:"Failed to load update state"}}}var MUn=2e3,IUn=9e4,DUn=e=>new Promise(t=>setTimeout(t,e));async function fpr(e,t){let r=Date.now()+IUn;for(;Date.now()<r;){await DUn(MUn);let n=await xge(e.name,e.local),i=n.status;if(i?.daemonReachable&&!t.some(o=>i.restart.includes(o)))return n}}async function dpr(e,t,r){let n;try{n=await bk(t,e.local?void 0:e.name)}catch{}if(!n?.ok)throw new Error(await oB(n));let i=await fpr(e,r);if(!i?.status)throw new Error(`${e.name} did not come back`);return i.status.running}async function hpr(e,t,r){try{let n=await dpr(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 ppr(e){return e.length>1?"both":e[0]}function mpr(e,t,r){let n=xk("webserver",e),i=(0,F$e.useCallback)(async a=>{let s=ppr(a.status?.restart??[]);if(s){if(t.mark(a.name,"Restarting"),bge(a))return n.restartTo(s);await hpr(a,s,t),t.mark(a.name),r()}},[n,t,r]),o=(0,F$e.useCallback)(async a=>{let s=a.filter(l=>vk(l).kind==="ready");await Promise.all(s.filter(l=>!bge(l)).map(l=>i(l)));for(let l of s.filter(bge))await i(l)},[i]);return{restart:i,restartReady:o,localError:n.error,clearLocalError:n.clearError}}var sB=P(ge(),1);function gpr(){let[e,t]=(0,sB.useState)(null),[r,n]=(0,sB.useState)(null),[i,o]=(0,sB.useState)({}),a=(0,sB.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 vpr(e,t){let{refresh:r}=Z9(),n=gpr(),i=mpr(e,n,r),o=lpr(n,r),a=WP(t),s=(0,ypr.useCallback)(l=>{let u=l.status?.loop.escalationId;u&&a(l.local?u:opr(l.name,u))},[a]);return{...i,...o,openFix:s,notices:n}}var i0=P(z(),1);function bpr({reconnecting:e,selectSession:t}){let{entries:r,loading:n}=Z9(),i=vpr(e,t),{notices:o}=i;return(0,i0.jsxs)(zl,{loading:n,header:(0,i0.jsxs)(le,{sx:{display:"flex",alignItems:"flex-end",gap:2,flexWrap:"wrap",mb:3},children:[(0,i0.jsxs)(le,{sx:{flex:"1 1 auto"},children:[(0,i0.jsx)(Oe,{variant:"h5",component:"h1",children:"Updates"}),(0,i0.jsx)(Oe,{variant:"body2",color:"text.secondary",children:ipr(r)})]}),(0,i0.jsx)(npr,{entries:r,actions:i})]}),children:[(0,i0.jsx)(an,{variant:"outlined",component:"section","aria-label":"Nodes",children:r.map(a=>(0,i0.jsx)(tpr,{entry:a,actions:i},a.name))}),(0,i0.jsx)(oY,{notices:{...o,error:o.error??i.localError,clearError:()=>{o.clearError(),i.clearLocalError()}}})]})}var smr=P(ge(),1);var lB=P(ge(),1);function Tge(e,t){let r=(0,lB.useRef)(null),[n,i]=(0,lB.useState)();return(0,lB.useLayoutEffect)(()=>{e===t&&r.current&&i(r.current.offsetHeight)},[e,t]),{ref:r,height:n}}var Tpr=P(ge(),1);function Sge(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 Cge(e){let t=o=>o.startsWith("local:"),r=o=>{let a=Sge(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,Sge(o));continue}let a=r(o),s=(n.get(a)??0)>1;i.set(o,s?Sge(o):a)}return i}var lY={field:"lastPhase",direction:"desc"};var cY="all",uY="all";async function xpr(e,t,r){let n=new URLSearchParams({page:String(e),pageSize:String(t)});r.origin!==cY&&n.set("origin",r.origin),r.status!==uY&&n.set("status",r.status),r.sort.field!==lY.field&&n.set("sort",r.sort.field),r.sort.direction!==lY.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 fY=P(z(),1);function Spr({origins:e,origin:t,onChange:r}){let n=(0,Tpr.useMemo)(()=>Cge(e.map(o=>o.origin)),[e]),i=e.reduce((o,a)=>o+a.count,0);return(0,fY.jsxs)(Yn,{select:!0,size:"small",label:"Repo",value:t,onChange:o=>r(o.target.value),sx:{minWidth:220},children:[(0,fY.jsx)(fn,{value:cY,children:`All repos (${i})`}),e.map(o=>(0,fY.jsx)(fn,{value:o.origin,children:`${n.get(o.origin)??o.origin} (${o.count})`},o.origin))]})}var $$e=P(z(),1),NUn=[{value:uY,label:"All"},{value:"done",label:"Done"},{value:"running",label:"Running"}];function Cpr({status:e,onChange:t}){return(0,$$e.jsx)(du,{size:"small",exclusive:!0,value:e,onChange:(r,n)=>n&&t(n),"aria-label":"Filter items by status",children:NUn.map(r=>(0,$$e.jsx)(hs,{value:r.value,children:r.label},r.value))})}var cB=P(z(),1),OUn={display:"flex",alignItems:"center",gap:2,flexWrap:"wrap",mb:2},BUn="Repos show their bare name, or org/repo when two share one. Totals sum every phase's recorded usage.";function wpr({origins:e,origin:t,onOriginChange:r,status:n,onStatusChange:i}){return(0,cB.jsxs)(le,{sx:OUn,children:[(0,cB.jsx)(Cpr,{status:n,onChange:i}),(0,cB.jsx)(Spr,{origins:e,origin:t,onChange:r}),(0,cB.jsx)(Oe,{variant:"caption",color:"text.disabled",children:BUn})]})}var Opr=P(ge(),1);function Hd(e){return e<1e3?String(e):e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(1)}M`}function o0(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 kge=P(z(),1),FUn={whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"},kpr={display:"block",fontSize:"0.75rem",color:"text.disabled",whiteSpace:"nowrap"},$Un={...kpr,fontStyle:"italic"};function wge({total:e,perPhase:t,partial:r}){return(0,kge.jsxs)(kn,{align:"right",sx:FUn,children:[e,t?(0,kge.jsx)(Oe,{component:"span",sx:r?$Un:kpr,children:t}):null]})}var dY=P(z(),1),zUn={width:"100%",maxWidth:0},HUn={display:"block",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},UUn={display:"block",mt:"2px",fontSize:"0.75rem",color:"text.secondary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function _pr({id:e,name:t,type:r,repoLabel:n}){return(0,dY.jsxs)(kn,{sx:zUn,children:[(0,dY.jsx)(xn,{component:ys,to:zT(e),underline:"hover",color:"text.primary",title:t,sx:HUn,children:t}),(0,dY.jsxs)(Oe,{component:"span",sx:UUn,children:[so(e)," \xB7 ",r," \xB7 ",n]})]})}function Epr(e){let t=Math.max(1,e.recordedPhases);return{active:`${o0(e.activeMs/t)} / phase`,tokens:`${Hd(Math.round((e.tokensUp+e.tokensDown)/t))} / phase`}}function Rpr(e){if(!(e.status==="done"||e.recordedPhases>e.phaseCount))return`${e.recordedPhases} of ${e.phaseCount} phases`}var _ge={story:"info",bug:"error"},Ege={todo:"default","in-progress":"warning",done:"success",wontdo:"error"};var WUn=new Set(["done","wontdo"]);function Apr(e){return WUn.has(e)?{label:e,color:Ege[e]}:{label:"running",color:"warning"}}var z$e=P(z(),1),VUn={height:20,fontSize:"0.6875rem"};function Ppr({status:e}){let t=Apr(e);return(0,z$e.jsx)(kn,{children:(0,z$e.jsx)(sn,{label:t.label,size:"small",variant:"outlined",color:t.color,sx:VUn})})}var a0=P(z(),1),Lpr={whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"};function Mpr({row:e,repoLabel:t}){let r=Epr(e);return(0,a0.jsxs)(ju,{hover:!0,children:[(0,a0.jsx)(_pr,{id:e.id,name:e.name,type:e.type,repoLabel:t}),(0,a0.jsx)(Ppr,{status:e.status}),(0,a0.jsx)(wge,{total:String(e.phaseCount||e.recordedPhases),perPhase:Rpr(e),partial:!0}),(0,a0.jsx)(wge,{total:o0(e.activeMs),perPhase:r.active}),(0,a0.jsx)(wge,{total:`\u2191 ${Hd(e.tokensUp)} \u2193 ${Hd(e.tokensDown)}`,perPhase:r.tokens}),(0,a0.jsx)(kn,{align:"right",sx:Lpr,children:(0,a0.jsxs)(le,{component:"span",sx:{color:oee(e.peakContextPct)},children:[Math.round(e.peakContextPct),"%"]})}),(0,a0.jsx)(kn,{align:"right",sx:Lpr,children:e.lastPhaseAt?Do(e.lastPhaseAt):"\u2014"})]})}var Ipr=[{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 Hm=P(z(),1),GUn={"& th":{whiteSpace:"nowrap"}};function Dpr({column:e}){return e.tooltip?(0,Hm.jsx)(lr,{title:e.tooltip,describeChild:!0,children:(0,Hm.jsx)("span",{children:e.label})}):(0,Hm.jsx)(Hm.Fragment,{children:e.label})}function Npr({sort:e,onSort:t}){return(0,Hm.jsx)(z_,{sx:GUn,children:(0,Hm.jsx)(ju,{children:Ipr.map(r=>{let n=r.sort,i=n!==void 0&&e.field===n;return(0,Hm.jsx)(kn,{align:r.numeric?"right":"left",sortDirection:i?e.direction:!1,children:n===void 0?(0,Hm.jsx)(Dpr,{column:r}):(0,Hm.jsx)(_ve,{active:i,direction:i?e.direction:"desc",onClick:()=>t(n),children:(0,Hm.jsx)(Dpr,{column:r})})},r.label)})})})}var bR=P(z(),1),qUn={"& td, & th":{px:1.5}};function Bpr({rows:e,origins:t,sort:r,onSort:n}){let i=(0,Opr.useMemo)(()=>Cge([...t,...e.map(o=>o.origin)]),[t,e]);return(0,bR.jsx)($_,{component:an,children:(0,bR.jsxs)(Pv,{size:"small",sx:qUn,children:[(0,bR.jsx)(Npr,{sort:r,onSort:n}),(0,bR.jsx)(Lv,{children:e.map(o=>(0,bR.jsx)(Mpr,{row:o,repoLabel:i.get(o.origin)??o.origin},o.id))})]})})}function Fpr(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:o0(e.medianActiveMs),activeFoot:`${o0(e.medianActiveMs/t)} per phase`,tokens:Hd(Math.round(e.medianTokens)),tokensFoot:`${Hd(Math.round(e.medianTokens/t))} per phase`}}var uB=P(z(),1),$pr={display:"block"},jUn={fontWeight:400,fontVariantNumeric:"tabular-nums"};function hY({label:e,value:t,foot:r}){return(0,uB.jsxs)(le,{children:[(0,uB.jsx)(Oe,{variant:"caption",color:"text.secondary",sx:$pr,children:e}),(0,uB.jsx)(Oe,{variant:"h5",sx:jUn,children:t}),r?(0,uB.jsx)(Oe,{variant:"caption",color:"text.disabled",sx:$pr,children:r}):null]})}var xR=P(z(),1),YUn={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 zpr({summary:e}){let t=Fpr(e);return(0,xR.jsxs)(an,{sx:YUn,children:[(0,xR.jsx)(hY,{label:"Items with recorded usage",value:t.items,foot:t.itemsFoot}),(0,xR.jsx)(hY,{label:"Median phases",value:t.phases}),(0,xR.jsx)(hY,{label:"Median active time",value:t.active,foot:t.activeFoot}),(0,xR.jsx)(hY,{label:"Median tokens",value:t.tokens,foot:t.tokensFoot})]})}var ip=P(z(),1);function Hpr({items:e,data:t}){let{rows:r,total:n,page:i,pageSize:o}=e,{ref:a,height:s}=Tge(r.length,o);return(0,ip.jsxs)(ip.Fragment,{children:[(0,ip.jsx)(zpr,{summary:t.summary}),(0,ip.jsx)(wpr,{origins:t.origins,origin:e.origin,onOriginChange:e.selectOrigin,status:e.status,onStatusChange:e.selectStatus}),n===0?(0,ip.jsx)(Oe,{color:"text.secondary",align:"center",sx:{py:6},children:"No items match this filter."}):(0,ip.jsxs)(ip.Fragment,{children:[(0,ip.jsx)(le,{ref:a,sx:{minHeight:s},children:(0,ip.jsx)(Bpr,{rows:r,origins:t.origins.map(l=>l.origin),sort:e.sort,onSort:e.sortBy})}),(0,ip.jsx)(p$,{component:"div",count:n,page:i,rowsPerPage:o,rowsPerPageOptions:[o],onPageChange:(l,u)=>e.setPage(u)})]})]})}var R2=P(z(),1);function Upr({items:e}){let{data:t}=e;return(0,R2.jsxs)(R2.Fragment,{children:[(0,R2.jsx)(le,{sx:{height:4,mb:1},children:e.fetching&&(0,R2.jsx)(F_,{})}),t?t.origins.length===0?(0,R2.jsx)(Oe,{color:"text.secondary",align:"center",sx:{py:6},children:"No item usage recorded yet."}):(0,R2.jsx)(Hpr,{items:e,data:t}):null]})}function H$e(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 Rge(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 KUn(e,t,r,n){let i=H$e(t,r,n);if(i!=null)return e/i}function Tk(e,t,r,n){let i=KUn(e,t,r,n);return i==null?"ok":i>100?"over":i>75?"warn":"ok"}var XUn=["five_hour","seven_day"],ZUn=["claude","codex","pi"];function Wpr(e){let[t,r]=e.includes(":")?e.split(":",2):["claude",e],n=ZUn.find(o=>o===t),i=XUn.find(o=>o===r);if(!(!n||!i)&&!(n==="claude"&&e.includes(":")))return{harness:n,window:i}}var Vpr={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 fB(e){let t=Wpr(e);if(!t)return Vpr.five_hour;let r=Vpr[t.window];return t.harness==="claude"?r:{...r,label:`${gu(t.harness)} ${r.label}`}}var QUn={ok:"success.main",warn:"warning.main",over:"error.main"};function Sk(e){return QUn[e]}var gY=P(z(),1),JUn={ok:"success",warn:"warning",over:"error"};function Gpr({percentage:e,level:t}){return(0,gY.jsxs)(le,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,gY.jsx)(F_,{variant:"determinate",value:Math.min(100,e),color:JUn[t],sx:{flexGrow:1,height:8,borderRadius:1}}),(0,gY.jsxs)(le,{sx:{minWidth:40,textAlign:"right",color:Sk(t)},children:[Math.round(e),"%"]})]})}function qpr(e){return e.avgContextPct==null?"\u2014":`${Math.round(e.avgContextPct)}%`}var eWn=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function U$e(e){return eWn.format(e)}var Age=P(z(),1);function jpr({peak:e}){return(0,Age.jsx)(kn,{align:"right",sx:{whiteSpace:"nowrap"},children:(0,Age.jsx)(lr,{title:`Cycle started ${U$e(new Date(e.createdAt))}`,children:(0,Age.jsx)("span",{children:U$e(new Date(e.resetsAt*1e3))})})})}var Kpr=P(z(),1);function Ypr(){return(0,Kpr.jsx)(sn,{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 Xpr(e){return!e.tokensUp&&!e.tokensDown?"\u2014":`\u2191 ${Hd(e.tokensUp)} \u2193 ${Hd(e.tokensDown)}`}var s0=P(z(),1);function Zpr({peak:e,now:t}){let{label:r,seconds:n,tint:i}=fB(e.window),o=Tk(e.usedPercentage,e.resetsAt,n,t);return(0,s0.jsxs)(ju,{sx:a=>({backgroundColor:i?a.palette.mode==="dark"?i.dark:i.light:void 0}),children:[(0,s0.jsxs)(kn,{children:[r,e.resetDetected&&(0,s0.jsx)(Ypr,{})]}),(0,s0.jsx)(kn,{sx:{minWidth:160},children:(0,s0.jsx)(Gpr,{percentage:e.usedPercentage,level:o})}),(0,s0.jsx)(kn,{align:"right",sx:{whiteSpace:"nowrap"},children:qpr(e)}),(0,s0.jsx)(kn,{align:"right",sx:{whiteSpace:"nowrap"},children:e.phaseCount??0}),(0,s0.jsx)(kn,{align:"right",sx:{whiteSpace:"nowrap"},children:Xpr(e)}),(0,s0.jsx)(jpr,{peak:e})]})}var Pge=P(ge(),1);function Ck(e){let[t,r]=(0,Pge.useState)(()=>Math.floor(Date.now()/1e3));return(0,Pge.useEffect)(()=>{let n=setInterval(()=>r(Math.floor(Date.now()/1e3)),e);return()=>clearInterval(n)},[e]),t}var pc=P(z(),1);function Qpr({peaks:e}){let t=Ck(3e4);return(0,pc.jsx)($_,{component:an,children:(0,pc.jsxs)(Pv,{size:"small",children:[(0,pc.jsx)(z_,{sx:{"& th":{whiteSpace:"nowrap"}},children:(0,pc.jsxs)(ju,{children:[(0,pc.jsx)(kn,{children:"Window"}),(0,pc.jsx)(kn,{children:"Peak usage"}),(0,pc.jsx)(kn,{align:"right",children:(0,pc.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,pc.jsx)("span",{children:"Avg context"})})}),(0,pc.jsx)(kn,{align:"right",children:(0,pc.jsx)(lr,{title:"Number of phase readings behind the average.",children:(0,pc.jsx)("span",{children:"Phases"})})}),(0,pc.jsx)(kn,{align:"right",children:"Tokens spent"}),(0,pc.jsx)(kn,{align:"right",children:"Cycle reset"})]})}),(0,pc.jsx)(Lv,{children:e.map(r=>(0,pc.jsx)(Zpr,{peak:r,now:t},`${r.window}-${r.resetsAt}-${r.segment}`))})]})})}var wk=P(z(),1);function Jpr({rows:e,total:t,page:r,pageSize:n,onPageChange:i}){let{ref:o,height:a}=Tge(e.length,n);return(0,wk.jsxs)(wk.Fragment,{children:[(0,wk.jsx)(le,{ref:o,sx:{minHeight:a},children:(0,wk.jsx)(Qpr,{peaks:e})}),(0,wk.jsx)(p$,{component:"div",count:t,page:r,rowsPerPage:n,rowsPerPageOptions:[n],onPageChange:(s,l)=>i(l)})]})}var yY=P(ge(),1);function kk(){let[e,t]=(0,yY.useState)(!1),[r,n]=(0,yY.useState)(!1);return(0,yY.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 W$e=P(z(),1),emr=["five_hour","seven_day"],tWn=["codex:five_hour","codex:seven_day"];function rWn(e){let t=e?[...emr,...tWn]:emr;return[{value:"all",label:"All"},...t.map(r=>({value:r,label:fB(r).label}))]}function tmr({window:e,onChange:t}){let{exposeCodexActions:r}=kk();return(0,W$e.jsx)(du,{size:"small",exclusive:!0,value:e,onChange:(n,i)=>i&&t(i),"aria-label":"Filter peaks by rate-limit window",children:rWn(r).map(n=>(0,W$e.jsx)(hs,{value:n.value,children:n.label},n.value))})}var X1=P(z(),1);function rmr({history:e}){let{window:t,total:r}=e;return(0,X1.jsxs)(X1.Fragment,{children:[(0,X1.jsx)(tmr,{window:t,onChange:e.selectWindow}),(0,X1.jsx)(le,{sx:{height:4,my:1},children:e.fetching&&(0,X1.jsx)(F_,{})}),r===0?(0,X1.jsx)(Oe,{color:"text.secondary",align:"center",sx:{py:6},children:t==="all"?"No usage peaks recorded yet.":`No ${fB(t).label} usage peaks recorded yet.`}):(0,X1.jsx)(Jpr,{rows:e.rows,total:r,page:e.page,pageSize:e.pageSize,onPageChange:e.setPage})]})}var Mge=P(ge(),1);async function nmr(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 _k=P(ge(),1);function Lge(e,t,r=!0){let[n,i]=(0,_k.useState)(0),[o,a]=(0,_k.useState)(null),[s,l]=(0,_k.useState)(!1),[u,f]=(0,_k.useState)(null);(0,_k.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,_k.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 nWn=30;function imr(){let[e,t]=(0,Mge.useState)("all"),r=(0,Mge.useCallback)((o,a)=>nmr(o,a,e),[e]),n=Lge(r,nWn);return{...n,window:e,selectWindow:o=>{t(o),n.setPage(0)}}}var dB=P(ge(),1);function omr(e,t){return e.field!==t?{field:t,direction:"desc"}:{field:t,direction:e.direction==="desc"?"asc":"desc"}}var iWn=30;function amr(e){let[t,r]=(0,dB.useState)(cY),[n,i]=(0,dB.useState)(uY),[o,a]=(0,dB.useState)(lY),s=(0,dB.useCallback)((h,p)=>xpr(h,p,{origin:t,status:n,sort:o}),[t,n,o]),l=Lge(s,iWn,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=>omr(p,h)),l.setPage(0)}}}var Ek=P(z(),1),oWn={borderBottom:1,borderColor:"divider",mb:2};function lmr(){let[e,t]=(0,smr.useState)("limits"),r=imr(),n=amr(e==="items");if(r.error)throw r.error;if(n.error)throw n.error;return(0,Ek.jsxs)(zl,{loading:!r.loaded,title:"Usage history",maxWidth:"lg",children:[(0,Ek.jsxs)(U_,{value:e,onChange:(i,o)=>t(o),textColor:"inherit",indicatorColor:"secondary",sx:oWn,"aria-label":"Usage history views",children:[(0,Ek.jsx)(Av,{label:"Rate limits",value:"limits"}),(0,Ek.jsx)(Av,{label:"Items",value:"items"})]}),e==="limits"?(0,Ek.jsx)(rmr,{history:r}):(0,Ek.jsx)(Upr,{items:n})]})}var Ige=P(ge(),1),V$e=(0,Ige.createContext)([]);function Dge(){return(0,Ige.useContext)(V$e)}var mgr=P(ge(),1);function as(){let{selectedCwd:e}=$n();return e||void 0}var A2=P(ge(),1);var umr=P(ge(),1);var aWn=new Set(["todo","done","all"]);function cmr(e){return e&&aWn.has(e)?e:"todo"}var fmr="backlog-filter",G$e=new Set,dmr=sWn();function sWn(){try{return cmr(localStorage.getItem(fmr))}catch{return"todo"}}function lWn(e){return G$e.add(e),()=>G$e.delete(e)}function cWn(){return dmr}function uWn(e){dmr=e;try{localStorage.setItem(fmr,e)}catch{}for(let t of G$e)t()}function hB(){return[(0,umr.useSyncExternalStore)(lWn,cWn),uWn]}function hmr(){let e=as(),t=yr(),[r]=hB(),[n,i]=(0,A2.useState)(""),[o,a]=(0,A2.useState)(null),[s,l]=(0,A2.useState)(!1),[u,f]=(0,A2.useState)(e),d=(0,A2.useRef)(void 0);return e!==u&&(f(e),a(null),l(n.trim().length>0)),(0,A2.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 WT({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 ymr={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}},fWn={"&::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"}},pmr={position:"relative",zIndex:2},mmr=8,q$e=24,dWn=wa`
3974
3974
  from { background-position: 0 0; }
3975
3975
  to { background-position: 0 ${q$e}px; }
3976
- `,vmr={...ymr,borderColor:"warning.main",borderLeft:4,borderLeftColor:"warning.main",bgcolor:e=>Ea(e.palette.warning.main,.08)},hWn={...vmr,borderLeftColor:"transparent",backgroundImage:e=>`repeating-linear-gradient(to bottom, ${e.palette.warning.main} 0 ${mmr}px, transparent ${mmr}px ${q$e}px)`,backgroundOrigin:"border-box",backgroundRepeat:"repeat-y",backgroundSize:`4px ${q$e}px`,animation:`${dWn} 0.9s linear infinite`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}},gmr={"& .MuiButtonBase-root:focus-visible":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:"2px"}},Z1={card:ymr,inProgressCard:vmr,inProgressRunningCard:hWn,main:{minWidth:0,textAlign:"left"},stretchedNameLink:{display:"block",fontWeight:500,color:"text.primary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",...fWn},meta:{display:"flex",alignItems:"center",gap:1,...pmr,width:"fit-content",maxWidth:"100%",fontSize:"0.75rem",color:"text.secondary","& a, & p":{fontSize:"0.75rem"},...gmr},id:{color:"text.disabled"},actions:{display:"flex",alignItems:"center",gap:1,flexShrink:0,...pmr,...gmr}};function Nge(e){let t=e.peakContextPct>0?` \xB7 \u2593 ${Math.round(e.peakContextPct)}%`:"";return`\u2191 ${Hd(e.tokensUp)} \u2193 ${Hd(e.tokensDown)} \xB7 \u23F1 ${o0(e.activeMs)}${t}`}var xmr=P(z(),1),pWn={width:6,height:6,borderRadius:"50%",bgcolor:"currentColor",flexShrink:0};function bmr(){return(0,xmr.jsx)(le,{component:"span",sx:pWn})}var vY=P(z(),1),Tmr={display:"inline-flex",alignItems:"center",gap:.625,color:"warning.main",fontWeight:500,fontSize:"0.75rem",whiteSpace:"nowrap",borderRadius:1};function Smr({item:e,openSession:t,onSelectSession:r}){let n=Xi();if(e.status!=="in-progress"||e.currentPhase==null)return null;let i=`phase ${e.currentPhase} of ${e.totalPhases??e.currentPhase}`,o=(0,vY.jsx)(bmr,{});if(!t)return(0,vY.jsxs)(le,{component:"span",sx:Tmr,children:[o,i]});let a=()=>{r?.(t.id),n("/sessions")};return(0,vY.jsxs)(Dn,{sx:Tmr,title:`Open the ${t.status} session`,onClick:a,children:[o,i]})}var op=P(z(),1),mWn={display:"inline-flex",alignItems:"center",gap:.5},gWn={width:8,height:8,borderRadius:"50%",flexShrink:0},yWn={whiteSpace:"nowrap"};function vWn({type:e}){let t=_ge[e];return(0,op.jsxs)(le,{component:"span",sx:mWn,children:[(0,op.jsx)(le,{component:"span",sx:{...gWn,bgcolor:`${t}.main`}}),e]})}function bWn({item:e}){return e.usageTotal?(0,op.jsx)(lr,{title:Nge(e.usageTotal),children:(0,op.jsx)(le,{component:"span",sx:yWn,children:`\u23F1 ${o0(e.usageTotal.activeMs)}`})}):null}function Cmr({item:e,openSession:t,onSelectSession:r}){return(0,op.jsxs)(le,{sx:Z1.meta,children:[(0,op.jsx)(le,{component:"span",sx:Z1.id,children:so(e.id)}),(0,op.jsx)(vWn,{type:e.type}),(0,op.jsx)(Smr,{item:e,openSession:t,onSelectSession:r}),(0,op.jsx)(pP,{jiraKey:e.jiraKey}),(0,op.jsx)(hP,{githubIssue:e.githubIssue,variant:"icon"}),(0,op.jsx)(bWn,{item:e})]})}function wmr(e,t){return e.filter(r=>AP(r)?.itemId===t).reduce((r,n)=>r&&r.startedAt>=n.startedAt?r:n,void 0)}var _mr=P(z(),1),xWn={todo:"\u25CB","in-progress":"\u25D4",done:"\u25CF",wontdo:"\u2715"},TWn={todo:"text.disabled","in-progress":"warning.main",done:"success.main",wontdo:"error.main"};function SWn(e){return{fontSize:"1.125rem",flexShrink:0,color:TWn[e]}}function kmr({status:e}){return(0,_mr.jsx)(Oe,{sx:SWn(e),children:xWn[e]})}function Oge(e){return e.status==="todo"||e.status==="in-progress"}function CWn(e){if(e.status==="done")return e.totalPhases;if(e.status==="in-progress")return e.currentPhase}function wWn(e,t,r){return r?"complete":e<t?"done":e===t?"current":"remaining"}function Emr(e){let t=e.totalPhases,r=CWn(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:wWn(o+1,r,n)}))}}var pB=P(z(),1),kWn={done:"text.secondary",current:"warning.main",remaining:"divider",complete:"success.main"},_Wn={display:"inline-flex",alignItems:"center",gap:.5,flexShrink:0},EWn={fontSize:"0.6875rem",color:"text.secondary",fontVariantNumeric:"tabular-nums"},RWn={display:"inline-flex",alignItems:"center",gap:"2px"},AWn={width:6,height:12,borderRadius:"1px",flexShrink:0};function Rmr({item:e}){let t=Emr(e);return t?(0,pB.jsxs)(le,{sx:_Wn,title:`Phase ${t.reached} of ${t.total}`,children:[(0,pB.jsx)(le,{component:"span",sx:EWn,children:`${t.reached}/${t.total}`}),(0,pB.jsx)(le,{component:"span",sx:RWn,"aria-hidden":!0,children:t.segments.map(r=>(0,pB.jsx)(le,{component:"span","data-segment":r.kind,sx:{...AWn,bgcolor:kWn[r.kind]}},r.phase))})]}):null}var Ymr=P(ge(),1);var $ge=P(ge(),1);var bY=P(z(),1);function Amr({tooltip:e,disabled:t,onClick:r}){return(0,bY.jsx)(lr,{title:e,children:(0,bY.jsx)(le,{component:"span",sx:{display:"flex"},children:(0,bY.jsx)(qt,{startIcon:(0,bY.jsx)(Fp,{}),disabled:t,onClick:r,children:"Build"})})})}var j$e=P(z(),1);function Bge(e){let t=[];return e.exposeCodexActions&&t.push({kind:"codex",label:"with Codex"}),e.exposePiActions&&t.push({kind:"pi",label:"with pi"}),t}function Fge({anchorEl:e,open:t,onClose:r,options:n,onSelect:i,stop:o}){return(0,j$e.jsx)(Dl,{anchorEl:e,open:t,onClose:r,onClick:o,children:n.map(a=>(0,j$e.jsx)(fn,{onClick:s=>{o(s),i(a.kind)},children:a.label},a.kind))})}var Q1=P(z(),1);function Pmr({tooltip:e,disabled:t,onBuild:r,onSelectHarness:n}){let i=Bge(kk()),o=(0,$ge.useRef)(null),[a,s]=(0,$ge.useState)(!1),l=u=>u.stopPropagation();return(0,Q1.jsxs)(Q1.Fragment,{children:[(0,Q1.jsxs)(tT,{ref:o,variant:"contained",color:"success",size:"small",disabled:t,children:[(0,Q1.jsx)(Amr,{tooltip:e,disabled:t,onClick:u=>{l(u),r()}}),i.length>0&&(0,Q1.jsx)(qt,{"aria-label":"Build with a different harness",onClick:u=>{l(u),s(!0)},children:(0,Q1.jsx)(Up,{})})]}),(0,Q1.jsx)(Fge,{anchorEl:o.current,open:a,onClose:()=>s(!1),options:i,onSelect:u=>{s(!1),n(u)},stop:l})]})}var Lmr=P(z(),1),mB=ut((0,Lmr.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 Rk=P(z(),1),PWn={vertical:"bottom",horizontal:"center"};function zge({clone:e}){let{prompt:t,confirm:r,cancel:n,error:i,dismissError:o}=e;return(0,Rk.jsxs)(Rk.Fragment,{children:[t&&(0,Rk.jsx)(vo,{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,Rk.jsx)(ol,{open:!!i,autoHideDuration:8e3,onClose:o,anchorOrigin:PWn,children:(0,Rk.jsx)(ni,{severity:"error",onClose:o,variant:"filled",children:i})})]})}var l0=P(ge(),1);function Y$e(e){return["backlog","clone",e]}function Hge(e,t){t(Y$e(e.origin),void 0,{title:`Clone ${e.displayName}`,subtitle:e.origin,...e.node&&{node:e.node}})}function Mmr(e,t){return!!e&&e.length===t.length&&e.every((r,n)=>r===t[n])}function Imr(e,t,r){let n=Y$e(t.origin),i=new Set(e.filter(o=>Mmr(o.assistArgs,n)).map(o=>o.id));return Hge(t,r),{args:n,target:t.cloneTarget,node:t.node,preexisting:i}}function Dmr(e,t){if(!t.id){let n=e.find(i=>Mmr(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 Uge(e){let{setSelectedCwd:t}=$n(),{launchAssist:r}=$l(),[n,i]=(0,l0.useState)(null),[o,a]=(0,l0.useState)(null),[s,l]=(0,l0.useState)(null),u=(0,l0.useCallback)(p=>{l(null),i(p)},[]),f=(0,l0.useCallback)(()=>i(null),[]),d=(0,l0.useCallback)(()=>l(null),[]),h=(0,l0.useCallback)(()=>{n&&(a(Imr(e,n,r)),i(null))},[n,e,r]);return(0,l0.useEffect)(()=>{if(!o)return;let p=Dmr(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 gB(e,t){return`Not cloned ${e?`on ${e}`:"locally"} \u2014 click to clone into ${t}`}var P2=P(z(),1),LWn={border:1,borderStyle:"dashed"};function Nmr({target:e}){let t=Uge(Dge());return(0,P2.jsxs)(P2.Fragment,{children:[(0,P2.jsx)(lr,{title:gB(e.node,e.cloneTarget),children:(0,P2.jsx)(ir,{"aria-label":"Clone",size:"small",sx:LWn,onClick:r=>{r.stopPropagation(),t.requestClone(e)},children:(0,P2.jsx)(mB,{fontSize:"small"})})}),(0,P2.jsx)(zge,{clone:t})]})}function Omr(e,t,r,n){let i=r.node?[{node:r.node}]:[];e(["backlog","run",so(t),...n],r.cwd,...i)}var xY=P(z(),1);function Bmr({tooltip:e,disabled:t,onClick:r}){return(0,xY.jsx)(lr,{title:e,children:(0,xY.jsx)("span",{children:(0,xY.jsx)(ir,{"aria-label":"Build",color:"success",size:"small",disabled:t,onClick:r,children:(0,xY.jsx)(Fp,{})})})})}function MWn(e,t){let r=e.assistArgs;if(r?.[0]!=="backlog"||r[1]!=="run"||!r[2])return!1;try{return _J(r[2])===t}catch{return!1}}function Fmr(e,t){return e.find(r=>r.status!=="done"&&r.status!=="error"&&(MWn(r,t)||AP(r)?.itemId===t))}var Wge=P(ge(),1),K$e=(0,Wge.createContext)({nodes:null,names:[],visible:!1,selected:void 0,select:()=>{}});function Bu(){return(0,Wge.useContext)(K$e)}function Vge(){let{nodes:e,selected:t}=Bu();return t&&t!==e?.local?t:void 0}var Hmr=P(ge(),1);var Gge=P(ge(),1);function $mr(e,t){return Promise.all(t.map(async r=>{let n=await IWn(e,r).catch(()=>({}));return[r,n]}))}async function IWn(e,t){let r=await fetch(tn(`/api/repo-location?origin=${encodeURIComponent(e)}`,t||void 0));return r.ok?r.json():{}}var X$e="\0";function zmr(e,t){let[r,n]=(0,Gge.useState)(null);return(0,Gge.useEffect)(()=>{if(!e||!t)return;let i=!1;return $mr(e,t.split(X$e)).then(o=>{i||n({origin:e,byNode:Object.fromEntries(o)})}),()=>{i=!0}},[e,t]),r}function qge(e,t){let{cloneOn:r,originOf:n}=$n(),i=e?n(e):void 0,o=t.filter(s=>!e||!r(e,s)).map(s=>s??"").join(X$e),a=zmr(i,o);return(0,Hmr.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 vB=P(ge(),1);var Umr=P(z(),1);function yB({inputRef:e,value:t,onChange:r,onKeyDown:n,placeholder:i,autoFocus:o}){return(0,Umr.jsx)(Yn,{autoFocus:o,inputRef:e,value:t,onChange:a=>r(a.target.value),onKeyDown:n,placeholder:i,size:"small",fullWidth:!0,slotProps:{input:{sx:{fontSize:12}}},sx:{p:.5}})}var jge=P(ge(),1);function Yge(e){let t=(0,jge.useRef)(null);return(0,jge.useEffect)(()=>{e&&t.current?.scrollIntoView({block:"nearest"})},[e]),t}var Vmr=P(z(),1);function Wmr({cwd:e,selected:t,highlighted:r,onHover:n,onSelect:i}){let o=Yge(r);return(0,Vmr.jsx)(fn,{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:J1(e)})}var Z$e=P(z(),1);function Kge({repos:e,selected:t,highlight:r,onHighlight:n,onSelect:i}){return(0,Z$e.jsx)(Cp,{dense:!0,children:e.map((o,a)=>(0,Z$e.jsx)(Wmr,{cwd:o,selected:o===t,highlighted:a===r,onHover:()=>n(a),onSelect:()=>i(o)},o))})}var Xge=P(ge(),1);function Ak(e,t,r,n){let[i,o]=(0,Xge.useState)(0);return(0,Xge.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 TY=P(z(),1);function J1(e){let t=e.includes("\\")?"\\":"/";return e.split(t).filter(Boolean).pop()??e}var DWn={...OP};function Gmr({repos:e,selected:t,onSelect:r,close:n}){let[i,o]=(0,vB.useState)(""),a=(0,vB.useRef)(null);(0,vB.useEffect)(()=>{a.current?.focus()},[]);let s=i.trim().toLowerCase(),l=s?e.filter(p=>p.toLowerCase().includes(s)):e,{highlight:u,setHighlight:f,onKeyDown:d}=Ak(l,s,r,n);return(0,TY.jsxs)(an,{elevation:4,sx:DWn,children:[(0,TY.jsx)(yB,{inputRef:a,value:i,onChange:o,onKeyDown:d,placeholder:"Filter repos..."}),(0,TY.jsx)(Kge,{repos:l,selected:t,highlight:u,onHighlight:f,onSelect:p=>{r(p),n()}})]})}function Zge(e,t){return{origin:e.origin,cloneTarget:e.cloneTarget,displayName:J1(e.origin),node:t}}function qmr(){let e=as(),t=Vge(),r=qge(e??"",[t])(t);return e?r.kind==="cloned"?{kind:"ready",cwd:r.cwd,node:t}:r.kind==="clonable"?{kind:"clone",prompt:Zge(r,t)}:{kind:"unavailable",node:t??"this machine"}:{kind:"ready",node:t}}function jmr(e,t){return t?`Not cloned on ${t}`:e?"Already running \u2014 close that session to run it again":"Build"}var Qge=P(z(),1);function Jge({itemId:e,compact:t=!1}){let{launchAssist:r}=$l(),n=qmr(),i=Fmr(Dge(),e),[o,a]=(0,Ymr.useState)(!1);if(n.kind==="clone")return(0,Qge.jsx)(Nmr,{target:n.prompt});let s=n.kind==="unavailable"?n.node:void 0,l=o||i!==void 0||!!s,u=d=>{l||n.kind!=="ready"||(a(!0),Omr(r,e,n,d))},f=jmr(i!==void 0,s);return t?(0,Qge.jsx)(Bmr,{tooltip:f,disabled:l,onClick:d=>{d.stopPropagation(),u([])}}):(0,Qge.jsx)(Pmr,{tooltip:f,disabled:l,onBuild:()=>u([]),onSelectHarness:d=>u(["--harness",d])})}var Kmr=P(ge(),1);var bB=P(z(),1);function Xmr({itemId:e,starred:t,onToggled:r}){let n=as(),i=yr(),[o,a]=(0,Kmr.useState)(!1);return(0,bB.jsx)(lr,{title:t?"Unstar":"Star",children:(0,bB.jsx)("span",{children:(0,bB.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 HJ(e,!t,n,i),await r()}finally{a(!1)}}},children:t?(0,bB.jsx)(qee,{}):(0,bB.jsx)(jee,{})})})})}var Zmr=P(z(),1),Qmr=ut((0,Zmr.jsx)("path",{d:"M22 7h-9v2h9zm0 8h-9v2h9zM5.54 11 2 7.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41zm0 8L2 15.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41z"}),"Checklist");var SY=P(z(),1),NWn={display:"inline-flex",alignItems:"center",gap:.375,flexShrink:0,fontSize:"0.71875rem",color:"text.secondary","& svg":{fontSize:14}};function Jmr({count:e}){return e<1?null:(0,SY.jsx)(lr,{title:`${e} incomplete subtask${e===1?"":"s"}`,children:(0,SY.jsxs)(le,{component:"span",sx:NWn,children:[(0,SY.jsx)(Qmr,{}),e]})})}var L2=P(z(),1);function egr({item:e,onReload:t}){return(0,L2.jsxs)(L2.Fragment,{children:[(0,L2.jsx)(Jmr,{count:e.incompleteSubtasks}),(0,L2.jsx)(Rmr,{item:e}),(0,L2.jsx)(Xmr,{itemId:e.id,starred:e.starred,onToggled:t}),Oge(e)&&(0,L2.jsx)(Jge,{itemId:e.id,compact:!0})]})}var M2=P(z(),1);function OWn(e,t){return e?t?Z1.inProgressRunningCard:Z1.inProgressCard:Z1.card}function tgr({item:e,to:t,socket:r,onReload:n}){let i=wmr(r.sessions,e.id),o=e.status==="in-progress",a=o&&i?.status==="running";return(0,M2.jsxs)(le,{sx:OWn(o,a),children:[(0,M2.jsx)(kmr,{status:e.status}),(0,M2.jsxs)(le,{sx:Z1.main,children:[(0,M2.jsx)(xn,{component:ys,to:t,underline:"none",title:e.name,sx:Z1.stretchedNameLink,children:e.name}),(0,M2.jsx)(Cmr,{item:e,openSession:i,onSelectSession:r.selectSession})]}),(0,M2.jsx)(le,{sx:Z1.actions,children:(0,M2.jsx)(egr,{item:e,onReload:n})})]})}var ngr=P(z(),1),BWn={all:"items",story:"stories",bug:"bugs"},FWn={textAlign:"center",color:"text.disabled",py:6,px:2};function rgr({query:e,typeFilter:t}){let r=BWn[t],n=e.trim()?`No ${r} match your search.`:`No ${r} in the backlog.`;return(0,ngr.jsx)(le,{sx:FWn,children:n})}var ev=P(z(),1),$Wn={display:"flex",justifyContent:"center",py:6};function igr({loading:e,error:t,query:r,typeFilter:n,items:i,socket:o,itemPath:a,onReload:s}){if(e)return(0,ev.jsx)(le,{sx:$Wn,children:(0,ev.jsx)(mo,{})});let l=t&&(0,ev.jsx)(ni,{severity:"error",children:t});return i.length===0?l||(0,ev.jsx)(rgr,{query:r,typeFilter:n}):(0,ev.jsxs)(ev.Fragment,{children:[l,i.map(u=>(0,ev.jsx)(tgr,{item:u,to:a(u),socket:o,onReload:s},u.id))]})}var xB=P(ge(),1);function zWn(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 ogr({cwd:e,node:t,knownCwds:r,signal:n}){return(await fetch(Fl(zWn(r),e,t),{signal:n})).json()}function agr(){let{repos:e,selectedCwd:t,cloneOn:r}=$n(),n=Vge(),[i,o]=(0,xB.useState)([]),a=(0,xB.useMemo)(()=>e.map(l=>r(l,n)).filter(l=>!!l),[e,r,n]),s=t?r(t,n):void 0;return(0,xB.useEffect)(()=>{let l=new AbortController;return ogr({cwd:s,node:n,knownCwds:a,signal:l.signal}).then(o).catch(()=>{}),()=>l.abort()},[a,s,n]),{summaries:i,node:n}}var e0e=P(z(),1),HWn={borderStyle:"dashed"};function sgr({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,e0e.jsx)(sn,{label:`${o} (${a})`,size:"small",color:s?"primary":"default",variant:s?"filled":"outlined",disabled:!l&&!f,onClick:d,icon:f?(0,e0e.jsx)(mB,{}):void 0,sx:f?HWn:void 0});return!f||!u?h:(0,e0e.jsx)(lr,{describeChild:!0,title:gB(t,u),children:h})}var CY=P(z(),1),UWn={flexWrap:"wrap",gap:1,mb:2};function lgr({sessions:e}){let{summaries:t,node:r}=agr(),{setSelectedCwd:n}=$n(),i=Uge(e);return t.length===0?null:(0,CY.jsxs)(Rt,{direction:"row",sx:UWn,children:[t.map(o=>(0,CY.jsx)(sgr,{summary:o,node:r,onSelectCwd:a=>r?n(a,r):n(a),onRequestClone:i.requestClone},o.origin)),(0,CY.jsx)(zge,{clone:i})]})}var ugr=P(z(),1);function cgr({value:e,onChange:t}){return(0,ugr.jsx)(Yn,{"data-backlog-focus":"search",fullWidth:!0,size:"small",placeholder:"Search backlog\u2026",value:e,onChange:r=>t(r.target.value),sx:{mb:2}})}var t0e=P(ge(),1);var r0e=P(z(),1);async function WWn(){return(await(await fetch("/api/backups/list")).json())[0]}function fgr(){let[e,t]=(0,t0e.useState)();return(0,t0e.useEffect)(()=>{WWn().then(t)},[]),e?(0,r0e.jsx)(lr,{title:new Date(e.createdAt).toLocaleString(),children:(0,r0e.jsxs)(xn,{component:ys,to:"/backups",underline:"hover",color:"text.secondary",variant:"body2",children:["Last backed up ",Do(String(e.createdAt))]})}):null}var TB=P(z(),1);function dgr(){let[e,t]=hB();return(0,TB.jsxs)(du,{value:e,exclusive:!0,size:"small","aria-label":"Status filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,TB.jsx)(hs,{value:"todo",children:"Todo"}),(0,TB.jsx)(hs,{value:"done",children:"Done"}),(0,TB.jsx)(hs,{value:"all",children:"All"})]})}var SB=P(z(),1);function hgr({value:e,onChange:t}){return(0,SB.jsxs)(du,{value:e,exclusive:!0,size:"small","aria-label":"Type filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,SB.jsx)(hs,{value:"all",children:"All"}),(0,SB.jsx)(hs,{value:"story",children:"Stories"}),(0,SB.jsx)(hs,{value:"bug",children:"Bugs"})]})}var Pk=P(z(),1),VWn={justifyContent:"space-between",alignItems:"center",mb:3},GWn={fontWeight:600},qWn={alignItems:"center"};function pgr({typeFilter:e,onTypeFilterChange:t}){return(0,Pk.jsxs)(Rt,{direction:"row",sx:VWn,children:[(0,Pk.jsx)(Oe,{variant:"h5",sx:GWn,children:"Backlog"}),(0,Pk.jsxs)(Rt,{direction:"row",spacing:2,sx:qWn,children:[(0,Pk.jsx)(fgr,{}),(0,Pk.jsx)(hgr,{value:e,onChange:t}),(0,Pk.jsx)(dgr,{})]})]})}var I2=P(z(),1);function ggr({items:e,loading:t,error:r,socket:n,onReload:i}){let o=as(),a=yr(),{query:s,setQuery:l,results:u,loading:f}=hmr(),[d,h]=(0,mgr.useState)("all"),p=u??e,m=d==="all"?p:p.filter(g=>g.type===d);return(0,I2.jsxs)(I2.Fragment,{children:[(0,I2.jsx)(pgr,{typeFilter:d,onTypeFilterChange:h}),(0,I2.jsx)(cgr,{value:s,onChange:l}),(0,I2.jsx)(lgr,{sessions:n.sessions}),(0,I2.jsx)(igr,{loading:t||f,error:u?null:r,query:s,typeFilter:d,items:m,socket:n,itemPath:g=>zT(g.id,o,a),onReload:i})]})}var f0e=P(ge(),1);var TR=P(ge(),1);async function Q$e(e,t,r){let n=await fetch(Fl(`/api/items/${so(e)}`,t.cwd,t.node),{signal:r});return n.ok?n.json():null}function ygr(e){let t=as(),r=yr(),[n,i]=(0,TR.useState)(null),[o,a]=(0,TR.useState)(!0),s=(0,TR.useCallback)(async()=>{i(await Q$e(e,{cwd:t,node:r}))},[e,t,r]);return(0,TR.useEffect)(()=>{let l=new AbortController,{signal:u}=l;return a(!0),(async()=>{try{let f=await Q$e(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}}var Lk={description:"item-section-description",acceptanceCriteria:"item-section-acceptance-criteria",subtasks:"item-section-subtasks",plan:"item-section-plan",activity:"item-section-activity",comments:"item-section-comments"},wY=140,J$e="--pinned-header-height",n0e=`var(${J$e}, ${wY}px)`,vgr=`calc(${n0e} + 8px)`;function Um(e){return{id:Lk[e],sx:{mb:2,scrollMarginTop:vgr}}}function i0e(e){return{id:`item-phase-${e}`,sx:{scrollMarginTop:vgr}}}var Mk=P(z(),1);function bgr({criteria:e}){return e.length===0?null:(0,Mk.jsxs)(le,{...Um("acceptanceCriteria"),children:[(0,Mk.jsx)(Oe,{variant:"overline",sx:{color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"},children:"Acceptance Criteria"}),(0,Mk.jsx)(L0,{disablePadding:!0,sx:{maxWidth:"72ch"},children:e.map((t,r)=>(0,Mk.jsxs)(iT,{disableGutters:!0,disablePadding:!0,sx:{py:.5,display:"flex",alignItems:"baseline"},children:[(0,Mk.jsxs)(Oe,{component:"span",sx:{color:"text.secondary",mr:1},children:[r+1,"."]}),(0,Mk.jsx)(yu,{component:"span",className:"markdown",html:MP(t)})]},t))})]})}var kY=P(z(),1),jWn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function xgr({description:e}){return e?(0,kY.jsxs)(le,{...Um("description"),children:[(0,kY.jsx)(Oe,{variant:"overline",sx:jWn,children:"Description"}),(0,kY.jsx)(Rw,{content:e,renderMermaid:!0})]}):null}var Agr=P(ge(),1);function Tgr(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 Cgr=P(z(),1),YWn={color:"text.secondary",alignSelf:"flex-start",textAlign:"left"};function Sgr({hiddenCount:e,expanded:t,onToggle:r}){return e===0?null:(0,Cgr.jsx)(xn,{component:"button",type:"button",variant:"body2",underline:"hover",sx:YWn,onClick:n=>{n.stopPropagation(),r()},children:t?"Show fewer commits":`\u2026 and ${e} more commits`})}var SR=P(z(),1),KWn={display:"flex",alignItems:"center",gap:1},XWn={color:"text.secondary",fontFamily:"monospace"},ZWn={flex:1,overflowWrap:"anywhere"},QWn={color:"text.disabled","&:hover":{color:"text.primary"}};function wgr({conversation:e}){let{resumeSession:t}=$l(),r=n=>{n.stopPropagation(),t(e.sessionId,e.cwd??"",e.title,e.harness)};return(0,SR.jsxs)(le,{sx:KWn,children:[(0,SR.jsx)(Oe,{variant:"body2",component:"span",sx:XWn,children:"session"}),(0,SR.jsx)(Oe,{variant:"body2",component:"span",sx:ZWn,children:e.title??e.sessionId}),(0,SR.jsx)(ir,{size:"small",title:"Resume",sx:QWn,onClick:r,children:(0,SR.jsx)(Fp,{sx:{fontSize:14}})})]})}var _gr=P(z(),1),JWn={color:"text.disabled",ml:1};function kgr({gitRef:e}){return e.kind!=="commit"||!e.createdAt?null:(0,_gr.jsx)(le,{component:"span",sx:JWn,children:eVn(e.createdAt)})}function eVn(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function Egr(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 tv=P(z(),1),tVn={color:"text.secondary",mr:1,fontFamily:"monospace"};function rVn({gitRef:e}){let t=Egr(e);return!e.url||e.kind==="session"?(0,tv.jsx)(tv.Fragment,{children:t}):(0,tv.jsx)(xn,{href:e.url,target:"_blank",rel:"noopener",onClick:r=>r.stopPropagation(),children:t})}function Rgr({gitRef:e}){return(0,tv.jsxs)(Oe,{variant:"body2",children:[(0,tv.jsx)(le,{component:"span",sx:tVn,children:e.kind}),(0,tv.jsx)(rVn,{gitRef:e}),(0,tv.jsx)(kgr,{gitRef:e})]})}var Ik=P(z(),1),nVn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function Pgr({gitRefs:e,conversations:t=[]}){let[r,n]=(0,Agr.useState)(!1),{branches:i,commits:o,overflowCommits:a,prs:s,slacks:l}=Tgr(e),u=[...i,...o,...r?a:[],...s,...l];return u.length===0&&t.length===0?null:(0,Ik.jsxs)(le,{...Um("activity"),children:[(0,Ik.jsx)(Oe,{variant:"overline",sx:nVn,children:"Activity"}),(0,Ik.jsxs)(Rt,{spacing:1,children:[u.map(f=>(0,Ik.jsx)(Rgr,{gitRef:f},`${f.kind}:${f.ref}`)),t.map(f=>(0,Ik.jsx)(wgr,{conversation:f},f.sessionId)),(0,Ik.jsx)(Sgr,{hiddenCount:a.length,expanded:r,onToggle:()=>n(f=>!f)})]})]})}var CR=P(z(),1),iVn={alignItems:"center",fontSize:"0.75rem",color:"text.secondary",mb:.5},oVn={color:"text.disabled"},aVn={fontWeight:500},sVn={summary:"Phase summary",comment:"Comment"};function Lgr({comment:e}){return(0,CR.jsxs)(Rt,{direction:"row",spacing:.5,sx:iVn,children:[e.id!==void 0&&(0,CR.jsxs)(Oe,{variant:"caption",sx:oVn,children:["#",e.id]}),(0,CR.jsx)(Oe,{variant:"caption",sx:aVn,children:sVn[e.type]}),e.phase!==void 0&&(0,CR.jsxs)(Oe,{variant:"caption",children:["\xB7 Phase ",e.phase]}),(0,CR.jsxs)(Oe,{variant:"caption",children:["\xB7 ",lVn(e.timestamp)]})]})}function lVn(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}var Mgr=P(z(),1),Igr=ut((0,Mgr.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 eze=P(ge(),1);async function Dgr(e,t,r,n){let i=await fetch(Fl(`/api/items/${so(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 rv=P(z(),1),cVn={mt:-.5,mr:-.5,color:"text.secondary"};function Ngr({itemId:e,commentId:t,onDeleted:r}){let n=as(),i=yr(),[o,a]=(0,eze.useState)(!1),[s,l]=(0,eze.useState)(),u=()=>l(void 0);return(0,rv.jsxs)(rv.Fragment,{children:[o&&(0,rv.jsx)(vo,{message:"Are you sure you want to delete this comment?",onConfirm:async()=>{a(!1);try{await Dgr(e,t,n,i),await r()}catch(f){l(f instanceof Error?f.message:"Failed to delete comment")}},onCancel:()=>a(!1)}),(0,rv.jsx)(ol,{open:s!==void 0,autoHideDuration:6e3,onClose:u,children:(0,rv.jsx)(ni,{severity:"error",variant:"filled",onClose:u,children:s})}),(0,rv.jsx)(ir,{"aria-label":"Delete comment",size:"small",sx:cVn,onClick:()=>a(!0),children:(0,rv.jsx)(Igr,{fontSize:"inherit"})})]})}var wR=P(z(),1),uVn={summary:{bgcolor:"warning.light",borderColor:"warning.dark"},comment:{bgcolor:"action.selected",borderColor:"divider"}},fVn={justifyContent:"space-between",alignItems:"flex-start"},dVn={color:"text.primary",whiteSpace:"pre-wrap"};function hVn(e){return{p:1.5,bgcolor:e.bgcolor,borderColor:e.borderColor}}function Ogr({comment:e,itemId:t,onDeleted:r}){return(0,wR.jsxs)(an,{variant:"outlined",sx:hVn(uVn[e.type]),children:[(0,wR.jsxs)(Rt,{direction:"row",sx:fVn,children:[(0,wR.jsx)(Lgr,{comment:e}),e.id!==void 0&&t!==void 0&&r&&(0,wR.jsx)(Ngr,{itemId:t,commentId:e.id,onDeleted:r})]}),(0,wR.jsx)(Oe,{variant:"body2",sx:dVn,children:e.text})]})}var CB=P(z(),1),pVn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function Bgr({comments:e,itemId:t,onCommentDeleted:r}){return e.length===0?null:(0,CB.jsxs)(le,{...Um("comments"),children:[(0,CB.jsx)(Oe,{variant:"overline",sx:pVn,children:"Comments"}),(0,CB.jsx)(Rt,{spacing:1,children:e.map((n,i)=>(0,CB.jsx)(Ogr,{comment:n,itemId:t,onDeleted:r},`${n.timestamp}-${i}`))})]})}var Fgr=P(z(),1);function wB({total:e,sx:t}){return(0,Fgr.jsx)(Oe,{sx:t,children:Nge(e)})}var zgr=P(z(),1),mVn={color:"text.secondary",fontSize:"0.75rem"};function $gr({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,zgr.jsx)(wB,{total:t,sx:mVn})}var D2=P(z(),1);function Hgr({checks:e}){return(0,D2.jsxs)(le,{sx:{mt:1,pt:1},children:[(0,D2.jsx)(no,{sx:{mb:1}}),(0,D2.jsx)(Oe,{variant:"overline",sx:{color:"text.disabled",letterSpacing:"0.08em"},children:"Manual Checks"}),(0,D2.jsx)(L0,{disablePadding:!0,sx:{ml:.5,mt:.5},children:e.map(t=>(0,D2.jsxs)(iT,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,D2.jsx)(Oe,{component:"span",sx:{mr:1,fontSize:"0.875rem",color:"text.secondary"},children:"\u2610"}),(0,D2.jsx)(yu,{component:"span",className:"markdown",sx:{fontSize:"0.875rem",color:"text.secondary"},html:MP(t)})]},t))})]})}var o0e={done:{borderColor:"success.light",bgcolor:"success.light"},current:{borderColor:"info.main",bgcolor:"info.light",ring:"info.light"},upcoming:{borderColor:"divider",bgcolor:"background.paper"}};function Ugr(e){let t=o0e[e];return{p:2,borderColor:t.ring?"info.main":t.borderColor,bgcolor:t.bgcolor,...t.ring?{boxShadow:"0 0 0 2px"}:{}}}var Wgr={done:"\u2713",current:"\u2022",upcoming:"\u2022"};var qgr=P(ge(),1);var Vgr=P(ge(),1),nv=P(z(),1);function Ggr({phaseName:e,onConfirm:t,onCancel:r}){let[n,i]=(0,Vgr.useState)("");return(0,nv.jsxs)(Ps,{open:!0,onClose:r,maxWidth:"xs",fullWidth:!0,children:[(0,nv.jsxs)(Il,{children:["Rewind to ",e,"?"]}),(0,nv.jsxs)(Ml,{children:[(0,nv.jsx)(Oe,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"This will mark all later phases as incomplete."}),(0,nv.jsx)(Yn,{fullWidth:!0,multiline:!0,rows:3,size:"small",placeholder:"Reason for rewinding...",value:n,onChange:o=>i(o.target.value)})]}),(0,nv.jsxs)(cu,{children:[(0,nv.jsx)(qt,{onClick:r,children:"Cancel"}),(0,nv.jsx)(qt,{variant:"contained",color:"warning",disabled:n.trim().length===0,onClick:()=>t(n.trim()),children:"Rewind"})]})]})}var kR=P(z(),1);function jgr({itemId:e,phaseNumber:t,phaseName:r,onRewound:n}){let i=as(),o=yr(),[a,s]=(0,qgr.useState)(!1);return(0,kR.jsxs)(kR.Fragment,{children:[(0,kR.jsx)(qt,{size:"small",color:"warning",variant:"outlined",onClick:()=>s(!0),sx:{ml:"auto",textTransform:"none",fontSize:"0.75rem"},children:"Rewind"}),a&&(0,kR.jsx)(Ggr,{phaseName:r,onConfirm:async l=>{await $et(e,t,l,i,o),await n()},onCancel:()=>s(!1)})]})}var kB=P(z(),1),gVn={done:{label:"Done",color:"success"},current:{label:"In Progress",color:"info"},upcoming:{label:"Upcoming",color:"default"}},yVn={alignItems:"center",mb:1},vVn={fontWeight:500},bVn={fontWeight:500,fontSize:"0.75rem"};function Ygr({phase:e,index:t,status:r,itemId:n,onRewind:i}){let o=gVn[r],a=r==="done"&&n!==void 0&&i;return(0,kB.jsxs)(Rt,{direction:"row",spacing:1,sx:yVn,children:[(0,kB.jsxs)(Oe,{sx:vVn,children:["Phase ",t+1,": ",e.name]}),(0,kB.jsx)(sn,{label:o.label,size:"small",color:o.color,sx:bVn}),a&&(0,kB.jsx)(jgr,{itemId:n,phaseNumber:t+1,phaseName:e.name,onRewound:i})]})}var _Y=P(z(),1),xVn={color:"text.secondary",fontSize:"0.75rem",letterSpacing:"0.08em",display:"block"},TVn={color:"text.secondary",fontSize:"0.75rem",fontFamily:"monospace",display:"block"};function Kgr({sessions:e}){return(0,_Y.jsxs)(le,{sx:{mb:1},children:[(0,_Y.jsx)(Oe,{variant:"overline",sx:xVn,children:"Sessions"}),e.map(t=>(0,_Y.jsx)(Oe,{sx:TVn,children:`${t.hostname} / ${t.osUser} / ${t.claudeSessionId}`},t.claudeSessionId))]})}var Zgr=P(z(),1),SVn={color:"text.secondary",fontSize:"0.75rem",mb:1,display:"block"};function Xgr({usage:e}){return(0,Zgr.jsx)(wB,{total:e,sx:SVn})}var _B=P(z(),1);function Qgr({tasks:e,marker:t}){return(0,_B.jsx)(L0,{disablePadding:!0,sx:{ml:.5},children:e.map(r=>(0,_B.jsxs)(iT,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,_B.jsx)(Oe,{component:"span",sx:{color:"text.secondary",mr:1},children:t}),(0,_B.jsx)(yu,{component:"span",className:"markdown",html:MP(r.task)})]},r.task))})}var Dk=P(z(),1);function Jgr({phase:e,index:t,status:r,itemId:n,usage:i,sessions:o,onRewind:a}){let s=e.manualChecks??[],l=i0e(t);return(0,Dk.jsxs)(an,{variant:"outlined",id:l.id,sx:{...Ugr(r),...l.sx},children:[(0,Dk.jsx)(Ygr,{phase:e,index:t,status:r,itemId:n,onRewind:a}),i&&(0,Dk.jsx)(Xgr,{usage:i}),(0,Dk.jsx)(Qgr,{tasks:e.tasks,marker:Wgr[r]}),s.length>0&&(0,Dk.jsx)(Hgr,{checks:s}),o&&o.length>0&&(0,Dk.jsx)(Kgr,{sessions:o})]})}var EY={name:"Review",tasks:[]};function a0e(e){return e.at(-1)?.name===EY.name?e.length-1:e.length}function s0e(e,t){if(t===void 0)return"upcoming";let r=e+1;return r<t?"done":r===t?"current":"upcoming"}function e0r(e=[]){return new Map(e.map(t=>[t.phaseIdx,t]))}function t0r(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 tze=P(z(),1);function r0r({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){let a=e0r(n),s=t0r(i),l=a0e(e),u=(i??[]).filter(d=>d.phaseIdx>=l),f=l===e.length&&u.length>0?[...e,EY]:e;return(0,tze.jsx)(Rt,{spacing:1.5,children:f.map((d,h)=>(0,tze.jsx)(Jgr,{phase:d,index:h,status:s0e(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 _R=P(z(),1),CVn={alignItems:"baseline",justifyContent:"space-between",mb:1},wVn={color:"text.secondary",display:"block",letterSpacing:"0.08em"};function n0r({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){return e.length===0?null:(0,_R.jsxs)(le,{...Um("plan"),children:[(0,_R.jsxs)(Rt,{direction:"row",sx:CVn,children:[(0,_R.jsx)(Oe,{variant:"overline",sx:wVn,children:"Plan"}),n&&n.length>0&&(0,_R.jsx)($gr,{usage:n})]}),(0,_R.jsx)(r0r,{phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o})]})}var rze=P(z(),1),l0e=e=>{let{value:t,options:r,colors:n,onChange:i}=e;return(0,rze.jsx)(sT,{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,rze.jsx)(fn,{value:o,children:o},o))})};var o0r=P(z(),1),kVn={todo:{bg:"action.selected",text:"text.primary"},"in-progress":{bg:"warning.main",text:"warning.contrastText"},done:{bg:"success.main",text:"success.contrastText"}},_Vn=["todo","in-progress","done"];function i0r({current:e,onStatusChange:t}){return(0,o0r.jsx)(l0e,{value:e,options:_Vn,colors:kVn,onChange:t})}var Nk=P(z(),1);function a0r({subtask:e,onStatusChange:t}){let r=e.status==="done";return(0,Nk.jsxs)(Rt,{direction:"row",spacing:1,sx:{alignItems:"flex-start",justifyContent:"space-between"},children:[(0,Nk.jsxs)(le,{sx:{flex:1},children:[(0,Nk.jsx)(Oe,{variant:"body2",sx:{textDecoration:r?"line-through":"none",color:r?"text.disabled":"text.primary"},children:e.title}),e.description&&(0,Nk.jsx)(le,{sx:{mt:.5,fontSize:"0.8125rem",color:r?"text.disabled":"text.secondary"},children:(0,Nk.jsx)(Rw,{content:e.description})})]}),(0,Nk.jsx)(i0r,{current:e.status,onStatusChange:t})]})}var ER=P(z(),1),EVn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function s0r({subtasks:e,onStatusChange:t}){if(e.length===0)return null;let r=e.filter(n=>n.status!=="done").length;return(0,ER.jsxs)(le,{...Um("subtasks"),children:[(0,ER.jsx)(Oe,{variant:"overline",sx:EVn,children:"Sub-tasks"}),(0,ER.jsx)(Rt,{spacing:1,children:e.map((n,i)=>(0,ER.jsx)(a0r,{subtask:n,onStatusChange:o=>t(i,o)},`${n.title}-${i}`))}),r>0&&(0,ER.jsxs)(ni,{severity:"warning",sx:{mt:1},children:[r," sub-task",r===1?"":"s"," not yet done."]})]})}var N2=P(z(),1);function l0r({item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n}){return(0,N2.jsxs)(N2.Fragment,{children:[e.subtasks&&n&&(0,N2.jsx)(s0r,{subtasks:e.subtasks,onStatusChange:n}),e.plan&&(0,N2.jsx)(n0r,{phases:e.plan,currentPhase:e.currentPhase,itemId:e.id,usage:e.phaseUsage,sessions:e.phaseSessions,onRewind:t}),(0,N2.jsx)(Pgr,{gitRefs:e.gitRefs??[],conversations:e.conversations}),e.comments&&(0,N2.jsx)(Bgr,{comments:e.comments,itemId:e.id,onCommentDeleted:r})]})}var EB=P(z(),1);function c0r({item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n}){return(0,EB.jsxs)(le,{sx:{pt:2,flex:1,minWidth:0},children:[(0,EB.jsx)(xgr,{description:e.description}),(0,EB.jsx)(bgr,{criteria:e.acceptanceCriteria}),(0,EB.jsx)(l0r,{item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n})]})}var u0r="item-detail";var RY={wideQuery:`@container ${u0r} (min-width: 760px)`,containerSx:{containerType:"inline-size",containerName:u0r},columnsSx:{display:"flex",columnGap:3}};function RVn(e){let t=e.plan??[];if(t.length===0)return[];let r=a0e(t),i=r===t.length&&(e.phaseSessions??[]).some(o=>o.phaseIdx>=r)?[...t,EY]:t;return[{id:Lk.plan,label:"Phases"},...i.map((o,a)=>({id:i0e(a).id,label:`${a+1}`,title:o.name,status:s0e(a,e.currentPhase),nested:!0}))]}function f0r(e){let t=[];return e.description&&t.push({id:Lk.description,label:"Description"}),e.acceptanceCriteria.length>0&&t.push({id:Lk.acceptanceCriteria,label:"Acceptance Criteria"}),(e.subtasks?.length??0)>0&&t.push({id:Lk.subtasks,label:"Sub-tasks"}),t.push(...RVn(e)),(e.gitRefs?.length??0)+(e.conversations?.length??0)>0&&t.push({id:Lk.activity,label:"Activity"}),(e.comments?.length??0)>0&&t.push({id:Lk.comments,label:"Comments"}),t}var d0r="1.3125rem",h0r={position:"relative",borderRadius:1,"&::after":{content:'""',position:"absolute",inset:0,borderRadius:"inherit",pointerEvents:"none"},"&:hover::after":{bgcolor:"action.hover"},"&:active::after":{bgcolor:"action.selected"}},AVn={...h0r,display:"block",flexShrink:0,maxWidth:"100%",px:1,py:.5,border:0,bgcolor:"transparent",fontSize:d0r,lineHeight:1.2,letterSpacing:"0.02em",textAlign:"left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"text.secondary"},PVn={...h0r,display:"flex",alignItems:"center",justifyContent:"center",fontSize:d0r,width:"2em",height:"2em",flexShrink:0,lineHeight:1,borderRadius:"50%",border:1,color:"text.primary"},LVn={borderColor:"text.primary",borderWidth:3},MVn={color:"text.primary",fontWeight:700,"&::after":{bgcolor:"action.selected"}};function p0r(e,t){let r=e.status&&o0e[e.status];return r?{...PVn,ml:1.5,bgcolor:r.bgcolor,borderColor:r.borderColor,borderWidth:r.ring?3:1,...t&&LVn}:{...AVn,...t&&MVn}}var g0r=P(z(),1);function m0r({section:e,active:t,onSelect:r}){return(0,g0r.jsx)(Dn,{sx:p0r(e,t),onClick:()=>r(e.id),title:e.title??e.label,"aria-current":t?"true":void 0,children:e.label})}function y0r(e,t=wY){return ipe(e,t)}var nze=P(z(),1),IVn=48,DVn=260,NVn={display:"none",[RY.wideQuery]:{display:"flex"},position:"sticky",top:n0e,alignSelf:"flex-start",width:DVn,flexShrink:0,maxHeight:`calc(100vh - ${IVn}px - ${n0e})`,alignItems:"flex-start",overflowY:"auto",overflowX:"hidden",py:2};function OVn(e){document.getElementById(e)?.scrollIntoView({behavior:"smooth",block:"start"})}function v0r({item:e,headerHeight:t}){let r=f0r(e),n=y0r(r.map(i=>i.id),t);return r.length===0?null:(0,nze.jsx)(Rt,{component:"nav",spacing:1,sx:NVn,children:r.map(i=>(0,nze.jsx)(m0r,{section:i,active:i.id===n,onSelect:OVn},i.id))})}var x0r=P(z(),1);function b0r({to:e}){let t=Xi();return(0,x0r.jsx)(qt,{"data-backlog-focus":"back",variant:"text",size:"small",onClick:()=>t(e),sx:{mb:2,textTransform:"none"},children:"\u2190 Back"})}var T0r=P(ge(),1);var RR=P(z(),1);function S0r({itemId:e,onDeleted:t}){let r=as(),n=yr(),[i,o]=(0,T0r.useState)(!1);return(0,RR.jsxs)(RR.Fragment,{children:[i&&(0,RR.jsx)(vo,{onConfirm:async()=>{await Bet(e,r,n),await t()},onCancel:()=>o(!1)}),(0,RR.jsx)(qt,{variant:"contained",color:"error",size:"small",onClick:()=>o(!0),children:"Delete"})]})}var ize=P(z(),1),BVn={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"}},FVn=["todo","in-progress","done","wontdo"];function C0r({current:e,onStatusChange:t}){return t?(0,ize.jsx)(l0e,{value:e,options:FVn,colors:BVn,onChange:t}):(0,ize.jsx)(sn,{label:e,size:"small",color:Ege[e],sx:{fontWeight:500,fontSize:"0.75rem"}})}var O2=P(z(),1),$Vn={alignItems:"center",color:"text.disabled",fontSize:"0.875rem"},zVn={fontWeight:500,fontSize:"0.75rem"},HVn={color:"text.secondary",fontSize:"0.75rem"};function w0r({item:e,onStatusChange:t}){let r=_ge[e.type];return(0,O2.jsxs)(Rt,{direction:"row",spacing:1,sx:$Vn,children:[(0,O2.jsx)(Oe,{variant:"body2",color:"text.disabled",children:so(e.id)}),r&&(0,O2.jsx)(sn,{label:e.type,size:"small",color:r,sx:zVn}),(0,O2.jsx)(C0r,{current:e.status,onStatusChange:t}),(0,O2.jsx)(pP,{jiraKey:e.jiraKey}),(0,O2.jsx)(hP,{githubIssue:e.githubIssue,origin:e.origin}),e.usageTotal&&(0,O2.jsx)(wB,{total:e.usageTotal,sx:HVn})]})}var k0r=P(z(),1),_0r=ut((0,k0r.jsx)("path",{d:"M3 17v2h6v-2zM3 5v2h10V5zm10 16v-2h8v-2h-8v-2h-2v6zM7 9v2H3v2h4v2h2V9zm14 4v-2H11v2zm-6-4h2V7h4V5h-4V3h-2z"}),"Tune");var c0e=P(ge(),1);var E0r=P(ge(),1);function R0r(e){let{launchAssist:t}=$l(),r=Xi(),n=as(),i=yr(),[o,a]=(0,E0r.useState)(!1);return{launched:o,launch:l=>{if(o)return;a(!0);let u=i?[{node:i}]:[];t(["refine","--once",...l,so(e)],n,...u),r("/sessions")}}}var c0=P(z(),1);function A0r({itemId:e}){let{launched:t,launch:r}=R0r(e),n=kk(),i=(0,c0e.useRef)(null),[o,a]=(0,c0e.useState)(!1),s=u=>u.stopPropagation(),l=Bge(n);return(0,c0.jsxs)(c0.Fragment,{children:[(0,c0.jsxs)(tT,{ref:i,variant:"outlined",size:"small",disabled:t,children:[(0,c0.jsx)(qt,{startIcon:(0,c0.jsx)(_0r,{}),onClick:u=>{s(u),r([])},children:"Refine"}),l.length>0&&(0,c0.jsx)(qt,{size:"small","aria-label":"Refine with a different harness",onClick:u=>{s(u),a(!0)},children:(0,c0.jsx)(Up,{})})]}),(0,c0.jsx)(Fge,{anchorEl:i.current,open:o,onClose:()=>a(!1),options:l,onSelect:u=>{a(!1),r(["--harness",u])},stop:s})]})}var RB=P(ge(),1);function P0r(){let e=(0,RB.useRef)(null),[t,r]=(0,RB.useState)(!1);return(0,RB.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 Bf=P(z(),1),UVn={justifyContent:"space-between",alignItems:"center",mb:2};function WVn(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 VVn(e){return t=>({position:"sticky",top:0,zIndex:1,bgcolor:"background.default",mx:-2,px:2,pb:2,borderBottom:1,borderColor:"divider",boxShadow:e?WVn(t):"none",transition:t.transitions.create("box-shadow")})}function L0r({item:e,onDeleted:t,onStatusChange:r,ref:n}){let{sentinelRef:i,stuck:o}=P0r();return(0,Bf.jsxs)(Bf.Fragment,{children:[(0,Bf.jsx)(le,{ref:i,sx:{height:0}}),(0,Bf.jsxs)(le,{ref:n,sx:VVn(o),children:[(0,Bf.jsxs)(Rt,{direction:"row",sx:UVn,children:[(0,Bf.jsx)(b0r,{to:"/backlog"}),(0,Bf.jsxs)(Rt,{direction:"row",spacing:1,children:[Oge(e)&&(0,Bf.jsx)(Jge,{itemId:e.id}),(0,Bf.jsx)(A0r,{itemId:e.id}),(0,Bf.jsx)(S0r,{itemId:e.id,onDeleted:t})]})]}),(0,Bf.jsx)(Oe,{variant:"h5",component:"h2",children:e.name}),(0,Bf.jsx)(w0r,{item:e,onStatusChange:r})]})]})}var I0r=P(ge(),1);var u0e=P(ge(),1);function M0r(e,t){let[r,n]=(0,u0e.useState)(t);return(0,u0e.useEffect)(()=>{let i=e.current;if(!i||(n(i.offsetHeight),typeof ResizeObserver>"u"))return;let o=new ResizeObserver(()=>n(i.offsetHeight));return o.observe(i),()=>o.disconnect()},[e]),r}function D0r(){let e=(0,I0r.useRef)(null),t=M0r(e,wY),r={[J$e]:`${t}px`};return{headerRef:e,headerHeight:t,style:r}}var Ok=P(z(),1);function N0r({item:e,onReload:t}){let r=Xi(),n=as(),i=yr(),{headerRef:o,headerHeight:a,style:s}=D0r();oy("ItemDetail");let l=async()=>{await t(),r("/backlog")},u=async d=>{await zJ(e.id,d,n,i),await t()},f=async(d,h)=>{await Fet(e.id,d,h,n,i),await t()};return(0,Ok.jsxs)(le,{style:s,children:[(0,Ok.jsx)(L0r,{ref:o,item:e,onDeleted:l,onStatusChange:u}),(0,Ok.jsx)(le,{sx:RY.containerSx,children:(0,Ok.jsxs)(le,{sx:RY.columnsSx,children:[(0,Ok.jsx)(c0r,{item:e,onRewind:t,onCommentDeleted:t,onSubtaskStatusChange:f}),(0,Ok.jsx)(v0r,{item:e,headerHeight:a})]})})]})}var AR=P(z(),1),GVn={display:"flex",justifyContent:"center",py:6};function O0r({onReload:e}){let[t]=Pc(),r=t.get("cwd")||void 0,n=t.get("node")||void 0,i=$n(),o=(0,f0e.useMemo)(()=>r?{...i,selectedCwd:r,selectedNode:n}:i,[i,r,n]);return oy("ItemRoute"),(0,AR.jsx)(Pz.Provider,{value:o,children:(0,AR.jsx)(Xu.Provider,{value:o.selectedNode,children:(0,AR.jsx)(qVn,{onReload:e})})})}function qVn({onReload:e}){let{id:t}=_2e(),r=Number.NaN;try{r=_J(t??"")}catch{r=Number.NaN}let{item:n,loading:i,reload:o}=ygr(r),a=(0,f0e.useCallback)(async()=>{await Promise.all([o(),e()])},[o,e]);return i?(0,AR.jsx)(le,{sx:GVn,children:(0,AR.jsx)(mo,{})}):n?(0,AR.jsx)(N0r,{item:n,onReload:a}):null}var PR=P(z(),1);function B0r({items:e,loading:t,error:r,socket:n,onReload:i}){return(0,PR.jsxs)(m5,{children:[(0,PR.jsx)(gs,{index:!0,element:(0,PR.jsx)(ggr,{items:e,loading:t,error:r,socket:n,onReload:i})}),(0,PR.jsx)(gs,{path:"items/:id",element:(0,PR.jsx)(O0r,{onReload:i})})]})}var u0=P(ge(),1);var F0r=new Map;function $0r(e,t,r){return JSON.stringify([e??null,t,r??null])}var AY={get(e,t,r){return F0r.get($0r(e,t,r))},set(e,t,r,n){F0r.set($0r(e,t,n),r)}};function jVn(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 z0r(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&&r.incompleteSubtasks===i.incompleteSubtasks&&jVn(r.usageTotal,i.usageTotal)})}function H0r({setItems:e,setLoading:t,setError:r}){return{onLoaded:n=>{e(i=>z0r(i,n)?i:n),t(!1),r(null)},onError:n=>{t(!1),r(n)}}}async function U0r(e,t,r,n){let i=await WT({cwd:e,node:n,signal:r,filter:t});return r.aborted||AY.set(e,t,i,n),i}function W0r(e,t,r,{onLoaded:n,onError:i},o){return(async()=>{try{let a=await U0r(e,t,r,o);r.aborted||n(a)}catch(a){r.aborted||i(a instanceof Error?a.message:"Failed to load.")}})()}var YVn=5e3;function V0r(e,t,r,n){let i=new AbortController,o=!1,a=()=>{o||(o=!0,W0r(e,t,i.signal,r,n).finally(()=>{o=!1}))};a();let s=setInterval(a,YVn);return()=>{i.abort(),clearInterval(s)}}function G0r(){let e=as(),t=yr(),[r]=hB(),n=AY.get(e,r,t),i=n??[],o=n===void 0,[a,s]=(0,u0.useState)(i),[l,u]=(0,u0.useState)(o),[f,d]=(0,u0.useState)(null),[h,p]=(0,u0.useState)(e),[m,g]=(0,u0.useState)(t),[y,v]=(0,u0.useState)(r);(e!==h||t!==m||r!==y)&&(p(e),g(t),v(r),s(i),u(o),d(null));let b=(0,u0.useCallback)(async()=>{let x=await WT({cwd:e,node:t,filter:r});s(x),AY.set(e,r,x,t),u(!1)},[e,t,r]);return(0,u0.useEffect)(()=>V0r(e,r,H0r({setItems:s,setLoading:u,setError:d}),t),[e,t,r]),{items:a,loading:l,error:f,reload:b}}var PY=P(z(),1);function q0r({socket:e}){let{items:t,loading:r,error:n,reload:i}=G0r();return bte(!r),(0,PY.jsx)(V$e.Provider,{value:e.sessions,children:(0,PY.jsx)(m5,{children:(0,PY.jsx)(gs,{path:"/*",element:(0,PY.jsx)(B0r,{items:t,loading:r,error:n,socket:e,onReload:i})})})})}var oze=P(z(),1);function j0r({socket:e}){return(0,oze.jsx)(WF,{maxWidth:"lg",sx:{py:3,px:2},children:(0,oze.jsx)(q0r,{socket:e})})}var _i=P(z(),1);function Y0r({socket:e}){return oy("AppRoutes"),(0,_i.jsxs)(_i.Fragment,{children:[(0,_i.jsx)(Aor,{}),(0,_i.jsx)(m5,{children:(0,_i.jsxs)(gs,{element:(0,_i.jsx)(Oit,{socket:e}),children:[(0,_i.jsx)(gs,{path:"sessions",element:(0,_i.jsx)(Ehr,{socket:e})}),(0,_i.jsx)(gs,{path:"backlog/*",element:(0,_i.jsx)(j0r,{socket:e})}),(0,_i.jsx)(gs,{path:"next",element:(0,_i.jsx)(Hir,{sessions:e.sessions,selectSession:e.selectSession})}),(0,_i.jsx)(gs,{path:"news",element:(0,_i.jsx)(Knr,{})}),(0,_i.jsx)(gs,{path:"releases",element:(0,_i.jsx)(kor,{})}),(0,_i.jsx)(gs,{path:"usage",element:(0,_i.jsx)(lmr,{})}),(0,_i.jsx)(gs,{path:"backups",element:(0,_i.jsx)(Vit,{})}),(0,_i.jsx)(gs,{path:"config",element:(0,_i.jsx)(Fat,{})}),(0,_i.jsx)(gs,{path:"updates",element:(0,_i.jsx)(bpr,{reconnecting:e.reconnecting,selectSession:e.selectSession})}),(0,_i.jsx)(gs,{path:"diff",element:(0,_i.jsx)(pnr,{socket:e})}),(0,_i.jsx)(gs,{path:"file",element:(0,_i.jsx)(Vnr,{socket:e})}),(0,_i.jsx)(gs,{path:"*",element:(0,_i.jsx)(M2e,{to:"/sessions",replace:!0})})]})})]})}var g0e=P(ge(),1);var m0e=P(ge(),1);function K0r(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 Bk=P(z(),1),KVn={display:"flex",gap:1,alignItems:"center",minWidth:0},XVn={display:"flex",gap:1,alignItems:"baseline",minWidth:0,overflow:"hidden"},ZVn={fontFamily:"monospace",fontSize:13,whiteSpace:"nowrap"},QVn={fontFamily:"monospace",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function JVn(e){let t=e.lastIndexOf("/");return t===-1?{dir:"",basename:e}:{dir:e.slice(0,t),basename:e.slice(t+1)}}function X0r({files:e,highlight:t,onHighlight:r,onSelect:n}){return(0,Bk.jsx)(Cp,{dense:!0,sx:{py:0},children:e.map((i,o)=>{let{dir:a,basename:s}=JVn(i);return(0,Bk.jsxs)(fn,{selected:o===t,onMouseEnter:()=>r(o),onClick:()=>n(i),sx:KVn,children:[(0,Bk.jsx)(o9,{path:i}),(0,Bk.jsxs)(le,{sx:XVn,children:[(0,Bk.jsx)(Oe,{component:"span",sx:ZVn,children:s}),(0,Bk.jsx)(Oe,{component:"span",color:"text.secondary",sx:QVn,children:a})]})]},i)})})}var d0e=P(z(),1),eGn={maxHeight:420,overflowY:"auto"},tGn={px:2,py:2,fontSize:13};function Z0r({message:e,files:t,highlight:r,onHighlight:n,onSelect:i}){return(0,d0e.jsx)(le,{sx:eGn,children:e?(0,d0e.jsx)(Oe,{color:"text.secondary",sx:tGn,children:e}):(0,d0e.jsx)(X0r,{files:t,highlight:r,onHighlight:n,onSelect:i})})}var Q0r=P(z(),1),rGn={mt:6,alignSelf:"flex-start"};function h0e({onClose:e,onEntered:t,centered:r=!1,children:n}){return(0,Q0r.jsx)(Ps,{open:!0,onClose:e,maxWidth:"sm",fullWidth:!0,slotProps:{paper:{sx:r?void 0:rGn},transition:{onEntered:t}},children:n})}var p0e=P(ge(),1);var J0r={files:[],loading:!1,error:!1};function eyr(e,t){let[r,n]=(0,p0e.useState)(J0r),i=yr();return(0,p0e.useEffect)(()=>{if(!e){n(J0r);return}let o=!1;return n(s=>({...s,loading:!0})),(async()=>{try{let s=await fetch(tn(`/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 LR=P(z(),1);function nGn(e,t,r){let n=new URLSearchParams({path:e});return t&&n.set("cwd",t),t&&r&&n.set("node",r),`/file?${n}`}function tyr({onClose:e}){let{worktreeNode:t}=$n();return(0,LR.jsx)(Xu.Provider,{value:t,children:(0,LR.jsx)(iGn,{onClose:e})})}function iGn({onClose:e}){let{worktreeCwd:t,worktreeNode:r}=$n(),[n,i]=(0,m0e.useState)(""),o=eyr(t,n),a=Xi(),s=(0,m0e.useRef)(null),l=p=>a(nGn(p,t,r)),{highlight:u,setHighlight:f,onKeyDown:d}=Ak(o.files,n,l,e),h=p=>{l(p),e()};return(0,LR.jsxs)(h0e,{onClose:e,onEntered:()=>s.current?.focus(),children:[(0,LR.jsx)(yB,{autoFocus:!0,inputRef:s,value:n,onChange:i,onKeyDown:d,placeholder:"Search files by name..."}),(0,LR.jsx)(Z0r,{message:K0r(t,n,o),files:o.files,highlight:u,onHighlight:f,onSelect:h})]})}function ryr(e){No(Kn("quickOpen").matches,e)}var iyr=P(z(),1);function nyr(){let[e,t]=(0,g0e.useState)(!1);return ryr((0,g0e.useCallback)(()=>t(!0),[])),e?(0,iyr.jsx)(tyr,{onClose:()=>t(!1)}):null}var y0e=P(z(),1);function oyr({notice:e,onClose:t,onView:r}){let n=e?.sessionId??null;return(0,y0e.jsx)(ol,{open:e!==null,autoHideDuration:6e3,onClose:t,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,y0e.jsx)(ni,{severity:"success",variant:"filled",onClose:t,action:n!==null?(0,y0e.jsx)(qt,{color:"inherit",size:"small",onClick:()=>r(n),children:"View"}):void 0,children:e?.message})})}var S0e=P(ge(),1);function ayr(e){let t=["claude"];return e.exposeCodexActions&&t.push("codex"),e.exposePiActions&&t.push("pi"),t}var byr=P(ge(),1);var syr=P(z(),1),lyr=ut((0,syr.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 Fk="0.795.2";var oGn={connected:"success.main",connecting:"warning.main",disconnected:"error.main","version-blocked":"error.main"};function cyr(e){return e?oGn[e]:"success.main"}function uyr(e){return e.split("-")[0].split(".").map(Number)}function fyr(e,t){if(!e||!t||e===t)return;let r=uyr(e),n=uyr(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 v0e=P(ge(),1),aze=(0,v0e.createContext)(null);function b0e(){return(0,v0e.useContext)(aze)}var MR=P(z(),1),aGn={height:16,fontSize:10},sGn={opacity:.6,fontSize:"0.85em"};function lGn(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 LY({nodes:e,name:t,showVersion:r=!1}){let n=b0e()??Fk,i=e.links.find(a=>a.name===t),o=fyr(i?.peerVersion,n);return(0,MR.jsx)(lr,{title:lGn(e,t),placement:"right",children:(0,MR.jsxs)(le,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.75},children:[(0,MR.jsx)(lyr,{sx:{fontSize:8,color:cyr(i?.state)}}),t,r&&i?.peerVersion&&(0,MR.jsxs)(le,{component:"span",sx:sGn,children:["v",i.peerVersion]}),o&&(0,MR.jsx)(sn,{label:o,size:"small",color:o==="behind"?"warning":"info",sx:aGn})]})})}var IR=P(z(),1),cGn={opacity:.6},uGn={display:"inline-flex",alignItems:"center",gap:.5,px:.5,border:1,borderStyle:"dashed",borderRadius:1};function dyr({nodes:e,name:t,clone:r}){let n=(0,IR.jsx)(LY,{nodes:e,name:t});return r.kind==="cloned"?n:r.kind==="unavailable"?(0,IR.jsx)(le,{component:"span",sx:cGn,children:n}):(0,IR.jsx)(lr,{title:gB(t,r.cloneTarget),children:(0,IR.jsxs)(le,{component:"span",sx:uGn,children:[(0,IR.jsx)(mB,{sx:{fontSize:14}}),n]})})}var pyr=P(z(),1),fGn={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 hyr({value:e,label:t,checked:r,autoFocus:n,onSelect:i}){return(0,pyr.jsx)(Dn,{role:"radio","aria-checked":r,"data-value":e,tabIndex:r?0:-1,autoFocus:n&&r,onClick:i,sx:fGn,children:t})}var myr={ArrowRight:1,ArrowLeft:-1};function dGn(e,t,r){if(e.key==="Tab"){let n=t+(e.shiftKey?-1:1);return n>=0&&n<r?n:void 0}return(t+myr[e.key]+r)%r}function gyr(e,t,r,n){return i=>{if(i.key==="ArrowUp"||i.key==="ArrowDown"){if(!n)return;i.preventDefault(),n();return}if(i.key!=="Tab"&&!myr[i.key]){db(i);return}let o=dGn(i,e.indexOf(t),e.length);o!==void 0&&(i.preventDefault(),r(e[o]),i.currentTarget.querySelector(`[data-value="${e[o]}"]`)?.focus())}}var yyr=P(ge(),1);function AB(e){return e?.querySelector('[aria-checked="true"]')}function vyr(e,t){(0,yyr.useEffect)(()=>{let r=e.current;if(!r?.contains(document.activeElement))return;let n=AB(r);n&&n!==document.activeElement&&n.focus()},[e,t])}var sze=P(z(),1),hGn={border:1,borderColor:"divider",borderRadius:1,height:40,p:"2px",flexShrink:0};function x0e({label:e,options:t,value:r,onChange:n,optionLabel:i=u=>u,groupRef:o,autoFocus:a,onTrack:s,onToggleRow:l}){return vyr(o,r),(0,sze.jsx)(Rt,{ref:o,direction:"row",role:"radiogroup","aria-label":e,spacing:"2px",onFocus:s,onKeyDown:gyr(t,r,n,l),sx:hGn,children:t.map(u=>(0,sze.jsx)(hyr,{value:u,label:i(u),checked:u===r,autoFocus:a,onSelect:()=>n(u)},u))})}var lze=P(z(),1);function xyr({value:e,onChange:t,cloneState:r}){let{nodes:n,names:i,visible:o}=Bu(),a=(0,byr.useRef)(null);return!o||!n||!e?null:(0,lze.jsx)(x0e,{label:"Machine",options:i,value:e,onChange:t,optionLabel:s=>(0,lze.jsx)(dyr,{nodes:n,name:s,clone:r(s)}),groupRef:a,autoFocus:!1,onTrack:()=>{}})}var Syr=P(z(),1);function Tyr({value:e,onChange:t,placeholder:r,inputRef:n,autoFocus:i,onTrack:o}){return(0,Syr.jsx)(Yn,{value:e,onChange:a=>t(a.target.value),onKeyDown:db,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 _yr=P(ge(),1);var B2={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:Kee,submitLabel:"Start session"},design:{placeholder:"Describe the design task...",submitLabel:"Start design"}},Cyr=Object.keys(B2);var cze=P(z(),1);function wyr({anchor:e,harness:t,harnesses:r,onPick:n,onClose:i}){return(0,cze.jsx)(Dl,{open:e!==null,anchorEl:e,onClose:i,slotProps:{list:{dense:!0,"aria-label":"Harness"}},children:r.map(o=>(0,cze.jsx)(fn,{role:"menuitemradio","aria-checked":o===t,selected:o===t,onClick:()=>{n(o),i()},sx:{fontSize:13},children:gu(o)},o))})}var DR=P(z(),1);function kyr(e){return t=>t==="prompt"&&e?(0,DR.jsxs)(DR.Fragment,{children:["prompt",(0,DR.jsx)(le,{component:"span",sx:{fontWeight:400,whiteSpace:"pre"},children:` \xB7 ${gu(e)}`}),(0,DR.jsx)(Up,{sx:{fontSize:18,mr:-.75}})]}):t}var NR=P(z(),1);function Eyr({draft:e,harness:t,harnesses:r,focus:n}){let[i,o]=(0,_yr.useState)(null),a=e.mode==="prompt"&&r.length>1,s=()=>o(AB(n.modeRef.current)??null),l=u=>{a&&u==="prompt"?s():e.setMode(u)};return(0,NR.jsxs)(NR.Fragment,{children:[(0,NR.jsx)(x0e,{label:"Mode",options:Cyr,value:e.mode,onChange:l,optionLabel:kyr(r.length>1?t:void 0),groupRef:n.modeRef,autoFocus:n.autoFocus==="mode",onTrack:n.trackMode,onToggleRow:a?s:void 0}),(0,NR.jsx)(wyr,{anchor:i,harness:t,harnesses:r,onPick:e.setHarness,onClose:()=>o(null)})]})}var Fyr=P(ge(),1);var uze=P(z(),1),pGn={zIndex:e=>e.zIndex.modal+1};function Ryr({open:e,anchor:t,children:r}){return(0,uze.jsx)(HA,{open:e,anchorEl:t,placement:"bottom-start",sx:pGn,children:(0,uze.jsx)(an,{sx:{maxHeight:240,overflowY:"auto",width:t?.clientWidth},onMouseDown:n=>n.preventDefault(),children:r})})}function Ayr(e){return{htmlInput:{role:"combobox","aria-label":"Repo","aria-expanded":e},input:{sx:{fontSize:13,height:40}}}}var Pyr=P(bF(),1);function Lyr({open:e,highlighted:t,accept:r,close:n,navigate:i,openList:o}){return a=>{if(!e){if(a.key==="ArrowDown"){a.preventDefault(),o();return}db(a);return}if(a.key!=="Escape"){if(a.key==="Enter"){if(a.preventDefault(),t===void 0)return;(0,Pyr.flushSync)(()=>{r(t),n()}),db(a);return}if(a.key!=="Tab"){i(a);return}t!==void 0&&r(t),n()}}}function Myr(e,t){let r=t.trim().toLowerCase();return r?e.filter(n=>J1(n).toLowerCase().includes(r)):e}var fze=P(ge(),1);function Iyr(){let[e,t]=(0,fze.useState)(!1),[r,n]=(0,fze.useState)("");return{open:e,query:r,show:()=>t(!0),filterBy:i=>{n(i),t(!0)},close:()=>{t(!1),n("")}}}var Nyr=P(ge(),1);var Dyr=e=>e?J1(e):"";function Oyr(e){let[t,r]=(0,Nyr.useState)(()=>Dyr(e));return{text:t,setText:r,showRepo:n=>r(Dyr(n))}}function Byr(e,t,r){let n=Iyr(),i=Oyr(t),o=Myr(e,n.query),a=f=>{r(f),i.showRepo(f)},s=Ak(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:Lyr({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 PB=P(z(),1);function $yr({repos:e,value:t,onChange:r,inputRef:n,autoFocus:i,onTrack:o}){let a=Byr(e,t,r),s=(0,Fyr.useRef)(null);return(0,PB.jsxs)(le,{ref:s,sx:{flex:1,minWidth:0},children:[(0,PB.jsx)(Yn,{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:Ayr(a.open)}),(0,PB.jsx)(Ryr,{open:a.open,anchor:s.current,children:(0,PB.jsx)(Kge,{repos:a.filtered,selected:t,highlight:a.highlight,onHighlight:a.setHighlight,onSelect:a.pick})})]})}var $k=P(z(),1);function zyr({cloneState:e,...t}){let{draft:r,focus:n}=t,{repos:i}=$n();return(0,$k.jsxs)(Rt,{spacing:1,sx:{p:1},children:[(0,$k.jsx)(Tyr,{value:r.prompt,onChange:r.setPrompt,placeholder:B2[r.mode].placeholder,inputRef:n.promptRef,autoFocus:n.autoFocus==="prompt",onTrack:n.trackPrompt}),(0,$k.jsxs)(Rt,{direction:"row",spacing:1,sx:{alignItems:"flex-start"},children:[(0,$k.jsx)($yr,{repos:i,value:r.cwd,onChange:r.setCwd,inputRef:n.repoRef,autoFocus:n.autoFocus==="repo",onTrack:n.trackRepo}),(0,$k.jsx)(Eyr,{...t})]}),(0,$k.jsx)(xyr,{value:r.node,onChange:r.setNode,cloneState:e})]})}var LB=P(z(),1),mGn=["Enter start","Shift+Enter newline","Esc close"],gGn={alignItems:"center",px:1.5,py:1,borderTop:1,borderColor:"divider",bgcolor:"action.hover"};function Hyr({submitLabel:e,disabled:t=!1}){return(0,LB.jsxs)(Rt,{direction:"row",spacing:1.5,sx:gGn,children:[(0,LB.jsx)(Rt,{direction:"row",spacing:1.5,sx:{mr:"auto"},children:mGn.map(r=>(0,LB.jsx)(Oe,{variant:"caption",color:"text.secondary",children:r},r))}),(0,LB.jsx)(qt,{type:"submit",variant:"contained",size:"small",disabled:t,children:e})]})}function Uyr({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}]:[];Ent(B2[e].sessionMode,n,(u,f)=>o.onCreateAssist(u,f,...l),()=>{},r)}function Wyr(e,t,r,n){return r.kind==="blocked"?!1:r.kind==="clone"?(Hge(r.prompt,n.onCreateAssist),!0):(Uyr({mode:e.mode,harness:t,prompt:e.prompt,cwd:r.cwd,node:e.node},n),e.clear(),!0)}var OR=P(ge(),1);function Vyr(e,t){let r=(0,OR.useRef)(e),n=(0,OR.useRef)(null),i=(0,OR.useRef)(null),o=(0,OR.useRef)(null),a=(0,OR.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:AB(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 yGn(e,t,r){return e?r.kind==="cloned"?{kind:"launch",cwd:r.cwd}:r.kind==="clonable"?{kind:"clone",prompt:Zge(r,t)}:{kind:"blocked"}:{kind:"launch",cwd:e}}function Gyr(e,t){let{names:r,visible:n}=Bu(),i=qge(t,n?r:[void 0]);return{cloneState:i,target:yGn(t,e,i(e))}}var MB=P(z(),1);function qyr({draft:e,launchers:t,onClose:r}){let n=Vyr(e.focus,e.setFocus),i=ayr(kk()),o=i.includes(e.harness)?e.harness:"claude",{target:a,cloneState:s}=Gyr(e.node,e.cwd),l=u=>{u.preventDefault(),Wyr(e,o,a,t)&&r()};return(0,MB.jsx)(h0e,{onClose:r,onEntered:n.restore,centered:!0,children:(0,MB.jsxs)("form",{onSubmit:l,children:[(0,MB.jsx)(zyr,{draft:e,harness:o,harnesses:i,focus:n,cloneState:s}),(0,MB.jsx)(Hyr,{submitLabel:a.kind==="clone"?"Clone":B2[e.mode].submitLabel,disabled:a.kind==="blocked"})]})})}var T0e=P(ge(),1);function jyr(e){let[t,r]=(0,T0e.useState)(null);return(0,T0e.useEffect)(()=>{let n=!1;return(async()=>{let i="draft";try{let o=e?`?cwd=${encodeURIComponent(e)}`:"",s=await(await fetch(`/api/new-session-defaults${o}`)).json();Object.hasOwn(B2,s?.mode)&&(i=s.mode)}catch{}n||r(i)})(),()=>{n=!0}},[e]),t}function Yyr(e,{visible:t,names:r,selected:n}){if(t)return e&&r.includes(e)?e:n}var F2=P(ge(),1),Kyr={field:"prompt",selectionStart:0,selectionEnd:0};function Xyr(){let[e,t]=(0,F2.useState)(""),[r,n]=(0,F2.useState)(),[i,o]=(0,F2.useState)(),[a,s]=(0,F2.useState)("claude"),[l,u]=(0,F2.useState)(),[f,d]=(0,F2.useState)(Kyr),h=(0,F2.useCallback)(()=>{t(""),n(void 0),o(void 0),u(void 0),d(Kyr)},[]);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 Zyr(e=jyr){let{selectedCwd:t}=$n(),r=Bu(),n=Xyr(),i=n.cwd??t,o=e(i);return o?{...n,cwd:i,mode:n.mode??o,node:Yyr(n.node,r)}:null}function Qyr(e){No(Kn("newSession").matches,e)}var Jyr=P(ge(),1);function e1r(e,t){let{selectedCwd:r}=$n(),[n,i]=Pc(),o=n.get("new"),a=n.get("newCwd")??r,{setPrompt:s,setCwd:l,setFocus:u}=e??{};(0,Jyr.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 r1r=P(z(),1);function t1r({launchers:e}){let[t,r]=(0,S0e.useState)(!1),n=Zyr(),i=(0,S0e.useCallback)(()=>r(!0),[]);return Qyr(i),e1r(n,i),!t||!n?null:(0,r1r.jsx)(qyr,{draft:n,launchers:e,onClose:()=>r(!1)})}var C0e=P(z(),1);function n1r({reconnecting:e}){return(0,C0e.jsx)(ol,{open:e,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,C0e.jsx)(ni,{severity:"info",variant:"filled",icon:(0,C0e.jsx)(mo,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var iv=P(z(),1);function i1r({socket:e,onViewLaunchedSession:t}){return(0,iv.jsxs)(iv.Fragment,{children:[(0,iv.jsx)(nyr,{}),(0,iv.jsx)(t1r,{launchers:{onCreate:e.createSession,onCreateDesign:e.createDesignSession,onCreateHarness:e.createHarnessSession,onCreateAssist:e.createAssistSession}}),(0,iv.jsx)(n1r,{reconnecting:e.reconnecting}),(0,iv.jsx)(vu,{error:e.error,onClose:e.clearError}),(0,iv.jsx)(oyr,{notice:e.success,onClose:e.clearSuccess,onView:t})]})}var f0=P(ge(),1);var vGn=6e4;function o1r(e){let t=e.nodes?.local,r=e.names.join(`
3976
+ `,vmr={...ymr,borderColor:"warning.main",borderLeft:4,borderLeftColor:"warning.main",bgcolor:e=>Ea(e.palette.warning.main,.08)},hWn={...vmr,borderLeftColor:"transparent",backgroundImage:e=>`repeating-linear-gradient(to bottom, ${e.palette.warning.main} 0 ${mmr}px, transparent ${mmr}px ${q$e}px)`,backgroundOrigin:"border-box",backgroundRepeat:"repeat-y",backgroundSize:`4px ${q$e}px`,animation:`${dWn} 0.9s linear infinite`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}},gmr={"& .MuiButtonBase-root:focus-visible":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:"2px"}},Z1={card:ymr,inProgressCard:vmr,inProgressRunningCard:hWn,main:{minWidth:0,textAlign:"left"},stretchedNameLink:{display:"block",fontWeight:500,color:"text.primary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",...fWn},meta:{display:"flex",alignItems:"center",gap:1,...pmr,width:"fit-content",maxWidth:"100%",fontSize:"0.75rem",color:"text.secondary","& a, & p":{fontSize:"0.75rem"},...gmr},id:{color:"text.disabled"},actions:{display:"flex",alignItems:"center",gap:1,flexShrink:0,...pmr,...gmr}};function Nge(e){let t=e.peakContextPct>0?` \xB7 \u2593 ${Math.round(e.peakContextPct)}%`:"";return`\u2191 ${Hd(e.tokensUp)} \u2193 ${Hd(e.tokensDown)} \xB7 \u23F1 ${o0(e.activeMs)}${t}`}var xmr=P(z(),1),pWn={width:6,height:6,borderRadius:"50%",bgcolor:"currentColor",flexShrink:0};function bmr(){return(0,xmr.jsx)(le,{component:"span",sx:pWn})}var vY=P(z(),1),Tmr={display:"inline-flex",alignItems:"center",gap:.625,color:"warning.main",fontWeight:500,fontSize:"0.75rem",whiteSpace:"nowrap",borderRadius:1};function Smr({item:e,openSession:t,onSelectSession:r}){let n=Xi();if(e.status!=="in-progress"||e.currentPhase==null)return null;let i=`phase ${e.currentPhase} of ${e.totalPhases??e.currentPhase}`,o=(0,vY.jsx)(bmr,{});if(!t)return(0,vY.jsxs)(le,{component:"span",sx:Tmr,children:[o,i]});let a=()=>{r?.(t.id),n("/sessions")};return(0,vY.jsxs)(Dn,{sx:Tmr,title:`Open the ${t.status} session`,onClick:a,children:[o,i]})}var op=P(z(),1),mWn={display:"inline-flex",alignItems:"center",gap:.5},gWn={width:8,height:8,borderRadius:"50%",flexShrink:0},yWn={whiteSpace:"nowrap"};function vWn({type:e}){let t=_ge[e];return(0,op.jsxs)(le,{component:"span",sx:mWn,children:[(0,op.jsx)(le,{component:"span",sx:{...gWn,bgcolor:`${t}.main`}}),e]})}function bWn({item:e}){return e.usageTotal?(0,op.jsx)(lr,{title:Nge(e.usageTotal),children:(0,op.jsx)(le,{component:"span",sx:yWn,children:`\u23F1 ${o0(e.usageTotal.activeMs)}`})}):null}function Cmr({item:e,openSession:t,onSelectSession:r}){return(0,op.jsxs)(le,{sx:Z1.meta,children:[(0,op.jsx)(le,{component:"span",sx:Z1.id,children:so(e.id)}),(0,op.jsx)(vWn,{type:e.type}),(0,op.jsx)(Smr,{item:e,openSession:t,onSelectSession:r}),(0,op.jsx)(pP,{jiraKey:e.jiraKey}),(0,op.jsx)(hP,{githubIssue:e.githubIssue,variant:"icon"}),(0,op.jsx)(bWn,{item:e})]})}function wmr(e,t){return e.filter(r=>AP(r)?.itemId===t).reduce((r,n)=>r&&r.startedAt>=n.startedAt?r:n,void 0)}var _mr=P(z(),1),xWn={todo:"\u25CB","in-progress":"\u25D4",done:"\u25CF",wontdo:"\u2715"},TWn={todo:"text.disabled","in-progress":"warning.main",done:"success.main",wontdo:"error.main"};function SWn(e){return{fontSize:"1.125rem",flexShrink:0,color:TWn[e]}}function kmr({status:e}){return(0,_mr.jsx)(Oe,{sx:SWn(e),children:xWn[e]})}function Oge(e){return e.status==="todo"||e.status==="in-progress"}function CWn(e){if(e.status==="done")return e.totalPhases;if(e.status==="in-progress")return e.currentPhase}function wWn(e,t,r){return r?"complete":e<t?"done":e===t?"current":"remaining"}function Emr(e){let t=e.totalPhases,r=CWn(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:wWn(o+1,r,n)}))}}var pB=P(z(),1),kWn={done:"text.secondary",current:"warning.main",remaining:"divider",complete:"success.main"},_Wn={display:"inline-flex",alignItems:"center",gap:.5,flexShrink:0},EWn={fontSize:"0.6875rem",color:"text.secondary",fontVariantNumeric:"tabular-nums"},RWn={display:"inline-flex",alignItems:"center",gap:"2px"},AWn={width:6,height:12,borderRadius:"1px",flexShrink:0};function Rmr({item:e}){let t=Emr(e);return t?(0,pB.jsxs)(le,{sx:_Wn,title:`Phase ${t.reached} of ${t.total}`,children:[(0,pB.jsx)(le,{component:"span",sx:EWn,children:`${t.reached}/${t.total}`}),(0,pB.jsx)(le,{component:"span",sx:RWn,"aria-hidden":!0,children:t.segments.map(r=>(0,pB.jsx)(le,{component:"span","data-segment":r.kind,sx:{...AWn,bgcolor:kWn[r.kind]}},r.phase))})]}):null}var Ymr=P(ge(),1);var $ge=P(ge(),1);var bY=P(z(),1);function Amr({tooltip:e,disabled:t,onClick:r}){return(0,bY.jsx)(lr,{title:e,children:(0,bY.jsx)(le,{component:"span",sx:{display:"flex"},children:(0,bY.jsx)(qt,{startIcon:(0,bY.jsx)(Fp,{}),disabled:t,onClick:r,children:"Build"})})})}var j$e=P(z(),1);function Bge(e){let t=[];return e.exposeCodexActions&&t.push({kind:"codex",label:"with Codex"}),e.exposePiActions&&t.push({kind:"pi",label:"with pi"}),t}function Fge({anchorEl:e,open:t,onClose:r,options:n,onSelect:i,stop:o}){return(0,j$e.jsx)(Dl,{anchorEl:e,open:t,onClose:r,onClick:o,children:n.map(a=>(0,j$e.jsx)(fn,{onClick:s=>{o(s),i(a.kind)},children:a.label},a.kind))})}var Q1=P(z(),1);function Pmr({tooltip:e,disabled:t,onBuild:r,onSelectHarness:n}){let i=Bge(kk()),o=(0,$ge.useRef)(null),[a,s]=(0,$ge.useState)(!1),l=u=>u.stopPropagation();return(0,Q1.jsxs)(Q1.Fragment,{children:[(0,Q1.jsxs)(tT,{ref:o,variant:"contained",color:"success",size:"small",disabled:t,children:[(0,Q1.jsx)(Amr,{tooltip:e,disabled:t,onClick:u=>{l(u),r()}}),i.length>0&&(0,Q1.jsx)(qt,{"aria-label":"Build with a different harness",onClick:u=>{l(u),s(!0)},children:(0,Q1.jsx)(Up,{})})]}),(0,Q1.jsx)(Fge,{anchorEl:o.current,open:a,onClose:()=>s(!1),options:i,onSelect:u=>{s(!1),n(u)},stop:l})]})}var Lmr=P(z(),1),mB=ut((0,Lmr.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 Rk=P(z(),1),PWn={vertical:"bottom",horizontal:"center"};function zge({clone:e}){let{prompt:t,confirm:r,cancel:n,error:i,dismissError:o}=e;return(0,Rk.jsxs)(Rk.Fragment,{children:[t&&(0,Rk.jsx)(vo,{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,Rk.jsx)(ol,{open:!!i,autoHideDuration:8e3,onClose:o,anchorOrigin:PWn,children:(0,Rk.jsx)(ni,{severity:"error",onClose:o,variant:"filled",children:i})})]})}var l0=P(ge(),1);function Y$e(e){return["backlog","clone",e]}function Hge(e,t){t(Y$e(e.origin),void 0,{title:`Clone ${e.displayName}`,subtitle:e.origin,...e.node&&{node:e.node}})}function Mmr(e,t){return!!e&&e.length===t.length&&e.every((r,n)=>r===t[n])}function Imr(e,t,r){let n=Y$e(t.origin),i=new Set(e.filter(o=>Mmr(o.assistArgs,n)).map(o=>o.id));return Hge(t,r),{args:n,target:t.cloneTarget,node:t.node,preexisting:i}}function Dmr(e,t){if(!t.id){let n=e.find(i=>Mmr(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 Uge(e){let{setSelectedCwd:t}=$n(),{launchAssist:r}=$l(),[n,i]=(0,l0.useState)(null),[o,a]=(0,l0.useState)(null),[s,l]=(0,l0.useState)(null),u=(0,l0.useCallback)(p=>{l(null),i(p)},[]),f=(0,l0.useCallback)(()=>i(null),[]),d=(0,l0.useCallback)(()=>l(null),[]),h=(0,l0.useCallback)(()=>{n&&(a(Imr(e,n,r)),i(null))},[n,e,r]);return(0,l0.useEffect)(()=>{if(!o)return;let p=Dmr(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 gB(e,t){return`Not cloned ${e?`on ${e}`:"locally"} \u2014 click to clone into ${t}`}var P2=P(z(),1),LWn={border:1,borderStyle:"dashed"};function Nmr({target:e}){let t=Uge(Dge());return(0,P2.jsxs)(P2.Fragment,{children:[(0,P2.jsx)(lr,{title:gB(e.node,e.cloneTarget),children:(0,P2.jsx)(ir,{"aria-label":"Clone",size:"small",sx:LWn,onClick:r=>{r.stopPropagation(),t.requestClone(e)},children:(0,P2.jsx)(mB,{fontSize:"small"})})}),(0,P2.jsx)(zge,{clone:t})]})}function Omr(e,t,r,n){let i=r.node?[{node:r.node}]:[];e(["backlog","run",so(t),...n],r.cwd,...i)}var xY=P(z(),1);function Bmr({tooltip:e,disabled:t,onClick:r}){return(0,xY.jsx)(lr,{title:e,children:(0,xY.jsx)("span",{children:(0,xY.jsx)(ir,{"aria-label":"Build",color:"success",size:"small",disabled:t,onClick:r,children:(0,xY.jsx)(Fp,{})})})})}function MWn(e,t){let r=e.assistArgs;if(r?.[0]!=="backlog"||r[1]!=="run"||!r[2])return!1;try{return _J(r[2])===t}catch{return!1}}function Fmr(e,t){return e.find(r=>r.status!=="done"&&r.status!=="error"&&(MWn(r,t)||AP(r)?.itemId===t))}var Wge=P(ge(),1),K$e=(0,Wge.createContext)({nodes:null,names:[],visible:!1,selected:void 0,select:()=>{}});function Bu(){return(0,Wge.useContext)(K$e)}function Vge(){let{nodes:e,selected:t}=Bu();return t&&t!==e?.local?t:void 0}var Hmr=P(ge(),1);var Gge=P(ge(),1);function $mr(e,t){return Promise.all(t.map(async r=>{let n=await IWn(e,r).catch(()=>({}));return[r,n]}))}async function IWn(e,t){let r=await fetch(tn(`/api/repo-location?origin=${encodeURIComponent(e)}`,t||void 0));return r.ok?r.json():{}}var X$e="\0";function zmr(e,t){let[r,n]=(0,Gge.useState)(null);return(0,Gge.useEffect)(()=>{if(!e||!t)return;let i=!1;return $mr(e,t.split(X$e)).then(o=>{i||n({origin:e,byNode:Object.fromEntries(o)})}),()=>{i=!0}},[e,t]),r}function qge(e,t){let{cloneOn:r,originOf:n}=$n(),i=e?n(e):void 0,o=t.filter(s=>!e||!r(e,s)).map(s=>s??"").join(X$e),a=zmr(i,o);return(0,Hmr.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 vB=P(ge(),1);var Umr=P(z(),1);function yB({inputRef:e,value:t,onChange:r,onKeyDown:n,placeholder:i,autoFocus:o}){return(0,Umr.jsx)(Yn,{autoFocus:o,inputRef:e,value:t,onChange:a=>r(a.target.value),onKeyDown:n,placeholder:i,size:"small",fullWidth:!0,slotProps:{input:{sx:{fontSize:12}}},sx:{p:.5}})}var jge=P(ge(),1);function Yge(e){let t=(0,jge.useRef)(null);return(0,jge.useEffect)(()=>{e&&t.current?.scrollIntoView({block:"nearest"})},[e]),t}var Vmr=P(z(),1);function Wmr({cwd:e,selected:t,highlighted:r,onHover:n,onSelect:i}){let o=Yge(r);return(0,Vmr.jsx)(fn,{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:J1(e)})}var Z$e=P(z(),1);function Kge({repos:e,selected:t,highlight:r,onHighlight:n,onSelect:i}){return(0,Z$e.jsx)(Cp,{dense:!0,children:e.map((o,a)=>(0,Z$e.jsx)(Wmr,{cwd:o,selected:o===t,highlighted:a===r,onHover:()=>n(a),onSelect:()=>i(o)},o))})}var Xge=P(ge(),1);function Ak(e,t,r,n){let[i,o]=(0,Xge.useState)(0);return(0,Xge.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 TY=P(z(),1);function J1(e){let t=e.includes("\\")?"\\":"/";return e.split(t).filter(Boolean).pop()??e}var DWn={...OP};function Gmr({repos:e,selected:t,onSelect:r,close:n}){let[i,o]=(0,vB.useState)(""),a=(0,vB.useRef)(null);(0,vB.useEffect)(()=>{a.current?.focus()},[]);let s=i.trim().toLowerCase(),l=s?e.filter(p=>p.toLowerCase().includes(s)):e,{highlight:u,setHighlight:f,onKeyDown:d}=Ak(l,s,r,n);return(0,TY.jsxs)(an,{elevation:4,sx:DWn,children:[(0,TY.jsx)(yB,{inputRef:a,value:i,onChange:o,onKeyDown:d,placeholder:"Filter repos..."}),(0,TY.jsx)(Kge,{repos:l,selected:t,highlight:u,onHighlight:f,onSelect:p=>{r(p),n()}})]})}function Zge(e,t){return{origin:e.origin,cloneTarget:e.cloneTarget,displayName:J1(e.origin),node:t}}function qmr(){let e=as(),t=Vge(),r=qge(e??"",[t])(t);return e?r.kind==="cloned"?{kind:"ready",cwd:r.cwd,node:t}:r.kind==="clonable"?{kind:"clone",prompt:Zge(r,t)}:{kind:"unavailable",node:t??"this machine"}:{kind:"ready",node:t}}function jmr(e,t){return t?`Not cloned on ${t}`:e?"Already running \u2014 close that session to run it again":"Build"}var Qge=P(z(),1);function Jge({itemId:e,compact:t=!1}){let{launchAssist:r}=$l(),n=qmr(),i=Fmr(Dge(),e),[o,a]=(0,Ymr.useState)(!1);if(n.kind==="clone")return(0,Qge.jsx)(Nmr,{target:n.prompt});let s=n.kind==="unavailable"?n.node:void 0,l=o||i!==void 0||!!s,u=d=>{l||n.kind!=="ready"||(a(!0),Omr(r,e,n,d))},f=jmr(i!==void 0,s);return t?(0,Qge.jsx)(Bmr,{tooltip:f,disabled:l,onClick:d=>{d.stopPropagation(),u([])}}):(0,Qge.jsx)(Pmr,{tooltip:f,disabled:l,onBuild:()=>u([]),onSelectHarness:d=>u(["--harness",d])})}var Kmr=P(ge(),1);var bB=P(z(),1);function Xmr({itemId:e,starred:t,onToggled:r}){let n=as(),i=yr(),[o,a]=(0,Kmr.useState)(!1);return(0,bB.jsx)(lr,{title:t?"Unstar":"Star",children:(0,bB.jsx)("span",{children:(0,bB.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 HJ(e,!t,n,i),await r()}finally{a(!1)}}},children:t?(0,bB.jsx)(qee,{}):(0,bB.jsx)(jee,{})})})})}var Zmr=P(z(),1),Qmr=ut((0,Zmr.jsx)("path",{d:"M22 7h-9v2h9zm0 8h-9v2h9zM5.54 11 2 7.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41zm0 8L2 15.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41z"}),"Checklist");var SY=P(z(),1),NWn={display:"inline-flex",alignItems:"center",gap:.375,flexShrink:0,fontSize:"0.71875rem",color:"text.secondary","& svg":{fontSize:14}};function Jmr({count:e}){return e<1?null:(0,SY.jsx)(lr,{title:`${e} incomplete subtask${e===1?"":"s"}`,children:(0,SY.jsxs)(le,{component:"span",sx:NWn,children:[(0,SY.jsx)(Qmr,{}),e]})})}var L2=P(z(),1);function egr({item:e,onReload:t}){return(0,L2.jsxs)(L2.Fragment,{children:[(0,L2.jsx)(Jmr,{count:e.incompleteSubtasks}),(0,L2.jsx)(Rmr,{item:e}),(0,L2.jsx)(Xmr,{itemId:e.id,starred:e.starred,onToggled:t}),Oge(e)&&(0,L2.jsx)(Jge,{itemId:e.id,compact:!0})]})}var M2=P(z(),1);function OWn(e,t){return e?t?Z1.inProgressRunningCard:Z1.inProgressCard:Z1.card}function tgr({item:e,to:t,socket:r,onReload:n}){let i=wmr(r.sessions,e.id),o=e.status==="in-progress",a=o&&i?.status==="running";return(0,M2.jsxs)(le,{sx:OWn(o,a),children:[(0,M2.jsx)(kmr,{status:e.status}),(0,M2.jsxs)(le,{sx:Z1.main,children:[(0,M2.jsx)(xn,{component:ys,to:t,underline:"none",title:e.name,sx:Z1.stretchedNameLink,children:e.name}),(0,M2.jsx)(Cmr,{item:e,openSession:i,onSelectSession:r.selectSession})]}),(0,M2.jsx)(le,{sx:Z1.actions,children:(0,M2.jsx)(egr,{item:e,onReload:n})})]})}var ngr=P(z(),1),BWn={all:"items",story:"stories",bug:"bugs"},FWn={textAlign:"center",color:"text.disabled",py:6,px:2};function rgr({query:e,typeFilter:t}){let r=BWn[t],n=e.trim()?`No ${r} match your search.`:`No ${r} in the backlog.`;return(0,ngr.jsx)(le,{sx:FWn,children:n})}var ev=P(z(),1),$Wn={display:"flex",justifyContent:"center",py:6};function igr({loading:e,error:t,query:r,typeFilter:n,items:i,socket:o,itemPath:a,onReload:s}){if(e)return(0,ev.jsx)(le,{sx:$Wn,children:(0,ev.jsx)(mo,{})});let l=t&&(0,ev.jsx)(ni,{severity:"error",children:t});return i.length===0?l||(0,ev.jsx)(rgr,{query:r,typeFilter:n}):(0,ev.jsxs)(ev.Fragment,{children:[l,i.map(u=>(0,ev.jsx)(tgr,{item:u,to:a(u),socket:o,onReload:s},u.id))]})}var xB=P(ge(),1);function zWn(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 ogr({cwd:e,node:t,knownCwds:r,signal:n}){return(await fetch(Fl(zWn(r),e,t),{signal:n})).json()}function agr(){let{repos:e,selectedCwd:t,cloneOn:r}=$n(),n=Vge(),[i,o]=(0,xB.useState)([]),a=(0,xB.useMemo)(()=>e.map(l=>r(l,n)).filter(l=>!!l),[e,r,n]),s=t?r(t,n):void 0;return(0,xB.useEffect)(()=>{let l=new AbortController;return ogr({cwd:s,node:n,knownCwds:a,signal:l.signal}).then(o).catch(()=>{}),()=>l.abort()},[a,s,n]),{summaries:i,node:n}}var e0e=P(z(),1),HWn={borderStyle:"dashed"};function sgr({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,e0e.jsx)(sn,{label:`${o} (${a})`,size:"small",color:s?"primary":"default",variant:s?"filled":"outlined",disabled:!l&&!f,onClick:d,icon:f?(0,e0e.jsx)(mB,{}):void 0,sx:f?HWn:void 0});return!f||!u?h:(0,e0e.jsx)(lr,{describeChild:!0,title:gB(t,u),children:h})}var CY=P(z(),1),UWn={flexWrap:"wrap",gap:1,mb:2};function lgr({sessions:e}){let{summaries:t,node:r}=agr(),{setSelectedCwd:n}=$n(),i=Uge(e);return t.length===0?null:(0,CY.jsxs)(Rt,{direction:"row",sx:UWn,children:[t.map(o=>(0,CY.jsx)(sgr,{summary:o,node:r,onSelectCwd:a=>r?n(a,r):n(a),onRequestClone:i.requestClone},o.origin)),(0,CY.jsx)(zge,{clone:i})]})}var ugr=P(z(),1);function cgr({value:e,onChange:t}){return(0,ugr.jsx)(Yn,{"data-backlog-focus":"search",fullWidth:!0,size:"small",placeholder:"Search backlog\u2026",value:e,onChange:r=>t(r.target.value),sx:{mb:2}})}var t0e=P(ge(),1);var r0e=P(z(),1);async function WWn(){return(await(await fetch("/api/backups/list")).json())[0]}function fgr(){let[e,t]=(0,t0e.useState)();return(0,t0e.useEffect)(()=>{WWn().then(t)},[]),e?(0,r0e.jsx)(lr,{title:new Date(e.createdAt).toLocaleString(),children:(0,r0e.jsxs)(xn,{component:ys,to:"/backups",underline:"hover",color:"text.secondary",variant:"body2",children:["Last backed up ",Do(String(e.createdAt))]})}):null}var TB=P(z(),1);function dgr(){let[e,t]=hB();return(0,TB.jsxs)(du,{value:e,exclusive:!0,size:"small","aria-label":"Status filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,TB.jsx)(hs,{value:"todo",children:"Todo"}),(0,TB.jsx)(hs,{value:"done",children:"Done"}),(0,TB.jsx)(hs,{value:"all",children:"All"})]})}var SB=P(z(),1);function hgr({value:e,onChange:t}){return(0,SB.jsxs)(du,{value:e,exclusive:!0,size:"small","aria-label":"Type filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,SB.jsx)(hs,{value:"all",children:"All"}),(0,SB.jsx)(hs,{value:"story",children:"Stories"}),(0,SB.jsx)(hs,{value:"bug",children:"Bugs"})]})}var Pk=P(z(),1),VWn={justifyContent:"space-between",alignItems:"center",mb:3},GWn={fontWeight:600},qWn={alignItems:"center"};function pgr({typeFilter:e,onTypeFilterChange:t}){return(0,Pk.jsxs)(Rt,{direction:"row",sx:VWn,children:[(0,Pk.jsx)(Oe,{variant:"h5",sx:GWn,children:"Backlog"}),(0,Pk.jsxs)(Rt,{direction:"row",spacing:2,sx:qWn,children:[(0,Pk.jsx)(fgr,{}),(0,Pk.jsx)(hgr,{value:e,onChange:t}),(0,Pk.jsx)(dgr,{})]})]})}var I2=P(z(),1);function ggr({items:e,loading:t,error:r,socket:n,onReload:i}){let o=as(),a=yr(),{query:s,setQuery:l,results:u,loading:f}=hmr(),[d,h]=(0,mgr.useState)("all"),p=u??e,m=d==="all"?p:p.filter(g=>g.type===d);return(0,I2.jsxs)(I2.Fragment,{children:[(0,I2.jsx)(pgr,{typeFilter:d,onTypeFilterChange:h}),(0,I2.jsx)(cgr,{value:s,onChange:l}),(0,I2.jsx)(lgr,{sessions:n.sessions}),(0,I2.jsx)(igr,{loading:t||f,error:u?null:r,query:s,typeFilter:d,items:m,socket:n,itemPath:g=>zT(g.id,o,a),onReload:i})]})}var f0e=P(ge(),1);var TR=P(ge(),1);async function Q$e(e,t,r){let n=await fetch(Fl(`/api/items/${so(e)}`,t.cwd,t.node),{signal:r});return n.ok?n.json():null}function ygr(e){let t=as(),r=yr(),[n,i]=(0,TR.useState)(null),[o,a]=(0,TR.useState)(!0),s=(0,TR.useCallback)(async()=>{i(await Q$e(e,{cwd:t,node:r}))},[e,t,r]);return(0,TR.useEffect)(()=>{let l=new AbortController,{signal:u}=l;return a(!0),(async()=>{try{let f=await Q$e(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}}var Lk={description:"item-section-description",acceptanceCriteria:"item-section-acceptance-criteria",subtasks:"item-section-subtasks",plan:"item-section-plan",activity:"item-section-activity",comments:"item-section-comments"},wY=140,J$e="--pinned-header-height",n0e=`var(${J$e}, ${wY}px)`,vgr=`calc(${n0e} + 8px)`;function Um(e){return{id:Lk[e],sx:{mb:2,scrollMarginTop:vgr}}}function i0e(e){return{id:`item-phase-${e}`,sx:{scrollMarginTop:vgr}}}var Mk=P(z(),1);function bgr({criteria:e}){return e.length===0?null:(0,Mk.jsxs)(le,{...Um("acceptanceCriteria"),children:[(0,Mk.jsx)(Oe,{variant:"overline",sx:{color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"},children:"Acceptance Criteria"}),(0,Mk.jsx)(L0,{disablePadding:!0,sx:{maxWidth:"72ch"},children:e.map((t,r)=>(0,Mk.jsxs)(iT,{disableGutters:!0,disablePadding:!0,sx:{py:.5,display:"flex",alignItems:"baseline"},children:[(0,Mk.jsxs)(Oe,{component:"span",sx:{color:"text.secondary",mr:1},children:[r+1,"."]}),(0,Mk.jsx)(yu,{component:"span",className:"markdown",html:MP(t)})]},t))})]})}var kY=P(z(),1),jWn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function xgr({description:e}){return e?(0,kY.jsxs)(le,{...Um("description"),children:[(0,kY.jsx)(Oe,{variant:"overline",sx:jWn,children:"Description"}),(0,kY.jsx)(Rw,{content:e,renderMermaid:!0})]}):null}var Agr=P(ge(),1);function Tgr(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 Cgr=P(z(),1),YWn={color:"text.secondary",alignSelf:"flex-start",textAlign:"left"};function Sgr({hiddenCount:e,expanded:t,onToggle:r}){return e===0?null:(0,Cgr.jsx)(xn,{component:"button",type:"button",variant:"body2",underline:"hover",sx:YWn,onClick:n=>{n.stopPropagation(),r()},children:t?"Show fewer commits":`\u2026 and ${e} more commits`})}var SR=P(z(),1),KWn={display:"flex",alignItems:"center",gap:1},XWn={color:"text.secondary",fontFamily:"monospace"},ZWn={flex:1,overflowWrap:"anywhere"},QWn={color:"text.disabled","&:hover":{color:"text.primary"}};function wgr({conversation:e}){let{resumeSession:t}=$l(),r=n=>{n.stopPropagation(),t(e.sessionId,e.cwd??"",e.title,e.harness)};return(0,SR.jsxs)(le,{sx:KWn,children:[(0,SR.jsx)(Oe,{variant:"body2",component:"span",sx:XWn,children:"session"}),(0,SR.jsx)(Oe,{variant:"body2",component:"span",sx:ZWn,children:e.title??e.sessionId}),(0,SR.jsx)(ir,{size:"small",title:"Resume",sx:QWn,onClick:r,children:(0,SR.jsx)(Fp,{sx:{fontSize:14}})})]})}var _gr=P(z(),1),JWn={color:"text.disabled",ml:1};function kgr({gitRef:e}){return e.kind!=="commit"||!e.createdAt?null:(0,_gr.jsx)(le,{component:"span",sx:JWn,children:eVn(e.createdAt)})}function eVn(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function Egr(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 tv=P(z(),1),tVn={color:"text.secondary",mr:1,fontFamily:"monospace"};function rVn({gitRef:e}){let t=Egr(e);return!e.url||e.kind==="session"?(0,tv.jsx)(tv.Fragment,{children:t}):(0,tv.jsx)(xn,{href:e.url,target:"_blank",rel:"noopener",onClick:r=>r.stopPropagation(),children:t})}function Rgr({gitRef:e}){return(0,tv.jsxs)(Oe,{variant:"body2",children:[(0,tv.jsx)(le,{component:"span",sx:tVn,children:e.kind}),(0,tv.jsx)(rVn,{gitRef:e}),(0,tv.jsx)(kgr,{gitRef:e})]})}var Ik=P(z(),1),nVn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function Pgr({gitRefs:e,conversations:t=[]}){let[r,n]=(0,Agr.useState)(!1),{branches:i,commits:o,overflowCommits:a,prs:s,slacks:l}=Tgr(e),u=[...i,...o,...r?a:[],...s,...l];return u.length===0&&t.length===0?null:(0,Ik.jsxs)(le,{...Um("activity"),children:[(0,Ik.jsx)(Oe,{variant:"overline",sx:nVn,children:"Activity"}),(0,Ik.jsxs)(Rt,{spacing:1,children:[u.map(f=>(0,Ik.jsx)(Rgr,{gitRef:f},`${f.kind}:${f.ref}`)),t.map(f=>(0,Ik.jsx)(wgr,{conversation:f},f.sessionId)),(0,Ik.jsx)(Sgr,{hiddenCount:a.length,expanded:r,onToggle:()=>n(f=>!f)})]})]})}var CR=P(z(),1),iVn={alignItems:"center",fontSize:"0.75rem",color:"text.secondary",mb:.5},oVn={color:"text.disabled"},aVn={fontWeight:500},sVn={summary:"Phase summary",comment:"Comment"};function Lgr({comment:e}){return(0,CR.jsxs)(Rt,{direction:"row",spacing:.5,sx:iVn,children:[e.id!==void 0&&(0,CR.jsxs)(Oe,{variant:"caption",sx:oVn,children:["#",e.id]}),(0,CR.jsx)(Oe,{variant:"caption",sx:aVn,children:sVn[e.type]}),e.phase!==void 0&&(0,CR.jsxs)(Oe,{variant:"caption",children:["\xB7 Phase ",e.phase]}),(0,CR.jsxs)(Oe,{variant:"caption",children:["\xB7 ",lVn(e.timestamp)]})]})}function lVn(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}var Mgr=P(z(),1),Igr=ut((0,Mgr.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 eze=P(ge(),1);async function Dgr(e,t,r,n){let i=await fetch(Fl(`/api/items/${so(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 rv=P(z(),1),cVn={mt:-.5,mr:-.5,color:"text.secondary"};function Ngr({itemId:e,commentId:t,onDeleted:r}){let n=as(),i=yr(),[o,a]=(0,eze.useState)(!1),[s,l]=(0,eze.useState)(),u=()=>l(void 0);return(0,rv.jsxs)(rv.Fragment,{children:[o&&(0,rv.jsx)(vo,{message:"Are you sure you want to delete this comment?",onConfirm:async()=>{a(!1);try{await Dgr(e,t,n,i),await r()}catch(f){l(f instanceof Error?f.message:"Failed to delete comment")}},onCancel:()=>a(!1)}),(0,rv.jsx)(ol,{open:s!==void 0,autoHideDuration:6e3,onClose:u,children:(0,rv.jsx)(ni,{severity:"error",variant:"filled",onClose:u,children:s})}),(0,rv.jsx)(ir,{"aria-label":"Delete comment",size:"small",sx:cVn,onClick:()=>a(!0),children:(0,rv.jsx)(Igr,{fontSize:"inherit"})})]})}var wR=P(z(),1),uVn={summary:{bgcolor:"warning.light",borderColor:"warning.dark"},comment:{bgcolor:"action.selected",borderColor:"divider"}},fVn={justifyContent:"space-between",alignItems:"flex-start"},dVn={color:"text.primary",whiteSpace:"pre-wrap"};function hVn(e){return{p:1.5,bgcolor:e.bgcolor,borderColor:e.borderColor}}function Ogr({comment:e,itemId:t,onDeleted:r}){return(0,wR.jsxs)(an,{variant:"outlined",sx:hVn(uVn[e.type]),children:[(0,wR.jsxs)(Rt,{direction:"row",sx:fVn,children:[(0,wR.jsx)(Lgr,{comment:e}),e.id!==void 0&&t!==void 0&&r&&(0,wR.jsx)(Ngr,{itemId:t,commentId:e.id,onDeleted:r})]}),(0,wR.jsx)(Oe,{variant:"body2",sx:dVn,children:e.text})]})}var CB=P(z(),1),pVn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function Bgr({comments:e,itemId:t,onCommentDeleted:r}){return e.length===0?null:(0,CB.jsxs)(le,{...Um("comments"),children:[(0,CB.jsx)(Oe,{variant:"overline",sx:pVn,children:"Comments"}),(0,CB.jsx)(Rt,{spacing:1,children:e.map((n,i)=>(0,CB.jsx)(Ogr,{comment:n,itemId:t,onDeleted:r},`${n.timestamp}-${i}`))})]})}var Fgr=P(z(),1);function wB({total:e,sx:t}){return(0,Fgr.jsx)(Oe,{sx:t,children:Nge(e)})}var zgr=P(z(),1),mVn={color:"text.secondary",fontSize:"0.75rem"};function $gr({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,zgr.jsx)(wB,{total:t,sx:mVn})}var D2=P(z(),1);function Hgr({checks:e}){return(0,D2.jsxs)(le,{sx:{mt:1,pt:1},children:[(0,D2.jsx)(no,{sx:{mb:1}}),(0,D2.jsx)(Oe,{variant:"overline",sx:{color:"text.disabled",letterSpacing:"0.08em"},children:"Manual Checks"}),(0,D2.jsx)(L0,{disablePadding:!0,sx:{ml:.5,mt:.5},children:e.map(t=>(0,D2.jsxs)(iT,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,D2.jsx)(Oe,{component:"span",sx:{mr:1,fontSize:"0.875rem",color:"text.secondary"},children:"\u2610"}),(0,D2.jsx)(yu,{component:"span",className:"markdown",sx:{fontSize:"0.875rem",color:"text.secondary"},html:MP(t)})]},t))})]})}var o0e={done:{borderColor:"success.light",bgcolor:"success.light"},current:{borderColor:"info.main",bgcolor:"info.light",ring:"info.light"},upcoming:{borderColor:"divider",bgcolor:"background.paper"}};function Ugr(e){let t=o0e[e];return{p:2,borderColor:t.ring?"info.main":t.borderColor,bgcolor:t.bgcolor,...t.ring?{boxShadow:"0 0 0 2px"}:{}}}var Wgr={done:"\u2713",current:"\u2022",upcoming:"\u2022"};var qgr=P(ge(),1);var Vgr=P(ge(),1),nv=P(z(),1);function Ggr({phaseName:e,onConfirm:t,onCancel:r}){let[n,i]=(0,Vgr.useState)("");return(0,nv.jsxs)(Ps,{open:!0,onClose:r,maxWidth:"xs",fullWidth:!0,children:[(0,nv.jsxs)(Il,{children:["Rewind to ",e,"?"]}),(0,nv.jsxs)(Ml,{children:[(0,nv.jsx)(Oe,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"This will mark all later phases as incomplete."}),(0,nv.jsx)(Yn,{fullWidth:!0,multiline:!0,rows:3,size:"small",placeholder:"Reason for rewinding...",value:n,onChange:o=>i(o.target.value)})]}),(0,nv.jsxs)(cu,{children:[(0,nv.jsx)(qt,{onClick:r,children:"Cancel"}),(0,nv.jsx)(qt,{variant:"contained",color:"warning",disabled:n.trim().length===0,onClick:()=>t(n.trim()),children:"Rewind"})]})]})}var kR=P(z(),1);function jgr({itemId:e,phaseNumber:t,phaseName:r,onRewound:n}){let i=as(),o=yr(),[a,s]=(0,qgr.useState)(!1);return(0,kR.jsxs)(kR.Fragment,{children:[(0,kR.jsx)(qt,{size:"small",color:"warning",variant:"outlined",onClick:()=>s(!0),sx:{ml:"auto",textTransform:"none",fontSize:"0.75rem"},children:"Rewind"}),a&&(0,kR.jsx)(Ggr,{phaseName:r,onConfirm:async l=>{await $et(e,t,l,i,o),await n()},onCancel:()=>s(!1)})]})}var kB=P(z(),1),gVn={done:{label:"Done",color:"success"},current:{label:"In Progress",color:"info"},upcoming:{label:"Upcoming",color:"default"}},yVn={alignItems:"center",mb:1},vVn={fontWeight:500},bVn={fontWeight:500,fontSize:"0.75rem"};function Ygr({phase:e,index:t,status:r,itemId:n,onRewind:i}){let o=gVn[r],a=r==="done"&&n!==void 0&&i;return(0,kB.jsxs)(Rt,{direction:"row",spacing:1,sx:yVn,children:[(0,kB.jsxs)(Oe,{sx:vVn,children:["Phase ",t+1,": ",e.name]}),(0,kB.jsx)(sn,{label:o.label,size:"small",color:o.color,sx:bVn}),a&&(0,kB.jsx)(jgr,{itemId:n,phaseNumber:t+1,phaseName:e.name,onRewound:i})]})}var _Y=P(z(),1),xVn={color:"text.secondary",fontSize:"0.75rem",letterSpacing:"0.08em",display:"block"},TVn={color:"text.secondary",fontSize:"0.75rem",fontFamily:"monospace",display:"block"};function Kgr({sessions:e}){return(0,_Y.jsxs)(le,{sx:{mb:1},children:[(0,_Y.jsx)(Oe,{variant:"overline",sx:xVn,children:"Sessions"}),e.map(t=>(0,_Y.jsx)(Oe,{sx:TVn,children:`${t.hostname} / ${t.osUser} / ${t.claudeSessionId}`},t.claudeSessionId))]})}var Zgr=P(z(),1),SVn={color:"text.secondary",fontSize:"0.75rem",mb:1,display:"block"};function Xgr({usage:e}){return(0,Zgr.jsx)(wB,{total:e,sx:SVn})}var _B=P(z(),1);function Qgr({tasks:e,marker:t}){return(0,_B.jsx)(L0,{disablePadding:!0,sx:{ml:.5},children:e.map(r=>(0,_B.jsxs)(iT,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,_B.jsx)(Oe,{component:"span",sx:{color:"text.secondary",mr:1},children:t}),(0,_B.jsx)(yu,{component:"span",className:"markdown",html:MP(r.task)})]},r.task))})}var Dk=P(z(),1);function Jgr({phase:e,index:t,status:r,itemId:n,usage:i,sessions:o,onRewind:a}){let s=e.manualChecks??[],l=i0e(t);return(0,Dk.jsxs)(an,{variant:"outlined",id:l.id,sx:{...Ugr(r),...l.sx},children:[(0,Dk.jsx)(Ygr,{phase:e,index:t,status:r,itemId:n,onRewind:a}),i&&(0,Dk.jsx)(Xgr,{usage:i}),(0,Dk.jsx)(Qgr,{tasks:e.tasks,marker:Wgr[r]}),s.length>0&&(0,Dk.jsx)(Hgr,{checks:s}),o&&o.length>0&&(0,Dk.jsx)(Kgr,{sessions:o})]})}var EY={name:"Review",tasks:[]};function a0e(e){return e.at(-1)?.name===EY.name?e.length-1:e.length}function s0e(e,t){if(t===void 0)return"upcoming";let r=e+1;return r<t?"done":r===t?"current":"upcoming"}function e0r(e=[]){return new Map(e.map(t=>[t.phaseIdx,t]))}function t0r(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 tze=P(z(),1);function r0r({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){let a=e0r(n),s=t0r(i),l=a0e(e),u=(i??[]).filter(d=>d.phaseIdx>=l),f=l===e.length&&u.length>0?[...e,EY]:e;return(0,tze.jsx)(Rt,{spacing:1.5,children:f.map((d,h)=>(0,tze.jsx)(Jgr,{phase:d,index:h,status:s0e(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 _R=P(z(),1),CVn={alignItems:"baseline",justifyContent:"space-between",mb:1},wVn={color:"text.secondary",display:"block",letterSpacing:"0.08em"};function n0r({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){return e.length===0?null:(0,_R.jsxs)(le,{...Um("plan"),children:[(0,_R.jsxs)(Rt,{direction:"row",sx:CVn,children:[(0,_R.jsx)(Oe,{variant:"overline",sx:wVn,children:"Plan"}),n&&n.length>0&&(0,_R.jsx)($gr,{usage:n})]}),(0,_R.jsx)(r0r,{phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o})]})}var rze=P(z(),1),l0e=e=>{let{value:t,options:r,colors:n,onChange:i}=e;return(0,rze.jsx)(sT,{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,rze.jsx)(fn,{value:o,children:o},o))})};var o0r=P(z(),1),kVn={todo:{bg:"action.selected",text:"text.primary"},"in-progress":{bg:"warning.main",text:"warning.contrastText"},done:{bg:"success.main",text:"success.contrastText"}},_Vn=["todo","in-progress","done"];function i0r({current:e,onStatusChange:t}){return(0,o0r.jsx)(l0e,{value:e,options:_Vn,colors:kVn,onChange:t})}var Nk=P(z(),1);function a0r({subtask:e,onStatusChange:t}){let r=e.status==="done";return(0,Nk.jsxs)(Rt,{direction:"row",spacing:1,sx:{alignItems:"flex-start",justifyContent:"space-between"},children:[(0,Nk.jsxs)(le,{sx:{flex:1},children:[(0,Nk.jsx)(Oe,{variant:"body2",sx:{textDecoration:r?"line-through":"none",color:r?"text.disabled":"text.primary"},children:e.title}),e.description&&(0,Nk.jsx)(le,{sx:{mt:.5,fontSize:"0.8125rem",color:r?"text.disabled":"text.secondary"},children:(0,Nk.jsx)(Rw,{content:e.description})})]}),(0,Nk.jsx)(i0r,{current:e.status,onStatusChange:t})]})}var ER=P(z(),1),EVn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function s0r({subtasks:e,onStatusChange:t}){if(e.length===0)return null;let r=e.filter(n=>n.status!=="done").length;return(0,ER.jsxs)(le,{...Um("subtasks"),children:[(0,ER.jsx)(Oe,{variant:"overline",sx:EVn,children:"Sub-tasks"}),(0,ER.jsx)(Rt,{spacing:1,children:e.map((n,i)=>(0,ER.jsx)(a0r,{subtask:n,onStatusChange:o=>t(i,o)},`${n.title}-${i}`))}),r>0&&(0,ER.jsxs)(ni,{severity:"warning",sx:{mt:1},children:[r," sub-task",r===1?"":"s"," not yet done."]})]})}var N2=P(z(),1);function l0r({item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n}){return(0,N2.jsxs)(N2.Fragment,{children:[e.subtasks&&n&&(0,N2.jsx)(s0r,{subtasks:e.subtasks,onStatusChange:n}),e.plan&&(0,N2.jsx)(n0r,{phases:e.plan,currentPhase:e.currentPhase,itemId:e.id,usage:e.phaseUsage,sessions:e.phaseSessions,onRewind:t}),(0,N2.jsx)(Pgr,{gitRefs:e.gitRefs??[],conversations:e.conversations}),e.comments&&(0,N2.jsx)(Bgr,{comments:e.comments,itemId:e.id,onCommentDeleted:r})]})}var EB=P(z(),1);function c0r({item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n}){return(0,EB.jsxs)(le,{sx:{pt:2,flex:1,minWidth:0},children:[(0,EB.jsx)(xgr,{description:e.description}),(0,EB.jsx)(bgr,{criteria:e.acceptanceCriteria}),(0,EB.jsx)(l0r,{item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n})]})}var u0r="item-detail";var RY={wideQuery:`@container ${u0r} (min-width: 760px)`,containerSx:{containerType:"inline-size",containerName:u0r},columnsSx:{display:"flex",columnGap:3}};function RVn(e){let t=e.plan??[];if(t.length===0)return[];let r=a0e(t),i=r===t.length&&(e.phaseSessions??[]).some(o=>o.phaseIdx>=r)?[...t,EY]:t;return[{id:Lk.plan,label:"Phases"},...i.map((o,a)=>({id:i0e(a).id,label:`${a+1}`,title:o.name,status:s0e(a,e.currentPhase),nested:!0}))]}function f0r(e){let t=[];return e.description&&t.push({id:Lk.description,label:"Description"}),e.acceptanceCriteria.length>0&&t.push({id:Lk.acceptanceCriteria,label:"Acceptance Criteria"}),(e.subtasks?.length??0)>0&&t.push({id:Lk.subtasks,label:"Sub-tasks"}),t.push(...RVn(e)),(e.gitRefs?.length??0)+(e.conversations?.length??0)>0&&t.push({id:Lk.activity,label:"Activity"}),(e.comments?.length??0)>0&&t.push({id:Lk.comments,label:"Comments"}),t}var d0r="1.3125rem",h0r={position:"relative",borderRadius:1,"&::after":{content:'""',position:"absolute",inset:0,borderRadius:"inherit",pointerEvents:"none"},"&:hover::after":{bgcolor:"action.hover"},"&:active::after":{bgcolor:"action.selected"}},AVn={...h0r,display:"block",flexShrink:0,maxWidth:"100%",px:1,py:.5,border:0,bgcolor:"transparent",fontSize:d0r,lineHeight:1.2,letterSpacing:"0.02em",textAlign:"left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"text.secondary"},PVn={...h0r,display:"flex",alignItems:"center",justifyContent:"center",fontSize:d0r,width:"2em",height:"2em",flexShrink:0,lineHeight:1,borderRadius:"50%",border:1,color:"text.primary"},LVn={borderColor:"text.primary",borderWidth:3},MVn={color:"text.primary",fontWeight:700,"&::after":{bgcolor:"action.selected"}};function p0r(e,t){let r=e.status&&o0e[e.status];return r?{...PVn,ml:1.5,bgcolor:r.bgcolor,borderColor:r.borderColor,borderWidth:r.ring?3:1,...t&&LVn}:{...AVn,...t&&MVn}}var g0r=P(z(),1);function m0r({section:e,active:t,onSelect:r}){return(0,g0r.jsx)(Dn,{sx:p0r(e,t),onClick:()=>r(e.id),title:e.title??e.label,"aria-current":t?"true":void 0,children:e.label})}function y0r(e,t=wY){return ipe(e,t)}var nze=P(z(),1),IVn=48,DVn=260,NVn={display:"none",[RY.wideQuery]:{display:"flex"},position:"sticky",top:n0e,alignSelf:"flex-start",width:DVn,flexShrink:0,maxHeight:`calc(100vh - ${IVn}px - ${n0e})`,alignItems:"flex-start",overflowY:"auto",overflowX:"hidden",py:2};function OVn(e){document.getElementById(e)?.scrollIntoView({behavior:"smooth",block:"start"})}function v0r({item:e,headerHeight:t}){let r=f0r(e),n=y0r(r.map(i=>i.id),t);return r.length===0?null:(0,nze.jsx)(Rt,{component:"nav",spacing:1,sx:NVn,children:r.map(i=>(0,nze.jsx)(m0r,{section:i,active:i.id===n,onSelect:OVn},i.id))})}var x0r=P(z(),1);function b0r({to:e}){let t=Xi();return(0,x0r.jsx)(qt,{"data-backlog-focus":"back",variant:"text",size:"small",onClick:()=>t(e),sx:{mb:2,textTransform:"none"},children:"\u2190 Back"})}var T0r=P(ge(),1);var RR=P(z(),1);function S0r({itemId:e,onDeleted:t}){let r=as(),n=yr(),[i,o]=(0,T0r.useState)(!1);return(0,RR.jsxs)(RR.Fragment,{children:[i&&(0,RR.jsx)(vo,{onConfirm:async()=>{await Bet(e,r,n),await t()},onCancel:()=>o(!1)}),(0,RR.jsx)(qt,{variant:"contained",color:"error",size:"small",onClick:()=>o(!0),children:"Delete"})]})}var ize=P(z(),1),BVn={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"}},FVn=["todo","in-progress","done","wontdo"];function C0r({current:e,onStatusChange:t}){return t?(0,ize.jsx)(l0e,{value:e,options:FVn,colors:BVn,onChange:t}):(0,ize.jsx)(sn,{label:e,size:"small",color:Ege[e],sx:{fontWeight:500,fontSize:"0.75rem"}})}var O2=P(z(),1),$Vn={alignItems:"center",color:"text.disabled",fontSize:"0.875rem"},zVn={fontWeight:500,fontSize:"0.75rem"},HVn={color:"text.secondary",fontSize:"0.75rem"};function w0r({item:e,onStatusChange:t}){let r=_ge[e.type];return(0,O2.jsxs)(Rt,{direction:"row",spacing:1,sx:$Vn,children:[(0,O2.jsx)(Oe,{variant:"body2",color:"text.disabled",children:so(e.id)}),r&&(0,O2.jsx)(sn,{label:e.type,size:"small",color:r,sx:zVn}),(0,O2.jsx)(C0r,{current:e.status,onStatusChange:t}),(0,O2.jsx)(pP,{jiraKey:e.jiraKey}),(0,O2.jsx)(hP,{githubIssue:e.githubIssue,origin:e.origin}),e.usageTotal&&(0,O2.jsx)(wB,{total:e.usageTotal,sx:HVn})]})}var k0r=P(z(),1),_0r=ut((0,k0r.jsx)("path",{d:"M3 17v2h6v-2zM3 5v2h10V5zm10 16v-2h8v-2h-8v-2h-2v6zM7 9v2H3v2h4v2h2V9zm14 4v-2H11v2zm-6-4h2V7h4V5h-4V3h-2z"}),"Tune");var c0e=P(ge(),1);var E0r=P(ge(),1);function R0r(e){let{launchAssist:t}=$l(),r=Xi(),n=as(),i=yr(),[o,a]=(0,E0r.useState)(!1);return{launched:o,launch:l=>{if(o)return;a(!0);let u=i?[{node:i}]:[];t(["refine","--once",...l,so(e)],n,...u),r("/sessions")}}}var c0=P(z(),1);function A0r({itemId:e}){let{launched:t,launch:r}=R0r(e),n=kk(),i=(0,c0e.useRef)(null),[o,a]=(0,c0e.useState)(!1),s=u=>u.stopPropagation(),l=Bge(n);return(0,c0.jsxs)(c0.Fragment,{children:[(0,c0.jsxs)(tT,{ref:i,variant:"outlined",size:"small",disabled:t,children:[(0,c0.jsx)(qt,{startIcon:(0,c0.jsx)(_0r,{}),onClick:u=>{s(u),r([])},children:"Refine"}),l.length>0&&(0,c0.jsx)(qt,{size:"small","aria-label":"Refine with a different harness",onClick:u=>{s(u),a(!0)},children:(0,c0.jsx)(Up,{})})]}),(0,c0.jsx)(Fge,{anchorEl:i.current,open:o,onClose:()=>a(!1),options:l,onSelect:u=>{a(!1),r(["--harness",u])},stop:s})]})}var RB=P(ge(),1);function P0r(){let e=(0,RB.useRef)(null),[t,r]=(0,RB.useState)(!1);return(0,RB.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 Bf=P(z(),1),UVn={justifyContent:"space-between",alignItems:"center",mb:2};function WVn(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 VVn(e){return t=>({position:"sticky",top:0,zIndex:1,bgcolor:"background.default",mx:-2,px:2,pb:2,borderBottom:1,borderColor:"divider",boxShadow:e?WVn(t):"none",transition:t.transitions.create("box-shadow")})}function L0r({item:e,onDeleted:t,onStatusChange:r,ref:n}){let{sentinelRef:i,stuck:o}=P0r();return(0,Bf.jsxs)(Bf.Fragment,{children:[(0,Bf.jsx)(le,{ref:i,sx:{height:0}}),(0,Bf.jsxs)(le,{ref:n,sx:VVn(o),children:[(0,Bf.jsxs)(Rt,{direction:"row",sx:UVn,children:[(0,Bf.jsx)(b0r,{to:"/backlog"}),(0,Bf.jsxs)(Rt,{direction:"row",spacing:1,children:[Oge(e)&&(0,Bf.jsx)(Jge,{itemId:e.id}),(0,Bf.jsx)(A0r,{itemId:e.id}),(0,Bf.jsx)(S0r,{itemId:e.id,onDeleted:t})]})]}),(0,Bf.jsx)(Oe,{variant:"h5",component:"h2",children:e.name}),(0,Bf.jsx)(w0r,{item:e,onStatusChange:r})]})]})}var I0r=P(ge(),1);var u0e=P(ge(),1);function M0r(e,t){let[r,n]=(0,u0e.useState)(t);return(0,u0e.useEffect)(()=>{let i=e.current;if(!i||(n(i.offsetHeight),typeof ResizeObserver>"u"))return;let o=new ResizeObserver(()=>n(i.offsetHeight));return o.observe(i),()=>o.disconnect()},[e]),r}function D0r(){let e=(0,I0r.useRef)(null),t=M0r(e,wY),r={[J$e]:`${t}px`};return{headerRef:e,headerHeight:t,style:r}}var Ok=P(z(),1);function N0r({item:e,onReload:t}){let r=Xi(),n=as(),i=yr(),{headerRef:o,headerHeight:a,style:s}=D0r();oy("ItemDetail");let l=async()=>{await t(),r("/backlog")},u=async d=>{await zJ(e.id,d,n,i),await t()},f=async(d,h)=>{await Fet(e.id,d,h,n,i),await t()};return(0,Ok.jsxs)(le,{style:s,children:[(0,Ok.jsx)(L0r,{ref:o,item:e,onDeleted:l,onStatusChange:u}),(0,Ok.jsx)(le,{sx:RY.containerSx,children:(0,Ok.jsxs)(le,{sx:RY.columnsSx,children:[(0,Ok.jsx)(c0r,{item:e,onRewind:t,onCommentDeleted:t,onSubtaskStatusChange:f}),(0,Ok.jsx)(v0r,{item:e,headerHeight:a})]})})]})}var AR=P(z(),1),GVn={display:"flex",justifyContent:"center",py:6};function O0r({onReload:e}){let[t]=Pc(),r=t.get("cwd")||void 0,n=t.get("node")||void 0,i=$n(),o=(0,f0e.useMemo)(()=>r?{...i,selectedCwd:r,selectedNode:n}:i,[i,r,n]);return oy("ItemRoute"),(0,AR.jsx)(Pz.Provider,{value:o,children:(0,AR.jsx)(Xu.Provider,{value:o.selectedNode,children:(0,AR.jsx)(qVn,{onReload:e})})})}function qVn({onReload:e}){let{id:t}=_2e(),r=Number.NaN;try{r=_J(t??"")}catch{r=Number.NaN}let{item:n,loading:i,reload:o}=ygr(r),a=(0,f0e.useCallback)(async()=>{await Promise.all([o(),e()])},[o,e]);return i?(0,AR.jsx)(le,{sx:GVn,children:(0,AR.jsx)(mo,{})}):n?(0,AR.jsx)(N0r,{item:n,onReload:a}):null}var PR=P(z(),1);function B0r({items:e,loading:t,error:r,socket:n,onReload:i}){return(0,PR.jsxs)(m5,{children:[(0,PR.jsx)(gs,{index:!0,element:(0,PR.jsx)(ggr,{items:e,loading:t,error:r,socket:n,onReload:i})}),(0,PR.jsx)(gs,{path:"items/:id",element:(0,PR.jsx)(O0r,{onReload:i})})]})}var u0=P(ge(),1);var F0r=new Map;function $0r(e,t,r){return JSON.stringify([e??null,t,r??null])}var AY={get(e,t,r){return F0r.get($0r(e,t,r))},set(e,t,r,n){F0r.set($0r(e,t,n),r)}};function jVn(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 z0r(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&&r.incompleteSubtasks===i.incompleteSubtasks&&jVn(r.usageTotal,i.usageTotal)})}function H0r({setItems:e,setLoading:t,setError:r}){return{onLoaded:n=>{e(i=>z0r(i,n)?i:n),t(!1),r(null)},onError:n=>{t(!1),r(n)}}}async function U0r(e,t,r,n){let i=await WT({cwd:e,node:n,signal:r,filter:t});return r.aborted||AY.set(e,t,i,n),i}function W0r(e,t,r,{onLoaded:n,onError:i},o){return(async()=>{try{let a=await U0r(e,t,r,o);r.aborted||n(a)}catch(a){r.aborted||i(a instanceof Error?a.message:"Failed to load.")}})()}var YVn=5e3;function V0r(e,t,r,n){let i=new AbortController,o=!1,a=()=>{o||(o=!0,W0r(e,t,i.signal,r,n).finally(()=>{o=!1}))};a();let s=setInterval(a,YVn);return()=>{i.abort(),clearInterval(s)}}function G0r(){let e=as(),t=yr(),[r]=hB(),n=AY.get(e,r,t),i=n??[],o=n===void 0,[a,s]=(0,u0.useState)(i),[l,u]=(0,u0.useState)(o),[f,d]=(0,u0.useState)(null),[h,p]=(0,u0.useState)(e),[m,g]=(0,u0.useState)(t),[y,v]=(0,u0.useState)(r);(e!==h||t!==m||r!==y)&&(p(e),g(t),v(r),s(i),u(o),d(null));let b=(0,u0.useCallback)(async()=>{let x=await WT({cwd:e,node:t,filter:r});s(x),AY.set(e,r,x,t),u(!1)},[e,t,r]);return(0,u0.useEffect)(()=>V0r(e,r,H0r({setItems:s,setLoading:u,setError:d}),t),[e,t,r]),{items:a,loading:l,error:f,reload:b}}var PY=P(z(),1);function q0r({socket:e}){let{items:t,loading:r,error:n,reload:i}=G0r();return bte(!r),(0,PY.jsx)(V$e.Provider,{value:e.sessions,children:(0,PY.jsx)(m5,{children:(0,PY.jsx)(gs,{path:"/*",element:(0,PY.jsx)(B0r,{items:t,loading:r,error:n,socket:e,onReload:i})})})})}var oze=P(z(),1);function j0r({socket:e}){return(0,oze.jsx)(WF,{maxWidth:"lg",sx:{py:3,px:2},children:(0,oze.jsx)(q0r,{socket:e})})}var _i=P(z(),1);function Y0r({socket:e}){return oy("AppRoutes"),(0,_i.jsxs)(_i.Fragment,{children:[(0,_i.jsx)(Aor,{}),(0,_i.jsx)(m5,{children:(0,_i.jsxs)(gs,{element:(0,_i.jsx)(Oit,{socket:e}),children:[(0,_i.jsx)(gs,{path:"sessions",element:(0,_i.jsx)(Ehr,{socket:e})}),(0,_i.jsx)(gs,{path:"backlog/*",element:(0,_i.jsx)(j0r,{socket:e})}),(0,_i.jsx)(gs,{path:"next",element:(0,_i.jsx)(Hir,{sessions:e.sessions,selectSession:e.selectSession})}),(0,_i.jsx)(gs,{path:"news",element:(0,_i.jsx)(Knr,{})}),(0,_i.jsx)(gs,{path:"releases",element:(0,_i.jsx)(kor,{})}),(0,_i.jsx)(gs,{path:"usage",element:(0,_i.jsx)(lmr,{})}),(0,_i.jsx)(gs,{path:"backups",element:(0,_i.jsx)(Vit,{})}),(0,_i.jsx)(gs,{path:"config",element:(0,_i.jsx)(Fat,{})}),(0,_i.jsx)(gs,{path:"updates",element:(0,_i.jsx)(bpr,{reconnecting:e.reconnecting,selectSession:e.selectSession})}),(0,_i.jsx)(gs,{path:"diff",element:(0,_i.jsx)(pnr,{socket:e})}),(0,_i.jsx)(gs,{path:"file",element:(0,_i.jsx)(Vnr,{socket:e})}),(0,_i.jsx)(gs,{path:"*",element:(0,_i.jsx)(M2e,{to:"/sessions",replace:!0})})]})})]})}var g0e=P(ge(),1);var m0e=P(ge(),1);function K0r(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 Bk=P(z(),1),KVn={display:"flex",gap:1,alignItems:"center",minWidth:0},XVn={display:"flex",gap:1,alignItems:"baseline",minWidth:0,overflow:"hidden"},ZVn={fontFamily:"monospace",fontSize:13,whiteSpace:"nowrap"},QVn={fontFamily:"monospace",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function JVn(e){let t=e.lastIndexOf("/");return t===-1?{dir:"",basename:e}:{dir:e.slice(0,t),basename:e.slice(t+1)}}function X0r({files:e,highlight:t,onHighlight:r,onSelect:n}){return(0,Bk.jsx)(Cp,{dense:!0,sx:{py:0},children:e.map((i,o)=>{let{dir:a,basename:s}=JVn(i);return(0,Bk.jsxs)(fn,{selected:o===t,onMouseEnter:()=>r(o),onClick:()=>n(i),sx:KVn,children:[(0,Bk.jsx)(o9,{path:i}),(0,Bk.jsxs)(le,{sx:XVn,children:[(0,Bk.jsx)(Oe,{component:"span",sx:ZVn,children:s}),(0,Bk.jsx)(Oe,{component:"span",color:"text.secondary",sx:QVn,children:a})]})]},i)})})}var d0e=P(z(),1),eGn={maxHeight:420,overflowY:"auto"},tGn={px:2,py:2,fontSize:13};function Z0r({message:e,files:t,highlight:r,onHighlight:n,onSelect:i}){return(0,d0e.jsx)(le,{sx:eGn,children:e?(0,d0e.jsx)(Oe,{color:"text.secondary",sx:tGn,children:e}):(0,d0e.jsx)(X0r,{files:t,highlight:r,onHighlight:n,onSelect:i})})}var Q0r=P(z(),1),rGn={mt:6,alignSelf:"flex-start"};function h0e({onClose:e,onEntered:t,centered:r=!1,children:n}){return(0,Q0r.jsx)(Ps,{open:!0,onClose:e,maxWidth:"sm",fullWidth:!0,slotProps:{paper:{sx:r?void 0:rGn},transition:{onEntered:t}},children:n})}var p0e=P(ge(),1);var J0r={files:[],loading:!1,error:!1};function eyr(e,t){let[r,n]=(0,p0e.useState)(J0r),i=yr();return(0,p0e.useEffect)(()=>{if(!e){n(J0r);return}let o=!1;return n(s=>({...s,loading:!0})),(async()=>{try{let s=await fetch(tn(`/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 LR=P(z(),1);function nGn(e,t,r){let n=new URLSearchParams({path:e});return t&&n.set("cwd",t),t&&r&&n.set("node",r),`/file?${n}`}function tyr({onClose:e}){let{worktreeNode:t}=$n();return(0,LR.jsx)(Xu.Provider,{value:t,children:(0,LR.jsx)(iGn,{onClose:e})})}function iGn({onClose:e}){let{worktreeCwd:t,worktreeNode:r}=$n(),[n,i]=(0,m0e.useState)(""),o=eyr(t,n),a=Xi(),s=(0,m0e.useRef)(null),l=p=>a(nGn(p,t,r)),{highlight:u,setHighlight:f,onKeyDown:d}=Ak(o.files,n,l,e),h=p=>{l(p),e()};return(0,LR.jsxs)(h0e,{onClose:e,onEntered:()=>s.current?.focus(),children:[(0,LR.jsx)(yB,{autoFocus:!0,inputRef:s,value:n,onChange:i,onKeyDown:d,placeholder:"Search files by name..."}),(0,LR.jsx)(Z0r,{message:K0r(t,n,o),files:o.files,highlight:u,onHighlight:f,onSelect:h})]})}function ryr(e){No(Kn("quickOpen").matches,e)}var iyr=P(z(),1);function nyr(){let[e,t]=(0,g0e.useState)(!1);return ryr((0,g0e.useCallback)(()=>t(!0),[])),e?(0,iyr.jsx)(tyr,{onClose:()=>t(!1)}):null}var y0e=P(z(),1);function oyr({notice:e,onClose:t,onView:r}){let n=e?.sessionId??null;return(0,y0e.jsx)(ol,{open:e!==null,autoHideDuration:6e3,onClose:t,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,y0e.jsx)(ni,{severity:"success",variant:"filled",onClose:t,action:n!==null?(0,y0e.jsx)(qt,{color:"inherit",size:"small",onClick:()=>r(n),children:"View"}):void 0,children:e?.message})})}var S0e=P(ge(),1);function ayr(e){let t=["claude"];return e.exposeCodexActions&&t.push("codex"),e.exposePiActions&&t.push("pi"),t}var byr=P(ge(),1);var syr=P(z(),1),lyr=ut((0,syr.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 Fk="0.796.0";var oGn={connected:"success.main",connecting:"warning.main",disconnected:"error.main","version-blocked":"error.main"};function cyr(e){return e?oGn[e]:"success.main"}function uyr(e){return e.split("-")[0].split(".").map(Number)}function fyr(e,t){if(!e||!t||e===t)return;let r=uyr(e),n=uyr(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 v0e=P(ge(),1),aze=(0,v0e.createContext)(null);function b0e(){return(0,v0e.useContext)(aze)}var MR=P(z(),1),aGn={height:16,fontSize:10},sGn={opacity:.6,fontSize:"0.85em"};function lGn(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 LY({nodes:e,name:t,showVersion:r=!1}){let n=b0e()??Fk,i=e.links.find(a=>a.name===t),o=fyr(i?.peerVersion,n);return(0,MR.jsx)(lr,{title:lGn(e,t),placement:"right",children:(0,MR.jsxs)(le,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.75},children:[(0,MR.jsx)(lyr,{sx:{fontSize:8,color:cyr(i?.state)}}),t,r&&i?.peerVersion&&(0,MR.jsxs)(le,{component:"span",sx:sGn,children:["v",i.peerVersion]}),o&&(0,MR.jsx)(sn,{label:o,size:"small",color:o==="behind"?"warning":"info",sx:aGn})]})})}var IR=P(z(),1),cGn={opacity:.6},uGn={display:"inline-flex",alignItems:"center",gap:.5,px:.5,border:1,borderStyle:"dashed",borderRadius:1};function dyr({nodes:e,name:t,clone:r}){let n=(0,IR.jsx)(LY,{nodes:e,name:t});return r.kind==="cloned"?n:r.kind==="unavailable"?(0,IR.jsx)(le,{component:"span",sx:cGn,children:n}):(0,IR.jsx)(lr,{title:gB(t,r.cloneTarget),children:(0,IR.jsxs)(le,{component:"span",sx:uGn,children:[(0,IR.jsx)(mB,{sx:{fontSize:14}}),n]})})}var pyr=P(z(),1),fGn={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 hyr({value:e,label:t,checked:r,autoFocus:n,onSelect:i}){return(0,pyr.jsx)(Dn,{role:"radio","aria-checked":r,"data-value":e,tabIndex:r?0:-1,autoFocus:n&&r,onClick:i,sx:fGn,children:t})}var myr={ArrowRight:1,ArrowLeft:-1};function dGn(e,t,r){if(e.key==="Tab"){let n=t+(e.shiftKey?-1:1);return n>=0&&n<r?n:void 0}return(t+myr[e.key]+r)%r}function gyr(e,t,r,n){return i=>{if(i.key==="ArrowUp"||i.key==="ArrowDown"){if(!n)return;i.preventDefault(),n();return}if(i.key!=="Tab"&&!myr[i.key]){db(i);return}let o=dGn(i,e.indexOf(t),e.length);o!==void 0&&(i.preventDefault(),r(e[o]),i.currentTarget.querySelector(`[data-value="${e[o]}"]`)?.focus())}}var yyr=P(ge(),1);function AB(e){return e?.querySelector('[aria-checked="true"]')}function vyr(e,t){(0,yyr.useEffect)(()=>{let r=e.current;if(!r?.contains(document.activeElement))return;let n=AB(r);n&&n!==document.activeElement&&n.focus()},[e,t])}var sze=P(z(),1),hGn={border:1,borderColor:"divider",borderRadius:1,height:40,p:"2px",flexShrink:0};function x0e({label:e,options:t,value:r,onChange:n,optionLabel:i=u=>u,groupRef:o,autoFocus:a,onTrack:s,onToggleRow:l}){return vyr(o,r),(0,sze.jsx)(Rt,{ref:o,direction:"row",role:"radiogroup","aria-label":e,spacing:"2px",onFocus:s,onKeyDown:gyr(t,r,n,l),sx:hGn,children:t.map(u=>(0,sze.jsx)(hyr,{value:u,label:i(u),checked:u===r,autoFocus:a,onSelect:()=>n(u)},u))})}var lze=P(z(),1);function xyr({value:e,onChange:t,cloneState:r}){let{nodes:n,names:i,visible:o}=Bu(),a=(0,byr.useRef)(null);return!o||!n||!e?null:(0,lze.jsx)(x0e,{label:"Machine",options:i,value:e,onChange:t,optionLabel:s=>(0,lze.jsx)(dyr,{nodes:n,name:s,clone:r(s)}),groupRef:a,autoFocus:!1,onTrack:()=>{}})}var Syr=P(z(),1);function Tyr({value:e,onChange:t,placeholder:r,inputRef:n,autoFocus:i,onTrack:o}){return(0,Syr.jsx)(Yn,{value:e,onChange:a=>t(a.target.value),onKeyDown:db,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 _yr=P(ge(),1);var B2={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:Kee,submitLabel:"Start session"},design:{placeholder:"Describe the design task...",submitLabel:"Start design"}},Cyr=Object.keys(B2);var cze=P(z(),1);function wyr({anchor:e,harness:t,harnesses:r,onPick:n,onClose:i}){return(0,cze.jsx)(Dl,{open:e!==null,anchorEl:e,onClose:i,slotProps:{list:{dense:!0,"aria-label":"Harness"}},children:r.map(o=>(0,cze.jsx)(fn,{role:"menuitemradio","aria-checked":o===t,selected:o===t,onClick:()=>{n(o),i()},sx:{fontSize:13},children:gu(o)},o))})}var DR=P(z(),1);function kyr(e){return t=>t==="prompt"&&e?(0,DR.jsxs)(DR.Fragment,{children:["prompt",(0,DR.jsx)(le,{component:"span",sx:{fontWeight:400,whiteSpace:"pre"},children:` \xB7 ${gu(e)}`}),(0,DR.jsx)(Up,{sx:{fontSize:18,mr:-.75}})]}):t}var NR=P(z(),1);function Eyr({draft:e,harness:t,harnesses:r,focus:n}){let[i,o]=(0,_yr.useState)(null),a=e.mode==="prompt"&&r.length>1,s=()=>o(AB(n.modeRef.current)??null),l=u=>{a&&u==="prompt"?s():e.setMode(u)};return(0,NR.jsxs)(NR.Fragment,{children:[(0,NR.jsx)(x0e,{label:"Mode",options:Cyr,value:e.mode,onChange:l,optionLabel:kyr(r.length>1?t:void 0),groupRef:n.modeRef,autoFocus:n.autoFocus==="mode",onTrack:n.trackMode,onToggleRow:a?s:void 0}),(0,NR.jsx)(wyr,{anchor:i,harness:t,harnesses:r,onPick:e.setHarness,onClose:()=>o(null)})]})}var Fyr=P(ge(),1);var uze=P(z(),1),pGn={zIndex:e=>e.zIndex.modal+1};function Ryr({open:e,anchor:t,children:r}){return(0,uze.jsx)(HA,{open:e,anchorEl:t,placement:"bottom-start",sx:pGn,children:(0,uze.jsx)(an,{sx:{maxHeight:240,overflowY:"auto",width:t?.clientWidth},onMouseDown:n=>n.preventDefault(),children:r})})}function Ayr(e){return{htmlInput:{role:"combobox","aria-label":"Repo","aria-expanded":e},input:{sx:{fontSize:13,height:40}}}}var Pyr=P(bF(),1);function Lyr({open:e,highlighted:t,accept:r,close:n,navigate:i,openList:o}){return a=>{if(!e){if(a.key==="ArrowDown"){a.preventDefault(),o();return}db(a);return}if(a.key!=="Escape"){if(a.key==="Enter"){if(a.preventDefault(),t===void 0)return;(0,Pyr.flushSync)(()=>{r(t),n()}),db(a);return}if(a.key!=="Tab"){i(a);return}t!==void 0&&r(t),n()}}}function Myr(e,t){let r=t.trim().toLowerCase();return r?e.filter(n=>J1(n).toLowerCase().includes(r)):e}var fze=P(ge(),1);function Iyr(){let[e,t]=(0,fze.useState)(!1),[r,n]=(0,fze.useState)("");return{open:e,query:r,show:()=>t(!0),filterBy:i=>{n(i),t(!0)},close:()=>{t(!1),n("")}}}var Nyr=P(ge(),1);var Dyr=e=>e?J1(e):"";function Oyr(e){let[t,r]=(0,Nyr.useState)(()=>Dyr(e));return{text:t,setText:r,showRepo:n=>r(Dyr(n))}}function Byr(e,t,r){let n=Iyr(),i=Oyr(t),o=Myr(e,n.query),a=f=>{r(f),i.showRepo(f)},s=Ak(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:Lyr({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 PB=P(z(),1);function $yr({repos:e,value:t,onChange:r,inputRef:n,autoFocus:i,onTrack:o}){let a=Byr(e,t,r),s=(0,Fyr.useRef)(null);return(0,PB.jsxs)(le,{ref:s,sx:{flex:1,minWidth:0},children:[(0,PB.jsx)(Yn,{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:Ayr(a.open)}),(0,PB.jsx)(Ryr,{open:a.open,anchor:s.current,children:(0,PB.jsx)(Kge,{repos:a.filtered,selected:t,highlight:a.highlight,onHighlight:a.setHighlight,onSelect:a.pick})})]})}var $k=P(z(),1);function zyr({cloneState:e,...t}){let{draft:r,focus:n}=t,{repos:i}=$n();return(0,$k.jsxs)(Rt,{spacing:1,sx:{p:1},children:[(0,$k.jsx)(Tyr,{value:r.prompt,onChange:r.setPrompt,placeholder:B2[r.mode].placeholder,inputRef:n.promptRef,autoFocus:n.autoFocus==="prompt",onTrack:n.trackPrompt}),(0,$k.jsxs)(Rt,{direction:"row",spacing:1,sx:{alignItems:"flex-start"},children:[(0,$k.jsx)($yr,{repos:i,value:r.cwd,onChange:r.setCwd,inputRef:n.repoRef,autoFocus:n.autoFocus==="repo",onTrack:n.trackRepo}),(0,$k.jsx)(Eyr,{...t})]}),(0,$k.jsx)(xyr,{value:r.node,onChange:r.setNode,cloneState:e})]})}var LB=P(z(),1),mGn=["Enter start","Shift+Enter newline","Esc close"],gGn={alignItems:"center",px:1.5,py:1,borderTop:1,borderColor:"divider",bgcolor:"action.hover"};function Hyr({submitLabel:e,disabled:t=!1}){return(0,LB.jsxs)(Rt,{direction:"row",spacing:1.5,sx:gGn,children:[(0,LB.jsx)(Rt,{direction:"row",spacing:1.5,sx:{mr:"auto"},children:mGn.map(r=>(0,LB.jsx)(Oe,{variant:"caption",color:"text.secondary",children:r},r))}),(0,LB.jsx)(qt,{type:"submit",variant:"contained",size:"small",disabled:t,children:e})]})}function Uyr({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}]:[];Ent(B2[e].sessionMode,n,(u,f)=>o.onCreateAssist(u,f,...l),()=>{},r)}function Wyr(e,t,r,n){return r.kind==="blocked"?!1:r.kind==="clone"?(Hge(r.prompt,n.onCreateAssist),!0):(Uyr({mode:e.mode,harness:t,prompt:e.prompt,cwd:r.cwd,node:e.node},n),e.clear(),!0)}var OR=P(ge(),1);function Vyr(e,t){let r=(0,OR.useRef)(e),n=(0,OR.useRef)(null),i=(0,OR.useRef)(null),o=(0,OR.useRef)(null),a=(0,OR.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:AB(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 yGn(e,t,r){return e?r.kind==="cloned"?{kind:"launch",cwd:r.cwd}:r.kind==="clonable"?{kind:"clone",prompt:Zge(r,t)}:{kind:"blocked"}:{kind:"launch",cwd:e}}function Gyr(e,t){let{names:r,visible:n}=Bu(),i=qge(t,n?r:[void 0]);return{cloneState:i,target:yGn(t,e,i(e))}}var MB=P(z(),1);function qyr({draft:e,launchers:t,onClose:r}){let n=Vyr(e.focus,e.setFocus),i=ayr(kk()),o=i.includes(e.harness)?e.harness:"claude",{target:a,cloneState:s}=Gyr(e.node,e.cwd),l=u=>{u.preventDefault(),Wyr(e,o,a,t)&&r()};return(0,MB.jsx)(h0e,{onClose:r,onEntered:n.restore,centered:!0,children:(0,MB.jsxs)("form",{onSubmit:l,children:[(0,MB.jsx)(zyr,{draft:e,harness:o,harnesses:i,focus:n,cloneState:s}),(0,MB.jsx)(Hyr,{submitLabel:a.kind==="clone"?"Clone":B2[e.mode].submitLabel,disabled:a.kind==="blocked"})]})})}var T0e=P(ge(),1);function jyr(e){let[t,r]=(0,T0e.useState)(null);return(0,T0e.useEffect)(()=>{let n=!1;return(async()=>{let i="draft";try{let o=e?`?cwd=${encodeURIComponent(e)}`:"",s=await(await fetch(`/api/new-session-defaults${o}`)).json();Object.hasOwn(B2,s?.mode)&&(i=s.mode)}catch{}n||r(i)})(),()=>{n=!0}},[e]),t}function Yyr(e,{visible:t,names:r,selected:n}){if(t)return e&&r.includes(e)?e:n}var F2=P(ge(),1),Kyr={field:"prompt",selectionStart:0,selectionEnd:0};function Xyr(){let[e,t]=(0,F2.useState)(""),[r,n]=(0,F2.useState)(),[i,o]=(0,F2.useState)(),[a,s]=(0,F2.useState)("claude"),[l,u]=(0,F2.useState)(),[f,d]=(0,F2.useState)(Kyr),h=(0,F2.useCallback)(()=>{t(""),n(void 0),o(void 0),u(void 0),d(Kyr)},[]);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 Zyr(e=jyr){let{selectedCwd:t}=$n(),r=Bu(),n=Xyr(),i=n.cwd??t,o=e(i);return o?{...n,cwd:i,mode:n.mode??o,node:Yyr(n.node,r)}:null}function Qyr(e){No(Kn("newSession").matches,e)}var Jyr=P(ge(),1);function e1r(e,t){let{selectedCwd:r}=$n(),[n,i]=Pc(),o=n.get("new"),a=n.get("newCwd")??r,{setPrompt:s,setCwd:l,setFocus:u}=e??{};(0,Jyr.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 r1r=P(z(),1);function t1r({launchers:e}){let[t,r]=(0,S0e.useState)(!1),n=Zyr(),i=(0,S0e.useCallback)(()=>r(!0),[]);return Qyr(i),e1r(n,i),!t||!n?null:(0,r1r.jsx)(qyr,{draft:n,launchers:e,onClose:()=>r(!1)})}var C0e=P(z(),1);function n1r({reconnecting:e}){return(0,C0e.jsx)(ol,{open:e,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,C0e.jsx)(ni,{severity:"info",variant:"filled",icon:(0,C0e.jsx)(mo,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var iv=P(z(),1);function i1r({socket:e,onViewLaunchedSession:t}){return(0,iv.jsxs)(iv.Fragment,{children:[(0,iv.jsx)(nyr,{}),(0,iv.jsx)(t1r,{launchers:{onCreate:e.createSession,onCreateDesign:e.createDesignSession,onCreateHarness:e.createHarnessSession,onCreateAssist:e.createAssistSession}}),(0,iv.jsx)(n1r,{reconnecting:e.reconnecting}),(0,iv.jsx)(vu,{error:e.error,onClose:e.clearError}),(0,iv.jsx)(oyr,{notice:e.success,onClose:e.clearSuccess,onView:t})]})}var f0=P(ge(),1);var vGn=6e4;function o1r(e){let t=e.nodes?.local,r=e.names.join(`
3977
3977
  `),[n,i]=(0,f0.useState)([]),[o,a]=(0,f0.useState)(!0),s=(0,f0.useRef)(0),l=(0,f0.useCallback)(()=>{let u=r?r.split(`
3978
3978
  `):[];if(u.length===0)return;let f=++s.current;Promise.all(u.map(d=>xge(d,d===t))).then(d=>{f===s.current&&(i(d),a(!1))})},[r,t]);return(0,f0.useEffect)(()=>{l();let u=setInterval(l,vGn);return()=>clearInterval(u)},[l]),(0,f0.useMemo)(()=>({entries:n,loading:o,refresh:l}),[n,o,l])}var zk=P(z(),1);function a1r({shell:e,children:t}){let{socket:r,selection:n,launch:i,topBar:o,sidebarCollapse:a}=e,s=o1r(r.nodeSelection);return(0,zk.jsx)(M$e.Provider,{value:s,children:(0,zk.jsx)(Q2e.Provider,{value:o,children:(0,zk.jsx)(zTe.Provider,{value:a,children:(0,zk.jsx)(Pz.Provider,{value:n,children:(0,zk.jsx)(K$e.Provider,{value:r.nodeSelection,children:(0,zk.jsx)(Xu.Provider,{value:n.selectedNode,children:(0,zk.jsx)(mTe.Provider,{value:i,children:t})})})})})})})}var s1r=P(z(),1),l1r=ut((0,s1r.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 c1r=P(ge(),1);var d0=P(z(),1),bGn={ml:1,textTransform:"none",fontSize:12};function u1r(){let{nodes:e,names:t,visible:r,selected:n,select:i}=Bu(),[o,a]=(0,c1r.useState)(null);return!r||!e||!n?null:(0,d0.jsxs)(d0.Fragment,{children:[(0,d0.jsx)(qt,{size:"small",color:"inherit",startIcon:(0,d0.jsx)(l1r,{fontSize:"small"}),"aria-label":"Machine","aria-haspopup":"menu",onClick:s=>a(s.currentTarget),sx:bGn,children:(0,d0.jsx)(LY,{nodes:e,name:n})}),(0,d0.jsx)(Dl,{anchorEl:o,open:!!o,onClose:()=>a(null),children:t.map(s=>(0,d0.jsx)(fn,{selected:s===n,onClick:()=>{i(s),a(null)},sx:{fontSize:13},children:(0,d0.jsx)(LY,{nodes:e,name:s,showVersion:!0})},s))})]})}var MY=P(ge(),1);function f1r(e,t){return[...e[0].slice(0,-1),String(t+1)]}var w0e=P(z(),1);function d1r({index:e,label:t,...r}){let{chords:n}=Kn("navTab");return(0,w0e.jsx)(lr,{describeChild:!0,title:(0,w0e.jsx)(ed,{label:t,chords:[f1r(n,e)]}),children:(0,w0e.jsx)(Av,{label:t,...r})})}var dze=P(ge(),1);function h1r(e,t){let{bound:r}=Kn("navTab"),n=e.length,i=(0,dze.useCallback)(a=>(Bz(a,r)??n)<n,[r,n]),o=(0,dze.useCallback)(a=>{let s=e[Bz(a,r)??-1];s&&t(s)},[e,t,r]);No(i,o)}var k0e=P(ge(),1);function p1r(){let[e,t]=(0,k0e.useState)(!1);return(0,k0e.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 _0e=P(ge(),1);async function xGn(e,t){let r=await fetch(tn(`/api/releases/configured?cwd=${encodeURIComponent(e)}`,t));return r.ok?(await r.json())?.configured===!0:void 0}function m1r(e){let[t,r]=(0,_0e.useState)(null),n=yr(),i=`${n??""}\0${e}`;return(0,_0e.useEffect)(()=>{if(!e)return;let o=!1;return xGn(e,n).catch(()=>{}).then(a=>{o||r({key:i,configured:a})}),()=>{o=!0}},[e,n,i]),t?.key===i?t.configured:void 0}var g1r=P(ge(),1);function y1r(e){let{pathname:t}=Io(),r=Xi(),n=t==="/releases"||t.startsWith("/releases/");(0,g1r.useEffect)(()=>{e===!1&&n&&r("/sessions",{replace:!0})},[e,n,r])}var TGn={path:"/sessions",label:"Sessions"},SGn={path:"/backlog",label:"Backlog"},CGn={path:"/next",label:"Next"},wGn={path:"/releases",label:"Releases"},kGn={path:"/news",label:"News"};function v1r(e,t){return[TGn,SGn,CGn,...e?[wGn]:[],...t?[kGn]:[]]}var hze=P(z(),1);function b1r({cwd:e}){let t=Io(),r=Xi(),n=m1r(e),i=p1r();y1r(n);let o=n===!0,a=(0,MY.useMemo)(()=>v1r(o,i),[o,i]),s=(0,MY.useMemo)(()=>a.map(f=>f.path),[a]),l=a.findIndex(f=>t.pathname.startsWith(f.path)),u=(0,MY.useCallback)(f=>{t.pathname!==f&&r(f)},[t.pathname,r]);return h1r(s,u),(0,hze.jsx)(U_,{value:l===-1?!1:l,textColor:"inherit",indicatorColor:"secondary",children:a.map((f,d)=>(0,hze.jsx)(d1r,{index:d,label:f.label,onClick:()=>u(f.path)},f.path))})}var x1r=P(z(),1),T1r=ut((0,x1r.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 IY=P(z(),1),_Gn={color:"success.light"};function S1r(){let[,e]=Pc(),{label:t,chords:r}=Kn("newSession");return(0,IY.jsx)(lr,{title:(0,IY.jsx)(ed,{label:t,chords:r}),children:(0,IY.jsx)(ir,{size:"small",sx:_Gn,"aria-label":"New session",onClick:()=>e(i=>(i.set("new",""),i),{replace:!0}),children:(0,IY.jsx)(T1r,{})})})}var R0e=P(ge(),1);var E0e=P(z(),1),EGn={color:"inherit"};function C1r({cwd:e}){let[t,r]=(0,R0e.useState)(null),n=yr();return(0,R0e.useEffect)(()=>{if(!e){r(null);return}let i=!1;return(async()=>{try{let a=await(await fetch(tn(`/api/github-url?cwd=${encodeURIComponent(e)}`,n))).json();i||r(a?.url??null)}catch{i||r(null)}})(),()=>{i=!0}},[e,n]),t?(0,E0e.jsx)(lr,{title:"Open in GitHub",children:(0,E0e.jsx)(ir,{sx:EGn,onClick:()=>window.open(t,"_blank"),children:(0,E0e.jsx)(uP,{})})}):null}var _1r=P(ge(),1);var k1r=P(ge(),1);var A0e=P(z(),1);function w1r({window:e,windowSeconds:t,fallbackLabel:r,now:n}){let i=e?.used_percentage;if(i==null)return null;let o=Tk(i,e?.resets_at,t,n),a=e?.resets_at!=null?Rge(e.resets_at,n):r;return(0,A0e.jsxs)(le,{component:"span",children:[(0,A0e.jsxs)(le,{component:"span",sx:{color:Sk(o)},children:[Math.round(i),"%"]})," ",(0,A0e.jsxs)(le,{component:"span",sx:{color:"text.secondary"},children:["(",a,")"]})]})}var Hk=P(z(),1);function P0e({rateLimits:e}){let t=Ck(3e4),r=[{window:e.five_hour,windowSeconds:18e3,fallbackLabel:"5h"},{window:e.seven_day,windowSeconds:604800,fallbackLabel:"7d"}].filter(n=>n.window?.used_percentage!=null);return(0,Hk.jsx)(Hk.Fragment,{children:r.map((n,i)=>(0,Hk.jsxs)(k1r.Fragment,{children:[i>0?(0,Hk.jsx)(le,{component:"span",sx:{color:"text.secondary",mr:.5},children:","}):null,(0,Hk.jsx)(w1r,{window:n.window,windowSeconds:n.windowSeconds,fallbackLabel:n.fallbackLabel,now:t})]},n.fallbackLabel))})}var Uk=P(z(),1);function E1r({groups:e}){return(0,Uk.jsx)(Uk.Fragment,{children:e.map((t,r)=>(0,Uk.jsxs)(_1r.Fragment,{children:[(0,Uk.jsx)(le,{component:"span",sx:{color:"text.secondary",ml:r>0?1:0,mr:.5},children:gu(t.harness)}),(0,Uk.jsx)(P0e,{rateLimits:t.rateLimits})]},t.harness))})}function RGn(e){if(e==="over")return{level:"warn",boundary:100};if(e==="warn")return{level:"ok",boundary:75}}function AGn(e){if(e==="ok")return{level:"warn",boundary:75};if(e==="warn")return{level:"over",boundary:100}}function PGn(e,t,r,n){if(e>=t)return;let i=e/t;return Math.round(r-n*(1-i))}function P1r(e,t,r,n){if(t==null)return{kind:"unprojectable"};let i=H$e(t,r,n);if(i==null)return{kind:"unprojectable"};let o=Tk(e,t,r,n),a=RGn(o),s=AGn(o);return{kind:"projected",recovery:a&&{level:a.level,pct:a.boundary*i,at:PGn(e,a.boundary,t,r)},worse:s&&{level:s.level,pct:s.boundary*i}}}function L1r(e,t){return e.at==null?"not before reset":`${e.level==="ok"?"green":"under"} in ${Rge(e.at,t)}`}var h0=P(z(),1);function pze({direction:e,threshold:t}){let r=e==="back",n={display:"inline-flex",gap:.5,minWidth:"6ch",justifyContent:r?"flex-end":"flex-start"};if(!t)return(0,h0.jsx)(le,{component:"span",sx:n});let i=(0,h0.jsx)(le,{component:"span",sx:{opacity:.6},children:r?"\u2190":"\u2192"}),o=(0,h0.jsxs)(le,{component:"span",sx:{color:Sk(t.level)},children:[Math.round(t.pct),"%"]});return(0,h0.jsx)(le,{component:"span",sx:n,children:r?(0,h0.jsxs)(h0.Fragment,{children:[o,i]}):(0,h0.jsxs)(h0.Fragment,{children:[i,o]})})}var Wk=P(z(),1);function M1r({label:e,pct:t,resetsAt:r,windowSeconds:n,now:i}){let o=Tk(t,r,n,i),a=P1r(t,r,n,i),s=a.kind==="projected"?a:void 0;return(0,Wk.jsxs)(le,{sx:{display:"flex",alignItems:"baseline",gap:.75},children:[(0,Wk.jsx)(le,{component:"span",sx:{minWidth:"2ch"},children:e}),(0,Wk.jsx)(pze,{direction:"back",threshold:s?.recovery}),(0,Wk.jsxs)(le,{component:"span",sx:{minWidth:"4ch",textAlign:"right",color:Sk(o)},children:[Math.round(t),"%"]}),(0,Wk.jsx)(pze,{direction:"forward",threshold:s?.worse}),(0,Wk.jsx)(le,{component:"span",sx:{opacity:.6},children:s?s.recovery&&L1r(s.recovery,i):"no projection yet"})]})}function I1r(e){return[{label:"5h",window:e.five_hour,windowSeconds:18e3},{label:"7d",window:e.seven_day,windowSeconds:604800}].flatMap(t=>t.window?.used_percentage==null?[]:[{label:t.label,pct:t.window.used_percentage,resetsAt:t.window.resets_at,windowSeconds:t.windowSeconds}])}var D1r=P(z(),1);function L0e({rateLimits:e,now:t}){return I1r(e).map(r=>(0,D1r.jsx)(M1r,{label:r.label,pct:r.pct,resetsAt:r.resetsAt,windowSeconds:r.windowSeconds,now:t},r.label))}var BR=P(z(),1);function N1r({groups:e}){let t=Ck(3e4);return(0,BR.jsxs)(le,{sx:{fontFamily:"monospace",fontSize:12},children:[e.map(r=>(0,BR.jsxs)(le,{sx:{mb:.5},children:[(0,BR.jsx)(le,{sx:{opacity:.8},children:gu(r.harness)}),(0,BR.jsx)(L0e,{rateLimits:r.rateLimits,now:t})]},r.harness)),(0,BR.jsx)(le,{sx:{mt:.5,opacity:.6},children:"Account usage per harness \u2014 view history"})]})}function O1r(e){return e?.five_hour?.used_percentage!=null||e?.seven_day?.used_percentage!=null}function B1r(e,t){let r=[];O1r(e)&&r.push({harness:"claude",rateLimits:e});for(let[n,i]of Object.entries(t))O1r(i)&&r.push({harness:n,rateLimits:i});return r}var DY=P(z(),1),mze="Claude account usage (5h / 7d windows) \u2014 view history";function F1r({rateLimits:e}){let t=Ck(3e4);return(0,DY.jsxs)(le,{sx:{fontFamily:"monospace",fontSize:12},children:[(0,DY.jsx)(L0e,{rateLimits:e,now:t}),(0,DY.jsx)(le,{sx:{mt:.5,opacity:.6},children:mze})]})}var FR=P(z(),1),LGn={display:"flex",alignItems:"center",ml:2,fontFamily:"monospace",fontSize:13},MGn={};function $1r({rateLimits:e,harnessRateLimits:t=MGn}){let r=B1r(e,t),n=r.every(s=>s.harness==="claude"),i=e,o=mze,a="Usage";return r.length>0&&n?(o=(0,FR.jsx)(F1r,{rateLimits:i}),a=(0,FR.jsx)(P0e,{rateLimits:i})):r.length>0&&(o=(0,FR.jsx)(N1r,{groups:r}),a=(0,FR.jsx)(E1r,{groups:r})),(0,FR.jsx)(lr,{title:o,children:(0,FR.jsx)(xn,{component:ys,to:"/usage",underline:"hover",color:"inherit",sx:LGn,children:a})})}var p0=P(z(),1),IGn={color:"inherit",mr:1.5};function z1r({reconnecting:e}){let{pending:t,error:r,clearError:n,restart:i}=xk("webserver",e);return(0,p0.jsxs)(p0.Fragment,{children:[(0,p0.jsx)(lr,{title:"Restart web server",children:(0,p0.jsx)("span",{children:(0,p0.jsx)(ir,{sx:IGn,disabled:t,onClick:i,children:t?(0,p0.jsx)(mo,{size:24}):(0,p0.jsx)(vge,{})})})}),(0,p0.jsx)(vu,{error:r,onClose:n})]})}var W1r=P(ge(),1);var H1r=P(ge(),1);function U1r(e){let t=Oi().palette.primary.main;No(Kn("focusRepoPicker").matches,(0,H1r.useCallback)(()=>bu({locate:()=>e.current?.querySelector("button")??null,focus:r=>r.focus()},t),[e,t]))}var NY=P(z(),1),DGn={width:240,ml:2};function V1r({repos:e,selected:t,onSelect:r}){let n=(0,W1r.useRef)(null);U1r(n);let{chords:i}=Kn("focusRepoPicker");return(0,NY.jsx)(le,{ref:n,sx:DGn,children:(0,NY.jsx)(Zee,{label:t?J1(t):"Select repo...",tooltip:(0,NY.jsx)(ed,{label:"Repo",chords:i}),children:o=>(0,NY.jsx)(Gmr,{repos:e,selected:t,onSelect:r,close:o})})})}var evr=P(ge(),1);var OY=P(ge(),1);function M0e(e){let[t,r]=(0,OY.useState)([]),[n,i]=(0,OY.useState)(!0),o=yr();return(0,OY.useEffect)(()=>{if(!e){r([]),i(!1);return}let a=!1;return i(!0),fetch(tn(`/api/pr-list?cwd=${encodeURIComponent(e)}`,o)).then(s=>s.json()).then(s=>{a||(r(Array.isArray(s?.prs)?s.prs:[]),i(!1))}).catch(()=>{a||(r([]),i(!1))}),()=>{a=!0}},[e,o]),{prs:t,loading:n}}var gze=P(z(),1);function yze({text:e}){return(0,gze.jsx)(le,{sx:{p:1.5},children:(0,gze.jsx)(Oe,{sx:{fontSize:13,color:"text.secondary"},children:e})})}var $R=P(z(),1);function G1r({pr:e,highlighted:t,onHover:r,onPick:n}){let i=Yge(t);return(0,$R.jsx)(fn,{ref:i,selected:t,onMouseDown:o=>o.preventDefault(),onMouseEnter:r,onClick:()=>n(e),sx:{alignItems:"flex-start",py:.75,whiteSpace:"normal"},children:(0,$R.jsxs)(Rt,{spacing:.25,sx:{minWidth:0},children:[(0,$R.jsxs)(Oe,{sx:{fontSize:13,lineHeight:1.3,fontWeight:500},children:[e.title,e.isDraft&&(0,$R.jsx)(sn,{label:"Draft",size:"small",variant:"outlined",sx:{ml:.75,height:18,fontSize:10,verticalAlign:"middle"}})]}),(0,$R.jsxs)(Oe,{sx:{fontSize:11,color:"text.secondary"},children:["#",e.number," \xB7 ",e.author," \xB7 ",Do(e.createdAt)]})]})})}var vze=P(z(),1);function q1r({prs:e,highlight:t,onHighlight:r,onPick:n}){return(0,vze.jsx)(Cp,{dense:!0,disablePadding:!0,sx:{maxHeight:200,overflowY:"auto"},children:e.map((i,o)=>(0,vze.jsx)(G1r,{pr:i,highlighted:o===t,onHover:()=>r(o),onPick:n},i.number))})}var Y1r=P(ge(),1);function j1r(e,t){let r=t.trim().toLowerCase();if(!r)return e;let n=r.replace(/^#/,"");return e.filter(i=>i.title.toLowerCase().includes(r)||i.author.toLowerCase().includes(r)||n!==""&&String(i.number).includes(n))}function K1r(e,t,r){let[n,i]=(0,Y1r.useState)(""),o=j1r(e,n),{highlight:a,setHighlight:s,onKeyDown:l}=Ak(o,n,t,r);return{filter:n,setFilter:i,filtered:o,highlight:a,setHighlight:s,onKeyDown:l,select:f=>{t(f),r()}}}var Vk=P(z(),1),X1r={...OP,left:"auto",width:320,maxHeight:"none",overflowY:"visible"};function Z1r({cwd:e,onPick:t,close:r}){let{prs:n,loading:i}=M0e(e),o=K1r(n,t,r);return i||n.length===0?(0,Vk.jsx)(an,{elevation:4,sx:X1r,children:(0,Vk.jsx)(yze,{text:i?"Loading open PRs\u2026":"No open PRs"})}):(0,Vk.jsxs)(an,{elevation:4,sx:X1r,children:[(0,Vk.jsx)(yB,{autoFocus:!0,value:o.filter,onChange:o.setFilter,onKeyDown:o.onKeyDown,placeholder:"Filter PRs..."}),o.filtered.length===0?(0,Vk.jsx)(yze,{text:"No PRs match"}):(0,Vk.jsx)(q1r,{prs:o.filtered,highlight:o.highlight,onHighlight:o.setHighlight,onPick:o.select})]})}var J1r=P(z(),1);function Q1r({cwd:e,onPick:t,close:r}){return(0,J1r.jsx)(Z1r,{cwd:e,onPick:t,close:r})}var Gk=P(z(),1);function tvr({cwd:e,disabled:t,onSelect:r}){let{prs:n,loading:i}=M0e(e),[o,a]=(0,evr.useState)(null);return i||n.length===0?null:(0,Gk.jsxs)(Gk.Fragment,{children:[(0,Gk.jsx)(Zee,{label:"prs",disabled:t,children:s=>(0,Gk.jsx)(Q1r,{cwd:e,onPick:a,close:s})}),o&&(0,Gk.jsx)(Ipe,{pr:o,onSelect:s=>{r(o,s),a(null)},onCancel:()=>a(null)})]})}var nvr=P(z(),1);function rvr({onStartRun:e,cwd:t}){let r=Gee(t);return!t||r.length===0?null:(0,nvr.jsx)(Wee,{runs:r,onSelect:n=>e(n,t)})}var BY=P(z(),1);function ivr({onCreateAssist:e,onStartRun:t}){let{selectedCwd:r,selectedNode:n}=$n();return(0,BY.jsxs)(Rt,{direction:"row",spacing:.5,sx:{alignItems:"center","&:not(:empty)":{ml:2}},children:[(0,BY.jsx)(tvr,{cwd:r,disabled:!r,onSelect:(i,o)=>e([...o,String(i.number)],r,{...PP(i),node:n})}),(0,BY.jsx)(rvr,{onStartRun:(i,o)=>t(i,o,void 0,void 0,n),cwd:r})]})}var Ud=P(z(),1),NGn={minHeight:48,pl:1,pr:14};function ovr({socket:e,selection:t}){let{collapsed:r,onToggleCollapsed:n}=rS();return(0,Ud.jsxs)(H_,{variant:"dense",disableGutters:!0,sx:NGn,children:[r&&(0,Ud.jsx)(ste,{collapsed:r,onToggleCollapsed:n}),(0,Ud.jsx)(z1r,{reconnecting:e.reconnecting}),(0,Ud.jsx)(b1r,{cwd:t.selectedCwd}),(0,Ud.jsx)(u1r,{}),(0,Ud.jsx)(V1r,{repos:t.repos,selected:t.selectedCwd,onSelect:t.setSelectedCwd}),(0,Ud.jsxs)(le,{sx:{display:"flex",alignItems:"center",ml:1},children:[(0,Ud.jsx)(Jee,{cwd:t.selectedCwd}),(0,Ud.jsx)(C1r,{cwd:t.selectedCwd}),(0,Ud.jsx)(S1r,{})]}),(0,Ud.jsx)(ivr,{onCreateAssist:e.createAssistSession,onStartRun:e.startRun}),(0,Ud.jsx)($1r,{rateLimits:e.rateLimits,harnessRateLimits:e.harnessRateLimits})]})}var I0e=P(ge(),1);function avr(){let[e,t]=(0,I0e.useState)(null);return(0,I0e.useEffect)(()=>{let r=!1;return(async()=>{try{let i=await(await fetch("/api/health")).json();!r&&typeof i?.nodeName=="string"&&t(i.nodeName)}catch{}})(),()=>{r=!0}},[]),e}var lvr=P(z(),1),OGn={lineHeight:"32px",bgcolor:"transparent"};function svr(){let e=avr();return e?(0,lvr.jsx)(D1e,{sx:OGn,children:e}):null}var cvr=P(z(),1),uvr=ut((0,cvr.jsx)("path",{d:"M20 5H4c-1.1 0-1.99.9-1.99 2L2 17c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m-9 3h2v2h-2zm0 3h2v2h-2zM8 8h2v2H8zm0 3h2v2H8zm-1 2H5v-2h2zm0-3H5V8h2zm9 7H8v-2h8zm0-4h-2v-2h2zm0-3h-2V8h2zm3 3h-2v-2h2zm0-3h-2V8h2z"}),"Keyboard");var fvr=P(z(),1),dvr=ut((0,fvr.jsx)("path",{d:"m12 16.5 4-4h-3v-9h-2v9H8zm9-13h-6v1.99h6v14.03H3V5.49h6V3.5H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2"}),"SystemUpdateAlt");var hvr=P(z(),1),pvr=ut((0,hvr.jsx)("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6"}),"Brightness4");var mvr=P(z(),1),gvr=ut((0,mvr.jsx)("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6m0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4"}),"Brightness7");var bze=P(z(),1);function yvr({mode:e}){return e==="dark"?(0,bze.jsx)(gvr,{fontSize:"small"}):(0,bze.jsx)(pvr,{fontSize:"small"})}var vvr=P(z(),1),bvr=ut((0,vvr.jsx)("path",{d:"m20.38 8.57-1.23 1.85a8 8 0 0 1-.22 7.58H5.07A8 8 0 0 1 15.58 6.85l1.85-1.23A10 10 0 0 0 3.35 19a2 2 0 0 0 1.72 1h13.85a2 2 0 0 0 1.74-1 10 10 0 0 0-.27-10.44zm-9.79 6.84a2 2 0 0 0 2.83 0l5.66-8.49-8.49 5.66a2 2 0 0 0 0 2.83"}),"Speed");var IB=P(z(),1);function xvr(){let e=zpe();return(0,IB.jsxs)(fn,{onClick:()=>$ft(!e),children:[(0,IB.jsx)(oT,{children:(0,IB.jsx)(bvr,{fontSize:"small"})}),(0,IB.jsx)(Sp,{children:e?"Hide render HUD":"Show render HUD"})]})}var el=P(z(),1);function Tvr({mode:e,restartLabel:t,updateLabel:r,onToggleColorMode:n,onShowShortcuts:i,onRestart:o,onUpdate:a}){return[(0,el.jsxs)(fn,{onClick:n,children:[(0,el.jsx)(oT,{children:(0,el.jsx)(yvr,{mode:e})}),(0,el.jsx)(Sp,{children:"Toggle dark mode"})]},"color-mode"),(0,el.jsx)(xvr,{},"render-hud"),(0,el.jsxs)(fn,{onClick:i,children:[(0,el.jsx)(oT,{children:(0,el.jsx)(uvr,{fontSize:"small"})}),(0,el.jsx)(Sp,{children:"Keyboard shortcuts"})]},"shortcuts"),(0,el.jsx)(no,{},"restart-divider"),(0,el.jsxs)(fn,{onClick:o,children:[(0,el.jsx)(oT,{children:(0,el.jsx)(Tee,{fontSize:"small"})}),(0,el.jsx)(Sp,{children:t})]},"restart"),(0,el.jsxs)(fn,{onClick:a,children:[(0,el.jsx)(oT,{children:(0,el.jsx)(dvr,{fontSize:"small"})}),(0,el.jsx)(Sp,{children:r})]},"update")]}var Svr=P(ge(),1);var wvr=P(z(),1);function Cvr({peer:e,onRestart:t,onClose:r}){let[n,i]=(0,Svr.useState)(!1);return(0,wvr.jsx)(vo,{title:`Restart ${e}?`,message:`Restarts the sessions daemon and web server on ${e}. Its sessions resume when the daemon is back. This page stays open.`,confirmLabel:"Restart",busy:n,autoFocusConfirm:!0,onConfirm:()=>{i(!0),t(e).finally(r)},onCancel:r})}function kvr(e){let t=new Map;for(let r of e){let n=t.get(r.group)??[];n.push(r),t.set(r.group,n)}return[...t].map(([r,n])=>({name:r,shortcuts:n}))}var BGn=Object.keys(TP);function _vr(){let e=SP();return kvr(BGn.map(t=>qT(t,e)))}var ap=P(z(),1),FGn={display:"flex",alignItems:"center",justifyContent:"space-between",pr:1},$Gn={display:"flex",alignItems:"center",justifyContent:"space-between",gap:2,py:.5};function Evr({onClose:e}){let t=_vr();return(0,ap.jsxs)(Ps,{open:!0,onClose:e,maxWidth:"xs",fullWidth:!0,"aria-labelledby":"shortcuts-dialog-title",children:[(0,ap.jsxs)(Il,{id:"shortcuts-dialog-title",sx:FGn,children:["Keyboard shortcuts",(0,ap.jsx)(ir,{size:"small","aria-label":"Close",onClick:e,children:(0,ap.jsx)(da,{fontSize:"small"})})]}),(0,ap.jsx)(Ml,{dividers:!0,children:t.map(r=>(0,ap.jsxs)(le,{component:"section",sx:{mb:1.5},children:[(0,ap.jsx)(Oe,{variant:"overline",color:"text.secondary",children:r.name}),r.shortcuts.map(n=>(0,ap.jsxs)(le,{sx:$Gn,children:[(0,ap.jsx)(Oe,{variant:"body2",children:n.label}),(0,ap.jsx)(Rt,{direction:"row",spacing:.5,children:(0,ap.jsx)(tee,{chords:n.chords})})]},n.label))]},r.name))})]})}var zR=P(z(),1);function Rvr({reconnecting:e,onClose:t}){let{pending:r,error:n,clearError:i,restart:o}=xk(aB.target,e);return(0,zR.jsxs)(zR.Fragment,{children:[(0,zR.jsx)(vo,{title:aB.label,message:aB.message,confirmLabel:"Restart",busy:r,autoFocusConfirm:!0,onConfirm:()=>{o()},onCancel:t}),(0,zR.jsx)(vu,{error:n,onClose:i})]})}var Pvr=P(z(),1);function zGn(e){return e?{title:`Update assist on ${e}?`,message:`This runs 'assist update' on ${e} as a new session, then restarts its web server. This page stays open.`}:{title:"Update assist",message:"This starts a new session running 'assist update'. Its output will appear in the terminal."}}function Avr({peer:e,onConfirm:t,onClose:r}){return(0,Pvr.jsx)(vo,{...zGn(e),confirmLabel:"Update",onConfirm:()=>{t(),r()},onCancel:r})}var m0=P(ge(),1);async function HGn(e){try{let t=await fetch(`/api/node-doctor?link=${encodeURIComponent(e)}`);return t.ok?(await t.json()).hop:null}catch{return null}}async function Lvr(e,t){let r=await HGn(e);if(!r)return t;let n=r.remediation?` \u2014 ${r.remediation}`:"";return`${t}: ${r.hop} hop failed: ${r.error}${n}`}var $2=P(ge(),1);function Mvr(e){let{nodes:t}=Bu(),[r,n]=(0,$2.useState)(null),i=(0,$2.useRef)(!1),o=r?t?.links.find(l=>l.name===r.peer):void 0;(0,$2.useEffect)(()=>{if(!(!r||!o)){if(o.state!=="connected"){i.current=!0;return}i.current&&(n(null),e(r.describe(r.peer,o.peerVersion)))}},[r,o,e]);let a=(0,$2.useCallback)((l,u)=>{i.current=!1,n({peer:l,describe:u})},[]),s=(0,$2.useCallback)(()=>n(null),[]);return{watch:a,stop:s}}var UGn=9e4;function D0e(){let[e,t]=(0,m0.useState)(null),[r,n]=(0,m0.useState)(null),i=(0,m0.useRef)(void 0),o=(0,m0.useCallback)(f=>{clearTimeout(i.current),t(f)},[]),{watch:a,stop:s}=Mvr(o);(0,m0.useEffect)(()=>()=>clearTimeout(i.current),[]);let l=(0,m0.useCallback)(async(f,d)=>{n(await Lvr(f,d))},[]);return{requestThenAwait:(0,m0.useCallback)(async(f,d,h,p)=>{let m;try{m=await h()}catch{}return m?.ok?(a(f,p),clearTimeout(i.current),i.current=setTimeout(()=>{s(),l(f,`${f} did not come back`)},UGn),!0):(await l(f,`${d} failed (${await oB(m)})`),!1)},[l,a,s]),back:e,clearBack:()=>t(null),error:r,clearError:()=>n(null)}}var WGn=(e,t)=>t?`${e} is back (v${t})`:`${e} is back`;function Ivr(){let{requestThenAwait:e,...t}=D0e();return{restart:n=>e(n,`Restart ${n}`,()=>bk("both",n),WGn),...t}}var FY=P(ge(),1);var g0=P(ge(),1);function Dvr(e){return e.commandType==="assist"&&e.assistArgs?.[0]==="update"&&e.status==="done"}function N0e(e,t,r){let[n,i]=(0,g0.useState)(!1),[o,a]=(0,g0.useState)(!1),s=(0,g0.useRef)(!1),l=(0,g0.useRef)(e);l.current=e;let u=(0,g0.useRef)(new Set),f=(0,g0.useCallback)(()=>{s.current=!1,a(!1),u.current=new Set(l.current.filter(Dvr).map(d=>d.id)),i(!0)},[]);return(0,g0.useEffect)(()=>{if(!n||o)return;if(t){s.current=!0;return}if(!s.current)return;e.some(h=>Dvr(h)&&h.node===r&&!u.current.has(h.id))&&a(!0)},[n,o,t,e,r]),{arm:f,completed:o}}var Nvr=(e,t)=>t?`${e} updated to v${t}`:`${e} updated`;function VGn(e){return fetch(`/api/self-update?node=${encodeURIComponent(e)}`,{method:"POST"})}function Ovr(e){let{nodes:t}=Bu(),{launchAssist:r}=$l(),{requestThenAwait:n,...i}=D0e(),[o,a]=(0,FY.useState)(null),[s,l]=(0,FY.useState)(),u=m=>t?.links.find(g=>g.name===m)?.state,{arm:f,completed:d}=N0e(e,u(s)!=="connected",s);(0,FY.useEffect)(()=>{!d||!s||(l(void 0),n(s,`Restart ${s}'s web server`,()=>bk("webserver",s),Nvr))},[d,s,n]);let h=async m=>{a(`Updating assist on ${m}\u2026`),await n(m,`Update ${m}`,()=>VGn(m),Nvr),a(null)};return{update:m=>{if(u(m)!=="connected"){h(m);return}l(m),f(),r(["update"],void 0,{node:m})},progress:o,...i}}var y0=P(z(),1);function Bvr({dialog:e,peer:t,sessions:r,reconnecting:n,onClose:i}){let{launchAssist:o,armUpdateReload:a}=$l(),s=Ivr(),l=Ovr(r);return(0,y0.jsxs)(y0.Fragment,{children:[e==="shortcuts"&&(0,y0.jsx)(Evr,{onClose:i}),e==="restart"&&t&&(0,y0.jsx)(Cvr,{peer:t,onRestart:s.restart,onClose:i}),e==="restart"&&!t&&(0,y0.jsx)(Rvr,{reconnecting:n,onClose:i}),e==="update"&&(0,y0.jsx)(Avr,{peer:t,onConfirm:()=>{if(t){l.update(t);return}a(),o(["update"])},onClose:i}),(0,y0.jsx)(oY,{notices:s}),(0,y0.jsx)(oY,{notices:l})]})}var Fvr=P(z(),1),$vr=ut((0,Fvr.jsx)("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6"}),"Settings");var zvr=P(ge(),1);var $Y=P(z(),1);function Hvr(){let e=Xi(),t=(0,zvr.useCallback)(()=>e("/config"),[e]),{matches:r,chords:n}=Kn("openConfig");return No(r,t),(0,$Y.jsx)(lr,{describeChild:!0,title:(0,$Y.jsx)(ed,{label:"Config",chords:n}),children:(0,$Y.jsx)(ir,{size:"small",sx:{color:"inherit"},"aria-label":"Config",onClick:t,children:(0,$Y.jsx)($vr,{fontSize:"small"})})})}var Uvr=P(z(),1),Wvr=ut((0,Uvr.jsx)("path",{d:"M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z"}),"Menu");var O0e=P(ge(),1);var zY=P(z(),1);function Vvr({open:e,onOpen:t}){let r=(0,O0e.useRef)(null),{matches:n,chords:i}=Kn("openMenu");return No(n,(0,O0e.useCallback)(()=>{r.current&&t(r.current)},[t])),(0,zY.jsx)(lr,{describeChild:!0,title:(0,zY.jsx)(ed,{label:"Menu",chords:i}),children:(0,zY.jsx)(ir,{ref:r,onClick:o=>t(o.currentTarget),size:"small",sx:{color:"inherit"},"aria-label":"Open menu","aria-haspopup":"true","aria-expanded":e?"true":void 0,children:(0,zY.jsx)(Wvr,{fontSize:"small"})})})}var xze=P(z(),1),Gvr=ut([(0,xze.jsx)("path",{d:"M12 5.99 19.53 19H4.47zM12 2 1 21h22z"},"0"),(0,xze.jsx)("path",{d:"M13 16h-2v2h2zm0-6h-2v5h2z"},"1")],"WarningAmber");var Tze=P(z(),1);function qvr(){let e=b0e();return!e||e===Fk?null:(0,Tze.jsx)(lr,{title:`Daemon is running v${e}, but this page was served by v${Fk}. Restart the daemon to match.`,children:(0,Tze.jsx)(Gvr,{fontSize:"small",color:"warning","aria-label":"Version mismatch"})})}var jvr=e=>({display:"inline-flex",alignItems:"center",gap:.75,px:1,py:.25,borderRadius:999,fontSize:12,lineHeight:1.5,color:"inherit",opacity:e?1:.55,bgcolor:e?"rgba(255,255,255,0.16)":"transparent",transition:"opacity .2s ease, background-color .2s ease","&:hover, &:focus-visible":{opacity:1,bgcolor:"rgba(255,255,255,0.12)"},"& .ready-dot":{width:8,height:8,borderRadius:"50%",bgcolor:"#ffb74d",boxShadow:"0 0 0 2px rgba(0,0,0,.15)"},"& .ready-count":{fontWeight:500}});var ov=P(z(),1);function Yvr(){let{entries:e}=Z9();if(!Fk)return null;let t=e.filter(yge).length;return(0,ov.jsxs)(ov.Fragment,{children:[(0,ov.jsxs)(Dn,{component:ys,to:"/updates","aria-label":t?`Updates: ${t} node${t>1?"s have":" has"} an update ready`:"Updates",sx:jvr(t>0),children:[t>0&&(0,ov.jsx)("span",{className:"ready-dot","aria-hidden":!0}),(0,ov.jsxs)("span",{children:["v",Fk]}),t>0&&(0,ov.jsxs)("span",{className:"ready-count",children:[t," ready"]})]}),(0,ov.jsx)(qvr,{})]})}var DB=P(z(),1);function Kvr({open:e,onOpen:t}){return(0,DB.jsxs)(le,{sx:{position:"fixed",top:8,right:16,zIndex:r=>r.zIndex.drawer+2,display:"flex",alignItems:"center",gap:.5,color:"inherit"},children:[(0,DB.jsx)(Yvr,{}),(0,DB.jsx)(Hvr,{}),(0,DB.jsx)(Vvr,{open:e,onOpen:t})]})}var HR=P(ge(),1);var Zvr=P(ge(),1);var Xvr=!0,GGn=new Set(["openMenu","cycleCards"]),qGn=Object.keys(TP).filter(e=>!GGn.has(e));function Qvr(e,t){let r=SP();(0,Zvr.useEffect)(()=>{if(!e)return;let n=i=>{qGn.some(o=>qT(o,r).matches(i))&&t()};return globalThis.addEventListener("keydown",n,Xvr),()=>globalThis.removeEventListener("keydown",n,Xvr)},[e,t,r])}function Jvr(){let[e,t]=(0,HR.useState)(null),[r,n]=(0,HR.useState)(!0),i=!!e,o=(0,HR.useCallback)(()=>t(null),[]),a=(0,HR.useCallback)(s=>{n(!0),t(s)},[]);return Qvr(i,(0,HR.useCallback)(()=>{n(!1),t(null)},[])),{anchorEl:e,open:i,close:o,openAt:a,restoreFocus:r}}var HY=P(ge(),1);function ebr(e){No(Kn("shortcutsSheet").matches,e)}function tbr(){let[e,t]=(0,HY.useState)(null);ebr((0,HY.useCallback)(()=>t("shortcuts"),[]));let r=(0,HY.useCallback)(()=>t(null),[]);return{dialog:e,showDialog:t,closeDialog:r}}function rbr(){let{nodes:e,selected:t}=Bu();return e&&t&&t!==e.local?t:void 0}function nbr(e){return{restartLabel:e?`Restart ${e}`:aB.label,updateLabel:e?`Update assist on ${e}`:"Update assist"}}var z2=P(z(),1);function ibr({mode:e,toggle:t,sessions:r,reconnecting:n}){let{anchorEl:i,open:o,close:a,openAt:s,restoreFocus:l}=Jvr(),{dialog:u,showDialog:f,closeDialog:d}=tbr(),h=rbr(),p=m=>()=>{a(),f(m)};return(0,z2.jsxs)(z2.Fragment,{children:[(0,z2.jsx)(Kvr,{open:o,onOpen:s}),(0,z2.jsxs)(Dl,{anchorEl:i,open:o,onClose:a,disableRestoreFocus:!l,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[(0,z2.jsx)(svr,{}),Tvr({mode:e,...nbr(h),onToggleColorMode:()=>{t(),a()},onShowShortcuts:p("shortcuts"),onRestart:p("restart"),onUpdate:p("update")})]}),(0,z2.jsx)(Bvr,{dialog:u,peer:h,sessions:r,reconnecting:n,onClose:d})]})}var sbr=P(ge(),1);var abr=P(z(),1);function obr({conflict:e,onConfirm:t,onCancel:r}){let{name:n,cwd:i,port:o,group:a}=e.existing,s=$p(i),l=o?` on port ${o}`:"",u=s?` in ${s}`:"",f=a?`, holding the ${a} server slot`:"";return(0,abr.jsx)(vo,{title:a?`Replace the ${a} server?`:"Replace running server?",message:`"${n}" is already serving${l}${u}${f}. Replace it \u2014 stop the running server and start this one?`,confirmLabel:"Replace",confirmColor:"error",onConfirm:t,onCancel:r})}var B0e=P(z(),1);function lbr({socket:e,children:t}){let{serverConflict:r,clearServerConflict:n,retrySession:i,stopSession:o,startRun:a,discardSession:s}=e,l=(0,sbr.useMemo)(()=>({onStop:o,onStart:a,onDiscard:s}),[o,a,s]),u=()=>{r&&(r.runName?a(r.runName,r.cwd,!0,r.launchedFrom,r.node):r.sessionId&&i(r.sessionId,!0),n())};return(0,B0e.jsxs)(uTe.Provider,{value:l,children:[t,r&&(0,B0e.jsx)(obr,{conflict:r,onConfirm:u,onCancel:n})]})}var cbr=new Map;function ubr(e,t){if(!zre())return;let r=cbr.get(e);if(cbr.set(e,t),!!r)for(let[n,i]of Object.entries(t))Object.is(i,r[n])||oy(`\u0394 ${e}.${n}`)}var $0e=P(ge(),1);function fbr(e,t,r){if(!t)return null;let n=e[t];if(!n)return null;let i=r.find(o=>o.id===n);return!i||zp(i)!==t?null:n}function av(e,t,r){if(e)return t.find(n=>n.id===e)??r.find(n=>n.sessionId===e)}function F0e(){let{pathname:e}=Io();return e.startsWith("/backlog")||e.startsWith("/usage")}function dbr({selectedCwd:e,selectedCardId:t,sessions:r,history:n,activeByRepo:i,onSelect:o}){let a=av(t,r,n),s=a&&zp(a),l=!!(s&&s===e),u=fbr(i,e,r),f=(0,$0e.useRef)(t),d=F0e();(0,$0e.useEffect)(()=>{let h=f.current!==t&&!!s;f.current=t,!(d||h||l||!u)&&o(u)},[t,s,l,u,o,d])}var U0e=P(ge(),1);function hbr(e,t,r,n){return av(e,t,r)?.cwd||n}function pbr(e,t,r,n){let i=hbr(e,t,r,n.cwd),o=av(e,t,r);return{cwd:i,node:o?.cwd?o.node:n.node}}function mbr(e,t){let r=new Set,n=new Set,i=[];for(let o of t){if(o.cwdMissing)continue;let a=HT(o),s=zp(o);!a||!s||r.has(a)||n.has(s)||(r.add(a),n.add(s),i.push(s))}return e&&!r.has(vP(e,t))&&!n.has(e)&&i.unshift(e),i}var sp="";function jGn(e){let t=new Map([[sp,[]]]);for(let r of e){let n=r.node??sp;t.set(n,[...t.get(n)??[],r])}return t}function gbr(e,t){var n;let r=new Map;for(let[i,o]of jGn(t)){let a=i===sp?e:"";for(let s of mbr(a,o)){let l=vP(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 ybr(e,t){return e.clones[t]??e.clones[sp]??Object.values(e.clones)[0]}function UY(e,t){return e.find(r=>Object.values(r.clones).includes(t))}function NB(e,t){return!e||e===t?sp:e}var Sze=P(ge(),1);function vbr(e,t){let r=(0,Sze.useCallback)((i,o)=>{let a=NB(o,t),s=UY(e,i);return s?s.clones[a]:a===sp?i:void 0},[e,t]),n=(0,Sze.useCallback)(i=>UY(e,i)?.origin,[e]);return{cloneOn:r,originOf:n}}var z0e=P(ge(),1);function bbr(e,t,r,n){let i=(0,z0e.useRef)(e);(0,z0e.useEffect)(()=>{if(i.current===e)return;i.current=e;let o=UY(t,r)?.clones[e];o&&n(o,e)},[e,t,r,n])}var OB=P(ge(),1);function xbr(e,t,r){if(t.node!==void 0)return t.node;let n=new Set(e.flatMap(i=>Object.entries(i.clones).filter(([,o])=>o===t.cwd).map(([o])=>o)));return n.has(r)?r:n.size===0||n.has(sp)?sp:[...n][0]}function Tbr(e,t,r,n){let[i,o]=(0,OB.useState)({cwd:e}),a=(0,OB.useCallback)((l,u)=>o({cwd:l,node:u}),[]);(0,OB.useEffect)(()=>{e&&!i.cwd&&o({cwd:e})},[e,i.cwd]);let s=xbr(t,{cwd:i.cwd,node:i.node===void 0?void 0:NB(i.node,n)},r);return{selectedCwd:i.cwd,selectedNode:s||void 0,setSelectedCwd:a}}var Sbr=P(ge(),1);function H0e(e,t,r){let n=av(e,t,r);return n&&zp(n)}function Cbr(e,t,r,n){let i=H0e(e,t,r),o=av(e,t,r)?.node??sp;(0,Sbr.useEffect)(()=>{i&&n(i,o)},[i,o,n])}function wbr(e,t,r,n,i){let o=i.nodes?.local,a=NB(i.selected,o),s=(0,U0e.useMemo)(()=>gbr(e,t),[e,t]),{selectedCwd:l,selectedNode:u,setSelectedCwd:f}=Tbr(e,s,a,o);Cbr(r,n,t,f),bbr(a,s,l,f);let{cloneOn:d,originOf:h}=vbr(s,o),p=(0,U0e.useMemo)(()=>s.map(y=>ybr(y,a)),[s,a]),{cwd:m,node:g}=pbr(r,n,t,{cwd:l,node:u});return(0,U0e.useMemo)(()=>({repos:p,selectedCwd:l,selectedNode:u,worktreeCwd:m,worktreeNode:g,setSelectedCwd:f,cloneOn:d,originOf:h}),[p,l,u,m,g,f,d,h])}var V0e=P(ge(),1);var qk=P(ge(),1);var kbr=P(ge(),1),W0e="assist:reloaded-after-update";function _br(e){(0,kbr.useEffect)(()=>{globalThis.sessionStorage?.getItem(W0e)&&(globalThis.sessionStorage.removeItem(W0e),e({message:"Reloaded after updating assist",sessionId:null}))},[e])}function Ebr(e,t,r,n){let{arm:i,completed:o}=N0e(e,t),a=(0,qk.useRef)(!1),s=(0,qk.useCallback)(()=>{globalThis.sessionStorage?.setItem(W0e,"1")},[]),{error:l,restart:u}=xk("webserver",t,s);return _br(r),(0,qk.useEffect)(()=>{l&&n(l)},[l,n]),(0,qk.useEffect)(()=>{!o||a.current||(a.current=!0,u())},[o,u]),{armUpdateReload:(0,qk.useCallback)(()=>{a.current=!1,i()},[i])}}function Rbr(e){let{armUpdateReload:t}=Ebr(e.sessions,e.reconnecting,e.setSuccess,e.setError),r=(0,V0e.useMemo)(()=>({launchAssist:e.createAssistSession,launchAgentInStream:e.createSessionInStream,resumeSession:e.resumeSession,armUpdateReload:t}),[e.createAssistSession,e.createSessionInStream,e.resumeSession,t]),n=Xi(),i=(0,V0e.useCallback)(o=>{e.selectSession(o),n("/sessions"),e.clearSuccess()},[n,e.selectSession,e.clearSuccess]);return{launch:r,viewLaunchedSession:i}}var Abr=P(ge(),1);function Pbr(e,t,r,n){let i=H0e(e,t,r);(0,Abr.useEffect)(()=>{e&&i&&n({type:"set-active",cwd:i,sessionId:e})},[e,i,n])}var G0e=P(ge(),1);function Lbr(e,t){let r=(0,G0e.useRef)(new Map);(0,G0e.useEffect)(()=>{let n=new Set;for(let{id:i,status:o}of e)n.add(i),r.current.get(i)!==o&&(r.current.set(i,o),console.debug(`[sessions] render session ${i} status=${o}`),t({type:"ui-status",sessionId:i,status:o}));for(let i of r.current.keys())n.has(i)||r.current.delete(i)},[e,t])}var BB=P(ge(),1),Mbr="assist.sessions.node";function YGn(){try{return localStorage.getItem(Mbr)}catch{return null}}function KGn(e){try{localStorage.setItem(Mbr,e)}catch{}}function Ibr(e){let[t,r]=(0,BB.useState)(YGn),n=(0,BB.useCallback)(i=>{r(i),KGn(i)},[]);return(0,BB.useMemo)(()=>{let i=e?[e.local,...e.links.map(o=>o.name)]:[];return{nodes:e,names:i,visible:i.length>1,selected:t&&i.includes(t)?t:e?.local,select:n}},[e,t,n])}var Nbr=P(ge(),1);function Dbr(e){let t=e;if(t.type==="create")return{cwd:t.cwd,title:t.prompt?.trim()||(t.design?"New design session":"New session"),node:t.node};if(t.type==="create-assist"){let r=t.title?.trim();return{cwd:t.cwd,title:r||"New session",named:!!r,node:t.node}}return null}function Obr(e,t){return(0,Nbr.useCallback)(r=>{let n=e.current;n?.readyState===WebSocket.OPEN&&n.send(JSON.stringify(r));let i=Dbr(r);i&&t(i)},[e,t])}var sv=P(ge(),1);function q0e(e,t,r,n,i){e({type:"create",prompt:r||void 0,cwd:n,...t,...i?{node:i}:{}})}function Bbr(e){return(t,r,n)=>q0e(e,{design:!0},t,r,n)}function Fbr(e){return(t,r,n,i)=>q0e(e,{harness:t},r,n,i)}function $br(e){return(t,r,n)=>q0e(e,{auto:!0},t,r,n)}function zbr(e){return(t,r,n)=>e({type:"create-assist",assistArgs:t,cwd:r,...n})}function Hbr(e){return(t,r,n,i,o)=>e({type:"resume",sessionId:t,cwd:r,name:n,harness:i,node:o})}function Ubr(e,t){return(r,n)=>{t.delete(r),e({type:"retry",sessionId:r,replace:n})}}function Wbr(e,t){return r=>{t.delete(r),e({type:"restart",sessionId:r})}}function Vbr(e,t){return r=>{e({type:"dismiss",sessionId:r}),t.delete(r)}}function Gbr(e,t){return r=>{e({type:"discard",sessionId:r}),t.delete(r)}}function qbr(e){return t=>e({type:"stop",sessionId:t})}function jbr(e){return(t,r,n,i,o)=>e({type:"create-run",runName:t,cwd:r,replace:n,launchedFrom:i,node:o})}function Ybr(e){return(t,r)=>e({type:"set-autorun",sessionId:t,enabled:r})}function Kbr(e){return(t,r)=>e({type:"set-autoadvance",sessionId:t,enabled:r})}function Xbr(e){return(t,r)=>e({type:"set-starred",sessionId:t,starred:r})}function Zbr(e){return(t,r)=>e({type:"input",sessionId:t,data:r,viewerId:iY})}function Qbr(e){return(t,r,n,i)=>e({type:"resize",sessionId:t,cols:r,rows:n,viewerId:iY,claim:i})}function Jbr(e,t){return(r,n)=>{let i=e.get(r);return i&&n(i),t.set(r,n),()=>t.delete(r)}}function exr(e){return(t,r,n,i)=>e({type:"pr-decision",sessionId:t,requestId:r,decision:n,...i})}var UR=P(ge(),1);function txr(e){return(t,r,n)=>e({type:"create",prompt:r||void 0,cwd:n,joinSessionId:t,auto:!0})}function rxr(e){return{createSession:(0,UR.useMemo)(()=>$br(e),[e]),createSessionInStream:(0,UR.useMemo)(()=>txr(e),[e]),createDesignSession:(0,UR.useMemo)(()=>Bbr(e),[e]),createHarnessSession:(0,UR.useMemo)(()=>Fbr(e),[e]),createAssistSession:(0,UR.useMemo)(()=>zbr(e),[e]),resumeSession:(0,UR.useMemo)(()=>Hbr(e),[e])}}var WY=P(ge(),1);function nxr(e,t){let r=(0,WY.useCallback)((a,s)=>{Ubr(e,t.current)(a,s)},[e,t]),n=(0,WY.useCallback)(a=>{Wbr(e,t.current)(a)},[e,t]),i=(0,WY.useCallback)(a=>{Vbr(e,t.current)(a)},[e,t]),o=(0,WY.useCallback)(a=>{Gbr(e,t.current)(a)},[e,t]);return{retrySession:r,restartSession:n,dismissSession:i,discardSession:o}}function ixr(e,t,r){let n={...rxr(e),sendInput:(0,sv.useMemo)(()=>Zbr(e),[e]),sendResize:(0,sv.useMemo)(()=>Qbr(e),[e]),sendPrDecision:(0,sv.useMemo)(()=>exr(e),[e]),setAutoRun:(0,sv.useMemo)(()=>Ybr(e),[e]),setAutoAdvance:(0,sv.useMemo)(()=>Kbr(e),[e]),setStarred:(0,sv.useMemo)(()=>Xbr(e),[e]),stopSession:(0,sv.useMemo)(()=>qbr(e),[e]),startRun:(0,sv.useMemo)(()=>jbr(e),[e])},i=(0,sv.useMemo)(()=>Jbr(t.current,r.current),[t,r]);return{...n,...nxr(e,t),onOutput:i}}var VY=P(ge(),1);function oxr(e,t,r){let n=(0,VY.useCallback)(s=>{r(s),e({type:"fetch-transcript",sessionId:s})},[e,r]),i=(0,VY.useCallback)(s=>e({type:"fetch-user-messages",sessionId:s}),[e]),o=(0,VY.useCallback)(()=>{r(null)},[r]),a=(0,VY.useCallback)(s=>{r(null),t(s)},[t,r]);return{viewTranscript:n,fetchUserMessages:i,clearTranscript:o,selectSession:a}}var Kk=P(ge(),1);function axr(e,t){let r=new Set(t.map(i=>i.id)),n=null;for(let i of Object.values(e))r.has(i)&&(n=i);return n}var lxr=P(ge(),1);function sxr(e,t,r=null){return t!==null?e.some(n=>n.id===t)?t:e[0]?.id??null:r&&e.some(n=>n.id===r)?r:e[0]?.id??null}function cxr(e,t,r){let n=F0e();(0,lxr.useEffect)(()=>{if(n){t(null);return}t(i=>sxr(e,i,r))},[e,t,r,n])}var j0e=P(ge(),1);function uxr(){let[e,t]=(0,j0e.useState)({}),[r,n]=(0,j0e.useState)(null),[i,o]=(0,j0e.useState)(null);return{activeByRepo:e,setActiveByRepo:t,daemonVersion:r,setDaemonVersion:n,nodes:i,setNodes:o}}var v0=P(ge(),1);function fxr(e,t){if(!t.some(n=>e.has(n)))return e;let r=new Set(e);for(let n of t)r.delete(n);return r}function dxr(e,t){let r=[];for(let n of t){let i=e.get(n.id);i!==void 0&&i!==n.startedAt&&r.push(n.id)}return r}function hxr(e,t){return t.filter(r=>r.commandType==="run"&&e.get(r.id)!==r.startedAt).map(r=>r.id)}var XGn=1500;function pxr(){let[e,t]=(0,v0.useState)(new Set),r=(0,v0.useRef)(new Map),n=(0,v0.useRef)(new Map),i=(0,v0.useCallback)(s=>{t(l=>l.has(s)?l:new Set(l).add(s))},[]),o=(0,v0.useCallback)(s=>{let l=n.current;for(let u of s)clearTimeout(l.get(u)),l.set(u,setTimeout(()=>{l.delete(u),i(u)},XGn))},[i]);(0,v0.useEffect)(()=>{let s=n.current;return()=>{for(let l of s.values())clearTimeout(l)}},[]);let a=(0,v0.useCallback)(s=>{let l=dxr(r.current,s),u=hxr(r.current,s);r.current=new Map(s.map(f=>[f.id,f.startedAt])),l.length&&t(f=>fxr(f,l)),o(u)},[o]);return{initialized:e,markInitialized:i,syncSessions:a}}var jk=P(ge(),1);function mxr(){let[e,t]=(0,jk.useState)(null),[r,n]=(0,jk.useState)(null),[i,o]=(0,jk.useState)(null),a=(0,jk.useCallback)(()=>t(null),[]),s=(0,jk.useCallback)(()=>n(null),[]),l=(0,jk.useCallback)(()=>o(null),[]);return{error:e,setError:t,clearError:a,success:r,setSuccess:n,clearSuccess:s,serverConflict:i,setServerConflict:o,clearServerConflict:l}}var lv=P(ge(),1);function gxr(e,t){return[...e,{...t,status:"launching"}]}function Y0e(e){return e.find(t=>t.status==="launching")}function yxr(e){let t=Y0e(e);return t?e.filter(r=>r.id!==t.id):e}function vxr(e,t){let r=Y0e(e);return r?Cze(e,r.id,t):e}function Cze(e,t,r){return e.map(n=>n.id===t&&n.status==="launching"?{...n,status:"error",error:r}:n)}function bxr(e,t){return e.filter(r=>r.id!==t)}var xxr=P(ge(),1);var ZGn=6e4,QGn="Launch timed out \u2014 the session did not start.";function Txr(e,t){(0,xxr.useEffect)(()=>{let r=e.filter(i=>i.status==="launching");if(r.length===0)return;let n=r.map(i=>setTimeout(()=>t(o=>Cze(o,i.id,QGn)),Math.max(0,ZGn-(Date.now()-i.startedAt))));return()=>n.forEach(clearTimeout)},[e,t])}function Sxr(){let[e,t]=(0,lv.useState)([]),r=(0,lv.useRef)([]),n=(0,lv.useCallback)(l=>{r.current=l(r.current),t(r.current)},[]),i=(0,lv.useCallback)(l=>{n(u=>gxr(u,{id:crypto.randomUUID(),startedAt:Date.now(),...l}))},[n]),o=(0,lv.useCallback)(()=>{let l=Y0e(r.current);return n(yxr),l?.named?l.title:void 0},[n]),a=(0,lv.useCallback)(l=>n(u=>vxr(u,l)),[n]),s=(0,lv.useCallback)(l=>n(u=>bxr(u,l)),[n]);return Txr(e,n),{pendingLaunches:e,addPendingLaunch:i,resolvePendingLaunch:o,failPendingLaunch:a,dismissPendingLaunch:s}}var GY=P(ge(),1);function Cxr(){let[e,t]=(0,GY.useState)(null),[r,n]=(0,GY.useState)({}),i=(0,GY.useCallback)((o,a)=>{o!=="claude"&&n(s=>({...s,[o]:a}))},[]);return{rateLimits:e,setRateLimits:t,harnessRateLimits:r,setHarnessRateLimits:i}}var wxr=P(ge(),1);function kxr(e,t){return(0,wxr.useCallback)(r=>{e(r),t(r)},[e,t])}var K0e=P(ge(),1);function _xr(){let[e,t]=(0,K0e.useState)(null),[r,n]=(0,K0e.useState)(null),[i,o]=(0,K0e.useState)(null);return{transcript:e,setTranscript:t,viewingTranscriptSessionId:r,setViewingTranscriptSessionId:n,userMessages:i,setUserMessages:o}}var Yk=P(ge(),1);function Exr(e,t){let r=e.sessionId;t.buffers.current?.delete(r),t.handlers.current?.get(r)?.("\x1Bc")}function Rxr(e,t){let r=e.sessionId,n=t.resolvePendingLaunch();t.setViewingTranscriptSessionId(null),t.setActiveId(r),e.isNew&&t.setSuccess({message:n?`Started ${n}`:"New session started",sessionId:r})}function Axr(e,t){let r=e.message;t.setError(r),t.failPendingLaunch(r)}function Pxr(e,t){let r=e.rateLimits,n=e.harness;!n||n==="claude"?t.setRateLimits(r):t.setHarnessRateLimits?.(n,r)}function Lxr(e,t){t.setNodes({local:e.local,links:e.links??[]})}function Mxr(e,t){t.setSuccess({message:e.message,sessionId:null})}function Ixr(e,t){let r=e.sessionId,n=t.buffers.current?.get(r)??"";t.buffers.current?.set(r,n+e.data),t.handlers.current?.get(r)?.(e.data),t.markInitialized(r)}function Dxr(e,t){t.setServerConflict({existing:e.existing,runName:e.runName,cwd:e.cwd,sessionId:e.sessionId,launchedFrom:e.launchedFrom,node:e.node})}function Nxr(e,t){let r=e.sessions;t.setSessions(r),e.cwd&&t.setCurrentCwd(e.cwd),t.setActiveByRepo(e.active??{})}var JGn={sessions:Nxr,created:Rxr,history:(e,t)=>t.setHistory(e.sessions),transcript:(e,t)=>t.setTranscript({sessionId:e.sessionId,messages:e.messages}),"user-messages":(e,t)=>t.setUserMessages({sessionId:e.sessionId,messages:e.messages}),hello:(e,t)=>t.setDaemonVersion(e.version),nodes:Lxr,error:Axr,notice:Mxr,"run-conflict":Dxr,limits:Pxr,clear:Exr,output:Ixr};function Oxr(e,t){JGn[e.type]?.(e,t)}function Bxr(e,t={}){let r=location.protocol==="https:"?"wss:":"ws:",n=new WebSocket(`${r}//${location.host}/ws`);return n.onopen=()=>{t.onOpen?.(),n.send(JSON.stringify({type:"hello"})),n.send(JSON.stringify({type:"history"}))},n.onmessage=i=>{Oxr(JSON.parse(i.data),e)},n.onclose=()=>t.onClose?.(),n}function Fxr(e,t,r,n){let i=!1,o,a=0,s=!1,l=()=>{i||t(Bxr(e,{onOpen:()=>{s&&r(),s=!1,n(!1),a=0},onClose:()=>{if(i)return;s=!0,n(!0);let u=Math.min(300*2**a,2e3);a+=1,o=setTimeout(l,u)}}))};return l(),()=>{i=!0,o&&clearTimeout(o)}}function $xr(e){let t=(0,Yk.useRef)(null),[r,n]=(0,Yk.useState)(!1),{handleSessions:i,markInitialized:o,buffers:a,handlers:s}=e;(0,Yk.useEffect)(()=>{let u=()=>{a.current?.clear();let d=s.current;if(d)for(let h of d.values())h("\x1Bc")},f=Fxr({...e,setSessions:i},d=>{t.current=d},u,n);return()=>{f(),t.current?.close()}},[i,o,a,s]);let l=(0,Yk.useCallback)(()=>{let u=t.current;u?.readyState===WebSocket.OPEN&&u.send(JSON.stringify({type:"history"}))},[]);return{wsRef:t,requestHistory:l,reconnecting:r}}function zxr(){let[e,t]=(0,Kk.useState)([]),[r,n]=(0,Kk.useState)([]),[i,o]=(0,Kk.useState)(null),a=uxr(),s=_xr(),[l,u]=(0,Kk.useState)(""),f=mxr(),d=Sxr(),h=Cxr(),{initialized:p,markInitialized:m,syncSessions:g}=pxr(),y=(0,Kk.useRef)(new Map),v=(0,Kk.useRef)(new Map),b=kxr(g,t),{wsRef:x,requestHistory:S,reconnecting:C}=$xr({handleSessions:b,setHistory:n,setActiveId:o,...a,...s,setCurrentCwd:u,...f,...d,...h,markInitialized:m,buffers:y,handlers:v});return cxr(e,o,axr(a.activeByRepo,e)),{sessions:e,history:r,activeId:i,setActiveId:o,...a,...s,currentCwd:l,...f,...d,...h,initialized:p,wsRef:x,buffers:y,handlers:v,requestHistory:S,reconnecting:C}}function Hxr(){let e=zxr(),{wsRef:t,buffers:r,handlers:n,addPendingLaunch:i,activeId:o,sessions:a}=e,s=Ibr(e.nodes),l=Obr(t,i),u=ixr(l,r,n);Pbr(o,a,e.history,l),Lbr(a,l);let f=oxr(l,e.setActiveId,e.setViewingTranscriptSessionId);return{...e,...u,...f,nodeSelection:s}}var FB=P(ge(),1);var Uxr="assist:sidebar-collapsed";function Wxr(){let[e,t]=(0,FB.useState)(()=>Bd(Uxr).length>0),r=(0,FB.useCallback)(()=>{t(n=>{let i=!n;return Fd(Uxr,i?[!0]:[]),i})},[]);return(0,FB.useMemo)(()=>({collapsed:e,onToggleCollapsed:r}),[e,r])}var Vxr=P(ge(),1);function Gxr(){(0,Vxr.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await fetch("/api/hotkeys");if(!t.ok)return;let r=await t.json();e||g5.set(r)}catch{}})(),()=>{e=!0}},[])}var X0e=P(ge(),1);function qxr(){let[e,t]=(0,X0e.useState)(!0);return(0,X0e.useEffect)(()=>{let r=!1;return(async()=>{try{let i=await(await fetch("/api/session-layout")).json();r||t(!!i?.topBar)}catch{t(!0)}})(),()=>{r=!0}},[]),e}function jxr(){let e=Hxr(),t=mpe(e),r=wbr(e.currentCwd,e.history,t,e.sessions,e.nodeSelection);dbr({selectedCwd:r.selectedCwd,selectedCardId:t,sessions:e.sessions,history:e.history,activeByRepo:e.activeByRepo,onSelect:e.selectSession});let{launch:n,viewLaunchedSession:i}=Rbr(e),o=qxr();Gxr();let a=Wxr();return ubr("shell",{...e,selection:r,launch:n,topBar:o,sidebarCollapse:a}),{socket:e,selection:r,launch:n,viewLaunchedSession:i,topBar:o,sidebarCollapse:a}}var b0=P(z(),1),eqn={zIndex:e=>e.zIndex.drawer+1},tqn={minHeight:48};function Yxr({mode:e,toggle:t}){let r=jxr(),{socket:n,selection:i,viewLaunchedSession:o}=r;return(0,b0.jsx)(a1r,{shell:r,children:(0,b0.jsxs)(aze.Provider,{value:n.daemonVersion,children:[(0,b0.jsx)(ibr,{mode:e,toggle:t,sessions:n.sessions,reconnecting:n.reconnecting}),(0,b0.jsx)(v1e,{position:"fixed",elevation:1,sx:eqn,children:(0,b0.jsx)(ovr,{socket:n,selection:i})}),(0,b0.jsx)(H_,{variant:"dense",sx:tqn}),(0,b0.jsx)(lbr,{socket:n,children:(0,b0.jsx)(Y0r,{socket:n})}),(0,b0.jsx)(i1r,{socket:n,onViewLaunchedSession:o})]})})}var Kxr=P(ge(),1);function Xxr(){let[e,t]=(0,Kxr.useState)(()=>{try{return localStorage.getItem("theme-mode")??"dark"}catch{return"dark"}});return{mode:e,toggle:()=>t(n=>{let i=n==="dark"?"light":"dark";try{localStorage.setItem("theme-mode",i)}catch{}return i})}}var Xk=P(z(),1),rqn={MuiButtonBase:{styleOverrides:{root:{cursor:"pointer","&.Mui-disabled":{cursor:"default"}}}},MuiLink:{styleOverrides:{root:{cursor:"pointer"}}}};function nqn(){let{mode:e,toggle:t}=Xxr(),r=(0,Qxr.useMemo)(()=>_0({palette:{mode:e,...e==="dark"&&{background:{default:"#1e1e1e",paper:"#252526"}}},components:rqn}),[e]);return(0,Xk.jsxs)(JK,{theme:r,children:[(0,Xk.jsx)(zX,{}),(0,Xk.jsx)(Yxr,{mode:e,toggle:t})]})}var iqn=$2e([{path:"*",element:(0,Xk.jsx)(nqn,{})}]);function oqn(){return(0,Xk.jsx)(L2e,{router:iqn})}var Zxr=document.getElementById("app");Zxr&&(0,Jxr.createRoot)(Zxr).render((0,Xk.jsx)(oqn,{}));})();
3979
3979
  /*! Bundled license information: