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