@staff0rd/assist 0.795.0 → 0.795.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 tB=P(z(),1);function Ohr({entry:e,state:t,actions:r}){return(0,tB.jsxs)(le,{sx:{px:2,pb:2,pl:{xs:2,sm:7.5},display:"grid",gap:1.5},children:[(0,tB.jsx)(Dhr,{entry:e,state:t,actions:r}),(0,tB.jsx)(Oe,{variant:"caption",color:"text.secondary",children:"History \xB7 ~/.assist/watchers/"}),(0,tB.jsx)(Nhr,{lines:e.status?.history??[]})]})}function rB(e){let t=e.status?.loop;return t!==void 0&&(t.phase!=="off"||t.paused===!0)}var nB=P(z(),1),SUn={display:"flex",gap:.5,flexWrap:"wrap",justifyContent:{xs:"flex-start",sm:"flex-end"},gridColumn:{xs:"1 / -1",sm:"auto"}};function Bhr({entry:e,state:t,actions:r}){let n=r.notices.busy[e.name],i=e.status?.loop.paused===!0;return(0,nB.jsxs)(le,{sx:SUn,children:[t.kind==="ready"&&(0,nB.jsx)(mge,{entry:e,actions:r}),t.kind==="diverged"&&(0,nB.jsx)(dge,{entry:e,actions:r}),rB(e)&&(0,nB.jsx)(qt,{size:"small",disabled:n!==void 0,onClick:()=>{r.control(e,i?"resume":"pause")},children:i?"Resume":"Pause"})]})}var CUn={ready:"warning",diverged:"error"},Fhr=e=>t=>{let r=CUn[e];return{display:"grid",gridTemplateColumns:{xs:"28px minmax(0,1fr)",sm:"28px minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.6fr) auto"},alignItems:"center",columnGap:1.5,rowGap:1,px:2,py:1.5,boxShadow:r?`inset 3px 0 0 ${t.palette[r].main}`:"none"}};var $hr=P(z(),1),zhr=ut((0,$hr.jsx)("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"}),"ArrowUpward");var Hhr=P(z(),1),Uhr=ut((0,Hhr.jsx)("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4c-1.48 0-2.85.43-4.01 1.17l1.46 1.46C10.21 6.23 11.08 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.66 0 3 1.34 3 3 0 1.13-.64 2.11-1.56 2.62l1.45 1.45C23.16 18.16 24 16.68 24 15c0-2.64-2.05-4.78-4.65-4.96M3 5.27l2.75 2.74C2.56 8.15 0 10.77 0 14c0 3.31 2.69 6 6 6h11.73l2 2L21 20.73 4.27 4zM7.73 10l8 8H6c-2.21 0-4-1.79-4-4s1.79-4 4-4z"}),"CloudOff");var Whr=P(z(),1),Vhr=ut((0,Whr.jsx)("path",{d:"M6 19h4V5H6zm8-14v14h4V5z"}),"Pause");var Ghr=P(z(),1),qhr=ut((0,Ghr.jsx)("path",{d:"M13 3h-2v10h2zm4.83 2.17-1.42 1.42C17.99 7.86 19 9.81 19 12c0 3.87-3.13 7-7 7s-7-3.13-7-7c0-2.19 1.01-4.14 2.58-5.42L6.17 5.17C4.23 6.82 3 9.26 3 12c0 4.97 4.03 9 9 9s9-4.03 9-9c0-2.74-1.23-5.18-3.17-6.83"}),"PowerSettingsNew");var jhr=P(z(),1),Yhr=ut((0,jhr.jsx)("path",{d:"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z"}),"Warning");var q1=P(z(),1),wUn={ok:{tone:"success",icon:(0,q1.jsx)(X0,{})},ready:{tone:"warning",icon:(0,q1.jsx)(zhr,{})},diverged:{tone:"error",icon:(0,q1.jsx)(Yhr,{})},retrying:{tone:"warning",icon:(0,q1.jsx)($ee,{})},paused:{tone:"neutral",icon:(0,q1.jsx)(Vhr,{})},off:{tone:"neutral",icon:(0,q1.jsx)(qhr,{})},unavailable:{tone:"neutral",icon:(0,q1.jsx)(Uhr,{})}};function kUn(e,t){return t==="neutral"?e.palette.text.secondary:e.palette[t].main}function Khr({state:e}){let{tone:t,icon:r}=wUn[e.kind];return(0,q1.jsxs)(le,{component:"span",sx:n=>({alignSelf:"flex-start",display:"inline-flex",alignItems:"center",gap:.75,height:24,px:1.25,borderRadius:3,fontSize:12,fontWeight:500,whiteSpace:"nowrap",color:kUn(n,t),bgcolor:t==="neutral"?n.palette.action.hover:Ea(n.palette[t].main,.1),border:t==="neutral"?`1px solid ${n.palette.divider}`:0,"& svg":{fontSize:14}}),children:[r,e.label]})}var sY=P(z(),1);function Xhr({state:e}){return(0,sY.jsxs)(le,{sx:{...fge,gridColumn:{xs:"2",sm:"auto"},gap:.25},children:[(0,sY.jsx)(Khr,{state:e}),(0,sY.jsx)(Oe,{variant:"caption",color:"text.secondary",noWrap:!0,children:e.line})]})}var j1=P(z(),1),Zhr={gridColumn:{xs:"2",sm:"auto"}},_Un={fontFamily:"'Roboto Mono', ui-monospace, Menlo, monospace",fontSize:12,fontVariantNumeric:"tabular-nums"};function Qhr({entry:e}){let t=e.status;if(!t)return(0,j1.jsx)(Oe,{variant:"caption",color:"text.secondary",sx:Zhr,children:"\u2014"});let r=t.running!==t.built;return(0,j1.jsxs)(le,{sx:{...Zhr,display:"flex",flexDirection:"column"},children:[(0,j1.jsxs)(le,{component:"span",sx:_Un,children:["v",t.running,r&&(0,j1.jsxs)(j1.Fragment,{children:[" ",(0,j1.jsx)(le,{component:"span",sx:{color:"warning.main"},children:"\u2192"})," ","v",t.built]})]}),(0,j1.jsx)(Oe,{variant:"caption",color:"text.secondary",children:r?"running \u2192 built":"running"})]})}function yge(e){return(e.status?.restart.length??0)>0}function Jhr(e,t){return e.paused?{kind:"paused",label:"Paused",line:"won't pull until resumed"}:e.phase==="off"?{kind:"off",label:"Off",line:e.reason??"not running"}:e.phase==="retrying"?{kind:"retrying",label:"Retrying",line:`${e.reason??"lap failed"} \xB7 ${t}`}:{kind:"ok",label:"Up to date",line:`watching origin since ${t}`}}function vk(e){let{status:t}=e;if(!t)return{kind:"unavailable",label:"Unavailable",line:e.error??"no update state"};let{loop:r}=t,n=Do(r.since);return r.phase==="diverged"?{kind:"diverged",label:"Diverged \xB7 fixing",line:`diverged ${n}${r.escalationId?` \xB7 session ${r.escalationId}`:""}`}:yge(e)?{kind:"ready",label:"Restart to update",line:`restart ${t.restart.map(J9).join(" + ")}${r.paused?" \xB7 paused":""}`}:Jhr(r,n)}var Y1=P(z(),1);function tpr({entry:e,actions:t}){let[r,n]=(0,epr.useState)(!1),i=vk(e);return(0,Y1.jsxs)(le,{component:"article",sx:{"& + &":{borderTop:1,borderColor:"divider"}},children:[(0,Y1.jsxs)(le,{sx:Fhr(i.kind),children:[(0,Y1.jsx)(Rhr,{open:r,label:`${r?"Hide":"Show"} history for ${e.name}`,onToggle:()=>n(o=>!o)}),(0,Y1.jsx)(Ahr,{entry:e}),(0,Y1.jsx)(Qhr,{entry:e}),(0,Y1.jsx)(Xhr,{state:i}),(0,Y1.jsx)(Bhr,{entry:e,state:i,actions:t})]}),r&&(0,Y1.jsx)(Ohr,{entry:e,state:i,actions:t})]})}var rpr=P(z(),1),vge=ut((0,rpr.jsx)("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"}),"Refresh");var O$e=P(ge(),1);var iB=P(z(),1);function npr({entries:e,actions:t}){let[r,n]=(0,O$e.useState)(!1),[i,o]=(0,O$e.useState)(!1),a=e.filter(l=>vk(l).kind==="ready").length,s=e.some(l=>rB(l)&&!l.status?.loop.paused);return(0,iB.jsxs)(le,{sx:{display:"flex",gap:1,flexWrap:"wrap"},children:[(0,iB.jsx)(qt,{variant:"outlined",size:"small",startIcon:(0,iB.jsx)(vge,{}),disabled:!s||r,onClick:()=>{n(!0),t.checkAll(e).finally(()=>n(!1))},children:"Check now"}),(0,iB.jsx)(qt,{variant:"contained",size:"small",disabled:a===0||i,onClick:()=>{o(!0),t.restartReady(e).finally(()=>o(!1))},children:a?`Restart ready nodes (${a})`:"Restart ready nodes"})]})}function ipr(e){let t=e.map(o=>vk(o).kind),r=o=>t.filter(a=>a===o).length,n=r("ready"),i=[`${e.length} node${e.length===1?"":"s"}`];return i.push(n?`${n} ready to restart`:"all running their latest build"),r("diverged")&&i.push(`${r("diverged")} diverged`),r("unavailable")&&i.push(`${r("unavailable")} unavailable`),i.join(" \xB7 ")}var ypr=P(ge(),1);function opr(e,t){return`${e}:${t}`}var B$e=P(ge(),1);async function oB(e){if(!e)return"web server unreachable";try{return(await e.json()).error??`HTTP ${e.status}`}catch{return`HTTP ${e.status}`}}async function apr(e,t){let r;try{r=await fetch(tn(`/api/updates/control?action=${t}`,e.local?void 0:e.name),{method:"POST"})}catch{}return r?.ok?void 0:oB(r)}var EUn=5e3,spr={pause:"Pausing",resume:"Resuming",check:"Checking"};function lpr(e,t){let{mark:r,setError:n,setBack:i}=e,o=(0,B$e.useCallback)(async(s,l)=>{r(s.name,spr[l]);let u=await apr(s,l);return u&&n(`${spr[l]} ${s.name} failed: ${u}`),r(s.name),t(),!u&&l==="check"&&setTimeout(t,EUn),!u},[r,n,t]),a=(0,B$e.useCallback)(async s=>{let l=s.filter(d=>rB(d)&&!d.status?.loop.paused),f=(await Promise.all(l.map(d=>o(d,"check")))).filter(Boolean).length;f&&i(`Checking ${f} node${f===1?"":"s"} against origin`)},[o,i]);return{control:o,checkAll:a}}var F$e=P(ge(),1);var K1=P(ge(),1);var aB={target:"both",label:"Restart daemon",message:"This restarts the sessions daemon and the web server, then reloads the page once the server is back."};function bk(e,t){let r=t?`&node=${encodeURIComponent(t)}`:"";return fetch(`/api/restart?target=${e}${r}`,{method:"POST"})}var E2=P(ge(),1);var RUn="/api/session-layout";async function AUn(){try{return(await fetch(RUn,{cache:"no-store"})).ok}catch{return!1}}async function cpr(e){let t=0;for(;!e();){if(t=await AUn()?t+1:0,t>=2)return!e();await new Promise(r=>setTimeout(r,300))}return!1}function PUn(){return{sawDisconnect:!1,waiting:!1,abandoned:!0}}function upr(e,t,r){let n=(0,E2.useRef)(PUn()),i=(0,E2.useRef)(r);i.current=r,(0,E2.useEffect)(()=>{let s=n.current;if(!(!e||s.abandoned)){if(t){s.sawDisconnect=!0;return}!s.sawDisconnect||s.waiting||(s.waiting=!0,cpr(()=>s.abandoned).then(l=>{l&&i.current()}))}},[e,t]);let o=(0,E2.useCallback)(()=>{n.current.abandoned=!0},[]),a=(0,E2.useCallback)(()=>{n.current.abandoned=!0,n.current={sawDisconnect:!1,waiting:!1,abandoned:!1}},[]);return(0,E2.useEffect)(()=>o,[o]),{arm:a,abandon:o}}var LUn=15e3;function xk(e,t,r){let[n,i]=(0,K1.useState)(!1),[o,a]=(0,K1.useState)(null),s=(0,K1.useRef)(void 0),{arm:l,abandon:u}=upr(n,t,()=>{clearTimeout(s.current),r?.(),globalThis.location.reload()});(0,K1.useEffect)(()=>()=>clearTimeout(s.current),[]);let f=(0,K1.useCallback)(async h=>{i(!0),l(),s.current=setTimeout(()=>{u(),i(!1),a("Web server did not come back")},LUn);try{if(!(await bk(h)).ok)throw new Error("restart failed")}catch{u(),clearTimeout(s.current),i(!1),a("Failed to restart web server")}},[l,u]),d=(0,K1.useCallback)(()=>f(e),[f,e]);return{pending:n,error:o,clearError:()=>a(null),restart:d,restartTo:f}}function bge(e){return e.local&&(e.status?.restart.includes("webserver")??!1)}async function xge(e,t){try{let r=await fetch(tn("/api/updates",t?void 0:e)),n=await r.json();if(!r.ok)throw new Error(n?.error??`HTTP ${r.status}`);return{name:e,local:t,status:n}}catch(r){return{name:e,local:t,error:r instanceof Error?r.message:"Failed to load update state"}}}var MUn=2e3,IUn=9e4,DUn=e=>new Promise(t=>setTimeout(t,e));async function fpr(e,t){let r=Date.now()+IUn;for(;Date.now()<r;){await DUn(MUn);let n=await xge(e.name,e.local),i=n.status;if(i?.daemonReachable&&!t.some(o=>i.restart.includes(o)))return n}}async function dpr(e,t,r){let n;try{n=await bk(t,e.local?void 0:e.name)}catch{}if(!n?.ok)throw new Error(await oB(n));let i=await fpr(e,r);if(!i?.status)throw new Error(`${e.name} did not come back`);return i.status.running}async function hpr(e,t,r){try{let n=await dpr(e,t,e.status?.restart??[]);r.setBack(`${e.name} is running v${n}`)}catch(n){r.setError(`Restart ${e.name} failed: ${n instanceof Error?n.message:String(n)}`)}}function ppr(e){return e.length>1?"both":e[0]}function mpr(e,t,r){let n=xk("webserver",e),i=(0,F$e.useCallback)(async a=>{let s=ppr(a.status?.restart??[]);if(s){if(t.mark(a.name,"Restarting"),bge(a))return n.restartTo(s);await hpr(a,s,t),t.mark(a.name),r()}},[n,t,r]),o=(0,F$e.useCallback)(async a=>{let s=a.filter(l=>vk(l).kind==="ready");await Promise.all(s.filter(l=>!bge(l)).map(l=>i(l)));for(let l of s.filter(bge))await i(l)},[i]);return{restart:i,restartReady:o,localError:n.error,clearLocalError:n.clearError}}var sB=P(ge(),1);function gpr(){let[e,t]=(0,sB.useState)(null),[r,n]=(0,sB.useState)(null),[i,o]=(0,sB.useState)({}),a=(0,sB.useCallback)((s,l)=>{o(u=>{let f={...u};return l?f[s]=l:delete f[s],f})},[]);return{busy:i,mark:a,back:e,setBack:t,clearBack:()=>t(null),error:r,setError:n,clearError:()=>n(null)}}function vpr(e,t){let{refresh:r}=Z9(),n=gpr(),i=mpr(e,n,r),o=lpr(n,r),a=WP(t),s=(0,ypr.useCallback)(l=>{let u=l.status?.loop.escalationId;u&&a(l.local?u:opr(l.name,u))},[a]);return{...i,...o,openFix:s,notices:n}}var i0=P(z(),1);function bpr({reconnecting:e,selectSession:t}){let{entries:r,loading:n}=Z9(),i=vpr(e,t),{notices:o}=i;return(0,i0.jsxs)(zl,{loading:n,header:(0,i0.jsxs)(le,{sx:{display:"flex",alignItems:"flex-end",gap:2,flexWrap:"wrap",mb:3},children:[(0,i0.jsxs)(le,{sx:{flex:"1 1 auto"},children:[(0,i0.jsx)(Oe,{variant:"h5",component:"h1",children:"Updates"}),(0,i0.jsx)(Oe,{variant:"body2",color:"text.secondary",children:ipr(r)})]}),(0,i0.jsx)(npr,{entries:r,actions:i})]}),children:[(0,i0.jsx)(an,{variant:"outlined",component:"section","aria-label":"Nodes",children:r.map(a=>(0,i0.jsx)(tpr,{entry:a,actions:i},a.name))}),(0,i0.jsx)(oY,{notices:{...o,error:o.error??i.localError,clearError:()=>{o.clearError(),i.clearLocalError()}}})]})}var smr=P(ge(),1);var lB=P(ge(),1);function Tge(e,t){let r=(0,lB.useRef)(null),[n,i]=(0,lB.useState)();return(0,lB.useLayoutEffect)(()=>{e===t&&r.current&&i(r.current.offsetHeight)},[e,t]),{ref:r,height:n}}var Tpr=P(ge(),1);function Sge(e){if(e.startsWith("local:")){let n=e.slice(6).replace(/\/+$/,"").split("/").filter(Boolean);return n[n.length-1]??e}let t=e.indexOf("/");return t===-1?e:e.slice(t+1)}function Cge(e){let t=o=>o.startsWith("local:"),r=o=>{let a=Sge(o),s=a.split("/");return s[s.length-1]??a},n=new Map;for(let o of new Set(e)){if(t(o))continue;let a=r(o);n.set(a,(n.get(a)??0)+1)}let i=new Map;for(let o of e){if(t(o)){i.set(o,Sge(o));continue}let a=r(o),s=(n.get(a)??0)>1;i.set(o,s?Sge(o):a)}return i}var lY={field:"lastPhase",direction:"desc"};var cY="all",uY="all";async function xpr(e,t,r){let n=new URLSearchParams({page:String(e),pageSize:String(t)});r.origin!==cY&&n.set("origin",r.origin),r.status!==uY&&n.set("status",r.status),r.sort.field!==lY.field&&n.set("sort",r.sort.field),r.sort.direction!==lY.direction&&n.set("direction",r.sort.direction);let i=await fetch(`/api/usage/items?${n}`);if(!i.ok)throw new Error(`Failed to load item usage (HTTP ${i.status}).`);return i.json()}var fY=P(z(),1);function Spr({origins:e,origin:t,onChange:r}){let n=(0,Tpr.useMemo)(()=>Cge(e.map(o=>o.origin)),[e]),i=e.reduce((o,a)=>o+a.count,0);return(0,fY.jsxs)(Yn,{select:!0,size:"small",label:"Repo",value:t,onChange:o=>r(o.target.value),sx:{minWidth:220},children:[(0,fY.jsx)(fn,{value:cY,children:`All repos (${i})`}),e.map(o=>(0,fY.jsx)(fn,{value:o.origin,children:`${n.get(o.origin)??o.origin} (${o.count})`},o.origin))]})}var $$e=P(z(),1),NUn=[{value:uY,label:"All"},{value:"done",label:"Done"},{value:"running",label:"Running"}];function Cpr({status:e,onChange:t}){return(0,$$e.jsx)(du,{size:"small",exclusive:!0,value:e,onChange:(r,n)=>n&&t(n),"aria-label":"Filter items by status",children:NUn.map(r=>(0,$$e.jsx)(hs,{value:r.value,children:r.label},r.value))})}var cB=P(z(),1),OUn={display:"flex",alignItems:"center",gap:2,flexWrap:"wrap",mb:2},BUn="Repos show their bare name, or org/repo when two share one. Totals sum every phase's recorded usage.";function wpr({origins:e,origin:t,onOriginChange:r,status:n,onStatusChange:i}){return(0,cB.jsxs)(le,{sx:OUn,children:[(0,cB.jsx)(Cpr,{status:n,onChange:i}),(0,cB.jsx)(Spr,{origins:e,origin:t,onChange:r}),(0,cB.jsx)(Oe,{variant:"caption",color:"text.disabled",children:BUn})]})}var Opr=P(ge(),1);function Hd(e){return e<1e3?String(e):e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(1)}M`}function o0(e){let t=Math.round(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60);if(r<60){let o=t%60;return o>0?`${r}m ${o}s`:`${r}m`}let n=Math.floor(r/60),i=r%60;return i>0?`${n}h ${i}m`:`${n}h`}var kge=P(z(),1),FUn={whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"},kpr={display:"block",fontSize:"0.75rem",color:"text.disabled",whiteSpace:"nowrap"},$Un={...kpr,fontStyle:"italic"};function wge({total:e,perPhase:t,partial:r}){return(0,kge.jsxs)(kn,{align:"right",sx:FUn,children:[e,t?(0,kge.jsx)(Oe,{component:"span",sx:r?$Un:kpr,children:t}):null]})}var dY=P(z(),1),zUn={width:"100%",maxWidth:0},HUn={display:"block",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},UUn={display:"block",mt:"2px",fontSize:"0.75rem",color:"text.secondary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function _pr({id:e,name:t,type:r,repoLabel:n}){return(0,dY.jsxs)(kn,{sx:zUn,children:[(0,dY.jsx)(xn,{component:ys,to:zT(e),underline:"hover",color:"text.primary",title:t,sx:HUn,children:t}),(0,dY.jsxs)(Oe,{component:"span",sx:UUn,children:[so(e)," \xB7 ",r," \xB7 ",n]})]})}function Epr(e){let t=Math.max(1,e.recordedPhases);return{active:`${o0(e.activeMs/t)} / phase`,tokens:`${Hd(Math.round((e.tokensUp+e.tokensDown)/t))} / phase`}}function Rpr(e){if(!(e.status==="done"||e.recordedPhases>e.phaseCount))return`${e.recordedPhases} of ${e.phaseCount} phases`}var _ge={story:"info",bug:"error"},Ege={todo:"default","in-progress":"warning",done:"success",wontdo:"error"};var WUn=new Set(["done","wontdo"]);function Apr(e){return WUn.has(e)?{label:e,color:Ege[e]}:{label:"running",color:"warning"}}var z$e=P(z(),1),VUn={height:20,fontSize:"0.6875rem"};function Ppr({status:e}){let t=Apr(e);return(0,z$e.jsx)(kn,{children:(0,z$e.jsx)(sn,{label:t.label,size:"small",variant:"outlined",color:t.color,sx:VUn})})}var a0=P(z(),1),Lpr={whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"};function Mpr({row:e,repoLabel:t}){let r=Epr(e);return(0,a0.jsxs)(ju,{hover:!0,children:[(0,a0.jsx)(_pr,{id:e.id,name:e.name,type:e.type,repoLabel:t}),(0,a0.jsx)(Ppr,{status:e.status}),(0,a0.jsx)(wge,{total:String(e.phaseCount||e.recordedPhases),perPhase:Rpr(e),partial:!0}),(0,a0.jsx)(wge,{total:o0(e.activeMs),perPhase:r.active}),(0,a0.jsx)(wge,{total:`\u2191 ${Hd(e.tokensUp)} \u2193 ${Hd(e.tokensDown)}`,perPhase:r.tokens}),(0,a0.jsx)(kn,{align:"right",sx:Lpr,children:(0,a0.jsxs)(le,{component:"span",sx:{color:oee(e.peakContextPct)},children:[Math.round(e.peakContextPct),"%"]})}),(0,a0.jsx)(kn,{align:"right",sx:Lpr,children:e.lastPhaseAt?Do(e.lastPhaseAt):"\u2014"})]})}var Ipr=[{label:"Item"},{label:"Status"},{label:"Phases",sort:"phases",numeric:!0},{label:"Active",sort:"active",numeric:!0,tooltip:"Accumulated active time across the item's phases \u2014 not wall clock."},{label:"Tokens",sort:"tokens",numeric:!0},{label:"Peak ctx",sort:"peakContext",numeric:!0,tooltip:"The highest context-window usage any one phase reached."},{label:"Last phase",sort:"lastPhase",numeric:!0,tooltip:"When the item's most recent phase session started."}];var Hm=P(z(),1),GUn={"& th":{whiteSpace:"nowrap"}};function Dpr({column:e}){return e.tooltip?(0,Hm.jsx)(lr,{title:e.tooltip,describeChild:!0,children:(0,Hm.jsx)("span",{children:e.label})}):(0,Hm.jsx)(Hm.Fragment,{children:e.label})}function Npr({sort:e,onSort:t}){return(0,Hm.jsx)(z_,{sx:GUn,children:(0,Hm.jsx)(ju,{children:Ipr.map(r=>{let n=r.sort,i=n!==void 0&&e.field===n;return(0,Hm.jsx)(kn,{align:r.numeric?"right":"left",sortDirection:i?e.direction:!1,children:n===void 0?(0,Hm.jsx)(Dpr,{column:r}):(0,Hm.jsx)(_ve,{active:i,direction:i?e.direction:"desc",onClick:()=>t(n),children:(0,Hm.jsx)(Dpr,{column:r})})},r.label)})})})}var bR=P(z(),1),qUn={"& td, & th":{px:1.5}};function Bpr({rows:e,origins:t,sort:r,onSort:n}){let i=(0,Opr.useMemo)(()=>Cge([...t,...e.map(o=>o.origin)]),[t,e]);return(0,bR.jsx)($_,{component:an,children:(0,bR.jsxs)(Pv,{size:"small",sx:qUn,children:[(0,bR.jsx)(Npr,{sort:r,onSort:n}),(0,bR.jsx)(Lv,{children:e.map(o=>(0,bR.jsx)(Mpr,{row:o,repoLabel:i.get(o.origin)??o.origin},o.id))})]})})}function Fpr(e){let t=Math.max(1,e.medianPhases),r=e.repoCount===1?"repo":"repos";return{items:String(e.itemCount),itemsFoot:`across ${e.repoCount} ${r} \xB7 ${e.doneCount} done`,phases:String(Math.round(e.medianPhases*10)/10),active:o0(e.medianActiveMs),activeFoot:`${o0(e.medianActiveMs/t)} per phase`,tokens:Hd(Math.round(e.medianTokens)),tokensFoot:`${Hd(Math.round(e.medianTokens/t))} per phase`}}var uB=P(z(),1),$pr={display:"block"},jUn={fontWeight:400,fontVariantNumeric:"tabular-nums"};function hY({label:e,value:t,foot:r}){return(0,uB.jsxs)(le,{children:[(0,uB.jsx)(Oe,{variant:"caption",color:"text.secondary",sx:$pr,children:e}),(0,uB.jsx)(Oe,{variant:"h5",sx:jUn,children:t}),r?(0,uB.jsx)(Oe,{variant:"caption",color:"text.disabled",sx:$pr,children:r}):null]})}var xR=P(z(),1),YUn={display:"flex",flexDirection:{xs:"column",sm:"row"},mb:3,"& > *":{flex:1,minWidth:0,p:2},"& > * + *":{borderColor:"divider",borderTop:{xs:1,sm:0},borderLeft:{xs:0,sm:1}}};function zpr({summary:e}){let t=Fpr(e);return(0,xR.jsxs)(an,{sx:YUn,children:[(0,xR.jsx)(hY,{label:"Items with recorded usage",value:t.items,foot:t.itemsFoot}),(0,xR.jsx)(hY,{label:"Median phases",value:t.phases}),(0,xR.jsx)(hY,{label:"Median active time",value:t.active,foot:t.activeFoot}),(0,xR.jsx)(hY,{label:"Median tokens",value:t.tokens,foot:t.tokensFoot})]})}var ip=P(z(),1);function Hpr({items:e,data:t}){let{rows:r,total:n,page:i,pageSize:o}=e,{ref:a,height:s}=Tge(r.length,o);return(0,ip.jsxs)(ip.Fragment,{children:[(0,ip.jsx)(zpr,{summary:t.summary}),(0,ip.jsx)(wpr,{origins:t.origins,origin:e.origin,onOriginChange:e.selectOrigin,status:e.status,onStatusChange:e.selectStatus}),n===0?(0,ip.jsx)(Oe,{color:"text.secondary",align:"center",sx:{py:6},children:"No items match this filter."}):(0,ip.jsxs)(ip.Fragment,{children:[(0,ip.jsx)(le,{ref:a,sx:{minHeight:s},children:(0,ip.jsx)(Bpr,{rows:r,origins:t.origins.map(l=>l.origin),sort:e.sort,onSort:e.sortBy})}),(0,ip.jsx)(p$,{component:"div",count:n,page:i,rowsPerPage:o,rowsPerPageOptions:[o],onPageChange:(l,u)=>e.setPage(u)})]})]})}var R2=P(z(),1);function Upr({items:e}){let{data:t}=e;return(0,R2.jsxs)(R2.Fragment,{children:[(0,R2.jsx)(le,{sx:{height:4,mb:1},children:e.fetching&&(0,R2.jsx)(F_,{})}),t?t.origins.length===0?(0,R2.jsx)(Oe,{color:"text.secondary",align:"center",sx:{py:6},children:"No item usage recorded yet."}):(0,R2.jsx)(Hpr,{items:e,data:t}):null]})}function H$e(e,t,r){if(e==null)return;let n=Math.max(0,e-r),i=Math.max(0,t-n)/t;if(!(i<.05))return i}function Rge(e,t){let r=Math.max(0,e-t),n=Math.floor(r/86400),i=Math.floor(r%86400/3600),o=Math.floor(r%3600/60);return n>0?`${n}d ${i}h`:i>0?`${i}h ${o}m`:`${o}m`}function KUn(e,t,r,n){let i=H$e(t,r,n);if(i!=null)return e/i}function Tk(e,t,r,n){let i=KUn(e,t,r,n);return i==null?"ok":i>100?"over":i>75?"warn":"ok"}var XUn=["five_hour","seven_day"],ZUn=["claude","codex","pi"];function Wpr(e){let[t,r]=e.includes(":")?e.split(":",2):["claude",e],n=ZUn.find(o=>o===t),i=XUn.find(o=>o===r);if(!(!n||!i)&&!(n==="claude"&&e.includes(":")))return{harness:n,window:i}}var Vpr={five_hour:{label:"5h",seconds:18e3},seven_day:{label:"7d",seconds:604800,tint:{light:"rgba(0, 0, 0, 0.1)",dark:"rgba(255, 255, 255, 0.1)"}}};function fB(e){let t=Wpr(e);if(!t)return Vpr.five_hour;let r=Vpr[t.window];return t.harness==="claude"?r:{...r,label:`${gu(t.harness)} ${r.label}`}}var QUn={ok:"success.main",warn:"warning.main",over:"error.main"};function Sk(e){return QUn[e]}var gY=P(z(),1),JUn={ok:"success",warn:"warning",over:"error"};function Gpr({percentage:e,level:t}){return(0,gY.jsxs)(le,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,gY.jsx)(F_,{variant:"determinate",value:Math.min(100,e),color:JUn[t],sx:{flexGrow:1,height:8,borderRadius:1}}),(0,gY.jsxs)(le,{sx:{minWidth:40,textAlign:"right",color:Sk(t)},children:[Math.round(e),"%"]})]})}function qpr(e){return e.avgContextPct==null?"\u2014":`${Math.round(e.avgContextPct)}%`}var eWn=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function U$e(e){return eWn.format(e)}var Age=P(z(),1);function jpr({peak:e}){return(0,Age.jsx)(kn,{align:"right",sx:{whiteSpace:"nowrap"},children:(0,Age.jsx)(lr,{title:`Cycle started ${U$e(new Date(e.createdAt))}`,children:(0,Age.jsx)("span",{children:U$e(new Date(e.resetsAt*1e3))})})})}var Kpr=P(z(),1);function Ypr(){return(0,Kpr.jsx)(sn,{label:"reset",size:"small",color:"warning",variant:"outlined",title:"Quota reset mid-cycle \u2014 this is the peak reached before the reset.",sx:{ml:1}})}function Xpr(e){return!e.tokensUp&&!e.tokensDown?"\u2014":`\u2191 ${Hd(e.tokensUp)} \u2193 ${Hd(e.tokensDown)}`}var s0=P(z(),1);function Zpr({peak:e,now:t}){let{label:r,seconds:n,tint:i}=fB(e.window),o=Tk(e.usedPercentage,e.resetsAt,n,t);return(0,s0.jsxs)(ju,{sx:a=>({backgroundColor:i?a.palette.mode==="dark"?i.dark:i.light:void 0}),children:[(0,s0.jsxs)(kn,{children:[r,e.resetDetected&&(0,s0.jsx)(Ypr,{})]}),(0,s0.jsx)(kn,{sx:{minWidth:160},children:(0,s0.jsx)(Gpr,{percentage:e.usedPercentage,level:o})}),(0,s0.jsx)(kn,{align:"right",sx:{whiteSpace:"nowrap"},children:qpr(e)}),(0,s0.jsx)(kn,{align:"right",sx:{whiteSpace:"nowrap"},children:e.phaseCount??0}),(0,s0.jsx)(kn,{align:"right",sx:{whiteSpace:"nowrap"},children:Xpr(e)}),(0,s0.jsx)(jpr,{peak:e})]})}var Pge=P(ge(),1);function Ck(e){let[t,r]=(0,Pge.useState)(()=>Math.floor(Date.now()/1e3));return(0,Pge.useEffect)(()=>{let n=setInterval(()=>r(Math.floor(Date.now()/1e3)),e);return()=>clearInterval(n)},[e]),t}var pc=P(z(),1);function Qpr({peaks:e}){let t=Ck(3e4);return(0,pc.jsx)($_,{component:an,children:(0,pc.jsxs)(Pv,{size:"small",children:[(0,pc.jsx)(z_,{sx:{"& th":{whiteSpace:"nowrap"}},children:(0,pc.jsxs)(ju,{children:[(0,pc.jsx)(kn,{children:"Window"}),(0,pc.jsx)(kn,{children:"Peak usage"}),(0,pc.jsx)(kn,{align:"right",children:(0,pc.jsx)(lr,{title:"Mean context-window usage across all readings in this rate-limit cycle \u2014 distinct from the Peak usage quota above.",children:(0,pc.jsx)("span",{children:"Avg context"})})}),(0,pc.jsx)(kn,{align:"right",children:(0,pc.jsx)(lr,{title:"Number of phase readings behind the average.",children:(0,pc.jsx)("span",{children:"Phases"})})}),(0,pc.jsx)(kn,{align:"right",children:"Tokens spent"}),(0,pc.jsx)(kn,{align:"right",children:"Cycle reset"})]})}),(0,pc.jsx)(Lv,{children:e.map(r=>(0,pc.jsx)(Zpr,{peak:r,now:t},`${r.window}-${r.resetsAt}-${r.segment}`))})]})})}var wk=P(z(),1);function Jpr({rows:e,total:t,page:r,pageSize:n,onPageChange:i}){let{ref:o,height:a}=Tge(e.length,n);return(0,wk.jsxs)(wk.Fragment,{children:[(0,wk.jsx)(le,{ref:o,sx:{minHeight:a},children:(0,wk.jsx)(Qpr,{peaks:e})}),(0,wk.jsx)(p$,{component:"div",count:t,page:r,rowsPerPage:n,rowsPerPageOptions:[n],onPageChange:(s,l)=>i(l)})]})}var yY=P(ge(),1);function kk(){let[e,t]=(0,yY.useState)(!1),[r,n]=(0,yY.useState)(!1);return(0,yY.useEffect)(()=>{let i=!1;return(async()=>{try{let a=await(await fetch("/api/harness")).json();i||(t(!!a?.exposeCodexActions),n(!!a?.exposePiActions))}catch{t(!1),n(!1)}})(),()=>{i=!0}},[]),{exposeCodexActions:e,exposePiActions:r}}var W$e=P(z(),1),emr=["five_hour","seven_day"],tWn=["codex:five_hour","codex:seven_day"];function rWn(e){let t=e?[...emr,...tWn]:emr;return[{value:"all",label:"All"},...t.map(r=>({value:r,label:fB(r).label}))]}function tmr({window:e,onChange:t}){let{exposeCodexActions:r}=kk();return(0,W$e.jsx)(du,{size:"small",exclusive:!0,value:e,onChange:(n,i)=>i&&t(i),"aria-label":"Filter peaks by rate-limit window",children:rWn(r).map(n=>(0,W$e.jsx)(hs,{value:n.value,children:n.label},n.value))})}var X1=P(z(),1);function rmr({history:e}){let{window:t,total:r}=e;return(0,X1.jsxs)(X1.Fragment,{children:[(0,X1.jsx)(tmr,{window:t,onChange:e.selectWindow}),(0,X1.jsx)(le,{sx:{height:4,my:1},children:e.fetching&&(0,X1.jsx)(F_,{})}),r===0?(0,X1.jsx)(Oe,{color:"text.secondary",align:"center",sx:{py:6},children:t==="all"?"No usage peaks recorded yet.":`No ${fB(t).label} usage peaks recorded yet.`}):(0,X1.jsx)(Jpr,{rows:e.rows,total:r,page:e.page,pageSize:e.pageSize,onPageChange:e.setPage})]})}var Mge=P(ge(),1);async function nmr(e,t,r){let n=new URLSearchParams({page:String(e),pageSize:String(t)});r!=="all"&&n.set("window",r);let i=await fetch(`/api/usage/history?${n}`);if(!i.ok)throw new Error(`Failed to load usage history (HTTP ${i.status}).`);return i.json()}var _k=P(ge(),1);function Lge(e,t,r=!0){let[n,i]=(0,_k.useState)(0),[o,a]=(0,_k.useState)(null),[s,l]=(0,_k.useState)(!1),[u,f]=(0,_k.useState)(null);(0,_k.useEffect)(()=>{if(!r)return;let p=!1;return l(!0),e(n,t).then(m=>{p||(a(m),l(!1))},m=>{p||(f(m instanceof Error?m:new Error(String(m))),l(!1))}),()=>{p=!0}},[e,n,t,r]);let d=o?.total??0;(0,_k.useEffect)(()=>{if(d===0)return;let p=Math.ceil(d/t)-1;n>p&&i(p)},[n,t,d]);let h=o?.rows??[];return{data:o,rows:h,total:d,loaded:o!==null,fetching:s,error:u,page:n,setPage:i,pageSize:t}}var nWn=30;function imr(){let[e,t]=(0,Mge.useState)("all"),r=(0,Mge.useCallback)((o,a)=>nmr(o,a,e),[e]),n=Lge(r,nWn);return{...n,window:e,selectWindow:o=>{t(o),n.setPage(0)}}}var dB=P(ge(),1);function omr(e,t){return e.field!==t?{field:t,direction:"desc"}:{field:t,direction:e.direction==="desc"?"asc":"desc"}}var iWn=30;function amr(e){let[t,r]=(0,dB.useState)(cY),[n,i]=(0,dB.useState)(uY),[o,a]=(0,dB.useState)(lY),s=(0,dB.useCallback)((h,p)=>xpr(h,p,{origin:t,status:n,sort:o}),[t,n,o]),l=Lge(s,iWn,e);return{...l,origin:t,selectOrigin:h=>{r(h),l.setPage(0)},status:n,selectStatus:h=>{i(h),l.setPage(0)},sort:o,sortBy:h=>{a(p=>omr(p,h)),l.setPage(0)}}}var Ek=P(z(),1),oWn={borderBottom:1,borderColor:"divider",mb:2};function lmr(){let[e,t]=(0,smr.useState)("limits"),r=imr(),n=amr(e==="items");if(r.error)throw r.error;if(n.error)throw n.error;return(0,Ek.jsxs)(zl,{loading:!r.loaded,title:"Usage history",maxWidth:"lg",children:[(0,Ek.jsxs)(U_,{value:e,onChange:(i,o)=>t(o),textColor:"inherit",indicatorColor:"secondary",sx:oWn,"aria-label":"Usage history views",children:[(0,Ek.jsx)(Av,{label:"Rate limits",value:"limits"}),(0,Ek.jsx)(Av,{label:"Items",value:"items"})]}),e==="limits"?(0,Ek.jsx)(rmr,{history:r}):(0,Ek.jsx)(Upr,{items:n})]})}var Ige=P(ge(),1),V$e=(0,Ige.createContext)([]);function Dge(){return(0,Ige.useContext)(V$e)}var mgr=P(ge(),1);function as(){let{selectedCwd:e}=$n();return e||void 0}var A2=P(ge(),1);var umr=P(ge(),1);var aWn=new Set(["todo","done","all"]);function cmr(e){return e&&aWn.has(e)?e:"todo"}var fmr="backlog-filter",G$e=new Set,dmr=sWn();function sWn(){try{return cmr(localStorage.getItem(fmr))}catch{return"todo"}}function lWn(e){return G$e.add(e),()=>G$e.delete(e)}function cWn(){return dmr}function uWn(e){dmr=e;try{localStorage.setItem(fmr,e)}catch{}for(let t of G$e)t()}function hB(){return[(0,umr.useSyncExternalStore)(lWn,cWn),uWn]}function hmr(){let e=as(),t=yr(),[r]=hB(),[n,i]=(0,A2.useState)(""),[o,a]=(0,A2.useState)(null),[s,l]=(0,A2.useState)(!1),[u,f]=(0,A2.useState)(e),d=(0,A2.useRef)(void 0);return e!==u&&(f(e),a(null),l(n.trim().length>0)),(0,A2.useEffect)(()=>{if(d.current!==void 0&&clearTimeout(d.current),!n.trim()){a(null),l(!1);return}let h=new AbortController,{signal:p}=h;return l(!0),d.current=setTimeout(async()=>{try{let m=await WT({query:n,cwd:e,node:t,signal:p,filter:r});if(p.aborted)return;a(m),l(!1)}catch(m){if(!p.aborted)throw m}},250),()=>{d.current!==void 0&&clearTimeout(d.current),h.abort()}},[n,e,t,r]),{query:n,setQuery:i,results:o,loading:s}}var ymr={position:"relative",display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",alignItems:"center",columnGap:1.5,width:"100%",p:2,mb:1,borderRadius:2,border:1,borderColor:"divider",bgcolor:"background.paper",transition:"box-shadow 0.2s","&:hover":{boxShadow:3}},fWn={"&::after":{content:'""',position:"absolute",inset:0,borderRadius:2,zIndex:1},"&:focus-visible":{outline:"none"},"&:focus-visible::after":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:"2px"}},pmr={position:"relative",zIndex:2},mmr=8,q$e=24,dWn=wa`
|
|
3974
3974
|
from { background-position: 0 0; }
|
|
3975
3975
|
to { background-position: 0 ${q$e}px; }
|
|
3976
|
-
`,vmr={...ymr,borderColor:"warning.main",borderLeft:4,borderLeftColor:"warning.main",bgcolor:e=>Ea(e.palette.warning.main,.08)},hWn={...vmr,borderLeftColor:"transparent",backgroundImage:e=>`repeating-linear-gradient(to bottom, ${e.palette.warning.main} 0 ${mmr}px, transparent ${mmr}px ${q$e}px)`,backgroundOrigin:"border-box",backgroundRepeat:"repeat-y",backgroundSize:`4px ${q$e}px`,animation:`${dWn} 0.9s linear infinite`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}},gmr={"& .MuiButtonBase-root:focus-visible":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:"2px"}},Z1={card:ymr,inProgressCard:vmr,inProgressRunningCard:hWn,main:{minWidth:0,textAlign:"left"},stretchedNameLink:{display:"block",fontWeight:500,color:"text.primary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",...fWn},meta:{display:"flex",alignItems:"center",gap:1,...pmr,width:"fit-content",maxWidth:"100%",fontSize:"0.75rem",color:"text.secondary","& a, & p":{fontSize:"0.75rem"},...gmr},id:{color:"text.disabled"},actions:{display:"flex",alignItems:"center",gap:1,flexShrink:0,...pmr,...gmr}};function Nge(e){let t=e.peakContextPct>0?` \xB7 \u2593 ${Math.round(e.peakContextPct)}%`:"";return`\u2191 ${Hd(e.tokensUp)} \u2193 ${Hd(e.tokensDown)} \xB7 \u23F1 ${o0(e.activeMs)}${t}`}var xmr=P(z(),1),pWn={width:6,height:6,borderRadius:"50%",bgcolor:"currentColor",flexShrink:0};function bmr(){return(0,xmr.jsx)(le,{component:"span",sx:pWn})}var vY=P(z(),1),Tmr={display:"inline-flex",alignItems:"center",gap:.625,color:"warning.main",fontWeight:500,fontSize:"0.75rem",whiteSpace:"nowrap",borderRadius:1};function Smr({item:e,openSession:t,onSelectSession:r}){let n=Xi();if(e.status!=="in-progress"||e.currentPhase==null)return null;let i=`phase ${e.currentPhase} of ${e.totalPhases??e.currentPhase}`,o=(0,vY.jsx)(bmr,{});if(!t)return(0,vY.jsxs)(le,{component:"span",sx:Tmr,children:[o,i]});let a=()=>{r?.(t.id),n("/sessions")};return(0,vY.jsxs)(Dn,{sx:Tmr,title:`Open the ${t.status} session`,onClick:a,children:[o,i]})}var op=P(z(),1),mWn={display:"inline-flex",alignItems:"center",gap:.5},gWn={width:8,height:8,borderRadius:"50%",flexShrink:0},yWn={whiteSpace:"nowrap"};function vWn({type:e}){let t=_ge[e];return(0,op.jsxs)(le,{component:"span",sx:mWn,children:[(0,op.jsx)(le,{component:"span",sx:{...gWn,bgcolor:`${t}.main`}}),e]})}function bWn({item:e}){return e.usageTotal?(0,op.jsx)(lr,{title:Nge(e.usageTotal),children:(0,op.jsx)(le,{component:"span",sx:yWn,children:`\u23F1 ${o0(e.usageTotal.activeMs)}`})}):null}function Cmr({item:e,openSession:t,onSelectSession:r}){return(0,op.jsxs)(le,{sx:Z1.meta,children:[(0,op.jsx)(le,{component:"span",sx:Z1.id,children:so(e.id)}),(0,op.jsx)(vWn,{type:e.type}),(0,op.jsx)(Smr,{item:e,openSession:t,onSelectSession:r}),(0,op.jsx)(pP,{jiraKey:e.jiraKey}),(0,op.jsx)(hP,{githubIssue:e.githubIssue,variant:"icon"}),(0,op.jsx)(bWn,{item:e})]})}function wmr(e,t){return e.filter(r=>AP(r)?.itemId===t).reduce((r,n)=>r&&r.startedAt>=n.startedAt?r:n,void 0)}var _mr=P(z(),1),xWn={todo:"\u25CB","in-progress":"\u25D4",done:"\u25CF",wontdo:"\u2715"},TWn={todo:"text.disabled","in-progress":"warning.main",done:"success.main",wontdo:"error.main"};function SWn(e){return{fontSize:"1.125rem",flexShrink:0,color:TWn[e]}}function kmr({status:e}){return(0,_mr.jsx)(Oe,{sx:SWn(e),children:xWn[e]})}function Oge(e){return e.status==="todo"||e.status==="in-progress"}function CWn(e){if(e.status==="done")return e.totalPhases;if(e.status==="in-progress")return e.currentPhase}function wWn(e,t,r){return r?"complete":e<t?"done":e===t?"current":"remaining"}function Emr(e){let t=e.totalPhases,r=CWn(e);if(!t||r==null)return;let n=e.status==="done";return{reached:r,total:t,segments:Array.from({length:t},(i,o)=>({phase:o+1,kind:wWn(o+1,r,n)}))}}var pB=P(z(),1),kWn={done:"text.secondary",current:"warning.main",remaining:"divider",complete:"success.main"},_Wn={display:"inline-flex",alignItems:"center",gap:.5,flexShrink:0},EWn={fontSize:"0.6875rem",color:"text.secondary",fontVariantNumeric:"tabular-nums"},RWn={display:"inline-flex",alignItems:"center",gap:"2px"},AWn={width:6,height:12,borderRadius:"1px",flexShrink:0};function Rmr({item:e}){let t=Emr(e);return t?(0,pB.jsxs)(le,{sx:_Wn,title:`Phase ${t.reached} of ${t.total}`,children:[(0,pB.jsx)(le,{component:"span",sx:EWn,children:`${t.reached}/${t.total}`}),(0,pB.jsx)(le,{component:"span",sx:RWn,"aria-hidden":!0,children:t.segments.map(r=>(0,pB.jsx)(le,{component:"span","data-segment":r.kind,sx:{...AWn,bgcolor:kWn[r.kind]}},r.phase))})]}):null}var Ymr=P(ge(),1);var $ge=P(ge(),1);var bY=P(z(),1);function Amr({tooltip:e,disabled:t,onClick:r}){return(0,bY.jsx)(lr,{title:e,children:(0,bY.jsx)(le,{component:"span",sx:{display:"flex"},children:(0,bY.jsx)(qt,{startIcon:(0,bY.jsx)(Fp,{}),disabled:t,onClick:r,children:"Build"})})})}var j$e=P(z(),1);function Bge(e){let t=[];return e.exposeCodexActions&&t.push({kind:"codex",label:"with Codex"}),e.exposePiActions&&t.push({kind:"pi",label:"with pi"}),t}function Fge({anchorEl:e,open:t,onClose:r,options:n,onSelect:i,stop:o}){return(0,j$e.jsx)(Dl,{anchorEl:e,open:t,onClose:r,onClick:o,children:n.map(a=>(0,j$e.jsx)(fn,{onClick:s=>{o(s),i(a.kind)},children:a.label},a.kind))})}var Q1=P(z(),1);function Pmr({tooltip:e,disabled:t,onBuild:r,onSelectHarness:n}){let i=Bge(kk()),o=(0,$ge.useRef)(null),[a,s]=(0,$ge.useState)(!1),l=u=>u.stopPropagation();return(0,Q1.jsxs)(Q1.Fragment,{children:[(0,Q1.jsxs)(tT,{ref:o,variant:"contained",color:"success",size:"small",disabled:t,children:[(0,Q1.jsx)(Amr,{tooltip:e,disabled:t,onClick:u=>{l(u),r()}}),i.length>0&&(0,Q1.jsx)(qt,{"aria-label":"Build with a different harness",onClick:u=>{l(u),s(!0)},children:(0,Q1.jsx)(Up,{})})]}),(0,Q1.jsx)(Fge,{anchorEl:o.current,open:a,onClose:()=>s(!1),options:i,onSelect:u=>{s(!1),n(u)},stop:l})]})}var Lmr=P(z(),1),mB=ut((0,Lmr.jsx)("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96M19 18H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95C8.08 7.14 9.94 6 12 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11c1.56.1 2.78 1.41 2.78 2.96 0 1.65-1.35 3-3 3m-5.55-8h-2.9v3H8l4 4 4-4h-2.55z"}),"CloudDownloadOutlined");var Rk=P(z(),1),PWn={vertical:"bottom",horizontal:"center"};function zge({clone:e}){let{prompt:t,confirm:r,cancel:n,error:i,dismissError:o}=e;return(0,Rk.jsxs)(Rk.Fragment,{children:[t&&(0,Rk.jsx)(vo,{title:"Clone repository",message:`Clone ${t.displayName} over SSH into ${t.cloneTarget}${t.node?` on ${t.node}`:""}?`,confirmLabel:"Clone",confirmColor:"primary",onConfirm:r,onCancel:n}),(0,Rk.jsx)(ol,{open:!!i,autoHideDuration:8e3,onClose:o,anchorOrigin:PWn,children:(0,Rk.jsx)(ni,{severity:"error",onClose:o,variant:"filled",children:i})})]})}var l0=P(ge(),1);function Y$e(e){return["backlog","clone",e]}function Hge(e,t){t(Y$e(e.origin),void 0,{title:`Clone ${e.displayName}`,subtitle:e.origin,...e.node&&{node:e.node}})}function Mmr(e,t){return!!e&&e.length===t.length&&e.every((r,n)=>r===t[n])}function Imr(e,t,r){let n=Y$e(t.origin),i=new Set(e.filter(o=>Mmr(o.assistArgs,n)).map(o=>o.id));return Hge(t,r),{args:n,target:t.cloneTarget,node:t.node,preexisting:i}}function Dmr(e,t){if(!t.id){let n=e.find(i=>Mmr(i.assistArgs,t.args)&&!t.preexisting.has(i.id));return n?{type:"latch",id:n.id}:null}let r=e.find(n=>n.id===t.id);return r?r.status==="done"?{type:"done"}:r.status==="error"?{type:"error",message:r.error||"Clone failed."}:null:null}function Uge(e){let{setSelectedCwd:t}=$n(),{launchAssist:r}=$l(),[n,i]=(0,l0.useState)(null),[o,a]=(0,l0.useState)(null),[s,l]=(0,l0.useState)(null),u=(0,l0.useCallback)(p=>{l(null),i(p)},[]),f=(0,l0.useCallback)(()=>i(null),[]),d=(0,l0.useCallback)(()=>l(null),[]),h=(0,l0.useCallback)(()=>{n&&(a(Imr(e,n,r)),i(null))},[n,e,r]);return(0,l0.useEffect)(()=>{if(!o)return;let p=Dmr(e,o);p&&(p.type==="latch"?a(m=>m&&{...m,id:p.id}):p.type==="done"?(o.node?t(o.target,o.node):t(o.target),a(null)):(l(p.message),a(null)))},[e,o,t]),{prompt:n,requestClone:u,confirm:h,cancel:f,error:s,dismissError:d}}function gB(e,t){return`Not cloned ${e?`on ${e}`:"locally"} \u2014 click to clone into ${t}`}var P2=P(z(),1),LWn={border:1,borderStyle:"dashed"};function Nmr({target:e}){let t=Uge(Dge());return(0,P2.jsxs)(P2.Fragment,{children:[(0,P2.jsx)(lr,{title:gB(e.node,e.cloneTarget),children:(0,P2.jsx)(ir,{"aria-label":"Clone",size:"small",sx:LWn,onClick:r=>{r.stopPropagation(),t.requestClone(e)},children:(0,P2.jsx)(mB,{fontSize:"small"})})}),(0,P2.jsx)(zge,{clone:t})]})}function Omr(e,t,r,n){let i=r.node?[{node:r.node}]:[];e(["backlog","run",so(t),...n],r.cwd,...i)}var xY=P(z(),1);function Bmr({tooltip:e,disabled:t,onClick:r}){return(0,xY.jsx)(lr,{title:e,children:(0,xY.jsx)("span",{children:(0,xY.jsx)(ir,{"aria-label":"Build",color:"success",size:"small",disabled:t,onClick:r,children:(0,xY.jsx)(Fp,{})})})})}function MWn(e,t){let r=e.assistArgs;if(r?.[0]!=="backlog"||r[1]!=="run"||!r[2])return!1;try{return _J(r[2])===t}catch{return!1}}function Fmr(e,t){return e.find(r=>r.status!=="done"&&r.status!=="error"&&(MWn(r,t)||AP(r)?.itemId===t))}var Wge=P(ge(),1),K$e=(0,Wge.createContext)({nodes:null,names:[],visible:!1,selected:void 0,select:()=>{}});function Bu(){return(0,Wge.useContext)(K$e)}function Vge(){let{nodes:e,selected:t}=Bu();return t&&t!==e?.local?t:void 0}var Hmr=P(ge(),1);var Gge=P(ge(),1);function $mr(e,t){return Promise.all(t.map(async r=>{let n=await IWn(e,r).catch(()=>({}));return[r,n]}))}async function IWn(e,t){let r=await fetch(tn(`/api/repo-location?origin=${encodeURIComponent(e)}`,t||void 0));return r.ok?r.json():{}}var X$e="\0";function zmr(e,t){let[r,n]=(0,Gge.useState)(null);return(0,Gge.useEffect)(()=>{if(!e||!t)return;let i=!1;return $mr(e,t.split(X$e)).then(o=>{i||n({origin:e,byNode:Object.fromEntries(o)})}),()=>{i=!0}},[e,t]),r}function qge(e,t){let{cloneOn:r,originOf:n}=$n(),i=e?n(e):void 0,o=t.filter(s=>!e||!r(e,s)).map(s=>s??"").join(X$e),a=zmr(i,o);return(0,Hmr.useCallback)(s=>{let l=e?r(e,s):void 0;if(l)return{kind:"cloned",cwd:l};let u=a&&a.origin===i?a.byNode[s??""]:void 0;return u?.cwd?{kind:"cloned",cwd:u.cwd}:i&&u?.cloneTarget?{kind:"clonable",origin:i,cloneTarget:u.cloneTarget}:{kind:"unavailable"}},[e,r,i,a])}var vB=P(ge(),1);var Umr=P(z(),1);function yB({inputRef:e,value:t,onChange:r,onKeyDown:n,placeholder:i,autoFocus:o}){return(0,Umr.jsx)(Yn,{autoFocus:o,inputRef:e,value:t,onChange:a=>r(a.target.value),onKeyDown:n,placeholder:i,size:"small",fullWidth:!0,slotProps:{input:{sx:{fontSize:12}}},sx:{p:.5}})}var jge=P(ge(),1);function Yge(e){let t=(0,jge.useRef)(null);return(0,jge.useEffect)(()=>{e&&t.current?.scrollIntoView({block:"nearest"})},[e]),t}var Vmr=P(z(),1);function Wmr({cwd:e,selected:t,highlighted:r,onHover:n,onSelect:i}){let o=Yge(r);return(0,Vmr.jsx)(fn,{ref:o,selected:t,title:e,onClick:i,onMouseEnter:n,sx:{fontSize:12,display:"flex",justifyContent:"space-between",gap:1,...r&&{bgcolor:"action.hover"}},children:J1(e)})}var Z$e=P(z(),1);function Kge({repos:e,selected:t,highlight:r,onHighlight:n,onSelect:i}){return(0,Z$e.jsx)(Cp,{dense:!0,children:e.map((o,a)=>(0,Z$e.jsx)(Wmr,{cwd:o,selected:o===t,highlighted:a===r,onHover:()=>n(a),onSelect:()=>i(o)},o))})}var Xge=P(ge(),1);function Ak(e,t,r,n){let[i,o]=(0,Xge.useState)(0);return(0,Xge.useEffect)(()=>{o(0)},[t]),{highlight:i,setHighlight:o,onKeyDown:s=>{let l=e.length;if(s.key==="ArrowDown")s.preventDefault(),l>0&&o(u=>(u+1)%l);else if(s.key==="ArrowUp")s.preventDefault(),l>0&&o(u=>(u-1+l)%l);else if(s.key==="Enter"){s.preventDefault();let u=e[i];u!==void 0&&(r(u),n())}else s.key==="Escape"&&(s.preventDefault(),n())}}}var TY=P(z(),1);function J1(e){let t=e.includes("\\")?"\\":"/";return e.split(t).filter(Boolean).pop()??e}var DWn={...OP};function Gmr({repos:e,selected:t,onSelect:r,close:n}){let[i,o]=(0,vB.useState)(""),a=(0,vB.useRef)(null);(0,vB.useEffect)(()=>{a.current?.focus()},[]);let s=i.trim().toLowerCase(),l=s?e.filter(p=>p.toLowerCase().includes(s)):e,{highlight:u,setHighlight:f,onKeyDown:d}=Ak(l,s,r,n);return(0,TY.jsxs)(an,{elevation:4,sx:DWn,children:[(0,TY.jsx)(yB,{inputRef:a,value:i,onChange:o,onKeyDown:d,placeholder:"Filter repos..."}),(0,TY.jsx)(Kge,{repos:l,selected:t,highlight:u,onHighlight:f,onSelect:p=>{r(p),n()}})]})}function Zge(e,t){return{origin:e.origin,cloneTarget:e.cloneTarget,displayName:J1(e.origin),node:t}}function qmr(){let e=as(),t=Vge(),r=qge(e??"",[t])(t);return e?r.kind==="cloned"?{kind:"ready",cwd:r.cwd,node:t}:r.kind==="clonable"?{kind:"clone",prompt:Zge(r,t)}:{kind:"unavailable",node:t??"this machine"}:{kind:"ready",node:t}}function jmr(e,t){return t?`Not cloned on ${t}`:e?"Already running \u2014 close that session to run it again":"Build"}var Qge=P(z(),1);function Jge({itemId:e,compact:t=!1}){let{launchAssist:r}=$l(),n=qmr(),i=Fmr(Dge(),e),[o,a]=(0,Ymr.useState)(!1);if(n.kind==="clone")return(0,Qge.jsx)(Nmr,{target:n.prompt});let s=n.kind==="unavailable"?n.node:void 0,l=o||i!==void 0||!!s,u=d=>{l||n.kind!=="ready"||(a(!0),Omr(r,e,n,d))},f=jmr(i!==void 0,s);return t?(0,Qge.jsx)(Bmr,{tooltip:f,disabled:l,onClick:d=>{d.stopPropagation(),u([])}}):(0,Qge.jsx)(Pmr,{tooltip:f,disabled:l,onBuild:()=>u([]),onSelectHarness:d=>u(["--harness",d])})}var Kmr=P(ge(),1);var bB=P(z(),1);function Xmr({itemId:e,starred:t,onToggled:r}){let n=as(),i=yr(),[o,a]=(0,Kmr.useState)(!1);return(0,bB.jsx)(lr,{title:t?"Unstar":"Star",children:(0,bB.jsx)("span",{children:(0,bB.jsx)(ir,{"aria-label":t?"Unstar":"Star","aria-pressed":t,color:t?"warning":"default",size:"small",disabled:o,onClick:async l=>{if(l.stopPropagation(),!o){a(!0);try{await HJ(e,!t,n,i),await r()}finally{a(!1)}}},children:t?(0,bB.jsx)(qee,{}):(0,bB.jsx)(jee,{})})})})}var Zmr=P(z(),1),Qmr=ut((0,Zmr.jsx)("path",{d:"M22 7h-9v2h9zm0 8h-9v2h9zM5.54 11 2 7.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41zm0 8L2 15.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41z"}),"Checklist");var SY=P(z(),1),NWn={display:"inline-flex",alignItems:"center",gap:.375,flexShrink:0,fontSize:"0.71875rem",color:"text.secondary","& svg":{fontSize:14}};function Jmr({count:e}){return e<1?null:(0,SY.jsx)(lr,{title:`${e} incomplete subtask${e===1?"":"s"}`,children:(0,SY.jsxs)(le,{component:"span",sx:NWn,children:[(0,SY.jsx)(Qmr,{}),e]})})}var L2=P(z(),1);function egr({item:e,onReload:t}){return(0,L2.jsxs)(L2.Fragment,{children:[(0,L2.jsx)(Jmr,{count:e.incompleteSubtasks}),(0,L2.jsx)(Rmr,{item:e}),(0,L2.jsx)(Xmr,{itemId:e.id,starred:e.starred,onToggled:t}),Oge(e)&&(0,L2.jsx)(Jge,{itemId:e.id,compact:!0})]})}var M2=P(z(),1);function OWn(e,t){return e?t?Z1.inProgressRunningCard:Z1.inProgressCard:Z1.card}function tgr({item:e,to:t,socket:r,onReload:n}){let i=wmr(r.sessions,e.id),o=e.status==="in-progress",a=o&&i?.status==="running";return(0,M2.jsxs)(le,{sx:OWn(o,a),children:[(0,M2.jsx)(kmr,{status:e.status}),(0,M2.jsxs)(le,{sx:Z1.main,children:[(0,M2.jsx)(xn,{component:ys,to:t,underline:"none",title:e.name,sx:Z1.stretchedNameLink,children:e.name}),(0,M2.jsx)(Cmr,{item:e,openSession:i,onSelectSession:r.selectSession})]}),(0,M2.jsx)(le,{sx:Z1.actions,children:(0,M2.jsx)(egr,{item:e,onReload:n})})]})}var ngr=P(z(),1),BWn={all:"items",story:"stories",bug:"bugs"},FWn={textAlign:"center",color:"text.disabled",py:6,px:2};function rgr({query:e,typeFilter:t}){let r=BWn[t],n=e.trim()?`No ${r} match your search.`:`No ${r} in the backlog.`;return(0,ngr.jsx)(le,{sx:FWn,children:n})}var ev=P(z(),1),$Wn={display:"flex",justifyContent:"center",py:6};function igr({loading:e,error:t,query:r,typeFilter:n,items:i,socket:o,itemPath:a,onReload:s}){if(e)return(0,ev.jsx)(le,{sx:$Wn,children:(0,ev.jsx)(mo,{})});let l=t&&(0,ev.jsx)(ni,{severity:"error",children:t});return i.length===0?l||(0,ev.jsx)(rgr,{query:r,typeFilter:n}):(0,ev.jsxs)(ev.Fragment,{children:[l,i.map(u=>(0,ev.jsx)(tgr,{item:u,to:a(u),socket:o,onReload:s},u.id))]})}var xB=P(ge(),1);function zWn(e){let t=new URLSearchParams;for(let n of e)t.append("knownCwd",n);let r=t.toString();return r?`/api/backlog/summary?${r}`:"/api/backlog/summary"}async function ogr({cwd:e,node:t,knownCwds:r,signal:n}){return(await fetch(Fl(zWn(r),e,t),{signal:n})).json()}function agr(){let{repos:e,selectedCwd:t,cloneOn:r}=$n(),n=Vge(),[i,o]=(0,xB.useState)([]),a=(0,xB.useMemo)(()=>e.map(l=>r(l,n)).filter(l=>!!l),[e,r,n]),s=t?r(t,n):void 0;return(0,xB.useEffect)(()=>{let l=new AbortController;return ogr({cwd:s,node:n,knownCwds:a,signal:l.signal}).then(o).catch(()=>{}),()=>l.abort()},[a,s,n]),{summaries:i,node:n}}var e0e=P(z(),1),HWn={borderStyle:"dashed"};function sgr({summary:e,node:t,onSelectCwd:r,onRequestClone:n}){let{origin:i,displayName:o,openCount:a,isCurrent:s,cwd:l,cloneTarget:u}=e,f=!l&&!!u,d=l?()=>r(l):f&&u?()=>n({origin:i,cloneTarget:u,displayName:o,node:t}):void 0,h=(0,e0e.jsx)(sn,{label:`${o} (${a})`,size:"small",color:s?"primary":"default",variant:s?"filled":"outlined",disabled:!l&&!f,onClick:d,icon:f?(0,e0e.jsx)(mB,{}):void 0,sx:f?HWn:void 0});return!f||!u?h:(0,e0e.jsx)(lr,{describeChild:!0,title:gB(t,u),children:h})}var CY=P(z(),1),UWn={flexWrap:"wrap",gap:1,mb:2};function lgr({sessions:e}){let{summaries:t,node:r}=agr(),{setSelectedCwd:n}=$n(),i=Uge(e);return t.length===0?null:(0,CY.jsxs)(Rt,{direction:"row",sx:UWn,children:[t.map(o=>(0,CY.jsx)(sgr,{summary:o,node:r,onSelectCwd:a=>r?n(a,r):n(a),onRequestClone:i.requestClone},o.origin)),(0,CY.jsx)(zge,{clone:i})]})}var ugr=P(z(),1);function cgr({value:e,onChange:t}){return(0,ugr.jsx)(Yn,{"data-backlog-focus":"search",fullWidth:!0,size:"small",placeholder:"Search backlog\u2026",value:e,onChange:r=>t(r.target.value),sx:{mb:2}})}var t0e=P(ge(),1);var r0e=P(z(),1);async function WWn(){return(await(await fetch("/api/backups/list")).json())[0]}function fgr(){let[e,t]=(0,t0e.useState)();return(0,t0e.useEffect)(()=>{WWn().then(t)},[]),e?(0,r0e.jsx)(lr,{title:new Date(e.createdAt).toLocaleString(),children:(0,r0e.jsxs)(xn,{component:ys,to:"/backups",underline:"hover",color:"text.secondary",variant:"body2",children:["Last backed up ",Do(String(e.createdAt))]})}):null}var TB=P(z(),1);function dgr(){let[e,t]=hB();return(0,TB.jsxs)(du,{value:e,exclusive:!0,size:"small","aria-label":"Status filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,TB.jsx)(hs,{value:"todo",children:"Todo"}),(0,TB.jsx)(hs,{value:"done",children:"Done"}),(0,TB.jsx)(hs,{value:"all",children:"All"})]})}var SB=P(z(),1);function hgr({value:e,onChange:t}){return(0,SB.jsxs)(du,{value:e,exclusive:!0,size:"small","aria-label":"Type filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,SB.jsx)(hs,{value:"all",children:"All"}),(0,SB.jsx)(hs,{value:"story",children:"Stories"}),(0,SB.jsx)(hs,{value:"bug",children:"Bugs"})]})}var Pk=P(z(),1),VWn={justifyContent:"space-between",alignItems:"center",mb:3},GWn={fontWeight:600},qWn={alignItems:"center"};function pgr({typeFilter:e,onTypeFilterChange:t}){return(0,Pk.jsxs)(Rt,{direction:"row",sx:VWn,children:[(0,Pk.jsx)(Oe,{variant:"h5",sx:GWn,children:"Backlog"}),(0,Pk.jsxs)(Rt,{direction:"row",spacing:2,sx:qWn,children:[(0,Pk.jsx)(fgr,{}),(0,Pk.jsx)(hgr,{value:e,onChange:t}),(0,Pk.jsx)(dgr,{})]})]})}var I2=P(z(),1);function ggr({items:e,loading:t,error:r,socket:n,onReload:i}){let o=as(),a=yr(),{query:s,setQuery:l,results:u,loading:f}=hmr(),[d,h]=(0,mgr.useState)("all"),p=u??e,m=d==="all"?p:p.filter(g=>g.type===d);return(0,I2.jsxs)(I2.Fragment,{children:[(0,I2.jsx)(pgr,{typeFilter:d,onTypeFilterChange:h}),(0,I2.jsx)(cgr,{value:s,onChange:l}),(0,I2.jsx)(lgr,{sessions:n.sessions}),(0,I2.jsx)(igr,{loading:t||f,error:u?null:r,query:s,typeFilter:d,items:m,socket:n,itemPath:g=>zT(g.id,o,a),onReload:i})]})}var f0e=P(ge(),1);var TR=P(ge(),1);async function Q$e(e,t,r){let n=await fetch(Fl(`/api/items/${so(e)}`,t.cwd,t.node),{signal:r});return n.ok?n.json():null}function ygr(e){let t=as(),r=yr(),[n,i]=(0,TR.useState)(null),[o,a]=(0,TR.useState)(!0),s=(0,TR.useCallback)(async()=>{i(await Q$e(e,{cwd:t,node:r}))},[e,t,r]);return(0,TR.useEffect)(()=>{let l=new AbortController,{signal:u}=l;return a(!0),(async()=>{try{let f=await Q$e(e,{cwd:t,node:r},u);if(u.aborted)return;i(f),a(!1)}catch(f){if(!u.aborted)throw f}})(),()=>l.abort()},[e,t,r]),{item:n,loading:o,reload:s}}var Lk={description:"item-section-description",acceptanceCriteria:"item-section-acceptance-criteria",subtasks:"item-section-subtasks",plan:"item-section-plan",activity:"item-section-activity",comments:"item-section-comments"},wY=140,J$e="--pinned-header-height",n0e=`var(${J$e}, ${wY}px)`,vgr=`calc(${n0e} + 8px)`;function Um(e){return{id:Lk[e],sx:{mb:2,scrollMarginTop:vgr}}}function i0e(e){return{id:`item-phase-${e}`,sx:{scrollMarginTop:vgr}}}var Mk=P(z(),1);function bgr({criteria:e}){return e.length===0?null:(0,Mk.jsxs)(le,{...Um("acceptanceCriteria"),children:[(0,Mk.jsx)(Oe,{variant:"overline",sx:{color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"},children:"Acceptance Criteria"}),(0,Mk.jsx)(L0,{disablePadding:!0,sx:{maxWidth:"72ch"},children:e.map((t,r)=>(0,Mk.jsxs)(iT,{disableGutters:!0,disablePadding:!0,sx:{py:.5,display:"flex",alignItems:"baseline"},children:[(0,Mk.jsxs)(Oe,{component:"span",sx:{color:"text.secondary",mr:1},children:[r+1,"."]}),(0,Mk.jsx)(yu,{component:"span",className:"markdown",html:MP(t)})]},t))})]})}var kY=P(z(),1),jWn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function xgr({description:e}){return e?(0,kY.jsxs)(le,{...Um("description"),children:[(0,kY.jsx)(Oe,{variant:"overline",sx:jWn,children:"Description"}),(0,kY.jsx)(Rw,{content:e,renderMermaid:!0})]}):null}var Agr=P(ge(),1);function Tgr(e,t=10){let r=i=>e.filter(o=>o.kind===i).reverse(),n=r("commit");return{branches:r("branch"),commits:n.slice(0,t),overflowCommits:n.slice(t),prs:r("pr"),slacks:r("slack"),sessions:r("session")}}var Cgr=P(z(),1),YWn={color:"text.secondary",alignSelf:"flex-start",textAlign:"left"};function Sgr({hiddenCount:e,expanded:t,onToggle:r}){return e===0?null:(0,Cgr.jsx)(xn,{component:"button",type:"button",variant:"body2",underline:"hover",sx:YWn,onClick:n=>{n.stopPropagation(),r()},children:t?"Show fewer commits":`\u2026 and ${e} more commits`})}var SR=P(z(),1),KWn={display:"flex",alignItems:"center",gap:1},XWn={color:"text.secondary",fontFamily:"monospace"},ZWn={flex:1,overflowWrap:"anywhere"},QWn={color:"text.disabled","&:hover":{color:"text.primary"}};function wgr({conversation:e}){let{resumeSession:t}=$l(),r=n=>{n.stopPropagation(),t(e.sessionId,e.cwd??"",e.title,e.harness)};return(0,SR.jsxs)(le,{sx:KWn,children:[(0,SR.jsx)(Oe,{variant:"body2",component:"span",sx:XWn,children:"session"}),(0,SR.jsx)(Oe,{variant:"body2",component:"span",sx:ZWn,children:e.title??e.sessionId}),(0,SR.jsx)(ir,{size:"small",title:"Resume",sx:QWn,onClick:r,children:(0,SR.jsx)(Fp,{sx:{fontSize:14}})})]})}var _gr=P(z(),1),JWn={color:"text.disabled",ml:1};function kgr({gitRef:e}){return e.kind!=="commit"||!e.createdAt?null:(0,_gr.jsx)(le,{component:"span",sx:JWn,children:eVn(e.createdAt)})}function eVn(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function Egr(e){if(e.kind==="commit"){let t=e.title?` ${e.title}`:"";return`${e.ref.slice(0,8)}${t}`}if(e.kind==="pr"){let t=e.title?` ${e.title}`:"",r=e.state?` (${e.state.toLowerCase()})`:"";return`#${e.ref}${t}${r}`}return e.kind==="slack"||e.kind==="session"?e.title??e.ref:e.ref}var tv=P(z(),1),tVn={color:"text.secondary",mr:1,fontFamily:"monospace"};function rVn({gitRef:e}){let t=Egr(e);return!e.url||e.kind==="session"?(0,tv.jsx)(tv.Fragment,{children:t}):(0,tv.jsx)(xn,{href:e.url,target:"_blank",rel:"noopener",onClick:r=>r.stopPropagation(),children:t})}function Rgr({gitRef:e}){return(0,tv.jsxs)(Oe,{variant:"body2",children:[(0,tv.jsx)(le,{component:"span",sx:tVn,children:e.kind}),(0,tv.jsx)(rVn,{gitRef:e}),(0,tv.jsx)(kgr,{gitRef:e})]})}var Ik=P(z(),1),nVn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function Pgr({gitRefs:e,conversations:t=[]}){let[r,n]=(0,Agr.useState)(!1),{branches:i,commits:o,overflowCommits:a,prs:s,slacks:l}=Tgr(e),u=[...i,...o,...r?a:[],...s,...l];return u.length===0&&t.length===0?null:(0,Ik.jsxs)(le,{...Um("activity"),children:[(0,Ik.jsx)(Oe,{variant:"overline",sx:nVn,children:"Activity"}),(0,Ik.jsxs)(Rt,{spacing:1,children:[u.map(f=>(0,Ik.jsx)(Rgr,{gitRef:f},`${f.kind}:${f.ref}`)),t.map(f=>(0,Ik.jsx)(wgr,{conversation:f},f.sessionId)),(0,Ik.jsx)(Sgr,{hiddenCount:a.length,expanded:r,onToggle:()=>n(f=>!f)})]})]})}var CR=P(z(),1),iVn={alignItems:"center",fontSize:"0.75rem",color:"text.secondary",mb:.5},oVn={color:"text.disabled"},aVn={fontWeight:500},sVn={summary:"Phase summary",comment:"Comment"};function Lgr({comment:e}){return(0,CR.jsxs)(Rt,{direction:"row",spacing:.5,sx:iVn,children:[e.id!==void 0&&(0,CR.jsxs)(Oe,{variant:"caption",sx:oVn,children:["#",e.id]}),(0,CR.jsx)(Oe,{variant:"caption",sx:aVn,children:sVn[e.type]}),e.phase!==void 0&&(0,CR.jsxs)(Oe,{variant:"caption",children:["\xB7 Phase ",e.phase]}),(0,CR.jsxs)(Oe,{variant:"caption",children:["\xB7 ",lVn(e.timestamp)]})]})}function lVn(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}var Mgr=P(z(),1),Igr=ut((0,Mgr.jsx)("path",{d:"M16 9v10H8V9zm-1.5-6h-5l-1 1H5v2h14V4h-3.5zM18 7H6v12c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2z"}),"DeleteOutlined");var eze=P(ge(),1);async function Dgr(e,t,r,n){let i=await fetch(Fl(`/api/items/${so(e)}/comments/${t}`,r,n),{method:"DELETE"});if(!i.ok){let o=await i.json().catch(()=>{});throw new Error(o?.error??`Failed to delete comment (${i.status})`)}}var rv=P(z(),1),cVn={mt:-.5,mr:-.5,color:"text.secondary"};function Ngr({itemId:e,commentId:t,onDeleted:r}){let n=as(),i=yr(),[o,a]=(0,eze.useState)(!1),[s,l]=(0,eze.useState)(),u=()=>l(void 0);return(0,rv.jsxs)(rv.Fragment,{children:[o&&(0,rv.jsx)(vo,{message:"Are you sure you want to delete this comment?",onConfirm:async()=>{a(!1);try{await Dgr(e,t,n,i),await r()}catch(f){l(f instanceof Error?f.message:"Failed to delete comment")}},onCancel:()=>a(!1)}),(0,rv.jsx)(ol,{open:s!==void 0,autoHideDuration:6e3,onClose:u,children:(0,rv.jsx)(ni,{severity:"error",variant:"filled",onClose:u,children:s})}),(0,rv.jsx)(ir,{"aria-label":"Delete comment",size:"small",sx:cVn,onClick:()=>a(!0),children:(0,rv.jsx)(Igr,{fontSize:"inherit"})})]})}var wR=P(z(),1),uVn={summary:{bgcolor:"warning.light",borderColor:"warning.dark"},comment:{bgcolor:"action.selected",borderColor:"divider"}},fVn={justifyContent:"space-between",alignItems:"flex-start"},dVn={color:"text.primary",whiteSpace:"pre-wrap"};function hVn(e){return{p:1.5,bgcolor:e.bgcolor,borderColor:e.borderColor}}function Ogr({comment:e,itemId:t,onDeleted:r}){return(0,wR.jsxs)(an,{variant:"outlined",sx:hVn(uVn[e.type]),children:[(0,wR.jsxs)(Rt,{direction:"row",sx:fVn,children:[(0,wR.jsx)(Lgr,{comment:e}),e.id!==void 0&&t!==void 0&&r&&(0,wR.jsx)(Ngr,{itemId:t,commentId:e.id,onDeleted:r})]}),(0,wR.jsx)(Oe,{variant:"body2",sx:dVn,children:e.text})]})}var CB=P(z(),1),pVn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function Bgr({comments:e,itemId:t,onCommentDeleted:r}){return e.length===0?null:(0,CB.jsxs)(le,{...Um("comments"),children:[(0,CB.jsx)(Oe,{variant:"overline",sx:pVn,children:"Comments"}),(0,CB.jsx)(Rt,{spacing:1,children:e.map((n,i)=>(0,CB.jsx)(Ogr,{comment:n,itemId:t,onDeleted:r},`${n.timestamp}-${i}`))})]})}var Fgr=P(z(),1);function wB({total:e,sx:t}){return(0,Fgr.jsx)(Oe,{sx:t,children:Nge(e)})}var zgr=P(z(),1),mVn={color:"text.secondary",fontSize:"0.75rem"};function $gr({usage:e}){let t={tokensUp:e.reduce((r,n)=>r+n.tokensUp,0),tokensDown:e.reduce((r,n)=>r+n.tokensDown,0),activeMs:e.reduce((r,n)=>r+n.activeMs,0),peakContextPct:e.reduce((r,n)=>Math.max(r,n.peakContextPct),0)};return(0,zgr.jsx)(wB,{total:t,sx:mVn})}var D2=P(z(),1);function Hgr({checks:e}){return(0,D2.jsxs)(le,{sx:{mt:1,pt:1},children:[(0,D2.jsx)(no,{sx:{mb:1}}),(0,D2.jsx)(Oe,{variant:"overline",sx:{color:"text.disabled",letterSpacing:"0.08em"},children:"Manual Checks"}),(0,D2.jsx)(L0,{disablePadding:!0,sx:{ml:.5,mt:.5},children:e.map(t=>(0,D2.jsxs)(iT,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,D2.jsx)(Oe,{component:"span",sx:{mr:1,fontSize:"0.875rem",color:"text.secondary"},children:"\u2610"}),(0,D2.jsx)(yu,{component:"span",className:"markdown",sx:{fontSize:"0.875rem",color:"text.secondary"},html:MP(t)})]},t))})]})}var o0e={done:{borderColor:"success.light",bgcolor:"success.light"},current:{borderColor:"info.main",bgcolor:"info.light",ring:"info.light"},upcoming:{borderColor:"divider",bgcolor:"background.paper"}};function Ugr(e){let t=o0e[e];return{p:2,borderColor:t.ring?"info.main":t.borderColor,bgcolor:t.bgcolor,...t.ring?{boxShadow:"0 0 0 2px"}:{}}}var Wgr={done:"\u2713",current:"\u2022",upcoming:"\u2022"};var qgr=P(ge(),1);var Vgr=P(ge(),1),nv=P(z(),1);function Ggr({phaseName:e,onConfirm:t,onCancel:r}){let[n,i]=(0,Vgr.useState)("");return(0,nv.jsxs)(Ps,{open:!0,onClose:r,maxWidth:"xs",fullWidth:!0,children:[(0,nv.jsxs)(Il,{children:["Rewind to ",e,"?"]}),(0,nv.jsxs)(Ml,{children:[(0,nv.jsx)(Oe,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"This will mark all later phases as incomplete."}),(0,nv.jsx)(Yn,{fullWidth:!0,multiline:!0,rows:3,size:"small",placeholder:"Reason for rewinding...",value:n,onChange:o=>i(o.target.value)})]}),(0,nv.jsxs)(cu,{children:[(0,nv.jsx)(qt,{onClick:r,children:"Cancel"}),(0,nv.jsx)(qt,{variant:"contained",color:"warning",disabled:n.trim().length===0,onClick:()=>t(n.trim()),children:"Rewind"})]})]})}var kR=P(z(),1);function jgr({itemId:e,phaseNumber:t,phaseName:r,onRewound:n}){let i=as(),o=yr(),[a,s]=(0,qgr.useState)(!1);return(0,kR.jsxs)(kR.Fragment,{children:[(0,kR.jsx)(qt,{size:"small",color:"warning",variant:"outlined",onClick:()=>s(!0),sx:{ml:"auto",textTransform:"none",fontSize:"0.75rem"},children:"Rewind"}),a&&(0,kR.jsx)(Ggr,{phaseName:r,onConfirm:async l=>{await $et(e,t,l,i,o),await n()},onCancel:()=>s(!1)})]})}var kB=P(z(),1),gVn={done:{label:"Done",color:"success"},current:{label:"In Progress",color:"info"},upcoming:{label:"Upcoming",color:"default"}},yVn={alignItems:"center",mb:1},vVn={fontWeight:500},bVn={fontWeight:500,fontSize:"0.75rem"};function Ygr({phase:e,index:t,status:r,itemId:n,onRewind:i}){let o=gVn[r],a=r==="done"&&n!==void 0&&i;return(0,kB.jsxs)(Rt,{direction:"row",spacing:1,sx:yVn,children:[(0,kB.jsxs)(Oe,{sx:vVn,children:["Phase ",t+1,": ",e.name]}),(0,kB.jsx)(sn,{label:o.label,size:"small",color:o.color,sx:bVn}),a&&(0,kB.jsx)(jgr,{itemId:n,phaseNumber:t+1,phaseName:e.name,onRewound:i})]})}var _Y=P(z(),1),xVn={color:"text.secondary",fontSize:"0.75rem",letterSpacing:"0.08em",display:"block"},TVn={color:"text.secondary",fontSize:"0.75rem",fontFamily:"monospace",display:"block"};function Kgr({sessions:e}){return(0,_Y.jsxs)(le,{sx:{mb:1},children:[(0,_Y.jsx)(Oe,{variant:"overline",sx:xVn,children:"Sessions"}),e.map(t=>(0,_Y.jsx)(Oe,{sx:TVn,children:`${t.hostname} / ${t.osUser} / ${t.claudeSessionId}`},t.claudeSessionId))]})}var Zgr=P(z(),1),SVn={color:"text.secondary",fontSize:"0.75rem",mb:1,display:"block"};function Xgr({usage:e}){return(0,Zgr.jsx)(wB,{total:e,sx:SVn})}var _B=P(z(),1);function Qgr({tasks:e,marker:t}){return(0,_B.jsx)(L0,{disablePadding:!0,sx:{ml:.5},children:e.map(r=>(0,_B.jsxs)(iT,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,_B.jsx)(Oe,{component:"span",sx:{color:"text.secondary",mr:1},children:t}),(0,_B.jsx)(yu,{component:"span",className:"markdown",html:MP(r.task)})]},r.task))})}var Dk=P(z(),1);function Jgr({phase:e,index:t,status:r,itemId:n,usage:i,sessions:o,onRewind:a}){let s=e.manualChecks??[],l=i0e(t);return(0,Dk.jsxs)(an,{variant:"outlined",id:l.id,sx:{...Ugr(r),...l.sx},children:[(0,Dk.jsx)(Ygr,{phase:e,index:t,status:r,itemId:n,onRewind:a}),i&&(0,Dk.jsx)(Xgr,{usage:i}),(0,Dk.jsx)(Qgr,{tasks:e.tasks,marker:Wgr[r]}),s.length>0&&(0,Dk.jsx)(Hgr,{checks:s}),o&&o.length>0&&(0,Dk.jsx)(Kgr,{sessions:o})]})}var EY={name:"Review",tasks:[]};function a0e(e){return e.at(-1)?.name===EY.name?e.length-1:e.length}function s0e(e,t){if(t===void 0)return"upcoming";let r=e+1;return r<t?"done":r===t?"current":"upcoming"}function e0r(e=[]){return new Map(e.map(t=>[t.phaseIdx,t]))}function t0r(e=[]){let t=new Map;for(let r of e){let n=t.get(r.phaseIdx);n?n.push(r):t.set(r.phaseIdx,[r])}return t}var tze=P(z(),1);function r0r({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){let a=e0r(n),s=t0r(i),l=a0e(e),u=(i??[]).filter(d=>d.phaseIdx>=l),f=l===e.length&&u.length>0?[...e,EY]:e;return(0,tze.jsx)(Rt,{spacing:1.5,children:f.map((d,h)=>(0,tze.jsx)(Jgr,{phase:d,index:h,status:s0e(h,t),itemId:r,usage:a.get(h),sessions:h===l?u:s.get(h),onRewind:h<e.length?o:void 0},d.name))})}var _R=P(z(),1),CVn={alignItems:"baseline",justifyContent:"space-between",mb:1},wVn={color:"text.secondary",display:"block",letterSpacing:"0.08em"};function n0r({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){return e.length===0?null:(0,_R.jsxs)(le,{...Um("plan"),children:[(0,_R.jsxs)(Rt,{direction:"row",sx:CVn,children:[(0,_R.jsx)(Oe,{variant:"overline",sx:wVn,children:"Plan"}),n&&n.length>0&&(0,_R.jsx)($gr,{usage:n})]}),(0,_R.jsx)(r0r,{phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o})]})}var rze=P(z(),1),l0e=e=>{let{value:t,options:r,colors:n,onChange:i}=e;return(0,rze.jsx)(sT,{value:t,onChange:o=>i(o.target.value),size:"small",sx:{fontSize:"0.75rem",fontWeight:500,borderRadius:4,bgcolor:n[t].bg,color:n[t].text,"& .MuiSelect-select":{py:.5,px:1.5},"& .MuiSelect-icon":{color:"inherit"}},children:r.map(o=>(0,rze.jsx)(fn,{value:o,children:o},o))})};var o0r=P(z(),1),kVn={todo:{bg:"action.selected",text:"text.primary"},"in-progress":{bg:"warning.main",text:"warning.contrastText"},done:{bg:"success.main",text:"success.contrastText"}},_Vn=["todo","in-progress","done"];function i0r({current:e,onStatusChange:t}){return(0,o0r.jsx)(l0e,{value:e,options:_Vn,colors:kVn,onChange:t})}var Nk=P(z(),1);function a0r({subtask:e,onStatusChange:t}){let r=e.status==="done";return(0,Nk.jsxs)(Rt,{direction:"row",spacing:1,sx:{alignItems:"flex-start",justifyContent:"space-between"},children:[(0,Nk.jsxs)(le,{sx:{flex:1},children:[(0,Nk.jsx)(Oe,{variant:"body2",sx:{textDecoration:r?"line-through":"none",color:r?"text.disabled":"text.primary"},children:e.title}),e.description&&(0,Nk.jsx)(le,{sx:{mt:.5,fontSize:"0.8125rem",color:r?"text.disabled":"text.secondary"},children:(0,Nk.jsx)(Rw,{content:e.description})})]}),(0,Nk.jsx)(i0r,{current:e.status,onStatusChange:t})]})}var ER=P(z(),1),EVn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function s0r({subtasks:e,onStatusChange:t}){if(e.length===0)return null;let r=e.filter(n=>n.status!=="done").length;return(0,ER.jsxs)(le,{...Um("subtasks"),children:[(0,ER.jsx)(Oe,{variant:"overline",sx:EVn,children:"Sub-tasks"}),(0,ER.jsx)(Rt,{spacing:1,children:e.map((n,i)=>(0,ER.jsx)(a0r,{subtask:n,onStatusChange:o=>t(i,o)},`${n.title}-${i}`))}),r>0&&(0,ER.jsxs)(ni,{severity:"warning",sx:{mt:1},children:[r," sub-task",r===1?"":"s"," not yet done."]})]})}var N2=P(z(),1);function l0r({item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n}){return(0,N2.jsxs)(N2.Fragment,{children:[e.subtasks&&n&&(0,N2.jsx)(s0r,{subtasks:e.subtasks,onStatusChange:n}),e.plan&&(0,N2.jsx)(n0r,{phases:e.plan,currentPhase:e.currentPhase,itemId:e.id,usage:e.phaseUsage,sessions:e.phaseSessions,onRewind:t}),(0,N2.jsx)(Pgr,{gitRefs:e.gitRefs??[],conversations:e.conversations}),e.comments&&(0,N2.jsx)(Bgr,{comments:e.comments,itemId:e.id,onCommentDeleted:r})]})}var EB=P(z(),1);function c0r({item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n}){return(0,EB.jsxs)(le,{sx:{pt:2,flex:1,minWidth:0},children:[(0,EB.jsx)(xgr,{description:e.description}),(0,EB.jsx)(bgr,{criteria:e.acceptanceCriteria}),(0,EB.jsx)(l0r,{item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n})]})}var u0r="item-detail";var RY={wideQuery:`@container ${u0r} (min-width: 760px)`,containerSx:{containerType:"inline-size",containerName:u0r},columnsSx:{display:"flex",columnGap:3}};function RVn(e){let t=e.plan??[];if(t.length===0)return[];let r=a0e(t),i=r===t.length&&(e.phaseSessions??[]).some(o=>o.phaseIdx>=r)?[...t,EY]:t;return[{id:Lk.plan,label:"Phases"},...i.map((o,a)=>({id:i0e(a).id,label:`${a+1}`,title:o.name,status:s0e(a,e.currentPhase),nested:!0}))]}function f0r(e){let t=[];return e.description&&t.push({id:Lk.description,label:"Description"}),e.acceptanceCriteria.length>0&&t.push({id:Lk.acceptanceCriteria,label:"Acceptance Criteria"}),(e.subtasks?.length??0)>0&&t.push({id:Lk.subtasks,label:"Sub-tasks"}),t.push(...RVn(e)),(e.gitRefs?.length??0)+(e.conversations?.length??0)>0&&t.push({id:Lk.activity,label:"Activity"}),(e.comments?.length??0)>0&&t.push({id:Lk.comments,label:"Comments"}),t}var d0r="1.3125rem",h0r={position:"relative",borderRadius:1,"&::after":{content:'""',position:"absolute",inset:0,borderRadius:"inherit",pointerEvents:"none"},"&:hover::after":{bgcolor:"action.hover"},"&:active::after":{bgcolor:"action.selected"}},AVn={...h0r,display:"block",flexShrink:0,maxWidth:"100%",px:1,py:.5,border:0,bgcolor:"transparent",fontSize:d0r,lineHeight:1.2,letterSpacing:"0.02em",textAlign:"left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"text.secondary"},PVn={...h0r,display:"flex",alignItems:"center",justifyContent:"center",fontSize:d0r,width:"2em",height:"2em",flexShrink:0,lineHeight:1,borderRadius:"50%",border:1,color:"text.primary"},LVn={borderColor:"text.primary",borderWidth:3},MVn={color:"text.primary",fontWeight:700,"&::after":{bgcolor:"action.selected"}};function p0r(e,t){let r=e.status&&o0e[e.status];return r?{...PVn,ml:1.5,bgcolor:r.bgcolor,borderColor:r.borderColor,borderWidth:r.ring?3:1,...t&&LVn}:{...AVn,...t&&MVn}}var g0r=P(z(),1);function m0r({section:e,active:t,onSelect:r}){return(0,g0r.jsx)(Dn,{sx:p0r(e,t),onClick:()=>r(e.id),title:e.title??e.label,"aria-current":t?"true":void 0,children:e.label})}function y0r(e,t=wY){return ipe(e,t)}var nze=P(z(),1),IVn=48,DVn=260,NVn={display:"none",[RY.wideQuery]:{display:"flex"},position:"sticky",top:n0e,alignSelf:"flex-start",width:DVn,flexShrink:0,maxHeight:`calc(100vh - ${IVn}px - ${n0e})`,alignItems:"flex-start",overflowY:"auto",overflowX:"hidden",py:2};function OVn(e){document.getElementById(e)?.scrollIntoView({behavior:"smooth",block:"start"})}function v0r({item:e,headerHeight:t}){let r=f0r(e),n=y0r(r.map(i=>i.id),t);return r.length===0?null:(0,nze.jsx)(Rt,{component:"nav",spacing:1,sx:NVn,children:r.map(i=>(0,nze.jsx)(m0r,{section:i,active:i.id===n,onSelect:OVn},i.id))})}var x0r=P(z(),1);function b0r({to:e}){let t=Xi();return(0,x0r.jsx)(qt,{"data-backlog-focus":"back",variant:"text",size:"small",onClick:()=>t(e),sx:{mb:2,textTransform:"none"},children:"\u2190 Back"})}var T0r=P(ge(),1);var RR=P(z(),1);function S0r({itemId:e,onDeleted:t}){let r=as(),n=yr(),[i,o]=(0,T0r.useState)(!1);return(0,RR.jsxs)(RR.Fragment,{children:[i&&(0,RR.jsx)(vo,{onConfirm:async()=>{await Bet(e,r,n),await t()},onCancel:()=>o(!1)}),(0,RR.jsx)(qt,{variant:"contained",color:"error",size:"small",onClick:()=>o(!0),children:"Delete"})]})}var ize=P(z(),1),BVn={todo:{bg:"action.selected",text:"text.primary"},"in-progress":{bg:"warning.main",text:"warning.contrastText"},done:{bg:"success.main",text:"success.contrastText"},wontdo:{bg:"error.main",text:"error.contrastText"}},FVn=["todo","in-progress","done","wontdo"];function C0r({current:e,onStatusChange:t}){return t?(0,ize.jsx)(l0e,{value:e,options:FVn,colors:BVn,onChange:t}):(0,ize.jsx)(sn,{label:e,size:"small",color:Ege[e],sx:{fontWeight:500,fontSize:"0.75rem"}})}var O2=P(z(),1),$Vn={alignItems:"center",color:"text.disabled",fontSize:"0.875rem"},zVn={fontWeight:500,fontSize:"0.75rem"},HVn={color:"text.secondary",fontSize:"0.75rem"};function w0r({item:e,onStatusChange:t}){let r=_ge[e.type];return(0,O2.jsxs)(Rt,{direction:"row",spacing:1,sx:$Vn,children:[(0,O2.jsx)(Oe,{variant:"body2",color:"text.disabled",children:so(e.id)}),r&&(0,O2.jsx)(sn,{label:e.type,size:"small",color:r,sx:zVn}),(0,O2.jsx)(C0r,{current:e.status,onStatusChange:t}),(0,O2.jsx)(pP,{jiraKey:e.jiraKey}),(0,O2.jsx)(hP,{githubIssue:e.githubIssue,origin:e.origin}),e.usageTotal&&(0,O2.jsx)(wB,{total:e.usageTotal,sx:HVn})]})}var k0r=P(z(),1),_0r=ut((0,k0r.jsx)("path",{d:"M3 17v2h6v-2zM3 5v2h10V5zm10 16v-2h8v-2h-8v-2h-2v6zM7 9v2H3v2h4v2h2V9zm14 4v-2H11v2zm-6-4h2V7h4V5h-4V3h-2z"}),"Tune");var c0e=P(ge(),1);var E0r=P(ge(),1);function R0r(e){let{launchAssist:t}=$l(),r=Xi(),n=as(),i=yr(),[o,a]=(0,E0r.useState)(!1);return{launched:o,launch:l=>{if(o)return;a(!0);let u=i?[{node:i}]:[];t(["refine","--once",...l,so(e)],n,...u),r("/sessions")}}}var c0=P(z(),1);function A0r({itemId:e}){let{launched:t,launch:r}=R0r(e),n=kk(),i=(0,c0e.useRef)(null),[o,a]=(0,c0e.useState)(!1),s=u=>u.stopPropagation(),l=Bge(n);return(0,c0.jsxs)(c0.Fragment,{children:[(0,c0.jsxs)(tT,{ref:i,variant:"outlined",size:"small",disabled:t,children:[(0,c0.jsx)(qt,{startIcon:(0,c0.jsx)(_0r,{}),onClick:u=>{s(u),r([])},children:"Refine"}),l.length>0&&(0,c0.jsx)(qt,{size:"small","aria-label":"Refine with a different harness",onClick:u=>{s(u),a(!0)},children:(0,c0.jsx)(Up,{})})]}),(0,c0.jsx)(Fge,{anchorEl:i.current,open:o,onClose:()=>a(!1),options:l,onSelect:u=>{a(!1),r(["--harness",u])},stop:s})]})}var RB=P(ge(),1);function P0r(){let e=(0,RB.useRef)(null),[t,r]=(0,RB.useState)(!1);return(0,RB.useEffect)(()=>{let n=e.current;if(!n)return;let i=new IntersectionObserver(([o])=>r(!o.isIntersecting),{threshold:0});return i.observe(n),()=>i.disconnect()},[]),{sentinelRef:e,stuck:t}}var Bf=P(z(),1),UVn={justifyContent:"space-between",alignItems:"center",mb:2};function WVn(e){return e.palette.mode==="dark"?"0 8px 8px -9px rgba(0, 0, 0, 0.8)":"0 6px 6px -7px rgba(0, 0, 0, 0.2)"}function VVn(e){return t=>({position:"sticky",top:0,zIndex:1,bgcolor:"background.default",mx:-2,px:2,pb:2,borderBottom:1,borderColor:"divider",boxShadow:e?WVn(t):"none",transition:t.transitions.create("box-shadow")})}function L0r({item:e,onDeleted:t,onStatusChange:r,ref:n}){let{sentinelRef:i,stuck:o}=P0r();return(0,Bf.jsxs)(Bf.Fragment,{children:[(0,Bf.jsx)(le,{ref:i,sx:{height:0}}),(0,Bf.jsxs)(le,{ref:n,sx:VVn(o),children:[(0,Bf.jsxs)(Rt,{direction:"row",sx:UVn,children:[(0,Bf.jsx)(b0r,{to:"/backlog"}),(0,Bf.jsxs)(Rt,{direction:"row",spacing:1,children:[Oge(e)&&(0,Bf.jsx)(Jge,{itemId:e.id}),(0,Bf.jsx)(A0r,{itemId:e.id}),(0,Bf.jsx)(S0r,{itemId:e.id,onDeleted:t})]})]}),(0,Bf.jsx)(Oe,{variant:"h5",component:"h2",children:e.name}),(0,Bf.jsx)(w0r,{item:e,onStatusChange:r})]})]})}var I0r=P(ge(),1);var u0e=P(ge(),1);function M0r(e,t){let[r,n]=(0,u0e.useState)(t);return(0,u0e.useEffect)(()=>{let i=e.current;if(!i||(n(i.offsetHeight),typeof ResizeObserver>"u"))return;let o=new ResizeObserver(()=>n(i.offsetHeight));return o.observe(i),()=>o.disconnect()},[e]),r}function D0r(){let e=(0,I0r.useRef)(null),t=M0r(e,wY),r={[J$e]:`${t}px`};return{headerRef:e,headerHeight:t,style:r}}var Ok=P(z(),1);function N0r({item:e,onReload:t}){let r=Xi(),n=as(),i=yr(),{headerRef:o,headerHeight:a,style:s}=D0r();oy("ItemDetail");let l=async()=>{await t(),r("/backlog")},u=async d=>{await zJ(e.id,d,n,i),await t()},f=async(d,h)=>{await Fet(e.id,d,h,n,i),await t()};return(0,Ok.jsxs)(le,{style:s,children:[(0,Ok.jsx)(L0r,{ref:o,item:e,onDeleted:l,onStatusChange:u}),(0,Ok.jsx)(le,{sx:RY.containerSx,children:(0,Ok.jsxs)(le,{sx:RY.columnsSx,children:[(0,Ok.jsx)(c0r,{item:e,onRewind:t,onCommentDeleted:t,onSubtaskStatusChange:f}),(0,Ok.jsx)(v0r,{item:e,headerHeight:a})]})})]})}var AR=P(z(),1),GVn={display:"flex",justifyContent:"center",py:6};function O0r({onReload:e}){let[t]=Pc(),r=t.get("cwd")||void 0,n=t.get("node")||void 0,i=$n(),o=(0,f0e.useMemo)(()=>r?{...i,selectedCwd:r,selectedNode:n}:i,[i,r,n]);return oy("ItemRoute"),(0,AR.jsx)(Pz.Provider,{value:o,children:(0,AR.jsx)(Xu.Provider,{value:o.selectedNode,children:(0,AR.jsx)(qVn,{onReload:e})})})}function qVn({onReload:e}){let{id:t}=_2e(),r=Number.NaN;try{r=_J(t??"")}catch{r=Number.NaN}let{item:n,loading:i,reload:o}=ygr(r),a=(0,f0e.useCallback)(async()=>{await Promise.all([o(),e()])},[o,e]);return i?(0,AR.jsx)(le,{sx:GVn,children:(0,AR.jsx)(mo,{})}):n?(0,AR.jsx)(N0r,{item:n,onReload:a}):null}var PR=P(z(),1);function B0r({items:e,loading:t,error:r,socket:n,onReload:i}){return(0,PR.jsxs)(m5,{children:[(0,PR.jsx)(gs,{index:!0,element:(0,PR.jsx)(ggr,{items:e,loading:t,error:r,socket:n,onReload:i})}),(0,PR.jsx)(gs,{path:"items/:id",element:(0,PR.jsx)(O0r,{onReload:i})})]})}var u0=P(ge(),1);var F0r=new Map;function $0r(e,t,r){return JSON.stringify([e??null,t,r??null])}var AY={get(e,t,r){return F0r.get($0r(e,t,r))},set(e,t,r,n){F0r.set($0r(e,t,n),r)}};function jVn(e,t){return e===t?!0:!e||!t?!1:e.tokensUp===t.tokensUp&&e.tokensDown===t.tokensDown&&e.activeMs===t.activeMs&&e.peakContextPct===t.peakContextPct}function z0r(e,t){return e===t?!0:e.length!==t.length?!1:e.every((r,n)=>{let i=t[n];return r.id===i.id&&r.type===i.type&&r.name===i.name&&r.status===i.status&&r.starred===i.starred&&r.incompleteSubtasks===i.incompleteSubtasks&&jVn(r.usageTotal,i.usageTotal)})}function H0r({setItems:e,setLoading:t,setError:r}){return{onLoaded:n=>{e(i=>z0r(i,n)?i:n),t(!1),r(null)},onError:n=>{t(!1),r(n)}}}async function U0r(e,t,r,n){let i=await WT({cwd:e,node:n,signal:r,filter:t});return r.aborted||AY.set(e,t,i,n),i}function W0r(e,t,r,{onLoaded:n,onError:i},o){return(async()=>{try{let a=await U0r(e,t,r,o);r.aborted||n(a)}catch(a){r.aborted||i(a instanceof Error?a.message:"Failed to load.")}})()}var YVn=5e3;function V0r(e,t,r,n){let i=new AbortController,o=!1,a=()=>{o||(o=!0,W0r(e,t,i.signal,r,n).finally(()=>{o=!1}))};a();let s=setInterval(a,YVn);return()=>{i.abort(),clearInterval(s)}}function G0r(){let e=as(),t=yr(),[r]=hB(),n=AY.get(e,r,t),i=n??[],o=n===void 0,[a,s]=(0,u0.useState)(i),[l,u]=(0,u0.useState)(o),[f,d]=(0,u0.useState)(null),[h,p]=(0,u0.useState)(e),[m,g]=(0,u0.useState)(t),[y,v]=(0,u0.useState)(r);(e!==h||t!==m||r!==y)&&(p(e),g(t),v(r),s(i),u(o),d(null));let b=(0,u0.useCallback)(async()=>{let x=await WT({cwd:e,node:t,filter:r});s(x),AY.set(e,r,x,t),u(!1)},[e,t,r]);return(0,u0.useEffect)(()=>V0r(e,r,H0r({setItems:s,setLoading:u,setError:d}),t),[e,t,r]),{items:a,loading:l,error:f,reload:b}}var PY=P(z(),1);function q0r({socket:e}){let{items:t,loading:r,error:n,reload:i}=G0r();return bte(!r),(0,PY.jsx)(V$e.Provider,{value:e.sessions,children:(0,PY.jsx)(m5,{children:(0,PY.jsx)(gs,{path:"/*",element:(0,PY.jsx)(B0r,{items:t,loading:r,error:n,socket:e,onReload:i})})})})}var oze=P(z(),1);function j0r({socket:e}){return(0,oze.jsx)(WF,{maxWidth:"lg",sx:{py:3,px:2},children:(0,oze.jsx)(q0r,{socket:e})})}var _i=P(z(),1);function Y0r({socket:e}){return oy("AppRoutes"),(0,_i.jsxs)(_i.Fragment,{children:[(0,_i.jsx)(Aor,{}),(0,_i.jsx)(m5,{children:(0,_i.jsxs)(gs,{element:(0,_i.jsx)(Oit,{socket:e}),children:[(0,_i.jsx)(gs,{path:"sessions",element:(0,_i.jsx)(Ehr,{socket:e})}),(0,_i.jsx)(gs,{path:"backlog/*",element:(0,_i.jsx)(j0r,{socket:e})}),(0,_i.jsx)(gs,{path:"next",element:(0,_i.jsx)(Hir,{sessions:e.sessions,selectSession:e.selectSession})}),(0,_i.jsx)(gs,{path:"news",element:(0,_i.jsx)(Knr,{})}),(0,_i.jsx)(gs,{path:"releases",element:(0,_i.jsx)(kor,{})}),(0,_i.jsx)(gs,{path:"usage",element:(0,_i.jsx)(lmr,{})}),(0,_i.jsx)(gs,{path:"backups",element:(0,_i.jsx)(Vit,{})}),(0,_i.jsx)(gs,{path:"config",element:(0,_i.jsx)(Fat,{})}),(0,_i.jsx)(gs,{path:"updates",element:(0,_i.jsx)(bpr,{reconnecting:e.reconnecting,selectSession:e.selectSession})}),(0,_i.jsx)(gs,{path:"diff",element:(0,_i.jsx)(pnr,{socket:e})}),(0,_i.jsx)(gs,{path:"file",element:(0,_i.jsx)(Vnr,{socket:e})}),(0,_i.jsx)(gs,{path:"*",element:(0,_i.jsx)(M2e,{to:"/sessions",replace:!0})})]})})]})}var g0e=P(ge(),1);var m0e=P(ge(),1);function K0r(e,t,r){if(!e)return"Select a repo to search files.";if(r.error)return"Couldn't search files in this repo.";if(!(r.files.length>0||r.loading))return t?"No matching files.":"No files in this repo."}var Bk=P(z(),1),KVn={display:"flex",gap:1,alignItems:"center",minWidth:0},XVn={display:"flex",gap:1,alignItems:"baseline",minWidth:0,overflow:"hidden"},ZVn={fontFamily:"monospace",fontSize:13,whiteSpace:"nowrap"},QVn={fontFamily:"monospace",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function JVn(e){let t=e.lastIndexOf("/");return t===-1?{dir:"",basename:e}:{dir:e.slice(0,t),basename:e.slice(t+1)}}function X0r({files:e,highlight:t,onHighlight:r,onSelect:n}){return(0,Bk.jsx)(Cp,{dense:!0,sx:{py:0},children:e.map((i,o)=>{let{dir:a,basename:s}=JVn(i);return(0,Bk.jsxs)(fn,{selected:o===t,onMouseEnter:()=>r(o),onClick:()=>n(i),sx:KVn,children:[(0,Bk.jsx)(o9,{path:i}),(0,Bk.jsxs)(le,{sx:XVn,children:[(0,Bk.jsx)(Oe,{component:"span",sx:ZVn,children:s}),(0,Bk.jsx)(Oe,{component:"span",color:"text.secondary",sx:QVn,children:a})]})]},i)})})}var d0e=P(z(),1),eGn={maxHeight:420,overflowY:"auto"},tGn={px:2,py:2,fontSize:13};function Z0r({message:e,files:t,highlight:r,onHighlight:n,onSelect:i}){return(0,d0e.jsx)(le,{sx:eGn,children:e?(0,d0e.jsx)(Oe,{color:"text.secondary",sx:tGn,children:e}):(0,d0e.jsx)(X0r,{files:t,highlight:r,onHighlight:n,onSelect:i})})}var Q0r=P(z(),1),rGn={mt:6,alignSelf:"flex-start"};function h0e({onClose:e,onEntered:t,centered:r=!1,children:n}){return(0,Q0r.jsx)(Ps,{open:!0,onClose:e,maxWidth:"sm",fullWidth:!0,slotProps:{paper:{sx:r?void 0:rGn},transition:{onEntered:t}},children:n})}var p0e=P(ge(),1);var J0r={files:[],loading:!1,error:!1};function eyr(e,t){let[r,n]=(0,p0e.useState)(J0r),i=yr();return(0,p0e.useEffect)(()=>{if(!e){n(J0r);return}let o=!1;return n(s=>({...s,loading:!0})),(async()=>{try{let s=await fetch(tn(`/api/files?cwd=${encodeURIComponent(e)}&q=${encodeURIComponent(t)}`,i));if(!s.ok)throw new Error(`HTTP ${s.status}`);let l=await s.json();if(o)return;n({files:Array.isArray(l.files)?l.files:[],loading:!1,error:!1})}catch{o||n({files:[],loading:!1,error:!0})}})(),()=>{o=!0}},[e,t,i]),r}var LR=P(z(),1);function nGn(e,t,r){let n=new URLSearchParams({path:e});return t&&n.set("cwd",t),t&&r&&n.set("node",r),`/file?${n}`}function tyr({onClose:e}){let{worktreeNode:t}=$n();return(0,LR.jsx)(Xu.Provider,{value:t,children:(0,LR.jsx)(iGn,{onClose:e})})}function iGn({onClose:e}){let{worktreeCwd:t,worktreeNode:r}=$n(),[n,i]=(0,m0e.useState)(""),o=eyr(t,n),a=Xi(),s=(0,m0e.useRef)(null),l=p=>a(nGn(p,t,r)),{highlight:u,setHighlight:f,onKeyDown:d}=Ak(o.files,n,l,e),h=p=>{l(p),e()};return(0,LR.jsxs)(h0e,{onClose:e,onEntered:()=>s.current?.focus(),children:[(0,LR.jsx)(yB,{autoFocus:!0,inputRef:s,value:n,onChange:i,onKeyDown:d,placeholder:"Search files by name..."}),(0,LR.jsx)(Z0r,{message:K0r(t,n,o),files:o.files,highlight:u,onHighlight:f,onSelect:h})]})}function ryr(e){No(Kn("quickOpen").matches,e)}var iyr=P(z(),1);function nyr(){let[e,t]=(0,g0e.useState)(!1);return ryr((0,g0e.useCallback)(()=>t(!0),[])),e?(0,iyr.jsx)(tyr,{onClose:()=>t(!1)}):null}var y0e=P(z(),1);function oyr({notice:e,onClose:t,onView:r}){let n=e?.sessionId??null;return(0,y0e.jsx)(ol,{open:e!==null,autoHideDuration:6e3,onClose:t,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,y0e.jsx)(ni,{severity:"success",variant:"filled",onClose:t,action:n!==null?(0,y0e.jsx)(qt,{color:"inherit",size:"small",onClick:()=>r(n),children:"View"}):void 0,children:e?.message})})}var S0e=P(ge(),1);function ayr(e){let t=["claude"];return e.exposeCodexActions&&t.push("codex"),e.exposePiActions&&t.push("pi"),t}var byr=P(ge(),1);var syr=P(z(),1),lyr=ut((0,syr.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2"}),"Circle");var Fk="0.795.0";var oGn={connected:"success.main",connecting:"warning.main",disconnected:"error.main","version-blocked":"error.main"};function cyr(e){return e?oGn[e]:"success.main"}function uyr(e){return e.split("-")[0].split(".").map(Number)}function fyr(e,t){if(!e||!t||e===t)return;let r=uyr(e),n=uyr(t);for(let i=0;i<Math.max(r.length,n.length);i++){let o=(r[i]??0)-(n[i]??0);if(Number.isNaN(o))return;if(o!==0)return o<0?"behind":"ahead"}}var v0e=P(ge(),1),aze=(0,v0e.createContext)(null);function b0e(){return(0,v0e.useContext)(aze)}var MR=P(z(),1),aGn={height:16,fontSize:10},sGn={opacity:.6,fontSize:"0.85em"};function lGn(e,t){if(t===e.local)return"this machine";let r=e.links.find(n=>n.name===t);return r?r.error?`${r.state}: ${r.error}`:r.state:""}function LY({nodes:e,name:t,showVersion:r=!1}){let n=b0e()??Fk,i=e.links.find(a=>a.name===t),o=fyr(i?.peerVersion,n);return(0,MR.jsx)(lr,{title:lGn(e,t),placement:"right",children:(0,MR.jsxs)(le,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.75},children:[(0,MR.jsx)(lyr,{sx:{fontSize:8,color:cyr(i?.state)}}),t,r&&i?.peerVersion&&(0,MR.jsxs)(le,{component:"span",sx:sGn,children:["v",i.peerVersion]}),o&&(0,MR.jsx)(sn,{label:o,size:"small",color:o==="behind"?"warning":"info",sx:aGn})]})})}var IR=P(z(),1),cGn={opacity:.6},uGn={display:"inline-flex",alignItems:"center",gap:.5,px:.5,border:1,borderStyle:"dashed",borderRadius:1};function dyr({nodes:e,name:t,clone:r}){let n=(0,IR.jsx)(LY,{nodes:e,name:t});return r.kind==="cloned"?n:r.kind==="unavailable"?(0,IR.jsx)(le,{component:"span",sx:cGn,children:n}):(0,IR.jsx)(lr,{title:gB(t,r.cloneTarget),children:(0,IR.jsxs)(le,{component:"span",sx:uGn,children:[(0,IR.jsx)(mB,{sx:{fontSize:14}}),n]})})}var pyr=P(z(),1),fGn={px:1.5,borderRadius:.75,fontSize:12,fontWeight:600,color:"text.secondary","&:hover":{color:"text.primary",bgcolor:"action.hover"},"&[aria-checked='true']":{color:"primary.main",bgcolor:"action.selected"},"&.Mui-focusVisible":{outline:2,outlineColor:"primary.main"}};function hyr({value:e,label:t,checked:r,autoFocus:n,onSelect:i}){return(0,pyr.jsx)(Dn,{role:"radio","aria-checked":r,"data-value":e,tabIndex:r?0:-1,autoFocus:n&&r,onClick:i,sx:fGn,children:t})}var myr={ArrowRight:1,ArrowLeft:-1};function dGn(e,t,r){if(e.key==="Tab"){let n=t+(e.shiftKey?-1:1);return n>=0&&n<r?n:void 0}return(t+myr[e.key]+r)%r}function gyr(e,t,r,n){return i=>{if(i.key==="ArrowUp"||i.key==="ArrowDown"){if(!n)return;i.preventDefault(),n();return}if(i.key!=="Tab"&&!myr[i.key]){db(i);return}let o=dGn(i,e.indexOf(t),e.length);o!==void 0&&(i.preventDefault(),r(e[o]),i.currentTarget.querySelector(`[data-value="${e[o]}"]`)?.focus())}}var yyr=P(ge(),1);function AB(e){return e?.querySelector('[aria-checked="true"]')}function vyr(e,t){(0,yyr.useEffect)(()=>{let r=e.current;if(!r?.contains(document.activeElement))return;let n=AB(r);n&&n!==document.activeElement&&n.focus()},[e,t])}var sze=P(z(),1),hGn={border:1,borderColor:"divider",borderRadius:1,height:40,p:"2px",flexShrink:0};function x0e({label:e,options:t,value:r,onChange:n,optionLabel:i=u=>u,groupRef:o,autoFocus:a,onTrack:s,onToggleRow:l}){return vyr(o,r),(0,sze.jsx)(Rt,{ref:o,direction:"row",role:"radiogroup","aria-label":e,spacing:"2px",onFocus:s,onKeyDown:gyr(t,r,n,l),sx:hGn,children:t.map(u=>(0,sze.jsx)(hyr,{value:u,label:i(u),checked:u===r,autoFocus:a,onSelect:()=>n(u)},u))})}var lze=P(z(),1);function xyr({value:e,onChange:t,cloneState:r}){let{nodes:n,names:i,visible:o}=Bu(),a=(0,byr.useRef)(null);return!o||!n||!e?null:(0,lze.jsx)(x0e,{label:"Machine",options:i,value:e,onChange:t,optionLabel:s=>(0,lze.jsx)(dyr,{nodes:n,name:s,clone:r(s)}),groupRef:a,autoFocus:!1,onTrack:()=>{}})}var Syr=P(z(),1);function Tyr({value:e,onChange:t,placeholder:r,inputRef:n,autoFocus:i,onTrack:o}){return(0,Syr.jsx)(Yn,{value:e,onChange:a=>t(a.target.value),onKeyDown:db,onFocus:o,onSelect:o,inputRef:n,placeholder:r,autoFocus:i,fullWidth:!0,multiline:!0,minRows:3,maxRows:12,slotProps:{htmlInput:{"aria-label":"Prompt"},input:{sx:{fontSize:14}}}})}var _yr=P(ge(),1);var B2={draft:{placeholder:"Describe the backlog item to draft...",submitLabel:"Start draft",sessionMode:"assist-draft"},bug:{placeholder:"Describe the bug: what happened, what you expected...",submitLabel:"File bug",sessionMode:"assist-bug"},prompt:{placeholder:Kee,submitLabel:"Start session"},design:{placeholder:"Describe the design task...",submitLabel:"Start design"}},Cyr=Object.keys(B2);var cze=P(z(),1);function wyr({anchor:e,harness:t,harnesses:r,onPick:n,onClose:i}){return(0,cze.jsx)(Dl,{open:e!==null,anchorEl:e,onClose:i,slotProps:{list:{dense:!0,"aria-label":"Harness"}},children:r.map(o=>(0,cze.jsx)(fn,{role:"menuitemradio","aria-checked":o===t,selected:o===t,onClick:()=>{n(o),i()},sx:{fontSize:13},children:gu(o)},o))})}var DR=P(z(),1);function kyr(e){return t=>t==="prompt"&&e?(0,DR.jsxs)(DR.Fragment,{children:["prompt",(0,DR.jsx)(le,{component:"span",sx:{fontWeight:400,whiteSpace:"pre"},children:` \xB7 ${gu(e)}`}),(0,DR.jsx)(Up,{sx:{fontSize:18,mr:-.75}})]}):t}var NR=P(z(),1);function Eyr({draft:e,harness:t,harnesses:r,focus:n}){let[i,o]=(0,_yr.useState)(null),a=e.mode==="prompt"&&r.length>1,s=()=>o(AB(n.modeRef.current)??null),l=u=>{a&&u==="prompt"?s():e.setMode(u)};return(0,NR.jsxs)(NR.Fragment,{children:[(0,NR.jsx)(x0e,{label:"Mode",options:Cyr,value:e.mode,onChange:l,optionLabel:kyr(r.length>1?t:void 0),groupRef:n.modeRef,autoFocus:n.autoFocus==="mode",onTrack:n.trackMode,onToggleRow:a?s:void 0}),(0,NR.jsx)(wyr,{anchor:i,harness:t,harnesses:r,onPick:e.setHarness,onClose:()=>o(null)})]})}var Fyr=P(ge(),1);var uze=P(z(),1),pGn={zIndex:e=>e.zIndex.modal+1};function Ryr({open:e,anchor:t,children:r}){return(0,uze.jsx)(HA,{open:e,anchorEl:t,placement:"bottom-start",sx:pGn,children:(0,uze.jsx)(an,{sx:{maxHeight:240,overflowY:"auto",width:t?.clientWidth},onMouseDown:n=>n.preventDefault(),children:r})})}function Ayr(e){return{htmlInput:{role:"combobox","aria-label":"Repo","aria-expanded":e},input:{sx:{fontSize:13,height:40}}}}var Pyr=P(bF(),1);function Lyr({open:e,highlighted:t,accept:r,close:n,navigate:i,openList:o}){return a=>{if(!e){if(a.key==="ArrowDown"){a.preventDefault(),o();return}db(a);return}if(a.key!=="Escape"){if(a.key==="Enter"){if(a.preventDefault(),t===void 0)return;(0,Pyr.flushSync)(()=>{r(t),n()}),db(a);return}if(a.key!=="Tab"){i(a);return}t!==void 0&&r(t),n()}}}function Myr(e,t){let r=t.trim().toLowerCase();return r?e.filter(n=>J1(n).toLowerCase().includes(r)):e}var fze=P(ge(),1);function Iyr(){let[e,t]=(0,fze.useState)(!1),[r,n]=(0,fze.useState)("");return{open:e,query:r,show:()=>t(!0),filterBy:i=>{n(i),t(!0)},close:()=>{t(!1),n("")}}}var Nyr=P(ge(),1);var Dyr=e=>e?J1(e):"";function Oyr(e){let[t,r]=(0,Nyr.useState)(()=>Dyr(e));return{text:t,setText:r,showRepo:n=>r(Dyr(n))}}function Byr(e,t,r){let n=Iyr(),i=Oyr(t),o=Myr(e,n.query),a=f=>{r(f),i.showRepo(f)},s=Ak(o,n.query,a,n.close),l=()=>s.setHighlight(Math.max(e.indexOf(t),0)),u=()=>{l(),n.show()};return{open:n.open,text:i.text,filtered:o,highlight:s.highlight,setHighlight:s.setHighlight,onKeyDown:Lyr({open:n.open,highlighted:o[s.highlight],accept:a,close:n.close,navigate:s.onKeyDown,openList:u}),onClick:()=>{n.open||u()},onType:f=>{i.setText(f),n.filterBy(f)},onFocus:l,onBlur:()=>{n.close(),i.showRepo(t)},pick:f=>{a(f),n.close()}}}var PB=P(z(),1);function $yr({repos:e,value:t,onChange:r,inputRef:n,autoFocus:i,onTrack:o}){let a=Byr(e,t,r),s=(0,Fyr.useRef)(null);return(0,PB.jsxs)(le,{ref:s,sx:{flex:1,minWidth:0},children:[(0,PB.jsx)(Yn,{value:a.text,onChange:l=>a.onType(l.target.value),onFocus:l=>{l.target.select(),a.onFocus(),o()},inputRef:n,autoFocus:i,onClick:a.onClick,onBlur:a.onBlur,onKeyDown:a.onKeyDown,placeholder:"Repo",size:"small",fullWidth:!0,slotProps:Ayr(a.open)}),(0,PB.jsx)(Ryr,{open:a.open,anchor:s.current,children:(0,PB.jsx)(Kge,{repos:a.filtered,selected:t,highlight:a.highlight,onHighlight:a.setHighlight,onSelect:a.pick})})]})}var $k=P(z(),1);function zyr({cloneState:e,...t}){let{draft:r,focus:n}=t,{repos:i}=$n();return(0,$k.jsxs)(Rt,{spacing:1,sx:{p:1},children:[(0,$k.jsx)(Tyr,{value:r.prompt,onChange:r.setPrompt,placeholder:B2[r.mode].placeholder,inputRef:n.promptRef,autoFocus:n.autoFocus==="prompt",onTrack:n.trackPrompt}),(0,$k.jsxs)(Rt,{direction:"row",spacing:1,sx:{alignItems:"flex-start"},children:[(0,$k.jsx)($yr,{repos:i,value:r.cwd,onChange:r.setCwd,inputRef:n.repoRef,autoFocus:n.autoFocus==="repo",onTrack:n.trackRepo}),(0,$k.jsx)(Eyr,{...t})]}),(0,$k.jsx)(xyr,{value:r.node,onChange:r.setNode,cloneState:e})]})}var LB=P(z(),1),mGn=["Enter start","Shift+Enter newline","Esc close"],gGn={alignItems:"center",px:1.5,py:1,borderTop:1,borderColor:"divider",bgcolor:"action.hover"};function Hyr({submitLabel:e,disabled:t=!1}){return(0,LB.jsxs)(Rt,{direction:"row",spacing:1.5,sx:gGn,children:[(0,LB.jsx)(Rt,{direction:"row",spacing:1.5,sx:{mr:"auto"},children:mGn.map(r=>(0,LB.jsx)(Oe,{variant:"caption",color:"text.secondary",children:r},r))}),(0,LB.jsx)(qt,{type:"submit",variant:"contained",size:"small",disabled:t,children:e})]})}function Uyr({mode:e,harness:t,prompt:r,cwd:n,node:i},o){let a=n||void 0,s=i?[i]:[];if(e==="prompt"){t==="claude"?o.onCreate(r,a,...s):o.onCreateHarness(t,r,a,...s);return}if(e==="design"){o.onCreateDesign(r,a,...s);return}let l=i?[{node:i}]:[];Ent(B2[e].sessionMode,n,(u,f)=>o.onCreateAssist(u,f,...l),()=>{},r)}function Wyr(e,t,r,n){return r.kind==="blocked"?!1:r.kind==="clone"?(Hge(r.prompt,n.onCreateAssist),!0):(Uyr({mode:e.mode,harness:t,prompt:e.prompt,cwd:r.cwd,node:e.node},n),e.clear(),!0)}var OR=P(ge(),1);function Vyr(e,t){let r=(0,OR.useRef)(e),n=(0,OR.useRef)(null),i=(0,OR.useRef)(null),o=(0,OR.useRef)(null),a=(0,OR.useCallback)(u=>{n.current=u;let{field:f,selectionStart:d,selectionEnd:h}=r.current;u&&f==="prompt"&&u.setSelectionRange(d,h)},[]),s=u=>{let f=u.target;t({field:"prompt",selectionStart:f.selectionStart,selectionEnd:f.selectionEnd})},l=()=>{if(o.current?.closest("form")?.contains(document.activeElement))return;let{field:u}=r.current;({repo:i.current,mode:AB(o.current),prompt:n.current}[u]??n.current)?.focus()};return{autoFocus:e.field,promptRef:a,repoRef:i,modeRef:o,trackPrompt:s,trackRepo:()=>t({...e,field:"repo"}),trackMode:()=>t({...e,field:"mode"}),restore:l}}function yGn(e,t,r){return e?r.kind==="cloned"?{kind:"launch",cwd:r.cwd}:r.kind==="clonable"?{kind:"clone",prompt:Zge(r,t)}:{kind:"blocked"}:{kind:"launch",cwd:e}}function Gyr(e,t){let{names:r,visible:n}=Bu(),i=qge(t,n?r:[void 0]);return{cloneState:i,target:yGn(t,e,i(e))}}var MB=P(z(),1);function qyr({draft:e,launchers:t,onClose:r}){let n=Vyr(e.focus,e.setFocus),i=ayr(kk()),o=i.includes(e.harness)?e.harness:"claude",{target:a,cloneState:s}=Gyr(e.node,e.cwd),l=u=>{u.preventDefault(),Wyr(e,o,a,t)&&r()};return(0,MB.jsx)(h0e,{onClose:r,onEntered:n.restore,centered:!0,children:(0,MB.jsxs)("form",{onSubmit:l,children:[(0,MB.jsx)(zyr,{draft:e,harness:o,harnesses:i,focus:n,cloneState:s}),(0,MB.jsx)(Hyr,{submitLabel:a.kind==="clone"?"Clone":B2[e.mode].submitLabel,disabled:a.kind==="blocked"})]})})}var T0e=P(ge(),1);function jyr(e){let[t,r]=(0,T0e.useState)(null);return(0,T0e.useEffect)(()=>{let n=!1;return(async()=>{let i="draft";try{let o=e?`?cwd=${encodeURIComponent(e)}`:"",s=await(await fetch(`/api/new-session-defaults${o}`)).json();Object.hasOwn(B2,s?.mode)&&(i=s.mode)}catch{}n||r(i)})(),()=>{n=!0}},[e]),t}function Yyr(e,{visible:t,names:r,selected:n}){if(t)return e&&r.includes(e)?e:n}var F2=P(ge(),1),Kyr={field:"prompt",selectionStart:0,selectionEnd:0};function Xyr(){let[e,t]=(0,F2.useState)(""),[r,n]=(0,F2.useState)(),[i,o]=(0,F2.useState)(),[a,s]=(0,F2.useState)("claude"),[l,u]=(0,F2.useState)(),[f,d]=(0,F2.useState)(Kyr),h=(0,F2.useCallback)(()=>{t(""),n(void 0),o(void 0),u(void 0),d(Kyr)},[]);return{prompt:e,cwd:r,mode:i,harness:a,node:l,focus:f,setPrompt:t,setNode:u,setCwd:n,setMode:o,setHarness:s,setFocus:d,clear:h}}function Zyr(e=jyr){let{selectedCwd:t}=$n(),r=Bu(),n=Xyr(),i=n.cwd??t,o=e(i);return o?{...n,cwd:i,mode:n.mode??o,node:Yyr(n.node,r)}:null}function Qyr(e){No(Kn("newSession").matches,e)}var Jyr=P(ge(),1);function e1r(e,t){let{selectedCwd:r}=$n(),[n,i]=Pc(),o=n.get("new"),a=n.get("newCwd")??r,{setPrompt:s,setCwd:l,setFocus:u}=e??{};(0,Jyr.useEffect)(()=>{o===null||!s||!l||!u||(o&&(s(o),l(a),u({field:"prompt",selectionStart:o.length,selectionEnd:o.length})),t(),i(f=>(f.delete("new"),f.delete("newCwd"),f),{replace:!0}))},[o,a,s,l,u,t,i])}var r1r=P(z(),1);function t1r({launchers:e}){let[t,r]=(0,S0e.useState)(!1),n=Zyr(),i=(0,S0e.useCallback)(()=>r(!0),[]);return Qyr(i),e1r(n,i),!t||!n?null:(0,r1r.jsx)(qyr,{draft:n,launchers:e,onClose:()=>r(!1)})}var C0e=P(z(),1);function n1r({reconnecting:e}){return(0,C0e.jsx)(ol,{open:e,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,C0e.jsx)(ni,{severity:"info",variant:"filled",icon:(0,C0e.jsx)(mo,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var iv=P(z(),1);function i1r({socket:e,onViewLaunchedSession:t}){return(0,iv.jsxs)(iv.Fragment,{children:[(0,iv.jsx)(nyr,{}),(0,iv.jsx)(t1r,{launchers:{onCreate:e.createSession,onCreateDesign:e.createDesignSession,onCreateHarness:e.createHarnessSession,onCreateAssist:e.createAssistSession}}),(0,iv.jsx)(n1r,{reconnecting:e.reconnecting}),(0,iv.jsx)(vu,{error:e.error,onClose:e.clearError}),(0,iv.jsx)(oyr,{notice:e.success,onClose:e.clearSuccess,onView:t})]})}var f0=P(ge(),1);var vGn=6e4;function o1r(e){let t=e.nodes?.local,r=e.names.join(`
|
|
3976
|
+
`,vmr={...ymr,borderColor:"warning.main",borderLeft:4,borderLeftColor:"warning.main",bgcolor:e=>Ea(e.palette.warning.main,.08)},hWn={...vmr,borderLeftColor:"transparent",backgroundImage:e=>`repeating-linear-gradient(to bottom, ${e.palette.warning.main} 0 ${mmr}px, transparent ${mmr}px ${q$e}px)`,backgroundOrigin:"border-box",backgroundRepeat:"repeat-y",backgroundSize:`4px ${q$e}px`,animation:`${dWn} 0.9s linear infinite`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}},gmr={"& .MuiButtonBase-root:focus-visible":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:"2px"}},Z1={card:ymr,inProgressCard:vmr,inProgressRunningCard:hWn,main:{minWidth:0,textAlign:"left"},stretchedNameLink:{display:"block",fontWeight:500,color:"text.primary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",...fWn},meta:{display:"flex",alignItems:"center",gap:1,...pmr,width:"fit-content",maxWidth:"100%",fontSize:"0.75rem",color:"text.secondary","& a, & p":{fontSize:"0.75rem"},...gmr},id:{color:"text.disabled"},actions:{display:"flex",alignItems:"center",gap:1,flexShrink:0,...pmr,...gmr}};function Nge(e){let t=e.peakContextPct>0?` \xB7 \u2593 ${Math.round(e.peakContextPct)}%`:"";return`\u2191 ${Hd(e.tokensUp)} \u2193 ${Hd(e.tokensDown)} \xB7 \u23F1 ${o0(e.activeMs)}${t}`}var xmr=P(z(),1),pWn={width:6,height:6,borderRadius:"50%",bgcolor:"currentColor",flexShrink:0};function bmr(){return(0,xmr.jsx)(le,{component:"span",sx:pWn})}var vY=P(z(),1),Tmr={display:"inline-flex",alignItems:"center",gap:.625,color:"warning.main",fontWeight:500,fontSize:"0.75rem",whiteSpace:"nowrap",borderRadius:1};function Smr({item:e,openSession:t,onSelectSession:r}){let n=Xi();if(e.status!=="in-progress"||e.currentPhase==null)return null;let i=`phase ${e.currentPhase} of ${e.totalPhases??e.currentPhase}`,o=(0,vY.jsx)(bmr,{});if(!t)return(0,vY.jsxs)(le,{component:"span",sx:Tmr,children:[o,i]});let a=()=>{r?.(t.id),n("/sessions")};return(0,vY.jsxs)(Dn,{sx:Tmr,title:`Open the ${t.status} session`,onClick:a,children:[o,i]})}var op=P(z(),1),mWn={display:"inline-flex",alignItems:"center",gap:.5},gWn={width:8,height:8,borderRadius:"50%",flexShrink:0},yWn={whiteSpace:"nowrap"};function vWn({type:e}){let t=_ge[e];return(0,op.jsxs)(le,{component:"span",sx:mWn,children:[(0,op.jsx)(le,{component:"span",sx:{...gWn,bgcolor:`${t}.main`}}),e]})}function bWn({item:e}){return e.usageTotal?(0,op.jsx)(lr,{title:Nge(e.usageTotal),children:(0,op.jsx)(le,{component:"span",sx:yWn,children:`\u23F1 ${o0(e.usageTotal.activeMs)}`})}):null}function Cmr({item:e,openSession:t,onSelectSession:r}){return(0,op.jsxs)(le,{sx:Z1.meta,children:[(0,op.jsx)(le,{component:"span",sx:Z1.id,children:so(e.id)}),(0,op.jsx)(vWn,{type:e.type}),(0,op.jsx)(Smr,{item:e,openSession:t,onSelectSession:r}),(0,op.jsx)(pP,{jiraKey:e.jiraKey}),(0,op.jsx)(hP,{githubIssue:e.githubIssue,variant:"icon"}),(0,op.jsx)(bWn,{item:e})]})}function wmr(e,t){return e.filter(r=>AP(r)?.itemId===t).reduce((r,n)=>r&&r.startedAt>=n.startedAt?r:n,void 0)}var _mr=P(z(),1),xWn={todo:"\u25CB","in-progress":"\u25D4",done:"\u25CF",wontdo:"\u2715"},TWn={todo:"text.disabled","in-progress":"warning.main",done:"success.main",wontdo:"error.main"};function SWn(e){return{fontSize:"1.125rem",flexShrink:0,color:TWn[e]}}function kmr({status:e}){return(0,_mr.jsx)(Oe,{sx:SWn(e),children:xWn[e]})}function Oge(e){return e.status==="todo"||e.status==="in-progress"}function CWn(e){if(e.status==="done")return e.totalPhases;if(e.status==="in-progress")return e.currentPhase}function wWn(e,t,r){return r?"complete":e<t?"done":e===t?"current":"remaining"}function Emr(e){let t=e.totalPhases,r=CWn(e);if(!t||r==null)return;let n=e.status==="done";return{reached:r,total:t,segments:Array.from({length:t},(i,o)=>({phase:o+1,kind:wWn(o+1,r,n)}))}}var pB=P(z(),1),kWn={done:"text.secondary",current:"warning.main",remaining:"divider",complete:"success.main"},_Wn={display:"inline-flex",alignItems:"center",gap:.5,flexShrink:0},EWn={fontSize:"0.6875rem",color:"text.secondary",fontVariantNumeric:"tabular-nums"},RWn={display:"inline-flex",alignItems:"center",gap:"2px"},AWn={width:6,height:12,borderRadius:"1px",flexShrink:0};function Rmr({item:e}){let t=Emr(e);return t?(0,pB.jsxs)(le,{sx:_Wn,title:`Phase ${t.reached} of ${t.total}`,children:[(0,pB.jsx)(le,{component:"span",sx:EWn,children:`${t.reached}/${t.total}`}),(0,pB.jsx)(le,{component:"span",sx:RWn,"aria-hidden":!0,children:t.segments.map(r=>(0,pB.jsx)(le,{component:"span","data-segment":r.kind,sx:{...AWn,bgcolor:kWn[r.kind]}},r.phase))})]}):null}var Ymr=P(ge(),1);var $ge=P(ge(),1);var bY=P(z(),1);function Amr({tooltip:e,disabled:t,onClick:r}){return(0,bY.jsx)(lr,{title:e,children:(0,bY.jsx)(le,{component:"span",sx:{display:"flex"},children:(0,bY.jsx)(qt,{startIcon:(0,bY.jsx)(Fp,{}),disabled:t,onClick:r,children:"Build"})})})}var j$e=P(z(),1);function Bge(e){let t=[];return e.exposeCodexActions&&t.push({kind:"codex",label:"with Codex"}),e.exposePiActions&&t.push({kind:"pi",label:"with pi"}),t}function Fge({anchorEl:e,open:t,onClose:r,options:n,onSelect:i,stop:o}){return(0,j$e.jsx)(Dl,{anchorEl:e,open:t,onClose:r,onClick:o,children:n.map(a=>(0,j$e.jsx)(fn,{onClick:s=>{o(s),i(a.kind)},children:a.label},a.kind))})}var Q1=P(z(),1);function Pmr({tooltip:e,disabled:t,onBuild:r,onSelectHarness:n}){let i=Bge(kk()),o=(0,$ge.useRef)(null),[a,s]=(0,$ge.useState)(!1),l=u=>u.stopPropagation();return(0,Q1.jsxs)(Q1.Fragment,{children:[(0,Q1.jsxs)(tT,{ref:o,variant:"contained",color:"success",size:"small",disabled:t,children:[(0,Q1.jsx)(Amr,{tooltip:e,disabled:t,onClick:u=>{l(u),r()}}),i.length>0&&(0,Q1.jsx)(qt,{"aria-label":"Build with a different harness",onClick:u=>{l(u),s(!0)},children:(0,Q1.jsx)(Up,{})})]}),(0,Q1.jsx)(Fge,{anchorEl:o.current,open:a,onClose:()=>s(!1),options:i,onSelect:u=>{s(!1),n(u)},stop:l})]})}var Lmr=P(z(),1),mB=ut((0,Lmr.jsx)("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96M19 18H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95C8.08 7.14 9.94 6 12 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11c1.56.1 2.78 1.41 2.78 2.96 0 1.65-1.35 3-3 3m-5.55-8h-2.9v3H8l4 4 4-4h-2.55z"}),"CloudDownloadOutlined");var Rk=P(z(),1),PWn={vertical:"bottom",horizontal:"center"};function zge({clone:e}){let{prompt:t,confirm:r,cancel:n,error:i,dismissError:o}=e;return(0,Rk.jsxs)(Rk.Fragment,{children:[t&&(0,Rk.jsx)(vo,{title:"Clone repository",message:`Clone ${t.displayName} over SSH into ${t.cloneTarget}${t.node?` on ${t.node}`:""}?`,confirmLabel:"Clone",confirmColor:"primary",onConfirm:r,onCancel:n}),(0,Rk.jsx)(ol,{open:!!i,autoHideDuration:8e3,onClose:o,anchorOrigin:PWn,children:(0,Rk.jsx)(ni,{severity:"error",onClose:o,variant:"filled",children:i})})]})}var l0=P(ge(),1);function Y$e(e){return["backlog","clone",e]}function Hge(e,t){t(Y$e(e.origin),void 0,{title:`Clone ${e.displayName}`,subtitle:e.origin,...e.node&&{node:e.node}})}function Mmr(e,t){return!!e&&e.length===t.length&&e.every((r,n)=>r===t[n])}function Imr(e,t,r){let n=Y$e(t.origin),i=new Set(e.filter(o=>Mmr(o.assistArgs,n)).map(o=>o.id));return Hge(t,r),{args:n,target:t.cloneTarget,node:t.node,preexisting:i}}function Dmr(e,t){if(!t.id){let n=e.find(i=>Mmr(i.assistArgs,t.args)&&!t.preexisting.has(i.id));return n?{type:"latch",id:n.id}:null}let r=e.find(n=>n.id===t.id);return r?r.status==="done"?{type:"done"}:r.status==="error"?{type:"error",message:r.error||"Clone failed."}:null:null}function Uge(e){let{setSelectedCwd:t}=$n(),{launchAssist:r}=$l(),[n,i]=(0,l0.useState)(null),[o,a]=(0,l0.useState)(null),[s,l]=(0,l0.useState)(null),u=(0,l0.useCallback)(p=>{l(null),i(p)},[]),f=(0,l0.useCallback)(()=>i(null),[]),d=(0,l0.useCallback)(()=>l(null),[]),h=(0,l0.useCallback)(()=>{n&&(a(Imr(e,n,r)),i(null))},[n,e,r]);return(0,l0.useEffect)(()=>{if(!o)return;let p=Dmr(e,o);p&&(p.type==="latch"?a(m=>m&&{...m,id:p.id}):p.type==="done"?(o.node?t(o.target,o.node):t(o.target),a(null)):(l(p.message),a(null)))},[e,o,t]),{prompt:n,requestClone:u,confirm:h,cancel:f,error:s,dismissError:d}}function gB(e,t){return`Not cloned ${e?`on ${e}`:"locally"} \u2014 click to clone into ${t}`}var P2=P(z(),1),LWn={border:1,borderStyle:"dashed"};function Nmr({target:e}){let t=Uge(Dge());return(0,P2.jsxs)(P2.Fragment,{children:[(0,P2.jsx)(lr,{title:gB(e.node,e.cloneTarget),children:(0,P2.jsx)(ir,{"aria-label":"Clone",size:"small",sx:LWn,onClick:r=>{r.stopPropagation(),t.requestClone(e)},children:(0,P2.jsx)(mB,{fontSize:"small"})})}),(0,P2.jsx)(zge,{clone:t})]})}function Omr(e,t,r,n){let i=r.node?[{node:r.node}]:[];e(["backlog","run",so(t),...n],r.cwd,...i)}var xY=P(z(),1);function Bmr({tooltip:e,disabled:t,onClick:r}){return(0,xY.jsx)(lr,{title:e,children:(0,xY.jsx)("span",{children:(0,xY.jsx)(ir,{"aria-label":"Build",color:"success",size:"small",disabled:t,onClick:r,children:(0,xY.jsx)(Fp,{})})})})}function MWn(e,t){let r=e.assistArgs;if(r?.[0]!=="backlog"||r[1]!=="run"||!r[2])return!1;try{return _J(r[2])===t}catch{return!1}}function Fmr(e,t){return e.find(r=>r.status!=="done"&&r.status!=="error"&&(MWn(r,t)||AP(r)?.itemId===t))}var Wge=P(ge(),1),K$e=(0,Wge.createContext)({nodes:null,names:[],visible:!1,selected:void 0,select:()=>{}});function Bu(){return(0,Wge.useContext)(K$e)}function Vge(){let{nodes:e,selected:t}=Bu();return t&&t!==e?.local?t:void 0}var Hmr=P(ge(),1);var Gge=P(ge(),1);function $mr(e,t){return Promise.all(t.map(async r=>{let n=await IWn(e,r).catch(()=>({}));return[r,n]}))}async function IWn(e,t){let r=await fetch(tn(`/api/repo-location?origin=${encodeURIComponent(e)}`,t||void 0));return r.ok?r.json():{}}var X$e="\0";function zmr(e,t){let[r,n]=(0,Gge.useState)(null);return(0,Gge.useEffect)(()=>{if(!e||!t)return;let i=!1;return $mr(e,t.split(X$e)).then(o=>{i||n({origin:e,byNode:Object.fromEntries(o)})}),()=>{i=!0}},[e,t]),r}function qge(e,t){let{cloneOn:r,originOf:n}=$n(),i=e?n(e):void 0,o=t.filter(s=>!e||!r(e,s)).map(s=>s??"").join(X$e),a=zmr(i,o);return(0,Hmr.useCallback)(s=>{let l=e?r(e,s):void 0;if(l)return{kind:"cloned",cwd:l};let u=a&&a.origin===i?a.byNode[s??""]:void 0;return u?.cwd?{kind:"cloned",cwd:u.cwd}:i&&u?.cloneTarget?{kind:"clonable",origin:i,cloneTarget:u.cloneTarget}:{kind:"unavailable"}},[e,r,i,a])}var vB=P(ge(),1);var Umr=P(z(),1);function yB({inputRef:e,value:t,onChange:r,onKeyDown:n,placeholder:i,autoFocus:o}){return(0,Umr.jsx)(Yn,{autoFocus:o,inputRef:e,value:t,onChange:a=>r(a.target.value),onKeyDown:n,placeholder:i,size:"small",fullWidth:!0,slotProps:{input:{sx:{fontSize:12}}},sx:{p:.5}})}var jge=P(ge(),1);function Yge(e){let t=(0,jge.useRef)(null);return(0,jge.useEffect)(()=>{e&&t.current?.scrollIntoView({block:"nearest"})},[e]),t}var Vmr=P(z(),1);function Wmr({cwd:e,selected:t,highlighted:r,onHover:n,onSelect:i}){let o=Yge(r);return(0,Vmr.jsx)(fn,{ref:o,selected:t,title:e,onClick:i,onMouseEnter:n,sx:{fontSize:12,display:"flex",justifyContent:"space-between",gap:1,...r&&{bgcolor:"action.hover"}},children:J1(e)})}var Z$e=P(z(),1);function Kge({repos:e,selected:t,highlight:r,onHighlight:n,onSelect:i}){return(0,Z$e.jsx)(Cp,{dense:!0,children:e.map((o,a)=>(0,Z$e.jsx)(Wmr,{cwd:o,selected:o===t,highlighted:a===r,onHover:()=>n(a),onSelect:()=>i(o)},o))})}var Xge=P(ge(),1);function Ak(e,t,r,n){let[i,o]=(0,Xge.useState)(0);return(0,Xge.useEffect)(()=>{o(0)},[t]),{highlight:i,setHighlight:o,onKeyDown:s=>{let l=e.length;if(s.key==="ArrowDown")s.preventDefault(),l>0&&o(u=>(u+1)%l);else if(s.key==="ArrowUp")s.preventDefault(),l>0&&o(u=>(u-1+l)%l);else if(s.key==="Enter"){s.preventDefault();let u=e[i];u!==void 0&&(r(u),n())}else s.key==="Escape"&&(s.preventDefault(),n())}}}var TY=P(z(),1);function J1(e){let t=e.includes("\\")?"\\":"/";return e.split(t).filter(Boolean).pop()??e}var DWn={...OP};function Gmr({repos:e,selected:t,onSelect:r,close:n}){let[i,o]=(0,vB.useState)(""),a=(0,vB.useRef)(null);(0,vB.useEffect)(()=>{a.current?.focus()},[]);let s=i.trim().toLowerCase(),l=s?e.filter(p=>p.toLowerCase().includes(s)):e,{highlight:u,setHighlight:f,onKeyDown:d}=Ak(l,s,r,n);return(0,TY.jsxs)(an,{elevation:4,sx:DWn,children:[(0,TY.jsx)(yB,{inputRef:a,value:i,onChange:o,onKeyDown:d,placeholder:"Filter repos..."}),(0,TY.jsx)(Kge,{repos:l,selected:t,highlight:u,onHighlight:f,onSelect:p=>{r(p),n()}})]})}function Zge(e,t){return{origin:e.origin,cloneTarget:e.cloneTarget,displayName:J1(e.origin),node:t}}function qmr(){let e=as(),t=Vge(),r=qge(e??"",[t])(t);return e?r.kind==="cloned"?{kind:"ready",cwd:r.cwd,node:t}:r.kind==="clonable"?{kind:"clone",prompt:Zge(r,t)}:{kind:"unavailable",node:t??"this machine"}:{kind:"ready",node:t}}function jmr(e,t){return t?`Not cloned on ${t}`:e?"Already running \u2014 close that session to run it again":"Build"}var Qge=P(z(),1);function Jge({itemId:e,compact:t=!1}){let{launchAssist:r}=$l(),n=qmr(),i=Fmr(Dge(),e),[o,a]=(0,Ymr.useState)(!1);if(n.kind==="clone")return(0,Qge.jsx)(Nmr,{target:n.prompt});let s=n.kind==="unavailable"?n.node:void 0,l=o||i!==void 0||!!s,u=d=>{l||n.kind!=="ready"||(a(!0),Omr(r,e,n,d))},f=jmr(i!==void 0,s);return t?(0,Qge.jsx)(Bmr,{tooltip:f,disabled:l,onClick:d=>{d.stopPropagation(),u([])}}):(0,Qge.jsx)(Pmr,{tooltip:f,disabled:l,onBuild:()=>u([]),onSelectHarness:d=>u(["--harness",d])})}var Kmr=P(ge(),1);var bB=P(z(),1);function Xmr({itemId:e,starred:t,onToggled:r}){let n=as(),i=yr(),[o,a]=(0,Kmr.useState)(!1);return(0,bB.jsx)(lr,{title:t?"Unstar":"Star",children:(0,bB.jsx)("span",{children:(0,bB.jsx)(ir,{"aria-label":t?"Unstar":"Star","aria-pressed":t,color:t?"warning":"default",size:"small",disabled:o,onClick:async l=>{if(l.stopPropagation(),!o){a(!0);try{await HJ(e,!t,n,i),await r()}finally{a(!1)}}},children:t?(0,bB.jsx)(qee,{}):(0,bB.jsx)(jee,{})})})})}var Zmr=P(z(),1),Qmr=ut((0,Zmr.jsx)("path",{d:"M22 7h-9v2h9zm0 8h-9v2h9zM5.54 11 2 7.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41zm0 8L2 15.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41z"}),"Checklist");var SY=P(z(),1),NWn={display:"inline-flex",alignItems:"center",gap:.375,flexShrink:0,fontSize:"0.71875rem",color:"text.secondary","& svg":{fontSize:14}};function Jmr({count:e}){return e<1?null:(0,SY.jsx)(lr,{title:`${e} incomplete subtask${e===1?"":"s"}`,children:(0,SY.jsxs)(le,{component:"span",sx:NWn,children:[(0,SY.jsx)(Qmr,{}),e]})})}var L2=P(z(),1);function egr({item:e,onReload:t}){return(0,L2.jsxs)(L2.Fragment,{children:[(0,L2.jsx)(Jmr,{count:e.incompleteSubtasks}),(0,L2.jsx)(Rmr,{item:e}),(0,L2.jsx)(Xmr,{itemId:e.id,starred:e.starred,onToggled:t}),Oge(e)&&(0,L2.jsx)(Jge,{itemId:e.id,compact:!0})]})}var M2=P(z(),1);function OWn(e,t){return e?t?Z1.inProgressRunningCard:Z1.inProgressCard:Z1.card}function tgr({item:e,to:t,socket:r,onReload:n}){let i=wmr(r.sessions,e.id),o=e.status==="in-progress",a=o&&i?.status==="running";return(0,M2.jsxs)(le,{sx:OWn(o,a),children:[(0,M2.jsx)(kmr,{status:e.status}),(0,M2.jsxs)(le,{sx:Z1.main,children:[(0,M2.jsx)(xn,{component:ys,to:t,underline:"none",title:e.name,sx:Z1.stretchedNameLink,children:e.name}),(0,M2.jsx)(Cmr,{item:e,openSession:i,onSelectSession:r.selectSession})]}),(0,M2.jsx)(le,{sx:Z1.actions,children:(0,M2.jsx)(egr,{item:e,onReload:n})})]})}var ngr=P(z(),1),BWn={all:"items",story:"stories",bug:"bugs"},FWn={textAlign:"center",color:"text.disabled",py:6,px:2};function rgr({query:e,typeFilter:t}){let r=BWn[t],n=e.trim()?`No ${r} match your search.`:`No ${r} in the backlog.`;return(0,ngr.jsx)(le,{sx:FWn,children:n})}var ev=P(z(),1),$Wn={display:"flex",justifyContent:"center",py:6};function igr({loading:e,error:t,query:r,typeFilter:n,items:i,socket:o,itemPath:a,onReload:s}){if(e)return(0,ev.jsx)(le,{sx:$Wn,children:(0,ev.jsx)(mo,{})});let l=t&&(0,ev.jsx)(ni,{severity:"error",children:t});return i.length===0?l||(0,ev.jsx)(rgr,{query:r,typeFilter:n}):(0,ev.jsxs)(ev.Fragment,{children:[l,i.map(u=>(0,ev.jsx)(tgr,{item:u,to:a(u),socket:o,onReload:s},u.id))]})}var xB=P(ge(),1);function zWn(e){let t=new URLSearchParams;for(let n of e)t.append("knownCwd",n);let r=t.toString();return r?`/api/backlog/summary?${r}`:"/api/backlog/summary"}async function ogr({cwd:e,node:t,knownCwds:r,signal:n}){return(await fetch(Fl(zWn(r),e,t),{signal:n})).json()}function agr(){let{repos:e,selectedCwd:t,cloneOn:r}=$n(),n=Vge(),[i,o]=(0,xB.useState)([]),a=(0,xB.useMemo)(()=>e.map(l=>r(l,n)).filter(l=>!!l),[e,r,n]),s=t?r(t,n):void 0;return(0,xB.useEffect)(()=>{let l=new AbortController;return ogr({cwd:s,node:n,knownCwds:a,signal:l.signal}).then(o).catch(()=>{}),()=>l.abort()},[a,s,n]),{summaries:i,node:n}}var e0e=P(z(),1),HWn={borderStyle:"dashed"};function sgr({summary:e,node:t,onSelectCwd:r,onRequestClone:n}){let{origin:i,displayName:o,openCount:a,isCurrent:s,cwd:l,cloneTarget:u}=e,f=!l&&!!u,d=l?()=>r(l):f&&u?()=>n({origin:i,cloneTarget:u,displayName:o,node:t}):void 0,h=(0,e0e.jsx)(sn,{label:`${o} (${a})`,size:"small",color:s?"primary":"default",variant:s?"filled":"outlined",disabled:!l&&!f,onClick:d,icon:f?(0,e0e.jsx)(mB,{}):void 0,sx:f?HWn:void 0});return!f||!u?h:(0,e0e.jsx)(lr,{describeChild:!0,title:gB(t,u),children:h})}var CY=P(z(),1),UWn={flexWrap:"wrap",gap:1,mb:2};function lgr({sessions:e}){let{summaries:t,node:r}=agr(),{setSelectedCwd:n}=$n(),i=Uge(e);return t.length===0?null:(0,CY.jsxs)(Rt,{direction:"row",sx:UWn,children:[t.map(o=>(0,CY.jsx)(sgr,{summary:o,node:r,onSelectCwd:a=>r?n(a,r):n(a),onRequestClone:i.requestClone},o.origin)),(0,CY.jsx)(zge,{clone:i})]})}var ugr=P(z(),1);function cgr({value:e,onChange:t}){return(0,ugr.jsx)(Yn,{"data-backlog-focus":"search",fullWidth:!0,size:"small",placeholder:"Search backlog\u2026",value:e,onChange:r=>t(r.target.value),sx:{mb:2}})}var t0e=P(ge(),1);var r0e=P(z(),1);async function WWn(){return(await(await fetch("/api/backups/list")).json())[0]}function fgr(){let[e,t]=(0,t0e.useState)();return(0,t0e.useEffect)(()=>{WWn().then(t)},[]),e?(0,r0e.jsx)(lr,{title:new Date(e.createdAt).toLocaleString(),children:(0,r0e.jsxs)(xn,{component:ys,to:"/backups",underline:"hover",color:"text.secondary",variant:"body2",children:["Last backed up ",Do(String(e.createdAt))]})}):null}var TB=P(z(),1);function dgr(){let[e,t]=hB();return(0,TB.jsxs)(du,{value:e,exclusive:!0,size:"small","aria-label":"Status filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,TB.jsx)(hs,{value:"todo",children:"Todo"}),(0,TB.jsx)(hs,{value:"done",children:"Done"}),(0,TB.jsx)(hs,{value:"all",children:"All"})]})}var SB=P(z(),1);function hgr({value:e,onChange:t}){return(0,SB.jsxs)(du,{value:e,exclusive:!0,size:"small","aria-label":"Type filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,SB.jsx)(hs,{value:"all",children:"All"}),(0,SB.jsx)(hs,{value:"story",children:"Stories"}),(0,SB.jsx)(hs,{value:"bug",children:"Bugs"})]})}var Pk=P(z(),1),VWn={justifyContent:"space-between",alignItems:"center",mb:3},GWn={fontWeight:600},qWn={alignItems:"center"};function pgr({typeFilter:e,onTypeFilterChange:t}){return(0,Pk.jsxs)(Rt,{direction:"row",sx:VWn,children:[(0,Pk.jsx)(Oe,{variant:"h5",sx:GWn,children:"Backlog"}),(0,Pk.jsxs)(Rt,{direction:"row",spacing:2,sx:qWn,children:[(0,Pk.jsx)(fgr,{}),(0,Pk.jsx)(hgr,{value:e,onChange:t}),(0,Pk.jsx)(dgr,{})]})]})}var I2=P(z(),1);function ggr({items:e,loading:t,error:r,socket:n,onReload:i}){let o=as(),a=yr(),{query:s,setQuery:l,results:u,loading:f}=hmr(),[d,h]=(0,mgr.useState)("all"),p=u??e,m=d==="all"?p:p.filter(g=>g.type===d);return(0,I2.jsxs)(I2.Fragment,{children:[(0,I2.jsx)(pgr,{typeFilter:d,onTypeFilterChange:h}),(0,I2.jsx)(cgr,{value:s,onChange:l}),(0,I2.jsx)(lgr,{sessions:n.sessions}),(0,I2.jsx)(igr,{loading:t||f,error:u?null:r,query:s,typeFilter:d,items:m,socket:n,itemPath:g=>zT(g.id,o,a),onReload:i})]})}var f0e=P(ge(),1);var TR=P(ge(),1);async function Q$e(e,t,r){let n=await fetch(Fl(`/api/items/${so(e)}`,t.cwd,t.node),{signal:r});return n.ok?n.json():null}function ygr(e){let t=as(),r=yr(),[n,i]=(0,TR.useState)(null),[o,a]=(0,TR.useState)(!0),s=(0,TR.useCallback)(async()=>{i(await Q$e(e,{cwd:t,node:r}))},[e,t,r]);return(0,TR.useEffect)(()=>{let l=new AbortController,{signal:u}=l;return a(!0),(async()=>{try{let f=await Q$e(e,{cwd:t,node:r},u);if(u.aborted)return;i(f),a(!1)}catch(f){if(!u.aborted)throw f}})(),()=>l.abort()},[e,t,r]),{item:n,loading:o,reload:s}}var Lk={description:"item-section-description",acceptanceCriteria:"item-section-acceptance-criteria",subtasks:"item-section-subtasks",plan:"item-section-plan",activity:"item-section-activity",comments:"item-section-comments"},wY=140,J$e="--pinned-header-height",n0e=`var(${J$e}, ${wY}px)`,vgr=`calc(${n0e} + 8px)`;function Um(e){return{id:Lk[e],sx:{mb:2,scrollMarginTop:vgr}}}function i0e(e){return{id:`item-phase-${e}`,sx:{scrollMarginTop:vgr}}}var Mk=P(z(),1);function bgr({criteria:e}){return e.length===0?null:(0,Mk.jsxs)(le,{...Um("acceptanceCriteria"),children:[(0,Mk.jsx)(Oe,{variant:"overline",sx:{color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"},children:"Acceptance Criteria"}),(0,Mk.jsx)(L0,{disablePadding:!0,sx:{maxWidth:"72ch"},children:e.map((t,r)=>(0,Mk.jsxs)(iT,{disableGutters:!0,disablePadding:!0,sx:{py:.5,display:"flex",alignItems:"baseline"},children:[(0,Mk.jsxs)(Oe,{component:"span",sx:{color:"text.secondary",mr:1},children:[r+1,"."]}),(0,Mk.jsx)(yu,{component:"span",className:"markdown",html:MP(t)})]},t))})]})}var kY=P(z(),1),jWn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function xgr({description:e}){return e?(0,kY.jsxs)(le,{...Um("description"),children:[(0,kY.jsx)(Oe,{variant:"overline",sx:jWn,children:"Description"}),(0,kY.jsx)(Rw,{content:e,renderMermaid:!0})]}):null}var Agr=P(ge(),1);function Tgr(e,t=10){let r=i=>e.filter(o=>o.kind===i).reverse(),n=r("commit");return{branches:r("branch"),commits:n.slice(0,t),overflowCommits:n.slice(t),prs:r("pr"),slacks:r("slack"),sessions:r("session")}}var Cgr=P(z(),1),YWn={color:"text.secondary",alignSelf:"flex-start",textAlign:"left"};function Sgr({hiddenCount:e,expanded:t,onToggle:r}){return e===0?null:(0,Cgr.jsx)(xn,{component:"button",type:"button",variant:"body2",underline:"hover",sx:YWn,onClick:n=>{n.stopPropagation(),r()},children:t?"Show fewer commits":`\u2026 and ${e} more commits`})}var SR=P(z(),1),KWn={display:"flex",alignItems:"center",gap:1},XWn={color:"text.secondary",fontFamily:"monospace"},ZWn={flex:1,overflowWrap:"anywhere"},QWn={color:"text.disabled","&:hover":{color:"text.primary"}};function wgr({conversation:e}){let{resumeSession:t}=$l(),r=n=>{n.stopPropagation(),t(e.sessionId,e.cwd??"",e.title,e.harness)};return(0,SR.jsxs)(le,{sx:KWn,children:[(0,SR.jsx)(Oe,{variant:"body2",component:"span",sx:XWn,children:"session"}),(0,SR.jsx)(Oe,{variant:"body2",component:"span",sx:ZWn,children:e.title??e.sessionId}),(0,SR.jsx)(ir,{size:"small",title:"Resume",sx:QWn,onClick:r,children:(0,SR.jsx)(Fp,{sx:{fontSize:14}})})]})}var _gr=P(z(),1),JWn={color:"text.disabled",ml:1};function kgr({gitRef:e}){return e.kind!=="commit"||!e.createdAt?null:(0,_gr.jsx)(le,{component:"span",sx:JWn,children:eVn(e.createdAt)})}function eVn(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function Egr(e){if(e.kind==="commit"){let t=e.title?` ${e.title}`:"";return`${e.ref.slice(0,8)}${t}`}if(e.kind==="pr"){let t=e.title?` ${e.title}`:"",r=e.state?` (${e.state.toLowerCase()})`:"";return`#${e.ref}${t}${r}`}return e.kind==="slack"||e.kind==="session"?e.title??e.ref:e.ref}var tv=P(z(),1),tVn={color:"text.secondary",mr:1,fontFamily:"monospace"};function rVn({gitRef:e}){let t=Egr(e);return!e.url||e.kind==="session"?(0,tv.jsx)(tv.Fragment,{children:t}):(0,tv.jsx)(xn,{href:e.url,target:"_blank",rel:"noopener",onClick:r=>r.stopPropagation(),children:t})}function Rgr({gitRef:e}){return(0,tv.jsxs)(Oe,{variant:"body2",children:[(0,tv.jsx)(le,{component:"span",sx:tVn,children:e.kind}),(0,tv.jsx)(rVn,{gitRef:e}),(0,tv.jsx)(kgr,{gitRef:e})]})}var Ik=P(z(),1),nVn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function Pgr({gitRefs:e,conversations:t=[]}){let[r,n]=(0,Agr.useState)(!1),{branches:i,commits:o,overflowCommits:a,prs:s,slacks:l}=Tgr(e),u=[...i,...o,...r?a:[],...s,...l];return u.length===0&&t.length===0?null:(0,Ik.jsxs)(le,{...Um("activity"),children:[(0,Ik.jsx)(Oe,{variant:"overline",sx:nVn,children:"Activity"}),(0,Ik.jsxs)(Rt,{spacing:1,children:[u.map(f=>(0,Ik.jsx)(Rgr,{gitRef:f},`${f.kind}:${f.ref}`)),t.map(f=>(0,Ik.jsx)(wgr,{conversation:f},f.sessionId)),(0,Ik.jsx)(Sgr,{hiddenCount:a.length,expanded:r,onToggle:()=>n(f=>!f)})]})]})}var CR=P(z(),1),iVn={alignItems:"center",fontSize:"0.75rem",color:"text.secondary",mb:.5},oVn={color:"text.disabled"},aVn={fontWeight:500},sVn={summary:"Phase summary",comment:"Comment"};function Lgr({comment:e}){return(0,CR.jsxs)(Rt,{direction:"row",spacing:.5,sx:iVn,children:[e.id!==void 0&&(0,CR.jsxs)(Oe,{variant:"caption",sx:oVn,children:["#",e.id]}),(0,CR.jsx)(Oe,{variant:"caption",sx:aVn,children:sVn[e.type]}),e.phase!==void 0&&(0,CR.jsxs)(Oe,{variant:"caption",children:["\xB7 Phase ",e.phase]}),(0,CR.jsxs)(Oe,{variant:"caption",children:["\xB7 ",lVn(e.timestamp)]})]})}function lVn(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}var Mgr=P(z(),1),Igr=ut((0,Mgr.jsx)("path",{d:"M16 9v10H8V9zm-1.5-6h-5l-1 1H5v2h14V4h-3.5zM18 7H6v12c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2z"}),"DeleteOutlined");var eze=P(ge(),1);async function Dgr(e,t,r,n){let i=await fetch(Fl(`/api/items/${so(e)}/comments/${t}`,r,n),{method:"DELETE"});if(!i.ok){let o=await i.json().catch(()=>{});throw new Error(o?.error??`Failed to delete comment (${i.status})`)}}var rv=P(z(),1),cVn={mt:-.5,mr:-.5,color:"text.secondary"};function Ngr({itemId:e,commentId:t,onDeleted:r}){let n=as(),i=yr(),[o,a]=(0,eze.useState)(!1),[s,l]=(0,eze.useState)(),u=()=>l(void 0);return(0,rv.jsxs)(rv.Fragment,{children:[o&&(0,rv.jsx)(vo,{message:"Are you sure you want to delete this comment?",onConfirm:async()=>{a(!1);try{await Dgr(e,t,n,i),await r()}catch(f){l(f instanceof Error?f.message:"Failed to delete comment")}},onCancel:()=>a(!1)}),(0,rv.jsx)(ol,{open:s!==void 0,autoHideDuration:6e3,onClose:u,children:(0,rv.jsx)(ni,{severity:"error",variant:"filled",onClose:u,children:s})}),(0,rv.jsx)(ir,{"aria-label":"Delete comment",size:"small",sx:cVn,onClick:()=>a(!0),children:(0,rv.jsx)(Igr,{fontSize:"inherit"})})]})}var wR=P(z(),1),uVn={summary:{bgcolor:"warning.light",borderColor:"warning.dark"},comment:{bgcolor:"action.selected",borderColor:"divider"}},fVn={justifyContent:"space-between",alignItems:"flex-start"},dVn={color:"text.primary",whiteSpace:"pre-wrap"};function hVn(e){return{p:1.5,bgcolor:e.bgcolor,borderColor:e.borderColor}}function Ogr({comment:e,itemId:t,onDeleted:r}){return(0,wR.jsxs)(an,{variant:"outlined",sx:hVn(uVn[e.type]),children:[(0,wR.jsxs)(Rt,{direction:"row",sx:fVn,children:[(0,wR.jsx)(Lgr,{comment:e}),e.id!==void 0&&t!==void 0&&r&&(0,wR.jsx)(Ngr,{itemId:t,commentId:e.id,onDeleted:r})]}),(0,wR.jsx)(Oe,{variant:"body2",sx:dVn,children:e.text})]})}var CB=P(z(),1),pVn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function Bgr({comments:e,itemId:t,onCommentDeleted:r}){return e.length===0?null:(0,CB.jsxs)(le,{...Um("comments"),children:[(0,CB.jsx)(Oe,{variant:"overline",sx:pVn,children:"Comments"}),(0,CB.jsx)(Rt,{spacing:1,children:e.map((n,i)=>(0,CB.jsx)(Ogr,{comment:n,itemId:t,onDeleted:r},`${n.timestamp}-${i}`))})]})}var Fgr=P(z(),1);function wB({total:e,sx:t}){return(0,Fgr.jsx)(Oe,{sx:t,children:Nge(e)})}var zgr=P(z(),1),mVn={color:"text.secondary",fontSize:"0.75rem"};function $gr({usage:e}){let t={tokensUp:e.reduce((r,n)=>r+n.tokensUp,0),tokensDown:e.reduce((r,n)=>r+n.tokensDown,0),activeMs:e.reduce((r,n)=>r+n.activeMs,0),peakContextPct:e.reduce((r,n)=>Math.max(r,n.peakContextPct),0)};return(0,zgr.jsx)(wB,{total:t,sx:mVn})}var D2=P(z(),1);function Hgr({checks:e}){return(0,D2.jsxs)(le,{sx:{mt:1,pt:1},children:[(0,D2.jsx)(no,{sx:{mb:1}}),(0,D2.jsx)(Oe,{variant:"overline",sx:{color:"text.disabled",letterSpacing:"0.08em"},children:"Manual Checks"}),(0,D2.jsx)(L0,{disablePadding:!0,sx:{ml:.5,mt:.5},children:e.map(t=>(0,D2.jsxs)(iT,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,D2.jsx)(Oe,{component:"span",sx:{mr:1,fontSize:"0.875rem",color:"text.secondary"},children:"\u2610"}),(0,D2.jsx)(yu,{component:"span",className:"markdown",sx:{fontSize:"0.875rem",color:"text.secondary"},html:MP(t)})]},t))})]})}var o0e={done:{borderColor:"success.light",bgcolor:"success.light"},current:{borderColor:"info.main",bgcolor:"info.light",ring:"info.light"},upcoming:{borderColor:"divider",bgcolor:"background.paper"}};function Ugr(e){let t=o0e[e];return{p:2,borderColor:t.ring?"info.main":t.borderColor,bgcolor:t.bgcolor,...t.ring?{boxShadow:"0 0 0 2px"}:{}}}var Wgr={done:"\u2713",current:"\u2022",upcoming:"\u2022"};var qgr=P(ge(),1);var Vgr=P(ge(),1),nv=P(z(),1);function Ggr({phaseName:e,onConfirm:t,onCancel:r}){let[n,i]=(0,Vgr.useState)("");return(0,nv.jsxs)(Ps,{open:!0,onClose:r,maxWidth:"xs",fullWidth:!0,children:[(0,nv.jsxs)(Il,{children:["Rewind to ",e,"?"]}),(0,nv.jsxs)(Ml,{children:[(0,nv.jsx)(Oe,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"This will mark all later phases as incomplete."}),(0,nv.jsx)(Yn,{fullWidth:!0,multiline:!0,rows:3,size:"small",placeholder:"Reason for rewinding...",value:n,onChange:o=>i(o.target.value)})]}),(0,nv.jsxs)(cu,{children:[(0,nv.jsx)(qt,{onClick:r,children:"Cancel"}),(0,nv.jsx)(qt,{variant:"contained",color:"warning",disabled:n.trim().length===0,onClick:()=>t(n.trim()),children:"Rewind"})]})]})}var kR=P(z(),1);function jgr({itemId:e,phaseNumber:t,phaseName:r,onRewound:n}){let i=as(),o=yr(),[a,s]=(0,qgr.useState)(!1);return(0,kR.jsxs)(kR.Fragment,{children:[(0,kR.jsx)(qt,{size:"small",color:"warning",variant:"outlined",onClick:()=>s(!0),sx:{ml:"auto",textTransform:"none",fontSize:"0.75rem"},children:"Rewind"}),a&&(0,kR.jsx)(Ggr,{phaseName:r,onConfirm:async l=>{await $et(e,t,l,i,o),await n()},onCancel:()=>s(!1)})]})}var kB=P(z(),1),gVn={done:{label:"Done",color:"success"},current:{label:"In Progress",color:"info"},upcoming:{label:"Upcoming",color:"default"}},yVn={alignItems:"center",mb:1},vVn={fontWeight:500},bVn={fontWeight:500,fontSize:"0.75rem"};function Ygr({phase:e,index:t,status:r,itemId:n,onRewind:i}){let o=gVn[r],a=r==="done"&&n!==void 0&&i;return(0,kB.jsxs)(Rt,{direction:"row",spacing:1,sx:yVn,children:[(0,kB.jsxs)(Oe,{sx:vVn,children:["Phase ",t+1,": ",e.name]}),(0,kB.jsx)(sn,{label:o.label,size:"small",color:o.color,sx:bVn}),a&&(0,kB.jsx)(jgr,{itemId:n,phaseNumber:t+1,phaseName:e.name,onRewound:i})]})}var _Y=P(z(),1),xVn={color:"text.secondary",fontSize:"0.75rem",letterSpacing:"0.08em",display:"block"},TVn={color:"text.secondary",fontSize:"0.75rem",fontFamily:"monospace",display:"block"};function Kgr({sessions:e}){return(0,_Y.jsxs)(le,{sx:{mb:1},children:[(0,_Y.jsx)(Oe,{variant:"overline",sx:xVn,children:"Sessions"}),e.map(t=>(0,_Y.jsx)(Oe,{sx:TVn,children:`${t.hostname} / ${t.osUser} / ${t.claudeSessionId}`},t.claudeSessionId))]})}var Zgr=P(z(),1),SVn={color:"text.secondary",fontSize:"0.75rem",mb:1,display:"block"};function Xgr({usage:e}){return(0,Zgr.jsx)(wB,{total:e,sx:SVn})}var _B=P(z(),1);function Qgr({tasks:e,marker:t}){return(0,_B.jsx)(L0,{disablePadding:!0,sx:{ml:.5},children:e.map(r=>(0,_B.jsxs)(iT,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,_B.jsx)(Oe,{component:"span",sx:{color:"text.secondary",mr:1},children:t}),(0,_B.jsx)(yu,{component:"span",className:"markdown",html:MP(r.task)})]},r.task))})}var Dk=P(z(),1);function Jgr({phase:e,index:t,status:r,itemId:n,usage:i,sessions:o,onRewind:a}){let s=e.manualChecks??[],l=i0e(t);return(0,Dk.jsxs)(an,{variant:"outlined",id:l.id,sx:{...Ugr(r),...l.sx},children:[(0,Dk.jsx)(Ygr,{phase:e,index:t,status:r,itemId:n,onRewind:a}),i&&(0,Dk.jsx)(Xgr,{usage:i}),(0,Dk.jsx)(Qgr,{tasks:e.tasks,marker:Wgr[r]}),s.length>0&&(0,Dk.jsx)(Hgr,{checks:s}),o&&o.length>0&&(0,Dk.jsx)(Kgr,{sessions:o})]})}var EY={name:"Review",tasks:[]};function a0e(e){return e.at(-1)?.name===EY.name?e.length-1:e.length}function s0e(e,t){if(t===void 0)return"upcoming";let r=e+1;return r<t?"done":r===t?"current":"upcoming"}function e0r(e=[]){return new Map(e.map(t=>[t.phaseIdx,t]))}function t0r(e=[]){let t=new Map;for(let r of e){let n=t.get(r.phaseIdx);n?n.push(r):t.set(r.phaseIdx,[r])}return t}var tze=P(z(),1);function r0r({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){let a=e0r(n),s=t0r(i),l=a0e(e),u=(i??[]).filter(d=>d.phaseIdx>=l),f=l===e.length&&u.length>0?[...e,EY]:e;return(0,tze.jsx)(Rt,{spacing:1.5,children:f.map((d,h)=>(0,tze.jsx)(Jgr,{phase:d,index:h,status:s0e(h,t),itemId:r,usage:a.get(h),sessions:h===l?u:s.get(h),onRewind:h<e.length?o:void 0},d.name))})}var _R=P(z(),1),CVn={alignItems:"baseline",justifyContent:"space-between",mb:1},wVn={color:"text.secondary",display:"block",letterSpacing:"0.08em"};function n0r({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){return e.length===0?null:(0,_R.jsxs)(le,{...Um("plan"),children:[(0,_R.jsxs)(Rt,{direction:"row",sx:CVn,children:[(0,_R.jsx)(Oe,{variant:"overline",sx:wVn,children:"Plan"}),n&&n.length>0&&(0,_R.jsx)($gr,{usage:n})]}),(0,_R.jsx)(r0r,{phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o})]})}var rze=P(z(),1),l0e=e=>{let{value:t,options:r,colors:n,onChange:i}=e;return(0,rze.jsx)(sT,{value:t,onChange:o=>i(o.target.value),size:"small",sx:{fontSize:"0.75rem",fontWeight:500,borderRadius:4,bgcolor:n[t].bg,color:n[t].text,"& .MuiSelect-select":{py:.5,px:1.5},"& .MuiSelect-icon":{color:"inherit"}},children:r.map(o=>(0,rze.jsx)(fn,{value:o,children:o},o))})};var o0r=P(z(),1),kVn={todo:{bg:"action.selected",text:"text.primary"},"in-progress":{bg:"warning.main",text:"warning.contrastText"},done:{bg:"success.main",text:"success.contrastText"}},_Vn=["todo","in-progress","done"];function i0r({current:e,onStatusChange:t}){return(0,o0r.jsx)(l0e,{value:e,options:_Vn,colors:kVn,onChange:t})}var Nk=P(z(),1);function a0r({subtask:e,onStatusChange:t}){let r=e.status==="done";return(0,Nk.jsxs)(Rt,{direction:"row",spacing:1,sx:{alignItems:"flex-start",justifyContent:"space-between"},children:[(0,Nk.jsxs)(le,{sx:{flex:1},children:[(0,Nk.jsx)(Oe,{variant:"body2",sx:{textDecoration:r?"line-through":"none",color:r?"text.disabled":"text.primary"},children:e.title}),e.description&&(0,Nk.jsx)(le,{sx:{mt:.5,fontSize:"0.8125rem",color:r?"text.disabled":"text.secondary"},children:(0,Nk.jsx)(Rw,{content:e.description})})]}),(0,Nk.jsx)(i0r,{current:e.status,onStatusChange:t})]})}var ER=P(z(),1),EVn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function s0r({subtasks:e,onStatusChange:t}){if(e.length===0)return null;let r=e.filter(n=>n.status!=="done").length;return(0,ER.jsxs)(le,{...Um("subtasks"),children:[(0,ER.jsx)(Oe,{variant:"overline",sx:EVn,children:"Sub-tasks"}),(0,ER.jsx)(Rt,{spacing:1,children:e.map((n,i)=>(0,ER.jsx)(a0r,{subtask:n,onStatusChange:o=>t(i,o)},`${n.title}-${i}`))}),r>0&&(0,ER.jsxs)(ni,{severity:"warning",sx:{mt:1},children:[r," sub-task",r===1?"":"s"," not yet done."]})]})}var N2=P(z(),1);function l0r({item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n}){return(0,N2.jsxs)(N2.Fragment,{children:[e.subtasks&&n&&(0,N2.jsx)(s0r,{subtasks:e.subtasks,onStatusChange:n}),e.plan&&(0,N2.jsx)(n0r,{phases:e.plan,currentPhase:e.currentPhase,itemId:e.id,usage:e.phaseUsage,sessions:e.phaseSessions,onRewind:t}),(0,N2.jsx)(Pgr,{gitRefs:e.gitRefs??[],conversations:e.conversations}),e.comments&&(0,N2.jsx)(Bgr,{comments:e.comments,itemId:e.id,onCommentDeleted:r})]})}var EB=P(z(),1);function c0r({item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n}){return(0,EB.jsxs)(le,{sx:{pt:2,flex:1,minWidth:0},children:[(0,EB.jsx)(xgr,{description:e.description}),(0,EB.jsx)(bgr,{criteria:e.acceptanceCriteria}),(0,EB.jsx)(l0r,{item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n})]})}var u0r="item-detail";var RY={wideQuery:`@container ${u0r} (min-width: 760px)`,containerSx:{containerType:"inline-size",containerName:u0r},columnsSx:{display:"flex",columnGap:3}};function RVn(e){let t=e.plan??[];if(t.length===0)return[];let r=a0e(t),i=r===t.length&&(e.phaseSessions??[]).some(o=>o.phaseIdx>=r)?[...t,EY]:t;return[{id:Lk.plan,label:"Phases"},...i.map((o,a)=>({id:i0e(a).id,label:`${a+1}`,title:o.name,status:s0e(a,e.currentPhase),nested:!0}))]}function f0r(e){let t=[];return e.description&&t.push({id:Lk.description,label:"Description"}),e.acceptanceCriteria.length>0&&t.push({id:Lk.acceptanceCriteria,label:"Acceptance Criteria"}),(e.subtasks?.length??0)>0&&t.push({id:Lk.subtasks,label:"Sub-tasks"}),t.push(...RVn(e)),(e.gitRefs?.length??0)+(e.conversations?.length??0)>0&&t.push({id:Lk.activity,label:"Activity"}),(e.comments?.length??0)>0&&t.push({id:Lk.comments,label:"Comments"}),t}var d0r="1.3125rem",h0r={position:"relative",borderRadius:1,"&::after":{content:'""',position:"absolute",inset:0,borderRadius:"inherit",pointerEvents:"none"},"&:hover::after":{bgcolor:"action.hover"},"&:active::after":{bgcolor:"action.selected"}},AVn={...h0r,display:"block",flexShrink:0,maxWidth:"100%",px:1,py:.5,border:0,bgcolor:"transparent",fontSize:d0r,lineHeight:1.2,letterSpacing:"0.02em",textAlign:"left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"text.secondary"},PVn={...h0r,display:"flex",alignItems:"center",justifyContent:"center",fontSize:d0r,width:"2em",height:"2em",flexShrink:0,lineHeight:1,borderRadius:"50%",border:1,color:"text.primary"},LVn={borderColor:"text.primary",borderWidth:3},MVn={color:"text.primary",fontWeight:700,"&::after":{bgcolor:"action.selected"}};function p0r(e,t){let r=e.status&&o0e[e.status];return r?{...PVn,ml:1.5,bgcolor:r.bgcolor,borderColor:r.borderColor,borderWidth:r.ring?3:1,...t&&LVn}:{...AVn,...t&&MVn}}var g0r=P(z(),1);function m0r({section:e,active:t,onSelect:r}){return(0,g0r.jsx)(Dn,{sx:p0r(e,t),onClick:()=>r(e.id),title:e.title??e.label,"aria-current":t?"true":void 0,children:e.label})}function y0r(e,t=wY){return ipe(e,t)}var nze=P(z(),1),IVn=48,DVn=260,NVn={display:"none",[RY.wideQuery]:{display:"flex"},position:"sticky",top:n0e,alignSelf:"flex-start",width:DVn,flexShrink:0,maxHeight:`calc(100vh - ${IVn}px - ${n0e})`,alignItems:"flex-start",overflowY:"auto",overflowX:"hidden",py:2};function OVn(e){document.getElementById(e)?.scrollIntoView({behavior:"smooth",block:"start"})}function v0r({item:e,headerHeight:t}){let r=f0r(e),n=y0r(r.map(i=>i.id),t);return r.length===0?null:(0,nze.jsx)(Rt,{component:"nav",spacing:1,sx:NVn,children:r.map(i=>(0,nze.jsx)(m0r,{section:i,active:i.id===n,onSelect:OVn},i.id))})}var x0r=P(z(),1);function b0r({to:e}){let t=Xi();return(0,x0r.jsx)(qt,{"data-backlog-focus":"back",variant:"text",size:"small",onClick:()=>t(e),sx:{mb:2,textTransform:"none"},children:"\u2190 Back"})}var T0r=P(ge(),1);var RR=P(z(),1);function S0r({itemId:e,onDeleted:t}){let r=as(),n=yr(),[i,o]=(0,T0r.useState)(!1);return(0,RR.jsxs)(RR.Fragment,{children:[i&&(0,RR.jsx)(vo,{onConfirm:async()=>{await Bet(e,r,n),await t()},onCancel:()=>o(!1)}),(0,RR.jsx)(qt,{variant:"contained",color:"error",size:"small",onClick:()=>o(!0),children:"Delete"})]})}var ize=P(z(),1),BVn={todo:{bg:"action.selected",text:"text.primary"},"in-progress":{bg:"warning.main",text:"warning.contrastText"},done:{bg:"success.main",text:"success.contrastText"},wontdo:{bg:"error.main",text:"error.contrastText"}},FVn=["todo","in-progress","done","wontdo"];function C0r({current:e,onStatusChange:t}){return t?(0,ize.jsx)(l0e,{value:e,options:FVn,colors:BVn,onChange:t}):(0,ize.jsx)(sn,{label:e,size:"small",color:Ege[e],sx:{fontWeight:500,fontSize:"0.75rem"}})}var O2=P(z(),1),$Vn={alignItems:"center",color:"text.disabled",fontSize:"0.875rem"},zVn={fontWeight:500,fontSize:"0.75rem"},HVn={color:"text.secondary",fontSize:"0.75rem"};function w0r({item:e,onStatusChange:t}){let r=_ge[e.type];return(0,O2.jsxs)(Rt,{direction:"row",spacing:1,sx:$Vn,children:[(0,O2.jsx)(Oe,{variant:"body2",color:"text.disabled",children:so(e.id)}),r&&(0,O2.jsx)(sn,{label:e.type,size:"small",color:r,sx:zVn}),(0,O2.jsx)(C0r,{current:e.status,onStatusChange:t}),(0,O2.jsx)(pP,{jiraKey:e.jiraKey}),(0,O2.jsx)(hP,{githubIssue:e.githubIssue,origin:e.origin}),e.usageTotal&&(0,O2.jsx)(wB,{total:e.usageTotal,sx:HVn})]})}var k0r=P(z(),1),_0r=ut((0,k0r.jsx)("path",{d:"M3 17v2h6v-2zM3 5v2h10V5zm10 16v-2h8v-2h-8v-2h-2v6zM7 9v2H3v2h4v2h2V9zm14 4v-2H11v2zm-6-4h2V7h4V5h-4V3h-2z"}),"Tune");var c0e=P(ge(),1);var E0r=P(ge(),1);function R0r(e){let{launchAssist:t}=$l(),r=Xi(),n=as(),i=yr(),[o,a]=(0,E0r.useState)(!1);return{launched:o,launch:l=>{if(o)return;a(!0);let u=i?[{node:i}]:[];t(["refine","--once",...l,so(e)],n,...u),r("/sessions")}}}var c0=P(z(),1);function A0r({itemId:e}){let{launched:t,launch:r}=R0r(e),n=kk(),i=(0,c0e.useRef)(null),[o,a]=(0,c0e.useState)(!1),s=u=>u.stopPropagation(),l=Bge(n);return(0,c0.jsxs)(c0.Fragment,{children:[(0,c0.jsxs)(tT,{ref:i,variant:"outlined",size:"small",disabled:t,children:[(0,c0.jsx)(qt,{startIcon:(0,c0.jsx)(_0r,{}),onClick:u=>{s(u),r([])},children:"Refine"}),l.length>0&&(0,c0.jsx)(qt,{size:"small","aria-label":"Refine with a different harness",onClick:u=>{s(u),a(!0)},children:(0,c0.jsx)(Up,{})})]}),(0,c0.jsx)(Fge,{anchorEl:i.current,open:o,onClose:()=>a(!1),options:l,onSelect:u=>{a(!1),r(["--harness",u])},stop:s})]})}var RB=P(ge(),1);function P0r(){let e=(0,RB.useRef)(null),[t,r]=(0,RB.useState)(!1);return(0,RB.useEffect)(()=>{let n=e.current;if(!n)return;let i=new IntersectionObserver(([o])=>r(!o.isIntersecting),{threshold:0});return i.observe(n),()=>i.disconnect()},[]),{sentinelRef:e,stuck:t}}var Bf=P(z(),1),UVn={justifyContent:"space-between",alignItems:"center",mb:2};function WVn(e){return e.palette.mode==="dark"?"0 8px 8px -9px rgba(0, 0, 0, 0.8)":"0 6px 6px -7px rgba(0, 0, 0, 0.2)"}function VVn(e){return t=>({position:"sticky",top:0,zIndex:1,bgcolor:"background.default",mx:-2,px:2,pb:2,borderBottom:1,borderColor:"divider",boxShadow:e?WVn(t):"none",transition:t.transitions.create("box-shadow")})}function L0r({item:e,onDeleted:t,onStatusChange:r,ref:n}){let{sentinelRef:i,stuck:o}=P0r();return(0,Bf.jsxs)(Bf.Fragment,{children:[(0,Bf.jsx)(le,{ref:i,sx:{height:0}}),(0,Bf.jsxs)(le,{ref:n,sx:VVn(o),children:[(0,Bf.jsxs)(Rt,{direction:"row",sx:UVn,children:[(0,Bf.jsx)(b0r,{to:"/backlog"}),(0,Bf.jsxs)(Rt,{direction:"row",spacing:1,children:[Oge(e)&&(0,Bf.jsx)(Jge,{itemId:e.id}),(0,Bf.jsx)(A0r,{itemId:e.id}),(0,Bf.jsx)(S0r,{itemId:e.id,onDeleted:t})]})]}),(0,Bf.jsx)(Oe,{variant:"h5",component:"h2",children:e.name}),(0,Bf.jsx)(w0r,{item:e,onStatusChange:r})]})]})}var I0r=P(ge(),1);var u0e=P(ge(),1);function M0r(e,t){let[r,n]=(0,u0e.useState)(t);return(0,u0e.useEffect)(()=>{let i=e.current;if(!i||(n(i.offsetHeight),typeof ResizeObserver>"u"))return;let o=new ResizeObserver(()=>n(i.offsetHeight));return o.observe(i),()=>o.disconnect()},[e]),r}function D0r(){let e=(0,I0r.useRef)(null),t=M0r(e,wY),r={[J$e]:`${t}px`};return{headerRef:e,headerHeight:t,style:r}}var Ok=P(z(),1);function N0r({item:e,onReload:t}){let r=Xi(),n=as(),i=yr(),{headerRef:o,headerHeight:a,style:s}=D0r();oy("ItemDetail");let l=async()=>{await t(),r("/backlog")},u=async d=>{await zJ(e.id,d,n,i),await t()},f=async(d,h)=>{await Fet(e.id,d,h,n,i),await t()};return(0,Ok.jsxs)(le,{style:s,children:[(0,Ok.jsx)(L0r,{ref:o,item:e,onDeleted:l,onStatusChange:u}),(0,Ok.jsx)(le,{sx:RY.containerSx,children:(0,Ok.jsxs)(le,{sx:RY.columnsSx,children:[(0,Ok.jsx)(c0r,{item:e,onRewind:t,onCommentDeleted:t,onSubtaskStatusChange:f}),(0,Ok.jsx)(v0r,{item:e,headerHeight:a})]})})]})}var AR=P(z(),1),GVn={display:"flex",justifyContent:"center",py:6};function O0r({onReload:e}){let[t]=Pc(),r=t.get("cwd")||void 0,n=t.get("node")||void 0,i=$n(),o=(0,f0e.useMemo)(()=>r?{...i,selectedCwd:r,selectedNode:n}:i,[i,r,n]);return oy("ItemRoute"),(0,AR.jsx)(Pz.Provider,{value:o,children:(0,AR.jsx)(Xu.Provider,{value:o.selectedNode,children:(0,AR.jsx)(qVn,{onReload:e})})})}function qVn({onReload:e}){let{id:t}=_2e(),r=Number.NaN;try{r=_J(t??"")}catch{r=Number.NaN}let{item:n,loading:i,reload:o}=ygr(r),a=(0,f0e.useCallback)(async()=>{await Promise.all([o(),e()])},[o,e]);return i?(0,AR.jsx)(le,{sx:GVn,children:(0,AR.jsx)(mo,{})}):n?(0,AR.jsx)(N0r,{item:n,onReload:a}):null}var PR=P(z(),1);function B0r({items:e,loading:t,error:r,socket:n,onReload:i}){return(0,PR.jsxs)(m5,{children:[(0,PR.jsx)(gs,{index:!0,element:(0,PR.jsx)(ggr,{items:e,loading:t,error:r,socket:n,onReload:i})}),(0,PR.jsx)(gs,{path:"items/:id",element:(0,PR.jsx)(O0r,{onReload:i})})]})}var u0=P(ge(),1);var F0r=new Map;function $0r(e,t,r){return JSON.stringify([e??null,t,r??null])}var AY={get(e,t,r){return F0r.get($0r(e,t,r))},set(e,t,r,n){F0r.set($0r(e,t,n),r)}};function jVn(e,t){return e===t?!0:!e||!t?!1:e.tokensUp===t.tokensUp&&e.tokensDown===t.tokensDown&&e.activeMs===t.activeMs&&e.peakContextPct===t.peakContextPct}function z0r(e,t){return e===t?!0:e.length!==t.length?!1:e.every((r,n)=>{let i=t[n];return r.id===i.id&&r.type===i.type&&r.name===i.name&&r.status===i.status&&r.starred===i.starred&&r.incompleteSubtasks===i.incompleteSubtasks&&jVn(r.usageTotal,i.usageTotal)})}function H0r({setItems:e,setLoading:t,setError:r}){return{onLoaded:n=>{e(i=>z0r(i,n)?i:n),t(!1),r(null)},onError:n=>{t(!1),r(n)}}}async function U0r(e,t,r,n){let i=await WT({cwd:e,node:n,signal:r,filter:t});return r.aborted||AY.set(e,t,i,n),i}function W0r(e,t,r,{onLoaded:n,onError:i},o){return(async()=>{try{let a=await U0r(e,t,r,o);r.aborted||n(a)}catch(a){r.aborted||i(a instanceof Error?a.message:"Failed to load.")}})()}var YVn=5e3;function V0r(e,t,r,n){let i=new AbortController,o=!1,a=()=>{o||(o=!0,W0r(e,t,i.signal,r,n).finally(()=>{o=!1}))};a();let s=setInterval(a,YVn);return()=>{i.abort(),clearInterval(s)}}function G0r(){let e=as(),t=yr(),[r]=hB(),n=AY.get(e,r,t),i=n??[],o=n===void 0,[a,s]=(0,u0.useState)(i),[l,u]=(0,u0.useState)(o),[f,d]=(0,u0.useState)(null),[h,p]=(0,u0.useState)(e),[m,g]=(0,u0.useState)(t),[y,v]=(0,u0.useState)(r);(e!==h||t!==m||r!==y)&&(p(e),g(t),v(r),s(i),u(o),d(null));let b=(0,u0.useCallback)(async()=>{let x=await WT({cwd:e,node:t,filter:r});s(x),AY.set(e,r,x,t),u(!1)},[e,t,r]);return(0,u0.useEffect)(()=>V0r(e,r,H0r({setItems:s,setLoading:u,setError:d}),t),[e,t,r]),{items:a,loading:l,error:f,reload:b}}var PY=P(z(),1);function q0r({socket:e}){let{items:t,loading:r,error:n,reload:i}=G0r();return bte(!r),(0,PY.jsx)(V$e.Provider,{value:e.sessions,children:(0,PY.jsx)(m5,{children:(0,PY.jsx)(gs,{path:"/*",element:(0,PY.jsx)(B0r,{items:t,loading:r,error:n,socket:e,onReload:i})})})})}var oze=P(z(),1);function j0r({socket:e}){return(0,oze.jsx)(WF,{maxWidth:"lg",sx:{py:3,px:2},children:(0,oze.jsx)(q0r,{socket:e})})}var _i=P(z(),1);function Y0r({socket:e}){return oy("AppRoutes"),(0,_i.jsxs)(_i.Fragment,{children:[(0,_i.jsx)(Aor,{}),(0,_i.jsx)(m5,{children:(0,_i.jsxs)(gs,{element:(0,_i.jsx)(Oit,{socket:e}),children:[(0,_i.jsx)(gs,{path:"sessions",element:(0,_i.jsx)(Ehr,{socket:e})}),(0,_i.jsx)(gs,{path:"backlog/*",element:(0,_i.jsx)(j0r,{socket:e})}),(0,_i.jsx)(gs,{path:"next",element:(0,_i.jsx)(Hir,{sessions:e.sessions,selectSession:e.selectSession})}),(0,_i.jsx)(gs,{path:"news",element:(0,_i.jsx)(Knr,{})}),(0,_i.jsx)(gs,{path:"releases",element:(0,_i.jsx)(kor,{})}),(0,_i.jsx)(gs,{path:"usage",element:(0,_i.jsx)(lmr,{})}),(0,_i.jsx)(gs,{path:"backups",element:(0,_i.jsx)(Vit,{})}),(0,_i.jsx)(gs,{path:"config",element:(0,_i.jsx)(Fat,{})}),(0,_i.jsx)(gs,{path:"updates",element:(0,_i.jsx)(bpr,{reconnecting:e.reconnecting,selectSession:e.selectSession})}),(0,_i.jsx)(gs,{path:"diff",element:(0,_i.jsx)(pnr,{socket:e})}),(0,_i.jsx)(gs,{path:"file",element:(0,_i.jsx)(Vnr,{socket:e})}),(0,_i.jsx)(gs,{path:"*",element:(0,_i.jsx)(M2e,{to:"/sessions",replace:!0})})]})})]})}var g0e=P(ge(),1);var m0e=P(ge(),1);function K0r(e,t,r){if(!e)return"Select a repo to search files.";if(r.error)return"Couldn't search files in this repo.";if(!(r.files.length>0||r.loading))return t?"No matching files.":"No files in this repo."}var Bk=P(z(),1),KVn={display:"flex",gap:1,alignItems:"center",minWidth:0},XVn={display:"flex",gap:1,alignItems:"baseline",minWidth:0,overflow:"hidden"},ZVn={fontFamily:"monospace",fontSize:13,whiteSpace:"nowrap"},QVn={fontFamily:"monospace",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function JVn(e){let t=e.lastIndexOf("/");return t===-1?{dir:"",basename:e}:{dir:e.slice(0,t),basename:e.slice(t+1)}}function X0r({files:e,highlight:t,onHighlight:r,onSelect:n}){return(0,Bk.jsx)(Cp,{dense:!0,sx:{py:0},children:e.map((i,o)=>{let{dir:a,basename:s}=JVn(i);return(0,Bk.jsxs)(fn,{selected:o===t,onMouseEnter:()=>r(o),onClick:()=>n(i),sx:KVn,children:[(0,Bk.jsx)(o9,{path:i}),(0,Bk.jsxs)(le,{sx:XVn,children:[(0,Bk.jsx)(Oe,{component:"span",sx:ZVn,children:s}),(0,Bk.jsx)(Oe,{component:"span",color:"text.secondary",sx:QVn,children:a})]})]},i)})})}var d0e=P(z(),1),eGn={maxHeight:420,overflowY:"auto"},tGn={px:2,py:2,fontSize:13};function Z0r({message:e,files:t,highlight:r,onHighlight:n,onSelect:i}){return(0,d0e.jsx)(le,{sx:eGn,children:e?(0,d0e.jsx)(Oe,{color:"text.secondary",sx:tGn,children:e}):(0,d0e.jsx)(X0r,{files:t,highlight:r,onHighlight:n,onSelect:i})})}var Q0r=P(z(),1),rGn={mt:6,alignSelf:"flex-start"};function h0e({onClose:e,onEntered:t,centered:r=!1,children:n}){return(0,Q0r.jsx)(Ps,{open:!0,onClose:e,maxWidth:"sm",fullWidth:!0,slotProps:{paper:{sx:r?void 0:rGn},transition:{onEntered:t}},children:n})}var p0e=P(ge(),1);var J0r={files:[],loading:!1,error:!1};function eyr(e,t){let[r,n]=(0,p0e.useState)(J0r),i=yr();return(0,p0e.useEffect)(()=>{if(!e){n(J0r);return}let o=!1;return n(s=>({...s,loading:!0})),(async()=>{try{let s=await fetch(tn(`/api/files?cwd=${encodeURIComponent(e)}&q=${encodeURIComponent(t)}`,i));if(!s.ok)throw new Error(`HTTP ${s.status}`);let l=await s.json();if(o)return;n({files:Array.isArray(l.files)?l.files:[],loading:!1,error:!1})}catch{o||n({files:[],loading:!1,error:!0})}})(),()=>{o=!0}},[e,t,i]),r}var LR=P(z(),1);function nGn(e,t,r){let n=new URLSearchParams({path:e});return t&&n.set("cwd",t),t&&r&&n.set("node",r),`/file?${n}`}function tyr({onClose:e}){let{worktreeNode:t}=$n();return(0,LR.jsx)(Xu.Provider,{value:t,children:(0,LR.jsx)(iGn,{onClose:e})})}function iGn({onClose:e}){let{worktreeCwd:t,worktreeNode:r}=$n(),[n,i]=(0,m0e.useState)(""),o=eyr(t,n),a=Xi(),s=(0,m0e.useRef)(null),l=p=>a(nGn(p,t,r)),{highlight:u,setHighlight:f,onKeyDown:d}=Ak(o.files,n,l,e),h=p=>{l(p),e()};return(0,LR.jsxs)(h0e,{onClose:e,onEntered:()=>s.current?.focus(),children:[(0,LR.jsx)(yB,{autoFocus:!0,inputRef:s,value:n,onChange:i,onKeyDown:d,placeholder:"Search files by name..."}),(0,LR.jsx)(Z0r,{message:K0r(t,n,o),files:o.files,highlight:u,onHighlight:f,onSelect:h})]})}function ryr(e){No(Kn("quickOpen").matches,e)}var iyr=P(z(),1);function nyr(){let[e,t]=(0,g0e.useState)(!1);return ryr((0,g0e.useCallback)(()=>t(!0),[])),e?(0,iyr.jsx)(tyr,{onClose:()=>t(!1)}):null}var y0e=P(z(),1);function oyr({notice:e,onClose:t,onView:r}){let n=e?.sessionId??null;return(0,y0e.jsx)(ol,{open:e!==null,autoHideDuration:6e3,onClose:t,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,y0e.jsx)(ni,{severity:"success",variant:"filled",onClose:t,action:n!==null?(0,y0e.jsx)(qt,{color:"inherit",size:"small",onClick:()=>r(n),children:"View"}):void 0,children:e?.message})})}var S0e=P(ge(),1);function ayr(e){let t=["claude"];return e.exposeCodexActions&&t.push("codex"),e.exposePiActions&&t.push("pi"),t}var byr=P(ge(),1);var syr=P(z(),1),lyr=ut((0,syr.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2"}),"Circle");var Fk="0.795.2";var oGn={connected:"success.main",connecting:"warning.main",disconnected:"error.main","version-blocked":"error.main"};function cyr(e){return e?oGn[e]:"success.main"}function uyr(e){return e.split("-")[0].split(".").map(Number)}function fyr(e,t){if(!e||!t||e===t)return;let r=uyr(e),n=uyr(t);for(let i=0;i<Math.max(r.length,n.length);i++){let o=(r[i]??0)-(n[i]??0);if(Number.isNaN(o))return;if(o!==0)return o<0?"behind":"ahead"}}var v0e=P(ge(),1),aze=(0,v0e.createContext)(null);function b0e(){return(0,v0e.useContext)(aze)}var MR=P(z(),1),aGn={height:16,fontSize:10},sGn={opacity:.6,fontSize:"0.85em"};function lGn(e,t){if(t===e.local)return"this machine";let r=e.links.find(n=>n.name===t);return r?r.error?`${r.state}: ${r.error}`:r.state:""}function LY({nodes:e,name:t,showVersion:r=!1}){let n=b0e()??Fk,i=e.links.find(a=>a.name===t),o=fyr(i?.peerVersion,n);return(0,MR.jsx)(lr,{title:lGn(e,t),placement:"right",children:(0,MR.jsxs)(le,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.75},children:[(0,MR.jsx)(lyr,{sx:{fontSize:8,color:cyr(i?.state)}}),t,r&&i?.peerVersion&&(0,MR.jsxs)(le,{component:"span",sx:sGn,children:["v",i.peerVersion]}),o&&(0,MR.jsx)(sn,{label:o,size:"small",color:o==="behind"?"warning":"info",sx:aGn})]})})}var IR=P(z(),1),cGn={opacity:.6},uGn={display:"inline-flex",alignItems:"center",gap:.5,px:.5,border:1,borderStyle:"dashed",borderRadius:1};function dyr({nodes:e,name:t,clone:r}){let n=(0,IR.jsx)(LY,{nodes:e,name:t});return r.kind==="cloned"?n:r.kind==="unavailable"?(0,IR.jsx)(le,{component:"span",sx:cGn,children:n}):(0,IR.jsx)(lr,{title:gB(t,r.cloneTarget),children:(0,IR.jsxs)(le,{component:"span",sx:uGn,children:[(0,IR.jsx)(mB,{sx:{fontSize:14}}),n]})})}var pyr=P(z(),1),fGn={px:1.5,borderRadius:.75,fontSize:12,fontWeight:600,color:"text.secondary","&:hover":{color:"text.primary",bgcolor:"action.hover"},"&[aria-checked='true']":{color:"primary.main",bgcolor:"action.selected"},"&.Mui-focusVisible":{outline:2,outlineColor:"primary.main"}};function hyr({value:e,label:t,checked:r,autoFocus:n,onSelect:i}){return(0,pyr.jsx)(Dn,{role:"radio","aria-checked":r,"data-value":e,tabIndex:r?0:-1,autoFocus:n&&r,onClick:i,sx:fGn,children:t})}var myr={ArrowRight:1,ArrowLeft:-1};function dGn(e,t,r){if(e.key==="Tab"){let n=t+(e.shiftKey?-1:1);return n>=0&&n<r?n:void 0}return(t+myr[e.key]+r)%r}function gyr(e,t,r,n){return i=>{if(i.key==="ArrowUp"||i.key==="ArrowDown"){if(!n)return;i.preventDefault(),n();return}if(i.key!=="Tab"&&!myr[i.key]){db(i);return}let o=dGn(i,e.indexOf(t),e.length);o!==void 0&&(i.preventDefault(),r(e[o]),i.currentTarget.querySelector(`[data-value="${e[o]}"]`)?.focus())}}var yyr=P(ge(),1);function AB(e){return e?.querySelector('[aria-checked="true"]')}function vyr(e,t){(0,yyr.useEffect)(()=>{let r=e.current;if(!r?.contains(document.activeElement))return;let n=AB(r);n&&n!==document.activeElement&&n.focus()},[e,t])}var sze=P(z(),1),hGn={border:1,borderColor:"divider",borderRadius:1,height:40,p:"2px",flexShrink:0};function x0e({label:e,options:t,value:r,onChange:n,optionLabel:i=u=>u,groupRef:o,autoFocus:a,onTrack:s,onToggleRow:l}){return vyr(o,r),(0,sze.jsx)(Rt,{ref:o,direction:"row",role:"radiogroup","aria-label":e,spacing:"2px",onFocus:s,onKeyDown:gyr(t,r,n,l),sx:hGn,children:t.map(u=>(0,sze.jsx)(hyr,{value:u,label:i(u),checked:u===r,autoFocus:a,onSelect:()=>n(u)},u))})}var lze=P(z(),1);function xyr({value:e,onChange:t,cloneState:r}){let{nodes:n,names:i,visible:o}=Bu(),a=(0,byr.useRef)(null);return!o||!n||!e?null:(0,lze.jsx)(x0e,{label:"Machine",options:i,value:e,onChange:t,optionLabel:s=>(0,lze.jsx)(dyr,{nodes:n,name:s,clone:r(s)}),groupRef:a,autoFocus:!1,onTrack:()=>{}})}var Syr=P(z(),1);function Tyr({value:e,onChange:t,placeholder:r,inputRef:n,autoFocus:i,onTrack:o}){return(0,Syr.jsx)(Yn,{value:e,onChange:a=>t(a.target.value),onKeyDown:db,onFocus:o,onSelect:o,inputRef:n,placeholder:r,autoFocus:i,fullWidth:!0,multiline:!0,minRows:3,maxRows:12,slotProps:{htmlInput:{"aria-label":"Prompt"},input:{sx:{fontSize:14}}}})}var _yr=P(ge(),1);var B2={draft:{placeholder:"Describe the backlog item to draft...",submitLabel:"Start draft",sessionMode:"assist-draft"},bug:{placeholder:"Describe the bug: what happened, what you expected...",submitLabel:"File bug",sessionMode:"assist-bug"},prompt:{placeholder:Kee,submitLabel:"Start session"},design:{placeholder:"Describe the design task...",submitLabel:"Start design"}},Cyr=Object.keys(B2);var cze=P(z(),1);function wyr({anchor:e,harness:t,harnesses:r,onPick:n,onClose:i}){return(0,cze.jsx)(Dl,{open:e!==null,anchorEl:e,onClose:i,slotProps:{list:{dense:!0,"aria-label":"Harness"}},children:r.map(o=>(0,cze.jsx)(fn,{role:"menuitemradio","aria-checked":o===t,selected:o===t,onClick:()=>{n(o),i()},sx:{fontSize:13},children:gu(o)},o))})}var DR=P(z(),1);function kyr(e){return t=>t==="prompt"&&e?(0,DR.jsxs)(DR.Fragment,{children:["prompt",(0,DR.jsx)(le,{component:"span",sx:{fontWeight:400,whiteSpace:"pre"},children:` \xB7 ${gu(e)}`}),(0,DR.jsx)(Up,{sx:{fontSize:18,mr:-.75}})]}):t}var NR=P(z(),1);function Eyr({draft:e,harness:t,harnesses:r,focus:n}){let[i,o]=(0,_yr.useState)(null),a=e.mode==="prompt"&&r.length>1,s=()=>o(AB(n.modeRef.current)??null),l=u=>{a&&u==="prompt"?s():e.setMode(u)};return(0,NR.jsxs)(NR.Fragment,{children:[(0,NR.jsx)(x0e,{label:"Mode",options:Cyr,value:e.mode,onChange:l,optionLabel:kyr(r.length>1?t:void 0),groupRef:n.modeRef,autoFocus:n.autoFocus==="mode",onTrack:n.trackMode,onToggleRow:a?s:void 0}),(0,NR.jsx)(wyr,{anchor:i,harness:t,harnesses:r,onPick:e.setHarness,onClose:()=>o(null)})]})}var Fyr=P(ge(),1);var uze=P(z(),1),pGn={zIndex:e=>e.zIndex.modal+1};function Ryr({open:e,anchor:t,children:r}){return(0,uze.jsx)(HA,{open:e,anchorEl:t,placement:"bottom-start",sx:pGn,children:(0,uze.jsx)(an,{sx:{maxHeight:240,overflowY:"auto",width:t?.clientWidth},onMouseDown:n=>n.preventDefault(),children:r})})}function Ayr(e){return{htmlInput:{role:"combobox","aria-label":"Repo","aria-expanded":e},input:{sx:{fontSize:13,height:40}}}}var Pyr=P(bF(),1);function Lyr({open:e,highlighted:t,accept:r,close:n,navigate:i,openList:o}){return a=>{if(!e){if(a.key==="ArrowDown"){a.preventDefault(),o();return}db(a);return}if(a.key!=="Escape"){if(a.key==="Enter"){if(a.preventDefault(),t===void 0)return;(0,Pyr.flushSync)(()=>{r(t),n()}),db(a);return}if(a.key!=="Tab"){i(a);return}t!==void 0&&r(t),n()}}}function Myr(e,t){let r=t.trim().toLowerCase();return r?e.filter(n=>J1(n).toLowerCase().includes(r)):e}var fze=P(ge(),1);function Iyr(){let[e,t]=(0,fze.useState)(!1),[r,n]=(0,fze.useState)("");return{open:e,query:r,show:()=>t(!0),filterBy:i=>{n(i),t(!0)},close:()=>{t(!1),n("")}}}var Nyr=P(ge(),1);var Dyr=e=>e?J1(e):"";function Oyr(e){let[t,r]=(0,Nyr.useState)(()=>Dyr(e));return{text:t,setText:r,showRepo:n=>r(Dyr(n))}}function Byr(e,t,r){let n=Iyr(),i=Oyr(t),o=Myr(e,n.query),a=f=>{r(f),i.showRepo(f)},s=Ak(o,n.query,a,n.close),l=()=>s.setHighlight(Math.max(e.indexOf(t),0)),u=()=>{l(),n.show()};return{open:n.open,text:i.text,filtered:o,highlight:s.highlight,setHighlight:s.setHighlight,onKeyDown:Lyr({open:n.open,highlighted:o[s.highlight],accept:a,close:n.close,navigate:s.onKeyDown,openList:u}),onClick:()=>{n.open||u()},onType:f=>{i.setText(f),n.filterBy(f)},onFocus:l,onBlur:()=>{n.close(),i.showRepo(t)},pick:f=>{a(f),n.close()}}}var PB=P(z(),1);function $yr({repos:e,value:t,onChange:r,inputRef:n,autoFocus:i,onTrack:o}){let a=Byr(e,t,r),s=(0,Fyr.useRef)(null);return(0,PB.jsxs)(le,{ref:s,sx:{flex:1,minWidth:0},children:[(0,PB.jsx)(Yn,{value:a.text,onChange:l=>a.onType(l.target.value),onFocus:l=>{l.target.select(),a.onFocus(),o()},inputRef:n,autoFocus:i,onClick:a.onClick,onBlur:a.onBlur,onKeyDown:a.onKeyDown,placeholder:"Repo",size:"small",fullWidth:!0,slotProps:Ayr(a.open)}),(0,PB.jsx)(Ryr,{open:a.open,anchor:s.current,children:(0,PB.jsx)(Kge,{repos:a.filtered,selected:t,highlight:a.highlight,onHighlight:a.setHighlight,onSelect:a.pick})})]})}var $k=P(z(),1);function zyr({cloneState:e,...t}){let{draft:r,focus:n}=t,{repos:i}=$n();return(0,$k.jsxs)(Rt,{spacing:1,sx:{p:1},children:[(0,$k.jsx)(Tyr,{value:r.prompt,onChange:r.setPrompt,placeholder:B2[r.mode].placeholder,inputRef:n.promptRef,autoFocus:n.autoFocus==="prompt",onTrack:n.trackPrompt}),(0,$k.jsxs)(Rt,{direction:"row",spacing:1,sx:{alignItems:"flex-start"},children:[(0,$k.jsx)($yr,{repos:i,value:r.cwd,onChange:r.setCwd,inputRef:n.repoRef,autoFocus:n.autoFocus==="repo",onTrack:n.trackRepo}),(0,$k.jsx)(Eyr,{...t})]}),(0,$k.jsx)(xyr,{value:r.node,onChange:r.setNode,cloneState:e})]})}var LB=P(z(),1),mGn=["Enter start","Shift+Enter newline","Esc close"],gGn={alignItems:"center",px:1.5,py:1,borderTop:1,borderColor:"divider",bgcolor:"action.hover"};function Hyr({submitLabel:e,disabled:t=!1}){return(0,LB.jsxs)(Rt,{direction:"row",spacing:1.5,sx:gGn,children:[(0,LB.jsx)(Rt,{direction:"row",spacing:1.5,sx:{mr:"auto"},children:mGn.map(r=>(0,LB.jsx)(Oe,{variant:"caption",color:"text.secondary",children:r},r))}),(0,LB.jsx)(qt,{type:"submit",variant:"contained",size:"small",disabled:t,children:e})]})}function Uyr({mode:e,harness:t,prompt:r,cwd:n,node:i},o){let a=n||void 0,s=i?[i]:[];if(e==="prompt"){t==="claude"?o.onCreate(r,a,...s):o.onCreateHarness(t,r,a,...s);return}if(e==="design"){o.onCreateDesign(r,a,...s);return}let l=i?[{node:i}]:[];Ent(B2[e].sessionMode,n,(u,f)=>o.onCreateAssist(u,f,...l),()=>{},r)}function Wyr(e,t,r,n){return r.kind==="blocked"?!1:r.kind==="clone"?(Hge(r.prompt,n.onCreateAssist),!0):(Uyr({mode:e.mode,harness:t,prompt:e.prompt,cwd:r.cwd,node:e.node},n),e.clear(),!0)}var OR=P(ge(),1);function Vyr(e,t){let r=(0,OR.useRef)(e),n=(0,OR.useRef)(null),i=(0,OR.useRef)(null),o=(0,OR.useRef)(null),a=(0,OR.useCallback)(u=>{n.current=u;let{field:f,selectionStart:d,selectionEnd:h}=r.current;u&&f==="prompt"&&u.setSelectionRange(d,h)},[]),s=u=>{let f=u.target;t({field:"prompt",selectionStart:f.selectionStart,selectionEnd:f.selectionEnd})},l=()=>{if(o.current?.closest("form")?.contains(document.activeElement))return;let{field:u}=r.current;({repo:i.current,mode:AB(o.current),prompt:n.current}[u]??n.current)?.focus()};return{autoFocus:e.field,promptRef:a,repoRef:i,modeRef:o,trackPrompt:s,trackRepo:()=>t({...e,field:"repo"}),trackMode:()=>t({...e,field:"mode"}),restore:l}}function yGn(e,t,r){return e?r.kind==="cloned"?{kind:"launch",cwd:r.cwd}:r.kind==="clonable"?{kind:"clone",prompt:Zge(r,t)}:{kind:"blocked"}:{kind:"launch",cwd:e}}function Gyr(e,t){let{names:r,visible:n}=Bu(),i=qge(t,n?r:[void 0]);return{cloneState:i,target:yGn(t,e,i(e))}}var MB=P(z(),1);function qyr({draft:e,launchers:t,onClose:r}){let n=Vyr(e.focus,e.setFocus),i=ayr(kk()),o=i.includes(e.harness)?e.harness:"claude",{target:a,cloneState:s}=Gyr(e.node,e.cwd),l=u=>{u.preventDefault(),Wyr(e,o,a,t)&&r()};return(0,MB.jsx)(h0e,{onClose:r,onEntered:n.restore,centered:!0,children:(0,MB.jsxs)("form",{onSubmit:l,children:[(0,MB.jsx)(zyr,{draft:e,harness:o,harnesses:i,focus:n,cloneState:s}),(0,MB.jsx)(Hyr,{submitLabel:a.kind==="clone"?"Clone":B2[e.mode].submitLabel,disabled:a.kind==="blocked"})]})})}var T0e=P(ge(),1);function jyr(e){let[t,r]=(0,T0e.useState)(null);return(0,T0e.useEffect)(()=>{let n=!1;return(async()=>{let i="draft";try{let o=e?`?cwd=${encodeURIComponent(e)}`:"",s=await(await fetch(`/api/new-session-defaults${o}`)).json();Object.hasOwn(B2,s?.mode)&&(i=s.mode)}catch{}n||r(i)})(),()=>{n=!0}},[e]),t}function Yyr(e,{visible:t,names:r,selected:n}){if(t)return e&&r.includes(e)?e:n}var F2=P(ge(),1),Kyr={field:"prompt",selectionStart:0,selectionEnd:0};function Xyr(){let[e,t]=(0,F2.useState)(""),[r,n]=(0,F2.useState)(),[i,o]=(0,F2.useState)(),[a,s]=(0,F2.useState)("claude"),[l,u]=(0,F2.useState)(),[f,d]=(0,F2.useState)(Kyr),h=(0,F2.useCallback)(()=>{t(""),n(void 0),o(void 0),u(void 0),d(Kyr)},[]);return{prompt:e,cwd:r,mode:i,harness:a,node:l,focus:f,setPrompt:t,setNode:u,setCwd:n,setMode:o,setHarness:s,setFocus:d,clear:h}}function Zyr(e=jyr){let{selectedCwd:t}=$n(),r=Bu(),n=Xyr(),i=n.cwd??t,o=e(i);return o?{...n,cwd:i,mode:n.mode??o,node:Yyr(n.node,r)}:null}function Qyr(e){No(Kn("newSession").matches,e)}var Jyr=P(ge(),1);function e1r(e,t){let{selectedCwd:r}=$n(),[n,i]=Pc(),o=n.get("new"),a=n.get("newCwd")??r,{setPrompt:s,setCwd:l,setFocus:u}=e??{};(0,Jyr.useEffect)(()=>{o===null||!s||!l||!u||(o&&(s(o),l(a),u({field:"prompt",selectionStart:o.length,selectionEnd:o.length})),t(),i(f=>(f.delete("new"),f.delete("newCwd"),f),{replace:!0}))},[o,a,s,l,u,t,i])}var r1r=P(z(),1);function t1r({launchers:e}){let[t,r]=(0,S0e.useState)(!1),n=Zyr(),i=(0,S0e.useCallback)(()=>r(!0),[]);return Qyr(i),e1r(n,i),!t||!n?null:(0,r1r.jsx)(qyr,{draft:n,launchers:e,onClose:()=>r(!1)})}var C0e=P(z(),1);function n1r({reconnecting:e}){return(0,C0e.jsx)(ol,{open:e,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,C0e.jsx)(ni,{severity:"info",variant:"filled",icon:(0,C0e.jsx)(mo,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var iv=P(z(),1);function i1r({socket:e,onViewLaunchedSession:t}){return(0,iv.jsxs)(iv.Fragment,{children:[(0,iv.jsx)(nyr,{}),(0,iv.jsx)(t1r,{launchers:{onCreate:e.createSession,onCreateDesign:e.createDesignSession,onCreateHarness:e.createHarnessSession,onCreateAssist:e.createAssistSession}}),(0,iv.jsx)(n1r,{reconnecting:e.reconnecting}),(0,iv.jsx)(vu,{error:e.error,onClose:e.clearError}),(0,iv.jsx)(oyr,{notice:e.success,onClose:e.clearSuccess,onView:t})]})}var f0=P(ge(),1);var vGn=6e4;function o1r(e){let t=e.nodes?.local,r=e.names.join(`
|
|
3977
3977
|
`),[n,i]=(0,f0.useState)([]),[o,a]=(0,f0.useState)(!0),s=(0,f0.useRef)(0),l=(0,f0.useCallback)(()=>{let u=r?r.split(`
|
|
3978
3978
|
`):[];if(u.length===0)return;let f=++s.current;Promise.all(u.map(d=>xge(d,d===t))).then(d=>{f===s.current&&(i(d),a(!1))})},[r,t]);return(0,f0.useEffect)(()=>{l();let u=setInterval(l,vGn);return()=>clearInterval(u)},[l]),(0,f0.useMemo)(()=>({entries:n,loading:o,refresh:l}),[n,o,l])}var zk=P(z(),1);function a1r({shell:e,children:t}){let{socket:r,selection:n,launch:i,topBar:o,sidebarCollapse:a}=e,s=o1r(r.nodeSelection);return(0,zk.jsx)(M$e.Provider,{value:s,children:(0,zk.jsx)(Q2e.Provider,{value:o,children:(0,zk.jsx)(zTe.Provider,{value:a,children:(0,zk.jsx)(Pz.Provider,{value:n,children:(0,zk.jsx)(K$e.Provider,{value:r.nodeSelection,children:(0,zk.jsx)(Xu.Provider,{value:n.selectedNode,children:(0,zk.jsx)(mTe.Provider,{value:i,children:t})})})})})})})}var s1r=P(z(),1),l1r=ut((0,s1r.jsx)("path",{d:"M20 18c1.1 0 1.99-.9 1.99-2L22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2zM4 6h16v10H4z"}),"Computer");var c1r=P(ge(),1);var d0=P(z(),1),bGn={ml:1,textTransform:"none",fontSize:12};function u1r(){let{nodes:e,names:t,visible:r,selected:n,select:i}=Bu(),[o,a]=(0,c1r.useState)(null);return!r||!e||!n?null:(0,d0.jsxs)(d0.Fragment,{children:[(0,d0.jsx)(qt,{size:"small",color:"inherit",startIcon:(0,d0.jsx)(l1r,{fontSize:"small"}),"aria-label":"Machine","aria-haspopup":"menu",onClick:s=>a(s.currentTarget),sx:bGn,children:(0,d0.jsx)(LY,{nodes:e,name:n})}),(0,d0.jsx)(Dl,{anchorEl:o,open:!!o,onClose:()=>a(null),children:t.map(s=>(0,d0.jsx)(fn,{selected:s===n,onClick:()=>{i(s),a(null)},sx:{fontSize:13},children:(0,d0.jsx)(LY,{nodes:e,name:s,showVersion:!0})},s))})]})}var MY=P(ge(),1);function f1r(e,t){return[...e[0].slice(0,-1),String(t+1)]}var w0e=P(z(),1);function d1r({index:e,label:t,...r}){let{chords:n}=Kn("navTab");return(0,w0e.jsx)(lr,{describeChild:!0,title:(0,w0e.jsx)(ed,{label:t,chords:[f1r(n,e)]}),children:(0,w0e.jsx)(Av,{label:t,...r})})}var dze=P(ge(),1);function h1r(e,t){let{bound:r}=Kn("navTab"),n=e.length,i=(0,dze.useCallback)(a=>(Bz(a,r)??n)<n,[r,n]),o=(0,dze.useCallback)(a=>{let s=e[Bz(a,r)??-1];s&&t(s)},[e,t,r]);No(i,o)}var k0e=P(ge(),1);function p1r(){let[e,t]=(0,k0e.useState)(!1);return(0,k0e.useEffect)(()=>{let r=!1;return(async()=>{try{let i=await(await fetch("/api/news/nav")).json();r||t(i?.showInNav===!0)}catch{r||t(!1)}})(),()=>{r=!0}},[]),e}var _0e=P(ge(),1);async function xGn(e,t){let r=await fetch(tn(`/api/releases/configured?cwd=${encodeURIComponent(e)}`,t));return r.ok?(await r.json())?.configured===!0:void 0}function m1r(e){let[t,r]=(0,_0e.useState)(null),n=yr(),i=`${n??""}\0${e}`;return(0,_0e.useEffect)(()=>{if(!e)return;let o=!1;return xGn(e,n).catch(()=>{}).then(a=>{o||r({key:i,configured:a})}),()=>{o=!0}},[e,n,i]),t?.key===i?t.configured:void 0}var g1r=P(ge(),1);function y1r(e){let{pathname:t}=Io(),r=Xi(),n=t==="/releases"||t.startsWith("/releases/");(0,g1r.useEffect)(()=>{e===!1&&n&&r("/sessions",{replace:!0})},[e,n,r])}var TGn={path:"/sessions",label:"Sessions"},SGn={path:"/backlog",label:"Backlog"},CGn={path:"/next",label:"Next"},wGn={path:"/releases",label:"Releases"},kGn={path:"/news",label:"News"};function v1r(e,t){return[TGn,SGn,CGn,...e?[wGn]:[],...t?[kGn]:[]]}var hze=P(z(),1);function b1r({cwd:e}){let t=Io(),r=Xi(),n=m1r(e),i=p1r();y1r(n);let o=n===!0,a=(0,MY.useMemo)(()=>v1r(o,i),[o,i]),s=(0,MY.useMemo)(()=>a.map(f=>f.path),[a]),l=a.findIndex(f=>t.pathname.startsWith(f.path)),u=(0,MY.useCallback)(f=>{t.pathname!==f&&r(f)},[t.pathname,r]);return h1r(s,u),(0,hze.jsx)(U_,{value:l===-1?!1:l,textColor:"inherit",indicatorColor:"secondary",children:a.map((f,d)=>(0,hze.jsx)(d1r,{index:d,label:f.label,onClick:()=>u(f.path)},f.path))})}var x1r=P(z(),1),T1r=ut((0,x1r.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m5 11h-4v4h-2v-4H7v-2h4V7h2v4h4z"}),"AddCircle");var IY=P(z(),1),_Gn={color:"success.light"};function S1r(){let[,e]=Pc(),{label:t,chords:r}=Kn("newSession");return(0,IY.jsx)(lr,{title:(0,IY.jsx)(ed,{label:t,chords:r}),children:(0,IY.jsx)(ir,{size:"small",sx:_Gn,"aria-label":"New session",onClick:()=>e(i=>(i.set("new",""),i),{replace:!0}),children:(0,IY.jsx)(T1r,{})})})}var R0e=P(ge(),1);var E0e=P(z(),1),EGn={color:"inherit"};function C1r({cwd:e}){let[t,r]=(0,R0e.useState)(null),n=yr();return(0,R0e.useEffect)(()=>{if(!e){r(null);return}let i=!1;return(async()=>{try{let a=await(await fetch(tn(`/api/github-url?cwd=${encodeURIComponent(e)}`,n))).json();i||r(a?.url??null)}catch{i||r(null)}})(),()=>{i=!0}},[e,n]),t?(0,E0e.jsx)(lr,{title:"Open in GitHub",children:(0,E0e.jsx)(ir,{sx:EGn,onClick:()=>window.open(t,"_blank"),children:(0,E0e.jsx)(uP,{})})}):null}var _1r=P(ge(),1);var k1r=P(ge(),1);var A0e=P(z(),1);function w1r({window:e,windowSeconds:t,fallbackLabel:r,now:n}){let i=e?.used_percentage;if(i==null)return null;let o=Tk(i,e?.resets_at,t,n),a=e?.resets_at!=null?Rge(e.resets_at,n):r;return(0,A0e.jsxs)(le,{component:"span",children:[(0,A0e.jsxs)(le,{component:"span",sx:{color:Sk(o)},children:[Math.round(i),"%"]})," ",(0,A0e.jsxs)(le,{component:"span",sx:{color:"text.secondary"},children:["(",a,")"]})]})}var Hk=P(z(),1);function P0e({rateLimits:e}){let t=Ck(3e4),r=[{window:e.five_hour,windowSeconds:18e3,fallbackLabel:"5h"},{window:e.seven_day,windowSeconds:604800,fallbackLabel:"7d"}].filter(n=>n.window?.used_percentage!=null);return(0,Hk.jsx)(Hk.Fragment,{children:r.map((n,i)=>(0,Hk.jsxs)(k1r.Fragment,{children:[i>0?(0,Hk.jsx)(le,{component:"span",sx:{color:"text.secondary",mr:.5},children:","}):null,(0,Hk.jsx)(w1r,{window:n.window,windowSeconds:n.windowSeconds,fallbackLabel:n.fallbackLabel,now:t})]},n.fallbackLabel))})}var Uk=P(z(),1);function E1r({groups:e}){return(0,Uk.jsx)(Uk.Fragment,{children:e.map((t,r)=>(0,Uk.jsxs)(_1r.Fragment,{children:[(0,Uk.jsx)(le,{component:"span",sx:{color:"text.secondary",ml:r>0?1:0,mr:.5},children:gu(t.harness)}),(0,Uk.jsx)(P0e,{rateLimits:t.rateLimits})]},t.harness))})}function RGn(e){if(e==="over")return{level:"warn",boundary:100};if(e==="warn")return{level:"ok",boundary:75}}function AGn(e){if(e==="ok")return{level:"warn",boundary:75};if(e==="warn")return{level:"over",boundary:100}}function PGn(e,t,r,n){if(e>=t)return;let i=e/t;return Math.round(r-n*(1-i))}function P1r(e,t,r,n){if(t==null)return{kind:"unprojectable"};let i=H$e(t,r,n);if(i==null)return{kind:"unprojectable"};let o=Tk(e,t,r,n),a=RGn(o),s=AGn(o);return{kind:"projected",recovery:a&&{level:a.level,pct:a.boundary*i,at:PGn(e,a.boundary,t,r)},worse:s&&{level:s.level,pct:s.boundary*i}}}function L1r(e,t){return e.at==null?"not before reset":`${e.level==="ok"?"green":"under"} in ${Rge(e.at,t)}`}var h0=P(z(),1);function pze({direction:e,threshold:t}){let r=e==="back",n={display:"inline-flex",gap:.5,minWidth:"6ch",justifyContent:r?"flex-end":"flex-start"};if(!t)return(0,h0.jsx)(le,{component:"span",sx:n});let i=(0,h0.jsx)(le,{component:"span",sx:{opacity:.6},children:r?"\u2190":"\u2192"}),o=(0,h0.jsxs)(le,{component:"span",sx:{color:Sk(t.level)},children:[Math.round(t.pct),"%"]});return(0,h0.jsx)(le,{component:"span",sx:n,children:r?(0,h0.jsxs)(h0.Fragment,{children:[o,i]}):(0,h0.jsxs)(h0.Fragment,{children:[i,o]})})}var Wk=P(z(),1);function M1r({label:e,pct:t,resetsAt:r,windowSeconds:n,now:i}){let o=Tk(t,r,n,i),a=P1r(t,r,n,i),s=a.kind==="projected"?a:void 0;return(0,Wk.jsxs)(le,{sx:{display:"flex",alignItems:"baseline",gap:.75},children:[(0,Wk.jsx)(le,{component:"span",sx:{minWidth:"2ch"},children:e}),(0,Wk.jsx)(pze,{direction:"back",threshold:s?.recovery}),(0,Wk.jsxs)(le,{component:"span",sx:{minWidth:"4ch",textAlign:"right",color:Sk(o)},children:[Math.round(t),"%"]}),(0,Wk.jsx)(pze,{direction:"forward",threshold:s?.worse}),(0,Wk.jsx)(le,{component:"span",sx:{opacity:.6},children:s?s.recovery&&L1r(s.recovery,i):"no projection yet"})]})}function I1r(e){return[{label:"5h",window:e.five_hour,windowSeconds:18e3},{label:"7d",window:e.seven_day,windowSeconds:604800}].flatMap(t=>t.window?.used_percentage==null?[]:[{label:t.label,pct:t.window.used_percentage,resetsAt:t.window.resets_at,windowSeconds:t.windowSeconds}])}var D1r=P(z(),1);function L0e({rateLimits:e,now:t}){return I1r(e).map(r=>(0,D1r.jsx)(M1r,{label:r.label,pct:r.pct,resetsAt:r.resetsAt,windowSeconds:r.windowSeconds,now:t},r.label))}var BR=P(z(),1);function N1r({groups:e}){let t=Ck(3e4);return(0,BR.jsxs)(le,{sx:{fontFamily:"monospace",fontSize:12},children:[e.map(r=>(0,BR.jsxs)(le,{sx:{mb:.5},children:[(0,BR.jsx)(le,{sx:{opacity:.8},children:gu(r.harness)}),(0,BR.jsx)(L0e,{rateLimits:r.rateLimits,now:t})]},r.harness)),(0,BR.jsx)(le,{sx:{mt:.5,opacity:.6},children:"Account usage per harness \u2014 view history"})]})}function O1r(e){return e?.five_hour?.used_percentage!=null||e?.seven_day?.used_percentage!=null}function B1r(e,t){let r=[];O1r(e)&&r.push({harness:"claude",rateLimits:e});for(let[n,i]of Object.entries(t))O1r(i)&&r.push({harness:n,rateLimits:i});return r}var DY=P(z(),1),mze="Claude account usage (5h / 7d windows) \u2014 view history";function F1r({rateLimits:e}){let t=Ck(3e4);return(0,DY.jsxs)(le,{sx:{fontFamily:"monospace",fontSize:12},children:[(0,DY.jsx)(L0e,{rateLimits:e,now:t}),(0,DY.jsx)(le,{sx:{mt:.5,opacity:.6},children:mze})]})}var FR=P(z(),1),LGn={display:"flex",alignItems:"center",ml:2,fontFamily:"monospace",fontSize:13},MGn={};function $1r({rateLimits:e,harnessRateLimits:t=MGn}){let r=B1r(e,t),n=r.every(s=>s.harness==="claude"),i=e,o=mze,a="Usage";return r.length>0&&n?(o=(0,FR.jsx)(F1r,{rateLimits:i}),a=(0,FR.jsx)(P0e,{rateLimits:i})):r.length>0&&(o=(0,FR.jsx)(N1r,{groups:r}),a=(0,FR.jsx)(E1r,{groups:r})),(0,FR.jsx)(lr,{title:o,children:(0,FR.jsx)(xn,{component:ys,to:"/usage",underline:"hover",color:"inherit",sx:LGn,children:a})})}var p0=P(z(),1),IGn={color:"inherit",mr:1.5};function z1r({reconnecting:e}){let{pending:t,error:r,clearError:n,restart:i}=xk("webserver",e);return(0,p0.jsxs)(p0.Fragment,{children:[(0,p0.jsx)(lr,{title:"Restart web server",children:(0,p0.jsx)("span",{children:(0,p0.jsx)(ir,{sx:IGn,disabled:t,onClick:i,children:t?(0,p0.jsx)(mo,{size:24}):(0,p0.jsx)(vge,{})})})}),(0,p0.jsx)(vu,{error:r,onClose:n})]})}var W1r=P(ge(),1);var H1r=P(ge(),1);function U1r(e){let t=Oi().palette.primary.main;No(Kn("focusRepoPicker").matches,(0,H1r.useCallback)(()=>bu({locate:()=>e.current?.querySelector("button")??null,focus:r=>r.focus()},t),[e,t]))}var NY=P(z(),1),DGn={width:240,ml:2};function V1r({repos:e,selected:t,onSelect:r}){let n=(0,W1r.useRef)(null);U1r(n);let{chords:i}=Kn("focusRepoPicker");return(0,NY.jsx)(le,{ref:n,sx:DGn,children:(0,NY.jsx)(Zee,{label:t?J1(t):"Select repo...",tooltip:(0,NY.jsx)(ed,{label:"Repo",chords:i}),children:o=>(0,NY.jsx)(Gmr,{repos:e,selected:t,onSelect:r,close:o})})})}var evr=P(ge(),1);var OY=P(ge(),1);function M0e(e){let[t,r]=(0,OY.useState)([]),[n,i]=(0,OY.useState)(!0),o=yr();return(0,OY.useEffect)(()=>{if(!e){r([]),i(!1);return}let a=!1;return i(!0),fetch(tn(`/api/pr-list?cwd=${encodeURIComponent(e)}`,o)).then(s=>s.json()).then(s=>{a||(r(Array.isArray(s?.prs)?s.prs:[]),i(!1))}).catch(()=>{a||(r([]),i(!1))}),()=>{a=!0}},[e,o]),{prs:t,loading:n}}var gze=P(z(),1);function yze({text:e}){return(0,gze.jsx)(le,{sx:{p:1.5},children:(0,gze.jsx)(Oe,{sx:{fontSize:13,color:"text.secondary"},children:e})})}var $R=P(z(),1);function G1r({pr:e,highlighted:t,onHover:r,onPick:n}){let i=Yge(t);return(0,$R.jsx)(fn,{ref:i,selected:t,onMouseDown:o=>o.preventDefault(),onMouseEnter:r,onClick:()=>n(e),sx:{alignItems:"flex-start",py:.75,whiteSpace:"normal"},children:(0,$R.jsxs)(Rt,{spacing:.25,sx:{minWidth:0},children:[(0,$R.jsxs)(Oe,{sx:{fontSize:13,lineHeight:1.3,fontWeight:500},children:[e.title,e.isDraft&&(0,$R.jsx)(sn,{label:"Draft",size:"small",variant:"outlined",sx:{ml:.75,height:18,fontSize:10,verticalAlign:"middle"}})]}),(0,$R.jsxs)(Oe,{sx:{fontSize:11,color:"text.secondary"},children:["#",e.number," \xB7 ",e.author," \xB7 ",Do(e.createdAt)]})]})})}var vze=P(z(),1);function q1r({prs:e,highlight:t,onHighlight:r,onPick:n}){return(0,vze.jsx)(Cp,{dense:!0,disablePadding:!0,sx:{maxHeight:200,overflowY:"auto"},children:e.map((i,o)=>(0,vze.jsx)(G1r,{pr:i,highlighted:o===t,onHover:()=>r(o),onPick:n},i.number))})}var Y1r=P(ge(),1);function j1r(e,t){let r=t.trim().toLowerCase();if(!r)return e;let n=r.replace(/^#/,"");return e.filter(i=>i.title.toLowerCase().includes(r)||i.author.toLowerCase().includes(r)||n!==""&&String(i.number).includes(n))}function K1r(e,t,r){let[n,i]=(0,Y1r.useState)(""),o=j1r(e,n),{highlight:a,setHighlight:s,onKeyDown:l}=Ak(o,n,t,r);return{filter:n,setFilter:i,filtered:o,highlight:a,setHighlight:s,onKeyDown:l,select:f=>{t(f),r()}}}var Vk=P(z(),1),X1r={...OP,left:"auto",width:320,maxHeight:"none",overflowY:"visible"};function Z1r({cwd:e,onPick:t,close:r}){let{prs:n,loading:i}=M0e(e),o=K1r(n,t,r);return i||n.length===0?(0,Vk.jsx)(an,{elevation:4,sx:X1r,children:(0,Vk.jsx)(yze,{text:i?"Loading open PRs\u2026":"No open PRs"})}):(0,Vk.jsxs)(an,{elevation:4,sx:X1r,children:[(0,Vk.jsx)(yB,{autoFocus:!0,value:o.filter,onChange:o.setFilter,onKeyDown:o.onKeyDown,placeholder:"Filter PRs..."}),o.filtered.length===0?(0,Vk.jsx)(yze,{text:"No PRs match"}):(0,Vk.jsx)(q1r,{prs:o.filtered,highlight:o.highlight,onHighlight:o.setHighlight,onPick:o.select})]})}var J1r=P(z(),1);function Q1r({cwd:e,onPick:t,close:r}){return(0,J1r.jsx)(Z1r,{cwd:e,onPick:t,close:r})}var Gk=P(z(),1);function tvr({cwd:e,disabled:t,onSelect:r}){let{prs:n,loading:i}=M0e(e),[o,a]=(0,evr.useState)(null);return i||n.length===0?null:(0,Gk.jsxs)(Gk.Fragment,{children:[(0,Gk.jsx)(Zee,{label:"prs",disabled:t,children:s=>(0,Gk.jsx)(Q1r,{cwd:e,onPick:a,close:s})}),o&&(0,Gk.jsx)(Ipe,{pr:o,onSelect:s=>{r(o,s),a(null)},onCancel:()=>a(null)})]})}var nvr=P(z(),1);function rvr({onStartRun:e,cwd:t}){let r=Gee(t);return!t||r.length===0?null:(0,nvr.jsx)(Wee,{runs:r,onSelect:n=>e(n,t)})}var BY=P(z(),1);function ivr({onCreateAssist:e,onStartRun:t}){let{selectedCwd:r,selectedNode:n}=$n();return(0,BY.jsxs)(Rt,{direction:"row",spacing:.5,sx:{alignItems:"center","&:not(:empty)":{ml:2}},children:[(0,BY.jsx)(tvr,{cwd:r,disabled:!r,onSelect:(i,o)=>e([...o,String(i.number)],r,{...PP(i),node:n})}),(0,BY.jsx)(rvr,{onStartRun:(i,o)=>t(i,o,void 0,void 0,n),cwd:r})]})}var Ud=P(z(),1),NGn={minHeight:48,pl:1,pr:14};function ovr({socket:e,selection:t}){let{collapsed:r,onToggleCollapsed:n}=rS();return(0,Ud.jsxs)(H_,{variant:"dense",disableGutters:!0,sx:NGn,children:[r&&(0,Ud.jsx)(ste,{collapsed:r,onToggleCollapsed:n}),(0,Ud.jsx)(z1r,{reconnecting:e.reconnecting}),(0,Ud.jsx)(b1r,{cwd:t.selectedCwd}),(0,Ud.jsx)(u1r,{}),(0,Ud.jsx)(V1r,{repos:t.repos,selected:t.selectedCwd,onSelect:t.setSelectedCwd}),(0,Ud.jsxs)(le,{sx:{display:"flex",alignItems:"center",ml:1},children:[(0,Ud.jsx)(Jee,{cwd:t.selectedCwd}),(0,Ud.jsx)(C1r,{cwd:t.selectedCwd}),(0,Ud.jsx)(S1r,{})]}),(0,Ud.jsx)(ivr,{onCreateAssist:e.createAssistSession,onStartRun:e.startRun}),(0,Ud.jsx)($1r,{rateLimits:e.rateLimits,harnessRateLimits:e.harnessRateLimits})]})}var I0e=P(ge(),1);function avr(){let[e,t]=(0,I0e.useState)(null);return(0,I0e.useEffect)(()=>{let r=!1;return(async()=>{try{let i=await(await fetch("/api/health")).json();!r&&typeof i?.nodeName=="string"&&t(i.nodeName)}catch{}})(),()=>{r=!0}},[]),e}var lvr=P(z(),1),OGn={lineHeight:"32px",bgcolor:"transparent"};function svr(){let e=avr();return e?(0,lvr.jsx)(D1e,{sx:OGn,children:e}):null}var cvr=P(z(),1),uvr=ut((0,cvr.jsx)("path",{d:"M20 5H4c-1.1 0-1.99.9-1.99 2L2 17c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m-9 3h2v2h-2zm0 3h2v2h-2zM8 8h2v2H8zm0 3h2v2H8zm-1 2H5v-2h2zm0-3H5V8h2zm9 7H8v-2h8zm0-4h-2v-2h2zm0-3h-2V8h2zm3 3h-2v-2h2zm0-3h-2V8h2z"}),"Keyboard");var fvr=P(z(),1),dvr=ut((0,fvr.jsx)("path",{d:"m12 16.5 4-4h-3v-9h-2v9H8zm9-13h-6v1.99h6v14.03H3V5.49h6V3.5H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2"}),"SystemUpdateAlt");var hvr=P(z(),1),pvr=ut((0,hvr.jsx)("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6"}),"Brightness4");var mvr=P(z(),1),gvr=ut((0,mvr.jsx)("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6m0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4"}),"Brightness7");var bze=P(z(),1);function yvr({mode:e}){return e==="dark"?(0,bze.jsx)(gvr,{fontSize:"small"}):(0,bze.jsx)(pvr,{fontSize:"small"})}var vvr=P(z(),1),bvr=ut((0,vvr.jsx)("path",{d:"m20.38 8.57-1.23 1.85a8 8 0 0 1-.22 7.58H5.07A8 8 0 0 1 15.58 6.85l1.85-1.23A10 10 0 0 0 3.35 19a2 2 0 0 0 1.72 1h13.85a2 2 0 0 0 1.74-1 10 10 0 0 0-.27-10.44zm-9.79 6.84a2 2 0 0 0 2.83 0l5.66-8.49-8.49 5.66a2 2 0 0 0 0 2.83"}),"Speed");var IB=P(z(),1);function xvr(){let e=zpe();return(0,IB.jsxs)(fn,{onClick:()=>$ft(!e),children:[(0,IB.jsx)(oT,{children:(0,IB.jsx)(bvr,{fontSize:"small"})}),(0,IB.jsx)(Sp,{children:e?"Hide render HUD":"Show render HUD"})]})}var el=P(z(),1);function Tvr({mode:e,restartLabel:t,updateLabel:r,onToggleColorMode:n,onShowShortcuts:i,onRestart:o,onUpdate:a}){return[(0,el.jsxs)(fn,{onClick:n,children:[(0,el.jsx)(oT,{children:(0,el.jsx)(yvr,{mode:e})}),(0,el.jsx)(Sp,{children:"Toggle dark mode"})]},"color-mode"),(0,el.jsx)(xvr,{},"render-hud"),(0,el.jsxs)(fn,{onClick:i,children:[(0,el.jsx)(oT,{children:(0,el.jsx)(uvr,{fontSize:"small"})}),(0,el.jsx)(Sp,{children:"Keyboard shortcuts"})]},"shortcuts"),(0,el.jsx)(no,{},"restart-divider"),(0,el.jsxs)(fn,{onClick:o,children:[(0,el.jsx)(oT,{children:(0,el.jsx)(Tee,{fontSize:"small"})}),(0,el.jsx)(Sp,{children:t})]},"restart"),(0,el.jsxs)(fn,{onClick:a,children:[(0,el.jsx)(oT,{children:(0,el.jsx)(dvr,{fontSize:"small"})}),(0,el.jsx)(Sp,{children:r})]},"update")]}var Svr=P(ge(),1);var wvr=P(z(),1);function Cvr({peer:e,onRestart:t,onClose:r}){let[n,i]=(0,Svr.useState)(!1);return(0,wvr.jsx)(vo,{title:`Restart ${e}?`,message:`Restarts the sessions daemon and web server on ${e}. Its sessions resume when the daemon is back. This page stays open.`,confirmLabel:"Restart",busy:n,autoFocusConfirm:!0,onConfirm:()=>{i(!0),t(e).finally(r)},onCancel:r})}function kvr(e){let t=new Map;for(let r of e){let n=t.get(r.group)??[];n.push(r),t.set(r.group,n)}return[...t].map(([r,n])=>({name:r,shortcuts:n}))}var BGn=Object.keys(TP);function _vr(){let e=SP();return kvr(BGn.map(t=>qT(t,e)))}var ap=P(z(),1),FGn={display:"flex",alignItems:"center",justifyContent:"space-between",pr:1},$Gn={display:"flex",alignItems:"center",justifyContent:"space-between",gap:2,py:.5};function Evr({onClose:e}){let t=_vr();return(0,ap.jsxs)(Ps,{open:!0,onClose:e,maxWidth:"xs",fullWidth:!0,"aria-labelledby":"shortcuts-dialog-title",children:[(0,ap.jsxs)(Il,{id:"shortcuts-dialog-title",sx:FGn,children:["Keyboard shortcuts",(0,ap.jsx)(ir,{size:"small","aria-label":"Close",onClick:e,children:(0,ap.jsx)(da,{fontSize:"small"})})]}),(0,ap.jsx)(Ml,{dividers:!0,children:t.map(r=>(0,ap.jsxs)(le,{component:"section",sx:{mb:1.5},children:[(0,ap.jsx)(Oe,{variant:"overline",color:"text.secondary",children:r.name}),r.shortcuts.map(n=>(0,ap.jsxs)(le,{sx:$Gn,children:[(0,ap.jsx)(Oe,{variant:"body2",children:n.label}),(0,ap.jsx)(Rt,{direction:"row",spacing:.5,children:(0,ap.jsx)(tee,{chords:n.chords})})]},n.label))]},r.name))})]})}var zR=P(z(),1);function Rvr({reconnecting:e,onClose:t}){let{pending:r,error:n,clearError:i,restart:o}=xk(aB.target,e);return(0,zR.jsxs)(zR.Fragment,{children:[(0,zR.jsx)(vo,{title:aB.label,message:aB.message,confirmLabel:"Restart",busy:r,autoFocusConfirm:!0,onConfirm:()=>{o()},onCancel:t}),(0,zR.jsx)(vu,{error:n,onClose:i})]})}var Pvr=P(z(),1);function zGn(e){return e?{title:`Update assist on ${e}?`,message:`This runs 'assist update' on ${e} as a new session, then restarts its web server. This page stays open.`}:{title:"Update assist",message:"This starts a new session running 'assist update'. Its output will appear in the terminal."}}function Avr({peer:e,onConfirm:t,onClose:r}){return(0,Pvr.jsx)(vo,{...zGn(e),confirmLabel:"Update",onConfirm:()=>{t(),r()},onCancel:r})}var m0=P(ge(),1);async function HGn(e){try{let t=await fetch(`/api/node-doctor?link=${encodeURIComponent(e)}`);return t.ok?(await t.json()).hop:null}catch{return null}}async function Lvr(e,t){let r=await HGn(e);if(!r)return t;let n=r.remediation?` \u2014 ${r.remediation}`:"";return`${t}: ${r.hop} hop failed: ${r.error}${n}`}var $2=P(ge(),1);function Mvr(e){let{nodes:t}=Bu(),[r,n]=(0,$2.useState)(null),i=(0,$2.useRef)(!1),o=r?t?.links.find(l=>l.name===r.peer):void 0;(0,$2.useEffect)(()=>{if(!(!r||!o)){if(o.state!=="connected"){i.current=!0;return}i.current&&(n(null),e(r.describe(r.peer,o.peerVersion)))}},[r,o,e]);let a=(0,$2.useCallback)((l,u)=>{i.current=!1,n({peer:l,describe:u})},[]),s=(0,$2.useCallback)(()=>n(null),[]);return{watch:a,stop:s}}var UGn=9e4;function D0e(){let[e,t]=(0,m0.useState)(null),[r,n]=(0,m0.useState)(null),i=(0,m0.useRef)(void 0),o=(0,m0.useCallback)(f=>{clearTimeout(i.current),t(f)},[]),{watch:a,stop:s}=Mvr(o);(0,m0.useEffect)(()=>()=>clearTimeout(i.current),[]);let l=(0,m0.useCallback)(async(f,d)=>{n(await Lvr(f,d))},[]);return{requestThenAwait:(0,m0.useCallback)(async(f,d,h,p)=>{let m;try{m=await h()}catch{}return m?.ok?(a(f,p),clearTimeout(i.current),i.current=setTimeout(()=>{s(),l(f,`${f} did not come back`)},UGn),!0):(await l(f,`${d} failed (${await oB(m)})`),!1)},[l,a,s]),back:e,clearBack:()=>t(null),error:r,clearError:()=>n(null)}}var WGn=(e,t)=>t?`${e} is back (v${t})`:`${e} is back`;function Ivr(){let{requestThenAwait:e,...t}=D0e();return{restart:n=>e(n,`Restart ${n}`,()=>bk("both",n),WGn),...t}}var FY=P(ge(),1);var g0=P(ge(),1);function Dvr(e){return e.commandType==="assist"&&e.assistArgs?.[0]==="update"&&e.status==="done"}function N0e(e,t,r){let[n,i]=(0,g0.useState)(!1),[o,a]=(0,g0.useState)(!1),s=(0,g0.useRef)(!1),l=(0,g0.useRef)(e);l.current=e;let u=(0,g0.useRef)(new Set),f=(0,g0.useCallback)(()=>{s.current=!1,a(!1),u.current=new Set(l.current.filter(Dvr).map(d=>d.id)),i(!0)},[]);return(0,g0.useEffect)(()=>{if(!n||o)return;if(t){s.current=!0;return}if(!s.current)return;e.some(h=>Dvr(h)&&h.node===r&&!u.current.has(h.id))&&a(!0)},[n,o,t,e,r]),{arm:f,completed:o}}var Nvr=(e,t)=>t?`${e} updated to v${t}`:`${e} updated`;function VGn(e){return fetch(`/api/self-update?node=${encodeURIComponent(e)}`,{method:"POST"})}function Ovr(e){let{nodes:t}=Bu(),{launchAssist:r}=$l(),{requestThenAwait:n,...i}=D0e(),[o,a]=(0,FY.useState)(null),[s,l]=(0,FY.useState)(),u=m=>t?.links.find(g=>g.name===m)?.state,{arm:f,completed:d}=N0e(e,u(s)!=="connected",s);(0,FY.useEffect)(()=>{!d||!s||(l(void 0),n(s,`Restart ${s}'s web server`,()=>bk("webserver",s),Nvr))},[d,s,n]);let h=async m=>{a(`Updating assist on ${m}\u2026`),await n(m,`Update ${m}`,()=>VGn(m),Nvr),a(null)};return{update:m=>{if(u(m)!=="connected"){h(m);return}l(m),f(),r(["update"],void 0,{node:m})},progress:o,...i}}var y0=P(z(),1);function Bvr({dialog:e,peer:t,sessions:r,reconnecting:n,onClose:i}){let{launchAssist:o,armUpdateReload:a}=$l(),s=Ivr(),l=Ovr(r);return(0,y0.jsxs)(y0.Fragment,{children:[e==="shortcuts"&&(0,y0.jsx)(Evr,{onClose:i}),e==="restart"&&t&&(0,y0.jsx)(Cvr,{peer:t,onRestart:s.restart,onClose:i}),e==="restart"&&!t&&(0,y0.jsx)(Rvr,{reconnecting:n,onClose:i}),e==="update"&&(0,y0.jsx)(Avr,{peer:t,onConfirm:()=>{if(t){l.update(t);return}a(),o(["update"])},onClose:i}),(0,y0.jsx)(oY,{notices:s}),(0,y0.jsx)(oY,{notices:l})]})}var Fvr=P(z(),1),$vr=ut((0,Fvr.jsx)("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6"}),"Settings");var zvr=P(ge(),1);var $Y=P(z(),1);function Hvr(){let e=Xi(),t=(0,zvr.useCallback)(()=>e("/config"),[e]),{matches:r,chords:n}=Kn("openConfig");return No(r,t),(0,$Y.jsx)(lr,{describeChild:!0,title:(0,$Y.jsx)(ed,{label:"Config",chords:n}),children:(0,$Y.jsx)(ir,{size:"small",sx:{color:"inherit"},"aria-label":"Config",onClick:t,children:(0,$Y.jsx)($vr,{fontSize:"small"})})})}var Uvr=P(z(),1),Wvr=ut((0,Uvr.jsx)("path",{d:"M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z"}),"Menu");var O0e=P(ge(),1);var zY=P(z(),1);function Vvr({open:e,onOpen:t}){let r=(0,O0e.useRef)(null),{matches:n,chords:i}=Kn("openMenu");return No(n,(0,O0e.useCallback)(()=>{r.current&&t(r.current)},[t])),(0,zY.jsx)(lr,{describeChild:!0,title:(0,zY.jsx)(ed,{label:"Menu",chords:i}),children:(0,zY.jsx)(ir,{ref:r,onClick:o=>t(o.currentTarget),size:"small",sx:{color:"inherit"},"aria-label":"Open menu","aria-haspopup":"true","aria-expanded":e?"true":void 0,children:(0,zY.jsx)(Wvr,{fontSize:"small"})})})}var xze=P(z(),1),Gvr=ut([(0,xze.jsx)("path",{d:"M12 5.99 19.53 19H4.47zM12 2 1 21h22z"},"0"),(0,xze.jsx)("path",{d:"M13 16h-2v2h2zm0-6h-2v5h2z"},"1")],"WarningAmber");var Tze=P(z(),1);function qvr(){let e=b0e();return!e||e===Fk?null:(0,Tze.jsx)(lr,{title:`Daemon is running v${e}, but this page was served by v${Fk}. Restart the daemon to match.`,children:(0,Tze.jsx)(Gvr,{fontSize:"small",color:"warning","aria-label":"Version mismatch"})})}var jvr=e=>({display:"inline-flex",alignItems:"center",gap:.75,px:1,py:.25,borderRadius:999,fontSize:12,lineHeight:1.5,color:"inherit",opacity:e?1:.55,bgcolor:e?"rgba(255,255,255,0.16)":"transparent",transition:"opacity .2s ease, background-color .2s ease","&:hover, &:focus-visible":{opacity:1,bgcolor:"rgba(255,255,255,0.12)"},"& .ready-dot":{width:8,height:8,borderRadius:"50%",bgcolor:"#ffb74d",boxShadow:"0 0 0 2px rgba(0,0,0,.15)"},"& .ready-count":{fontWeight:500}});var ov=P(z(),1);function Yvr(){let{entries:e}=Z9();if(!Fk)return null;let t=e.filter(yge).length;return(0,ov.jsxs)(ov.Fragment,{children:[(0,ov.jsxs)(Dn,{component:ys,to:"/updates","aria-label":t?`Updates: ${t} node${t>1?"s have":" has"} an update ready`:"Updates",sx:jvr(t>0),children:[t>0&&(0,ov.jsx)("span",{className:"ready-dot","aria-hidden":!0}),(0,ov.jsxs)("span",{children:["v",Fk]}),t>0&&(0,ov.jsxs)("span",{className:"ready-count",children:[t," ready"]})]}),(0,ov.jsx)(qvr,{})]})}var DB=P(z(),1);function Kvr({open:e,onOpen:t}){return(0,DB.jsxs)(le,{sx:{position:"fixed",top:8,right:16,zIndex:r=>r.zIndex.drawer+2,display:"flex",alignItems:"center",gap:.5,color:"inherit"},children:[(0,DB.jsx)(Yvr,{}),(0,DB.jsx)(Hvr,{}),(0,DB.jsx)(Vvr,{open:e,onOpen:t})]})}var HR=P(ge(),1);var Zvr=P(ge(),1);var Xvr=!0,GGn=new Set(["openMenu","cycleCards"]),qGn=Object.keys(TP).filter(e=>!GGn.has(e));function Qvr(e,t){let r=SP();(0,Zvr.useEffect)(()=>{if(!e)return;let n=i=>{qGn.some(o=>qT(o,r).matches(i))&&t()};return globalThis.addEventListener("keydown",n,Xvr),()=>globalThis.removeEventListener("keydown",n,Xvr)},[e,t,r])}function Jvr(){let[e,t]=(0,HR.useState)(null),[r,n]=(0,HR.useState)(!0),i=!!e,o=(0,HR.useCallback)(()=>t(null),[]),a=(0,HR.useCallback)(s=>{n(!0),t(s)},[]);return Qvr(i,(0,HR.useCallback)(()=>{n(!1),t(null)},[])),{anchorEl:e,open:i,close:o,openAt:a,restoreFocus:r}}var HY=P(ge(),1);function ebr(e){No(Kn("shortcutsSheet").matches,e)}function tbr(){let[e,t]=(0,HY.useState)(null);ebr((0,HY.useCallback)(()=>t("shortcuts"),[]));let r=(0,HY.useCallback)(()=>t(null),[]);return{dialog:e,showDialog:t,closeDialog:r}}function rbr(){let{nodes:e,selected:t}=Bu();return e&&t&&t!==e.local?t:void 0}function nbr(e){return{restartLabel:e?`Restart ${e}`:aB.label,updateLabel:e?`Update assist on ${e}`:"Update assist"}}var z2=P(z(),1);function ibr({mode:e,toggle:t,sessions:r,reconnecting:n}){let{anchorEl:i,open:o,close:a,openAt:s,restoreFocus:l}=Jvr(),{dialog:u,showDialog:f,closeDialog:d}=tbr(),h=rbr(),p=m=>()=>{a(),f(m)};return(0,z2.jsxs)(z2.Fragment,{children:[(0,z2.jsx)(Kvr,{open:o,onOpen:s}),(0,z2.jsxs)(Dl,{anchorEl:i,open:o,onClose:a,disableRestoreFocus:!l,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[(0,z2.jsx)(svr,{}),Tvr({mode:e,...nbr(h),onToggleColorMode:()=>{t(),a()},onShowShortcuts:p("shortcuts"),onRestart:p("restart"),onUpdate:p("update")})]}),(0,z2.jsx)(Bvr,{dialog:u,peer:h,sessions:r,reconnecting:n,onClose:d})]})}var sbr=P(ge(),1);var abr=P(z(),1);function obr({conflict:e,onConfirm:t,onCancel:r}){let{name:n,cwd:i,port:o,group:a}=e.existing,s=$p(i),l=o?` on port ${o}`:"",u=s?` in ${s}`:"",f=a?`, holding the ${a} server slot`:"";return(0,abr.jsx)(vo,{title:a?`Replace the ${a} server?`:"Replace running server?",message:`"${n}" is already serving${l}${u}${f}. Replace it \u2014 stop the running server and start this one?`,confirmLabel:"Replace",confirmColor:"error",onConfirm:t,onCancel:r})}var B0e=P(z(),1);function lbr({socket:e,children:t}){let{serverConflict:r,clearServerConflict:n,retrySession:i,stopSession:o,startRun:a,discardSession:s}=e,l=(0,sbr.useMemo)(()=>({onStop:o,onStart:a,onDiscard:s}),[o,a,s]),u=()=>{r&&(r.runName?a(r.runName,r.cwd,!0,r.launchedFrom,r.node):r.sessionId&&i(r.sessionId,!0),n())};return(0,B0e.jsxs)(uTe.Provider,{value:l,children:[t,r&&(0,B0e.jsx)(obr,{conflict:r,onConfirm:u,onCancel:n})]})}var cbr=new Map;function ubr(e,t){if(!zre())return;let r=cbr.get(e);if(cbr.set(e,t),!!r)for(let[n,i]of Object.entries(t))Object.is(i,r[n])||oy(`\u0394 ${e}.${n}`)}var $0e=P(ge(),1);function fbr(e,t,r){if(!t)return null;let n=e[t];if(!n)return null;let i=r.find(o=>o.id===n);return!i||zp(i)!==t?null:n}function av(e,t,r){if(e)return t.find(n=>n.id===e)??r.find(n=>n.sessionId===e)}function F0e(){let{pathname:e}=Io();return e.startsWith("/backlog")||e.startsWith("/usage")}function dbr({selectedCwd:e,selectedCardId:t,sessions:r,history:n,activeByRepo:i,onSelect:o}){let a=av(t,r,n),s=a&&zp(a),l=!!(s&&s===e),u=fbr(i,e,r),f=(0,$0e.useRef)(t),d=F0e();(0,$0e.useEffect)(()=>{let h=f.current!==t&&!!s;f.current=t,!(d||h||l||!u)&&o(u)},[t,s,l,u,o,d])}var U0e=P(ge(),1);function hbr(e,t,r,n){return av(e,t,r)?.cwd||n}function pbr(e,t,r,n){let i=hbr(e,t,r,n.cwd),o=av(e,t,r);return{cwd:i,node:o?.cwd?o.node:n.node}}function mbr(e,t){let r=new Set,n=new Set,i=[];for(let o of t){if(o.cwdMissing)continue;let a=HT(o),s=zp(o);!a||!s||r.has(a)||n.has(s)||(r.add(a),n.add(s),i.push(s))}return e&&!r.has(vP(e,t))&&!n.has(e)&&i.unshift(e),i}var sp="";function jGn(e){let t=new Map([[sp,[]]]);for(let r of e){let n=r.node??sp;t.set(n,[...t.get(n)??[],r])}return t}function gbr(e,t){var n;let r=new Map;for(let[i,o]of jGn(t)){let a=i===sp?e:"";for(let s of mbr(a,o)){let l=vP(s,o),u=r.get(l)??{key:l,origin:l===s?void 0:l,clones:{}};(n=u.clones)[i]??(n[i]=s),r.set(l,u)}}return[...r.values()]}function ybr(e,t){return e.clones[t]??e.clones[sp]??Object.values(e.clones)[0]}function UY(e,t){return e.find(r=>Object.values(r.clones).includes(t))}function NB(e,t){return!e||e===t?sp:e}var Sze=P(ge(),1);function vbr(e,t){let r=(0,Sze.useCallback)((i,o)=>{let a=NB(o,t),s=UY(e,i);return s?s.clones[a]:a===sp?i:void 0},[e,t]),n=(0,Sze.useCallback)(i=>UY(e,i)?.origin,[e]);return{cloneOn:r,originOf:n}}var z0e=P(ge(),1);function bbr(e,t,r,n){let i=(0,z0e.useRef)(e);(0,z0e.useEffect)(()=>{if(i.current===e)return;i.current=e;let o=UY(t,r)?.clones[e];o&&n(o,e)},[e,t,r,n])}var OB=P(ge(),1);function xbr(e,t,r){if(t.node!==void 0)return t.node;let n=new Set(e.flatMap(i=>Object.entries(i.clones).filter(([,o])=>o===t.cwd).map(([o])=>o)));return n.has(r)?r:n.size===0||n.has(sp)?sp:[...n][0]}function Tbr(e,t,r,n){let[i,o]=(0,OB.useState)({cwd:e}),a=(0,OB.useCallback)((l,u)=>o({cwd:l,node:u}),[]);(0,OB.useEffect)(()=>{e&&!i.cwd&&o({cwd:e})},[e,i.cwd]);let s=xbr(t,{cwd:i.cwd,node:i.node===void 0?void 0:NB(i.node,n)},r);return{selectedCwd:i.cwd,selectedNode:s||void 0,setSelectedCwd:a}}var Sbr=P(ge(),1);function H0e(e,t,r){let n=av(e,t,r);return n&&zp(n)}function Cbr(e,t,r,n){let i=H0e(e,t,r),o=av(e,t,r)?.node??sp;(0,Sbr.useEffect)(()=>{i&&n(i,o)},[i,o,n])}function wbr(e,t,r,n,i){let o=i.nodes?.local,a=NB(i.selected,o),s=(0,U0e.useMemo)(()=>gbr(e,t),[e,t]),{selectedCwd:l,selectedNode:u,setSelectedCwd:f}=Tbr(e,s,a,o);Cbr(r,n,t,f),bbr(a,s,l,f);let{cloneOn:d,originOf:h}=vbr(s,o),p=(0,U0e.useMemo)(()=>s.map(y=>ybr(y,a)),[s,a]),{cwd:m,node:g}=pbr(r,n,t,{cwd:l,node:u});return(0,U0e.useMemo)(()=>({repos:p,selectedCwd:l,selectedNode:u,worktreeCwd:m,worktreeNode:g,setSelectedCwd:f,cloneOn:d,originOf:h}),[p,l,u,m,g,f,d,h])}var V0e=P(ge(),1);var qk=P(ge(),1);var kbr=P(ge(),1),W0e="assist:reloaded-after-update";function _br(e){(0,kbr.useEffect)(()=>{globalThis.sessionStorage?.getItem(W0e)&&(globalThis.sessionStorage.removeItem(W0e),e({message:"Reloaded after updating assist",sessionId:null}))},[e])}function Ebr(e,t,r,n){let{arm:i,completed:o}=N0e(e,t),a=(0,qk.useRef)(!1),s=(0,qk.useCallback)(()=>{globalThis.sessionStorage?.setItem(W0e,"1")},[]),{error:l,restart:u}=xk("webserver",t,s);return _br(r),(0,qk.useEffect)(()=>{l&&n(l)},[l,n]),(0,qk.useEffect)(()=>{!o||a.current||(a.current=!0,u())},[o,u]),{armUpdateReload:(0,qk.useCallback)(()=>{a.current=!1,i()},[i])}}function Rbr(e){let{armUpdateReload:t}=Ebr(e.sessions,e.reconnecting,e.setSuccess,e.setError),r=(0,V0e.useMemo)(()=>({launchAssist:e.createAssistSession,launchAgentInStream:e.createSessionInStream,resumeSession:e.resumeSession,armUpdateReload:t}),[e.createAssistSession,e.createSessionInStream,e.resumeSession,t]),n=Xi(),i=(0,V0e.useCallback)(o=>{e.selectSession(o),n("/sessions"),e.clearSuccess()},[n,e.selectSession,e.clearSuccess]);return{launch:r,viewLaunchedSession:i}}var Abr=P(ge(),1);function Pbr(e,t,r,n){let i=H0e(e,t,r);(0,Abr.useEffect)(()=>{e&&i&&n({type:"set-active",cwd:i,sessionId:e})},[e,i,n])}var G0e=P(ge(),1);function Lbr(e,t){let r=(0,G0e.useRef)(new Map);(0,G0e.useEffect)(()=>{let n=new Set;for(let{id:i,status:o}of e)n.add(i),r.current.get(i)!==o&&(r.current.set(i,o),console.debug(`[sessions] render session ${i} status=${o}`),t({type:"ui-status",sessionId:i,status:o}));for(let i of r.current.keys())n.has(i)||r.current.delete(i)},[e,t])}var BB=P(ge(),1),Mbr="assist.sessions.node";function YGn(){try{return localStorage.getItem(Mbr)}catch{return null}}function KGn(e){try{localStorage.setItem(Mbr,e)}catch{}}function Ibr(e){let[t,r]=(0,BB.useState)(YGn),n=(0,BB.useCallback)(i=>{r(i),KGn(i)},[]);return(0,BB.useMemo)(()=>{let i=e?[e.local,...e.links.map(o=>o.name)]:[];return{nodes:e,names:i,visible:i.length>1,selected:t&&i.includes(t)?t:e?.local,select:n}},[e,t,n])}var Nbr=P(ge(),1);function Dbr(e){let t=e;if(t.type==="create")return{cwd:t.cwd,title:t.prompt?.trim()||(t.design?"New design session":"New session"),node:t.node};if(t.type==="create-assist"){let r=t.title?.trim();return{cwd:t.cwd,title:r||"New session",named:!!r,node:t.node}}return null}function Obr(e,t){return(0,Nbr.useCallback)(r=>{let n=e.current;n?.readyState===WebSocket.OPEN&&n.send(JSON.stringify(r));let i=Dbr(r);i&&t(i)},[e,t])}var sv=P(ge(),1);function q0e(e,t,r,n,i){e({type:"create",prompt:r||void 0,cwd:n,...t,...i?{node:i}:{}})}function Bbr(e){return(t,r,n)=>q0e(e,{design:!0},t,r,n)}function Fbr(e){return(t,r,n,i)=>q0e(e,{harness:t},r,n,i)}function $br(e){return(t,r,n)=>q0e(e,{auto:!0},t,r,n)}function zbr(e){return(t,r,n)=>e({type:"create-assist",assistArgs:t,cwd:r,...n})}function Hbr(e){return(t,r,n,i,o)=>e({type:"resume",sessionId:t,cwd:r,name:n,harness:i,node:o})}function Ubr(e,t){return(r,n)=>{t.delete(r),e({type:"retry",sessionId:r,replace:n})}}function Wbr(e,t){return r=>{t.delete(r),e({type:"restart",sessionId:r})}}function Vbr(e,t){return r=>{e({type:"dismiss",sessionId:r}),t.delete(r)}}function Gbr(e,t){return r=>{e({type:"discard",sessionId:r}),t.delete(r)}}function qbr(e){return t=>e({type:"stop",sessionId:t})}function jbr(e){return(t,r,n,i,o)=>e({type:"create-run",runName:t,cwd:r,replace:n,launchedFrom:i,node:o})}function Ybr(e){return(t,r)=>e({type:"set-autorun",sessionId:t,enabled:r})}function Kbr(e){return(t,r)=>e({type:"set-autoadvance",sessionId:t,enabled:r})}function Xbr(e){return(t,r)=>e({type:"set-starred",sessionId:t,starred:r})}function Zbr(e){return(t,r)=>e({type:"input",sessionId:t,data:r,viewerId:iY})}function Qbr(e){return(t,r,n,i)=>e({type:"resize",sessionId:t,cols:r,rows:n,viewerId:iY,claim:i})}function Jbr(e,t){return(r,n)=>{let i=e.get(r);return i&&n(i),t.set(r,n),()=>t.delete(r)}}function exr(e){return(t,r,n,i)=>e({type:"pr-decision",sessionId:t,requestId:r,decision:n,...i})}var UR=P(ge(),1);function txr(e){return(t,r,n)=>e({type:"create",prompt:r||void 0,cwd:n,joinSessionId:t,auto:!0})}function rxr(e){return{createSession:(0,UR.useMemo)(()=>$br(e),[e]),createSessionInStream:(0,UR.useMemo)(()=>txr(e),[e]),createDesignSession:(0,UR.useMemo)(()=>Bbr(e),[e]),createHarnessSession:(0,UR.useMemo)(()=>Fbr(e),[e]),createAssistSession:(0,UR.useMemo)(()=>zbr(e),[e]),resumeSession:(0,UR.useMemo)(()=>Hbr(e),[e])}}var WY=P(ge(),1);function nxr(e,t){let r=(0,WY.useCallback)((a,s)=>{Ubr(e,t.current)(a,s)},[e,t]),n=(0,WY.useCallback)(a=>{Wbr(e,t.current)(a)},[e,t]),i=(0,WY.useCallback)(a=>{Vbr(e,t.current)(a)},[e,t]),o=(0,WY.useCallback)(a=>{Gbr(e,t.current)(a)},[e,t]);return{retrySession:r,restartSession:n,dismissSession:i,discardSession:o}}function ixr(e,t,r){let n={...rxr(e),sendInput:(0,sv.useMemo)(()=>Zbr(e),[e]),sendResize:(0,sv.useMemo)(()=>Qbr(e),[e]),sendPrDecision:(0,sv.useMemo)(()=>exr(e),[e]),setAutoRun:(0,sv.useMemo)(()=>Ybr(e),[e]),setAutoAdvance:(0,sv.useMemo)(()=>Kbr(e),[e]),setStarred:(0,sv.useMemo)(()=>Xbr(e),[e]),stopSession:(0,sv.useMemo)(()=>qbr(e),[e]),startRun:(0,sv.useMemo)(()=>jbr(e),[e])},i=(0,sv.useMemo)(()=>Jbr(t.current,r.current),[t,r]);return{...n,...nxr(e,t),onOutput:i}}var VY=P(ge(),1);function oxr(e,t,r){let n=(0,VY.useCallback)(s=>{r(s),e({type:"fetch-transcript",sessionId:s})},[e,r]),i=(0,VY.useCallback)(s=>e({type:"fetch-user-messages",sessionId:s}),[e]),o=(0,VY.useCallback)(()=>{r(null)},[r]),a=(0,VY.useCallback)(s=>{r(null),t(s)},[t,r]);return{viewTranscript:n,fetchUserMessages:i,clearTranscript:o,selectSession:a}}var Kk=P(ge(),1);function axr(e,t){let r=new Set(t.map(i=>i.id)),n=null;for(let i of Object.values(e))r.has(i)&&(n=i);return n}var lxr=P(ge(),1);function sxr(e,t,r=null){return t!==null?e.some(n=>n.id===t)?t:e[0]?.id??null:r&&e.some(n=>n.id===r)?r:e[0]?.id??null}function cxr(e,t,r){let n=F0e();(0,lxr.useEffect)(()=>{if(n){t(null);return}t(i=>sxr(e,i,r))},[e,t,r,n])}var j0e=P(ge(),1);function uxr(){let[e,t]=(0,j0e.useState)({}),[r,n]=(0,j0e.useState)(null),[i,o]=(0,j0e.useState)(null);return{activeByRepo:e,setActiveByRepo:t,daemonVersion:r,setDaemonVersion:n,nodes:i,setNodes:o}}var v0=P(ge(),1);function fxr(e,t){if(!t.some(n=>e.has(n)))return e;let r=new Set(e);for(let n of t)r.delete(n);return r}function dxr(e,t){let r=[];for(let n of t){let i=e.get(n.id);i!==void 0&&i!==n.startedAt&&r.push(n.id)}return r}function hxr(e,t){return t.filter(r=>r.commandType==="run"&&e.get(r.id)!==r.startedAt).map(r=>r.id)}var XGn=1500;function pxr(){let[e,t]=(0,v0.useState)(new Set),r=(0,v0.useRef)(new Map),n=(0,v0.useRef)(new Map),i=(0,v0.useCallback)(s=>{t(l=>l.has(s)?l:new Set(l).add(s))},[]),o=(0,v0.useCallback)(s=>{let l=n.current;for(let u of s)clearTimeout(l.get(u)),l.set(u,setTimeout(()=>{l.delete(u),i(u)},XGn))},[i]);(0,v0.useEffect)(()=>{let s=n.current;return()=>{for(let l of s.values())clearTimeout(l)}},[]);let a=(0,v0.useCallback)(s=>{let l=dxr(r.current,s),u=hxr(r.current,s);r.current=new Map(s.map(f=>[f.id,f.startedAt])),l.length&&t(f=>fxr(f,l)),o(u)},[o]);return{initialized:e,markInitialized:i,syncSessions:a}}var jk=P(ge(),1);function mxr(){let[e,t]=(0,jk.useState)(null),[r,n]=(0,jk.useState)(null),[i,o]=(0,jk.useState)(null),a=(0,jk.useCallback)(()=>t(null),[]),s=(0,jk.useCallback)(()=>n(null),[]),l=(0,jk.useCallback)(()=>o(null),[]);return{error:e,setError:t,clearError:a,success:r,setSuccess:n,clearSuccess:s,serverConflict:i,setServerConflict:o,clearServerConflict:l}}var lv=P(ge(),1);function gxr(e,t){return[...e,{...t,status:"launching"}]}function Y0e(e){return e.find(t=>t.status==="launching")}function yxr(e){let t=Y0e(e);return t?e.filter(r=>r.id!==t.id):e}function vxr(e,t){let r=Y0e(e);return r?Cze(e,r.id,t):e}function Cze(e,t,r){return e.map(n=>n.id===t&&n.status==="launching"?{...n,status:"error",error:r}:n)}function bxr(e,t){return e.filter(r=>r.id!==t)}var xxr=P(ge(),1);var ZGn=6e4,QGn="Launch timed out \u2014 the session did not start.";function Txr(e,t){(0,xxr.useEffect)(()=>{let r=e.filter(i=>i.status==="launching");if(r.length===0)return;let n=r.map(i=>setTimeout(()=>t(o=>Cze(o,i.id,QGn)),Math.max(0,ZGn-(Date.now()-i.startedAt))));return()=>n.forEach(clearTimeout)},[e,t])}function Sxr(){let[e,t]=(0,lv.useState)([]),r=(0,lv.useRef)([]),n=(0,lv.useCallback)(l=>{r.current=l(r.current),t(r.current)},[]),i=(0,lv.useCallback)(l=>{n(u=>gxr(u,{id:crypto.randomUUID(),startedAt:Date.now(),...l}))},[n]),o=(0,lv.useCallback)(()=>{let l=Y0e(r.current);return n(yxr),l?.named?l.title:void 0},[n]),a=(0,lv.useCallback)(l=>n(u=>vxr(u,l)),[n]),s=(0,lv.useCallback)(l=>n(u=>bxr(u,l)),[n]);return Txr(e,n),{pendingLaunches:e,addPendingLaunch:i,resolvePendingLaunch:o,failPendingLaunch:a,dismissPendingLaunch:s}}var GY=P(ge(),1);function Cxr(){let[e,t]=(0,GY.useState)(null),[r,n]=(0,GY.useState)({}),i=(0,GY.useCallback)((o,a)=>{o!=="claude"&&n(s=>({...s,[o]:a}))},[]);return{rateLimits:e,setRateLimits:t,harnessRateLimits:r,setHarnessRateLimits:i}}var wxr=P(ge(),1);function kxr(e,t){return(0,wxr.useCallback)(r=>{e(r),t(r)},[e,t])}var K0e=P(ge(),1);function _xr(){let[e,t]=(0,K0e.useState)(null),[r,n]=(0,K0e.useState)(null),[i,o]=(0,K0e.useState)(null);return{transcript:e,setTranscript:t,viewingTranscriptSessionId:r,setViewingTranscriptSessionId:n,userMessages:i,setUserMessages:o}}var Yk=P(ge(),1);function Exr(e,t){let r=e.sessionId;t.buffers.current?.delete(r),t.handlers.current?.get(r)?.("\x1Bc")}function Rxr(e,t){let r=e.sessionId,n=t.resolvePendingLaunch();t.setViewingTranscriptSessionId(null),t.setActiveId(r),e.isNew&&t.setSuccess({message:n?`Started ${n}`:"New session started",sessionId:r})}function Axr(e,t){let r=e.message;t.setError(r),t.failPendingLaunch(r)}function Pxr(e,t){let r=e.rateLimits,n=e.harness;!n||n==="claude"?t.setRateLimits(r):t.setHarnessRateLimits?.(n,r)}function Lxr(e,t){t.setNodes({local:e.local,links:e.links??[]})}function Mxr(e,t){t.setSuccess({message:e.message,sessionId:null})}function Ixr(e,t){let r=e.sessionId,n=t.buffers.current?.get(r)??"";t.buffers.current?.set(r,n+e.data),t.handlers.current?.get(r)?.(e.data),t.markInitialized(r)}function Dxr(e,t){t.setServerConflict({existing:e.existing,runName:e.runName,cwd:e.cwd,sessionId:e.sessionId,launchedFrom:e.launchedFrom,node:e.node})}function Nxr(e,t){let r=e.sessions;t.setSessions(r),e.cwd&&t.setCurrentCwd(e.cwd),t.setActiveByRepo(e.active??{})}var JGn={sessions:Nxr,created:Rxr,history:(e,t)=>t.setHistory(e.sessions),transcript:(e,t)=>t.setTranscript({sessionId:e.sessionId,messages:e.messages}),"user-messages":(e,t)=>t.setUserMessages({sessionId:e.sessionId,messages:e.messages}),hello:(e,t)=>t.setDaemonVersion(e.version),nodes:Lxr,error:Axr,notice:Mxr,"run-conflict":Dxr,limits:Pxr,clear:Exr,output:Ixr};function Oxr(e,t){JGn[e.type]?.(e,t)}function Bxr(e,t={}){let r=location.protocol==="https:"?"wss:":"ws:",n=new WebSocket(`${r}//${location.host}/ws`);return n.onopen=()=>{t.onOpen?.(),n.send(JSON.stringify({type:"hello"})),n.send(JSON.stringify({type:"history"}))},n.onmessage=i=>{Oxr(JSON.parse(i.data),e)},n.onclose=()=>t.onClose?.(),n}function Fxr(e,t,r,n){let i=!1,o,a=0,s=!1,l=()=>{i||t(Bxr(e,{onOpen:()=>{s&&r(),s=!1,n(!1),a=0},onClose:()=>{if(i)return;s=!0,n(!0);let u=Math.min(300*2**a,2e3);a+=1,o=setTimeout(l,u)}}))};return l(),()=>{i=!0,o&&clearTimeout(o)}}function $xr(e){let t=(0,Yk.useRef)(null),[r,n]=(0,Yk.useState)(!1),{handleSessions:i,markInitialized:o,buffers:a,handlers:s}=e;(0,Yk.useEffect)(()=>{let u=()=>{a.current?.clear();let d=s.current;if(d)for(let h of d.values())h("\x1Bc")},f=Fxr({...e,setSessions:i},d=>{t.current=d},u,n);return()=>{f(),t.current?.close()}},[i,o,a,s]);let l=(0,Yk.useCallback)(()=>{let u=t.current;u?.readyState===WebSocket.OPEN&&u.send(JSON.stringify({type:"history"}))},[]);return{wsRef:t,requestHistory:l,reconnecting:r}}function zxr(){let[e,t]=(0,Kk.useState)([]),[r,n]=(0,Kk.useState)([]),[i,o]=(0,Kk.useState)(null),a=uxr(),s=_xr(),[l,u]=(0,Kk.useState)(""),f=mxr(),d=Sxr(),h=Cxr(),{initialized:p,markInitialized:m,syncSessions:g}=pxr(),y=(0,Kk.useRef)(new Map),v=(0,Kk.useRef)(new Map),b=kxr(g,t),{wsRef:x,requestHistory:S,reconnecting:C}=$xr({handleSessions:b,setHistory:n,setActiveId:o,...a,...s,setCurrentCwd:u,...f,...d,...h,markInitialized:m,buffers:y,handlers:v});return cxr(e,o,axr(a.activeByRepo,e)),{sessions:e,history:r,activeId:i,setActiveId:o,...a,...s,currentCwd:l,...f,...d,...h,initialized:p,wsRef:x,buffers:y,handlers:v,requestHistory:S,reconnecting:C}}function Hxr(){let e=zxr(),{wsRef:t,buffers:r,handlers:n,addPendingLaunch:i,activeId:o,sessions:a}=e,s=Ibr(e.nodes),l=Obr(t,i),u=ixr(l,r,n);Pbr(o,a,e.history,l),Lbr(a,l);let f=oxr(l,e.setActiveId,e.setViewingTranscriptSessionId);return{...e,...u,...f,nodeSelection:s}}var FB=P(ge(),1);var Uxr="assist:sidebar-collapsed";function Wxr(){let[e,t]=(0,FB.useState)(()=>Bd(Uxr).length>0),r=(0,FB.useCallback)(()=>{t(n=>{let i=!n;return Fd(Uxr,i?[!0]:[]),i})},[]);return(0,FB.useMemo)(()=>({collapsed:e,onToggleCollapsed:r}),[e,r])}var Vxr=P(ge(),1);function Gxr(){(0,Vxr.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await fetch("/api/hotkeys");if(!t.ok)return;let r=await t.json();e||g5.set(r)}catch{}})(),()=>{e=!0}},[])}var X0e=P(ge(),1);function qxr(){let[e,t]=(0,X0e.useState)(!0);return(0,X0e.useEffect)(()=>{let r=!1;return(async()=>{try{let i=await(await fetch("/api/session-layout")).json();r||t(!!i?.topBar)}catch{t(!0)}})(),()=>{r=!0}},[]),e}function jxr(){let e=Hxr(),t=mpe(e),r=wbr(e.currentCwd,e.history,t,e.sessions,e.nodeSelection);dbr({selectedCwd:r.selectedCwd,selectedCardId:t,sessions:e.sessions,history:e.history,activeByRepo:e.activeByRepo,onSelect:e.selectSession});let{launch:n,viewLaunchedSession:i}=Rbr(e),o=qxr();Gxr();let a=Wxr();return ubr("shell",{...e,selection:r,launch:n,topBar:o,sidebarCollapse:a}),{socket:e,selection:r,launch:n,viewLaunchedSession:i,topBar:o,sidebarCollapse:a}}var b0=P(z(),1),eqn={zIndex:e=>e.zIndex.drawer+1},tqn={minHeight:48};function Yxr({mode:e,toggle:t}){let r=jxr(),{socket:n,selection:i,viewLaunchedSession:o}=r;return(0,b0.jsx)(a1r,{shell:r,children:(0,b0.jsxs)(aze.Provider,{value:n.daemonVersion,children:[(0,b0.jsx)(ibr,{mode:e,toggle:t,sessions:n.sessions,reconnecting:n.reconnecting}),(0,b0.jsx)(v1e,{position:"fixed",elevation:1,sx:eqn,children:(0,b0.jsx)(ovr,{socket:n,selection:i})}),(0,b0.jsx)(H_,{variant:"dense",sx:tqn}),(0,b0.jsx)(lbr,{socket:n,children:(0,b0.jsx)(Y0r,{socket:n})}),(0,b0.jsx)(i1r,{socket:n,onViewLaunchedSession:o})]})})}var Kxr=P(ge(),1);function Xxr(){let[e,t]=(0,Kxr.useState)(()=>{try{return localStorage.getItem("theme-mode")??"dark"}catch{return"dark"}});return{mode:e,toggle:()=>t(n=>{let i=n==="dark"?"light":"dark";try{localStorage.setItem("theme-mode",i)}catch{}return i})}}var Xk=P(z(),1),rqn={MuiButtonBase:{styleOverrides:{root:{cursor:"pointer","&.Mui-disabled":{cursor:"default"}}}},MuiLink:{styleOverrides:{root:{cursor:"pointer"}}}};function nqn(){let{mode:e,toggle:t}=Xxr(),r=(0,Qxr.useMemo)(()=>_0({palette:{mode:e,...e==="dark"&&{background:{default:"#1e1e1e",paper:"#252526"}}},components:rqn}),[e]);return(0,Xk.jsxs)(JK,{theme:r,children:[(0,Xk.jsx)(zX,{}),(0,Xk.jsx)(Yxr,{mode:e,toggle:t})]})}var iqn=$2e([{path:"*",element:(0,Xk.jsx)(nqn,{})}]);function oqn(){return(0,Xk.jsx)(L2e,{router:iqn})}var Zxr=document.getElementById("app");Zxr&&(0,Jxr.createRoot)(Zxr).render((0,Xk.jsx)(oqn,{}));})();
|
|
3979
3979
|
/*! Bundled license information:
|
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.795.
|
|
9
|
+
version: "0.795.2",
|
|
10
10
|
type: "module",
|
|
11
11
|
main: "dist/index.js",
|
|
12
12
|
bin: {
|
|
@@ -18816,6 +18816,52 @@ function tokenize(command) {
|
|
|
18816
18816
|
return tokens;
|
|
18817
18817
|
}
|
|
18818
18818
|
|
|
18819
|
+
// src/commands/cliHook/extractQuotedSubstitutions.ts
|
|
18820
|
+
function extractQuotedSubstitutions(command) {
|
|
18821
|
+
const bodies = [];
|
|
18822
|
+
scanUnquoted(command, 0, (i, inDouble) => {
|
|
18823
|
+
if (!inDouble) return void 0;
|
|
18824
|
+
if (command[i] === "$" && command[i + 1] === "(") {
|
|
18825
|
+
const end = findClosingParen(command, i + 2);
|
|
18826
|
+
bodies.push(command.slice(i + 2, end));
|
|
18827
|
+
return end;
|
|
18828
|
+
}
|
|
18829
|
+
if (command[i] === "`") {
|
|
18830
|
+
const end = command.indexOf("`", i + 1);
|
|
18831
|
+
const stop2 = end === -1 ? command.length : end;
|
|
18832
|
+
bodies.push(command.slice(i + 1, stop2));
|
|
18833
|
+
return stop2;
|
|
18834
|
+
}
|
|
18835
|
+
return void 0;
|
|
18836
|
+
});
|
|
18837
|
+
return bodies;
|
|
18838
|
+
}
|
|
18839
|
+
function findClosingParen(command, start2) {
|
|
18840
|
+
let depth = 1;
|
|
18841
|
+
let close = command.length;
|
|
18842
|
+
scanUnquoted(command, start2, (i, inDouble) => {
|
|
18843
|
+
if (inDouble) return void 0;
|
|
18844
|
+
if (command[i] === "(") depth++;
|
|
18845
|
+
else if (command[i] === ")" && --depth === 0) {
|
|
18846
|
+
close = i;
|
|
18847
|
+
return command.length;
|
|
18848
|
+
}
|
|
18849
|
+
return void 0;
|
|
18850
|
+
});
|
|
18851
|
+
return close;
|
|
18852
|
+
}
|
|
18853
|
+
function scanUnquoted(command, start2, visit2) {
|
|
18854
|
+
let inSingle = false;
|
|
18855
|
+
let inDouble = false;
|
|
18856
|
+
for (let i = start2; i < command.length; i++) {
|
|
18857
|
+
const ch = command[i];
|
|
18858
|
+
if (ch === "\\" && !inSingle) i++;
|
|
18859
|
+
else if (ch === "'" && !inDouble) inSingle = !inSingle;
|
|
18860
|
+
else if (ch === '"' && !inSingle) inDouble = !inDouble;
|
|
18861
|
+
else if (!inSingle) i = visit2(i, inDouble) ?? i;
|
|
18862
|
+
}
|
|
18863
|
+
}
|
|
18864
|
+
|
|
18819
18865
|
// src/commands/cliHook/isGhGraphqlIssueMutation.ts
|
|
18820
18866
|
import { readFileSync as readFileSync26 } from "fs";
|
|
18821
18867
|
var ISSUE_MUTATION = /\bmutation\b[\s\S]*\b(?:createIssue|updateIssue|deleteIssue|closeIssue|reopenIssue|transferIssue|pinIssue|unpinIssue|addComment|updateIssueComment|deleteIssueComment|addSubIssue|removeSubIssue|reprioritizeSubIssue)\s*\(/;
|
|
@@ -18862,20 +18908,40 @@ function unquote(value) {
|
|
|
18862
18908
|
return value.replace(/['"]/g, "");
|
|
18863
18909
|
}
|
|
18864
18910
|
|
|
18911
|
+
// src/commands/cliHook/splitSubstitutionTokens.ts
|
|
18912
|
+
var OPENER = /^(?:\w+=)?(?:\$\(|`|\()+/;
|
|
18913
|
+
var CLOSER = /[)`]+$/;
|
|
18914
|
+
var SUBSTITUTION_CLOSE = ")";
|
|
18915
|
+
function splitSubstitutionTokens(tokens) {
|
|
18916
|
+
return tokens.flatMap((token) => {
|
|
18917
|
+
const body = token.replace(OPENER, "");
|
|
18918
|
+
if (/['"]$/.test(body) || !CLOSER.test(body)) return body ? [body] : [];
|
|
18919
|
+
const inner = body.replace(CLOSER, "");
|
|
18920
|
+
return inner ? [inner, SUBSTITUTION_CLOSE] : [SUBSTITUTION_CLOSE];
|
|
18921
|
+
});
|
|
18922
|
+
}
|
|
18923
|
+
|
|
18865
18924
|
// src/commands/cliHook/isGhIssueApiWrite.ts
|
|
18866
18925
|
var WRITE_METHODS = /* @__PURE__ */ new Set(["POST", "PATCH", "PUT", "DELETE"]);
|
|
18867
18926
|
var BODY_FLAGS = ["-f", "-F", "--field", "--raw-field", "--input"];
|
|
18868
|
-
var COMMAND_OPERATORS = /* @__PURE__ */ new Set([
|
|
18927
|
+
var COMMAND_OPERATORS = /* @__PURE__ */ new Set([
|
|
18928
|
+
"&&",
|
|
18929
|
+
"||",
|
|
18930
|
+
";",
|
|
18931
|
+
"|",
|
|
18932
|
+
"&",
|
|
18933
|
+
SUBSTITUTION_CLOSE
|
|
18934
|
+
]);
|
|
18869
18935
|
var ISSUE_ENDPOINT = /(?:^|[/"'`])repos\/[^/\s"'`]+\/[^/\s"'`]+\/issues(?:$|[/?"'`])/;
|
|
18870
18936
|
function isGhIssueApiWrite(command) {
|
|
18871
|
-
const tokens = tokenize(command);
|
|
18937
|
+
const tokens = splitSubstitutionTokens(tokenize(command));
|
|
18872
18938
|
for (let i = 0; i + 1 < tokens.length; i++) {
|
|
18873
18939
|
if (tokens[i] !== "gh" || tokens[i + 1] !== "api") continue;
|
|
18874
18940
|
const args = argsUntilNextCommand(tokens.slice(i + 2));
|
|
18875
18941
|
if (targetsIssueEndpoint(args) && isWrite(args)) return true;
|
|
18876
18942
|
if (isGhGraphqlIssueMutation(args, command)) return true;
|
|
18877
18943
|
}
|
|
18878
|
-
return
|
|
18944
|
+
return extractQuotedSubstitutions(command).some(isGhIssueApiWrite);
|
|
18879
18945
|
}
|
|
18880
18946
|
function argsUntilNextCommand(tokens) {
|
|
18881
18947
|
const end = tokens.findIndex((token) => COMMAND_OPERATORS.has(token));
|