@staff0rd/assist 0.784.1 → 0.784.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3973,7 +3973,7 @@ ${f.join(`
3973
3973
  `)})}var V9=L(z(),1);function Kdr({entry:e,state:t,actions:r}){return(0,V9.jsxs)(ue,{sx:{px:2,pb:2,pl:{xs:2,sm:7.5},display:"grid",gap:1.5},children:[(0,V9.jsx)(jdr,{entry:e,state:t,actions:r}),(0,V9.jsx)(Fe,{variant:"caption",color:"text.secondary",children:"History \xB7 ~/.assist/watchers/"}),(0,V9.jsx)(Ydr,{lines:e.status?.history??[]})]})}function G9(e){let t=e.status?.loop;return t!==void 0&&(t.phase!=="off"||t.paused===!0)}var q9=L(z(),1),IHn={display:"flex",gap:.5,flexWrap:"wrap",justifyContent:{xs:"flex-start",sm:"flex-end"},gridColumn:{xs:"1 / -1",sm:"auto"}};function Xdr({entry:e,state:t,actions:r}){let n=r.notices.busy[e.name],i=e.status?.loop.paused===!0;return(0,q9.jsxs)(ue,{sx:IHn,children:[t.kind==="ready"&&(0,q9.jsx)(rge,{entry:e,actions:r}),t.kind==="diverged"&&(0,q9.jsx)(Jme,{entry:e,actions:r}),G9(e)&&(0,q9.jsx)(qt,{size:"small",disabled:n!==void 0,onClick:()=>{r.control(e,i?"resume":"pause")},children:i?"Resume":"Pause"})]})}var DHn={ready:"warning",diverged:"error"},Zdr=e=>t=>{let r=DHn[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 Qdr=L(z(),1),Jdr=ft((0,Qdr.jsx)("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"}),"ArrowUpward");var ehr=L(z(),1),thr=ft((0,ehr.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 rhr=L(z(),1),nhr=ft((0,rhr.jsx)("path",{d:"M6 19h4V5H6zm8-14v14h4V5z"}),"Pause");var ihr=L(z(),1),ohr=ft((0,ihr.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 ahr=L(z(),1),shr=ft((0,ahr.jsx)("path",{d:"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z"}),"Warning");var U1=L(z(),1),NHn={ok:{tone:"success",icon:(0,U1.jsx)(j0,{})},ready:{tone:"warning",icon:(0,U1.jsx)(Jdr,{})},diverged:{tone:"error",icon:(0,U1.jsx)(shr,{})},retrying:{tone:"warning",icon:(0,U1.jsx)(Aee,{})},paused:{tone:"neutral",icon:(0,U1.jsx)(nhr,{})},off:{tone:"neutral",icon:(0,U1.jsx)(ohr,{})},unavailable:{tone:"neutral",icon:(0,U1.jsx)(thr,{})}};function OHn(e,t){return t==="neutral"?e.palette.text.secondary:e.palette[t].main}function lhr({state:e}){let{tone:t,icon:r}=NHn[e.kind];return(0,U1.jsxs)(ue,{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:OHn(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 Zj=L(z(),1);function chr({state:e}){return(0,Zj.jsxs)(ue,{sx:{...Qme,gridColumn:{xs:"2",sm:"auto"},gap:.25},children:[(0,Zj.jsx)(lhr,{state:e}),(0,Zj.jsx)(Fe,{variant:"caption",color:"text.secondary",noWrap:!0,children:e.line})]})}var W1=L(z(),1),uhr={gridColumn:{xs:"2",sm:"auto"}},BHn={fontFamily:"'Roboto Mono', ui-monospace, Menlo, monospace",fontSize:12,fontVariantNumeric:"tabular-nums"};function fhr({entry:e}){let t=e.status;if(!t)return(0,W1.jsx)(Fe,{variant:"caption",color:"text.secondary",sx:uhr,children:"\u2014"});let r=t.running!==t.built;return(0,W1.jsxs)(ue,{sx:{...uhr,display:"flex",flexDirection:"column"},children:[(0,W1.jsxs)(ue,{component:"span",sx:BHn,children:["v",t.running,r&&(0,W1.jsxs)(W1.Fragment,{children:[" ",(0,W1.jsx)(ue,{component:"span",sx:{color:"warning.main"},children:"\u2192"})," ","v",t.built]})]}),(0,W1.jsx)(Fe,{variant:"caption",color:"text.secondary",children:r?"running \u2192 built":"running"})]})}function ige(e){return(e.status?.restart.length??0)>0}function dhr(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 m_(e){let{status:t}=e;if(!t)return{kind:"unavailable",label:"Unavailable",line:e.error??"no update state"};let{loop:r}=t,n=fa(r.since);return r.phase==="diverged"?{kind:"diverged",label:"Diverged \xB7 fixing",line:`diverged ${n}${r.escalationId?` \xB7 session ${r.escalationId}`:""}`}:ige(e)?{kind:"ready",label:"Restart to update",line:`restart ${t.restart.map(U9).join(" + ")}${r.paused?" \xB7 paused":""}`}:dhr(r,n)}var V1=L(z(),1);function phr({entry:e,actions:t}){let[r,n]=(0,hhr.useState)(!1),i=m_(e);return(0,V1.jsxs)(ue,{component:"article",sx:{"& + &":{borderTop:1,borderColor:"divider"}},children:[(0,V1.jsxs)(ue,{sx:Zdr(i.kind),children:[(0,V1.jsx)(Hdr,{open:r,label:`${r?"Hide":"Show"} history for ${e.name}`,onToggle:()=>n(o=>!o)}),(0,V1.jsx)(Udr,{entry:e}),(0,V1.jsx)(fhr,{entry:e}),(0,V1.jsx)(chr,{state:i}),(0,V1.jsx)(Xdr,{entry:e,state:i,actions:t})]}),r&&(0,V1.jsx)(Kdr,{entry:e,state:i,actions:t})]})}var mhr=L(z(),1),oge=ft((0,mhr.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 b$e=L(ge(),1);var j9=L(z(),1);function ghr({entries:e,actions:t}){let[r,n]=(0,b$e.useState)(!1),[i,o]=(0,b$e.useState)(!1),a=e.filter(l=>m_(l).kind==="ready").length,s=e.some(l=>G9(l)&&!l.status?.loop.paused);return(0,j9.jsxs)(ue,{sx:{display:"flex",gap:1,flexWrap:"wrap"},children:[(0,j9.jsx)(qt,{variant:"outlined",size:"small",startIcon:(0,j9.jsx)(oge,{}),disabled:!s||r,onClick:()=>{n(!0),t.checkAll(e).finally(()=>n(!1))},children:"Check now"}),(0,j9.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 yhr(e){let t=e.map(o=>m_(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 Phr=L(ge(),1);function vhr(e,t){return`${e}:${t}`}var x$e=L(ge(),1);async function Y9(e){if(!e)return"web server unreachable";try{return(await e.json()).error??`HTTP ${e.status}`}catch{return`HTTP ${e.status}`}}async function bhr(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:Y9(r)}var FHn=5e3,xhr={pause:"Pausing",resume:"Resuming",check:"Checking"};function Thr(e,t){let{mark:r,setError:n,setBack:i}=e,o=(0,x$e.useCallback)(async(s,l)=>{r(s.name,xhr[l]);let u=await bhr(s,l);return u&&n(`${xhr[l]} ${s.name} failed: ${u}`),r(s.name),t(),!u&&l==="check"&&setTimeout(t,FHn),!u},[r,n,t]),a=(0,x$e.useCallback)(async s=>{let l=s.filter(d=>G9(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 T$e=L(ge(),1);var G1=L(ge(),1);var K9={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 g_(e,t){let r=t?`&node=${encodeURIComponent(t)}`:"";return fetch(`/api/restart?target=${e}${r}`,{method:"POST"})}var w2=L(ge(),1);var $Hn="/api/session-layout";async function zHn(){try{return(await fetch($Hn,{cache:"no-store"})).ok}catch{return!1}}async function Shr(e){let t=0;for(;!e();){if(t=await zHn()?t+1:0,t>=2)return!e();await new Promise(r=>setTimeout(r,300))}return!1}function HHn(){return{sawDisconnect:!1,waiting:!1,abandoned:!0}}function Chr(e,t,r){let n=(0,w2.useRef)(HHn()),i=(0,w2.useRef)(r);i.current=r,(0,w2.useEffect)(()=>{let s=n.current;if(!(!e||s.abandoned)){if(t){s.sawDisconnect=!0;return}!s.sawDisconnect||s.waiting||(s.waiting=!0,Shr(()=>s.abandoned).then(l=>{l&&i.current()}))}},[e,t]);let o=(0,w2.useCallback)(()=>{n.current.abandoned=!0},[]),a=(0,w2.useCallback)(()=>{n.current.abandoned=!0,n.current={sawDisconnect:!1,waiting:!1,abandoned:!1}},[]);return(0,w2.useEffect)(()=>o,[o]),{arm:a,abandon:o}}var UHn=15e3;function y_(e,t,r){let[n,i]=(0,G1.useState)(!1),[o,a]=(0,G1.useState)(null),s=(0,G1.useRef)(void 0),{arm:l,abandon:u}=Chr(n,t,()=>{clearTimeout(s.current),r?.(),globalThis.location.reload()});(0,G1.useEffect)(()=>()=>clearTimeout(s.current),[]);let f=(0,G1.useCallback)(async h=>{i(!0),l(),s.current=setTimeout(()=>{u(),i(!1),a("Web server did not come back")},UHn);try{if(!(await g_(h)).ok)throw new Error("restart failed")}catch{u(),clearTimeout(s.current),i(!1),a("Failed to restart web server")}},[l,u]),d=(0,G1.useCallback)(()=>f(e),[f,e]);return{pending:n,error:o,clearError:()=>a(null),restart:d,restartTo:f}}function age(e){return e.local&&(e.status?.restart.includes("webserver")??!1)}async function sge(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 WHn=2e3,VHn=9e4,GHn=e=>new Promise(t=>setTimeout(t,e));async function whr(e,t){let r=Date.now()+VHn;for(;Date.now()<r;){await GHn(WHn);let n=await sge(e.name,e.local),i=n.status;if(i?.daemonReachable&&!t.some(o=>i.restart.includes(o)))return n}}async function _hr(e,t,r){let n;try{n=await g_(t,e.local?void 0:e.name)}catch{}if(!n?.ok)throw new Error(await Y9(n));let i=await whr(e,r);if(!i?.status)throw new Error(`${e.name} did not come back`);return i.status.running}async function khr(e,t,r){try{let n=await _hr(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 Ehr(e){return e.length>1?"both":e[0]}function Rhr(e,t,r){let n=y_("webserver",e),i=(0,T$e.useCallback)(async a=>{let s=Ehr(a.status?.restart??[]);if(s){if(t.mark(a.name,"Restarting"),age(a))return n.restartTo(s);await khr(a,s,t),t.mark(a.name),r()}},[n,t,r]),o=(0,T$e.useCallback)(async a=>{let s=a.filter(l=>m_(l).kind==="ready");await Promise.all(s.filter(l=>!age(l)).map(l=>i(l)));for(let l of s.filter(age))await i(l)},[i]);return{restart:i,restartReady:o,localError:n.error,clearLocalError:n.clearError}}var X9=L(ge(),1);function Ahr(){let[e,t]=(0,X9.useState)(null),[r,n]=(0,X9.useState)(null),[i,o]=(0,X9.useState)({}),a=(0,X9.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 Lhr(e,t){let{refresh:r}=z9(),n=Ahr(),i=Rhr(e,n,r),o=Thr(n,r),a=FP(t),s=(0,Phr.useCallback)(l=>{let u=l.status?.loop.escalationId;u&&a(l.local?u:vhr(l.name,u))},[a]);return{...i,...o,openFix:s,notices:n}}var t0=L(z(),1);function Mhr({reconnecting:e,selectSession:t}){let{entries:r,loading:n}=z9(),i=Lhr(e,t),{notices:o}=i;return(0,t0.jsxs)(zl,{loading:n,header:(0,t0.jsxs)(ue,{sx:{display:"flex",alignItems:"flex-end",gap:2,flexWrap:"wrap",mb:3},children:[(0,t0.jsxs)(ue,{sx:{flex:"1 1 auto"},children:[(0,t0.jsx)(Fe,{variant:"h5",component:"h1",children:"Updates"}),(0,t0.jsx)(Fe,{variant:"body2",color:"text.secondary",children:yhr(r)})]}),(0,t0.jsx)(ghr,{entries:r,actions:i})]}),children:[(0,t0.jsx)(an,{variant:"outlined",component:"section","aria-label":"Nodes",children:r.map(a=>(0,t0.jsx)(phr,{entry:a,actions:i},a.name))}),(0,t0.jsx)(Kj,{notices:{...o,error:o.error??i.localError,clearError:()=>{o.clearError(),i.clearLocalError()}}})]})}var xpr=L(ge(),1);var Z9=L(ge(),1);function lge(e,t){let r=(0,Z9.useRef)(null),[n,i]=(0,Z9.useState)();return(0,Z9.useLayoutEffect)(()=>{e===t&&r.current&&i(r.current.offsetHeight)},[e,t]),{ref:r,height:n}}var Dhr=L(ge(),1);function cge(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 uge(e){let t=o=>o.startsWith("local:"),r=o=>{let a=cge(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,cge(o));continue}let a=r(o),s=(n.get(a)??0)>1;i.set(o,s?cge(o):a)}return i}var Qj={field:"lastPhase",direction:"desc"};var Jj="all",eY="all";async function Ihr(e,t,r){let n=new URLSearchParams({page:String(e),pageSize:String(t)});r.origin!==Jj&&n.set("origin",r.origin),r.status!==eY&&n.set("status",r.status),r.sort.field!==Qj.field&&n.set("sort",r.sort.field),r.sort.direction!==Qj.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 tY=L(z(),1);function Nhr({origins:e,origin:t,onChange:r}){let n=(0,Dhr.useMemo)(()=>uge(e.map(o=>o.origin)),[e]),i=e.reduce((o,a)=>o+a.count,0);return(0,tY.jsxs)(ni,{select:!0,size:"small",label:"Repo",value:t,onChange:o=>r(o.target.value),sx:{minWidth:220},children:[(0,tY.jsx)(un,{value:Jj,children:`All repos (${i})`}),e.map(o=>(0,tY.jsx)(un,{value:o.origin,children:`${n.get(o.origin)??o.origin} (${o.count})`},o.origin))]})}var S$e=L(z(),1),qHn=[{value:eY,label:"All"},{value:"done",label:"Done"},{value:"running",label:"Running"}];function Ohr({status:e,onChange:t}){return(0,S$e.jsx)(du,{size:"small",exclusive:!0,value:e,onChange:(r,n)=>n&&t(n),"aria-label":"Filter items by status",children:qHn.map(r=>(0,S$e.jsx)(hs,{value:r.value,children:r.label},r.value))})}var Q9=L(z(),1),jHn={display:"flex",alignItems:"center",gap:2,flexWrap:"wrap",mb:2},YHn="Repos show their bare name, or org/repo when two share one. Totals sum every phase's recorded usage.";function Bhr({origins:e,origin:t,onOriginChange:r,status:n,onStatusChange:i}){return(0,Q9.jsxs)(ue,{sx:jHn,children:[(0,Q9.jsx)(Ohr,{status:n,onChange:i}),(0,Q9.jsx)(Nhr,{origins:e,origin:t,onChange:r}),(0,Q9.jsx)(Fe,{variant:"caption",color:"text.disabled",children:YHn})]})}var Khr=L(ge(),1);function zd(e){return e<1e3?String(e):e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(1)}M`}function r0(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 dge=L(z(),1),KHn={whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"},Fhr={display:"block",fontSize:"0.75rem",color:"text.disabled",whiteSpace:"nowrap"},XHn={...Fhr,fontStyle:"italic"};function fge({total:e,perPhase:t,partial:r}){return(0,dge.jsxs)(_n,{align:"right",sx:KHn,children:[e,t?(0,dge.jsx)(Fe,{component:"span",sx:r?XHn:Fhr,children:t}):null]})}var rY=L(z(),1),ZHn={width:"100%",maxWidth:0},QHn={display:"block",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},JHn={display:"block",mt:"2px",fontSize:"0.75rem",color:"text.secondary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function $hr({id:e,name:t,type:r,repoLabel:n}){return(0,rY.jsxs)(_n,{sx:ZHn,children:[(0,rY.jsx)(xn,{component:ys,to:BT(e),underline:"hover",color:"text.primary",title:t,sx:QHn,children:t}),(0,rY.jsxs)(Fe,{component:"span",sx:JHn,children:[so(e)," \xB7 ",r," \xB7 ",n]})]})}function zhr(e){let t=Math.max(1,e.recordedPhases);return{active:`${r0(e.activeMs/t)} / phase`,tokens:`${zd(Math.round((e.tokensUp+e.tokensDown)/t))} / phase`}}function Hhr(e){if(!(e.status==="done"||e.recordedPhases>e.phaseCount))return`${e.recordedPhases} of ${e.phaseCount} phases`}var hge={story:"info",bug:"error"},pge={todo:"default","in-progress":"warning",done:"success",wontdo:"error"};var eUn=new Set(["done","wontdo"]);function Uhr(e){return eUn.has(e)?{label:e,color:pge[e]}:{label:"running",color:"warning"}}var C$e=L(z(),1),tUn={height:20,fontSize:"0.6875rem"};function Whr({status:e}){let t=Uhr(e);return(0,C$e.jsx)(_n,{children:(0,C$e.jsx)(bn,{label:t.label,size:"small",variant:"outlined",color:t.color,sx:tUn})})}var n0=L(z(),1),Vhr={whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"};function Ghr({row:e,repoLabel:t}){let r=zhr(e);return(0,n0.jsxs)(Gu,{hover:!0,children:[(0,n0.jsx)($hr,{id:e.id,name:e.name,type:e.type,repoLabel:t}),(0,n0.jsx)(Whr,{status:e.status}),(0,n0.jsx)(fge,{total:String(e.phaseCount||e.recordedPhases),perPhase:Hhr(e),partial:!0}),(0,n0.jsx)(fge,{total:r0(e.activeMs),perPhase:r.active}),(0,n0.jsx)(fge,{total:`\u2191 ${zd(e.tokensUp)} \u2193 ${zd(e.tokensDown)}`,perPhase:r.tokens}),(0,n0.jsx)(_n,{align:"right",sx:Vhr,children:(0,n0.jsxs)(ue,{component:"span",sx:{color:KJ(e.peakContextPct)},children:[Math.round(e.peakContextPct),"%"]})}),(0,n0.jsx)(_n,{align:"right",sx:Vhr,children:e.lastPhaseAt?fa(e.lastPhaseAt):"\u2014"})]})}var qhr=[{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 Fm=L(z(),1),rUn={"& th":{whiteSpace:"nowrap"}};function jhr({column:e}){return e.tooltip?(0,Fm.jsx)(lr,{title:e.tooltip,describeChild:!0,children:(0,Fm.jsx)("span",{children:e.label})}):(0,Fm.jsx)(Fm.Fragment,{children:e.label})}function Yhr({sort:e,onSort:t}){return(0,Fm.jsx)(Bk,{sx:rUn,children:(0,Fm.jsx)(Gu,{children:qhr.map(r=>{let n=r.sort,i=n!==void 0&&e.field===n;return(0,Fm.jsx)(_n,{align:r.numeric?"right":"left",sortDirection:i?e.direction:!1,children:n===void 0?(0,Fm.jsx)(jhr,{column:r}):(0,Fm.jsx)(hve,{active:i,direction:i?e.direction:"desc",onClick:()=>t(n),children:(0,Fm.jsx)(jhr,{column:r})})},r.label)})})})}var mR=L(z(),1),nUn={"& td, & th":{px:1.5}};function Xhr({rows:e,origins:t,sort:r,onSort:n}){let i=(0,Khr.useMemo)(()=>uge([...t,...e.map(o=>o.origin)]),[t,e]);return(0,mR.jsx)(Ok,{component:an,children:(0,mR.jsxs)(kv,{size:"small",sx:nUn,children:[(0,mR.jsx)(Yhr,{sort:r,onSort:n}),(0,mR.jsx)(Ev,{children:e.map(o=>(0,mR.jsx)(Ghr,{row:o,repoLabel:i.get(o.origin)??o.origin},o.id))})]})})}function Zhr(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:r0(e.medianActiveMs),activeFoot:`${r0(e.medianActiveMs/t)} per phase`,tokens:zd(Math.round(e.medianTokens)),tokensFoot:`${zd(Math.round(e.medianTokens/t))} per phase`}}var J9=L(z(),1),Qhr={display:"block"},iUn={fontWeight:400,fontVariantNumeric:"tabular-nums"};function nY({label:e,value:t,foot:r}){return(0,J9.jsxs)(ue,{children:[(0,J9.jsx)(Fe,{variant:"caption",color:"text.secondary",sx:Qhr,children:e}),(0,J9.jsx)(Fe,{variant:"h5",sx:iUn,children:t}),r?(0,J9.jsx)(Fe,{variant:"caption",color:"text.disabled",sx:Qhr,children:r}):null]})}var gR=L(z(),1),oUn={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 Jhr({summary:e}){let t=Zhr(e);return(0,gR.jsxs)(an,{sx:oUn,children:[(0,gR.jsx)(nY,{label:"Items with recorded usage",value:t.items,foot:t.itemsFoot}),(0,gR.jsx)(nY,{label:"Median phases",value:t.phases}),(0,gR.jsx)(nY,{label:"Median active time",value:t.active,foot:t.activeFoot}),(0,gR.jsx)(nY,{label:"Median tokens",value:t.tokens,foot:t.tokensFoot})]})}var rp=L(z(),1);function epr({items:e,data:t}){let{rows:r,total:n,page:i,pageSize:o}=e,{ref:a,height:s}=lge(r.length,o);return(0,rp.jsxs)(rp.Fragment,{children:[(0,rp.jsx)(Jhr,{summary:t.summary}),(0,rp.jsx)(Bhr,{origins:t.origins,origin:e.origin,onOriginChange:e.selectOrigin,status:e.status,onStatusChange:e.selectStatus}),n===0?(0,rp.jsx)(Fe,{color:"text.secondary",align:"center",sx:{py:6},children:"No items match this filter."}):(0,rp.jsxs)(rp.Fragment,{children:[(0,rp.jsx)(ue,{ref:a,sx:{minHeight:s},children:(0,rp.jsx)(Xhr,{rows:r,origins:t.origins.map(l=>l.origin),sort:e.sort,onSort:e.sortBy})}),(0,rp.jsx)(i$,{component:"div",count:n,page:i,rowsPerPage:o,rowsPerPageOptions:[o],onPageChange:(l,u)=>e.setPage(u)})]})]})}var _2=L(z(),1);function tpr({items:e}){let{data:t}=e;return(0,_2.jsxs)(_2.Fragment,{children:[(0,_2.jsx)(ue,{sx:{height:4,mb:1},children:e.fetching&&(0,_2.jsx)(Nk,{})}),t?t.origins.length===0?(0,_2.jsx)(Fe,{color:"text.secondary",align:"center",sx:{py:6},children:"No item usage recorded yet."}):(0,_2.jsx)(epr,{items:e,data:t}):null]})}function w$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 mge(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 aUn(e,t,r,n){let i=w$e(t,r,n);if(i!=null)return e/i}function v_(e,t,r,n){let i=aUn(e,t,r,n);return i==null?"ok":i>100?"over":i>75?"warn":"ok"}var sUn=["five_hour","seven_day"],lUn=["claude","codex","pi"];function rpr(e){let[t,r]=e.includes(":")?e.split(":",2):["claude",e],n=lUn.find(o=>o===t),i=sUn.find(o=>o===r);if(!(!n||!i)&&!(n==="claude"&&e.includes(":")))return{harness:n,window:i}}var npr={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 eB(e){let t=rpr(e);if(!t)return npr.five_hour;let r=npr[t.window];return t.harness==="claude"?r:{...r,label:`${gu(t.harness)} ${r.label}`}}var cUn={ok:"success.main",warn:"warning.main",over:"error.main"};function b_(e){return cUn[e]}var aY=L(z(),1),uUn={ok:"success",warn:"warning",over:"error"};function ipr({percentage:e,level:t}){return(0,aY.jsxs)(ue,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,aY.jsx)(Nk,{variant:"determinate",value:Math.min(100,e),color:uUn[t],sx:{flexGrow:1,height:8,borderRadius:1}}),(0,aY.jsxs)(ue,{sx:{minWidth:40,textAlign:"right",color:b_(t)},children:[Math.round(e),"%"]})]})}function opr(e){return e.avgContextPct==null?"\u2014":`${Math.round(e.avgContextPct)}%`}var fUn=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function _$e(e){return fUn.format(e)}var gge=L(z(),1);function apr({peak:e}){return(0,gge.jsx)(_n,{align:"right",sx:{whiteSpace:"nowrap"},children:(0,gge.jsx)(lr,{title:`Cycle started ${_$e(new Date(e.createdAt))}`,children:(0,gge.jsx)("span",{children:_$e(new Date(e.resetsAt*1e3))})})})}var lpr=L(z(),1);function spr(){return(0,lpr.jsx)(bn,{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 cpr(e){return!e.tokensUp&&!e.tokensDown?"\u2014":`\u2191 ${zd(e.tokensUp)} \u2193 ${zd(e.tokensDown)}`}var i0=L(z(),1);function upr({peak:e,now:t}){let{label:r,seconds:n,tint:i}=eB(e.window),o=v_(e.usedPercentage,e.resetsAt,n,t);return(0,i0.jsxs)(Gu,{sx:a=>({backgroundColor:i?a.palette.mode==="dark"?i.dark:i.light:void 0}),children:[(0,i0.jsxs)(_n,{children:[r,e.resetDetected&&(0,i0.jsx)(spr,{})]}),(0,i0.jsx)(_n,{sx:{minWidth:160},children:(0,i0.jsx)(ipr,{percentage:e.usedPercentage,level:o})}),(0,i0.jsx)(_n,{align:"right",sx:{whiteSpace:"nowrap"},children:opr(e)}),(0,i0.jsx)(_n,{align:"right",sx:{whiteSpace:"nowrap"},children:e.phaseCount??0}),(0,i0.jsx)(_n,{align:"right",sx:{whiteSpace:"nowrap"},children:cpr(e)}),(0,i0.jsx)(apr,{peak:e})]})}var yge=L(ge(),1);function x_(e){let[t,r]=(0,yge.useState)(()=>Math.floor(Date.now()/1e3));return(0,yge.useEffect)(()=>{let n=setInterval(()=>r(Math.floor(Date.now()/1e3)),e);return()=>clearInterval(n)},[e]),t}var pc=L(z(),1);function fpr({peaks:e}){let t=x_(3e4);return(0,pc.jsx)(Ok,{component:an,children:(0,pc.jsxs)(kv,{size:"small",children:[(0,pc.jsx)(Bk,{sx:{"& th":{whiteSpace:"nowrap"}},children:(0,pc.jsxs)(Gu,{children:[(0,pc.jsx)(_n,{children:"Window"}),(0,pc.jsx)(_n,{children:"Peak usage"}),(0,pc.jsx)(_n,{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)(_n,{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)(_n,{align:"right",children:"Tokens spent"}),(0,pc.jsx)(_n,{align:"right",children:"Cycle reset"})]})}),(0,pc.jsx)(Ev,{children:e.map(r=>(0,pc.jsx)(upr,{peak:r,now:t},`${r.window}-${r.resetsAt}-${r.segment}`))})]})})}var T_=L(z(),1);function dpr({rows:e,total:t,page:r,pageSize:n,onPageChange:i}){let{ref:o,height:a}=lge(e.length,n);return(0,T_.jsxs)(T_.Fragment,{children:[(0,T_.jsx)(ue,{ref:o,sx:{minHeight:a},children:(0,T_.jsx)(fpr,{peaks:e})}),(0,T_.jsx)(i$,{component:"div",count:t,page:r,rowsPerPage:n,rowsPerPageOptions:[n],onPageChange:(s,l)=>i(l)})]})}var sY=L(ge(),1);function S_(){let[e,t]=(0,sY.useState)(!1),[r,n]=(0,sY.useState)(!1);return(0,sY.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 k$e=L(z(),1),hpr=["five_hour","seven_day"],dUn=["codex:five_hour","codex:seven_day"];function hUn(e){let t=e?[...hpr,...dUn]:hpr;return[{value:"all",label:"All"},...t.map(r=>({value:r,label:eB(r).label}))]}function ppr({window:e,onChange:t}){let{exposeCodexActions:r}=S_();return(0,k$e.jsx)(du,{size:"small",exclusive:!0,value:e,onChange:(n,i)=>i&&t(i),"aria-label":"Filter peaks by rate-limit window",children:hUn(r).map(n=>(0,k$e.jsx)(hs,{value:n.value,children:n.label},n.value))})}var q1=L(z(),1);function mpr({history:e}){let{window:t,total:r}=e;return(0,q1.jsxs)(q1.Fragment,{children:[(0,q1.jsx)(ppr,{window:t,onChange:e.selectWindow}),(0,q1.jsx)(ue,{sx:{height:4,my:1},children:e.fetching&&(0,q1.jsx)(Nk,{})}),r===0?(0,q1.jsx)(Fe,{color:"text.secondary",align:"center",sx:{py:6},children:t==="all"?"No usage peaks recorded yet.":`No ${eB(t).label} usage peaks recorded yet.`}):(0,q1.jsx)(dpr,{rows:e.rows,total:r,page:e.page,pageSize:e.pageSize,onPageChange:e.setPage})]})}var bge=L(ge(),1);async function gpr(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 C_=L(ge(),1);function vge(e,t,r=!0){let[n,i]=(0,C_.useState)(0),[o,a]=(0,C_.useState)(null),[s,l]=(0,C_.useState)(!1),[u,f]=(0,C_.useState)(null);(0,C_.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,C_.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 pUn=30;function ypr(){let[e,t]=(0,bge.useState)("all"),r=(0,bge.useCallback)((o,a)=>gpr(o,a,e),[e]),n=vge(r,pUn);return{...n,window:e,selectWindow:o=>{t(o),n.setPage(0)}}}var tB=L(ge(),1);function vpr(e,t){return e.field!==t?{field:t,direction:"desc"}:{field:t,direction:e.direction==="desc"?"asc":"desc"}}var mUn=30;function bpr(e){let[t,r]=(0,tB.useState)(Jj),[n,i]=(0,tB.useState)(eY),[o,a]=(0,tB.useState)(Qj),s=(0,tB.useCallback)((h,p)=>Ihr(h,p,{origin:t,status:n,sort:o}),[t,n,o]),l=vge(s,mUn,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=>vpr(p,h)),l.setPage(0)}}}var w_=L(z(),1),gUn={borderBottom:1,borderColor:"divider",mb:2};function Tpr(){let[e,t]=(0,xpr.useState)("limits"),r=ypr(),n=bpr(e==="items");if(r.error)throw r.error;if(n.error)throw n.error;return(0,w_.jsxs)(zl,{loading:!r.loaded,title:"Usage history",maxWidth:"lg",children:[(0,w_.jsxs)($k,{value:e,onChange:(i,o)=>t(o),textColor:"inherit",indicatorColor:"secondary",sx:gUn,"aria-label":"Usage history views",children:[(0,w_.jsx)(_v,{label:"Rate limits",value:"limits"}),(0,w_.jsx)(_v,{label:"Items",value:"items"})]}),e==="limits"?(0,w_.jsx)(mpr,{history:r}):(0,w_.jsx)(tpr,{items:n})]})}var xge=L(ge(),1),E$e=(0,xge.createContext)([]);function Tge(){return(0,xge.useContext)(E$e)}var Rmr=L(ge(),1);function as(){let{selectedCwd:e}=$n();return e||void 0}var k2=L(ge(),1);var Cpr=L(ge(),1);var yUn=new Set(["todo","done","all"]);function Spr(e){return e&&yUn.has(e)?e:"todo"}var wpr="backlog-filter",R$e=new Set,_pr=vUn();function vUn(){try{return Spr(localStorage.getItem(wpr))}catch{return"todo"}}function bUn(e){return R$e.add(e),()=>R$e.delete(e)}function xUn(){return _pr}function TUn(e){_pr=e;try{localStorage.setItem(wpr,e)}catch{}for(let t of R$e)t()}function rB(){return[(0,Cpr.useSyncExternalStore)(bUn,xUn),TUn]}function kpr(){let e=as(),t=yr(),[r]=rB(),[n,i]=(0,k2.useState)(""),[o,a]=(0,k2.useState)(null),[s,l]=(0,k2.useState)(!1),[u,f]=(0,k2.useState)(e),d=(0,k2.useRef)(void 0);return e!==u&&(f(e),a(null),l(n.trim().length>0)),(0,k2.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 zT({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 Ppr={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}},SUn={"&::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"}},Epr={position:"relative",zIndex:2},Rpr=8,A$e=24,CUn=wa`
3974
3974
  from { background-position: 0 0; }
3975
3975
  to { background-position: 0 ${A$e}px; }
3976
- `,Lpr={...Ppr,borderColor:"warning.main",borderLeft:4,borderLeftColor:"warning.main",bgcolor:e=>Ea(e.palette.warning.main,.08)},wUn={...Lpr,borderLeftColor:"transparent",backgroundImage:e=>`repeating-linear-gradient(to bottom, ${e.palette.warning.main} 0 ${Rpr}px, transparent ${Rpr}px ${A$e}px)`,backgroundOrigin:"border-box",backgroundRepeat:"repeat-y",backgroundSize:`4px ${A$e}px`,animation:`${CUn} 0.9s linear infinite`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}},Apr={"& .MuiButtonBase-root:focus-visible":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:"2px"}},j1={card:Ppr,inProgressCard:Lpr,inProgressRunningCard:wUn,main:{minWidth:0,textAlign:"left"},stretchedNameLink:{display:"block",fontWeight:500,color:"text.primary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",...SUn},meta:{display:"flex",alignItems:"center",gap:1,...Epr,width:"fit-content",maxWidth:"100%",fontSize:"0.75rem",color:"text.secondary","& a, & p":{fontSize:"0.75rem"},...Apr},id:{color:"text.disabled"},actions:{display:"flex",alignItems:"center",gap:1,flexShrink:0,...Epr,...Apr}};function Sge(e){let t=e.peakContextPct>0?` \xB7 \u2593 ${Math.round(e.peakContextPct)}%`:"";return`\u2191 ${zd(e.tokensUp)} \u2193 ${zd(e.tokensDown)} \xB7 \u23F1 ${r0(e.activeMs)}${t}`}var Ipr=L(z(),1),_Un={width:6,height:6,borderRadius:"50%",bgcolor:"currentColor",flexShrink:0};function Mpr(){return(0,Ipr.jsx)(ue,{component:"span",sx:_Un})}var lY=L(z(),1),Dpr={display:"inline-flex",alignItems:"center",gap:.625,color:"warning.main",fontWeight:500,fontSize:"0.75rem",whiteSpace:"nowrap",borderRadius:1};function Npr({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,lY.jsx)(Mpr,{});if(!t)return(0,lY.jsxs)(ue,{component:"span",sx:Dpr,children:[o,i]});let a=()=>{r?.(t.id),n("/sessions")};return(0,lY.jsxs)(Dn,{sx:Dpr,title:`Open the ${t.status} session`,onClick:a,children:[o,i]})}var np=L(z(),1),kUn={display:"inline-flex",alignItems:"center",gap:.5},EUn={width:8,height:8,borderRadius:"50%",flexShrink:0},RUn={whiteSpace:"nowrap"};function AUn({type:e}){let t=hge[e];return(0,np.jsxs)(ue,{component:"span",sx:kUn,children:[(0,np.jsx)(ue,{component:"span",sx:{...EUn,bgcolor:`${t}.main`}}),e]})}function PUn({item:e}){return e.usageTotal?(0,np.jsx)(lr,{title:Sge(e.usageTotal),children:(0,np.jsx)(ue,{component:"span",sx:RUn,children:`\u23F1 ${r0(e.usageTotal.activeMs)}`})}):null}function Opr({item:e,openSession:t,onSelectSession:r}){return(0,np.jsxs)(ue,{sx:j1.meta,children:[(0,np.jsx)(ue,{component:"span",sx:j1.id,children:so(e.id)}),(0,np.jsx)(AUn,{type:e.type}),(0,np.jsx)(Npr,{item:e,openSession:t,onSelectSession:r}),(0,np.jsx)(cP,{jiraKey:e.jiraKey}),(0,np.jsx)(lP,{githubIssue:e.githubIssue,variant:"icon"}),(0,np.jsx)(PUn,{item:e})]})}function Bpr(e,t){return e.filter(r=>wP(r)?.itemId===t).reduce((r,n)=>r&&r.startedAt>=n.startedAt?r:n,void 0)}var $pr=L(z(),1),LUn={todo:"\u25CB","in-progress":"\u25D4",done:"\u25CF",wontdo:"\u2715"},MUn={todo:"text.disabled","in-progress":"warning.main",done:"success.main",wontdo:"error.main"};function IUn(e){return{fontSize:"1.125rem",flexShrink:0,color:MUn[e]}}function Fpr({status:e}){return(0,$pr.jsx)(Fe,{sx:IUn(e),children:LUn[e]})}function Cge(e){return e.status==="todo"||e.status==="in-progress"}function DUn(e){if(e.status==="done")return e.totalPhases;if(e.status==="in-progress")return e.currentPhase}function NUn(e,t,r){return r?"complete":e<t?"done":e===t?"current":"remaining"}function zpr(e){let t=e.totalPhases,r=DUn(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:NUn(o+1,r,n)}))}}var nB=L(z(),1),OUn={done:"text.secondary",current:"warning.main",remaining:"divider",complete:"success.main"},BUn={display:"inline-flex",alignItems:"center",gap:.5,flexShrink:0},FUn={fontSize:"0.6875rem",color:"text.secondary",fontVariantNumeric:"tabular-nums"},$Un={display:"inline-flex",alignItems:"center",gap:"2px"},zUn={width:6,height:12,borderRadius:"1px",flexShrink:0};function Hpr({item:e}){let t=zpr(e);return t?(0,nB.jsxs)(ue,{sx:BUn,title:`Phase ${t.reached} of ${t.total}`,children:[(0,nB.jsx)(ue,{component:"span",sx:FUn,children:`${t.reached}/${t.total}`}),(0,nB.jsx)(ue,{component:"span",sx:$Un,"aria-hidden":!0,children:t.segments.map(r=>(0,nB.jsx)(ue,{component:"span","data-segment":r.kind,sx:{...zUn,bgcolor:OUn[r.kind]}},r.phase))})]}):null}var smr=L(ge(),1);var kge=L(ge(),1);var cY=L(z(),1);function Upr({tooltip:e,disabled:t,onClick:r}){return(0,cY.jsx)(lr,{title:e,children:(0,cY.jsx)(ue,{component:"span",sx:{display:"flex"},children:(0,cY.jsx)(qt,{startIcon:(0,cY.jsx)(Op,{}),disabled:t,onClick:r,children:"Build"})})})}var P$e=L(z(),1);function wge(e){let t=[];return e.exposeCodexActions&&t.push({kind:"codex",label:"with Codex"}),e.exposePiActions&&t.push({kind:"pi",label:"with pi"}),t}function _ge({anchorEl:e,open:t,onClose:r,options:n,onSelect:i,stop:o}){return(0,P$e.jsx)(Dl,{anchorEl:e,open:t,onClose:r,onClick:o,children:n.map(a=>(0,P$e.jsx)(un,{onClick:s=>{o(s),i(a.kind)},children:a.label},a.kind))})}var Y1=L(z(),1);function Wpr({tooltip:e,disabled:t,onBuild:r,onSelectHarness:n}){let i=wge(S_()),o=(0,kge.useRef)(null),[a,s]=(0,kge.useState)(!1),l=u=>u.stopPropagation();return(0,Y1.jsxs)(Y1.Fragment,{children:[(0,Y1.jsxs)(Q2,{ref:o,variant:"contained",color:"success",size:"small",disabled:t,children:[(0,Y1.jsx)(Upr,{tooltip:e,disabled:t,onClick:u=>{l(u),r()}}),i.length>0&&(0,Y1.jsx)(qt,{"aria-label":"Build with a different harness",onClick:u=>{l(u),s(!0)},children:(0,Y1.jsx)(zp,{})})]}),(0,Y1.jsx)(_ge,{anchorEl:o.current,open:a,onClose:()=>s(!1),options:i,onSelect:u=>{s(!1),n(u)},stop:l})]})}var Vpr=L(z(),1),iB=ft((0,Vpr.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 __=L(z(),1),HUn={vertical:"bottom",horizontal:"center"};function Ege({clone:e}){let{prompt:t,confirm:r,cancel:n,error:i,dismissError:o}=e;return(0,__.jsxs)(__.Fragment,{children:[t&&(0,__.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,__.jsx)(ol,{open:!!i,autoHideDuration:8e3,onClose:o,anchorOrigin:HUn,children:(0,__.jsx)(ri,{severity:"error",onClose:o,variant:"filled",children:i})})]})}var o0=L(ge(),1);function L$e(e){return["backlog","clone",e]}function Rge(e,t){t(L$e(e.origin),void 0,{title:`Clone ${e.displayName}`,subtitle:e.origin,...e.node&&{node:e.node}})}function Gpr(e,t){return!!e&&e.length===t.length&&e.every((r,n)=>r===t[n])}function qpr(e,t,r){let n=L$e(t.origin),i=new Set(e.filter(o=>Gpr(o.assistArgs,n)).map(o=>o.id));return Rge(t,r),{args:n,target:t.cloneTarget,node:t.node,preexisting:i}}function jpr(e,t){if(!t.id){let n=e.find(i=>Gpr(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 Age(e){let{setSelectedCwd:t}=$n(),{launchAssist:r}=$l(),[n,i]=(0,o0.useState)(null),[o,a]=(0,o0.useState)(null),[s,l]=(0,o0.useState)(null),u=(0,o0.useCallback)(p=>{l(null),i(p)},[]),f=(0,o0.useCallback)(()=>i(null),[]),d=(0,o0.useCallback)(()=>l(null),[]),h=(0,o0.useCallback)(()=>{n&&(a(qpr(e,n,r)),i(null))},[n,e,r]);return(0,o0.useEffect)(()=>{if(!o)return;let p=jpr(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 oB(e,t){return`Not cloned ${e?`on ${e}`:"locally"} \u2014 click to clone into ${t}`}var E2=L(z(),1),UUn={border:1,borderStyle:"dashed"};function Ypr({target:e}){let t=Age(Tge());return(0,E2.jsxs)(E2.Fragment,{children:[(0,E2.jsx)(lr,{title:oB(e.node,e.cloneTarget),children:(0,E2.jsx)(sr,{"aria-label":"Clone",size:"small",sx:UUn,onClick:r=>{r.stopPropagation(),t.requestClone(e)},children:(0,E2.jsx)(iB,{fontSize:"small"})})}),(0,E2.jsx)(Ege,{clone:t})]})}function Kpr(e,t,r,n){let i=r.node?[{node:r.node}]:[];e(["backlog","run",so(t),...n],r.cwd,...i)}var uY=L(z(),1);function Xpr({tooltip:e,disabled:t,onClick:r}){return(0,uY.jsx)(lr,{title:e,children:(0,uY.jsx)("span",{children:(0,uY.jsx)(sr,{"aria-label":"Build",color:"success",size:"small",disabled:t,onClick:r,children:(0,uY.jsx)(Op,{})})})})}function WUn(e,t){let r=e.assistArgs;if(r?.[0]!=="backlog"||r[1]!=="run"||!r[2])return!1;try{return gJ(r[2])===t}catch{return!1}}function Zpr(e,t){return e.find(r=>r.status!=="done"&&r.status!=="error"&&(WUn(r,t)||wP(r)?.itemId===t))}var Pge=L(ge(),1),M$e=(0,Pge.createContext)({nodes:null,names:[],visible:!1,selected:void 0,select:()=>{}});function Nu(){return(0,Pge.useContext)(M$e)}function Lge(){let{nodes:e,selected:t}=Nu();return t&&t!==e?.local?t:void 0}var emr=L(ge(),1);var Mge=L(ge(),1);function Qpr(e,t){return Promise.all(t.map(async r=>{let n=await VUn(e,r).catch(()=>({}));return[r,n]}))}async function VUn(e,t){let r=await fetch(tn(`/api/repo-location?origin=${encodeURIComponent(e)}`,t||void 0));return r.ok?r.json():{}}var I$e="\0";function Jpr(e,t){let[r,n]=(0,Mge.useState)(null);return(0,Mge.useEffect)(()=>{if(!e||!t)return;let i=!1;return Qpr(e,t.split(I$e)).then(o=>{i||n({origin:e,byNode:Object.fromEntries(o)})}),()=>{i=!0}},[e,t]),r}function Ige(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(I$e),a=Jpr(i,o);return(0,emr.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 sB=L(ge(),1);var tmr=L(z(),1);function aB({inputRef:e,value:t,onChange:r,onKeyDown:n,placeholder:i,autoFocus:o}){return(0,tmr.jsx)(ni,{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 Dge=L(ge(),1);function Nge(e){let t=(0,Dge.useRef)(null);return(0,Dge.useEffect)(()=>{e&&t.current?.scrollIntoView({block:"nearest"})},[e]),t}var nmr=L(z(),1);function rmr({cwd:e,selected:t,highlighted:r,onHover:n,onSelect:i}){let o=Nge(r);return(0,nmr.jsx)(un,{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:K1(e)})}var D$e=L(z(),1);function Oge({repos:e,selected:t,highlight:r,onHighlight:n,onSelect:i}){return(0,D$e.jsx)(Tp,{dense:!0,children:e.map((o,a)=>(0,D$e.jsx)(rmr,{cwd:o,selected:o===t,highlighted:a===r,onHover:()=>n(a),onSelect:()=>i(o)},o))})}var Bge=L(ge(),1);function k_(e,t,r,n){let[i,o]=(0,Bge.useState)(0);return(0,Bge.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 fY=L(z(),1);function K1(e){let t=e.includes("\\")?"\\":"/";return e.split(t).filter(Boolean).pop()??e}var GUn={...LP};function imr({repos:e,selected:t,onSelect:r,close:n}){let[i,o]=(0,sB.useState)(""),a=(0,sB.useRef)(null);(0,sB.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}=k_(l,s,r,n);return(0,fY.jsxs)(an,{elevation:4,sx:GUn,children:[(0,fY.jsx)(aB,{inputRef:a,value:i,onChange:o,onKeyDown:d,placeholder:"Filter repos..."}),(0,fY.jsx)(Oge,{repos:l,selected:t,highlight:u,onHighlight:f,onSelect:p=>{r(p),n()}})]})}function Fge(e,t){return{origin:e.origin,cloneTarget:e.cloneTarget,displayName:K1(e.origin),node:t}}function omr(){let e=as(),t=Lge(),r=Ige(e??"",[t])(t);return e?r.kind==="cloned"?{kind:"ready",cwd:r.cwd,node:t}:r.kind==="clonable"?{kind:"clone",prompt:Fge(r,t)}:{kind:"unavailable",node:t??"this machine"}:{kind:"ready",node:t}}function amr(e,t){return t?`Not cloned on ${t}`:e?"Already running \u2014 close that session to run it again":"Build"}var $ge=L(z(),1);function zge({itemId:e,compact:t=!1}){let{launchAssist:r}=$l(),n=omr(),i=Zpr(Tge(),e),[o,a]=(0,smr.useState)(!1);if(n.kind==="clone")return(0,$ge.jsx)(Ypr,{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),Kpr(r,e,n,d))},f=amr(i!==void 0,s);return t?(0,$ge.jsx)(Xpr,{tooltip:f,disabled:l,onClick:d=>{d.stopPropagation(),u([])}}):(0,$ge.jsx)(Wpr,{tooltip:f,disabled:l,onBuild:()=>u([]),onSelectHarness:d=>u(["--harness",d])})}var lmr=L(ge(),1);var lB=L(z(),1);function cmr({itemId:e,starred:t,onToggled:r}){let n=as(),i=yr(),[o,a]=(0,lmr.useState)(!1);return(0,lB.jsx)(lr,{title:t?"Unstar":"Star",children:(0,lB.jsx)("span",{children:(0,lB.jsx)(sr,{"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 LJ(e,!t,n,i),await r()}finally{a(!1)}}},children:t?(0,lB.jsx)(Oee,{}):(0,lB.jsx)(Bee,{})})})})}var umr=L(z(),1),fmr=ft((0,umr.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 dY=L(z(),1),qUn={display:"inline-flex",alignItems:"center",gap:.375,flexShrink:0,fontSize:"0.71875rem",color:"text.secondary","& svg":{fontSize:14}};function dmr({count:e}){return e<1?null:(0,dY.jsx)(lr,{title:`${e} incomplete subtask${e===1?"":"s"}`,children:(0,dY.jsxs)(ue,{component:"span",sx:qUn,children:[(0,dY.jsx)(fmr,{}),e]})})}var R2=L(z(),1);function hmr({item:e,onReload:t}){return(0,R2.jsxs)(R2.Fragment,{children:[(0,R2.jsx)(dmr,{count:e.incompleteSubtasks}),(0,R2.jsx)(Hpr,{item:e}),(0,R2.jsx)(cmr,{itemId:e.id,starred:e.starred,onToggled:t}),Cge(e)&&(0,R2.jsx)(zge,{itemId:e.id,compact:!0})]})}var A2=L(z(),1);function jUn(e,t){return e?t?j1.inProgressRunningCard:j1.inProgressCard:j1.card}function pmr({item:e,to:t,socket:r,onReload:n}){let i=Bpr(r.sessions,e.id),o=e.status==="in-progress",a=o&&i?.status==="running";return(0,A2.jsxs)(ue,{sx:jUn(o,a),children:[(0,A2.jsx)(Fpr,{status:e.status}),(0,A2.jsxs)(ue,{sx:j1.main,children:[(0,A2.jsx)(xn,{component:ys,to:t,underline:"none",title:e.name,sx:j1.stretchedNameLink,children:e.name}),(0,A2.jsx)(Opr,{item:e,openSession:i,onSelectSession:r.selectSession})]}),(0,A2.jsx)(ue,{sx:j1.actions,children:(0,A2.jsx)(hmr,{item:e,onReload:n})})]})}var gmr=L(z(),1),YUn={all:"items",story:"stories",bug:"bugs"},KUn={textAlign:"center",color:"text.disabled",py:6,px:2};function mmr({query:e,typeFilter:t}){let r=YUn[t],n=e.trim()?`No ${r} match your search.`:`No ${r} in the backlog.`;return(0,gmr.jsx)(ue,{sx:KUn,children:n})}var X1=L(z(),1),XUn={display:"flex",justifyContent:"center",py:6};function ymr({loading:e,error:t,query:r,typeFilter:n,items:i,socket:o,itemPath:a,onReload:s}){if(e)return(0,X1.jsx)(ue,{sx:XUn,children:(0,X1.jsx)(mo,{})});let l=t&&(0,X1.jsx)(ri,{severity:"error",children:t});return i.length===0?l||(0,X1.jsx)(mmr,{query:r,typeFilter:n}):(0,X1.jsxs)(X1.Fragment,{children:[l,i.map(u=>(0,X1.jsx)(pmr,{item:u,to:a(u),socket:o,onReload:s},u.id))]})}var cB=L(ge(),1);function ZUn(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 vmr({cwd:e,node:t,knownCwds:r,signal:n}){return(await fetch(Fl(ZUn(r),e,t),{signal:n})).json()}function bmr(){let{repos:e,selectedCwd:t,cloneOn:r}=$n(),n=Lge(),[i,o]=(0,cB.useState)([]),a=(0,cB.useMemo)(()=>e.map(l=>r(l,n)).filter(l=>!!l),[e,r,n]),s=t?r(t,n):void 0;return(0,cB.useEffect)(()=>{let l=new AbortController;return vmr({cwd:s,node:n,knownCwds:a,signal:l.signal}).then(o).catch(()=>{}),()=>l.abort()},[a,s,n]),{summaries:i,node:n}}var Hge=L(z(),1),QUn={borderStyle:"dashed"};function xmr({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,Hge.jsx)(bn,{label:`${o} (${a})`,size:"small",color:s?"primary":"default",variant:s?"filled":"outlined",disabled:!l&&!f,onClick:d,icon:f?(0,Hge.jsx)(iB,{}):void 0,sx:f?QUn:void 0});return!f||!u?h:(0,Hge.jsx)(lr,{describeChild:!0,title:oB(t,u),children:h})}var hY=L(z(),1),JUn={flexWrap:"wrap",gap:1,mb:2};function Tmr({sessions:e}){let{summaries:t,node:r}=bmr(),{setSelectedCwd:n}=$n(),i=Age(e);return t.length===0?null:(0,hY.jsxs)(Rt,{direction:"row",sx:JUn,children:[t.map(o=>(0,hY.jsx)(xmr,{summary:o,node:r,onSelectCwd:a=>r?n(a,r):n(a),onRequestClone:i.requestClone},o.origin)),(0,hY.jsx)(Ege,{clone:i})]})}var Cmr=L(z(),1);function Smr({value:e,onChange:t}){return(0,Cmr.jsx)(ni,{fullWidth:!0,size:"small",placeholder:"Search backlog\u2026",value:e,onChange:r=>t(r.target.value),sx:{mb:2}})}var Uge=L(ge(),1);var Wge=L(z(),1);async function eWn(){return(await(await fetch("/api/backups/list")).json())[0]}function wmr(){let[e,t]=(0,Uge.useState)();return(0,Uge.useEffect)(()=>{eWn().then(t)},[]),e?(0,Wge.jsx)(lr,{title:new Date(e.createdAt).toLocaleString(),children:(0,Wge.jsxs)(xn,{component:ys,to:"/backups",underline:"hover",color:"text.secondary",variant:"body2",children:["Last backed up ",fa(String(e.createdAt))]})}):null}var uB=L(z(),1);function _mr(){let[e,t]=rB();return(0,uB.jsxs)(du,{value:e,exclusive:!0,size:"small","aria-label":"Status filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,uB.jsx)(hs,{value:"todo",children:"Todo"}),(0,uB.jsx)(hs,{value:"done",children:"Done"}),(0,uB.jsx)(hs,{value:"all",children:"All"})]})}var fB=L(z(),1);function kmr({value:e,onChange:t}){return(0,fB.jsxs)(du,{value:e,exclusive:!0,size:"small","aria-label":"Type filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,fB.jsx)(hs,{value:"all",children:"All"}),(0,fB.jsx)(hs,{value:"story",children:"Stories"}),(0,fB.jsx)(hs,{value:"bug",children:"Bugs"})]})}var E_=L(z(),1),tWn={justifyContent:"space-between",alignItems:"center",mb:3},rWn={fontWeight:600},nWn={alignItems:"center"};function Emr({typeFilter:e,onTypeFilterChange:t}){return(0,E_.jsxs)(Rt,{direction:"row",sx:tWn,children:[(0,E_.jsx)(Fe,{variant:"h5",sx:rWn,children:"Backlog"}),(0,E_.jsxs)(Rt,{direction:"row",spacing:2,sx:nWn,children:[(0,E_.jsx)(wmr,{}),(0,E_.jsx)(kmr,{value:e,onChange:t}),(0,E_.jsx)(_mr,{})]})]})}var P2=L(z(),1);function Amr({items:e,loading:t,error:r,socket:n,onReload:i}){let o=as(),a=yr(),{query:s,setQuery:l,results:u,loading:f}=kpr(),[d,h]=(0,Rmr.useState)("all"),p=u??e,m=d==="all"?p:p.filter(g=>g.type===d);return(0,P2.jsxs)(P2.Fragment,{children:[(0,P2.jsx)(Emr,{typeFilter:d,onTypeFilterChange:h}),(0,P2.jsx)(Smr,{value:s,onChange:l}),(0,P2.jsx)(Tmr,{sessions:n.sessions}),(0,P2.jsx)(ymr,{loading:t||f,error:u?null:r,query:s,typeFilter:d,items:m,socket:n,itemPath:g=>BT(g.id,o,a),onReload:i})]})}var Qge=L(ge(),1);var yR=L(ge(),1);async function N$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 Pmr(e){let t=as(),r=yr(),[n,i]=(0,yR.useState)(null),[o,a]=(0,yR.useState)(!0),s=(0,yR.useCallback)(async()=>{i(await N$e(e,{cwd:t,node:r}))},[e,t,r]);return(0,yR.useEffect)(()=>{let l=new AbortController,{signal:u}=l;return a(!0),(async()=>{try{let f=await N$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 R_={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"},pY=140,O$e="--pinned-header-height",Vge=`var(${O$e}, ${pY}px)`,Lmr=`calc(${Vge} + 8px)`;function $m(e){return{id:R_[e],sx:{mb:2,scrollMarginTop:Lmr}}}function Gge(e){return{id:`item-phase-${e}`,sx:{scrollMarginTop:Lmr}}}var A_=L(z(),1);function Mmr({criteria:e}){return e.length===0?null:(0,A_.jsxs)(ue,{...$m("acceptanceCriteria"),children:[(0,A_.jsx)(Fe,{variant:"overline",sx:{color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"},children:"Acceptance Criteria"}),(0,A_.jsx)(R0,{disablePadding:!0,sx:{maxWidth:"72ch"},children:e.map((t,r)=>(0,A_.jsxs)(tT,{disableGutters:!0,disablePadding:!0,sx:{py:.5,display:"flex",alignItems:"baseline"},children:[(0,A_.jsxs)(Fe,{component:"span",sx:{color:"text.secondary",mr:1},children:[r+1,"."]}),(0,A_.jsx)(yu,{component:"span",className:"markdown",html:EP(t)})]},t))})]})}var mY=L(z(),1),iWn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function Imr({description:e}){return e?(0,mY.jsxs)(ue,{...$m("description"),children:[(0,mY.jsx)(Fe,{variant:"overline",sx:iWn,children:"Description"}),(0,mY.jsx)(kw,{content:e,renderMermaid:!0})]}):null}var Umr=L(ge(),1);function Dmr(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 Omr=L(z(),1),oWn={color:"text.secondary",alignSelf:"flex-start",textAlign:"left"};function Nmr({hiddenCount:e,expanded:t,onToggle:r}){return e===0?null:(0,Omr.jsx)(xn,{component:"button",type:"button",variant:"body2",underline:"hover",sx:oWn,onClick:n=>{n.stopPropagation(),r()},children:t?"Show fewer commits":`\u2026 and ${e} more commits`})}var vR=L(z(),1),aWn={display:"flex",alignItems:"center",gap:1},sWn={color:"text.secondary",fontFamily:"monospace"},lWn={flex:1,overflowWrap:"anywhere"},cWn={color:"text.disabled","&:hover":{color:"text.primary"}};function Bmr({conversation:e}){let{resumeSession:t}=$l(),r=n=>{n.stopPropagation(),t(e.sessionId,e.cwd??"",e.title,e.harness)};return(0,vR.jsxs)(ue,{sx:aWn,children:[(0,vR.jsx)(Fe,{variant:"body2",component:"span",sx:sWn,children:"session"}),(0,vR.jsx)(Fe,{variant:"body2",component:"span",sx:lWn,children:e.title??e.sessionId}),(0,vR.jsx)(sr,{size:"small",title:"Resume",sx:cWn,onClick:r,children:(0,vR.jsx)(Op,{sx:{fontSize:14}})})]})}var $mr=L(z(),1),uWn={color:"text.disabled",ml:1};function Fmr({gitRef:e}){return e.kind!=="commit"||!e.createdAt?null:(0,$mr.jsx)(ue,{component:"span",sx:uWn,children:fWn(e.createdAt)})}function fWn(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function zmr(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 Z1=L(z(),1),dWn={color:"text.secondary",mr:1,fontFamily:"monospace"};function hWn({gitRef:e}){let t=zmr(e);return!e.url||e.kind==="session"?(0,Z1.jsx)(Z1.Fragment,{children:t}):(0,Z1.jsx)(xn,{href:e.url,target:"_blank",rel:"noopener",onClick:r=>r.stopPropagation(),children:t})}function Hmr({gitRef:e}){return(0,Z1.jsxs)(Fe,{variant:"body2",children:[(0,Z1.jsx)(ue,{component:"span",sx:dWn,children:e.kind}),(0,Z1.jsx)(hWn,{gitRef:e}),(0,Z1.jsx)(Fmr,{gitRef:e})]})}var P_=L(z(),1),pWn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function Wmr({gitRefs:e,conversations:t=[]}){let[r,n]=(0,Umr.useState)(!1),{branches:i,commits:o,overflowCommits:a,prs:s,slacks:l}=Dmr(e),u=[...i,...o,...r?a:[],...s,...l];return u.length===0&&t.length===0?null:(0,P_.jsxs)(ue,{...$m("activity"),children:[(0,P_.jsx)(Fe,{variant:"overline",sx:pWn,children:"Activity"}),(0,P_.jsxs)(Rt,{spacing:1,children:[u.map(f=>(0,P_.jsx)(Hmr,{gitRef:f},`${f.kind}:${f.ref}`)),t.map(f=>(0,P_.jsx)(Bmr,{conversation:f},f.sessionId)),(0,P_.jsx)(Nmr,{hiddenCount:a.length,expanded:r,onToggle:()=>n(f=>!f)})]})]})}var bR=L(z(),1),mWn={alignItems:"center",fontSize:"0.75rem",color:"text.secondary",mb:.5},gWn={color:"text.disabled"},yWn={fontWeight:500},vWn={summary:"Phase summary",comment:"Comment"};function Vmr({comment:e}){return(0,bR.jsxs)(Rt,{direction:"row",spacing:.5,sx:mWn,children:[e.id!==void 0&&(0,bR.jsxs)(Fe,{variant:"caption",sx:gWn,children:["#",e.id]}),(0,bR.jsx)(Fe,{variant:"caption",sx:yWn,children:vWn[e.type]}),e.phase!==void 0&&(0,bR.jsxs)(Fe,{variant:"caption",children:["\xB7 Phase ",e.phase]}),(0,bR.jsxs)(Fe,{variant:"caption",children:["\xB7 ",bWn(e.timestamp)]})]})}function bWn(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}var Gmr=L(z(),1),qmr=ft((0,Gmr.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 B$e=L(ge(),1);async function jmr(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 Q1=L(z(),1),xWn={mt:-.5,mr:-.5,color:"text.secondary"};function Ymr({itemId:e,commentId:t,onDeleted:r}){let n=as(),i=yr(),[o,a]=(0,B$e.useState)(!1),[s,l]=(0,B$e.useState)(),u=()=>l(void 0);return(0,Q1.jsxs)(Q1.Fragment,{children:[o&&(0,Q1.jsx)(vo,{message:"Are you sure you want to delete this comment?",onConfirm:async()=>{a(!1);try{await jmr(e,t,n,i),await r()}catch(f){l(f instanceof Error?f.message:"Failed to delete comment")}},onCancel:()=>a(!1)}),(0,Q1.jsx)(ol,{open:s!==void 0,autoHideDuration:6e3,onClose:u,children:(0,Q1.jsx)(ri,{severity:"error",variant:"filled",onClose:u,children:s})}),(0,Q1.jsx)(sr,{"aria-label":"Delete comment",size:"small",sx:xWn,onClick:()=>a(!0),children:(0,Q1.jsx)(qmr,{fontSize:"inherit"})})]})}var xR=L(z(),1),TWn={summary:{bgcolor:"warning.light",borderColor:"warning.dark"},comment:{bgcolor:"action.selected",borderColor:"divider"}},SWn={justifyContent:"space-between",alignItems:"flex-start"},CWn={color:"text.primary",whiteSpace:"pre-wrap"};function wWn(e){return{p:1.5,bgcolor:e.bgcolor,borderColor:e.borderColor}}function Kmr({comment:e,itemId:t,onDeleted:r}){return(0,xR.jsxs)(an,{variant:"outlined",sx:wWn(TWn[e.type]),children:[(0,xR.jsxs)(Rt,{direction:"row",sx:SWn,children:[(0,xR.jsx)(Vmr,{comment:e}),e.id!==void 0&&t!==void 0&&r&&(0,xR.jsx)(Ymr,{itemId:t,commentId:e.id,onDeleted:r})]}),(0,xR.jsx)(Fe,{variant:"body2",sx:CWn,children:e.text})]})}var dB=L(z(),1),_Wn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function Xmr({comments:e,itemId:t,onCommentDeleted:r}){return e.length===0?null:(0,dB.jsxs)(ue,{...$m("comments"),children:[(0,dB.jsx)(Fe,{variant:"overline",sx:_Wn,children:"Comments"}),(0,dB.jsx)(Rt,{spacing:1,children:e.map((n,i)=>(0,dB.jsx)(Kmr,{comment:n,itemId:t,onDeleted:r},`${n.timestamp}-${i}`))})]})}var Zmr=L(z(),1);function hB({total:e,sx:t}){return(0,Zmr.jsx)(Fe,{sx:t,children:Sge(e)})}var Jmr=L(z(),1),kWn={color:"text.secondary",fontSize:"0.75rem"};function Qmr({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,Jmr.jsx)(hB,{total:t,sx:kWn})}var L2=L(z(),1);function egr({checks:e}){return(0,L2.jsxs)(ue,{sx:{mt:1,pt:1},children:[(0,L2.jsx)(no,{sx:{mb:1}}),(0,L2.jsx)(Fe,{variant:"overline",sx:{color:"text.disabled",letterSpacing:"0.08em"},children:"Manual Checks"}),(0,L2.jsx)(R0,{disablePadding:!0,sx:{ml:.5,mt:.5},children:e.map(t=>(0,L2.jsxs)(tT,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,L2.jsx)(Fe,{component:"span",sx:{mr:1,fontSize:"0.875rem",color:"text.secondary"},children:"\u2610"}),(0,L2.jsx)(yu,{component:"span",className:"markdown",sx:{fontSize:"0.875rem",color:"text.secondary"},html:EP(t)})]},t))})]})}var qge={done:{borderColor:"success.light",bgcolor:"success.light"},current:{borderColor:"info.main",bgcolor:"info.light",ring:"info.light"},upcoming:{borderColor:"divider",bgcolor:"background.paper"}};function tgr(e){let t=qge[e];return{p:2,borderColor:t.ring?"info.main":t.borderColor,bgcolor:t.bgcolor,...t.ring?{boxShadow:"0 0 0 2px"}:{}}}var rgr={done:"\u2713",current:"\u2022",upcoming:"\u2022"};var ogr=L(ge(),1);var ngr=L(ge(),1),J1=L(z(),1);function igr({phaseName:e,onConfirm:t,onCancel:r}){let[n,i]=(0,ngr.useState)("");return(0,J1.jsxs)(Ps,{open:!0,onClose:r,maxWidth:"xs",fullWidth:!0,children:[(0,J1.jsxs)(Il,{children:["Rewind to ",e,"?"]}),(0,J1.jsxs)(Ml,{children:[(0,J1.jsx)(Fe,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"This will mark all later phases as incomplete."}),(0,J1.jsx)(ni,{fullWidth:!0,multiline:!0,rows:3,size:"small",placeholder:"Reason for rewinding...",value:n,onChange:o=>i(o.target.value)})]}),(0,J1.jsxs)(cu,{children:[(0,J1.jsx)(qt,{onClick:r,children:"Cancel"}),(0,J1.jsx)(qt,{variant:"contained",color:"warning",disabled:n.trim().length===0,onClick:()=>t(n.trim()),children:"Rewind"})]})]})}var TR=L(z(),1);function agr({itemId:e,phaseNumber:t,phaseName:r,onRewound:n}){let i=as(),o=yr(),[a,s]=(0,ogr.useState)(!1);return(0,TR.jsxs)(TR.Fragment,{children:[(0,TR.jsx)(qt,{size:"small",color:"warning",variant:"outlined",onClick:()=>s(!0),sx:{ml:"auto",textTransform:"none",fontSize:"0.75rem"},children:"Rewind"}),a&&(0,TR.jsx)(igr,{phaseName:r,onConfirm:async l=>{await Tet(e,t,l,i,o),await n()},onCancel:()=>s(!1)})]})}var pB=L(z(),1),EWn={done:{label:"Done",color:"success"},current:{label:"In Progress",color:"info"},upcoming:{label:"Upcoming",color:"default"}},RWn={alignItems:"center",mb:1},AWn={fontWeight:500},PWn={fontWeight:500,fontSize:"0.75rem"};function sgr({phase:e,index:t,status:r,itemId:n,onRewind:i}){let o=EWn[r],a=r==="done"&&n!==void 0&&i;return(0,pB.jsxs)(Rt,{direction:"row",spacing:1,sx:RWn,children:[(0,pB.jsxs)(Fe,{sx:AWn,children:["Phase ",t+1,": ",e.name]}),(0,pB.jsx)(bn,{label:o.label,size:"small",color:o.color,sx:PWn}),a&&(0,pB.jsx)(agr,{itemId:n,phaseNumber:t+1,phaseName:e.name,onRewound:i})]})}var gY=L(z(),1),LWn={color:"text.secondary",fontSize:"0.75rem",letterSpacing:"0.08em",display:"block"},MWn={color:"text.secondary",fontSize:"0.75rem",fontFamily:"monospace",display:"block"};function lgr({sessions:e}){return(0,gY.jsxs)(ue,{sx:{mb:1},children:[(0,gY.jsx)(Fe,{variant:"overline",sx:LWn,children:"Sessions"}),e.map(t=>(0,gY.jsx)(Fe,{sx:MWn,children:`${t.hostname} / ${t.osUser} / ${t.claudeSessionId}`},t.claudeSessionId))]})}var ugr=L(z(),1),IWn={color:"text.secondary",fontSize:"0.75rem",mb:1,display:"block"};function cgr({usage:e}){return(0,ugr.jsx)(hB,{total:e,sx:IWn})}var mB=L(z(),1);function fgr({tasks:e,marker:t}){return(0,mB.jsx)(R0,{disablePadding:!0,sx:{ml:.5},children:e.map(r=>(0,mB.jsxs)(tT,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,mB.jsx)(Fe,{component:"span",sx:{color:"text.secondary",mr:1},children:t}),(0,mB.jsx)(yu,{component:"span",className:"markdown",html:EP(r.task)})]},r.task))})}var L_=L(z(),1);function dgr({phase:e,index:t,status:r,itemId:n,usage:i,sessions:o,onRewind:a}){let s=e.manualChecks??[],l=Gge(t);return(0,L_.jsxs)(an,{variant:"outlined",id:l.id,sx:{...tgr(r),...l.sx},children:[(0,L_.jsx)(sgr,{phase:e,index:t,status:r,itemId:n,onRewind:a}),i&&(0,L_.jsx)(cgr,{usage:i}),(0,L_.jsx)(fgr,{tasks:e.tasks,marker:rgr[r]}),s.length>0&&(0,L_.jsx)(egr,{checks:s}),o&&o.length>0&&(0,L_.jsx)(lgr,{sessions:o})]})}var yY={name:"Review",tasks:[]};function jge(e){return e.at(-1)?.name===yY.name?e.length-1:e.length}function Yge(e,t){if(t===void 0)return"upcoming";let r=e+1;return r<t?"done":r===t?"current":"upcoming"}function hgr(e=[]){return new Map(e.map(t=>[t.phaseIdx,t]))}function pgr(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 F$e=L(z(),1);function mgr({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){let a=hgr(n),s=pgr(i),l=jge(e),u=(i??[]).filter(d=>d.phaseIdx>=l),f=l===e.length&&u.length>0?[...e,yY]:e;return(0,F$e.jsx)(Rt,{spacing:1.5,children:f.map((d,h)=>(0,F$e.jsx)(dgr,{phase:d,index:h,status:Yge(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 SR=L(z(),1),DWn={alignItems:"baseline",justifyContent:"space-between",mb:1},NWn={color:"text.secondary",display:"block",letterSpacing:"0.08em"};function ggr({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){return e.length===0?null:(0,SR.jsxs)(ue,{...$m("plan"),children:[(0,SR.jsxs)(Rt,{direction:"row",sx:DWn,children:[(0,SR.jsx)(Fe,{variant:"overline",sx:NWn,children:"Plan"}),n&&n.length>0&&(0,SR.jsx)(Qmr,{usage:n})]}),(0,SR.jsx)(mgr,{phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o})]})}var $$e=L(z(),1),Kge=e=>{let{value:t,options:r,colors:n,onChange:i}=e;return(0,$$e.jsx)(iT,{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,$$e.jsx)(un,{value:o,children:o},o))})};var vgr=L(z(),1),OWn={todo:{bg:"action.selected",text:"text.primary"},"in-progress":{bg:"warning.main",text:"warning.contrastText"},done:{bg:"success.main",text:"success.contrastText"}},BWn=["todo","in-progress","done"];function ygr({current:e,onStatusChange:t}){return(0,vgr.jsx)(Kge,{value:e,options:BWn,colors:OWn,onChange:t})}var M_=L(z(),1);function bgr({subtask:e,onStatusChange:t}){let r=e.status==="done";return(0,M_.jsxs)(Rt,{direction:"row",spacing:1,sx:{alignItems:"flex-start",justifyContent:"space-between"},children:[(0,M_.jsxs)(ue,{sx:{flex:1},children:[(0,M_.jsx)(Fe,{variant:"body2",sx:{textDecoration:r?"line-through":"none",color:r?"text.disabled":"text.primary"},children:e.title}),e.description&&(0,M_.jsx)(ue,{sx:{mt:.5,fontSize:"0.8125rem",color:r?"text.disabled":"text.secondary"},children:(0,M_.jsx)(kw,{content:e.description})})]}),(0,M_.jsx)(ygr,{current:e.status,onStatusChange:t})]})}var CR=L(z(),1),FWn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function xgr({subtasks:e,onStatusChange:t}){if(e.length===0)return null;let r=e.filter(n=>n.status!=="done").length;return(0,CR.jsxs)(ue,{...$m("subtasks"),children:[(0,CR.jsx)(Fe,{variant:"overline",sx:FWn,children:"Sub-tasks"}),(0,CR.jsx)(Rt,{spacing:1,children:e.map((n,i)=>(0,CR.jsx)(bgr,{subtask:n,onStatusChange:o=>t(i,o)},`${n.title}-${i}`))}),r>0&&(0,CR.jsxs)(ri,{severity:"warning",sx:{mt:1},children:[r," sub-task",r===1?"":"s"," not yet done."]})]})}var M2=L(z(),1);function Tgr({item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n}){return(0,M2.jsxs)(M2.Fragment,{children:[e.subtasks&&n&&(0,M2.jsx)(xgr,{subtasks:e.subtasks,onStatusChange:n}),e.plan&&(0,M2.jsx)(ggr,{phases:e.plan,currentPhase:e.currentPhase,itemId:e.id,usage:e.phaseUsage,sessions:e.phaseSessions,onRewind:t}),(0,M2.jsx)(Wmr,{gitRefs:e.gitRefs??[],conversations:e.conversations}),e.comments&&(0,M2.jsx)(Xmr,{comments:e.comments,itemId:e.id,onCommentDeleted:r})]})}var gB=L(z(),1);function Sgr({item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n}){return(0,gB.jsxs)(ue,{sx:{pt:2,flex:1,minWidth:0},children:[(0,gB.jsx)(Imr,{description:e.description}),(0,gB.jsx)(Mmr,{criteria:e.acceptanceCriteria}),(0,gB.jsx)(Tgr,{item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n})]})}var Cgr="item-detail";var vY={wideQuery:`@container ${Cgr} (min-width: 760px)`,containerSx:{containerType:"inline-size",containerName:Cgr},columnsSx:{display:"flex",columnGap:3}};function $Wn(e){let t=e.plan??[];if(t.length===0)return[];let r=jge(t),i=r===t.length&&(e.phaseSessions??[]).some(o=>o.phaseIdx>=r)?[...t,yY]:t;return[{id:R_.plan,label:"Phases"},...i.map((o,a)=>({id:Gge(a).id,label:`${a+1}`,title:o.name,status:Yge(a,e.currentPhase),nested:!0}))]}function wgr(e){let t=[];return e.description&&t.push({id:R_.description,label:"Description"}),e.acceptanceCriteria.length>0&&t.push({id:R_.acceptanceCriteria,label:"Acceptance Criteria"}),(e.subtasks?.length??0)>0&&t.push({id:R_.subtasks,label:"Sub-tasks"}),t.push(...$Wn(e)),(e.gitRefs?.length??0)+(e.conversations?.length??0)>0&&t.push({id:R_.activity,label:"Activity"}),(e.comments?.length??0)>0&&t.push({id:R_.comments,label:"Comments"}),t}var _gr="1.3125rem",kgr={position:"relative",borderRadius:1,"&::after":{content:'""',position:"absolute",inset:0,borderRadius:"inherit",pointerEvents:"none"},"&:hover::after":{bgcolor:"action.hover"},"&:active::after":{bgcolor:"action.selected"}},zWn={...kgr,display:"block",flexShrink:0,maxWidth:"100%",px:1,py:.5,border:0,bgcolor:"transparent",fontSize:_gr,lineHeight:1.2,letterSpacing:"0.02em",textAlign:"left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"text.secondary"},HWn={...kgr,display:"flex",alignItems:"center",justifyContent:"center",fontSize:_gr,width:"2em",height:"2em",flexShrink:0,lineHeight:1,borderRadius:"50%",border:1,color:"text.primary"},UWn={borderColor:"text.primary",borderWidth:3},WWn={color:"text.primary",fontWeight:700,"&::after":{bgcolor:"action.selected"}};function Egr(e,t){let r=e.status&&qge[e.status];return r?{...HWn,ml:1.5,bgcolor:r.bgcolor,borderColor:r.borderColor,borderWidth:r.ring?3:1,...t&&UWn}:{...zWn,...t&&WWn}}var Agr=L(z(),1);function Rgr({section:e,active:t,onSelect:r}){return(0,Agr.jsx)(Dn,{sx:Egr(e,t),onClick:()=>r(e.id),title:e.title??e.label,"aria-current":t?"true":void 0,children:e.label})}function Pgr(e,t=pY){return Yhe(e,t)}var z$e=L(z(),1),VWn=48,GWn=260,qWn={display:"none",[vY.wideQuery]:{display:"flex"},position:"sticky",top:Vge,alignSelf:"flex-start",width:GWn,flexShrink:0,maxHeight:`calc(100vh - ${VWn}px - ${Vge})`,alignItems:"flex-start",overflowY:"auto",overflowX:"hidden",py:2};function jWn(e){document.getElementById(e)?.scrollIntoView({behavior:"smooth",block:"start"})}function Lgr({item:e,headerHeight:t}){let r=wgr(e),n=Pgr(r.map(i=>i.id),t);return r.length===0?null:(0,z$e.jsx)(Rt,{component:"nav",spacing:1,sx:qWn,children:r.map(i=>(0,z$e.jsx)(Rgr,{section:i,active:i.id===n,onSelect:jWn},i.id))})}var Igr=L(z(),1);function Mgr({to:e}){let t=Xi();return(0,Igr.jsx)(qt,{variant:"text",size:"small",onClick:()=>t(e),sx:{mb:2,textTransform:"none"},children:"\u2190 Back"})}var Dgr=L(ge(),1);var wR=L(z(),1);function Ngr({itemId:e,onDeleted:t}){let r=as(),n=yr(),[i,o]=(0,Dgr.useState)(!1);return(0,wR.jsxs)(wR.Fragment,{children:[i&&(0,wR.jsx)(vo,{onConfirm:async()=>{await bet(e,r,n),await t()},onCancel:()=>o(!1)}),(0,wR.jsx)(qt,{variant:"contained",color:"error",size:"small",onClick:()=>o(!0),children:"Delete"})]})}var H$e=L(z(),1),YWn={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"}},KWn=["todo","in-progress","done","wontdo"];function Ogr({current:e,onStatusChange:t}){return t?(0,H$e.jsx)(Kge,{value:e,options:KWn,colors:YWn,onChange:t}):(0,H$e.jsx)(bn,{label:e,size:"small",color:pge[e],sx:{fontWeight:500,fontSize:"0.75rem"}})}var I2=L(z(),1),XWn={alignItems:"center",color:"text.disabled",fontSize:"0.875rem"},ZWn={fontWeight:500,fontSize:"0.75rem"},QWn={color:"text.secondary",fontSize:"0.75rem"};function Bgr({item:e,onStatusChange:t}){let r=hge[e.type];return(0,I2.jsxs)(Rt,{direction:"row",spacing:1,sx:XWn,children:[(0,I2.jsx)(Fe,{variant:"body2",color:"text.disabled",children:so(e.id)}),r&&(0,I2.jsx)(bn,{label:e.type,size:"small",color:r,sx:ZWn}),(0,I2.jsx)(Ogr,{current:e.status,onStatusChange:t}),(0,I2.jsx)(cP,{jiraKey:e.jiraKey}),(0,I2.jsx)(lP,{githubIssue:e.githubIssue,origin:e.origin}),e.usageTotal&&(0,I2.jsx)(hB,{total:e.usageTotal,sx:QWn})]})}var Fgr=L(z(),1),$gr=ft((0,Fgr.jsx)("path",{d:"M3 17v2h6v-2zM3 5v2h10V5zm10 16v-2h8v-2h-8v-2h-2v6zM7 9v2H3v2h4v2h2V9zm14 4v-2H11v2zm-6-4h2V7h4V5h-4V3h-2z"}),"Tune");var Xge=L(ge(),1);var zgr=L(ge(),1);function Hgr(e){let{launchAssist:t}=$l(),r=Xi(),n=as(),i=yr(),[o,a]=(0,zgr.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 a0=L(z(),1);function Ugr({itemId:e}){let{launched:t,launch:r}=Hgr(e),n=S_(),i=(0,Xge.useRef)(null),[o,a]=(0,Xge.useState)(!1),s=u=>u.stopPropagation(),l=wge(n);return(0,a0.jsxs)(a0.Fragment,{children:[(0,a0.jsxs)(Q2,{ref:i,variant:"outlined",size:"small",disabled:t,children:[(0,a0.jsx)(qt,{startIcon:(0,a0.jsx)($gr,{}),onClick:u=>{s(u),r([])},children:"Refine"}),l.length>0&&(0,a0.jsx)(qt,{size:"small","aria-label":"Refine with a different harness",onClick:u=>{s(u),a(!0)},children:(0,a0.jsx)(zp,{})})]}),(0,a0.jsx)(_ge,{anchorEl:i.current,open:o,onClose:()=>a(!1),options:l,onSelect:u=>{a(!1),r(["--harness",u])},stop:s})]})}var yB=L(ge(),1);function Wgr(){let e=(0,yB.useRef)(null),[t,r]=(0,yB.useState)(!1);return(0,yB.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 Of=L(z(),1),JWn={justifyContent:"space-between",alignItems:"center",mb:2};function eVn(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 tVn(e){return t=>({position:"sticky",top:0,zIndex:1,bgcolor:"background.default",mx:-2,px:2,pb:2,borderBottom:1,borderColor:"divider",boxShadow:e?eVn(t):"none",transition:t.transitions.create("box-shadow")})}function Vgr({item:e,onDeleted:t,onStatusChange:r,ref:n}){let{sentinelRef:i,stuck:o}=Wgr();return(0,Of.jsxs)(Of.Fragment,{children:[(0,Of.jsx)(ue,{ref:i,sx:{height:0}}),(0,Of.jsxs)(ue,{ref:n,sx:tVn(o),children:[(0,Of.jsxs)(Rt,{direction:"row",sx:JWn,children:[(0,Of.jsx)(Mgr,{to:"/backlog"}),(0,Of.jsxs)(Rt,{direction:"row",spacing:1,children:[Cge(e)&&(0,Of.jsx)(zge,{itemId:e.id}),(0,Of.jsx)(Ugr,{itemId:e.id}),(0,Of.jsx)(Ngr,{itemId:e.id,onDeleted:t})]})]}),(0,Of.jsx)(Fe,{variant:"h5",component:"h2",children:e.name}),(0,Of.jsx)(Bgr,{item:e,onStatusChange:r})]})]})}var qgr=L(ge(),1);var Zge=L(ge(),1);function Ggr(e,t){let[r,n]=(0,Zge.useState)(t);return(0,Zge.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 jgr(){let e=(0,qgr.useRef)(null),t=Ggr(e,pY),r={[O$e]:`${t}px`};return{headerRef:e,headerHeight:t,style:r}}var I_=L(z(),1);function Ygr({item:e,onReload:t}){let r=Xi(),n=as(),i=yr(),{headerRef:o,headerHeight:a,style:s}=jgr();ny("ItemDetail");let l=async()=>{await t(),r("/backlog")},u=async d=>{await PJ(e.id,d,n,i),await t()},f=async(d,h)=>{await xet(e.id,d,h,n,i),await t()};return(0,I_.jsxs)(ue,{style:s,children:[(0,I_.jsx)(Vgr,{ref:o,item:e,onDeleted:l,onStatusChange:u}),(0,I_.jsx)(ue,{sx:vY.containerSx,children:(0,I_.jsxs)(ue,{sx:vY.columnsSx,children:[(0,I_.jsx)(Sgr,{item:e,onRewind:t,onCommentDeleted:t,onSubtaskStatusChange:f}),(0,I_.jsx)(Lgr,{item:e,headerHeight:a})]})})]})}var _R=L(z(),1),rVn={display:"flex",justifyContent:"center",py:6};function Kgr({onReload:e}){let[t]=Pc(),r=t.get("cwd")||void 0,n=t.get("node")||void 0,i=$n(),o=(0,Qge.useMemo)(()=>r?{...i,selectedCwd:r,selectedNode:n}:i,[i,r,n]);return ny("ItemRoute"),(0,_R.jsx)(xz.Provider,{value:o,children:(0,_R.jsx)(Yu.Provider,{value:o.selectedNode,children:(0,_R.jsx)(nVn,{onReload:e})})})}function nVn({onReload:e}){let{id:t}=h2e(),r=Number.NaN;try{r=gJ(t??"")}catch{r=Number.NaN}let{item:n,loading:i,reload:o}=Pmr(r),a=(0,Qge.useCallback)(async()=>{await Promise.all([o(),e()])},[o,e]);return i?(0,_R.jsx)(ue,{sx:rVn,children:(0,_R.jsx)(mo,{})}):n?(0,_R.jsx)(Ygr,{item:n,onReload:a}):null}var kR=L(z(),1);function Xgr({items:e,loading:t,error:r,socket:n,onReload:i}){return(0,kR.jsxs)(d5,{children:[(0,kR.jsx)(gs,{index:!0,element:(0,kR.jsx)(Amr,{items:e,loading:t,error:r,socket:n,onReload:i})}),(0,kR.jsx)(gs,{path:"items/:id",element:(0,kR.jsx)(Kgr,{onReload:i})})]})}var s0=L(ge(),1);var Zgr=new Map;function Qgr(e,t,r){return JSON.stringify([e??null,t,r??null])}var bY={get(e,t,r){return Zgr.get(Qgr(e,t,r))},set(e,t,r,n){Zgr.set(Qgr(e,t,n),r)}};function iVn(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 Jgr(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&&iVn(r.usageTotal,i.usageTotal)})}function e0r({setItems:e,setLoading:t,setError:r}){return{onLoaded:n=>{e(i=>Jgr(i,n)?i:n),t(!1),r(null)},onError:n=>{t(!1),r(n)}}}async function t0r(e,t,r,n){let i=await zT({cwd:e,node:n,signal:r,filter:t});return r.aborted||bY.set(e,t,i,n),i}function r0r(e,t,r,{onLoaded:n,onError:i},o){return(async()=>{try{let a=await t0r(e,t,r,o);r.aborted||n(a)}catch(a){r.aborted||i(a instanceof Error?a.message:"Failed to load.")}})()}var oVn=5e3;function n0r(e,t,r,n){let i=new AbortController,o=!1,a=()=>{o||(o=!0,r0r(e,t,i.signal,r,n).finally(()=>{o=!1}))};a();let s=setInterval(a,oVn);return()=>{i.abort(),clearInterval(s)}}function i0r(){let e=as(),t=yr(),[r]=rB(),n=bY.get(e,r,t),i=n??[],o=n===void 0,[a,s]=(0,s0.useState)(i),[l,u]=(0,s0.useState)(o),[f,d]=(0,s0.useState)(null),[h,p]=(0,s0.useState)(e),[m,g]=(0,s0.useState)(t),[y,v]=(0,s0.useState)(r);(e!==h||t!==m||r!==y)&&(p(e),g(t),v(r),s(i),u(o),d(null));let b=(0,s0.useCallback)(async()=>{let x=await zT({cwd:e,node:t,filter:r});s(x),bY.set(e,r,x,t),u(!1)},[e,t,r]);return(0,s0.useEffect)(()=>n0r(e,r,e0r({setItems:s,setLoading:u,setError:d}),t),[e,t,r]),{items:a,loading:l,error:f,reload:b}}var xY=L(z(),1);function o0r({socket:e}){let{items:t,loading:r,error:n,reload:i}=i0r();return lte(!r),(0,xY.jsx)(E$e.Provider,{value:e.sessions,children:(0,xY.jsx)(d5,{children:(0,xY.jsx)(gs,{path:"/*",element:(0,xY.jsx)(Xgr,{items:t,loading:r,error:n,socket:e,onReload:i})})})})}var U$e=L(z(),1);function a0r({socket:e}){return(0,U$e.jsx)(IF,{maxWidth:"lg",sx:{py:3,px:2},children:(0,U$e.jsx)(o0r,{socket:e})})}var ki=L(z(),1);function s0r({socket:e}){return ny("AppRoutes"),(0,ki.jsxs)(ki.Fragment,{children:[(0,ki.jsx)(ior,{}),(0,ki.jsx)(d5,{children:(0,ki.jsxs)(gs,{element:(0,ki.jsx)(git,{socket:e}),children:[(0,ki.jsx)(gs,{path:"sessions",element:(0,ki.jsx)(zdr,{socket:e})}),(0,ki.jsx)(gs,{path:"backlog/*",element:(0,ki.jsx)(a0r,{socket:e})}),(0,ki.jsx)(gs,{path:"next",element:(0,ki.jsx)(yir,{sessions:e.sessions,selectSession:e.selectSession})}),(0,ki.jsx)(gs,{path:"news",element:(0,ki.jsx)(Pnr,{})}),(0,ki.jsx)(gs,{path:"releases",element:(0,ki.jsx)(eor,{})}),(0,ki.jsx)(gs,{path:"usage",element:(0,ki.jsx)(Tpr,{})}),(0,ki.jsx)(gs,{path:"backups",element:(0,ki.jsx)(wit,{})}),(0,ki.jsx)(gs,{path:"config",element:(0,ki.jsx)(vat,{})}),(0,ki.jsx)(gs,{path:"updates",element:(0,ki.jsx)(Mhr,{reconnecting:e.reconnecting,selectSession:e.selectSession})}),(0,ki.jsx)(gs,{path:"diff",element:(0,ki.jsx)(Krr,{socket:e})}),(0,ki.jsx)(gs,{path:"file",element:(0,ki.jsx)(_nr,{socket:e})}),(0,ki.jsx)(gs,{path:"*",element:(0,ki.jsx)(b2e,{to:"/sessions",replace:!0})})]})})]})}var n0e=L(ge(),1);var r0e=L(ge(),1);function l0r(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 D_=L(z(),1),aVn={display:"flex",gap:1,alignItems:"center",minWidth:0},sVn={display:"flex",gap:1,alignItems:"baseline",minWidth:0,overflow:"hidden"},lVn={fontFamily:"monospace",fontSize:13,whiteSpace:"nowrap"},cVn={fontFamily:"monospace",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function uVn(e){let t=e.lastIndexOf("/");return t===-1?{dir:"",basename:e}:{dir:e.slice(0,t),basename:e.slice(t+1)}}function c0r({files:e,highlight:t,onHighlight:r,onSelect:n}){return(0,D_.jsx)(Tp,{dense:!0,sx:{py:0},children:e.map((i,o)=>{let{dir:a,basename:s}=uVn(i);return(0,D_.jsxs)(un,{selected:o===t,onMouseEnter:()=>r(o),onClick:()=>n(i),sx:aVn,children:[(0,D_.jsx)(QO,{path:i}),(0,D_.jsxs)(ue,{sx:sVn,children:[(0,D_.jsx)(Fe,{component:"span",sx:lVn,children:s}),(0,D_.jsx)(Fe,{component:"span",color:"text.secondary",sx:cVn,children:a})]})]},i)})})}var Jge=L(z(),1),fVn={maxHeight:420,overflowY:"auto"},dVn={px:2,py:2,fontSize:13};function u0r({message:e,files:t,highlight:r,onHighlight:n,onSelect:i}){return(0,Jge.jsx)(ue,{sx:fVn,children:e?(0,Jge.jsx)(Fe,{color:"text.secondary",sx:dVn,children:e}):(0,Jge.jsx)(c0r,{files:t,highlight:r,onHighlight:n,onSelect:i})})}var f0r=L(z(),1),hVn={mt:6,alignSelf:"flex-start"};function e0e({onClose:e,onEntered:t,centered:r=!1,children:n}){return(0,f0r.jsx)(Ps,{open:!0,onClose:e,maxWidth:"sm",fullWidth:!0,slotProps:{paper:{sx:r?void 0:hVn},transition:{onEntered:t}},children:n})}var t0e=L(ge(),1);var d0r={files:[],loading:!1,error:!1};function h0r(e,t){let[r,n]=(0,t0e.useState)(d0r),i=yr();return(0,t0e.useEffect)(()=>{if(!e){n(d0r);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 ER=L(z(),1);function pVn(e,t,r){let n=new URLSearchParams({path:e});return t&&n.set("cwd",t),t&&r&&n.set("node",r),`/file?${n}`}function p0r({onClose:e}){let{worktreeNode:t}=$n();return(0,ER.jsx)(Yu.Provider,{value:t,children:(0,ER.jsx)(mVn,{onClose:e})})}function mVn({onClose:e}){let{worktreeCwd:t,worktreeNode:r}=$n(),[n,i]=(0,r0e.useState)(""),o=h0r(t,n),a=Xi(),s=(0,r0e.useRef)(null),l=p=>a(pVn(p,t,r)),{highlight:u,setHighlight:f,onKeyDown:d}=k_(o.files,n,l,e),h=p=>{l(p),e()};return(0,ER.jsxs)(e0e,{onClose:e,onEntered:()=>s.current?.focus(),children:[(0,ER.jsx)(aB,{autoFocus:!0,inputRef:s,value:n,onChange:i,onKeyDown:d,placeholder:"Search files by name..."}),(0,ER.jsx)(u0r,{message:l0r(t,n,o),files:o.files,highlight:u,onHighlight:f,onSelect:h})]})}function m0r(e){Io(Yn("quickOpen").matches,e)}var y0r=L(z(),1);function g0r(){let[e,t]=(0,n0e.useState)(!1);return m0r((0,n0e.useCallback)(()=>t(!0),[])),e?(0,y0r.jsx)(p0r,{onClose:()=>t(!1)}):null}var i0e=L(z(),1);function v0r({notice:e,onClose:t,onView:r}){let n=e?.sessionId??null;return(0,i0e.jsx)(ol,{open:e!==null,autoHideDuration:6e3,onClose:t,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,i0e.jsx)(ri,{severity:"success",variant:"filled",onClose:t,action:n!==null?(0,i0e.jsx)(qt,{color:"inherit",size:"small",onClick:()=>r(n),children:"View"}):void 0,children:e?.message})})}var c0e=L(ge(),1);function b0r(e){let t=["claude"];return e.exposeCodexActions&&t.push("codex"),e.exposePiActions&&t.push("pi"),t}var M0r=L(ge(),1);var x0r=L(z(),1),T0r=ft((0,x0r.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 N_="0.784.1";var gVn={connected:"success.main",connecting:"warning.main",disconnected:"error.main","version-blocked":"error.main"};function S0r(e){return e?gVn[e]:"success.main"}function C0r(e){return e.split("-")[0].split(".").map(Number)}function w0r(e,t){if(!e||!t||e===t)return;let r=C0r(e),n=C0r(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 o0e=L(ge(),1),W$e=(0,o0e.createContext)(null);function a0e(){return(0,o0e.useContext)(W$e)}var RR=L(z(),1),yVn={height:16,fontSize:10},vVn={opacity:.6,fontSize:"0.85em"};function bVn(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 TY({nodes:e,name:t,showVersion:r=!1}){let n=a0e()??N_,i=e.links.find(a=>a.name===t),o=w0r(i?.peerVersion,n);return(0,RR.jsx)(lr,{title:bVn(e,t),placement:"right",children:(0,RR.jsxs)(ue,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.75},children:[(0,RR.jsx)(T0r,{sx:{fontSize:8,color:S0r(i?.state)}}),t,r&&i?.peerVersion&&(0,RR.jsxs)(ue,{component:"span",sx:vVn,children:["v",i.peerVersion]}),o&&(0,RR.jsx)(bn,{label:o,size:"small",color:o==="behind"?"warning":"info",sx:yVn})]})})}var AR=L(z(),1),xVn={opacity:.6},TVn={display:"inline-flex",alignItems:"center",gap:.5,px:.5,border:1,borderStyle:"dashed",borderRadius:1};function _0r({nodes:e,name:t,clone:r}){let n=(0,AR.jsx)(TY,{nodes:e,name:t});return r.kind==="cloned"?n:r.kind==="unavailable"?(0,AR.jsx)(ue,{component:"span",sx:xVn,children:n}):(0,AR.jsx)(lr,{title:oB(t,r.cloneTarget),children:(0,AR.jsxs)(ue,{component:"span",sx:TVn,children:[(0,AR.jsx)(iB,{sx:{fontSize:14}}),n]})})}var E0r=L(z(),1),SVn={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 k0r({value:e,label:t,checked:r,autoFocus:n,onSelect:i}){return(0,E0r.jsx)(Dn,{role:"radio","aria-checked":r,"data-value":e,tabIndex:r?0:-1,autoFocus:n&&r,onClick:i,sx:SVn,children:t})}var R0r={ArrowRight:1,ArrowLeft:-1};function CVn(e,t,r){if(e.key==="Tab"){let n=t+(e.shiftKey?-1:1);return n>=0&&n<r?n:void 0}return(t+R0r[e.key]+r)%r}function A0r(e,t,r,n){return i=>{if(i.key==="ArrowUp"||i.key==="ArrowDown"){if(!n)return;i.preventDefault(),n();return}if(i.key!=="Tab"&&!R0r[i.key]){lb(i);return}let o=CVn(i,e.indexOf(t),e.length);o!==void 0&&(i.preventDefault(),r(e[o]),i.currentTarget.querySelector(`[data-value="${e[o]}"]`)?.focus())}}var P0r=L(ge(),1);function vB(e){return e?.querySelector('[aria-checked="true"]')}function L0r(e,t){(0,P0r.useEffect)(()=>{let r=e.current;if(!r?.contains(document.activeElement))return;let n=vB(r);n&&n!==document.activeElement&&n.focus()},[e,t])}var V$e=L(z(),1),wVn={border:1,borderColor:"divider",borderRadius:1,height:40,p:"2px",flexShrink:0};function s0e({label:e,options:t,value:r,onChange:n,optionLabel:i=u=>u,groupRef:o,autoFocus:a,onTrack:s,onToggleRow:l}){return L0r(o,r),(0,V$e.jsx)(Rt,{ref:o,direction:"row",role:"radiogroup","aria-label":e,spacing:"2px",onFocus:s,onKeyDown:A0r(t,r,n,l),sx:wVn,children:t.map(u=>(0,V$e.jsx)(k0r,{value:u,label:i(u),checked:u===r,autoFocus:a,onSelect:()=>n(u)},u))})}var G$e=L(z(),1);function I0r({value:e,onChange:t,cloneState:r}){let{nodes:n,names:i,visible:o}=Nu(),a=(0,M0r.useRef)(null);return!o||!n||!e?null:(0,G$e.jsx)(s0e,{label:"Machine",options:i,value:e,onChange:t,optionLabel:s=>(0,G$e.jsx)(_0r,{nodes:n,name:s,clone:r(s)}),groupRef:a,autoFocus:!1,onTrack:()=>{}})}var N0r=L(z(),1);function D0r({value:e,onChange:t,placeholder:r,inputRef:n,autoFocus:i,onTrack:o}){return(0,N0r.jsx)(ni,{value:e,onChange:a=>t(a.target.value),onKeyDown:lb,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 $0r=L(ge(),1);var D2={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:$ee,submitLabel:"Start session"},design:{placeholder:"Describe the design task...",submitLabel:"Start design"}},O0r=Object.keys(D2);var q$e=L(z(),1);function B0r({anchor:e,harness:t,harnesses:r,onPick:n,onClose:i}){return(0,q$e.jsx)(Dl,{open:e!==null,anchorEl:e,onClose:i,slotProps:{list:{dense:!0,"aria-label":"Harness"}},children:r.map(o=>(0,q$e.jsx)(un,{role:"menuitemradio","aria-checked":o===t,selected:o===t,onClick:()=>{n(o),i()},sx:{fontSize:13},children:gu(o)},o))})}var PR=L(z(),1);function F0r(e){return t=>t==="prompt"&&e?(0,PR.jsxs)(PR.Fragment,{children:["prompt",(0,PR.jsx)(ue,{component:"span",sx:{fontWeight:400,whiteSpace:"pre"},children:` \xB7 ${gu(e)}`}),(0,PR.jsx)(zp,{sx:{fontSize:18,mr:-.75}})]}):t}var LR=L(z(),1);function z0r({draft:e,harness:t,harnesses:r,focus:n}){let[i,o]=(0,$0r.useState)(null),a=e.mode==="prompt"&&r.length>1,s=()=>o(vB(n.modeRef.current)??null),l=u=>{a&&u==="prompt"?s():e.setMode(u)};return(0,LR.jsxs)(LR.Fragment,{children:[(0,LR.jsx)(s0e,{label:"Mode",options:O0r,value:e.mode,onChange:l,optionLabel:F0r(r.length>1?t:void 0),groupRef:n.modeRef,autoFocus:n.autoFocus==="mode",onTrack:n.trackMode,onToggleRow:a?s:void 0}),(0,LR.jsx)(B0r,{anchor:i,harness:t,harnesses:r,onPick:e.setHarness,onClose:()=>o(null)})]})}var Z0r=L(ge(),1);var j$e=L(z(),1),_Vn={zIndex:e=>e.zIndex.modal+1};function H0r({open:e,anchor:t,children:r}){return(0,j$e.jsx)(OA,{open:e,anchorEl:t,placement:"bottom-start",sx:_Vn,children:(0,j$e.jsx)(an,{sx:{maxHeight:240,overflowY:"auto",width:t?.clientWidth},onMouseDown:n=>n.preventDefault(),children:r})})}function U0r(e){return{htmlInput:{role:"combobox","aria-label":"Repo","aria-expanded":e},input:{sx:{fontSize:13,height:40}}}}var W0r=L(cF(),1);function V0r({open:e,highlighted:t,accept:r,close:n,navigate:i,openList:o}){return a=>{if(!e){if(a.key==="ArrowDown"){a.preventDefault(),o();return}lb(a);return}if(a.key!=="Escape"){if(a.key==="Enter"){if(a.preventDefault(),t===void 0)return;(0,W0r.flushSync)(()=>{r(t),n()}),lb(a);return}if(a.key!=="Tab"){i(a);return}t!==void 0&&r(t),n()}}}function G0r(e,t){let r=t.trim().toLowerCase();return r?e.filter(n=>K1(n).toLowerCase().includes(r)):e}var Y$e=L(ge(),1);function q0r(){let[e,t]=(0,Y$e.useState)(!1),[r,n]=(0,Y$e.useState)("");return{open:e,query:r,show:()=>t(!0),filterBy:i=>{n(i),t(!0)},close:()=>{t(!1),n("")}}}var Y0r=L(ge(),1);var j0r=e=>e?K1(e):"";function K0r(e){let[t,r]=(0,Y0r.useState)(()=>j0r(e));return{text:t,setText:r,showRepo:n=>r(j0r(n))}}function X0r(e,t,r){let n=q0r(),i=K0r(t),o=G0r(e,n.query),a=f=>{r(f),i.showRepo(f)},s=k_(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:V0r({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 bB=L(z(),1);function Q0r({repos:e,value:t,onChange:r,inputRef:n,autoFocus:i,onTrack:o}){let a=X0r(e,t,r),s=(0,Z0r.useRef)(null);return(0,bB.jsxs)(ue,{ref:s,sx:{flex:1,minWidth:0},children:[(0,bB.jsx)(ni,{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:U0r(a.open)}),(0,bB.jsx)(H0r,{open:a.open,anchor:s.current,children:(0,bB.jsx)(Oge,{repos:a.filtered,selected:t,highlight:a.highlight,onHighlight:a.setHighlight,onSelect:a.pick})})]})}var O_=L(z(),1);function J0r({cloneState:e,...t}){let{draft:r,focus:n}=t,{repos:i}=$n();return(0,O_.jsxs)(Rt,{spacing:1,sx:{p:1},children:[(0,O_.jsx)(D0r,{value:r.prompt,onChange:r.setPrompt,placeholder:D2[r.mode].placeholder,inputRef:n.promptRef,autoFocus:n.autoFocus==="prompt",onTrack:n.trackPrompt}),(0,O_.jsxs)(Rt,{direction:"row",spacing:1,sx:{alignItems:"flex-start"},children:[(0,O_.jsx)(Q0r,{repos:i,value:r.cwd,onChange:r.setCwd,inputRef:n.repoRef,autoFocus:n.autoFocus==="repo",onTrack:n.trackRepo}),(0,O_.jsx)(z0r,{...t})]}),(0,O_.jsx)(I0r,{value:r.node,onChange:r.setNode,cloneState:e})]})}var xB=L(z(),1),kVn=["Enter start","Shift+Enter newline","Esc close"],EVn={alignItems:"center",px:1.5,py:1,borderTop:1,borderColor:"divider",bgcolor:"action.hover"};function eyr({submitLabel:e,disabled:t=!1}){return(0,xB.jsxs)(Rt,{direction:"row",spacing:1.5,sx:EVn,children:[(0,xB.jsx)(Rt,{direction:"row",spacing:1.5,sx:{mr:"auto"},children:kVn.map(r=>(0,xB.jsx)(Fe,{variant:"caption",color:"text.secondary",children:r},r))}),(0,xB.jsx)(qt,{type:"submit",variant:"contained",size:"small",disabled:t,children:e})]})}function tyr({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}]:[];unt(D2[e].sessionMode,n,(u,f)=>o.onCreateAssist(u,f,...l),()=>{},r)}function ryr(e,t,r,n){return r.kind==="blocked"?!1:r.kind==="clone"?(Rge(r.prompt,n.onCreateAssist),!0):(tyr({mode:e.mode,harness:t,prompt:e.prompt,cwd:r.cwd,node:e.node},n),e.clear(),!0)}var MR=L(ge(),1);function nyr(e,t){let r=(0,MR.useRef)(e),n=(0,MR.useRef)(null),i=(0,MR.useRef)(null),o=(0,MR.useRef)(null),a=(0,MR.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:vB(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 RVn(e,t,r){return e?r.kind==="cloned"?{kind:"launch",cwd:r.cwd}:r.kind==="clonable"?{kind:"clone",prompt:Fge(r,t)}:{kind:"blocked"}:{kind:"launch",cwd:e}}function iyr(e,t){let{names:r,visible:n}=Nu(),i=Ige(t,n?r:[void 0]);return{cloneState:i,target:RVn(t,e,i(e))}}var TB=L(z(),1);function oyr({draft:e,launchers:t,onClose:r}){let n=nyr(e.focus,e.setFocus),i=b0r(S_()),o=i.includes(e.harness)?e.harness:"claude",{target:a,cloneState:s}=iyr(e.node,e.cwd),l=u=>{u.preventDefault(),ryr(e,o,a,t)&&r()};return(0,TB.jsx)(e0e,{onClose:r,onEntered:n.restore,centered:!0,children:(0,TB.jsxs)("form",{onSubmit:l,children:[(0,TB.jsx)(J0r,{draft:e,harness:o,harnesses:i,focus:n,cloneState:s}),(0,TB.jsx)(eyr,{submitLabel:a.kind==="clone"?"Clone":D2[e.mode].submitLabel,disabled:a.kind==="blocked"})]})})}var l0e=L(ge(),1);function ayr(e){let[t,r]=(0,l0e.useState)(null);return(0,l0e.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(D2,s?.mode)&&(i=s.mode)}catch{}n||r(i)})(),()=>{n=!0}},[e]),t}function syr(e,{visible:t,names:r,selected:n}){if(t)return e&&r.includes(e)?e:n}var N2=L(ge(),1),lyr={field:"prompt",selectionStart:0,selectionEnd:0};function cyr(){let[e,t]=(0,N2.useState)(""),[r,n]=(0,N2.useState)(),[i,o]=(0,N2.useState)(),[a,s]=(0,N2.useState)("claude"),[l,u]=(0,N2.useState)(),[f,d]=(0,N2.useState)(lyr),h=(0,N2.useCallback)(()=>{t(""),n(void 0),o(void 0),u(void 0),d(lyr)},[]);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 uyr(e=ayr){let{selectedCwd:t}=$n(),r=Nu(),n=cyr(),i=n.cwd??t,o=e(i);return o?{...n,cwd:i,mode:n.mode??o,node:syr(n.node,r)}:null}function fyr(e){Io(Yn("newSession").matches,e)}var dyr=L(ge(),1);function hyr(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,dyr.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 myr=L(z(),1);function pyr({launchers:e}){let[t,r]=(0,c0e.useState)(!1),n=uyr(),i=(0,c0e.useCallback)(()=>r(!0),[]);return fyr(i),hyr(n,i),!t||!n?null:(0,myr.jsx)(oyr,{draft:n,launchers:e,onClose:()=>r(!1)})}var u0e=L(z(),1);function gyr({reconnecting:e}){return(0,u0e.jsx)(ol,{open:e,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,u0e.jsx)(ri,{severity:"info",variant:"filled",icon:(0,u0e.jsx)(mo,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var ev=L(z(),1);function yyr({socket:e,onViewLaunchedSession:t}){return(0,ev.jsxs)(ev.Fragment,{children:[(0,ev.jsx)(g0r,{}),(0,ev.jsx)(pyr,{launchers:{onCreate:e.createSession,onCreateDesign:e.createDesignSession,onCreateHarness:e.createHarnessSession,onCreateAssist:e.createAssistSession}}),(0,ev.jsx)(gyr,{reconnecting:e.reconnecting}),(0,ev.jsx)(vu,{error:e.error,onClose:e.clearError}),(0,ev.jsx)(v0r,{notice:e.success,onClose:e.clearSuccess,onView:t})]})}var l0=L(ge(),1);var AVn=6e4;function vyr(e){let t=e.nodes?.local,r=e.names.join(`
3976
+ `,Lpr={...Ppr,borderColor:"warning.main",borderLeft:4,borderLeftColor:"warning.main",bgcolor:e=>Ea(e.palette.warning.main,.08)},wUn={...Lpr,borderLeftColor:"transparent",backgroundImage:e=>`repeating-linear-gradient(to bottom, ${e.palette.warning.main} 0 ${Rpr}px, transparent ${Rpr}px ${A$e}px)`,backgroundOrigin:"border-box",backgroundRepeat:"repeat-y",backgroundSize:`4px ${A$e}px`,animation:`${CUn} 0.9s linear infinite`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}},Apr={"& .MuiButtonBase-root:focus-visible":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:"2px"}},j1={card:Ppr,inProgressCard:Lpr,inProgressRunningCard:wUn,main:{minWidth:0,textAlign:"left"},stretchedNameLink:{display:"block",fontWeight:500,color:"text.primary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",...SUn},meta:{display:"flex",alignItems:"center",gap:1,...Epr,width:"fit-content",maxWidth:"100%",fontSize:"0.75rem",color:"text.secondary","& a, & p":{fontSize:"0.75rem"},...Apr},id:{color:"text.disabled"},actions:{display:"flex",alignItems:"center",gap:1,flexShrink:0,...Epr,...Apr}};function Sge(e){let t=e.peakContextPct>0?` \xB7 \u2593 ${Math.round(e.peakContextPct)}%`:"";return`\u2191 ${zd(e.tokensUp)} \u2193 ${zd(e.tokensDown)} \xB7 \u23F1 ${r0(e.activeMs)}${t}`}var Ipr=L(z(),1),_Un={width:6,height:6,borderRadius:"50%",bgcolor:"currentColor",flexShrink:0};function Mpr(){return(0,Ipr.jsx)(ue,{component:"span",sx:_Un})}var lY=L(z(),1),Dpr={display:"inline-flex",alignItems:"center",gap:.625,color:"warning.main",fontWeight:500,fontSize:"0.75rem",whiteSpace:"nowrap",borderRadius:1};function Npr({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,lY.jsx)(Mpr,{});if(!t)return(0,lY.jsxs)(ue,{component:"span",sx:Dpr,children:[o,i]});let a=()=>{r?.(t.id),n("/sessions")};return(0,lY.jsxs)(Dn,{sx:Dpr,title:`Open the ${t.status} session`,onClick:a,children:[o,i]})}var np=L(z(),1),kUn={display:"inline-flex",alignItems:"center",gap:.5},EUn={width:8,height:8,borderRadius:"50%",flexShrink:0},RUn={whiteSpace:"nowrap"};function AUn({type:e}){let t=hge[e];return(0,np.jsxs)(ue,{component:"span",sx:kUn,children:[(0,np.jsx)(ue,{component:"span",sx:{...EUn,bgcolor:`${t}.main`}}),e]})}function PUn({item:e}){return e.usageTotal?(0,np.jsx)(lr,{title:Sge(e.usageTotal),children:(0,np.jsx)(ue,{component:"span",sx:RUn,children:`\u23F1 ${r0(e.usageTotal.activeMs)}`})}):null}function Opr({item:e,openSession:t,onSelectSession:r}){return(0,np.jsxs)(ue,{sx:j1.meta,children:[(0,np.jsx)(ue,{component:"span",sx:j1.id,children:so(e.id)}),(0,np.jsx)(AUn,{type:e.type}),(0,np.jsx)(Npr,{item:e,openSession:t,onSelectSession:r}),(0,np.jsx)(cP,{jiraKey:e.jiraKey}),(0,np.jsx)(lP,{githubIssue:e.githubIssue,variant:"icon"}),(0,np.jsx)(PUn,{item:e})]})}function Bpr(e,t){return e.filter(r=>wP(r)?.itemId===t).reduce((r,n)=>r&&r.startedAt>=n.startedAt?r:n,void 0)}var $pr=L(z(),1),LUn={todo:"\u25CB","in-progress":"\u25D4",done:"\u25CF",wontdo:"\u2715"},MUn={todo:"text.disabled","in-progress":"warning.main",done:"success.main",wontdo:"error.main"};function IUn(e){return{fontSize:"1.125rem",flexShrink:0,color:MUn[e]}}function Fpr({status:e}){return(0,$pr.jsx)(Fe,{sx:IUn(e),children:LUn[e]})}function Cge(e){return e.status==="todo"||e.status==="in-progress"}function DUn(e){if(e.status==="done")return e.totalPhases;if(e.status==="in-progress")return e.currentPhase}function NUn(e,t,r){return r?"complete":e<t?"done":e===t?"current":"remaining"}function zpr(e){let t=e.totalPhases,r=DUn(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:NUn(o+1,r,n)}))}}var nB=L(z(),1),OUn={done:"text.secondary",current:"warning.main",remaining:"divider",complete:"success.main"},BUn={display:"inline-flex",alignItems:"center",gap:.5,flexShrink:0},FUn={fontSize:"0.6875rem",color:"text.secondary",fontVariantNumeric:"tabular-nums"},$Un={display:"inline-flex",alignItems:"center",gap:"2px"},zUn={width:6,height:12,borderRadius:"1px",flexShrink:0};function Hpr({item:e}){let t=zpr(e);return t?(0,nB.jsxs)(ue,{sx:BUn,title:`Phase ${t.reached} of ${t.total}`,children:[(0,nB.jsx)(ue,{component:"span",sx:FUn,children:`${t.reached}/${t.total}`}),(0,nB.jsx)(ue,{component:"span",sx:$Un,"aria-hidden":!0,children:t.segments.map(r=>(0,nB.jsx)(ue,{component:"span","data-segment":r.kind,sx:{...zUn,bgcolor:OUn[r.kind]}},r.phase))})]}):null}var smr=L(ge(),1);var kge=L(ge(),1);var cY=L(z(),1);function Upr({tooltip:e,disabled:t,onClick:r}){return(0,cY.jsx)(lr,{title:e,children:(0,cY.jsx)(ue,{component:"span",sx:{display:"flex"},children:(0,cY.jsx)(qt,{startIcon:(0,cY.jsx)(Op,{}),disabled:t,onClick:r,children:"Build"})})})}var P$e=L(z(),1);function wge(e){let t=[];return e.exposeCodexActions&&t.push({kind:"codex",label:"with Codex"}),e.exposePiActions&&t.push({kind:"pi",label:"with pi"}),t}function _ge({anchorEl:e,open:t,onClose:r,options:n,onSelect:i,stop:o}){return(0,P$e.jsx)(Dl,{anchorEl:e,open:t,onClose:r,onClick:o,children:n.map(a=>(0,P$e.jsx)(un,{onClick:s=>{o(s),i(a.kind)},children:a.label},a.kind))})}var Y1=L(z(),1);function Wpr({tooltip:e,disabled:t,onBuild:r,onSelectHarness:n}){let i=wge(S_()),o=(0,kge.useRef)(null),[a,s]=(0,kge.useState)(!1),l=u=>u.stopPropagation();return(0,Y1.jsxs)(Y1.Fragment,{children:[(0,Y1.jsxs)(Q2,{ref:o,variant:"contained",color:"success",size:"small",disabled:t,children:[(0,Y1.jsx)(Upr,{tooltip:e,disabled:t,onClick:u=>{l(u),r()}}),i.length>0&&(0,Y1.jsx)(qt,{"aria-label":"Build with a different harness",onClick:u=>{l(u),s(!0)},children:(0,Y1.jsx)(zp,{})})]}),(0,Y1.jsx)(_ge,{anchorEl:o.current,open:a,onClose:()=>s(!1),options:i,onSelect:u=>{s(!1),n(u)},stop:l})]})}var Vpr=L(z(),1),iB=ft((0,Vpr.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 __=L(z(),1),HUn={vertical:"bottom",horizontal:"center"};function Ege({clone:e}){let{prompt:t,confirm:r,cancel:n,error:i,dismissError:o}=e;return(0,__.jsxs)(__.Fragment,{children:[t&&(0,__.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,__.jsx)(ol,{open:!!i,autoHideDuration:8e3,onClose:o,anchorOrigin:HUn,children:(0,__.jsx)(ri,{severity:"error",onClose:o,variant:"filled",children:i})})]})}var o0=L(ge(),1);function L$e(e){return["backlog","clone",e]}function Rge(e,t){t(L$e(e.origin),void 0,{title:`Clone ${e.displayName}`,subtitle:e.origin,...e.node&&{node:e.node}})}function Gpr(e,t){return!!e&&e.length===t.length&&e.every((r,n)=>r===t[n])}function qpr(e,t,r){let n=L$e(t.origin),i=new Set(e.filter(o=>Gpr(o.assistArgs,n)).map(o=>o.id));return Rge(t,r),{args:n,target:t.cloneTarget,node:t.node,preexisting:i}}function jpr(e,t){if(!t.id){let n=e.find(i=>Gpr(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 Age(e){let{setSelectedCwd:t}=$n(),{launchAssist:r}=$l(),[n,i]=(0,o0.useState)(null),[o,a]=(0,o0.useState)(null),[s,l]=(0,o0.useState)(null),u=(0,o0.useCallback)(p=>{l(null),i(p)},[]),f=(0,o0.useCallback)(()=>i(null),[]),d=(0,o0.useCallback)(()=>l(null),[]),h=(0,o0.useCallback)(()=>{n&&(a(qpr(e,n,r)),i(null))},[n,e,r]);return(0,o0.useEffect)(()=>{if(!o)return;let p=jpr(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 oB(e,t){return`Not cloned ${e?`on ${e}`:"locally"} \u2014 click to clone into ${t}`}var E2=L(z(),1),UUn={border:1,borderStyle:"dashed"};function Ypr({target:e}){let t=Age(Tge());return(0,E2.jsxs)(E2.Fragment,{children:[(0,E2.jsx)(lr,{title:oB(e.node,e.cloneTarget),children:(0,E2.jsx)(sr,{"aria-label":"Clone",size:"small",sx:UUn,onClick:r=>{r.stopPropagation(),t.requestClone(e)},children:(0,E2.jsx)(iB,{fontSize:"small"})})}),(0,E2.jsx)(Ege,{clone:t})]})}function Kpr(e,t,r,n){let i=r.node?[{node:r.node}]:[];e(["backlog","run",so(t),...n],r.cwd,...i)}var uY=L(z(),1);function Xpr({tooltip:e,disabled:t,onClick:r}){return(0,uY.jsx)(lr,{title:e,children:(0,uY.jsx)("span",{children:(0,uY.jsx)(sr,{"aria-label":"Build",color:"success",size:"small",disabled:t,onClick:r,children:(0,uY.jsx)(Op,{})})})})}function WUn(e,t){let r=e.assistArgs;if(r?.[0]!=="backlog"||r[1]!=="run"||!r[2])return!1;try{return gJ(r[2])===t}catch{return!1}}function Zpr(e,t){return e.find(r=>r.status!=="done"&&r.status!=="error"&&(WUn(r,t)||wP(r)?.itemId===t))}var Pge=L(ge(),1),M$e=(0,Pge.createContext)({nodes:null,names:[],visible:!1,selected:void 0,select:()=>{}});function Nu(){return(0,Pge.useContext)(M$e)}function Lge(){let{nodes:e,selected:t}=Nu();return t&&t!==e?.local?t:void 0}var emr=L(ge(),1);var Mge=L(ge(),1);function Qpr(e,t){return Promise.all(t.map(async r=>{let n=await VUn(e,r).catch(()=>({}));return[r,n]}))}async function VUn(e,t){let r=await fetch(tn(`/api/repo-location?origin=${encodeURIComponent(e)}`,t||void 0));return r.ok?r.json():{}}var I$e="\0";function Jpr(e,t){let[r,n]=(0,Mge.useState)(null);return(0,Mge.useEffect)(()=>{if(!e||!t)return;let i=!1;return Qpr(e,t.split(I$e)).then(o=>{i||n({origin:e,byNode:Object.fromEntries(o)})}),()=>{i=!0}},[e,t]),r}function Ige(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(I$e),a=Jpr(i,o);return(0,emr.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 sB=L(ge(),1);var tmr=L(z(),1);function aB({inputRef:e,value:t,onChange:r,onKeyDown:n,placeholder:i,autoFocus:o}){return(0,tmr.jsx)(ni,{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 Dge=L(ge(),1);function Nge(e){let t=(0,Dge.useRef)(null);return(0,Dge.useEffect)(()=>{e&&t.current?.scrollIntoView({block:"nearest"})},[e]),t}var nmr=L(z(),1);function rmr({cwd:e,selected:t,highlighted:r,onHover:n,onSelect:i}){let o=Nge(r);return(0,nmr.jsx)(un,{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:K1(e)})}var D$e=L(z(),1);function Oge({repos:e,selected:t,highlight:r,onHighlight:n,onSelect:i}){return(0,D$e.jsx)(Tp,{dense:!0,children:e.map((o,a)=>(0,D$e.jsx)(rmr,{cwd:o,selected:o===t,highlighted:a===r,onHover:()=>n(a),onSelect:()=>i(o)},o))})}var Bge=L(ge(),1);function k_(e,t,r,n){let[i,o]=(0,Bge.useState)(0);return(0,Bge.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 fY=L(z(),1);function K1(e){let t=e.includes("\\")?"\\":"/";return e.split(t).filter(Boolean).pop()??e}var GUn={...LP};function imr({repos:e,selected:t,onSelect:r,close:n}){let[i,o]=(0,sB.useState)(""),a=(0,sB.useRef)(null);(0,sB.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}=k_(l,s,r,n);return(0,fY.jsxs)(an,{elevation:4,sx:GUn,children:[(0,fY.jsx)(aB,{inputRef:a,value:i,onChange:o,onKeyDown:d,placeholder:"Filter repos..."}),(0,fY.jsx)(Oge,{repos:l,selected:t,highlight:u,onHighlight:f,onSelect:p=>{r(p),n()}})]})}function Fge(e,t){return{origin:e.origin,cloneTarget:e.cloneTarget,displayName:K1(e.origin),node:t}}function omr(){let e=as(),t=Lge(),r=Ige(e??"",[t])(t);return e?r.kind==="cloned"?{kind:"ready",cwd:r.cwd,node:t}:r.kind==="clonable"?{kind:"clone",prompt:Fge(r,t)}:{kind:"unavailable",node:t??"this machine"}:{kind:"ready",node:t}}function amr(e,t){return t?`Not cloned on ${t}`:e?"Already running \u2014 close that session to run it again":"Build"}var $ge=L(z(),1);function zge({itemId:e,compact:t=!1}){let{launchAssist:r}=$l(),n=omr(),i=Zpr(Tge(),e),[o,a]=(0,smr.useState)(!1);if(n.kind==="clone")return(0,$ge.jsx)(Ypr,{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),Kpr(r,e,n,d))},f=amr(i!==void 0,s);return t?(0,$ge.jsx)(Xpr,{tooltip:f,disabled:l,onClick:d=>{d.stopPropagation(),u([])}}):(0,$ge.jsx)(Wpr,{tooltip:f,disabled:l,onBuild:()=>u([]),onSelectHarness:d=>u(["--harness",d])})}var lmr=L(ge(),1);var lB=L(z(),1);function cmr({itemId:e,starred:t,onToggled:r}){let n=as(),i=yr(),[o,a]=(0,lmr.useState)(!1);return(0,lB.jsx)(lr,{title:t?"Unstar":"Star",children:(0,lB.jsx)("span",{children:(0,lB.jsx)(sr,{"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 LJ(e,!t,n,i),await r()}finally{a(!1)}}},children:t?(0,lB.jsx)(Oee,{}):(0,lB.jsx)(Bee,{})})})})}var umr=L(z(),1),fmr=ft((0,umr.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 dY=L(z(),1),qUn={display:"inline-flex",alignItems:"center",gap:.375,flexShrink:0,fontSize:"0.71875rem",color:"text.secondary","& svg":{fontSize:14}};function dmr({count:e}){return e<1?null:(0,dY.jsx)(lr,{title:`${e} incomplete subtask${e===1?"":"s"}`,children:(0,dY.jsxs)(ue,{component:"span",sx:qUn,children:[(0,dY.jsx)(fmr,{}),e]})})}var R2=L(z(),1);function hmr({item:e,onReload:t}){return(0,R2.jsxs)(R2.Fragment,{children:[(0,R2.jsx)(dmr,{count:e.incompleteSubtasks}),(0,R2.jsx)(Hpr,{item:e}),(0,R2.jsx)(cmr,{itemId:e.id,starred:e.starred,onToggled:t}),Cge(e)&&(0,R2.jsx)(zge,{itemId:e.id,compact:!0})]})}var A2=L(z(),1);function jUn(e,t){return e?t?j1.inProgressRunningCard:j1.inProgressCard:j1.card}function pmr({item:e,to:t,socket:r,onReload:n}){let i=Bpr(r.sessions,e.id),o=e.status==="in-progress",a=o&&i?.status==="running";return(0,A2.jsxs)(ue,{sx:jUn(o,a),children:[(0,A2.jsx)(Fpr,{status:e.status}),(0,A2.jsxs)(ue,{sx:j1.main,children:[(0,A2.jsx)(xn,{component:ys,to:t,underline:"none",title:e.name,sx:j1.stretchedNameLink,children:e.name}),(0,A2.jsx)(Opr,{item:e,openSession:i,onSelectSession:r.selectSession})]}),(0,A2.jsx)(ue,{sx:j1.actions,children:(0,A2.jsx)(hmr,{item:e,onReload:n})})]})}var gmr=L(z(),1),YUn={all:"items",story:"stories",bug:"bugs"},KUn={textAlign:"center",color:"text.disabled",py:6,px:2};function mmr({query:e,typeFilter:t}){let r=YUn[t],n=e.trim()?`No ${r} match your search.`:`No ${r} in the backlog.`;return(0,gmr.jsx)(ue,{sx:KUn,children:n})}var X1=L(z(),1),XUn={display:"flex",justifyContent:"center",py:6};function ymr({loading:e,error:t,query:r,typeFilter:n,items:i,socket:o,itemPath:a,onReload:s}){if(e)return(0,X1.jsx)(ue,{sx:XUn,children:(0,X1.jsx)(mo,{})});let l=t&&(0,X1.jsx)(ri,{severity:"error",children:t});return i.length===0?l||(0,X1.jsx)(mmr,{query:r,typeFilter:n}):(0,X1.jsxs)(X1.Fragment,{children:[l,i.map(u=>(0,X1.jsx)(pmr,{item:u,to:a(u),socket:o,onReload:s},u.id))]})}var cB=L(ge(),1);function ZUn(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 vmr({cwd:e,node:t,knownCwds:r,signal:n}){return(await fetch(Fl(ZUn(r),e,t),{signal:n})).json()}function bmr(){let{repos:e,selectedCwd:t,cloneOn:r}=$n(),n=Lge(),[i,o]=(0,cB.useState)([]),a=(0,cB.useMemo)(()=>e.map(l=>r(l,n)).filter(l=>!!l),[e,r,n]),s=t?r(t,n):void 0;return(0,cB.useEffect)(()=>{let l=new AbortController;return vmr({cwd:s,node:n,knownCwds:a,signal:l.signal}).then(o).catch(()=>{}),()=>l.abort()},[a,s,n]),{summaries:i,node:n}}var Hge=L(z(),1),QUn={borderStyle:"dashed"};function xmr({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,Hge.jsx)(bn,{label:`${o} (${a})`,size:"small",color:s?"primary":"default",variant:s?"filled":"outlined",disabled:!l&&!f,onClick:d,icon:f?(0,Hge.jsx)(iB,{}):void 0,sx:f?QUn:void 0});return!f||!u?h:(0,Hge.jsx)(lr,{describeChild:!0,title:oB(t,u),children:h})}var hY=L(z(),1),JUn={flexWrap:"wrap",gap:1,mb:2};function Tmr({sessions:e}){let{summaries:t,node:r}=bmr(),{setSelectedCwd:n}=$n(),i=Age(e);return t.length===0?null:(0,hY.jsxs)(Rt,{direction:"row",sx:JUn,children:[t.map(o=>(0,hY.jsx)(xmr,{summary:o,node:r,onSelectCwd:a=>r?n(a,r):n(a),onRequestClone:i.requestClone},o.origin)),(0,hY.jsx)(Ege,{clone:i})]})}var Cmr=L(z(),1);function Smr({value:e,onChange:t}){return(0,Cmr.jsx)(ni,{fullWidth:!0,size:"small",placeholder:"Search backlog\u2026",value:e,onChange:r=>t(r.target.value),sx:{mb:2}})}var Uge=L(ge(),1);var Wge=L(z(),1);async function eWn(){return(await(await fetch("/api/backups/list")).json())[0]}function wmr(){let[e,t]=(0,Uge.useState)();return(0,Uge.useEffect)(()=>{eWn().then(t)},[]),e?(0,Wge.jsx)(lr,{title:new Date(e.createdAt).toLocaleString(),children:(0,Wge.jsxs)(xn,{component:ys,to:"/backups",underline:"hover",color:"text.secondary",variant:"body2",children:["Last backed up ",fa(String(e.createdAt))]})}):null}var uB=L(z(),1);function _mr(){let[e,t]=rB();return(0,uB.jsxs)(du,{value:e,exclusive:!0,size:"small","aria-label":"Status filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,uB.jsx)(hs,{value:"todo",children:"Todo"}),(0,uB.jsx)(hs,{value:"done",children:"Done"}),(0,uB.jsx)(hs,{value:"all",children:"All"})]})}var fB=L(z(),1);function kmr({value:e,onChange:t}){return(0,fB.jsxs)(du,{value:e,exclusive:!0,size:"small","aria-label":"Type filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,fB.jsx)(hs,{value:"all",children:"All"}),(0,fB.jsx)(hs,{value:"story",children:"Stories"}),(0,fB.jsx)(hs,{value:"bug",children:"Bugs"})]})}var E_=L(z(),1),tWn={justifyContent:"space-between",alignItems:"center",mb:3},rWn={fontWeight:600},nWn={alignItems:"center"};function Emr({typeFilter:e,onTypeFilterChange:t}){return(0,E_.jsxs)(Rt,{direction:"row",sx:tWn,children:[(0,E_.jsx)(Fe,{variant:"h5",sx:rWn,children:"Backlog"}),(0,E_.jsxs)(Rt,{direction:"row",spacing:2,sx:nWn,children:[(0,E_.jsx)(wmr,{}),(0,E_.jsx)(kmr,{value:e,onChange:t}),(0,E_.jsx)(_mr,{})]})]})}var P2=L(z(),1);function Amr({items:e,loading:t,error:r,socket:n,onReload:i}){let o=as(),a=yr(),{query:s,setQuery:l,results:u,loading:f}=kpr(),[d,h]=(0,Rmr.useState)("all"),p=u??e,m=d==="all"?p:p.filter(g=>g.type===d);return(0,P2.jsxs)(P2.Fragment,{children:[(0,P2.jsx)(Emr,{typeFilter:d,onTypeFilterChange:h}),(0,P2.jsx)(Smr,{value:s,onChange:l}),(0,P2.jsx)(Tmr,{sessions:n.sessions}),(0,P2.jsx)(ymr,{loading:t||f,error:u?null:r,query:s,typeFilter:d,items:m,socket:n,itemPath:g=>BT(g.id,o,a),onReload:i})]})}var Qge=L(ge(),1);var yR=L(ge(),1);async function N$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 Pmr(e){let t=as(),r=yr(),[n,i]=(0,yR.useState)(null),[o,a]=(0,yR.useState)(!0),s=(0,yR.useCallback)(async()=>{i(await N$e(e,{cwd:t,node:r}))},[e,t,r]);return(0,yR.useEffect)(()=>{let l=new AbortController,{signal:u}=l;return a(!0),(async()=>{try{let f=await N$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 R_={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"},pY=140,O$e="--pinned-header-height",Vge=`var(${O$e}, ${pY}px)`,Lmr=`calc(${Vge} + 8px)`;function $m(e){return{id:R_[e],sx:{mb:2,scrollMarginTop:Lmr}}}function Gge(e){return{id:`item-phase-${e}`,sx:{scrollMarginTop:Lmr}}}var A_=L(z(),1);function Mmr({criteria:e}){return e.length===0?null:(0,A_.jsxs)(ue,{...$m("acceptanceCriteria"),children:[(0,A_.jsx)(Fe,{variant:"overline",sx:{color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"},children:"Acceptance Criteria"}),(0,A_.jsx)(R0,{disablePadding:!0,sx:{maxWidth:"72ch"},children:e.map((t,r)=>(0,A_.jsxs)(tT,{disableGutters:!0,disablePadding:!0,sx:{py:.5,display:"flex",alignItems:"baseline"},children:[(0,A_.jsxs)(Fe,{component:"span",sx:{color:"text.secondary",mr:1},children:[r+1,"."]}),(0,A_.jsx)(yu,{component:"span",className:"markdown",html:EP(t)})]},t))})]})}var mY=L(z(),1),iWn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function Imr({description:e}){return e?(0,mY.jsxs)(ue,{...$m("description"),children:[(0,mY.jsx)(Fe,{variant:"overline",sx:iWn,children:"Description"}),(0,mY.jsx)(kw,{content:e,renderMermaid:!0})]}):null}var Umr=L(ge(),1);function Dmr(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 Omr=L(z(),1),oWn={color:"text.secondary",alignSelf:"flex-start",textAlign:"left"};function Nmr({hiddenCount:e,expanded:t,onToggle:r}){return e===0?null:(0,Omr.jsx)(xn,{component:"button",type:"button",variant:"body2",underline:"hover",sx:oWn,onClick:n=>{n.stopPropagation(),r()},children:t?"Show fewer commits":`\u2026 and ${e} more commits`})}var vR=L(z(),1),aWn={display:"flex",alignItems:"center",gap:1},sWn={color:"text.secondary",fontFamily:"monospace"},lWn={flex:1,overflowWrap:"anywhere"},cWn={color:"text.disabled","&:hover":{color:"text.primary"}};function Bmr({conversation:e}){let{resumeSession:t}=$l(),r=n=>{n.stopPropagation(),t(e.sessionId,e.cwd??"",e.title,e.harness)};return(0,vR.jsxs)(ue,{sx:aWn,children:[(0,vR.jsx)(Fe,{variant:"body2",component:"span",sx:sWn,children:"session"}),(0,vR.jsx)(Fe,{variant:"body2",component:"span",sx:lWn,children:e.title??e.sessionId}),(0,vR.jsx)(sr,{size:"small",title:"Resume",sx:cWn,onClick:r,children:(0,vR.jsx)(Op,{sx:{fontSize:14}})})]})}var $mr=L(z(),1),uWn={color:"text.disabled",ml:1};function Fmr({gitRef:e}){return e.kind!=="commit"||!e.createdAt?null:(0,$mr.jsx)(ue,{component:"span",sx:uWn,children:fWn(e.createdAt)})}function fWn(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function zmr(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 Z1=L(z(),1),dWn={color:"text.secondary",mr:1,fontFamily:"monospace"};function hWn({gitRef:e}){let t=zmr(e);return!e.url||e.kind==="session"?(0,Z1.jsx)(Z1.Fragment,{children:t}):(0,Z1.jsx)(xn,{href:e.url,target:"_blank",rel:"noopener",onClick:r=>r.stopPropagation(),children:t})}function Hmr({gitRef:e}){return(0,Z1.jsxs)(Fe,{variant:"body2",children:[(0,Z1.jsx)(ue,{component:"span",sx:dWn,children:e.kind}),(0,Z1.jsx)(hWn,{gitRef:e}),(0,Z1.jsx)(Fmr,{gitRef:e})]})}var P_=L(z(),1),pWn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function Wmr({gitRefs:e,conversations:t=[]}){let[r,n]=(0,Umr.useState)(!1),{branches:i,commits:o,overflowCommits:a,prs:s,slacks:l}=Dmr(e),u=[...i,...o,...r?a:[],...s,...l];return u.length===0&&t.length===0?null:(0,P_.jsxs)(ue,{...$m("activity"),children:[(0,P_.jsx)(Fe,{variant:"overline",sx:pWn,children:"Activity"}),(0,P_.jsxs)(Rt,{spacing:1,children:[u.map(f=>(0,P_.jsx)(Hmr,{gitRef:f},`${f.kind}:${f.ref}`)),t.map(f=>(0,P_.jsx)(Bmr,{conversation:f},f.sessionId)),(0,P_.jsx)(Nmr,{hiddenCount:a.length,expanded:r,onToggle:()=>n(f=>!f)})]})]})}var bR=L(z(),1),mWn={alignItems:"center",fontSize:"0.75rem",color:"text.secondary",mb:.5},gWn={color:"text.disabled"},yWn={fontWeight:500},vWn={summary:"Phase summary",comment:"Comment"};function Vmr({comment:e}){return(0,bR.jsxs)(Rt,{direction:"row",spacing:.5,sx:mWn,children:[e.id!==void 0&&(0,bR.jsxs)(Fe,{variant:"caption",sx:gWn,children:["#",e.id]}),(0,bR.jsx)(Fe,{variant:"caption",sx:yWn,children:vWn[e.type]}),e.phase!==void 0&&(0,bR.jsxs)(Fe,{variant:"caption",children:["\xB7 Phase ",e.phase]}),(0,bR.jsxs)(Fe,{variant:"caption",children:["\xB7 ",bWn(e.timestamp)]})]})}function bWn(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}var Gmr=L(z(),1),qmr=ft((0,Gmr.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 B$e=L(ge(),1);async function jmr(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 Q1=L(z(),1),xWn={mt:-.5,mr:-.5,color:"text.secondary"};function Ymr({itemId:e,commentId:t,onDeleted:r}){let n=as(),i=yr(),[o,a]=(0,B$e.useState)(!1),[s,l]=(0,B$e.useState)(),u=()=>l(void 0);return(0,Q1.jsxs)(Q1.Fragment,{children:[o&&(0,Q1.jsx)(vo,{message:"Are you sure you want to delete this comment?",onConfirm:async()=>{a(!1);try{await jmr(e,t,n,i),await r()}catch(f){l(f instanceof Error?f.message:"Failed to delete comment")}},onCancel:()=>a(!1)}),(0,Q1.jsx)(ol,{open:s!==void 0,autoHideDuration:6e3,onClose:u,children:(0,Q1.jsx)(ri,{severity:"error",variant:"filled",onClose:u,children:s})}),(0,Q1.jsx)(sr,{"aria-label":"Delete comment",size:"small",sx:xWn,onClick:()=>a(!0),children:(0,Q1.jsx)(qmr,{fontSize:"inherit"})})]})}var xR=L(z(),1),TWn={summary:{bgcolor:"warning.light",borderColor:"warning.dark"},comment:{bgcolor:"action.selected",borderColor:"divider"}},SWn={justifyContent:"space-between",alignItems:"flex-start"},CWn={color:"text.primary",whiteSpace:"pre-wrap"};function wWn(e){return{p:1.5,bgcolor:e.bgcolor,borderColor:e.borderColor}}function Kmr({comment:e,itemId:t,onDeleted:r}){return(0,xR.jsxs)(an,{variant:"outlined",sx:wWn(TWn[e.type]),children:[(0,xR.jsxs)(Rt,{direction:"row",sx:SWn,children:[(0,xR.jsx)(Vmr,{comment:e}),e.id!==void 0&&t!==void 0&&r&&(0,xR.jsx)(Ymr,{itemId:t,commentId:e.id,onDeleted:r})]}),(0,xR.jsx)(Fe,{variant:"body2",sx:CWn,children:e.text})]})}var dB=L(z(),1),_Wn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function Xmr({comments:e,itemId:t,onCommentDeleted:r}){return e.length===0?null:(0,dB.jsxs)(ue,{...$m("comments"),children:[(0,dB.jsx)(Fe,{variant:"overline",sx:_Wn,children:"Comments"}),(0,dB.jsx)(Rt,{spacing:1,children:e.map((n,i)=>(0,dB.jsx)(Kmr,{comment:n,itemId:t,onDeleted:r},`${n.timestamp}-${i}`))})]})}var Zmr=L(z(),1);function hB({total:e,sx:t}){return(0,Zmr.jsx)(Fe,{sx:t,children:Sge(e)})}var Jmr=L(z(),1),kWn={color:"text.secondary",fontSize:"0.75rem"};function Qmr({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,Jmr.jsx)(hB,{total:t,sx:kWn})}var L2=L(z(),1);function egr({checks:e}){return(0,L2.jsxs)(ue,{sx:{mt:1,pt:1},children:[(0,L2.jsx)(no,{sx:{mb:1}}),(0,L2.jsx)(Fe,{variant:"overline",sx:{color:"text.disabled",letterSpacing:"0.08em"},children:"Manual Checks"}),(0,L2.jsx)(R0,{disablePadding:!0,sx:{ml:.5,mt:.5},children:e.map(t=>(0,L2.jsxs)(tT,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,L2.jsx)(Fe,{component:"span",sx:{mr:1,fontSize:"0.875rem",color:"text.secondary"},children:"\u2610"}),(0,L2.jsx)(yu,{component:"span",className:"markdown",sx:{fontSize:"0.875rem",color:"text.secondary"},html:EP(t)})]},t))})]})}var qge={done:{borderColor:"success.light",bgcolor:"success.light"},current:{borderColor:"info.main",bgcolor:"info.light",ring:"info.light"},upcoming:{borderColor:"divider",bgcolor:"background.paper"}};function tgr(e){let t=qge[e];return{p:2,borderColor:t.ring?"info.main":t.borderColor,bgcolor:t.bgcolor,...t.ring?{boxShadow:"0 0 0 2px"}:{}}}var rgr={done:"\u2713",current:"\u2022",upcoming:"\u2022"};var ogr=L(ge(),1);var ngr=L(ge(),1),J1=L(z(),1);function igr({phaseName:e,onConfirm:t,onCancel:r}){let[n,i]=(0,ngr.useState)("");return(0,J1.jsxs)(Ps,{open:!0,onClose:r,maxWidth:"xs",fullWidth:!0,children:[(0,J1.jsxs)(Il,{children:["Rewind to ",e,"?"]}),(0,J1.jsxs)(Ml,{children:[(0,J1.jsx)(Fe,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"This will mark all later phases as incomplete."}),(0,J1.jsx)(ni,{fullWidth:!0,multiline:!0,rows:3,size:"small",placeholder:"Reason for rewinding...",value:n,onChange:o=>i(o.target.value)})]}),(0,J1.jsxs)(cu,{children:[(0,J1.jsx)(qt,{onClick:r,children:"Cancel"}),(0,J1.jsx)(qt,{variant:"contained",color:"warning",disabled:n.trim().length===0,onClick:()=>t(n.trim()),children:"Rewind"})]})]})}var TR=L(z(),1);function agr({itemId:e,phaseNumber:t,phaseName:r,onRewound:n}){let i=as(),o=yr(),[a,s]=(0,ogr.useState)(!1);return(0,TR.jsxs)(TR.Fragment,{children:[(0,TR.jsx)(qt,{size:"small",color:"warning",variant:"outlined",onClick:()=>s(!0),sx:{ml:"auto",textTransform:"none",fontSize:"0.75rem"},children:"Rewind"}),a&&(0,TR.jsx)(igr,{phaseName:r,onConfirm:async l=>{await Tet(e,t,l,i,o),await n()},onCancel:()=>s(!1)})]})}var pB=L(z(),1),EWn={done:{label:"Done",color:"success"},current:{label:"In Progress",color:"info"},upcoming:{label:"Upcoming",color:"default"}},RWn={alignItems:"center",mb:1},AWn={fontWeight:500},PWn={fontWeight:500,fontSize:"0.75rem"};function sgr({phase:e,index:t,status:r,itemId:n,onRewind:i}){let o=EWn[r],a=r==="done"&&n!==void 0&&i;return(0,pB.jsxs)(Rt,{direction:"row",spacing:1,sx:RWn,children:[(0,pB.jsxs)(Fe,{sx:AWn,children:["Phase ",t+1,": ",e.name]}),(0,pB.jsx)(bn,{label:o.label,size:"small",color:o.color,sx:PWn}),a&&(0,pB.jsx)(agr,{itemId:n,phaseNumber:t+1,phaseName:e.name,onRewound:i})]})}var gY=L(z(),1),LWn={color:"text.secondary",fontSize:"0.75rem",letterSpacing:"0.08em",display:"block"},MWn={color:"text.secondary",fontSize:"0.75rem",fontFamily:"monospace",display:"block"};function lgr({sessions:e}){return(0,gY.jsxs)(ue,{sx:{mb:1},children:[(0,gY.jsx)(Fe,{variant:"overline",sx:LWn,children:"Sessions"}),e.map(t=>(0,gY.jsx)(Fe,{sx:MWn,children:`${t.hostname} / ${t.osUser} / ${t.claudeSessionId}`},t.claudeSessionId))]})}var ugr=L(z(),1),IWn={color:"text.secondary",fontSize:"0.75rem",mb:1,display:"block"};function cgr({usage:e}){return(0,ugr.jsx)(hB,{total:e,sx:IWn})}var mB=L(z(),1);function fgr({tasks:e,marker:t}){return(0,mB.jsx)(R0,{disablePadding:!0,sx:{ml:.5},children:e.map(r=>(0,mB.jsxs)(tT,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,mB.jsx)(Fe,{component:"span",sx:{color:"text.secondary",mr:1},children:t}),(0,mB.jsx)(yu,{component:"span",className:"markdown",html:EP(r.task)})]},r.task))})}var L_=L(z(),1);function dgr({phase:e,index:t,status:r,itemId:n,usage:i,sessions:o,onRewind:a}){let s=e.manualChecks??[],l=Gge(t);return(0,L_.jsxs)(an,{variant:"outlined",id:l.id,sx:{...tgr(r),...l.sx},children:[(0,L_.jsx)(sgr,{phase:e,index:t,status:r,itemId:n,onRewind:a}),i&&(0,L_.jsx)(cgr,{usage:i}),(0,L_.jsx)(fgr,{tasks:e.tasks,marker:rgr[r]}),s.length>0&&(0,L_.jsx)(egr,{checks:s}),o&&o.length>0&&(0,L_.jsx)(lgr,{sessions:o})]})}var yY={name:"Review",tasks:[]};function jge(e){return e.at(-1)?.name===yY.name?e.length-1:e.length}function Yge(e,t){if(t===void 0)return"upcoming";let r=e+1;return r<t?"done":r===t?"current":"upcoming"}function hgr(e=[]){return new Map(e.map(t=>[t.phaseIdx,t]))}function pgr(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 F$e=L(z(),1);function mgr({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){let a=hgr(n),s=pgr(i),l=jge(e),u=(i??[]).filter(d=>d.phaseIdx>=l),f=l===e.length&&u.length>0?[...e,yY]:e;return(0,F$e.jsx)(Rt,{spacing:1.5,children:f.map((d,h)=>(0,F$e.jsx)(dgr,{phase:d,index:h,status:Yge(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 SR=L(z(),1),DWn={alignItems:"baseline",justifyContent:"space-between",mb:1},NWn={color:"text.secondary",display:"block",letterSpacing:"0.08em"};function ggr({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){return e.length===0?null:(0,SR.jsxs)(ue,{...$m("plan"),children:[(0,SR.jsxs)(Rt,{direction:"row",sx:DWn,children:[(0,SR.jsx)(Fe,{variant:"overline",sx:NWn,children:"Plan"}),n&&n.length>0&&(0,SR.jsx)(Qmr,{usage:n})]}),(0,SR.jsx)(mgr,{phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o})]})}var $$e=L(z(),1),Kge=e=>{let{value:t,options:r,colors:n,onChange:i}=e;return(0,$$e.jsx)(iT,{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,$$e.jsx)(un,{value:o,children:o},o))})};var vgr=L(z(),1),OWn={todo:{bg:"action.selected",text:"text.primary"},"in-progress":{bg:"warning.main",text:"warning.contrastText"},done:{bg:"success.main",text:"success.contrastText"}},BWn=["todo","in-progress","done"];function ygr({current:e,onStatusChange:t}){return(0,vgr.jsx)(Kge,{value:e,options:BWn,colors:OWn,onChange:t})}var M_=L(z(),1);function bgr({subtask:e,onStatusChange:t}){let r=e.status==="done";return(0,M_.jsxs)(Rt,{direction:"row",spacing:1,sx:{alignItems:"flex-start",justifyContent:"space-between"},children:[(0,M_.jsxs)(ue,{sx:{flex:1},children:[(0,M_.jsx)(Fe,{variant:"body2",sx:{textDecoration:r?"line-through":"none",color:r?"text.disabled":"text.primary"},children:e.title}),e.description&&(0,M_.jsx)(ue,{sx:{mt:.5,fontSize:"0.8125rem",color:r?"text.disabled":"text.secondary"},children:(0,M_.jsx)(kw,{content:e.description})})]}),(0,M_.jsx)(ygr,{current:e.status,onStatusChange:t})]})}var CR=L(z(),1),FWn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function xgr({subtasks:e,onStatusChange:t}){if(e.length===0)return null;let r=e.filter(n=>n.status!=="done").length;return(0,CR.jsxs)(ue,{...$m("subtasks"),children:[(0,CR.jsx)(Fe,{variant:"overline",sx:FWn,children:"Sub-tasks"}),(0,CR.jsx)(Rt,{spacing:1,children:e.map((n,i)=>(0,CR.jsx)(bgr,{subtask:n,onStatusChange:o=>t(i,o)},`${n.title}-${i}`))}),r>0&&(0,CR.jsxs)(ri,{severity:"warning",sx:{mt:1},children:[r," sub-task",r===1?"":"s"," not yet done."]})]})}var M2=L(z(),1);function Tgr({item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n}){return(0,M2.jsxs)(M2.Fragment,{children:[e.subtasks&&n&&(0,M2.jsx)(xgr,{subtasks:e.subtasks,onStatusChange:n}),e.plan&&(0,M2.jsx)(ggr,{phases:e.plan,currentPhase:e.currentPhase,itemId:e.id,usage:e.phaseUsage,sessions:e.phaseSessions,onRewind:t}),(0,M2.jsx)(Wmr,{gitRefs:e.gitRefs??[],conversations:e.conversations}),e.comments&&(0,M2.jsx)(Xmr,{comments:e.comments,itemId:e.id,onCommentDeleted:r})]})}var gB=L(z(),1);function Sgr({item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n}){return(0,gB.jsxs)(ue,{sx:{pt:2,flex:1,minWidth:0},children:[(0,gB.jsx)(Imr,{description:e.description}),(0,gB.jsx)(Mmr,{criteria:e.acceptanceCriteria}),(0,gB.jsx)(Tgr,{item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n})]})}var Cgr="item-detail";var vY={wideQuery:`@container ${Cgr} (min-width: 760px)`,containerSx:{containerType:"inline-size",containerName:Cgr},columnsSx:{display:"flex",columnGap:3}};function $Wn(e){let t=e.plan??[];if(t.length===0)return[];let r=jge(t),i=r===t.length&&(e.phaseSessions??[]).some(o=>o.phaseIdx>=r)?[...t,yY]:t;return[{id:R_.plan,label:"Phases"},...i.map((o,a)=>({id:Gge(a).id,label:`${a+1}`,title:o.name,status:Yge(a,e.currentPhase),nested:!0}))]}function wgr(e){let t=[];return e.description&&t.push({id:R_.description,label:"Description"}),e.acceptanceCriteria.length>0&&t.push({id:R_.acceptanceCriteria,label:"Acceptance Criteria"}),(e.subtasks?.length??0)>0&&t.push({id:R_.subtasks,label:"Sub-tasks"}),t.push(...$Wn(e)),(e.gitRefs?.length??0)+(e.conversations?.length??0)>0&&t.push({id:R_.activity,label:"Activity"}),(e.comments?.length??0)>0&&t.push({id:R_.comments,label:"Comments"}),t}var _gr="1.3125rem",kgr={position:"relative",borderRadius:1,"&::after":{content:'""',position:"absolute",inset:0,borderRadius:"inherit",pointerEvents:"none"},"&:hover::after":{bgcolor:"action.hover"},"&:active::after":{bgcolor:"action.selected"}},zWn={...kgr,display:"block",flexShrink:0,maxWidth:"100%",px:1,py:.5,border:0,bgcolor:"transparent",fontSize:_gr,lineHeight:1.2,letterSpacing:"0.02em",textAlign:"left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"text.secondary"},HWn={...kgr,display:"flex",alignItems:"center",justifyContent:"center",fontSize:_gr,width:"2em",height:"2em",flexShrink:0,lineHeight:1,borderRadius:"50%",border:1,color:"text.primary"},UWn={borderColor:"text.primary",borderWidth:3},WWn={color:"text.primary",fontWeight:700,"&::after":{bgcolor:"action.selected"}};function Egr(e,t){let r=e.status&&qge[e.status];return r?{...HWn,ml:1.5,bgcolor:r.bgcolor,borderColor:r.borderColor,borderWidth:r.ring?3:1,...t&&UWn}:{...zWn,...t&&WWn}}var Agr=L(z(),1);function Rgr({section:e,active:t,onSelect:r}){return(0,Agr.jsx)(Dn,{sx:Egr(e,t),onClick:()=>r(e.id),title:e.title??e.label,"aria-current":t?"true":void 0,children:e.label})}function Pgr(e,t=pY){return Yhe(e,t)}var z$e=L(z(),1),VWn=48,GWn=260,qWn={display:"none",[vY.wideQuery]:{display:"flex"},position:"sticky",top:Vge,alignSelf:"flex-start",width:GWn,flexShrink:0,maxHeight:`calc(100vh - ${VWn}px - ${Vge})`,alignItems:"flex-start",overflowY:"auto",overflowX:"hidden",py:2};function jWn(e){document.getElementById(e)?.scrollIntoView({behavior:"smooth",block:"start"})}function Lgr({item:e,headerHeight:t}){let r=wgr(e),n=Pgr(r.map(i=>i.id),t);return r.length===0?null:(0,z$e.jsx)(Rt,{component:"nav",spacing:1,sx:qWn,children:r.map(i=>(0,z$e.jsx)(Rgr,{section:i,active:i.id===n,onSelect:jWn},i.id))})}var Igr=L(z(),1);function Mgr({to:e}){let t=Xi();return(0,Igr.jsx)(qt,{variant:"text",size:"small",onClick:()=>t(e),sx:{mb:2,textTransform:"none"},children:"\u2190 Back"})}var Dgr=L(ge(),1);var wR=L(z(),1);function Ngr({itemId:e,onDeleted:t}){let r=as(),n=yr(),[i,o]=(0,Dgr.useState)(!1);return(0,wR.jsxs)(wR.Fragment,{children:[i&&(0,wR.jsx)(vo,{onConfirm:async()=>{await bet(e,r,n),await t()},onCancel:()=>o(!1)}),(0,wR.jsx)(qt,{variant:"contained",color:"error",size:"small",onClick:()=>o(!0),children:"Delete"})]})}var H$e=L(z(),1),YWn={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"}},KWn=["todo","in-progress","done","wontdo"];function Ogr({current:e,onStatusChange:t}){return t?(0,H$e.jsx)(Kge,{value:e,options:KWn,colors:YWn,onChange:t}):(0,H$e.jsx)(bn,{label:e,size:"small",color:pge[e],sx:{fontWeight:500,fontSize:"0.75rem"}})}var I2=L(z(),1),XWn={alignItems:"center",color:"text.disabled",fontSize:"0.875rem"},ZWn={fontWeight:500,fontSize:"0.75rem"},QWn={color:"text.secondary",fontSize:"0.75rem"};function Bgr({item:e,onStatusChange:t}){let r=hge[e.type];return(0,I2.jsxs)(Rt,{direction:"row",spacing:1,sx:XWn,children:[(0,I2.jsx)(Fe,{variant:"body2",color:"text.disabled",children:so(e.id)}),r&&(0,I2.jsx)(bn,{label:e.type,size:"small",color:r,sx:ZWn}),(0,I2.jsx)(Ogr,{current:e.status,onStatusChange:t}),(0,I2.jsx)(cP,{jiraKey:e.jiraKey}),(0,I2.jsx)(lP,{githubIssue:e.githubIssue,origin:e.origin}),e.usageTotal&&(0,I2.jsx)(hB,{total:e.usageTotal,sx:QWn})]})}var Fgr=L(z(),1),$gr=ft((0,Fgr.jsx)("path",{d:"M3 17v2h6v-2zM3 5v2h10V5zm10 16v-2h8v-2h-8v-2h-2v6zM7 9v2H3v2h4v2h2V9zm14 4v-2H11v2zm-6-4h2V7h4V5h-4V3h-2z"}),"Tune");var Xge=L(ge(),1);var zgr=L(ge(),1);function Hgr(e){let{launchAssist:t}=$l(),r=Xi(),n=as(),i=yr(),[o,a]=(0,zgr.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 a0=L(z(),1);function Ugr({itemId:e}){let{launched:t,launch:r}=Hgr(e),n=S_(),i=(0,Xge.useRef)(null),[o,a]=(0,Xge.useState)(!1),s=u=>u.stopPropagation(),l=wge(n);return(0,a0.jsxs)(a0.Fragment,{children:[(0,a0.jsxs)(Q2,{ref:i,variant:"outlined",size:"small",disabled:t,children:[(0,a0.jsx)(qt,{startIcon:(0,a0.jsx)($gr,{}),onClick:u=>{s(u),r([])},children:"Refine"}),l.length>0&&(0,a0.jsx)(qt,{size:"small","aria-label":"Refine with a different harness",onClick:u=>{s(u),a(!0)},children:(0,a0.jsx)(zp,{})})]}),(0,a0.jsx)(_ge,{anchorEl:i.current,open:o,onClose:()=>a(!1),options:l,onSelect:u=>{a(!1),r(["--harness",u])},stop:s})]})}var yB=L(ge(),1);function Wgr(){let e=(0,yB.useRef)(null),[t,r]=(0,yB.useState)(!1);return(0,yB.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 Of=L(z(),1),JWn={justifyContent:"space-between",alignItems:"center",mb:2};function eVn(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 tVn(e){return t=>({position:"sticky",top:0,zIndex:1,bgcolor:"background.default",mx:-2,px:2,pb:2,borderBottom:1,borderColor:"divider",boxShadow:e?eVn(t):"none",transition:t.transitions.create("box-shadow")})}function Vgr({item:e,onDeleted:t,onStatusChange:r,ref:n}){let{sentinelRef:i,stuck:o}=Wgr();return(0,Of.jsxs)(Of.Fragment,{children:[(0,Of.jsx)(ue,{ref:i,sx:{height:0}}),(0,Of.jsxs)(ue,{ref:n,sx:tVn(o),children:[(0,Of.jsxs)(Rt,{direction:"row",sx:JWn,children:[(0,Of.jsx)(Mgr,{to:"/backlog"}),(0,Of.jsxs)(Rt,{direction:"row",spacing:1,children:[Cge(e)&&(0,Of.jsx)(zge,{itemId:e.id}),(0,Of.jsx)(Ugr,{itemId:e.id}),(0,Of.jsx)(Ngr,{itemId:e.id,onDeleted:t})]})]}),(0,Of.jsx)(Fe,{variant:"h5",component:"h2",children:e.name}),(0,Of.jsx)(Bgr,{item:e,onStatusChange:r})]})]})}var qgr=L(ge(),1);var Zge=L(ge(),1);function Ggr(e,t){let[r,n]=(0,Zge.useState)(t);return(0,Zge.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 jgr(){let e=(0,qgr.useRef)(null),t=Ggr(e,pY),r={[O$e]:`${t}px`};return{headerRef:e,headerHeight:t,style:r}}var I_=L(z(),1);function Ygr({item:e,onReload:t}){let r=Xi(),n=as(),i=yr(),{headerRef:o,headerHeight:a,style:s}=jgr();ny("ItemDetail");let l=async()=>{await t(),r("/backlog")},u=async d=>{await PJ(e.id,d,n,i),await t()},f=async(d,h)=>{await xet(e.id,d,h,n,i),await t()};return(0,I_.jsxs)(ue,{style:s,children:[(0,I_.jsx)(Vgr,{ref:o,item:e,onDeleted:l,onStatusChange:u}),(0,I_.jsx)(ue,{sx:vY.containerSx,children:(0,I_.jsxs)(ue,{sx:vY.columnsSx,children:[(0,I_.jsx)(Sgr,{item:e,onRewind:t,onCommentDeleted:t,onSubtaskStatusChange:f}),(0,I_.jsx)(Lgr,{item:e,headerHeight:a})]})})]})}var _R=L(z(),1),rVn={display:"flex",justifyContent:"center",py:6};function Kgr({onReload:e}){let[t]=Pc(),r=t.get("cwd")||void 0,n=t.get("node")||void 0,i=$n(),o=(0,Qge.useMemo)(()=>r?{...i,selectedCwd:r,selectedNode:n}:i,[i,r,n]);return ny("ItemRoute"),(0,_R.jsx)(xz.Provider,{value:o,children:(0,_R.jsx)(Yu.Provider,{value:o.selectedNode,children:(0,_R.jsx)(nVn,{onReload:e})})})}function nVn({onReload:e}){let{id:t}=h2e(),r=Number.NaN;try{r=gJ(t??"")}catch{r=Number.NaN}let{item:n,loading:i,reload:o}=Pmr(r),a=(0,Qge.useCallback)(async()=>{await Promise.all([o(),e()])},[o,e]);return i?(0,_R.jsx)(ue,{sx:rVn,children:(0,_R.jsx)(mo,{})}):n?(0,_R.jsx)(Ygr,{item:n,onReload:a}):null}var kR=L(z(),1);function Xgr({items:e,loading:t,error:r,socket:n,onReload:i}){return(0,kR.jsxs)(d5,{children:[(0,kR.jsx)(gs,{index:!0,element:(0,kR.jsx)(Amr,{items:e,loading:t,error:r,socket:n,onReload:i})}),(0,kR.jsx)(gs,{path:"items/:id",element:(0,kR.jsx)(Kgr,{onReload:i})})]})}var s0=L(ge(),1);var Zgr=new Map;function Qgr(e,t,r){return JSON.stringify([e??null,t,r??null])}var bY={get(e,t,r){return Zgr.get(Qgr(e,t,r))},set(e,t,r,n){Zgr.set(Qgr(e,t,n),r)}};function iVn(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 Jgr(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&&iVn(r.usageTotal,i.usageTotal)})}function e0r({setItems:e,setLoading:t,setError:r}){return{onLoaded:n=>{e(i=>Jgr(i,n)?i:n),t(!1),r(null)},onError:n=>{t(!1),r(n)}}}async function t0r(e,t,r,n){let i=await zT({cwd:e,node:n,signal:r,filter:t});return r.aborted||bY.set(e,t,i,n),i}function r0r(e,t,r,{onLoaded:n,onError:i},o){return(async()=>{try{let a=await t0r(e,t,r,o);r.aborted||n(a)}catch(a){r.aborted||i(a instanceof Error?a.message:"Failed to load.")}})()}var oVn=5e3;function n0r(e,t,r,n){let i=new AbortController,o=!1,a=()=>{o||(o=!0,r0r(e,t,i.signal,r,n).finally(()=>{o=!1}))};a();let s=setInterval(a,oVn);return()=>{i.abort(),clearInterval(s)}}function i0r(){let e=as(),t=yr(),[r]=rB(),n=bY.get(e,r,t),i=n??[],o=n===void 0,[a,s]=(0,s0.useState)(i),[l,u]=(0,s0.useState)(o),[f,d]=(0,s0.useState)(null),[h,p]=(0,s0.useState)(e),[m,g]=(0,s0.useState)(t),[y,v]=(0,s0.useState)(r);(e!==h||t!==m||r!==y)&&(p(e),g(t),v(r),s(i),u(o),d(null));let b=(0,s0.useCallback)(async()=>{let x=await zT({cwd:e,node:t,filter:r});s(x),bY.set(e,r,x,t),u(!1)},[e,t,r]);return(0,s0.useEffect)(()=>n0r(e,r,e0r({setItems:s,setLoading:u,setError:d}),t),[e,t,r]),{items:a,loading:l,error:f,reload:b}}var xY=L(z(),1);function o0r({socket:e}){let{items:t,loading:r,error:n,reload:i}=i0r();return lte(!r),(0,xY.jsx)(E$e.Provider,{value:e.sessions,children:(0,xY.jsx)(d5,{children:(0,xY.jsx)(gs,{path:"/*",element:(0,xY.jsx)(Xgr,{items:t,loading:r,error:n,socket:e,onReload:i})})})})}var U$e=L(z(),1);function a0r({socket:e}){return(0,U$e.jsx)(IF,{maxWidth:"lg",sx:{py:3,px:2},children:(0,U$e.jsx)(o0r,{socket:e})})}var ki=L(z(),1);function s0r({socket:e}){return ny("AppRoutes"),(0,ki.jsxs)(ki.Fragment,{children:[(0,ki.jsx)(ior,{}),(0,ki.jsx)(d5,{children:(0,ki.jsxs)(gs,{element:(0,ki.jsx)(git,{socket:e}),children:[(0,ki.jsx)(gs,{path:"sessions",element:(0,ki.jsx)(zdr,{socket:e})}),(0,ki.jsx)(gs,{path:"backlog/*",element:(0,ki.jsx)(a0r,{socket:e})}),(0,ki.jsx)(gs,{path:"next",element:(0,ki.jsx)(yir,{sessions:e.sessions,selectSession:e.selectSession})}),(0,ki.jsx)(gs,{path:"news",element:(0,ki.jsx)(Pnr,{})}),(0,ki.jsx)(gs,{path:"releases",element:(0,ki.jsx)(eor,{})}),(0,ki.jsx)(gs,{path:"usage",element:(0,ki.jsx)(Tpr,{})}),(0,ki.jsx)(gs,{path:"backups",element:(0,ki.jsx)(wit,{})}),(0,ki.jsx)(gs,{path:"config",element:(0,ki.jsx)(vat,{})}),(0,ki.jsx)(gs,{path:"updates",element:(0,ki.jsx)(Mhr,{reconnecting:e.reconnecting,selectSession:e.selectSession})}),(0,ki.jsx)(gs,{path:"diff",element:(0,ki.jsx)(Krr,{socket:e})}),(0,ki.jsx)(gs,{path:"file",element:(0,ki.jsx)(_nr,{socket:e})}),(0,ki.jsx)(gs,{path:"*",element:(0,ki.jsx)(b2e,{to:"/sessions",replace:!0})})]})})]})}var n0e=L(ge(),1);var r0e=L(ge(),1);function l0r(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 D_=L(z(),1),aVn={display:"flex",gap:1,alignItems:"center",minWidth:0},sVn={display:"flex",gap:1,alignItems:"baseline",minWidth:0,overflow:"hidden"},lVn={fontFamily:"monospace",fontSize:13,whiteSpace:"nowrap"},cVn={fontFamily:"monospace",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function uVn(e){let t=e.lastIndexOf("/");return t===-1?{dir:"",basename:e}:{dir:e.slice(0,t),basename:e.slice(t+1)}}function c0r({files:e,highlight:t,onHighlight:r,onSelect:n}){return(0,D_.jsx)(Tp,{dense:!0,sx:{py:0},children:e.map((i,o)=>{let{dir:a,basename:s}=uVn(i);return(0,D_.jsxs)(un,{selected:o===t,onMouseEnter:()=>r(o),onClick:()=>n(i),sx:aVn,children:[(0,D_.jsx)(QO,{path:i}),(0,D_.jsxs)(ue,{sx:sVn,children:[(0,D_.jsx)(Fe,{component:"span",sx:lVn,children:s}),(0,D_.jsx)(Fe,{component:"span",color:"text.secondary",sx:cVn,children:a})]})]},i)})})}var Jge=L(z(),1),fVn={maxHeight:420,overflowY:"auto"},dVn={px:2,py:2,fontSize:13};function u0r({message:e,files:t,highlight:r,onHighlight:n,onSelect:i}){return(0,Jge.jsx)(ue,{sx:fVn,children:e?(0,Jge.jsx)(Fe,{color:"text.secondary",sx:dVn,children:e}):(0,Jge.jsx)(c0r,{files:t,highlight:r,onHighlight:n,onSelect:i})})}var f0r=L(z(),1),hVn={mt:6,alignSelf:"flex-start"};function e0e({onClose:e,onEntered:t,centered:r=!1,children:n}){return(0,f0r.jsx)(Ps,{open:!0,onClose:e,maxWidth:"sm",fullWidth:!0,slotProps:{paper:{sx:r?void 0:hVn},transition:{onEntered:t}},children:n})}var t0e=L(ge(),1);var d0r={files:[],loading:!1,error:!1};function h0r(e,t){let[r,n]=(0,t0e.useState)(d0r),i=yr();return(0,t0e.useEffect)(()=>{if(!e){n(d0r);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 ER=L(z(),1);function pVn(e,t,r){let n=new URLSearchParams({path:e});return t&&n.set("cwd",t),t&&r&&n.set("node",r),`/file?${n}`}function p0r({onClose:e}){let{worktreeNode:t}=$n();return(0,ER.jsx)(Yu.Provider,{value:t,children:(0,ER.jsx)(mVn,{onClose:e})})}function mVn({onClose:e}){let{worktreeCwd:t,worktreeNode:r}=$n(),[n,i]=(0,r0e.useState)(""),o=h0r(t,n),a=Xi(),s=(0,r0e.useRef)(null),l=p=>a(pVn(p,t,r)),{highlight:u,setHighlight:f,onKeyDown:d}=k_(o.files,n,l,e),h=p=>{l(p),e()};return(0,ER.jsxs)(e0e,{onClose:e,onEntered:()=>s.current?.focus(),children:[(0,ER.jsx)(aB,{autoFocus:!0,inputRef:s,value:n,onChange:i,onKeyDown:d,placeholder:"Search files by name..."}),(0,ER.jsx)(u0r,{message:l0r(t,n,o),files:o.files,highlight:u,onHighlight:f,onSelect:h})]})}function m0r(e){Io(Yn("quickOpen").matches,e)}var y0r=L(z(),1);function g0r(){let[e,t]=(0,n0e.useState)(!1);return m0r((0,n0e.useCallback)(()=>t(!0),[])),e?(0,y0r.jsx)(p0r,{onClose:()=>t(!1)}):null}var i0e=L(z(),1);function v0r({notice:e,onClose:t,onView:r}){let n=e?.sessionId??null;return(0,i0e.jsx)(ol,{open:e!==null,autoHideDuration:6e3,onClose:t,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,i0e.jsx)(ri,{severity:"success",variant:"filled",onClose:t,action:n!==null?(0,i0e.jsx)(qt,{color:"inherit",size:"small",onClick:()=>r(n),children:"View"}):void 0,children:e?.message})})}var c0e=L(ge(),1);function b0r(e){let t=["claude"];return e.exposeCodexActions&&t.push("codex"),e.exposePiActions&&t.push("pi"),t}var M0r=L(ge(),1);var x0r=L(z(),1),T0r=ft((0,x0r.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 N_="0.784.2";var gVn={connected:"success.main",connecting:"warning.main",disconnected:"error.main","version-blocked":"error.main"};function S0r(e){return e?gVn[e]:"success.main"}function C0r(e){return e.split("-")[0].split(".").map(Number)}function w0r(e,t){if(!e||!t||e===t)return;let r=C0r(e),n=C0r(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 o0e=L(ge(),1),W$e=(0,o0e.createContext)(null);function a0e(){return(0,o0e.useContext)(W$e)}var RR=L(z(),1),yVn={height:16,fontSize:10},vVn={opacity:.6,fontSize:"0.85em"};function bVn(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 TY({nodes:e,name:t,showVersion:r=!1}){let n=a0e()??N_,i=e.links.find(a=>a.name===t),o=w0r(i?.peerVersion,n);return(0,RR.jsx)(lr,{title:bVn(e,t),placement:"right",children:(0,RR.jsxs)(ue,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.75},children:[(0,RR.jsx)(T0r,{sx:{fontSize:8,color:S0r(i?.state)}}),t,r&&i?.peerVersion&&(0,RR.jsxs)(ue,{component:"span",sx:vVn,children:["v",i.peerVersion]}),o&&(0,RR.jsx)(bn,{label:o,size:"small",color:o==="behind"?"warning":"info",sx:yVn})]})})}var AR=L(z(),1),xVn={opacity:.6},TVn={display:"inline-flex",alignItems:"center",gap:.5,px:.5,border:1,borderStyle:"dashed",borderRadius:1};function _0r({nodes:e,name:t,clone:r}){let n=(0,AR.jsx)(TY,{nodes:e,name:t});return r.kind==="cloned"?n:r.kind==="unavailable"?(0,AR.jsx)(ue,{component:"span",sx:xVn,children:n}):(0,AR.jsx)(lr,{title:oB(t,r.cloneTarget),children:(0,AR.jsxs)(ue,{component:"span",sx:TVn,children:[(0,AR.jsx)(iB,{sx:{fontSize:14}}),n]})})}var E0r=L(z(),1),SVn={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 k0r({value:e,label:t,checked:r,autoFocus:n,onSelect:i}){return(0,E0r.jsx)(Dn,{role:"radio","aria-checked":r,"data-value":e,tabIndex:r?0:-1,autoFocus:n&&r,onClick:i,sx:SVn,children:t})}var R0r={ArrowRight:1,ArrowLeft:-1};function CVn(e,t,r){if(e.key==="Tab"){let n=t+(e.shiftKey?-1:1);return n>=0&&n<r?n:void 0}return(t+R0r[e.key]+r)%r}function A0r(e,t,r,n){return i=>{if(i.key==="ArrowUp"||i.key==="ArrowDown"){if(!n)return;i.preventDefault(),n();return}if(i.key!=="Tab"&&!R0r[i.key]){lb(i);return}let o=CVn(i,e.indexOf(t),e.length);o!==void 0&&(i.preventDefault(),r(e[o]),i.currentTarget.querySelector(`[data-value="${e[o]}"]`)?.focus())}}var P0r=L(ge(),1);function vB(e){return e?.querySelector('[aria-checked="true"]')}function L0r(e,t){(0,P0r.useEffect)(()=>{let r=e.current;if(!r?.contains(document.activeElement))return;let n=vB(r);n&&n!==document.activeElement&&n.focus()},[e,t])}var V$e=L(z(),1),wVn={border:1,borderColor:"divider",borderRadius:1,height:40,p:"2px",flexShrink:0};function s0e({label:e,options:t,value:r,onChange:n,optionLabel:i=u=>u,groupRef:o,autoFocus:a,onTrack:s,onToggleRow:l}){return L0r(o,r),(0,V$e.jsx)(Rt,{ref:o,direction:"row",role:"radiogroup","aria-label":e,spacing:"2px",onFocus:s,onKeyDown:A0r(t,r,n,l),sx:wVn,children:t.map(u=>(0,V$e.jsx)(k0r,{value:u,label:i(u),checked:u===r,autoFocus:a,onSelect:()=>n(u)},u))})}var G$e=L(z(),1);function I0r({value:e,onChange:t,cloneState:r}){let{nodes:n,names:i,visible:o}=Nu(),a=(0,M0r.useRef)(null);return!o||!n||!e?null:(0,G$e.jsx)(s0e,{label:"Machine",options:i,value:e,onChange:t,optionLabel:s=>(0,G$e.jsx)(_0r,{nodes:n,name:s,clone:r(s)}),groupRef:a,autoFocus:!1,onTrack:()=>{}})}var N0r=L(z(),1);function D0r({value:e,onChange:t,placeholder:r,inputRef:n,autoFocus:i,onTrack:o}){return(0,N0r.jsx)(ni,{value:e,onChange:a=>t(a.target.value),onKeyDown:lb,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 $0r=L(ge(),1);var D2={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:$ee,submitLabel:"Start session"},design:{placeholder:"Describe the design task...",submitLabel:"Start design"}},O0r=Object.keys(D2);var q$e=L(z(),1);function B0r({anchor:e,harness:t,harnesses:r,onPick:n,onClose:i}){return(0,q$e.jsx)(Dl,{open:e!==null,anchorEl:e,onClose:i,slotProps:{list:{dense:!0,"aria-label":"Harness"}},children:r.map(o=>(0,q$e.jsx)(un,{role:"menuitemradio","aria-checked":o===t,selected:o===t,onClick:()=>{n(o),i()},sx:{fontSize:13},children:gu(o)},o))})}var PR=L(z(),1);function F0r(e){return t=>t==="prompt"&&e?(0,PR.jsxs)(PR.Fragment,{children:["prompt",(0,PR.jsx)(ue,{component:"span",sx:{fontWeight:400,whiteSpace:"pre"},children:` \xB7 ${gu(e)}`}),(0,PR.jsx)(zp,{sx:{fontSize:18,mr:-.75}})]}):t}var LR=L(z(),1);function z0r({draft:e,harness:t,harnesses:r,focus:n}){let[i,o]=(0,$0r.useState)(null),a=e.mode==="prompt"&&r.length>1,s=()=>o(vB(n.modeRef.current)??null),l=u=>{a&&u==="prompt"?s():e.setMode(u)};return(0,LR.jsxs)(LR.Fragment,{children:[(0,LR.jsx)(s0e,{label:"Mode",options:O0r,value:e.mode,onChange:l,optionLabel:F0r(r.length>1?t:void 0),groupRef:n.modeRef,autoFocus:n.autoFocus==="mode",onTrack:n.trackMode,onToggleRow:a?s:void 0}),(0,LR.jsx)(B0r,{anchor:i,harness:t,harnesses:r,onPick:e.setHarness,onClose:()=>o(null)})]})}var Z0r=L(ge(),1);var j$e=L(z(),1),_Vn={zIndex:e=>e.zIndex.modal+1};function H0r({open:e,anchor:t,children:r}){return(0,j$e.jsx)(OA,{open:e,anchorEl:t,placement:"bottom-start",sx:_Vn,children:(0,j$e.jsx)(an,{sx:{maxHeight:240,overflowY:"auto",width:t?.clientWidth},onMouseDown:n=>n.preventDefault(),children:r})})}function U0r(e){return{htmlInput:{role:"combobox","aria-label":"Repo","aria-expanded":e},input:{sx:{fontSize:13,height:40}}}}var W0r=L(cF(),1);function V0r({open:e,highlighted:t,accept:r,close:n,navigate:i,openList:o}){return a=>{if(!e){if(a.key==="ArrowDown"){a.preventDefault(),o();return}lb(a);return}if(a.key!=="Escape"){if(a.key==="Enter"){if(a.preventDefault(),t===void 0)return;(0,W0r.flushSync)(()=>{r(t),n()}),lb(a);return}if(a.key!=="Tab"){i(a);return}t!==void 0&&r(t),n()}}}function G0r(e,t){let r=t.trim().toLowerCase();return r?e.filter(n=>K1(n).toLowerCase().includes(r)):e}var Y$e=L(ge(),1);function q0r(){let[e,t]=(0,Y$e.useState)(!1),[r,n]=(0,Y$e.useState)("");return{open:e,query:r,show:()=>t(!0),filterBy:i=>{n(i),t(!0)},close:()=>{t(!1),n("")}}}var Y0r=L(ge(),1);var j0r=e=>e?K1(e):"";function K0r(e){let[t,r]=(0,Y0r.useState)(()=>j0r(e));return{text:t,setText:r,showRepo:n=>r(j0r(n))}}function X0r(e,t,r){let n=q0r(),i=K0r(t),o=G0r(e,n.query),a=f=>{r(f),i.showRepo(f)},s=k_(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:V0r({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 bB=L(z(),1);function Q0r({repos:e,value:t,onChange:r,inputRef:n,autoFocus:i,onTrack:o}){let a=X0r(e,t,r),s=(0,Z0r.useRef)(null);return(0,bB.jsxs)(ue,{ref:s,sx:{flex:1,minWidth:0},children:[(0,bB.jsx)(ni,{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:U0r(a.open)}),(0,bB.jsx)(H0r,{open:a.open,anchor:s.current,children:(0,bB.jsx)(Oge,{repos:a.filtered,selected:t,highlight:a.highlight,onHighlight:a.setHighlight,onSelect:a.pick})})]})}var O_=L(z(),1);function J0r({cloneState:e,...t}){let{draft:r,focus:n}=t,{repos:i}=$n();return(0,O_.jsxs)(Rt,{spacing:1,sx:{p:1},children:[(0,O_.jsx)(D0r,{value:r.prompt,onChange:r.setPrompt,placeholder:D2[r.mode].placeholder,inputRef:n.promptRef,autoFocus:n.autoFocus==="prompt",onTrack:n.trackPrompt}),(0,O_.jsxs)(Rt,{direction:"row",spacing:1,sx:{alignItems:"flex-start"},children:[(0,O_.jsx)(Q0r,{repos:i,value:r.cwd,onChange:r.setCwd,inputRef:n.repoRef,autoFocus:n.autoFocus==="repo",onTrack:n.trackRepo}),(0,O_.jsx)(z0r,{...t})]}),(0,O_.jsx)(I0r,{value:r.node,onChange:r.setNode,cloneState:e})]})}var xB=L(z(),1),kVn=["Enter start","Shift+Enter newline","Esc close"],EVn={alignItems:"center",px:1.5,py:1,borderTop:1,borderColor:"divider",bgcolor:"action.hover"};function eyr({submitLabel:e,disabled:t=!1}){return(0,xB.jsxs)(Rt,{direction:"row",spacing:1.5,sx:EVn,children:[(0,xB.jsx)(Rt,{direction:"row",spacing:1.5,sx:{mr:"auto"},children:kVn.map(r=>(0,xB.jsx)(Fe,{variant:"caption",color:"text.secondary",children:r},r))}),(0,xB.jsx)(qt,{type:"submit",variant:"contained",size:"small",disabled:t,children:e})]})}function tyr({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}]:[];unt(D2[e].sessionMode,n,(u,f)=>o.onCreateAssist(u,f,...l),()=>{},r)}function ryr(e,t,r,n){return r.kind==="blocked"?!1:r.kind==="clone"?(Rge(r.prompt,n.onCreateAssist),!0):(tyr({mode:e.mode,harness:t,prompt:e.prompt,cwd:r.cwd,node:e.node},n),e.clear(),!0)}var MR=L(ge(),1);function nyr(e,t){let r=(0,MR.useRef)(e),n=(0,MR.useRef)(null),i=(0,MR.useRef)(null),o=(0,MR.useRef)(null),a=(0,MR.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:vB(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 RVn(e,t,r){return e?r.kind==="cloned"?{kind:"launch",cwd:r.cwd}:r.kind==="clonable"?{kind:"clone",prompt:Fge(r,t)}:{kind:"blocked"}:{kind:"launch",cwd:e}}function iyr(e,t){let{names:r,visible:n}=Nu(),i=Ige(t,n?r:[void 0]);return{cloneState:i,target:RVn(t,e,i(e))}}var TB=L(z(),1);function oyr({draft:e,launchers:t,onClose:r}){let n=nyr(e.focus,e.setFocus),i=b0r(S_()),o=i.includes(e.harness)?e.harness:"claude",{target:a,cloneState:s}=iyr(e.node,e.cwd),l=u=>{u.preventDefault(),ryr(e,o,a,t)&&r()};return(0,TB.jsx)(e0e,{onClose:r,onEntered:n.restore,centered:!0,children:(0,TB.jsxs)("form",{onSubmit:l,children:[(0,TB.jsx)(J0r,{draft:e,harness:o,harnesses:i,focus:n,cloneState:s}),(0,TB.jsx)(eyr,{submitLabel:a.kind==="clone"?"Clone":D2[e.mode].submitLabel,disabled:a.kind==="blocked"})]})})}var l0e=L(ge(),1);function ayr(e){let[t,r]=(0,l0e.useState)(null);return(0,l0e.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(D2,s?.mode)&&(i=s.mode)}catch{}n||r(i)})(),()=>{n=!0}},[e]),t}function syr(e,{visible:t,names:r,selected:n}){if(t)return e&&r.includes(e)?e:n}var N2=L(ge(),1),lyr={field:"prompt",selectionStart:0,selectionEnd:0};function cyr(){let[e,t]=(0,N2.useState)(""),[r,n]=(0,N2.useState)(),[i,o]=(0,N2.useState)(),[a,s]=(0,N2.useState)("claude"),[l,u]=(0,N2.useState)(),[f,d]=(0,N2.useState)(lyr),h=(0,N2.useCallback)(()=>{t(""),n(void 0),o(void 0),u(void 0),d(lyr)},[]);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 uyr(e=ayr){let{selectedCwd:t}=$n(),r=Nu(),n=cyr(),i=n.cwd??t,o=e(i);return o?{...n,cwd:i,mode:n.mode??o,node:syr(n.node,r)}:null}function fyr(e){Io(Yn("newSession").matches,e)}var dyr=L(ge(),1);function hyr(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,dyr.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 myr=L(z(),1);function pyr({launchers:e}){let[t,r]=(0,c0e.useState)(!1),n=uyr(),i=(0,c0e.useCallback)(()=>r(!0),[]);return fyr(i),hyr(n,i),!t||!n?null:(0,myr.jsx)(oyr,{draft:n,launchers:e,onClose:()=>r(!1)})}var u0e=L(z(),1);function gyr({reconnecting:e}){return(0,u0e.jsx)(ol,{open:e,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,u0e.jsx)(ri,{severity:"info",variant:"filled",icon:(0,u0e.jsx)(mo,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var ev=L(z(),1);function yyr({socket:e,onViewLaunchedSession:t}){return(0,ev.jsxs)(ev.Fragment,{children:[(0,ev.jsx)(g0r,{}),(0,ev.jsx)(pyr,{launchers:{onCreate:e.createSession,onCreateDesign:e.createDesignSession,onCreateHarness:e.createHarnessSession,onCreateAssist:e.createAssistSession}}),(0,ev.jsx)(gyr,{reconnecting:e.reconnecting}),(0,ev.jsx)(vu,{error:e.error,onClose:e.clearError}),(0,ev.jsx)(v0r,{notice:e.success,onClose:e.clearSuccess,onView:t})]})}var l0=L(ge(),1);var AVn=6e4;function vyr(e){let t=e.nodes?.local,r=e.names.join(`
3977
3977
  `),[n,i]=(0,l0.useState)([]),[o,a]=(0,l0.useState)(!0),s=(0,l0.useRef)(0),l=(0,l0.useCallback)(()=>{let u=r?r.split(`
3978
3978
  `):[];if(u.length===0)return;let f=++s.current;Promise.all(u.map(d=>sge(d,d===t))).then(d=>{f===s.current&&(i(d),a(!1))})},[r,t]);return(0,l0.useEffect)(()=>{l();let u=setInterval(l,AVn);return()=>clearInterval(u)},[l]),(0,l0.useMemo)(()=>({entries:n,loading:o,refresh:l}),[n,o,l])}var B_=L(z(),1);function byr({shell:e,children:t}){let{socket:r,selection:n,launch:i,topBar:o,sidebarCollapse:a}=e,s=vyr(r.nodeSelection);return(0,B_.jsx)(m$e.Provider,{value:s,children:(0,B_.jsx)($2e.Provider,{value:o,children:(0,B_.jsx)(ETe.Provider,{value:a,children:(0,B_.jsx)(xz.Provider,{value:n,children:(0,B_.jsx)(M$e.Provider,{value:r.nodeSelection,children:(0,B_.jsx)(Yu.Provider,{value:n.selectedNode,children:(0,B_.jsx)(rTe.Provider,{value:i,children:t})})})})})})})}var xyr=L(z(),1),Tyr=ft((0,xyr.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 Syr=L(ge(),1);var c0=L(z(),1),PVn={ml:1,textTransform:"none",fontSize:12};function Cyr(){let{nodes:e,names:t,visible:r,selected:n,select:i}=Nu(),[o,a]=(0,Syr.useState)(null);return!r||!e||!n?null:(0,c0.jsxs)(c0.Fragment,{children:[(0,c0.jsx)(qt,{size:"small",color:"inherit",startIcon:(0,c0.jsx)(Tyr,{fontSize:"small"}),"aria-label":"Machine","aria-haspopup":"menu",onClick:s=>a(s.currentTarget),sx:PVn,children:(0,c0.jsx)(TY,{nodes:e,name:n})}),(0,c0.jsx)(Dl,{anchorEl:o,open:!!o,onClose:()=>a(null),children:t.map(s=>(0,c0.jsx)(un,{selected:s===n,onClick:()=>{i(s),a(null)},sx:{fontSize:13},children:(0,c0.jsx)(TY,{nodes:e,name:s,showVersion:!0})},s))})]})}var SY=L(ge(),1);function wyr(e,t){return[...e[0].slice(0,-1),String(t+1)]}var f0e=L(z(),1);function _yr({index:e,label:t,...r}){let{chords:n}=Yn("navTab");return(0,f0e.jsx)(lr,{describeChild:!0,title:(0,f0e.jsx)(Jf,{label:t,chords:[wyr(n,e)]}),children:(0,f0e.jsx)(_v,{label:t,...r})})}var K$e=L(ge(),1);function kyr(e,t){let{bound:r}=Yn("navTab"),n=e.length,i=(0,K$e.useCallback)(a=>(Ez(a,r)??n)<n,[r,n]),o=(0,K$e.useCallback)(a=>{let s=e[Ez(a,r)??-1];s&&t(s)},[e,t,r]);Io(i,o)}var d0e=L(ge(),1);function Eyr(){let[e,t]=(0,d0e.useState)(!1);return(0,d0e.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 h0e=L(ge(),1);async function LVn(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 Ryr(e){let[t,r]=(0,h0e.useState)(null),n=yr(),i=`${n??""}\0${e}`;return(0,h0e.useEffect)(()=>{if(!e)return;let o=!1;return LVn(e,n).catch(()=>{}).then(a=>{o||r({key:i,configured:a})}),()=>{o=!0}},[e,n,i]),t?.key===i?t.configured:void 0}var Ayr=L(ge(),1);function Pyr(e){let{pathname:t}=ua(),r=Xi(),n=t==="/releases"||t.startsWith("/releases/");(0,Ayr.useEffect)(()=>{e===!1&&n&&r("/sessions",{replace:!0})},[e,n,r])}var MVn={path:"/sessions",label:"Sessions"},IVn={path:"/backlog",label:"Backlog"},DVn={path:"/next",label:"Next"},NVn={path:"/releases",label:"Releases"},OVn={path:"/news",label:"News"};function Lyr(e,t){return[MVn,IVn,DVn,...e?[NVn]:[],...t?[OVn]:[]]}var X$e=L(z(),1);function Myr({cwd:e}){let t=ua(),r=Xi(),n=Ryr(e),i=Eyr();Pyr(n);let o=n===!0,a=(0,SY.useMemo)(()=>Lyr(o,i),[o,i]),s=(0,SY.useMemo)(()=>a.map(f=>f.path),[a]),l=a.findIndex(f=>t.pathname.startsWith(f.path)),u=(0,SY.useCallback)(f=>{t.pathname!==f&&r(f)},[t.pathname,r]);return kyr(s,u),(0,X$e.jsx)($k,{value:l===-1?!1:l,textColor:"inherit",indicatorColor:"secondary",children:a.map((f,d)=>(0,X$e.jsx)(_yr,{index:d,label:f.label,onClick:()=>u(f.path)},f.path))})}var Iyr=L(z(),1),Dyr=ft((0,Iyr.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 CY=L(z(),1),BVn={color:"success.light"};function Nyr(){let[,e]=Pc(),{label:t,chords:r}=Yn("newSession");return(0,CY.jsx)(lr,{title:(0,CY.jsx)(Jf,{label:t,chords:r}),children:(0,CY.jsx)(sr,{size:"small",sx:BVn,"aria-label":"New session",onClick:()=>e(i=>(i.set("new",""),i),{replace:!0}),children:(0,CY.jsx)(Dyr,{})})})}var m0e=L(ge(),1);var p0e=L(z(),1),FVn={color:"inherit"};function Oyr({cwd:e}){let[t,r]=(0,m0e.useState)(null),n=yr();return(0,m0e.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,p0e.jsx)(lr,{title:"Open in GitHub",children:(0,p0e.jsx)(sr,{sx:FVn,onClick:()=>window.open(t,"_blank"),children:(0,p0e.jsx)(oP,{})})}):null}var $yr=L(ge(),1);var Fyr=L(ge(),1);var g0e=L(z(),1);function Byr({window:e,windowSeconds:t,fallbackLabel:r,now:n}){let i=e?.used_percentage;if(i==null)return null;let o=v_(i,e?.resets_at,t,n),a=e?.resets_at!=null?mge(e.resets_at,n):r;return(0,g0e.jsxs)(ue,{component:"span",children:[(0,g0e.jsxs)(ue,{component:"span",sx:{color:b_(o)},children:[Math.round(i),"%"]})," ",(0,g0e.jsxs)(ue,{component:"span",sx:{color:"text.secondary"},children:["(",a,")"]})]})}var F_=L(z(),1);function y0e({rateLimits:e}){let t=x_(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,F_.jsx)(F_.Fragment,{children:r.map((n,i)=>(0,F_.jsxs)(Fyr.Fragment,{children:[i>0?(0,F_.jsx)(ue,{component:"span",sx:{color:"text.secondary",mr:.5},children:","}):null,(0,F_.jsx)(Byr,{window:n.window,windowSeconds:n.windowSeconds,fallbackLabel:n.fallbackLabel,now:t})]},n.fallbackLabel))})}var $_=L(z(),1);function zyr({groups:e}){return(0,$_.jsx)($_.Fragment,{children:e.map((t,r)=>(0,$_.jsxs)($yr.Fragment,{children:[(0,$_.jsx)(ue,{component:"span",sx:{color:"text.secondary",ml:r>0?1:0,mr:.5},children:gu(t.harness)}),(0,$_.jsx)(y0e,{rateLimits:t.rateLimits})]},t.harness))})}function $Vn(e){if(e==="over")return{level:"warn",boundary:100};if(e==="warn")return{level:"ok",boundary:75}}function zVn(e){if(e==="ok")return{level:"warn",boundary:75};if(e==="warn")return{level:"over",boundary:100}}function HVn(e,t,r,n){if(e>=t)return;let i=e/t;return Math.round(r-n*(1-i))}function Wyr(e,t,r,n){if(t==null)return{kind:"unprojectable"};let i=w$e(t,r,n);if(i==null)return{kind:"unprojectable"};let o=v_(e,t,r,n),a=$Vn(o),s=zVn(o);return{kind:"projected",recovery:a&&{level:a.level,pct:a.boundary*i,at:HVn(e,a.boundary,t,r)},worse:s&&{level:s.level,pct:s.boundary*i}}}function Vyr(e,t){return e.at==null?"not before reset":`${e.level==="ok"?"green":"under"} in ${mge(e.at,t)}`}var u0=L(z(),1);function Z$e({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,u0.jsx)(ue,{component:"span",sx:n});let i=(0,u0.jsx)(ue,{component:"span",sx:{opacity:.6},children:r?"\u2190":"\u2192"}),o=(0,u0.jsxs)(ue,{component:"span",sx:{color:b_(t.level)},children:[Math.round(t.pct),"%"]});return(0,u0.jsx)(ue,{component:"span",sx:n,children:r?(0,u0.jsxs)(u0.Fragment,{children:[o,i]}):(0,u0.jsxs)(u0.Fragment,{children:[i,o]})})}var z_=L(z(),1);function Gyr({label:e,pct:t,resetsAt:r,windowSeconds:n,now:i}){let o=v_(t,r,n,i),a=Wyr(t,r,n,i),s=a.kind==="projected"?a:void 0;return(0,z_.jsxs)(ue,{sx:{display:"flex",alignItems:"baseline",gap:.75},children:[(0,z_.jsx)(ue,{component:"span",sx:{minWidth:"2ch"},children:e}),(0,z_.jsx)(Z$e,{direction:"back",threshold:s?.recovery}),(0,z_.jsxs)(ue,{component:"span",sx:{minWidth:"4ch",textAlign:"right",color:b_(o)},children:[Math.round(t),"%"]}),(0,z_.jsx)(Z$e,{direction:"forward",threshold:s?.worse}),(0,z_.jsx)(ue,{component:"span",sx:{opacity:.6},children:s?s.recovery&&Vyr(s.recovery,i):"no projection yet"})]})}function qyr(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 jyr=L(z(),1);function v0e({rateLimits:e,now:t}){return qyr(e).map(r=>(0,jyr.jsx)(Gyr,{label:r.label,pct:r.pct,resetsAt:r.resetsAt,windowSeconds:r.windowSeconds,now:t},r.label))}var IR=L(z(),1);function Yyr({groups:e}){let t=x_(3e4);return(0,IR.jsxs)(ue,{sx:{fontFamily:"monospace",fontSize:12},children:[e.map(r=>(0,IR.jsxs)(ue,{sx:{mb:.5},children:[(0,IR.jsx)(ue,{sx:{opacity:.8},children:gu(r.harness)}),(0,IR.jsx)(v0e,{rateLimits:r.rateLimits,now:t})]},r.harness)),(0,IR.jsx)(ue,{sx:{mt:.5,opacity:.6},children:"Account usage per harness \u2014 view history"})]})}function Kyr(e){return e?.five_hour?.used_percentage!=null||e?.seven_day?.used_percentage!=null}function Xyr(e,t){let r=[];Kyr(e)&&r.push({harness:"claude",rateLimits:e});for(let[n,i]of Object.entries(t))Kyr(i)&&r.push({harness:n,rateLimits:i});return r}var wY=L(z(),1),Q$e="Claude account usage (5h / 7d windows) \u2014 view history";function Zyr({rateLimits:e}){let t=x_(3e4);return(0,wY.jsxs)(ue,{sx:{fontFamily:"monospace",fontSize:12},children:[(0,wY.jsx)(v0e,{rateLimits:e,now:t}),(0,wY.jsx)(ue,{sx:{mt:.5,opacity:.6},children:Q$e})]})}var DR=L(z(),1),UVn={display:"flex",alignItems:"center",ml:2,fontFamily:"monospace",fontSize:13},WVn={};function Qyr({rateLimits:e,harnessRateLimits:t=WVn}){let r=Xyr(e,t),n=r.every(s=>s.harness==="claude"),i=e,o=Q$e,a="Usage";return r.length>0&&n?(o=(0,DR.jsx)(Zyr,{rateLimits:i}),a=(0,DR.jsx)(y0e,{rateLimits:i})):r.length>0&&(o=(0,DR.jsx)(Yyr,{groups:r}),a=(0,DR.jsx)(zyr,{groups:r})),(0,DR.jsx)(lr,{title:o,children:(0,DR.jsx)(xn,{component:ys,to:"/usage",underline:"hover",color:"inherit",sx:UVn,children:a})})}var f0=L(z(),1),VVn={color:"inherit",mr:1.5};function Jyr({reconnecting:e}){let{pending:t,error:r,clearError:n,restart:i}=y_("webserver",e);return(0,f0.jsxs)(f0.Fragment,{children:[(0,f0.jsx)(lr,{title:"Restart web server",children:(0,f0.jsx)("span",{children:(0,f0.jsx)(sr,{sx:VVn,disabled:t,onClick:i,children:t?(0,f0.jsx)(mo,{size:24}):(0,f0.jsx)(oge,{})})})}),(0,f0.jsx)(vu,{error:r,onClose:n})]})}var r1r=L(ge(),1);var e1r=L(ge(),1);function t1r(e){let t=Oi().palette.primary.main;Io(Yn("focusRepoPicker").matches,(0,e1r.useCallback)(()=>Xu({locate:()=>e.current?.querySelector("button")??null,focus:r=>r.focus()},t),[e,t]))}var _Y=L(z(),1),GVn={width:240,ml:2};function n1r({repos:e,selected:t,onSelect:r}){let n=(0,r1r.useRef)(null);t1r(n);let{chords:i}=Yn("focusRepoPicker");return(0,_Y.jsx)(ue,{ref:n,sx:GVn,children:(0,_Y.jsx)(Hee,{label:t?K1(t):"Select repo...",tooltip:(0,_Y.jsx)(Jf,{label:"Repo",chords:i}),children:o=>(0,_Y.jsx)(imr,{repos:e,selected:t,onSelect:r,close:o})})})}var h1r=L(ge(),1);var kY=L(ge(),1);function b0e(e){let[t,r]=(0,kY.useState)([]),[n,i]=(0,kY.useState)(!0),o=yr();return(0,kY.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 J$e=L(z(),1);function eze({text:e}){return(0,J$e.jsx)(ue,{sx:{p:1.5},children:(0,J$e.jsx)(Fe,{sx:{fontSize:13,color:"text.secondary"},children:e})})}var SB=L(z(),1);function i1r({pr:e,highlighted:t,onHover:r,onPick:n}){let i=Nge(t);return(0,SB.jsx)(un,{ref:i,selected:t,onMouseDown:o=>o.preventDefault(),onMouseEnter:r,onClick:()=>n(e),sx:{alignItems:"flex-start",py:.75,whiteSpace:"normal"},children:(0,SB.jsxs)(Rt,{spacing:.25,sx:{minWidth:0},children:[(0,SB.jsx)(Fe,{sx:{fontSize:13,lineHeight:1.3,fontWeight:500},children:e.title}),(0,SB.jsxs)(Fe,{sx:{fontSize:11,color:"text.secondary"},children:["#",e.number," \xB7 ",e.author," \xB7 ",fa(e.createdAt)]})]})})}var tze=L(z(),1);function o1r({prs:e,highlight:t,onHighlight:r,onPick:n}){return(0,tze.jsx)(Tp,{dense:!0,disablePadding:!0,sx:{maxHeight:200,overflowY:"auto"},children:e.map((i,o)=>(0,tze.jsx)(i1r,{pr:i,highlighted:o===t,onHover:()=>r(o),onPick:n},i.number))})}var s1r=L(ge(),1);function a1r(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 l1r(e,t,r){let[n,i]=(0,s1r.useState)(""),o=a1r(e,n),{highlight:a,setHighlight:s,onKeyDown:l}=k_(o,n,t,r);return{filter:n,setFilter:i,filtered:o,highlight:a,setHighlight:s,onKeyDown:l,select:f=>{t(f),r()}}}var H_=L(z(),1),c1r={...LP,left:"auto",width:320,maxHeight:"none",overflowY:"visible"};function u1r({cwd:e,onPick:t,close:r}){let{prs:n,loading:i}=b0e(e),o=l1r(n,t,r);return i||n.length===0?(0,H_.jsx)(an,{elevation:4,sx:c1r,children:(0,H_.jsx)(eze,{text:i?"Loading open PRs\u2026":"No open PRs"})}):(0,H_.jsxs)(an,{elevation:4,sx:c1r,children:[(0,H_.jsx)(aB,{autoFocus:!0,value:o.filter,onChange:o.setFilter,onKeyDown:o.onKeyDown,placeholder:"Filter PRs..."}),o.filtered.length===0?(0,H_.jsx)(eze,{text:"No PRs match"}):(0,H_.jsx)(o1r,{prs:o.filtered,highlight:o.highlight,onHighlight:o.setHighlight,onPick:o.select})]})}var d1r=L(z(),1);function f1r({cwd:e,onPick:t,close:r}){return(0,d1r.jsx)(u1r,{cwd:e,onPick:t,close:r})}var U_=L(z(),1);function p1r({cwd:e,disabled:t,onSelect:r}){let{prs:n,loading:i}=b0e(e),[o,a]=(0,h1r.useState)(null);return i||n.length===0?null:(0,U_.jsxs)(U_.Fragment,{children:[(0,U_.jsx)(Hee,{label:"prs",disabled:t,children:s=>(0,U_.jsx)(f1r,{cwd:e,onPick:a,close:s})}),o&&(0,U_.jsx)(_pe,{pr:o,onSelect:s=>{r(o,s),a(null)},onCancel:()=>a(null)})]})}var g1r=L(z(),1);function m1r({onStartRun:e,cwd:t}){let r=Nee(t);return!t||r.length===0?null:(0,g1r.jsx)(Iee,{runs:r,onSelect:n=>e(n,t)})}var EY=L(z(),1);function y1r({onCreateAssist:e,onStartRun:t}){let{selectedCwd:r,selectedNode:n}=$n();return(0,EY.jsxs)(Rt,{direction:"row",spacing:.5,sx:{alignItems:"center","&:not(:empty)":{ml:2}},children:[(0,EY.jsx)(p1r,{cwd:r,disabled:!r,onSelect:(i,o)=>e([...o,String(i.number)],r,{..._P(i),node:n})}),(0,EY.jsx)(m1r,{onStartRun:(i,o)=>t(i,o,void 0,void 0,n),cwd:r})]})}var Hd=L(z(),1),qVn={minHeight:48,pl:1,pr:14};function v1r({socket:e,selection:t}){let{collapsed:r,onToggleCollapsed:n}=JT();return(0,Hd.jsxs)(Fk,{variant:"dense",disableGutters:!0,sx:qVn,children:[r&&(0,Hd.jsx)(Zee,{collapsed:r,onToggleCollapsed:n}),(0,Hd.jsx)(Jyr,{reconnecting:e.reconnecting}),(0,Hd.jsx)(Myr,{cwd:t.selectedCwd}),(0,Hd.jsx)(Cyr,{}),(0,Hd.jsx)(n1r,{repos:t.repos,selected:t.selectedCwd,onSelect:t.setSelectedCwd}),(0,Hd.jsxs)(ue,{sx:{display:"flex",alignItems:"center",ml:1},children:[(0,Hd.jsx)(Wee,{cwd:t.selectedCwd}),(0,Hd.jsx)(Oyr,{cwd:t.selectedCwd}),(0,Hd.jsx)(Nyr,{})]}),(0,Hd.jsx)(y1r,{onCreateAssist:e.createAssistSession,onStartRun:e.startRun}),(0,Hd.jsx)(Qyr,{rateLimits:e.rateLimits,harnessRateLimits:e.harnessRateLimits})]})}var x0e=L(ge(),1);function b1r(){let[e,t]=(0,x0e.useState)(null);return(0,x0e.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 T1r=L(z(),1),jVn={lineHeight:"32px",bgcolor:"transparent"};function x1r(){let e=b1r();return e?(0,T1r.jsx)(T1e,{sx:jVn,children:e}):null}var S1r=L(z(),1),C1r=ft((0,S1r.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 w1r=L(z(),1),_1r=ft((0,w1r.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 k1r=L(z(),1),E1r=ft((0,k1r.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 R1r=L(z(),1),A1r=ft((0,R1r.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 rze=L(z(),1);function P1r({mode:e}){return e==="dark"?(0,rze.jsx)(A1r,{fontSize:"small"}):(0,rze.jsx)(E1r,{fontSize:"small"})}var L1r=L(z(),1),M1r=ft((0,L1r.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 CB=L(z(),1);function I1r(){let e=Mpe();return(0,CB.jsxs)(un,{onClick:()=>xft(!e),children:[(0,CB.jsx)(rT,{children:(0,CB.jsx)(M1r,{fontSize:"small"})}),(0,CB.jsx)(xp,{children:e?"Hide render HUD":"Show render HUD"})]})}var el=L(z(),1);function D1r({mode:e,restartLabel:t,updateLabel:r,onToggleColorMode:n,onShowShortcuts:i,onRestart:o,onUpdate:a}){return[(0,el.jsxs)(un,{onClick:n,children:[(0,el.jsx)(rT,{children:(0,el.jsx)(P1r,{mode:e})}),(0,el.jsx)(xp,{children:"Toggle dark mode"})]},"color-mode"),(0,el.jsx)(I1r,{},"render-hud"),(0,el.jsxs)(un,{onClick:i,children:[(0,el.jsx)(rT,{children:(0,el.jsx)(C1r,{fontSize:"small"})}),(0,el.jsx)(xp,{children:"Keyboard shortcuts"})]},"shortcuts"),(0,el.jsx)(no,{},"restart-divider"),(0,el.jsxs)(un,{onClick:o,children:[(0,el.jsx)(rT,{children:(0,el.jsx)(fee,{fontSize:"small"})}),(0,el.jsx)(xp,{children:t})]},"restart"),(0,el.jsxs)(un,{onClick:a,children:[(0,el.jsx)(rT,{children:(0,el.jsx)(_1r,{fontSize:"small"})}),(0,el.jsx)(xp,{children:r})]},"update")]}var N1r=L(ge(),1);var B1r=L(z(),1);function O1r({peer:e,onRestart:t,onClose:r}){let[n,i]=(0,N1r.useState)(!1);return(0,B1r.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 F1r(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 YVn=Object.keys(gP);function $1r(){let e=yP();return F1r(YVn.map(t=>WT(t,e)))}var ip=L(z(),1),KVn={display:"flex",alignItems:"center",justifyContent:"space-between",pr:1},XVn={display:"flex",alignItems:"center",justifyContent:"space-between",gap:2,py:.5};function z1r({onClose:e}){let t=$1r();return(0,ip.jsxs)(Ps,{open:!0,onClose:e,maxWidth:"xs",fullWidth:!0,"aria-labelledby":"shortcuts-dialog-title",children:[(0,ip.jsxs)(Il,{id:"shortcuts-dialog-title",sx:KVn,children:["Keyboard shortcuts",(0,ip.jsx)(sr,{size:"small","aria-label":"Close",onClick:e,children:(0,ip.jsx)(da,{fontSize:"small"})})]}),(0,ip.jsx)(Ml,{dividers:!0,children:t.map(r=>(0,ip.jsxs)(ue,{component:"section",sx:{mb:1.5},children:[(0,ip.jsx)(Fe,{variant:"overline",color:"text.secondary",children:r.name}),r.shortcuts.map(n=>(0,ip.jsxs)(ue,{sx:XVn,children:[(0,ip.jsx)(Fe,{variant:"body2",children:n.label}),(0,ip.jsx)(Rt,{direction:"row",spacing:.5,children:(0,ip.jsx)(GJ,{chords:n.chords})})]},n.label))]},r.name))})]})}var NR=L(z(),1);function H1r({reconnecting:e,onClose:t}){let{pending:r,error:n,clearError:i,restart:o}=y_(K9.target,e);return(0,NR.jsxs)(NR.Fragment,{children:[(0,NR.jsx)(vo,{title:K9.label,message:K9.message,confirmLabel:"Restart",busy:r,autoFocusConfirm:!0,onConfirm:()=>{o()},onCancel:t}),(0,NR.jsx)(vu,{error:n,onClose:i})]})}var W1r=L(z(),1);function ZVn(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 U1r({peer:e,onConfirm:t,onClose:r}){return(0,W1r.jsx)(vo,{...ZVn(e),confirmLabel:"Update",onConfirm:()=>{t(),r()},onCancel:r})}var d0=L(ge(),1);async function QVn(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 V1r(e,t){let r=await QVn(e);if(!r)return t;let n=r.remediation?` \u2014 ${r.remediation}`:"";return`${t}: ${r.hop} hop failed: ${r.error}${n}`}var O2=L(ge(),1);function G1r(e){let{nodes:t}=Nu(),[r,n]=(0,O2.useState)(null),i=(0,O2.useRef)(!1),o=r?t?.links.find(l=>l.name===r.peer):void 0;(0,O2.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,O2.useCallback)((l,u)=>{i.current=!1,n({peer:l,describe:u})},[]),s=(0,O2.useCallback)(()=>n(null),[]);return{watch:a,stop:s}}var JVn=9e4;function T0e(){let[e,t]=(0,d0.useState)(null),[r,n]=(0,d0.useState)(null),i=(0,d0.useRef)(void 0),o=(0,d0.useCallback)(f=>{clearTimeout(i.current),t(f)},[]),{watch:a,stop:s}=G1r(o);(0,d0.useEffect)(()=>()=>clearTimeout(i.current),[]);let l=(0,d0.useCallback)(async(f,d)=>{n(await V1r(f,d))},[]);return{requestThenAwait:(0,d0.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`)},JVn),!0):(await l(f,`${d} failed (${await Y9(m)})`),!1)},[l,a,s]),back:e,clearBack:()=>t(null),error:r,clearError:()=>n(null)}}var eGn=(e,t)=>t?`${e} is back (v${t})`:`${e} is back`;function q1r(){let{requestThenAwait:e,...t}=T0e();return{restart:n=>e(n,`Restart ${n}`,()=>g_("both",n),eGn),...t}}var RY=L(ge(),1);var h0=L(ge(),1);function j1r(e){return e.commandType==="assist"&&e.assistArgs?.[0]==="update"&&e.status==="done"}function S0e(e,t,r){let[n,i]=(0,h0.useState)(!1),[o,a]=(0,h0.useState)(!1),s=(0,h0.useRef)(!1),l=(0,h0.useRef)(e);l.current=e;let u=(0,h0.useRef)(new Set),f=(0,h0.useCallback)(()=>{s.current=!1,a(!1),u.current=new Set(l.current.filter(j1r).map(d=>d.id)),i(!0)},[]);return(0,h0.useEffect)(()=>{if(!n||o)return;if(t){s.current=!0;return}if(!s.current)return;e.some(h=>j1r(h)&&h.node===r&&!u.current.has(h.id))&&a(!0)},[n,o,t,e,r]),{arm:f,completed:o}}var Y1r=(e,t)=>t?`${e} updated to v${t}`:`${e} updated`;function tGn(e){return fetch(`/api/self-update?node=${encodeURIComponent(e)}`,{method:"POST"})}function K1r(e){let{nodes:t}=Nu(),{launchAssist:r}=$l(),{requestThenAwait:n,...i}=T0e(),[o,a]=(0,RY.useState)(null),[s,l]=(0,RY.useState)(),u=m=>t?.links.find(g=>g.name===m)?.state,{arm:f,completed:d}=S0e(e,u(s)!=="connected",s);(0,RY.useEffect)(()=>{!d||!s||(l(void 0),n(s,`Restart ${s}'s web server`,()=>g_("webserver",s),Y1r))},[d,s,n]);let h=async m=>{a(`Updating assist on ${m}\u2026`),await n(m,`Update ${m}`,()=>tGn(m),Y1r),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 p0=L(z(),1);function X1r({dialog:e,peer:t,sessions:r,reconnecting:n,onClose:i}){let{launchAssist:o,armUpdateReload:a}=$l(),s=q1r(),l=K1r(r);return(0,p0.jsxs)(p0.Fragment,{children:[e==="shortcuts"&&(0,p0.jsx)(z1r,{onClose:i}),e==="restart"&&t&&(0,p0.jsx)(O1r,{peer:t,onRestart:s.restart,onClose:i}),e==="restart"&&!t&&(0,p0.jsx)(H1r,{reconnecting:n,onClose:i}),e==="update"&&(0,p0.jsx)(U1r,{peer:t,onConfirm:()=>{if(t){l.update(t);return}a(),o(["update"])},onClose:i}),(0,p0.jsx)(Kj,{notices:s}),(0,p0.jsx)(Kj,{notices:l})]})}var Z1r=L(z(),1),Q1r=ft((0,Z1r.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 J1r=L(ge(),1);var AY=L(z(),1);function evr(){let e=Xi(),t=(0,J1r.useCallback)(()=>e("/config"),[e]),{matches:r,chords:n}=Yn("openConfig");return Io(r,t),(0,AY.jsx)(lr,{describeChild:!0,title:(0,AY.jsx)(Jf,{label:"Config",chords:n}),children:(0,AY.jsx)(sr,{size:"small",sx:{color:"inherit"},"aria-label":"Config",onClick:t,children:(0,AY.jsx)(Q1r,{fontSize:"small"})})})}var tvr=L(z(),1),rvr=ft((0,tvr.jsx)("path",{d:"M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z"}),"Menu");var C0e=L(ge(),1);var PY=L(z(),1);function nvr({open:e,onOpen:t}){let r=(0,C0e.useRef)(null),{matches:n,chords:i}=Yn("openMenu");return Io(n,(0,C0e.useCallback)(()=>{r.current&&t(r.current)},[t])),(0,PY.jsx)(lr,{describeChild:!0,title:(0,PY.jsx)(Jf,{label:"Menu",chords:i}),children:(0,PY.jsx)(sr,{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,PY.jsx)(rvr,{fontSize:"small"})})})}var nze=L(z(),1),ivr=ft([(0,nze.jsx)("path",{d:"M12 5.99 19.53 19H4.47zM12 2 1 21h22z"},"0"),(0,nze.jsx)("path",{d:"M13 16h-2v2h2zm0-6h-2v5h2z"},"1")],"WarningAmber");var ize=L(z(),1);function ovr(){let e=a0e();return!e||e===N_?null:(0,ize.jsx)(lr,{title:`Daemon is running v${e}, but this page was served by v${N_}. Restart the daemon to match.`,children:(0,ize.jsx)(ivr,{fontSize:"small",color:"warning","aria-label":"Version mismatch"})})}var avr=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 tv=L(z(),1);function svr(){let{entries:e}=z9();if(!N_)return null;let t=e.filter(ige).length;return(0,tv.jsxs)(tv.Fragment,{children:[(0,tv.jsxs)(Dn,{component:ys,to:"/updates","aria-label":t?`Updates: ${t} node${t>1?"s have":" has"} an update ready`:"Updates",sx:avr(t>0),children:[t>0&&(0,tv.jsx)("span",{className:"ready-dot","aria-hidden":!0}),(0,tv.jsxs)("span",{children:["v",N_]}),t>0&&(0,tv.jsxs)("span",{className:"ready-count",children:[t," ready"]})]}),(0,tv.jsx)(ovr,{})]})}var wB=L(z(),1);function lvr({open:e,onOpen:t}){return(0,wB.jsxs)(ue,{sx:{position:"fixed",top:8,right:16,zIndex:r=>r.zIndex.drawer+2,display:"flex",alignItems:"center",gap:.5,color:"inherit"},children:[(0,wB.jsx)(svr,{}),(0,wB.jsx)(evr,{}),(0,wB.jsx)(nvr,{open:e,onOpen:t})]})}var OR=L(ge(),1);var uvr=L(ge(),1);var cvr=!0,rGn=new Set(["openMenu","cycleCards"]),nGn=Object.keys(gP).filter(e=>!rGn.has(e));function fvr(e,t){let r=yP();(0,uvr.useEffect)(()=>{if(!e)return;let n=i=>{nGn.some(o=>WT(o,r).matches(i))&&t()};return globalThis.addEventListener("keydown",n,cvr),()=>globalThis.removeEventListener("keydown",n,cvr)},[e,t,r])}function dvr(){let[e,t]=(0,OR.useState)(null),[r,n]=(0,OR.useState)(!0),i=!!e,o=(0,OR.useCallback)(()=>t(null),[]),a=(0,OR.useCallback)(s=>{n(!0),t(s)},[]);return fvr(i,(0,OR.useCallback)(()=>{n(!1),t(null)},[])),{anchorEl:e,open:i,close:o,openAt:a,restoreFocus:r}}var LY=L(ge(),1);function hvr(e){Io(Yn("shortcutsSheet").matches,e)}function pvr(){let[e,t]=(0,LY.useState)(null);hvr((0,LY.useCallback)(()=>t("shortcuts"),[]));let r=(0,LY.useCallback)(()=>t(null),[]);return{dialog:e,showDialog:t,closeDialog:r}}function mvr(){let{nodes:e,selected:t}=Nu();return e&&t&&t!==e.local?t:void 0}function gvr(e){return{restartLabel:e?`Restart ${e}`:K9.label,updateLabel:e?`Update assist on ${e}`:"Update assist"}}var B2=L(z(),1);function yvr({mode:e,toggle:t,sessions:r,reconnecting:n}){let{anchorEl:i,open:o,close:a,openAt:s,restoreFocus:l}=dvr(),{dialog:u,showDialog:f,closeDialog:d}=pvr(),h=mvr(),p=m=>()=>{a(),f(m)};return(0,B2.jsxs)(B2.Fragment,{children:[(0,B2.jsx)(lvr,{open:o,onOpen:s}),(0,B2.jsxs)(Dl,{anchorEl:i,open:o,onClose:a,disableRestoreFocus:!l,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[(0,B2.jsx)(x1r,{}),D1r({mode:e,...gvr(h),onToggleColorMode:()=>{t(),a()},onShowShortcuts:p("shortcuts"),onRestart:p("restart"),onUpdate:p("update")})]}),(0,B2.jsx)(X1r,{dialog:u,peer:h,sessions:r,reconnecting:n,onClose:d})]})}var xvr=L(ge(),1);var bvr=L(z(),1);function vvr({conflict:e,onConfirm:t,onCancel:r}){let{name:n,cwd:i,port:o,group:a}=e.existing,s=Bp(i),l=o?` on port ${o}`:"",u=s?` in ${s}`:"",f=a?`, holding the ${a} server slot`:"";return(0,bvr.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 w0e=L(z(),1);function Tvr({socket:e,children:t}){let{serverConflict:r,clearServerConflict:n,retrySession:i,stopSession:o,startRun:a,discardSession:s}=e,l=(0,xvr.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,w0e.jsxs)(Z2e.Provider,{value:l,children:[t,r&&(0,w0e.jsx)(vvr,{conflict:r,onConfirm:u,onCancel:n})]})}var Svr=new Map;function Cvr(e,t){if(!Pre())return;let r=Svr.get(e);if(Svr.set(e,t),!!r)for(let[n,i]of Object.entries(t))Object.is(i,r[n])||ny(`\u0394 ${e}.${n}`)}var k0e=L(ge(),1);function wvr(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||Fp(i)!==t?null:n}function rv(e,t,r){if(e)return t.find(n=>n.id===e)??r.find(n=>n.sessionId===e)}function _0e(){let{pathname:e}=ua();return e.startsWith("/backlog")||e.startsWith("/usage")}function _vr({selectedCwd:e,selectedCardId:t,sessions:r,history:n,activeByRepo:i,onSelect:o}){let a=rv(t,r,n),s=a&&Fp(a),l=!!(s&&s===e),u=wvr(i,e,r),f=(0,k0e.useRef)(t),d=_0e();(0,k0e.useEffect)(()=>{let h=f.current!==t&&!!s;f.current=t,!(d||h||l||!u)&&o(u)},[t,s,l,u,o,d])}var A0e=L(ge(),1);function kvr(e,t,r,n){return rv(e,t,r)?.cwd||n}function Evr(e,t,r,n){let i=kvr(e,t,r,n.cwd),o=rv(e,t,r);return{cwd:i,node:o?.cwd?o.node:n.node}}function Rvr(e,t){let r=new Set,n=new Set,i=[];for(let o of t){if(o.cwdMissing)continue;let a=FT(o),s=Fp(o);!a||!s||r.has(a)||n.has(s)||(r.add(a),n.add(s),i.push(s))}return e&&!r.has(hP(e,t))&&!n.has(e)&&i.unshift(e),i}var op="";function iGn(e){let t=new Map([[op,[]]]);for(let r of e){let n=r.node??op;t.set(n,[...t.get(n)??[],r])}return t}function Avr(e,t){var n;let r=new Map;for(let[i,o]of iGn(t)){let a=i===op?e:"";for(let s of Rvr(a,o)){let l=hP(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 Pvr(e,t){return e.clones[t]??e.clones[op]??Object.values(e.clones)[0]}function MY(e,t){return e.find(r=>Object.values(r.clones).includes(t))}function _B(e,t){return!e||e===t?op:e}var oze=L(ge(),1);function Lvr(e,t){let r=(0,oze.useCallback)((i,o)=>{let a=_B(o,t),s=MY(e,i);return s?s.clones[a]:a===op?i:void 0},[e,t]),n=(0,oze.useCallback)(i=>MY(e,i)?.origin,[e]);return{cloneOn:r,originOf:n}}var E0e=L(ge(),1);function Mvr(e,t,r,n){let i=(0,E0e.useRef)(e);(0,E0e.useEffect)(()=>{if(i.current===e)return;i.current=e;let o=MY(t,r)?.clones[e];o&&n(o,e)},[e,t,r,n])}var kB=L(ge(),1);function Ivr(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(op)?op:[...n][0]}function Dvr(e,t,r,n){let[i,o]=(0,kB.useState)({cwd:e}),a=(0,kB.useCallback)((l,u)=>o({cwd:l,node:u}),[]);(0,kB.useEffect)(()=>{e&&!i.cwd&&o({cwd:e})},[e,i.cwd]);let s=Ivr(t,{cwd:i.cwd,node:i.node===void 0?void 0:_B(i.node,n)},r);return{selectedCwd:i.cwd,selectedNode:s||void 0,setSelectedCwd:a}}var Nvr=L(ge(),1);function R0e(e,t,r){let n=rv(e,t,r);return n&&Fp(n)}function Ovr(e,t,r,n){let i=R0e(e,t,r),o=rv(e,t,r)?.node??op;(0,Nvr.useEffect)(()=>{i&&n(i,o)},[i,o,n])}function Bvr(e,t,r,n,i){let o=i.nodes?.local,a=_B(i.selected,o),s=(0,A0e.useMemo)(()=>Avr(e,t),[e,t]),{selectedCwd:l,selectedNode:u,setSelectedCwd:f}=Dvr(e,s,a,o);Ovr(r,n,t,f),Mvr(a,s,l,f);let{cloneOn:d,originOf:h}=Lvr(s,o),p=(0,A0e.useMemo)(()=>s.map(y=>Pvr(y,a)),[s,a]),{cwd:m,node:g}=Evr(r,n,t,{cwd:l,node:u});return(0,A0e.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 L0e=L(ge(),1);var W_=L(ge(),1);var Fvr=L(ge(),1),P0e="assist:reloaded-after-update";function $vr(e){(0,Fvr.useEffect)(()=>{globalThis.sessionStorage?.getItem(P0e)&&(globalThis.sessionStorage.removeItem(P0e),e({message:"Reloaded after updating assist",sessionId:null}))},[e])}function zvr(e,t,r,n){let{arm:i,completed:o}=S0e(e,t),a=(0,W_.useRef)(!1),s=(0,W_.useCallback)(()=>{globalThis.sessionStorage?.setItem(P0e,"1")},[]),{error:l,restart:u}=y_("webserver",t,s);return $vr(r),(0,W_.useEffect)(()=>{l&&n(l)},[l,n]),(0,W_.useEffect)(()=>{!o||a.current||(a.current=!0,u())},[o,u]),{armUpdateReload:(0,W_.useCallback)(()=>{a.current=!1,i()},[i])}}function Hvr(e){let{armUpdateReload:t}=zvr(e.sessions,e.reconnecting,e.setSuccess,e.setError),r=(0,L0e.useMemo)(()=>({launchAssist:e.createAssistSession,launchAgentInStream:e.createSessionInStream,resumeSession:e.resumeSession,armUpdateReload:t}),[e.createAssistSession,e.createSessionInStream,e.resumeSession,t]),n=Xi(),i=(0,L0e.useCallback)(o=>{e.selectSession(o),n("/sessions"),e.clearSuccess()},[n,e.selectSession,e.clearSuccess]);return{launch:r,viewLaunchedSession:i}}var Uvr=L(ge(),1);function Wvr(e,t,r,n){let i=R0e(e,t,r);(0,Uvr.useEffect)(()=>{e&&i&&n({type:"set-active",cwd:i,sessionId:e})},[e,i,n])}var M0e=L(ge(),1);function Vvr(e,t){let r=(0,M0e.useRef)(new Map);(0,M0e.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 EB=L(ge(),1),Gvr="assist.sessions.node";function oGn(){try{return localStorage.getItem(Gvr)}catch{return null}}function aGn(e){try{localStorage.setItem(Gvr,e)}catch{}}function qvr(e){let[t,r]=(0,EB.useState)(oGn),n=(0,EB.useCallback)(i=>{r(i),aGn(i)},[]);return(0,EB.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 Yvr=L(ge(),1);function jvr(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 Kvr(e,t){return(0,Yvr.useCallback)(r=>{let n=e.current;n?.readyState===WebSocket.OPEN&&n.send(JSON.stringify(r));let i=jvr(r);i&&t(i)},[e,t])}var nv=L(ge(),1);function I0e(e,t,r,n,i){e({type:"create",prompt:r||void 0,cwd:n,...t,...i?{node:i}:{}})}function Xvr(e){return(t,r,n)=>I0e(e,{design:!0},t,r,n)}function Zvr(e){return(t,r,n,i)=>I0e(e,{harness:t},r,n,i)}function Qvr(e){return(t,r,n)=>I0e(e,{auto:!0},t,r,n)}function Jvr(e){return(t,r,n)=>e({type:"create-assist",assistArgs:t,cwd:r,...n})}function ebr(e){return(t,r,n,i,o)=>e({type:"resume",sessionId:t,cwd:r,name:n,harness:i,node:o})}function tbr(e,t){return(r,n)=>{t.delete(r),e({type:"retry",sessionId:r,replace:n})}}function rbr(e,t){return r=>{t.delete(r),e({type:"restart",sessionId:r})}}function nbr(e,t){return r=>{e({type:"dismiss",sessionId:r}),t.delete(r)}}function ibr(e,t){return r=>{e({type:"discard",sessionId:r}),t.delete(r)}}function obr(e){return t=>e({type:"stop",sessionId:t})}function abr(e){return(t,r,n,i,o)=>e({type:"create-run",runName:t,cwd:r,replace:n,launchedFrom:i,node:o})}function sbr(e){return(t,r)=>e({type:"set-autorun",sessionId:t,enabled:r})}function lbr(e){return(t,r)=>e({type:"set-autoadvance",sessionId:t,enabled:r})}function cbr(e){return(t,r)=>e({type:"set-starred",sessionId:t,starred:r})}function ubr(e){return(t,r)=>e({type:"input",sessionId:t,data:r,viewerId:Yj})}function fbr(e){return(t,r,n,i)=>e({type:"resize",sessionId:t,cols:r,rows:n,viewerId:Yj,claim:i})}function dbr(e,t){return(r,n)=>{let i=e.get(r);return i&&n(i),t.set(r,n),()=>t.delete(r)}}function hbr(e){return(t,r,n,i)=>e({type:"pr-decision",sessionId:t,requestId:r,decision:n,...i})}var BR=L(ge(),1);function pbr(e){return(t,r,n)=>e({type:"create",prompt:r||void 0,cwd:n,joinSessionId:t,auto:!0})}function mbr(e){return{createSession:(0,BR.useMemo)(()=>Qvr(e),[e]),createSessionInStream:(0,BR.useMemo)(()=>pbr(e),[e]),createDesignSession:(0,BR.useMemo)(()=>Xvr(e),[e]),createHarnessSession:(0,BR.useMemo)(()=>Zvr(e),[e]),createAssistSession:(0,BR.useMemo)(()=>Jvr(e),[e]),resumeSession:(0,BR.useMemo)(()=>ebr(e),[e])}}var IY=L(ge(),1);function gbr(e,t){let r=(0,IY.useCallback)((a,s)=>{tbr(e,t.current)(a,s)},[e,t]),n=(0,IY.useCallback)(a=>{rbr(e,t.current)(a)},[e,t]),i=(0,IY.useCallback)(a=>{nbr(e,t.current)(a)},[e,t]),o=(0,IY.useCallback)(a=>{ibr(e,t.current)(a)},[e,t]);return{retrySession:r,restartSession:n,dismissSession:i,discardSession:o}}function ybr(e,t,r){let n={...mbr(e),sendInput:(0,nv.useMemo)(()=>ubr(e),[e]),sendResize:(0,nv.useMemo)(()=>fbr(e),[e]),sendPrDecision:(0,nv.useMemo)(()=>hbr(e),[e]),setAutoRun:(0,nv.useMemo)(()=>sbr(e),[e]),setAutoAdvance:(0,nv.useMemo)(()=>lbr(e),[e]),setStarred:(0,nv.useMemo)(()=>cbr(e),[e]),stopSession:(0,nv.useMemo)(()=>obr(e),[e]),startRun:(0,nv.useMemo)(()=>abr(e),[e])},i=(0,nv.useMemo)(()=>dbr(t.current,r.current),[t,r]);return{...n,...gbr(e,t),onOutput:i}}var DY=L(ge(),1);function vbr(e,t,r){let n=(0,DY.useCallback)(s=>{r(s),e({type:"fetch-transcript",sessionId:s})},[e,r]),i=(0,DY.useCallback)(s=>e({type:"fetch-user-messages",sessionId:s}),[e]),o=(0,DY.useCallback)(()=>{r(null)},[r]),a=(0,DY.useCallback)(s=>{r(null),t(s)},[t,r]);return{viewTranscript:n,fetchUserMessages:i,clearTranscript:o,selectSession:a}}var q_=L(ge(),1);function bbr(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 Tbr=L(ge(),1);function xbr(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 Sbr(e,t,r){let n=_0e();(0,Tbr.useEffect)(()=>{if(n){t(null);return}t(i=>xbr(e,i,r))},[e,t,r,n])}var D0e=L(ge(),1);function Cbr(){let[e,t]=(0,D0e.useState)({}),[r,n]=(0,D0e.useState)(null),[i,o]=(0,D0e.useState)(null);return{activeByRepo:e,setActiveByRepo:t,daemonVersion:r,setDaemonVersion:n,nodes:i,setNodes:o}}var m0=L(ge(),1);function wbr(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 _br(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 kbr(e,t){return t.filter(r=>r.commandType==="run"&&e.get(r.id)!==r.startedAt).map(r=>r.id)}var sGn=1500;function Ebr(){let[e,t]=(0,m0.useState)(new Set),r=(0,m0.useRef)(new Map),n=(0,m0.useRef)(new Map),i=(0,m0.useCallback)(s=>{t(l=>l.has(s)?l:new Set(l).add(s))},[]),o=(0,m0.useCallback)(s=>{let l=n.current;for(let u of s)clearTimeout(l.get(u)),l.set(u,setTimeout(()=>{l.delete(u),i(u)},sGn))},[i]);(0,m0.useEffect)(()=>{let s=n.current;return()=>{for(let l of s.values())clearTimeout(l)}},[]);let a=(0,m0.useCallback)(s=>{let l=_br(r.current,s),u=kbr(r.current,s);r.current=new Map(s.map(f=>[f.id,f.startedAt])),l.length&&t(f=>wbr(f,l)),o(u)},[o]);return{initialized:e,markInitialized:i,syncSessions:a}}var V_=L(ge(),1);function Rbr(){let[e,t]=(0,V_.useState)(null),[r,n]=(0,V_.useState)(null),[i,o]=(0,V_.useState)(null),a=(0,V_.useCallback)(()=>t(null),[]),s=(0,V_.useCallback)(()=>n(null),[]),l=(0,V_.useCallback)(()=>o(null),[]);return{error:e,setError:t,clearError:a,success:r,setSuccess:n,clearSuccess:s,serverConflict:i,setServerConflict:o,clearServerConflict:l}}var iv=L(ge(),1);function Abr(e,t){return[...e,{...t,status:"launching"}]}function N0e(e){return e.find(t=>t.status==="launching")}function Pbr(e){let t=N0e(e);return t?e.filter(r=>r.id!==t.id):e}function Lbr(e,t){let r=N0e(e);return r?aze(e,r.id,t):e}function aze(e,t,r){return e.map(n=>n.id===t&&n.status==="launching"?{...n,status:"error",error:r}:n)}function Mbr(e,t){return e.filter(r=>r.id!==t)}var Ibr=L(ge(),1);var lGn=6e4,cGn="Launch timed out \u2014 the session did not start.";function Dbr(e,t){(0,Ibr.useEffect)(()=>{let r=e.filter(i=>i.status==="launching");if(r.length===0)return;let n=r.map(i=>setTimeout(()=>t(o=>aze(o,i.id,cGn)),Math.max(0,lGn-(Date.now()-i.startedAt))));return()=>n.forEach(clearTimeout)},[e,t])}function Nbr(){let[e,t]=(0,iv.useState)([]),r=(0,iv.useRef)([]),n=(0,iv.useCallback)(l=>{r.current=l(r.current),t(r.current)},[]),i=(0,iv.useCallback)(l=>{n(u=>Abr(u,{id:crypto.randomUUID(),startedAt:Date.now(),...l}))},[n]),o=(0,iv.useCallback)(()=>{let l=N0e(r.current);return n(Pbr),l?.named?l.title:void 0},[n]),a=(0,iv.useCallback)(l=>n(u=>Lbr(u,l)),[n]),s=(0,iv.useCallback)(l=>n(u=>Mbr(u,l)),[n]);return Dbr(e,n),{pendingLaunches:e,addPendingLaunch:i,resolvePendingLaunch:o,failPendingLaunch:a,dismissPendingLaunch:s}}var NY=L(ge(),1);function Obr(){let[e,t]=(0,NY.useState)(null),[r,n]=(0,NY.useState)({}),i=(0,NY.useCallback)((o,a)=>{o!=="claude"&&n(s=>({...s,[o]:a}))},[]);return{rateLimits:e,setRateLimits:t,harnessRateLimits:r,setHarnessRateLimits:i}}var Bbr=L(ge(),1);function Fbr(e,t){return(0,Bbr.useCallback)(r=>{e(r),t(r)},[e,t])}var O0e=L(ge(),1);function $br(){let[e,t]=(0,O0e.useState)(null),[r,n]=(0,O0e.useState)(null),[i,o]=(0,O0e.useState)(null);return{transcript:e,setTranscript:t,viewingTranscriptSessionId:r,setViewingTranscriptSessionId:n,userMessages:i,setUserMessages:o}}var G_=L(ge(),1);function zbr(e,t){let r=e.sessionId;t.buffers.current?.delete(r),t.handlers.current?.get(r)?.("\x1Bc")}function Hbr(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 Ubr(e,t){let r=e.message;t.setError(r),t.failPendingLaunch(r)}function Wbr(e,t){let r=e.rateLimits,n=e.harness;!n||n==="claude"?t.setRateLimits(r):t.setHarnessRateLimits?.(n,r)}function Vbr(e,t){t.setNodes({local:e.local,links:e.links??[]})}function Gbr(e,t){t.setSuccess({message:e.message,sessionId:null})}function qbr(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 jbr(e,t){t.setServerConflict({existing:e.existing,runName:e.runName,cwd:e.cwd,sessionId:e.sessionId,launchedFrom:e.launchedFrom,node:e.node})}function Ybr(e,t){let r=e.sessions;t.setSessions(r),e.cwd&&t.setCurrentCwd(e.cwd),t.setActiveByRepo(e.active??{})}var uGn={sessions:Ybr,created:Hbr,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:Vbr,error:Ubr,notice:Gbr,"run-conflict":jbr,limits:Wbr,clear:zbr,output:qbr};function Kbr(e,t){uGn[e.type]?.(e,t)}function Xbr(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=>{Kbr(JSON.parse(i.data),e)},n.onclose=()=>t.onClose?.(),n}function Zbr(e,t,r,n){let i=!1,o,a=0,s=!1,l=()=>{i||t(Xbr(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 Qbr(e){let t=(0,G_.useRef)(null),[r,n]=(0,G_.useState)(!1),{handleSessions:i,markInitialized:o,buffers:a,handlers:s}=e;(0,G_.useEffect)(()=>{let u=()=>{a.current?.clear();let d=s.current;if(d)for(let h of d.values())h("\x1Bc")},f=Zbr({...e,setSessions:i},d=>{t.current=d},u,n);return()=>{f(),t.current?.close()}},[i,o,a,s]);let l=(0,G_.useCallback)(()=>{let u=t.current;u?.readyState===WebSocket.OPEN&&u.send(JSON.stringify({type:"history"}))},[]);return{wsRef:t,requestHistory:l,reconnecting:r}}function Jbr(){let[e,t]=(0,q_.useState)([]),[r,n]=(0,q_.useState)([]),[i,o]=(0,q_.useState)(null),a=Cbr(),s=$br(),[l,u]=(0,q_.useState)(""),f=Rbr(),d=Nbr(),h=Obr(),{initialized:p,markInitialized:m,syncSessions:g}=Ebr(),y=(0,q_.useRef)(new Map),v=(0,q_.useRef)(new Map),b=Fbr(g,t),{wsRef:x,requestHistory:S,reconnecting:C}=Qbr({handleSessions:b,setHistory:n,setActiveId:o,...a,...s,setCurrentCwd:u,...f,...d,...h,markInitialized:m,buffers:y,handlers:v});return Sbr(e,o,bbr(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 exr(){let e=Jbr(),{wsRef:t,buffers:r,handlers:n,addPendingLaunch:i,activeId:o,sessions:a}=e,s=qvr(e.nodes),l=Kvr(t,i),u=ybr(l,r,n);Wvr(o,a,e.history,l),Vvr(a,l);let f=vbr(l,e.setActiveId,e.setViewingTranscriptSessionId);return{...e,...u,...f,nodeSelection:s}}var RB=L(ge(),1);var txr="assist:sidebar-collapsed";function rxr(){let[e,t]=(0,RB.useState)(()=>Od(txr).length>0),r=(0,RB.useCallback)(()=>{t(n=>{let i=!n;return Bd(txr,i?[!0]:[]),i})},[]);return(0,RB.useMemo)(()=>({collapsed:e,onToggleCollapsed:r}),[e,r])}var nxr=L(ge(),1);function ixr(){(0,nxr.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await fetch("/api/hotkeys");if(!t.ok)return;let r=await t.json();e||h5.set(r)}catch{}})(),()=>{e=!0}},[])}var B0e=L(ge(),1);function oxr(){let[e,t]=(0,B0e.useState)(!0);return(0,B0e.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 axr(){let e=exr(),t=ope(e),r=Bvr(e.currentCwd,e.history,t,e.sessions,e.nodeSelection);_vr({selectedCwd:r.selectedCwd,selectedCardId:t,sessions:e.sessions,history:e.history,activeByRepo:e.activeByRepo,onSelect:e.selectSession});let{launch:n,viewLaunchedSession:i}=Hvr(e),o=oxr();ixr();let a=rxr();return Cvr("shell",{...e,selection:r,launch:n,topBar:o,sidebarCollapse:a}),{socket:e,selection:r,launch:n,viewLaunchedSession:i,topBar:o,sidebarCollapse:a}}var g0=L(z(),1),fGn={zIndex:e=>e.zIndex.drawer+1},dGn={minHeight:48};function sxr({mode:e,toggle:t}){let r=axr(),{socket:n,selection:i,viewLaunchedSession:o}=r;return(0,g0.jsx)(byr,{shell:r,children:(0,g0.jsxs)(W$e.Provider,{value:n.daemonVersion,children:[(0,g0.jsx)(yvr,{mode:e,toggle:t,sessions:n.sessions,reconnecting:n.reconnecting}),(0,g0.jsx)(o1e,{position:"fixed",elevation:1,sx:fGn,children:(0,g0.jsx)(v1r,{socket:n,selection:i})}),(0,g0.jsx)(Fk,{variant:"dense",sx:dGn}),(0,g0.jsx)(Tvr,{socket:n,children:(0,g0.jsx)(s0r,{socket:n})}),(0,g0.jsx)(yyr,{socket:n,onViewLaunchedSession:o})]})})}var lxr=L(ge(),1);function cxr(){let[e,t]=(0,lxr.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 j_=L(z(),1),hGn={MuiButtonBase:{styleOverrides:{root:{cursor:"pointer","&.Mui-disabled":{cursor:"default"}}}},MuiLink:{styleOverrides:{root:{cursor:"pointer"}}}};function pGn(){let{mode:e,toggle:t}=cxr(),r=(0,fxr.useMemo)(()=>C0({palette:{mode:e,...e==="dark"&&{background:{default:"#1e1e1e",paper:"#252526"}}},components:hGn}),[e]);return(0,j_.jsxs)(WK,{theme:r,children:[(0,j_.jsx)(PX,{}),(0,j_.jsx)(sxr,{mode:e,toggle:t})]})}var mGn=k2e([{path:"*",element:(0,j_.jsx)(pGn,{})}]);function gGn(){return(0,j_.jsx)(v2e,{router:mGn})}var uxr=document.getElementById("app");uxr&&(0,dxr.createRoot)(uxr).render((0,j_.jsx)(gGn,{}));})();
3979
3979
  /*! Bundled license information:
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ import { Command } from "commander";
6
6
  // package.json
7
7
  var package_default = {
8
8
  name: "@staff0rd/assist",
9
- version: "0.784.1",
9
+ version: "0.784.2",
10
10
  type: "module",
11
11
  main: "dist/index.js",
12
12
  bin: {
@@ -18871,6 +18871,8 @@ var PATTERN_DENIES = [
18871
18871
  ];
18872
18872
  var GH_ISSUE_API_MESSAGE = "Do not write to GitHub issues with 'gh api' (REST issue endpoints or GraphQL issue mutations) \u2014 it bypasses the content validation and the approval pane that every outward-facing issue write goes through. Use 'assist github issue create --title <title> --body <body>' to open an issue, 'assist github issue edit <number>' to rework one's body, 'assist github issue comment <number> --body <body>' to post a comment, or 'assist github issue edit-comment <comment-id> --body <body>' to amend a comment that is already posted. Each validates the content and gates it on the user's approval before anything reaches GitHub; run the command's --help for how to compose it.";
18873
18873
  var BRANCH_CREATION_MESSAGE = "Do not create branches with raw git. Use the /branch command, or 'assist branch <slug> [--jira <KEY>]' \u2014 it branches off the fresh remote default and enforces the team naming convention.";
18874
+ var CLOSE_WITH_COMMENT_MESSAGE = "Do not post a comment through 'gh issue close', 'gh issue reopen' or 'gh pr close' with --comment/-c \u2014 it goes to GitHub without the approval pane. Post the comment first with 'assist github issue comment <number> --body <body> [-R <owner>/<repo>]', which validates it and gates it on the user's approval, then run the same close/reopen without --comment.";
18875
+ var CLOSE_WITH_COMMENT_REGEX = /(?<=^|\s)gh\s+(?:issue\s+(?:close|reopen)|pr\s+close)(?=\s|$)[^;&|\n]*?\s(?:--comment|-c)(?=[\s=]|$)/;
18874
18876
  var COMMAND_BOUNDARY = String.raw`(?<=(?:^|[;&|(\n])\s*)`;
18875
18877
  var BRANCH_CREATION_REGEXES = [
18876
18878
  new RegExp(
@@ -18898,6 +18900,10 @@ var builtinDenyRules = [
18898
18900
  message: BRANCH_CREATION_MESSAGE,
18899
18901
  matches: (text18) => regex.test(text18)
18900
18902
  })),
18903
+ {
18904
+ message: CLOSE_WITH_COMMENT_MESSAGE,
18905
+ matches: (text18) => CLOSE_WITH_COMMENT_REGEX.test(text18)
18906
+ },
18901
18907
  {
18902
18908
  message: GH_ISSUE_API_MESSAGE,
18903
18909
  matches: isGhIssueApiWrite
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@staff0rd/assist",
3
- "version": "0.784.1",
3
+ "version": "0.784.2",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "bin": {