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