@staff0rd/assist 0.956.1 → 0.956.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/sessions/web/bundle.js +3 -3
- package/dist/index.js +987 -977
- package/package.json +1 -1
|
@@ -4013,15 +4013,15 @@ ${f.join(`
|
|
|
4013
4013
|
`)})}var UF=E($(),1);function o2r({entry:e,state:t,actions:r}){return(0,UF.jsxs)(J,{sx:{px:2,pb:2,pl:{xs:2,sm:7.5},display:"grid",gap:1.5},children:[(0,UF.jsx)(n2r,{entry:e,state:t,actions:r}),(0,UF.jsx)(Le,{variant:"caption",color:"text.secondary",children:"History \xB7 ~/.assist/watchers/"}),(0,UF.jsx)(i2r,{lines:e.status?.history??[]})]})}function WF(e){let t=e.status?.loop;return t!==void 0&&(t.phase!=="off"||t.paused===!0)}var GF=E($(),1),Wti={display:"flex",gap:.5,flexWrap:"wrap",justifyContent:{xs:"flex-start",sm:"flex-end"},gridColumn:{xs:"1 / -1",sm:"auto"}};function a2r({entry:e,state:t,actions:r}){let n=r.notices.busy[e.name],i=e.status?.loop.paused===!0;return(0,GF.jsxs)(J,{sx:Wti,children:[t.kind==="ready"&&(0,GF.jsx)(R1e,{entry:e,actions:r}),t.kind==="diverged"&&(0,GF.jsx)(k1e,{entry:e,actions:r}),WF(e)&&(0,GF.jsx)(Mt,{size:"small",disabled:n!==void 0,onClick:()=>{r.control(e,i?"resume":"pause")},children:i?"Resume":"Pause"})]})}var Gti={ready:"warning",diverged:"error"},s2r=e=>t=>{let r=Gti[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 l2r=E($(),1),c2r=ct((0,l2r.jsx)("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"}),"ArrowUpward");var u2r=E($(),1),f2r=ct((0,u2r.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 d2r=E($(),1),h2r=ct((0,d2r.jsx)("path",{d:"M6 2v6h.01L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-4 4-3.99-.01-.01H18V2zm10 14.5V20H8v-3.5l4-4zm-4-5-4-4V4h8v3.5z"}),"HourglassEmpty");var p2r=E($(),1),m2r=ct((0,p2r.jsx)("path",{d:"M6 19h4V5H6zm8-14v14h4V5z"}),"Pause");var g2r=E($(),1),y2r=ct((0,g2r.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 v2r=E($(),1),b2r=ct((0,v2r.jsx)("path",{d:"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z"}),"Warning");var A0=E($(),1),Vti={ok:{tone:"success",icon:(0,A0.jsx)(Sy,{})},ready:{tone:"warning",icon:(0,A0.jsx)(c2r,{})},diverged:{tone:"error",icon:(0,A0.jsx)(b2r,{})},retrying:{tone:"warning",icon:(0,A0.jsx)(l0e,{})},paused:{tone:"neutral",icon:(0,A0.jsx)(m2r,{})},off:{tone:"neutral",icon:(0,A0.jsx)(y2r,{})},loading:{tone:"neutral",icon:(0,A0.jsx)(h2r,{})},unavailable:{tone:"neutral",icon:(0,A0.jsx)(f2r,{})}};function qti(e,t){return t==="neutral"?e.palette.text.secondary:e.palette[t].main}function x2r({state:e}){let{tone:t,icon:r}=Vti[e.kind];return(0,A0.jsxs)(J,{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:qti(n,t),bgcolor:t==="neutral"?n.palette.action.hover:Dr(n.palette[t].main,.1),border:t==="neutral"?`1px solid ${n.palette.divider}`:0,"& svg":{fontSize:14}}),children:[r,e.label]})}var pX=E($(),1);function S2r({state:e}){return(0,pX.jsxs)(J,{sx:{...w1e,gridColumn:{xs:"2",sm:"auto"},gap:.25},children:[(0,pX.jsx)(x2r,{state:e}),(0,pX.jsx)(Le,{variant:"caption",color:"text.secondary",noWrap:!0,children:e.line})]})}var hv=E($(),1),T2r={gridColumn:{xs:"2",sm:"auto"}},jti={fontFamily:"fontFamilyMono",fontSize:12,fontVariantNumeric:"tabular-nums"};function C2r({entry:e}){let t=e.status;if(!t)return(0,hv.jsx)(Le,{variant:"caption",color:"text.secondary",sx:T2r,children:"\u2014"});let r=t.running!==t.built;return(0,hv.jsxs)(J,{sx:{...T2r,display:"flex",flexDirection:"column"},children:[(0,hv.jsxs)(J,{component:"span",sx:jti,children:["v",t.running,r&&(0,hv.jsxs)(hv.Fragment,{children:[" ",(0,hv.jsx)(J,{component:"span",sx:{color:"warning.main"},children:"\u2192"})," ","v",t.built]})]}),(0,hv.jsx)(Le,{variant:"caption",color:"text.secondary",children:r?"running \u2192 built":"running"})]})}function VF(e){return(e.status?.restart.length??0)>0}function w2r(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(e.loading)return{kind:"loading",label:"Checking",line:"waiting for node"};if(!t)return{kind:"unavailable",label:"Unavailable",line:e.error??"no update state"};let{loop:r}=t,n=lo(r.since);return r.phase==="diverged"?{kind:"diverged",label:"Diverged \xB7 fixing",line:`diverged ${n}${r.escalationId?` \xB7 session ${r.escalationId}`:""}`}:VF(e)?{kind:"ready",label:"Restart to update",line:`restart ${t.restart.map(zF).join(" + ")}${r.paused?" \xB7 paused":""}`}:w2r(r,n)}var pv=E($(),1);function _2r({entry:e,actions:t}){let[r,n]=(0,k2r.useState)(!1),i=g_(e);return(0,pv.jsxs)(J,{component:"article",sx:{"& + &":{borderTop:1,borderColor:"divider"}},children:[(0,pv.jsxs)(J,{sx:s2r(i.kind),children:[(0,pv.jsx)(Zxr,{open:r,label:`${r?"Hide":"Show"} history for ${e.name}`,onToggle:()=>n(o=>!o)}),(0,pv.jsx)(Qxr,{entry:e}),(0,pv.jsx)(C2r,{entry:e}),(0,pv.jsx)(S2r,{state:i}),(0,pv.jsx)(a2r,{entry:e,state:i,actions:t})]}),r&&(0,pv.jsx)(o2r,{entry:e,state:i,actions:t})]})}var E2r=E($(),1),P1e=ct((0,E2r.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 oGe=E(fe(),1);var qF=E($(),1);function R2r({entries:e,actions:t}){let[r,n]=(0,oGe.useState)(!1),[i,o]=(0,oGe.useState)(!1),a=e.filter(l=>g_(l).kind==="ready").length,s=e.some(l=>WF(l)&&!l.status?.loop.paused);return(0,qF.jsxs)(J,{sx:{display:"flex",gap:1,flexWrap:"wrap"},children:[(0,qF.jsx)(Mt,{variant:"outlined",size:"small",startIcon:(0,qF.jsx)(P1e,{}),disabled:!s||r,onClick:()=>{n(!0),t.checkAll(e).finally(()=>n(!1))},children:"Check now"}),(0,qF.jsx)(Mt,{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 A2r(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("loading")&&i.push(`${r("loading")} checking`),r("unavailable")&&i.push(`${r("unavailable")} unavailable`),i.join(" \xB7 ")}var W2r=E(fe(),1);function P2r(e,t){return`${e}:${t}`}var aGe=E(fe(),1);async function jF(e){if(!e)return"web server unreachable";try{return(await e.json()).error??`HTTP ${e.status}`}catch{return`HTTP ${e.status}`}}async function L2r(e,t){let r;try{r=await hr(Yr(`/api/updates/control?action=${t}`,e.local?void 0:e.name),{method:"POST"})}catch{}return r?.ok?void 0:jF(r)}var Yti=5e3,M2r={pause:"Pausing",resume:"Resuming",check:"Checking"};function I2r(e,t){let{mark:r,setError:n,setBack:i}=e,o=(0,aGe.useCallback)(async(s,l)=>{r(s.name,M2r[l]);let u=await L2r(s,l);return u&&n(`${M2r[l]} ${s.name} failed: ${u}`),r(s.name),t(),!u&&l==="check"&&setTimeout(t,Yti),!u},[r,n,t]),a=(0,aGe.useCallback)(async s=>{let l=s.filter(d=>WF(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 sGe=E(fe(),1);var mv=E(fe(),1);var YF={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 hr(`/api/restart?target=${e}${r}`,{method:"POST"})}var fS=E(fe(),1);var Kti=300,Xti=2,Zti="/api/health";async function Qti(){try{return(await hr(Zti,{cache:"no-store"})).ok}catch{return!1}}async function D2r(e){let t=0;for(;!e();){if(t=await Qti()?t+1:0,t>=Xti)return!e();await new Promise(r=>setTimeout(r,Kti))}return!1}function Jti(){return{sawDisconnect:!1,waiting:!1,abandoned:!0}}function N2r(e,t,r){let n=(0,fS.useRef)(Jti()),i=(0,fS.useRef)(r);i.current=r,(0,fS.useEffect)(()=>{let s=n.current;if(!(!e||s.abandoned)){if(t){s.sawDisconnect=!0;return}!s.sawDisconnect||s.waiting||(s.waiting=!0,D2r(()=>s.abandoned).then(l=>{l&&i.current()}))}},[e,t]);let o=(0,fS.useCallback)(()=>{n.current.abandoned=!0},[]),a=(0,fS.useCallback)(()=>{n.current.abandoned=!0,n.current={sawDisconnect:!1,waiting:!1,abandoned:!1}},[]);return(0,fS.useEffect)(()=>o,[o]),{arm:a,abandon:o}}var eri=15e3;function v_(e,t,r){let[n,i]=(0,mv.useState)(!1),[o,a]=(0,mv.useState)(null),s=(0,mv.useRef)(void 0),{arm:l,abandon:u}=N2r(n,t,()=>{clearTimeout(s.current),r?.(),globalThis.location.reload()});(0,mv.useEffect)(()=>()=>clearTimeout(s.current),[]);let f=(0,mv.useCallback)(async h=>{i(!0),l(),s.current=setTimeout(()=>{u(),i(!1),a("Web server did not come back")},eri);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,mv.useCallback)(()=>f(e),[f,e]);return{pending:n,error:o,clearError:()=>a(null),restart:d,restartTo:f}}function L1e(e){return e.local&&VF(e)}var O2r=15e3;async function M1e(e,t){try{let r=await hr(Yr("/api/updates",t?void 0:e),{signal:AbortSignal.timeout(O2r)}),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:tri(r)}}}function tri(e){return e instanceof DOMException&&e.name==="TimeoutError"?`No response after ${O2r/1e3}s`:e instanceof Error?e.message:"Failed to load update state"}var rri=2e3,nri=9e4,iri=e=>new Promise(t=>setTimeout(t,e));async function B2r(e,t){let r=Date.now()+nri;for(;Date.now()<r;){await iri(rri);let n=await M1e(e.name,e.local),i=n.status;if(i?.daemonReachable&&!t.some(o=>i.restart.includes(o)))return n}}async function F2r(e,t,r){let n;try{n=await y_(t,e.local?void 0:e.name)}catch{}if(!n?.ok)throw new Error(await jF(n));let i=await B2r(e,r);if(!i?.status)throw new Error(`${e.name} did not come back`);return i.status.running}async function $2r(e,t,r){try{let n=await F2r(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 z2r(e){return e.length>1?"both":e[0]}function H2r(e,t,r){let n=v_("webserver",e),i=(0,sGe.useCallback)(async a=>{let s=z2r(a.status?.restart??[]);if(s){if(t.mark(a.name,"Restarting"),L1e(a))return n.restartTo(s==="daemon"?"both":s);await $2r(a,s,t),t.mark(a.name),r()}},[n,t,r]),o=(0,sGe.useCallback)(async a=>{let s=a.filter(l=>g_(l).kind==="ready");await Promise.all(s.filter(l=>!L1e(l)).map(l=>i(l)));for(let l of s.filter(L1e))await i(l)},[i]);return{restart:i,restartReady:o,localError:n.error,clearLocalError:n.clearError}}var KF=E(fe(),1);function U2r(){let[e,t]=(0,KF.useState)(null),[r,n]=(0,KF.useState)(null),[i,o]=(0,KF.useState)({}),a=(0,KF.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 G2r(e,t){let{refresh:r}=FF(),n=U2r(),i=H2r(e,n,r),o=I2r(n,r),a=yy(t),s=(0,W2r.useCallback)(l=>{let u=l.status?.loop.escalationId;u&&a(l.local?u:P2r(l.name,u))},[a]);return{...i,...o,openFix:s,notices:n}}var P0=E($(),1);function V2r({reconnecting:e,selectSession:t}){let{entries:r,loading:n}=FF(),i=G2r(e,t),{notices:o}=i;return(0,P0.jsxs)(Gs,{loading:n,header:(0,P0.jsxs)(J,{sx:{display:"flex",alignItems:"flex-end",gap:2,flexWrap:"wrap",mb:3},children:[(0,P0.jsxs)(J,{sx:{flex:"1 1 auto"},children:[(0,P0.jsx)(Le,{variant:"h5",component:"h1",children:"Updates"}),(0,P0.jsx)(Le,{variant:"body2",color:"text.secondary",children:A2r(r)})]}),(0,P0.jsx)(R2r,{entries:r,actions:i})]}),children:[(0,P0.jsx)(nn,{variant:"outlined",component:"section","aria-label":"Nodes",children:r.map(a=>(0,P0.jsx)(_2r,{entry:a,actions:i},a.name))}),(0,P0.jsx)(dX,{notices:{...o,error:o.error??i.localError,clearError:()=>{o.clearError(),i.clearLocalError()}}})]})}var DSr=E(fe(),1);var XF=E(fe(),1);function I1e(e,t){let r=(0,XF.useRef)(null),[n,i]=(0,XF.useState)();return(0,XF.useLayoutEffect)(()=>{e===t&&r.current&&i(r.current.offsetHeight)},[e,t]),{ref:r,height:n}}var j2r=E(fe(),1);function D1e(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 N1e(e){let t=o=>o.startsWith("local:"),r=o=>{let a=D1e(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,D1e(o));continue}let a=r(o),s=(n.get(a)??0)>1;i.set(o,s?D1e(o):a)}return i}var mX={field:"lastPhase",direction:"desc"};var gX="all",yX="all";async function q2r(e,t,r){let n=new URLSearchParams({page:String(e),pageSize:String(t)});r.origin!==gX&&n.set("origin",r.origin),r.status!==yX&&n.set("status",r.status),r.sort.field!==mX.field&&n.set("sort",r.sort.field),r.sort.direction!==mX.direction&&n.set("direction",r.sort.direction);let i=await hr(`/api/usage/items?${n}`);if(!i.ok)throw new Error(`Failed to load item usage (HTTP ${i.status}).`);return i.json()}var vX=E($(),1);function Y2r({origins:e,origin:t,onChange:r}){let n=(0,j2r.useMemo)(()=>N1e(e.map(o=>o.origin)),[e]),i=e.reduce((o,a)=>o+a.count,0);return(0,vX.jsxs)(Yn,{select:!0,size:"small",label:"Repo",value:t,onChange:o=>r(o.target.value),sx:{minWidth:220},children:[(0,vX.jsx)(hn,{value:gX,children:`All repos (${i})`}),e.map(o=>(0,vX.jsx)(hn,{value:o.origin,children:`${n.get(o.origin)??o.origin} (${o.count})`},o.origin))]})}var lGe=E($(),1),ori=[{value:yX,label:"All"},{value:"done",label:"Done"},{value:"running",label:"Running"}];function K2r({status:e,onChange:t}){return(0,lGe.jsx)(jl,{size:"small",exclusive:!0,value:e,onChange:(r,n)=>n&&t(n),"aria-label":"Filter items by status",children:ori.map(r=>(0,lGe.jsx)($a,{value:r.value,children:r.label},r.value))})}var ZF=E($(),1),ari={display:"flex",alignItems:"center",gap:2,flexWrap:"wrap",mb:2},sri="Repos show their bare name, or org/repo when two share one. Totals sum every phase's recorded usage.";function X2r({origins:e,origin:t,onOriginChange:r,status:n,onStatusChange:i}){return(0,ZF.jsxs)(J,{sx:ari,children:[(0,ZF.jsx)(K2r,{status:n,onChange:i}),(0,ZF.jsx)(Y2r,{origins:e,origin:t,onChange:r}),(0,ZF.jsx)(Le,{variant:"caption",color:"text.disabled",children:sri})]})}var lSr=E(fe(),1);function lh(e){return e<1e3?String(e):e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(1)}M`}function L0(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 B1e=E($(),1),lri={whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"},Z2r={display:"block",fontSize:"0.75rem",color:"text.disabled",whiteSpace:"nowrap"},cri={...Z2r,fontStyle:"italic"};function O1e({total:e,perPhase:t,partial:r}){return(0,B1e.jsxs)(An,{align:"right",sx:lri,children:[e,t?(0,B1e.jsx)(Le,{component:"span",sx:r?cri:Z2r,children:t}):null]})}var bX=E($(),1),uri={width:"100%",maxWidth:0},fri={display:"block",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},dri={display:"block",mt:"2px",fontSize:"0.75rem",color:"text.secondary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function Q2r({id:e,name:t,type:r,repoLabel:n}){return(0,bX.jsxs)(An,{sx:uri,children:[(0,bX.jsx)(Zr,{component:ks,to:AT(e),underline:"hover",color:"text.primary",title:t,sx:fri,children:t}),(0,bX.jsxs)(Le,{component:"span",sx:dri,children:[so(e)," \xB7 ",r," \xB7 ",n]})]})}function J2r(e){let t=Math.max(1,e.recordedPhases);return{active:`${L0(e.activeMs/t)} / phase`,tokens:`${lh(Math.round((e.tokensUp+e.tokensDown)/t))} / phase`}}function eSr(e){if(!(e.status==="done"||e.recordedPhases>e.phaseCount))return`${e.recordedPhases} of ${e.phaseCount} phases`}var F1e={story:"info",bug:"error"},$1e={todo:"default","in-progress":"warning",done:"success",wontdo:"error"};var hri=new Set(["done","wontdo"]);function tSr(e){return hri.has(e)?{label:e,color:$1e[e]}:{label:"running",color:"warning"}}var cGe=E($(),1),pri={height:20,fontSize:"0.6875rem"};function rSr({status:e}){let t=tSr(e);return(0,cGe.jsx)(An,{children:(0,cGe.jsx)(Hn,{label:t.label,size:"small",variant:"outlined",color:t.color,sx:pri})})}var M0=E($(),1),nSr={whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"};function iSr({row:e,repoLabel:t}){let r=J2r(e);return(0,M0.jsxs)(pf,{hover:!0,children:[(0,M0.jsx)(Q2r,{id:e.id,name:e.name,type:e.type,repoLabel:t}),(0,M0.jsx)(rSr,{status:e.status}),(0,M0.jsx)(O1e,{total:String(e.phaseCount||e.recordedPhases),perPhase:eSr(e),partial:!0}),(0,M0.jsx)(O1e,{total:L0(e.activeMs),perPhase:r.active}),(0,M0.jsx)(O1e,{total:`\u2191 ${lh(e.tokensUp)} \u2193 ${lh(e.tokensDown)}`,perPhase:r.tokens}),(0,M0.jsx)(An,{align:"right",sx:nSr,children:(0,M0.jsxs)(J,{component:"span",sx:{color:xre(e.peakContextPct)},children:[Math.round(e.peakContextPct),"%"]})}),(0,M0.jsx)(An,{align:"right",sx:nSr,children:e.lastPhaseAt?lo(e.lastPhaseAt):"\u2014"})]})}var oSr=[{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 lg=E($(),1),mri={"& th":{whiteSpace:"nowrap"}};function aSr({column:e}){return e.tooltip?(0,lg.jsx)(sr,{title:e.tooltip,describeChild:!0,children:(0,lg.jsx)("span",{children:e.label})}):(0,lg.jsx)(lg.Fragment,{children:e.label})}function sSr({sort:e,onSort:t}){return(0,lg.jsx)(z5,{sx:mri,children:(0,lg.jsx)(pf,{children:oSr.map(r=>{let n=r.sort,i=n!==void 0&&e.field===n;return(0,lg.jsx)(An,{align:r.numeric?"right":"left",sortDirection:i?e.direction:!1,children:n===void 0?(0,lg.jsx)(aSr,{column:r}):(0,lg.jsx)(nSe,{active:i,direction:i?e.direction:"desc",onClick:()=>t(n),children:(0,lg.jsx)(aSr,{column:r})})},r.label)})})})}var FA=E($(),1),gri={"& td, & th":{px:1.5}};function cSr({rows:e,origins:t,sort:r,onSort:n}){let i=(0,lSr.useMemo)(()=>N1e([...t,...e.map(o=>o.origin)]),[t,e]);return(0,FA.jsx)($5,{component:nn,children:(0,FA.jsxs)(nb,{size:"small",sx:gri,children:[(0,FA.jsx)(sSr,{sort:r,onSort:n}),(0,FA.jsx)(ib,{children:e.map(o=>(0,FA.jsx)(iSr,{row:o,repoLabel:i.get(o.origin)??o.origin},o.id))})]})})}function uSr(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:L0(e.medianActiveMs),activeFoot:`${L0(e.medianActiveMs/t)} per phase`,tokens:lh(Math.round(e.medianTokens)),tokensFoot:`${lh(Math.round(e.medianTokens/t))} per phase`}}var QF=E($(),1),fSr={display:"block"},yri={fontWeight:400,fontVariantNumeric:"tabular-nums"};function xX({label:e,value:t,foot:r}){return(0,QF.jsxs)(J,{children:[(0,QF.jsx)(Le,{variant:"caption",color:"text.secondary",sx:fSr,children:e}),(0,QF.jsx)(Le,{variant:"h5",sx:yri,children:t}),r?(0,QF.jsx)(Le,{variant:"caption",color:"text.disabled",sx:fSr,children:r}):null]})}var $A=E($(),1),vri={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 dSr({summary:e}){let t=uSr(e);return(0,$A.jsxs)(nn,{sx:vri,children:[(0,$A.jsx)(xX,{label:"Items with recorded usage",value:t.items,foot:t.itemsFoot}),(0,$A.jsx)(xX,{label:"Median phases",value:t.phases}),(0,$A.jsx)(xX,{label:"Median active time",value:t.active,foot:t.activeFoot}),(0,$A.jsx)(xX,{label:"Median tokens",value:t.tokens,foot:t.tokensFoot})]})}var wp=E($(),1);function hSr({items:e,data:t}){let{rows:r,total:n,page:i,pageSize:o}=e,{ref:a,height:s}=I1e(r.length,o);return(0,wp.jsxs)(wp.Fragment,{children:[(0,wp.jsx)(dSr,{summary:t.summary}),(0,wp.jsx)(X2r,{origins:t.origins,origin:e.origin,onOriginChange:e.selectOrigin,status:e.status,onStatusChange:e.selectStatus}),n===0?(0,wp.jsx)(Le,{color:"text.secondary",align:"center",sx:{py:6},children:"No items match this filter."}):(0,wp.jsxs)(wp.Fragment,{children:[(0,wp.jsx)(J,{ref:a,sx:{minHeight:s},children:(0,wp.jsx)(cSr,{rows:r,origins:t.origins.map(l=>l.origin),sort:e.sort,onSort:e.sortBy})}),(0,wp.jsx)(oH,{component:"div",count:n,page:i,rowsPerPage:o,rowsPerPageOptions:[o],onPageChange:(l,u)=>e.setPage(u)})]})]})}var dS=E($(),1);function pSr({items:e}){let{data:t}=e;return(0,dS.jsxs)(dS.Fragment,{children:[(0,dS.jsx)(J,{sx:{height:4,mb:1},children:e.fetching&&(0,dS.jsx)(F5,{})}),t?t.origins.length===0?(0,dS.jsx)(Le,{color:"text.secondary",align:"center",sx:{py:6},children:"No item usage recorded yet."}):(0,dS.jsx)(hSr,{items:e,data:t}):null]})}function uGe(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 z1e(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 bri(e,t,r,n){let i=uGe(t,r,n);if(i!=null)return e/i}function b_(e,t,r,n){let i=bri(e,t,r,n);return i==null?"ok":i>100?"over":i>75?"warn":"ok"}var xri=["five_hour","seven_day"],Sri=["claude","codex","pi"];function mSr(e){let[t,r]=e.includes(":")?e.split(":",2):["claude",e],n=Sri.find(o=>o===t),i=xri.find(o=>o===r);if(!(!n||!i)&&!(n==="claude"&&e.includes(":")))return{harness:n,window:i}}var gSr={five_hour:{label:"5h",seconds:18e3},seven_day:{label:"7d",seconds:604800,striped:!0}};function JF(e){let t=mSr(e);if(!t)return gSr.five_hour;let r=gSr[t.window];return t.harness==="claude"?r:{...r,label:`${Du(t.harness)} ${r.label}`}}var Tri={ok:"success.main",warn:"warning.main",over:"error.main"};function ySr(e){return Tri[e]}var CX=E($(),1),Cri={ok:"success",warn:"warning",over:"error"};function vSr({percentage:e,level:t}){return(0,CX.jsxs)(J,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,CX.jsx)(F5,{variant:"determinate",value:Math.min(100,e),color:Cri[t],sx:{flexGrow:1,height:8,borderRadius:1}}),(0,CX.jsxs)(J,{sx:{minWidth:40,textAlign:"right",color:ySr(t)},children:[Math.round(e),"%"]})]})}function bSr(e){return e.avgContextPct==null?"\u2014":`${Math.round(e.avgContextPct)}%`}var wri=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function fGe(e){return wri.format(e)}var H1e=E($(),1);function xSr({peak:e}){return(0,H1e.jsx)(An,{align:"right",sx:{whiteSpace:"nowrap"},children:(0,H1e.jsx)(sr,{title:`Cycle started ${fGe(new Date(e.createdAt))}`,children:(0,H1e.jsx)("span",{children:fGe(new Date(e.resetsAt*1e3))})})})}var TSr=E($(),1);function SSr(){return(0,TSr.jsx)(Hn,{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 CSr(e){return!e.tokensUp&&!e.tokensDown?"\u2014":`\u2191 ${lh(e.tokensUp)} \u2193 ${lh(e.tokensDown)}`}var I0=E($(),1);function wSr({peak:e,now:t}){let{label:r,seconds:n,striped:i}=JF(e.window),o=b_(e.usedPercentage,e.resetsAt,n,t);return(0,I0.jsxs)(pf,{sx:a=>({backgroundColor:i?a.tokens.color.stripe:void 0}),children:[(0,I0.jsxs)(An,{children:[r,e.resetDetected&&(0,I0.jsx)(SSr,{})]}),(0,I0.jsx)(An,{sx:{minWidth:160},children:(0,I0.jsx)(vSr,{percentage:e.usedPercentage,level:o})}),(0,I0.jsx)(An,{align:"right",sx:{whiteSpace:"nowrap"},children:bSr(e)}),(0,I0.jsx)(An,{align:"right",sx:{whiteSpace:"nowrap"},children:e.phaseCount??0}),(0,I0.jsx)(An,{align:"right",sx:{whiteSpace:"nowrap"},children:CSr(e)}),(0,I0.jsx)(xSr,{peak:e})]})}var U1e=E(fe(),1);function e$(e){let[t,r]=(0,U1e.useState)(()=>Math.floor(Date.now()/1e3));return(0,U1e.useEffect)(()=>{let n=setInterval(()=>r(Math.floor(Date.now()/1e3)),e);return()=>clearInterval(n)},[e]),t}var Rc=E($(),1);function kSr({peaks:e}){let t=e$(3e4);return(0,Rc.jsx)($5,{component:nn,children:(0,Rc.jsxs)(nb,{size:"small",children:[(0,Rc.jsx)(z5,{sx:{"& th":{whiteSpace:"nowrap"}},children:(0,Rc.jsxs)(pf,{children:[(0,Rc.jsx)(An,{children:"Window"}),(0,Rc.jsx)(An,{children:"Peak usage"}),(0,Rc.jsx)(An,{align:"right",children:(0,Rc.jsx)(sr,{title:"Mean context-window usage across all readings in this rate-limit cycle \u2014 distinct from the Peak usage quota above.",children:(0,Rc.jsx)("span",{children:"Avg context"})})}),(0,Rc.jsx)(An,{align:"right",children:(0,Rc.jsx)(sr,{title:"Number of phase readings behind the average.",children:(0,Rc.jsx)("span",{children:"Phases"})})}),(0,Rc.jsx)(An,{align:"right",children:"Tokens spent"}),(0,Rc.jsx)(An,{align:"right",children:"Cycle reset"})]})}),(0,Rc.jsx)(ib,{children:e.map(r=>(0,Rc.jsx)(wSr,{peak:r,now:t},`${r.window}-${r.resetsAt}-${r.segment}`))})]})})}var x_=E($(),1);function _Sr({rows:e,total:t,page:r,pageSize:n,onPageChange:i}){let{ref:o,height:a}=I1e(e.length,n);return(0,x_.jsxs)(x_.Fragment,{children:[(0,x_.jsx)(J,{ref:o,sx:{minHeight:a},children:(0,x_.jsx)(kSr,{peaks:e})}),(0,x_.jsx)(oH,{component:"div",count:t,page:r,rowsPerPage:n,rowsPerPageOptions:[n],onPageChange:(s,l)=>i(l)})]})}var wX=E(fe(),1);function S_(){let[e,t]=(0,wX.useState)(!1),[r,n]=(0,wX.useState)(!1);return(0,wX.useEffect)(()=>{let i=!1;return(async()=>{try{let a=await(await hr("/api/harness")).json();i||(t(!!a?.exposeCodexActions),n(!!a?.exposePiActions))}catch{t(!1),n(!1)}})(),()=>{i=!0}},[]),{exposeCodexActions:e,exposePiActions:r}}var dGe=E($(),1),ESr=["five_hour","seven_day"],kri=["codex:five_hour","codex:seven_day"];function _ri(e){let t=e?[...ESr,...kri]:ESr;return[{value:"all",label:"All"},...t.map(r=>({value:r,label:JF(r).label}))]}function RSr({window:e,onChange:t}){let{exposeCodexActions:r}=S_();return(0,dGe.jsx)(jl,{size:"small",exclusive:!0,value:e,onChange:(n,i)=>i&&t(i),"aria-label":"Filter peaks by rate-limit window",children:_ri(r).map(n=>(0,dGe.jsx)($a,{value:n.value,children:n.label},n.value))})}var gv=E($(),1);function ASr({history:e}){let{window:t,total:r}=e;return(0,gv.jsxs)(gv.Fragment,{children:[(0,gv.jsx)(RSr,{window:t,onChange:e.selectWindow}),(0,gv.jsx)(J,{sx:{height:4,my:1},children:e.fetching&&(0,gv.jsx)(F5,{})}),r===0?(0,gv.jsx)(Le,{color:"text.secondary",align:"center",sx:{py:6},children:t==="all"?"No usage peaks recorded yet.":`No ${JF(t).label} usage peaks recorded yet.`}):(0,gv.jsx)(_Sr,{rows:e.rows,total:r,page:e.page,pageSize:e.pageSize,onPageChange:e.setPage})]})}var G1e=E(fe(),1);async function PSr(e,t,r){let n=new URLSearchParams({page:String(e),pageSize:String(t)});r!=="all"&&n.set("window",r);let i=await hr(`/api/usage/history?${n}`);if(!i.ok)throw new Error(`Failed to load usage history (HTTP ${i.status}).`);return i.json()}var T_=E(fe(),1);function W1e(e,t,r=!0){let[n,i]=(0,T_.useState)(0),[o,a]=(0,T_.useState)(null),[s,l]=(0,T_.useState)(!1),[u,f]=(0,T_.useState)(null);(0,T_.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,T_.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 Eri=30;function LSr(){let[e,t]=(0,G1e.useState)("all"),r=(0,G1e.useCallback)((o,a)=>PSr(o,a,e),[e]),n=W1e(r,Eri);return{...n,window:e,selectWindow:o=>{t(o),n.setPage(0)}}}var t$=E(fe(),1);function MSr(e,t){return e.field!==t?{field:t,direction:"desc"}:{field:t,direction:e.direction==="desc"?"asc":"desc"}}var Rri=30;function ISr(e){let[t,r]=(0,t$.useState)(gX),[n,i]=(0,t$.useState)(yX),[o,a]=(0,t$.useState)(mX),s=(0,t$.useCallback)((h,p)=>q2r(h,p,{origin:t,status:n,sort:o}),[t,n,o]),l=W1e(s,Rri,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=>MSr(p,h)),l.setPage(0)}}}var C_=E($(),1),Ari={borderBottom:1,borderColor:"divider",mb:2};function NSr(){let[e,t]=(0,DSr.useState)("limits"),r=LSr(),n=ISr(e==="items");if(r.error)throw r.error;if(n.error)throw n.error;return(0,C_.jsxs)(Gs,{loading:!r.loaded,title:"Usage history",maxWidth:"lg",children:[(0,C_.jsxs)(U5,{value:e,onChange:(i,o)=>t(o),textColor:"inherit",indicatorColor:"secondary",sx:Ari,"aria-label":"Usage history views",children:[(0,C_.jsx)(rb,{label:"Rate limits",value:"limits"}),(0,C_.jsx)(rb,{label:"Items",value:"items"})]}),e==="limits"?(0,C_.jsx)(ASr,{history:r}):(0,C_.jsx)(pSr,{items:n})]})}var V1e=E(fe(),1),hGe=(0,V1e.createContext)([]);function q1e(){return(0,V1e.useContext)(hGe)}var jTr=E(fe(),1);function La(){let{selectedCwd:e}=$n();return e||void 0}var hS=E(fe(),1);var BSr=E(fe(),1);var Pri=new Set(["todo","done","all"]);function OSr(e){return e&&Pri.has(e)?e:"todo"}var FSr="backlog-filter",pGe=new Set,$Sr=Lri();function Lri(){try{return OSr(localStorage.getItem(FSr))}catch{return"todo"}}function Mri(e){return pGe.add(e),()=>pGe.delete(e)}function Iri(){return $Sr}function Dri(e){$Sr=e;try{localStorage.setItem(FSr,e)}catch{}for(let t of pGe)t()}function r$(){return[(0,BSr.useSyncExternalStore)(Mri,Iri),Dri]}function zSr(){let e=La(),t=vr(),[r]=r$(),[n,i]=(0,hS.useState)(""),[o,a]=(0,hS.useState)(null),[s,l]=(0,hS.useState)(!1),[u,f]=(0,hS.useState)(e),d=(0,hS.useRef)(void 0);return e!==u&&(f(e),a(null),l(n.trim().length>0)),(0,hS.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 PT({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 GSr={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}},Nri={"&::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"}},HSr={position:"relative",zIndex:2},USr=8,mGe=24,Ori=go`
|
|
4014
4014
|
from { background-position: 0 0; }
|
|
4015
4015
|
to { background-position: 0 ${mGe}px; }
|
|
4016
|
-
`,VSr={...GSr,borderColor:"warning.main",borderLeft:4,borderLeftColor:"warning.main",bgcolor:e=>Dr(e.palette.warning.main,.08)},Bri={...VSr,borderLeftColor:"transparent",backgroundImage:e=>`repeating-linear-gradient(to bottom, ${e.palette.warning.main} 0 ${USr}px, transparent ${USr}px ${mGe}px)`,backgroundOrigin:"border-box",backgroundRepeat:"repeat-y",backgroundSize:`4px ${mGe}px`,animation:`${Ori} 0.9s linear infinite`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}},WSr={"& .MuiButtonBase-root:focus-visible":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:"2px"}},yv={card:GSr,inProgressCard:VSr,inProgressRunningCard:Bri,main:{minWidth:0,textAlign:"left"},stretchedNameLink:{display:"block",fontWeight:500,color:"text.primary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",...Nri},meta:{display:"flex",alignItems:"center",gap:1,...HSr,width:"fit-content",maxWidth:"100%",fontSize:"0.75rem",color:"text.secondary","& a, & p":{fontSize:"0.75rem"},...WSr},id:{color:"text.disabled"},actions:{display:"flex",alignItems:"center",gap:1,flexShrink:0,...HSr,...WSr}};function j1e(e){let t=e.peakContextPct>0?` \xB7 \u2593 ${Math.round(e.peakContextPct)}%`:"";return`\u2191 ${lh(e.tokensUp)} \u2193 ${lh(e.tokensDown)} \xB7 \u23F1 ${L0(e.activeMs)}${t}`}var jSr=E($(),1),Fri={width:6,height:6,borderRadius:"50%",bgcolor:"currentColor",flexShrink:0};function qSr(){return(0,jSr.jsx)(J,{component:"span",sx:Fri})}var kX=E($(),1),YSr={display:"inline-flex",alignItems:"center",gap:.625,color:"warning.main",fontWeight:500,fontSize:"0.75rem",whiteSpace:"nowrap",borderRadius:1};function KSr({item:e,openSession:t,onSelectSession:r}){let n=Bi();if(e.status!=="in-progress"||e.currentPhase==null)return null;let i=`phase ${e.currentPhase} of ${e.totalPhases??e.currentPhase}`,o=(0,kX.jsx)(qSr,{});if(!t)return(0,kX.jsxs)(J,{component:"span",sx:YSr,children:[o,i]});let a=()=>{r?.(t.id),n("/sessions")};return(0,kX.jsxs)(cn,{sx:YSr,title:`Open the ${t.status} session`,onClick:a,children:[o,i]})}var kp=E($(),1),$ri={display:"inline-flex",alignItems:"center",gap:.5},zri={width:8,height:8,borderRadius:"50%",flexShrink:0},Hri={whiteSpace:"nowrap"};function Uri({type:e}){let t=F1e[e];return(0,kp.jsxs)(J,{component:"span",sx:$ri,children:[(0,kp.jsx)(J,{component:"span",sx:{...zri,bgcolor:`${t}.main`}}),e]})}function Wri({item:e}){return e.usageTotal?(0,kp.jsx)(sr,{title:j1e(e.usageTotal),children:(0,kp.jsx)(J,{component:"span",sx:Hri,children:`\u23F1 ${L0(e.usageTotal.activeMs)}`})}):null}function XSr({item:e,openSession:t,onSelectSession:r}){return(0,kp.jsxs)(J,{sx:yv.meta,children:[(0,kp.jsx)(J,{component:"span",sx:yv.id,children:so(e.id)}),(0,kp.jsx)(Uri,{type:e.type}),(0,kp.jsx)(KSr,{item:e,openSession:t,onSelectSession:r}),(0,kp.jsx)($L,{jiraKey:e.jiraKey}),(0,kp.jsx)(RT,{githubIssue:e.githubIssue,variant:"icon"}),(0,kp.jsx)(Wri,{item:e})]})}function ZSr(e,t){return e.filter(r=>qB(r)?.itemId===t).reduce((r,n)=>r&&r.startedAt>=n.startedAt?r:n,void 0)}var JSr=E($(),1),Gri={todo:"\u25CB","in-progress":"\u25D4",done:"\u25CF",wontdo:"\u2715"},Vri={todo:"text.disabled","in-progress":"warning.main",done:"success.main",wontdo:"error.main"};function qri(e){return{fontSize:"1.125rem",flexShrink:0,color:Vri[e]}}function QSr({status:e}){return(0,JSr.jsx)(Le,{sx:qri(e),children:Gri[e]})}function Y1e(e){return e.status==="todo"||e.status==="in-progress"}function jri(e){if(e.status==="done")return e.totalPhases;if(e.status==="in-progress")return e.currentPhase}function Yri(e,t,r){return r?"complete":e<t?"done":e===t?"current":"remaining"}function eTr(e){let t=e.totalPhases,r=jri(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:Yri(o+1,r,n)}))}}var n$=E($(),1),Kri={done:"text.secondary",current:"warning.main",remaining:"divider",complete:"success.main"},Xri={display:"inline-flex",alignItems:"center",gap:.5,flexShrink:0},Zri={fontSize:"0.6875rem",color:"text.secondary",fontVariantNumeric:"tabular-nums"},Qri={display:"inline-flex",alignItems:"center",gap:"2px"},Jri={width:6,height:12,borderRadius:"1px",flexShrink:0};function tTr({item:e}){let t=eTr(e);return t?(0,n$.jsxs)(J,{sx:Xri,title:`Phase ${t.reached} of ${t.total}`,children:[(0,n$.jsx)(J,{component:"span",sx:Zri,children:`${t.reached}/${t.total}`}),(0,n$.jsx)(J,{component:"span",sx:Qri,"aria-hidden":!0,children:t.segments.map(r=>(0,n$.jsx)(J,{component:"span","data-segment":r.kind,sx:{...Jri,bgcolor:Kri[r.kind]}},r.phase))})]}):null}var ATr=E(fe(),1);var Q1e=E(fe(),1);var zA=E($(),1),eni={minWidth:0,p:.5,borderRadius:"50%"};function K1e({tooltip:e,disabled:t,onClick:r,compact:n=!1}){return(0,zA.jsx)(sr,{title:e,children:(0,zA.jsx)(J,{component:"span",sx:{display:"flex"},children:n?(0,zA.jsx)(Mt,{"aria-label":"Build",variant:"contained",color:"success",size:"small",disabled:t,sx:eni,onClick:r,children:(0,zA.jsx)(Lg,{fontSize:"small"})}):(0,zA.jsx)(Mt,{startIcon:(0,zA.jsx)(Lg,{}),disabled:t,onClick:r,children:"Build"})})})}var gGe=E($(),1);function X1e(e){let t=[];return e.exposeCodexActions&&t.push({kind:"codex",label:"with Codex"}),e.exposePiActions&&t.push({kind:"pi",label:"with pi"}),t}function Z1e({anchorEl:e,open:t,onClose:r,options:n,onSelect:i,stop:o}){return(0,gGe.jsx)(Bs,{anchorEl:e,open:t,onClose:r,onClick:o,children:n.map(a=>(0,gGe.jsx)(hn,{onClick:s=>{o(s),i(a.kind)},children:a.label},a.kind))})}var vv=E($(),1);function rTr({tooltip:e,disabled:t,onBuild:r,onSelectHarness:n}){let i=X1e(S_()),o=(0,Q1e.useRef)(null),[a,s]=(0,Q1e.useState)(!1),l=u=>u.stopPropagation();return(0,vv.jsxs)(vv.Fragment,{children:[(0,vv.jsxs)(US,{ref:o,variant:"contained",color:"primary",size:"small",disabled:t,children:[(0,vv.jsx)(K1e,{tooltip:e,disabled:t,onClick:u=>{l(u),r()}}),i.length>0&&(0,vv.jsx)(Mt,{"aria-label":"Build with a different harness",onClick:u=>{l(u),s(!0)},children:(0,vv.jsx)(xd,{})})]}),(0,vv.jsx)(Z1e,{anchorEl:o.current,open:a,onClose:()=>s(!1),options:i,onSelect:u=>{s(!1),n(u)},stop:l})]})}var nTr=E($(),1),i$=ct((0,nTr.jsx)("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96M19 18H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95C8.08 7.14 9.94 6 12 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11c1.56.1 2.78 1.41 2.78 2.96 0 1.65-1.35 3-3 3m-5.55-8h-2.9v3H8l4 4 4-4h-2.55z"}),"CloudDownloadOutlined");var w_=E($(),1),tni={vertical:"bottom",horizontal:"center"};function J1e({clone:e}){let{prompt:t,confirm:r,cancel:n,error:i,dismissError:o}=e;return(0,w_.jsxs)(w_.Fragment,{children:[t&&(0,w_.jsx)(Si,{title:"Clone repository",message:`Clone ${t.displayName} over SSH into ${t.cloneTarget}${t.node?` on ${t.node}`:""}?`,confirmLabel:"Clone",confirmColor:"primary",onConfirm:r,onCancel:n}),(0,w_.jsx)(eb,{open:!!i,autoHideDuration:8e3,onClose:o,anchorOrigin:tni,children:(0,w_.jsx)(xi,{severity:"error",onClose:o,variant:"filled",children:i})})]})}var D0=E(fe(),1);function yGe(e){return["backlog","clone",e]}function eve(e,t){t(yGe(e.origin),void 0,{title:`Clone ${e.displayName}`,subtitle:e.origin,...e.node&&{node:e.node}})}function iTr(e,t){return!!e&&e.length===t.length&&e.every((r,n)=>r===t[n])}function oTr(e,t,r){let n=yGe(t.origin),i=new Set(e.filter(o=>iTr(o.assistArgs,n)).map(o=>o.id));return eve(t,r),{args:n,target:t.cloneTarget,node:t.node,preexisting:i}}function aTr(e,t){if(!t.id){let n=e.find(i=>iTr(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 tve(e){let{setSelectedCwd:t}=$n(),{launchAssist:r}=ll(),[n,i]=(0,D0.useState)(null),[o,a]=(0,D0.useState)(null),[s,l]=(0,D0.useState)(null),u=(0,D0.useCallback)(p=>{l(null),i(p)},[]),f=(0,D0.useCallback)(()=>i(null),[]),d=(0,D0.useCallback)(()=>l(null),[]),h=(0,D0.useCallback)(()=>{n&&(a(oTr(e,n,r)),i(null))},[n,e,r]);return(0,D0.useEffect)(()=>{if(!o)return;let p=aTr(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 o$(e,t){return`Not cloned ${e?`on ${e}`:"locally"} \u2014 click to clone into ${t}`}var pS=E($(),1),rni={border:1,borderStyle:"dashed"};function sTr({target:e}){let t=tve(q1e());return(0,pS.jsxs)(pS.Fragment,{children:[(0,pS.jsx)(sr,{title:o$(e.node,e.cloneTarget),children:(0,pS.jsx)(er,{"aria-label":"Clone",size:"small",sx:rni,onClick:r=>{r.stopPropagation(),t.requestClone(e)},children:(0,pS.jsx)(i$,{fontSize:"small"})})}),(0,pS.jsx)(J1e,{clone:t})]})}var AX=E(fe(),1);var _X=E(fe(),1);function lTr(e,t,r,n){let i=La(),o=vr(),a=(0,_X.useRef)(!1),[s,l]=(0,_X.useState)(!1),[u,f]=(0,_X.useState)(null);return{busy:s,error:u,clearError:()=>f(null),confirm:async()=>{if(!a.current){a.current=!0,l(!0);try{await YL(e,t,i,o)}catch{f(r),a.current=!1,l(!1);return}await n()}}}}var EX=E($(),1),nni={done:{verb:"done",action:"Mark done"},wontdo:{verb:"won't do",action:"Won't do"}};function cTr({itemId:e,status:t,target:r,onClose:n}){let{verb:i,action:o}=nni[t],a=so(e),{busy:s,error:l,clearError:u,confirm:f}=lTr(e,t,`Failed to mark item ${a} as ${i}`,async()=>{n(),await r.onClosed()});return(0,EX.jsxs)(oa,{children:[(0,EX.jsx)(Si,{title:`Mark ${a} ${i}`,message:`${r.currentPhase??0} of ${r.totalPhases??0} phases completed. Mark this backlog item as ${i}?`,confirmLabel:o,busy:s,onConfirm:f,onCancel:n}),(0,EX.jsx)(ec,{error:l,onClose:u})]})}var a$=E($(),1),ini=[{status:"done",label:"Mark done"},{status:"wontdo",label:"Won't do"}];function uTr({anchorEl:e,open:t,onClose:r,onRefine:n,onSelect:i,stop:o}){return(0,a$.jsxs)(Bs,{anchorEl:e,open:t,onClose:r,onClick:o,children:[(0,a$.jsx)(hn,{onClick:a=>{o(a),n()},children:"Refine"}),(0,a$.jsx)(ki,{}),ini.map(({status:a,label:s})=>(0,a$.jsx)(hn,{onClick:l=>{o(l),i(a)},children:s},a))]})}var fTr=E($(),1),dTr=ct((0,fTr.jsx)("path",{d:"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2"}),"MoreVert");var vGe=E($(),1);function hTr({anchorRef:e,onClick:t}){return(0,vGe.jsx)(er,{ref:e,"aria-label":"More actions",size:"small",onClick:t,children:(0,vGe.jsx)(dTr,{fontSize:"small"})})}var RX=E($(),1);function pTr({anchorRef:e,tooltip:t,disabled:r,onBuild:n,onMore:i}){return(0,RX.jsxs)(J,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,RX.jsx)(K1e,{compact:!0,tooltip:t,disabled:r,onClick:n}),(0,RX.jsx)(hTr,{anchorRef:e,onClick:i})]})}var mTr=E(fe(),1);function rve(e){let{launchAssist:t}=ll(),r=Bi(),n=La(),i=vr(),[o,a]=(0,mTr.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 k_=E($(),1);function gTr({itemId:e,tooltip:t,disabled:r,onBuild:n,closeTarget:i}){let o=(0,AX.useRef)(null),[a,s]=(0,AX.useState)(!1),[l,u]=(0,AX.useState)(null),f=rve(e),d=h=>h.stopPropagation();return(0,k_.jsxs)(k_.Fragment,{children:[(0,k_.jsx)(pTr,{anchorRef:o,tooltip:t,disabled:r,onBuild:h=>{d(h),n()},onMore:h=>{d(h),s(!0)}}),(0,k_.jsx)(uTr,{anchorEl:o.current,open:a,onClose:()=>s(!1),onRefine:()=>{s(!1),f.launch([])},onSelect:h=>{s(!1),u(h)},stop:d}),l&&(0,k_.jsx)(cTr,{itemId:e,status:l,target:i,onClose:()=>u(null)})]})}var nve=E(fe(),1),bGe=(0,nve.createContext)(()=>{});function yTr(){return(0,nve.useContext)(bGe)}var ive=E($(),1);function vTr({session:e}){let t=yy(yTr());return(0,ive.jsxs)(Mt,{variant:"contained",size:"small",startIcon:(0,ive.jsx)(Lge,{}),onClick:r=>{r.stopPropagation(),t(e.id)},children:["Session ",e.id]})}function bTr(e,t,r,n){let i=r.node?[{node:r.node}]:[];e(["backlog","run",so(t),...n],r.cwd,...i)}function oni(e,t){let r=e.assistArgs;if(r?.[0]!=="backlog"||r[1]!=="run"||!r[2])return!1;try{return qte(r[2])===t}catch{return!1}}function xTr(e,t){return e.find(r=>r.status!=="done"&&r.status!=="error"&&(oni(r,t)||qB(r)?.itemId===t))}var ove=E(fe(),1),xGe=(0,ove.createContext)({nodes:null,names:[],visible:!1,selected:void 0,select:()=>{}});function Ac(){return(0,ove.useContext)(xGe)}function ave(){let{nodes:e,selected:t}=Ac();return t&&t!==e?.local?t:void 0}var CTr=E(fe(),1);var sve=E(fe(),1);function STr(e,t){return Promise.all(t.map(async r=>{let n=await ani(e,r).catch(()=>({}));return[r,n]}))}async function ani(e,t){let r=await hr(Yr(`/api/repo-location?origin=${encodeURIComponent(e)}`,t||void 0));return r.ok?r.json():{}}var SGe="\0";function TTr(e,t){let[r,n]=(0,sve.useState)(null);return(0,sve.useEffect)(()=>{if(!e||!t)return;let i=!1;return STr(e,t.split(SGe)).then(o=>{i||n({origin:e,byNode:Object.fromEntries(o)})}),()=>{i=!0}},[e,t]),r}function lve(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(SGe),a=TTr(i,o);return(0,CTr.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 s$=E(fe(),1);var cve=E(fe(),1);function uve(e){let t=(0,cve.useRef)(null);return(0,cve.useEffect)(()=>{e&&t.current?.scrollIntoView({block:"nearest"})},[e]),t}var kTr=E($(),1);function wTr({cwd:e,selected:t,highlighted:r,onHover:n,onSelect:i}){let o=uve(r);return(0,kTr.jsx)(hn,{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:bv(e)})}var TGe=E($(),1);function fve({repos:e,selected:t,highlight:r,onHighlight:n,onSelect:i}){return(0,TGe.jsx)(Hp,{dense:!0,children:e.map((o,a)=>(0,TGe.jsx)(wTr,{cwd:o,selected:o===t,highlighted:a===r,onHover:()=>n(a),onSelect:()=>i(o)},o))})}var dve=E(fe(),1);function __(e,t,r,n){let[i,o]=(0,dve.useState)(0);return(0,dve.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 PX=E($(),1);function bv(e){let t=e.includes("\\")?"\\":"/";return e.split(t).filter(Boolean).pop()??e}var sni={...KB};function _Tr({repos:e,selected:t,onSelect:r,close:n,initialFilter:i=""}){let[o,a]=(0,s$.useState)(i),s=(0,s$.useRef)(null);(0,s$.useEffect)(()=>{s.current?.focus()},[]);let l=o.trim().toLowerCase(),u=l?e.filter(m=>m.toLowerCase().includes(l)):e,{highlight:f,setHighlight:d,onKeyDown:h}=__(u,l,r,n);return(0,PX.jsxs)(nn,{elevation:4,sx:sni,children:[(0,PX.jsx)(ET,{inputRef:s,value:o,onChange:a,onKeyDown:h,placeholder:"Filter repos..."}),(0,PX.jsx)(fve,{repos:u,selected:t,highlight:f,onHighlight:d,onSelect:m=>{r(m),n()}})]})}function hve(e,t){return{origin:e.origin,cloneTarget:e.cloneTarget,displayName:bv(e.origin),node:t}}function ETr(){let e=La(),t=ave(),r=lve(e??"",[t])(t);return e?r.kind==="cloned"?{kind:"ready",cwd:r.cwd,node:t}:r.kind==="clonable"?{kind:"clone",prompt:hve(r,t)}:{kind:"unavailable",node:t??"this machine"}:{kind:"ready",node:t}}function RTr(e){return e?`Not cloned on ${e}`:"Build"}var LX=E($(),1);function pve({itemId:e,compact:t}){let{launchAssist:r}=ll(),n=ETr(),i=xTr(q1e(),e),[o,a]=(0,ATr.useState)(!1);if(n.kind==="clone")return(0,LX.jsx)(sTr,{target:n.prompt});if(i)return(0,LX.jsx)(vTr,{session:i});let s=n.kind==="unavailable"?n.node:void 0,l=o||!!s,u=d=>{l||n.kind!=="ready"||(a(!0),bTr(r,e,n,d))},f=RTr(s);return t?(0,LX.jsx)(gTr,{itemId:e,tooltip:f,disabled:l,onBuild:()=>u([]),closeTarget:t}):(0,LX.jsx)(rTr,{tooltip:f,disabled:l,onBuild:()=>u([]),onSelectHarness:d=>u(["--harness",d])})}var PTr=E(fe(),1);var l$=E($(),1);function LTr({itemId:e,starred:t,onToggled:r}){let n=La(),i=vr(),[o,a]=(0,PTr.useState)(!1);return(0,l$.jsx)(sr,{title:t?"Unstar":"Star",children:(0,l$.jsx)("span",{children:(0,l$.jsx)(er,{"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 fre(e,!t,n,i),await r()}finally{a(!1)}}},children:t?(0,l$.jsx)(m0e,{}):(0,l$.jsx)(g0e,{})})})})}var E_=E($(),1);function MTr({item:e,onReload:t}){return(0,E_.jsxs)(E_.Fragment,{children:[(0,E_.jsx)(tTr,{item:e}),(0,E_.jsx)(LTr,{itemId:e.id,starred:e.starred,onToggled:t}),Y1e(e)&&(0,E_.jsx)(pve,{itemId:e.id,compact:{currentPhase:e.currentPhase,totalPhases:e.totalPhases,onClosed:t}})]})}var mS=E($(),1);function lni(e,t){return e?t?yv.inProgressRunningCard:yv.inProgressCard:yv.card}function ITr({item:e,to:t,socket:r,onReload:n}){let i=ZSr(r.sessions,e.id),o=e.status==="in-progress",a=o&&i?.status==="running";return(0,mS.jsxs)(J,{sx:lni(o,a),children:[(0,mS.jsx)(QSr,{status:e.status}),(0,mS.jsxs)(J,{sx:yv.main,children:[(0,mS.jsx)(Zr,{component:ks,to:t,underline:"none",title:e.name,sx:yv.stretchedNameLink,children:e.name}),(0,mS.jsx)(XSr,{item:e,openSession:i,onSelectSession:r.selectSession})]}),(0,mS.jsx)(J,{sx:yv.actions,children:(0,mS.jsx)(MTr,{item:e,onReload:n})})]})}var NTr=E($(),1),cni={all:"items",story:"stories",bug:"bugs"},uni={textAlign:"center",color:"text.disabled",py:6,px:2};function DTr({query:e,typeFilter:t}){let r=cni[t],n=e.trim()?`No ${r} match your search.`:`No ${r} in the backlog.`;return(0,NTr.jsx)(J,{sx:uni,children:n})}var xv=E($(),1),fni={display:"flex",justifyContent:"center",py:6};function OTr({loading:e,error:t,query:r,typeFilter:n,items:i,socket:o,itemPath:a,onReload:s}){if(e)return(0,xv.jsx)(J,{sx:fni,children:(0,xv.jsx)(ao,{})});let l=t&&(0,xv.jsx)(xi,{severity:"error",children:t});return i.length===0?l||(0,xv.jsx)(DTr,{query:r,typeFilter:n}):(0,xv.jsxs)(xv.Fragment,{children:[l,i.map(u=>(0,xv.jsx)(ITr,{item:u,to:a(u),socket:o,onReload:s},u.id))]})}var c$=E(fe(),1);function dni(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 BTr({cwd:e,node:t,knownCwds:r,signal:n}){return(await fetch(qc(dni(r),e,t),{signal:n})).json()}function FTr(){let{repos:e,selectedCwd:t,cloneOn:r}=$n(),n=ave(),[i,o]=(0,c$.useState)([]),a=(0,c$.useMemo)(()=>e.map(l=>r(l,n)).filter(l=>!!l),[e,r,n]),s=t?r(t,n):void 0;return(0,c$.useEffect)(()=>{let l=new AbortController;return BTr({cwd:s,node:n,knownCwds:a,signal:l.signal}).then(o).catch(()=>{}),()=>l.abort()},[a,s,n]),{summaries:i,node:n}}var mve=E($(),1),hni={borderStyle:"dashed"};function $Tr({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,mve.jsx)(Hn,{label:`${o} (${a})`,size:"small",color:s?"primary":"default",variant:s?"filled":"outlined",disabled:!l&&!f,onClick:d,icon:f?(0,mve.jsx)(i$,{}):void 0,sx:f?hni:void 0});return!f||!u?h:(0,mve.jsx)(sr,{describeChild:!0,title:o$(t,u),children:h})}var MX=E($(),1),pni={flexWrap:"wrap",gap:1,mb:2};function zTr({sessions:e}){let{summaries:t,node:r}=FTr(),{setSelectedCwd:n}=$n(),i=tve(e);return t.length===0?null:(0,MX.jsxs)(Et,{direction:"row",sx:pni,children:[t.map(o=>(0,MX.jsx)($Tr,{summary:o,node:r,onSelectCwd:a=>r?n(a,r):n(a),onRequestClone:i.requestClone},o.origin)),(0,MX.jsx)(J1e,{clone:i})]})}var UTr=E($(),1);function HTr({value:e,onChange:t}){return(0,UTr.jsx)(Yn,{"data-backlog-focus":"search",autoFocus:!0,fullWidth:!0,size:"small",placeholder:"Search backlog\u2026",value:e,onChange:r=>t(r.target.value),sx:{mb:2}})}var yve=E(fe(),1);var CGe=E($(),1),gve=ct([(0,CGe.jsx)("path",{d:"M12 5.99 19.53 19H4.47zM12 2 1 21h22z"},"0"),(0,CGe.jsx)("path",{d:"M13 16h-2v2h2zm0-6h-2v5h2z"},"1")],"WarningAmber");var IX=E($(),1);function wGe({warn:e,tooltip:t,children:r}){return(0,IX.jsx)(sr,{title:t,children:(0,IX.jsxs)(Zr,{component:ks,to:"/backups",underline:"hover",color:e?"warning.main":"text.secondary",variant:"body2",sx:e?{display:"inline-flex",alignItems:"center",gap:.5}:void 0,children:[e&&(0,IX.jsx)(gve,{fontSize:"inherit"}),r]})})}var vve=E($(),1);async function mni(){let[e,t]=await Promise.all([hr("/api/backups/list"),hr("/api/backups/status")]),r=await e.json(),{staleAfterMs:n}=await t.json();return{row:r[0]??null,staleAfterMs:n}}function WTr(){let[e,t]=(0,yve.useState)();if((0,yve.useEffect)(()=>{mni().then(t)},[]),e===void 0)return null;let{row:r,staleAfterMs:n}=e;if(r===null)return(0,vve.jsx)(wGe,{warn:!0,tooltip:"No backup has been recorded",children:"Never backed up"});let i=new Date(r.createdAt).toLocaleString(),o=Date.now()-new Date(r.createdAt).getTime()>n;return(0,vve.jsxs)(wGe,{warn:o,tooltip:o?`Backup overdue \u2014 last backed up ${i}`:i,children:["Last backed up ",lo(String(r.createdAt))]})}var u$=E($(),1);function GTr(){let[e,t]=r$();return(0,u$.jsxs)(jl,{value:e,exclusive:!0,size:"small","aria-label":"Status filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,u$.jsx)($a,{value:"todo",children:"Todo"}),(0,u$.jsx)($a,{value:"done",children:"Done"}),(0,u$.jsx)($a,{value:"all",children:"All"})]})}var f$=E($(),1);function VTr({value:e,onChange:t}){return(0,f$.jsxs)(jl,{value:e,exclusive:!0,size:"small","aria-label":"Type filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,f$.jsx)($a,{value:"all",children:"All"}),(0,f$.jsx)($a,{value:"story",children:"Stories"}),(0,f$.jsx)($a,{value:"bug",children:"Bugs"})]})}var R_=E($(),1),gni={justifyContent:"space-between",alignItems:"center",mb:3},yni={fontWeight:600},vni={alignItems:"center"};function qTr({typeFilter:e,onTypeFilterChange:t}){return(0,R_.jsxs)(Et,{direction:"row",sx:gni,children:[(0,R_.jsx)(Le,{variant:"h5",sx:yni,children:"Backlog"}),(0,R_.jsxs)(Et,{direction:"row",spacing:2,sx:vni,children:[(0,R_.jsx)(WTr,{}),(0,R_.jsx)(VTr,{value:e,onChange:t}),(0,R_.jsx)(GTr,{})]})]})}var gS=E($(),1);function YTr({items:e,loading:t,error:r,socket:n,onReload:i}){let o=La(),a=vr(),{query:s,setQuery:l,results:u,loading:f}=zSr(),[d,h]=(0,jTr.useState)("all"),p=u??e,m=d==="all"?p:p.filter(g=>g.type===d);return(0,gS.jsxs)(gS.Fragment,{children:[(0,gS.jsx)(qTr,{typeFilter:d,onTypeFilterChange:h}),(0,gS.jsx)(HTr,{value:s,onChange:l}),(0,gS.jsx)(zTr,{sessions:n.sessions}),(0,gS.jsx)(OTr,{loading:t||f,error:u?null:r,query:s,typeFilter:d,items:m,socket:n,itemPath:g=>AT(g.id,o,a),onReload:i})]})}var wve=E(fe(),1);var HA=E(fe(),1);async function kGe(e,t,r){let n=await fetch(qc(`/api/items/${so(e)}`,t.cwd,t.node),{signal:r});return n.ok?n.json():null}function KTr(e){let t=La(),r=vr(),[n,i]=(0,HA.useState)(null),[o,a]=(0,HA.useState)(!0),s=(0,HA.useCallback)(async()=>{i(await kGe(e,{cwd:t,node:r}))},[e,t,r]);return(0,HA.useEffect)(()=>{let l=new AbortController,{signal:u}=l;return a(!0),(async()=>{try{let f=await kGe(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}}function XTr(e,t){let r=new Set,n=new Set,i=[];for(let o of t){if(o.cwdMissing)continue;let a=VL(o),s=im(o);!a||!s||r.has(a)||n.has(s)||(r.add(a),n.add(s),i.push(s))}return e&&!r.has(qL(e,t))&&!n.has(e)&&i.unshift(e),i}var _p="";function bni(e){let t=new Map([[_p,[]]]);for(let r of e){let n=r.node??_p;t.set(n,[...t.get(n)??[],r])}return t}function ZTr(e,t){var n;let r=new Map;for(let[i,o]of bni(t)){let a=i===_p?e:"";for(let s of XTr(a,o)){let l=qL(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 QTr(e,t){return e.clones[t]??e.clones[_p]??Object.values(e.clones)[0]}function DX(e,t){return e.find(r=>Object.values(r.clones).includes(t))}function yS(e,t){return!e||e===t?_p:e}function JTr(e,t,r,n){if(!t)return e;let i=yS(r,n);return{...e,selectedCwd:t,selectedNode:r,cloneOn:(o,a)=>{let s=e.cloneOn(o,a);return o!==t||s!==o||yS(a,n)===i?s:void 0}}}var UA={description:"item-section-description",acceptanceCriteria:"item-section-acceptance-criteria",plan:"item-section-plan",activity:"item-section-activity",comments:"item-section-comments"},NX=140,_Ge="--pinned-header-height",xni=`var(${_Ge}, ${NX}px)`,eCr=`calc(${xni} + 8px)`;function Sv(e){return{id:UA[e],sx:{mb:2,scrollMarginTop:eCr}}}function bve(e){return{id:`item-phase-${e}`,sx:{scrollMarginTop:eCr}}}var Tv={color:"text.disabled",mb:1,display:"block",letterSpacing:"0.08em",fontSize:11,fontWeight:600,lineHeight:1.6};var A_=E($(),1),Sni={maxWidth:"68ch",fontSize:14},Tni=e=>({mr:1,minWidth:14,color:"text.disabled",fontFamily:e.typography.fontFamilyMono,fontSize:12});function tCr({criteria:e}){return e.length===0?null:(0,A_.jsxs)(J,{...Sv("acceptanceCriteria"),children:[(0,A_.jsx)(Le,{variant:"overline",sx:Tv,children:"Acceptance Criteria"}),(0,A_.jsx)(ey,{disablePadding:!0,sx:Sni,children:e.map((t,r)=>(0,A_.jsxs)(VS,{disableGutters:!0,disablePadding:!0,sx:{py:.5,display:"flex",alignItems:"baseline"},children:[(0,A_.jsxs)(Le,{component:"span",sx:Tni,children:[r+1,"."]}),(0,A_.jsx)($u,{component:"span",className:"markdown",html:gB(t)})]},t))})]})}var OX=E($(),1);function rCr({description:e}){return e?(0,OX.jsxs)(J,{...Sv("description"),children:[(0,OX.jsx)(Le,{variant:"overline",sx:Tv,children:"Description"}),(0,OX.jsx)(yB,{content:e,renderMermaid:!0})]}):null}var fCr=E(fe(),1);function nCr(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 oCr=E($(),1),Cni={color:"text.secondary",alignSelf:"flex-start",textAlign:"left"};function iCr({hiddenCount:e,expanded:t,onToggle:r}){return e===0?null:(0,oCr.jsx)(Zr,{component:"button",type:"button",variant:"body2",underline:"hover",sx:Cni,onClick:n=>{n.stopPropagation(),r()},children:t?"Show fewer commits":`\u2026 and ${e} more commits`})}var WA=E($(),1),wni={display:"flex",alignItems:"center",gap:1},kni={color:"text.secondary",fontFamily:"fontFamilyMono"},_ni={flex:1,overflowWrap:"anywhere"},Eni={color:"text.disabled","&:hover":{color:"text.primary"}};function aCr({conversation:e}){let{resumeSession:t}=ll(),r=n=>{n.stopPropagation(),t(e.sessionId,e.cwd??"",e.title,e.harness)};return(0,WA.jsxs)(J,{sx:wni,children:[(0,WA.jsx)(Le,{variant:"body2",component:"span",sx:kni,children:"session"}),(0,WA.jsx)(Le,{variant:"body2",component:"span",sx:_ni,children:e.title??e.sessionId}),(0,WA.jsx)(er,{size:"small",title:"Resume",sx:Eni,onClick:r,children:(0,WA.jsx)(Lg,{sx:{fontSize:14}})})]})}var lCr=E($(),1),Rni={color:"text.disabled",ml:1};function sCr({gitRef:e}){return e.kind!=="commit"||!e.createdAt?null:(0,lCr.jsx)(J,{component:"span",sx:Rni,children:Ani(e.createdAt)})}function Ani(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function cCr(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 Cv=E($(),1),Pni={color:"text.secondary",mr:1,fontFamily:"fontFamilyMono"};function Lni({gitRef:e}){let t=cCr(e);return!e.url||e.kind==="session"?(0,Cv.jsx)(Cv.Fragment,{children:t}):(0,Cv.jsx)(Zr,{href:e.url,target:"_blank",rel:"noopener",onClick:r=>r.stopPropagation(),children:t})}function uCr({gitRef:e}){return(0,Cv.jsxs)(Le,{variant:"body2",children:[(0,Cv.jsx)(J,{component:"span",sx:Pni,children:e.kind}),(0,Cv.jsx)(Lni,{gitRef:e}),(0,Cv.jsx)(sCr,{gitRef:e})]})}var P_=E($(),1);function dCr({gitRefs:e,conversations:t=[]}){let[r,n]=(0,fCr.useState)(!1),{branches:i,commits:o,overflowCommits:a,prs:s,slacks:l}=nCr(e),u=[...i,...o,...r?a:[],...s,...l];return u.length===0&&t.length===0?null:(0,P_.jsxs)(J,{...Sv("activity"),children:[(0,P_.jsx)(Le,{variant:"overline",sx:Tv,children:"Activity"}),(0,P_.jsxs)(Et,{spacing:1,children:[u.map(f=>(0,P_.jsx)(uCr,{gitRef:f},`${f.kind}:${f.ref}`)),t.map(f=>(0,P_.jsx)(aCr,{conversation:f},f.sessionId)),(0,P_.jsx)(iCr,{hiddenCount:a.length,expanded:r,onToggle:()=>n(f=>!f)})]})]})}var GA=E($(),1),Mni={alignItems:"center",fontSize:"0.75rem",color:"text.secondary",mb:.5},Ini={color:"text.disabled"},Dni={fontWeight:500},Nni={summary:"Phase summary",comment:"Comment"};function hCr({comment:e}){return(0,GA.jsxs)(Et,{direction:"row",spacing:.5,sx:Mni,children:[e.id!==void 0&&(0,GA.jsxs)(Le,{variant:"caption",sx:Ini,children:["#",e.id]}),(0,GA.jsx)(Le,{variant:"caption",sx:Dni,children:Nni[e.type]}),e.phase!==void 0&&(0,GA.jsxs)(Le,{variant:"caption",children:["\xB7 Phase ",e.phase]}),(0,GA.jsxs)(Le,{variant:"caption",children:["\xB7 ",Oni(e.timestamp)]})]})}function Oni(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}var pCr=E($(),1),mCr=ct((0,pCr.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 EGe=E(fe(),1);async function gCr(e,t,r,n){let i=await fetch(qc(`/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 wv=E($(),1),Bni={mt:-.5,mr:-.5,color:"text.secondary"};function yCr({itemId:e,commentId:t,onDeleted:r}){let n=La(),i=vr(),[o,a]=(0,EGe.useState)(!1),[s,l]=(0,EGe.useState)(),u=()=>l(void 0);return(0,wv.jsxs)(wv.Fragment,{children:[o&&(0,wv.jsx)(Si,{message:"Are you sure you want to delete this comment?",onConfirm:async()=>{a(!1);try{await gCr(e,t,n,i),await r()}catch(f){l(f instanceof Error?f.message:"Failed to delete comment")}},onCancel:()=>a(!1)}),(0,wv.jsx)(eb,{open:s!==void 0,autoHideDuration:6e3,onClose:u,children:(0,wv.jsx)(xi,{severity:"error",variant:"filled",onClose:u,children:s})}),(0,wv.jsx)(er,{"aria-label":"Delete comment",size:"small",sx:Bni,onClick:()=>a(!0),children:(0,wv.jsx)(mCr,{fontSize:"inherit"})})]})}var VA=E($(),1),Fni={summary:{bgcolor:"warning.light",borderColor:"warning.dark"},comment:{bgcolor:"action.selected",borderColor:"divider"}},$ni={justifyContent:"space-between",alignItems:"flex-start"},zni={color:"text.primary",whiteSpace:"pre-wrap"};function Hni(e){return{p:1.5,bgcolor:e.bgcolor,borderColor:e.borderColor}}function vCr({comment:e,itemId:t,onDeleted:r}){return(0,VA.jsxs)(nn,{variant:"outlined",sx:Hni(Fni[e.type]),children:[(0,VA.jsxs)(Et,{direction:"row",sx:$ni,children:[(0,VA.jsx)(hCr,{comment:e}),e.id!==void 0&&t!==void 0&&r&&(0,VA.jsx)(yCr,{itemId:t,commentId:e.id,onDeleted:r})]}),(0,VA.jsx)(Le,{variant:"body2",sx:zni,children:e.text})]})}var d$=E($(),1);function bCr({comments:e,itemId:t,onCommentDeleted:r}){return e.length===0?null:(0,d$.jsxs)(J,{...Sv("comments"),children:[(0,d$.jsx)(Le,{variant:"overline",sx:Tv,children:"Comments"}),(0,d$.jsx)(Et,{spacing:1,children:e.map((n,i)=>(0,d$.jsx)(vCr,{comment:n,itemId:t,onDeleted:r},`${n.timestamp}-${i}`))})]})}var xCr=E($(),1);function h$({total:e,sx:t}){return(0,xCr.jsx)(Le,{sx:t,children:j1e(e)})}var TCr=E($(),1),Uni={color:"text.secondary",fontSize:"0.75rem"};function SCr({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,TCr.jsx)(h$,{total:t,sx:Uni})}var vS=E($(),1);function CCr({checks:e}){return(0,vS.jsxs)(J,{sx:{mt:1,pt:1},children:[(0,vS.jsx)(ki,{sx:{mb:1}}),(0,vS.jsx)(Le,{variant:"overline",sx:{color:"text.disabled",letterSpacing:"0.08em"},children:"Manual Checks"}),(0,vS.jsx)(ey,{disablePadding:!0,sx:{ml:.5,mt:.5},children:e.map(t=>(0,vS.jsxs)(VS,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,vS.jsx)(Le,{component:"span",sx:{mr:1,fontSize:"0.875rem",color:"text.secondary"},children:"\u2610"}),(0,vS.jsx)($u,{component:"span",className:"markdown",sx:{fontSize:"0.875rem",color:"text.secondary"},html:gB(t)})]},t))})]})}var xve="task-marker";function Wni(e,t){let{primary:r,success:n,divider:i}=e.palette;return t==="done"?Dr(n.main,.3):t==="current"?Dr(r.main,.6):i}function Gni(e,t){let r=t==="done";return{display:"grid",gap:1,px:2,py:"14px","& .MuiList-root":{ml:0},"& .MuiListItem-root":{py:"2px",fontSize:13.5,color:r?"text.primary":"text.secondary"},[`& .${xve}`]:{width:16,flexShrink:0,mr:"6px",fontSize:"inherit",textAlign:"center",color:r?"success.main":"text.disabled"},bgcolor:"background.paper",borderRadius:`${e.tokens.radius.md}px`,borderColor:Wni(e,t),...t==="current"&&{boxShadow:`0 0 0 3px ${e.palette.action.selected}`}}}function wCr(e){return t=>Gni(t,e)}var kCr={done:"\u2713",current:"\xB7",upcoming:"\xB7"};var BX=E($(),1),Vni={color:"text.secondary",fontSize:"0.75rem",letterSpacing:"0.08em",display:"block"},qni={color:"text.secondary",fontSize:"0.75rem",fontFamily:"fontFamilyMono",display:"block"};function _Cr({sessions:e}){return(0,BX.jsxs)(J,{sx:{mb:1},children:[(0,BX.jsx)(Le,{variant:"overline",sx:Vni,children:"Sessions"}),e.map(t=>(0,BX.jsx)(Le,{sx:qni,children:`${t.hostname} / ${t.osUser} / ${t.claudeSessionId}`},t.claudeSessionId))]})}var RCr=E($(),1),jni={color:"text.secondary",fontSize:"0.75rem",mb:1,display:"block"};function ECr({usage:e}){return(0,RCr.jsx)(h$,{total:e,sx:jni})}var LCr=E(fe(),1);var ACr=E(fe(),1),kv=E($(),1);function PCr({phaseName:e,onConfirm:t,onCancel:r}){let[n,i]=(0,ACr.useState)("");return(0,kv.jsxs)(ql,{open:!0,onClose:r,maxWidth:"xs",fullWidth:!0,children:[(0,kv.jsxs)(Ru,{children:["Rewind to ",e,"?"]}),(0,kv.jsxs)(Eu,{children:[(0,kv.jsx)(Le,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"This will mark all later phases as incomplete."}),(0,kv.jsx)(Yn,{fullWidth:!0,multiline:!0,rows:3,size:"small",placeholder:"Reason for rewinding...",value:n,onChange:o=>i(o.target.value)})]}),(0,kv.jsxs)(ud,{children:[(0,kv.jsx)(Mt,{onClick:r,children:"Cancel"}),(0,kv.jsx)(Mt,{variant:"contained",color:"warning",disabled:n.trim().length===0,onClick:()=>t(n.trim()),children:"Rewind"})]})]})}var qA=E($(),1),Yni={ml:"auto",minHeight:0,px:"6px",py:"2px",fontSize:12,fontWeight:500,borderRadius:"4px"};function MCr({itemId:e,phaseNumber:t,phaseName:r,onRewound:n}){let i=La(),o=vr(),[a,s]=(0,LCr.useState)(!1);return(0,qA.jsxs)(qA.Fragment,{children:[(0,qA.jsx)(Mt,{size:"small",color:"primary",variant:"text",onClick:()=>s(!0),sx:Yni,children:"Rewind"}),a&&(0,qA.jsx)(PCr,{phaseName:r,onConfirm:async l=>{await jot(e,t,l,i,o),await n()},onCancel:()=>s(!1)})]})}var DCr=E($(),1);function ICr({phase:e,index:t,status:r,itemId:n,onRewind:i}){return r!=="done"||n===void 0||!i?null:(0,DCr.jsx)(MCr,{itemId:n,phaseNumber:t+1,phaseName:e.name,onRewound:i})}var jA=E($(),1),Kni={done:{label:"Done",color:"success"},current:{label:"In progress",color:"primary"},upcoming:{label:"To do",color:"default"}},Xni={alignItems:"center",flexWrap:"wrap",gap:1,fontSize:14,fontWeight:600},Zni=e=>({fontFamily:e.typography.fontFamilyMono,fontSize:12,fontWeight:500,color:"text.disabled"});function NCr(e){let t=Kni[e.status];return(0,jA.jsxs)(Et,{direction:"row",sx:Xni,children:[(0,jA.jsx)(J,{component:"span",sx:Zni,children:e.index+1}),(0,jA.jsx)("span",{children:e.phase.name}),(0,jA.jsx)(Hn,{label:t.label,size:"small",color:t.color}),(0,jA.jsx)(ICr,{...e})]})}var p$=E($(),1);function OCr({tasks:e,marker:t}){return(0,p$.jsx)(ey,{disablePadding:!0,sx:{ml:.5},children:e.map(r=>(0,p$.jsxs)(VS,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,p$.jsx)(Le,{component:"span",className:xve,sx:{color:"text.secondary",mr:1},children:t}),(0,p$.jsx)($u,{component:"span",className:"markdown",html:gB(r.task)})]},r.task))})}var L_=E($(),1);function BCr({phase:e,index:t,status:r,itemId:n,usage:i,sessions:o,onRewind:a}){let s=e.manualChecks??[],l=bve(t),u=kCr[r];return(0,L_.jsxs)(nn,{variant:"outlined",id:l.id,sx:[wCr(r),l.sx],children:[(0,L_.jsx)(NCr,{phase:e,index:t,status:r,itemId:n,onRewind:a}),i&&(0,L_.jsx)(ECr,{usage:i}),(0,L_.jsx)(OCr,{tasks:e.tasks,marker:u}),s.length>0&&(0,L_.jsx)(CCr,{checks:s}),o&&o.length>0&&(0,L_.jsx)(_Cr,{sessions:o})]})}var FX={name:"Review",tasks:[]};function Sve(e){return e.at(-1)?.name===FX.name?e.length-1:e.length}function Tve(e,t){if(t===void 0)return"upcoming";let r=e+1;return r<t?"done":r===t?"current":"upcoming"}function FCr(e=[]){return new Map(e.map(t=>[t.phaseIdx,t]))}function $Cr(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 RGe=E($(),1);function zCr({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){let a=FCr(n),s=$Cr(i),l=Sve(e),u=(i??[]).filter(d=>d.phaseIdx>=l),f=l===e.length&&u.length>0?[...e,FX]:e;return(0,RGe.jsx)(Et,{spacing:1.5,children:f.map((d,h)=>(0,RGe.jsx)(BCr,{phase:d,index:h,status:Tve(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 YA=E($(),1),Qni={alignItems:"baseline",justifyContent:"space-between",mb:1},Jni=[Tv,{mb:0}];function HCr({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){return e.length===0?null:(0,YA.jsxs)(J,{...Sv("plan"),children:[(0,YA.jsxs)(Et,{direction:"row",sx:Qni,children:[(0,YA.jsx)(Le,{variant:"overline",sx:Jni,children:"Plan"}),n&&n.length>0&&(0,YA.jsx)(SCr,{usage:n})]}),(0,YA.jsx)(zCr,{phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o})]})}var M_=E($(),1);function UCr({item:e,onRewind:t,onCommentDeleted:r}){return(0,M_.jsxs)(M_.Fragment,{children:[e.plan&&(0,M_.jsx)(HCr,{phases:e.plan,currentPhase:e.currentPhase,itemId:e.id,usage:e.phaseUsage,sessions:e.phaseSessions,onRewind:t}),(0,M_.jsx)(dCr,{gitRefs:e.gitRefs??[],conversations:e.conversations}),e.comments&&(0,M_.jsx)(bCr,{comments:e.comments,itemId:e.id,onCommentDeleted:r})]})}var m$=E($(),1);function WCr({item:e,onRewind:t,onCommentDeleted:r}){return(0,m$.jsxs)(J,{sx:{pt:2,flex:1,minWidth:0},children:[(0,m$.jsx)(rCr,{description:e.description}),(0,m$.jsx)(tCr,{criteria:e.acceptanceCriteria}),(0,m$.jsx)(UCr,{item:e,onRewind:t,onCommentDeleted:r})]})}var GCr="item-detail";var g$={wideQuery:`@container ${GCr} (min-width: 760px)`,containerSx:{containerType:"inline-size",containerName:GCr},columnsSx:{display:"flex",alignItems:"flex-start",columnGap:4},mainColumnSx:{flex:1,minWidth:0}};var $X=E($(),1);function VCr({style:e,header:t,body:r,navigator:n}){return(0,$X.jsx)(J,{style:e,sx:g$.containerSx,children:(0,$X.jsxs)(J,{sx:g$.columnsSx,children:[(0,$X.jsxs)(J,{sx:g$.mainColumnSx,children:[t,r]}),n]})})}function eii(e){let t=e.plan??[];if(t.length===0)return[];let r=Sve(t),i=r===t.length&&(e.phaseSessions??[]).some(o=>o.phaseIdx>=r)?[...t,FX]:t;return[{id:UA.plan,label:"Phases"},...i.map((o,a)=>({id:bve(a).id,label:`${a+1}`,title:o.name,status:Tve(a,e.currentPhase),nested:!0}))]}function qCr(e){let t=[];return e.description&&t.push({id:UA.description,label:"Description"}),e.acceptanceCriteria.length>0&&t.push({id:UA.acceptanceCriteria,label:"Acceptance Criteria"}),t.push(...eii(e)),(e.gitRefs?.length??0)+(e.conversations?.length??0)>0&&t.push({id:UA.activity,label:"Activity"}),(e.comments?.length??0)>0&&t.push({id:UA.comments,label:"Comments"}),t}var tii=48,jCr={display:"none",[g$.wideQuery]:{display:"grid"},alignContent:"start",gap:"2px",position:"sticky",top:0,alignSelf:"flex-start",width:200,flexShrink:0,maxHeight:`calc(100vh - ${tii}px - ${vy})`,overflowY:"auto",overflowX:"hidden",pt:"44px",pb:2};function YCr(e){return{justifyContent:"flex-start",px:"10px",py:.5,borderLeft:2,borderColor:e?"primary.main":"divider",fontSize:13,textAlign:"left",color:e?"text.primary":"text.secondary",transition:"color .2s ease","&:hover":{color:"text.primary"}}}var KCr={display:"grid",gap:"2px",pl:"10px",borderLeft:2,borderColor:"divider"};function XCr(e){return t=>({display:"inline-grid",placeItems:"center",flexShrink:0,width:18,height:18,border:1,borderRadius:"50%",fontStyle:"normal",fontFamily:t.typography.fontFamilyMono,fontSize:10,...rii(t,e)})}function rii(e,t){return t==="done"?{bgcolor:Dr(e.palette.success.main,.18),borderColor:"transparent",color:"success.main"}:t==="current"?{bgcolor:"primary.main",borderColor:"transparent",color:"primary.contrastText"}:{borderColor:"divider",color:"text.disabled"}}function ZCr(e){return{justifyContent:"flex-start",gap:1,minWidth:0,py:"3px",pl:.5,fontSize:12,textAlign:"left",color:e?"text.primary":"text.secondary",transition:"color .2s ease","&:hover":{color:"text.primary"},"& .phase-label":{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}}var zX=E($(),1);function QCr({section:e,active:t,onSelect:r}){return(0,zX.jsxs)(cn,{sx:ZCr(t),onClick:()=>r(e.id),title:e.title,"aria-current":t?"true":void 0,children:[(0,zX.jsx)(J,{component:"i",sx:XCr(e.status),children:e.label}),(0,zX.jsx)(J,{component:"span",className:"phase-label",children:e.title})]})}var KA=E($(),1);function nii(e){let t=[];for(let r of e){let n=t.at(-1);r.nested&&n?n.phases.push(r):t.push({link:r,phases:[]})}return t}function iii(e){return e.charAt(0)+e.slice(1).toLowerCase()}function JCr({sections:e,activeId:t,onSelect:r}){return(0,KA.jsx)(J,{component:"nav",sx:jCr,children:nii(e).map(({link:n,phases:i})=>(0,KA.jsxs)(J,{sx:{display:"contents"},children:[(0,KA.jsx)(cn,{sx:YCr(n.id===t),onClick:()=>r(n.id),"aria-current":n.id===t?"true":void 0,children:iii(n.label)}),i.length>0&&(0,KA.jsx)(J,{sx:KCr,children:i.map(o=>(0,KA.jsx)(QCr,{section:o,active:o.id===t,onSelect:r},o.id))})]},n.id))})}function ewr(e,t=NX){return ege(e,t)}var rwr=E($(),1);function oii(e){document.getElementById(e)?.scrollIntoView({behavior:"smooth",block:"start"})}function twr({item:e,headerHeight:t}){let r=qCr(e),n=ewr(r.map(i=>i.id),t);return r.length===0?null:(0,rwr.jsx)(JCr,{sections:r,activeId:n,onSelect:oii})}var iwr=E($(),1),aii={justifySelf:"start",minHeight:0,minWidth:0,p:0,fontSize:12,fontWeight:400,lineHeight:1.5,"&:hover":{bgcolor:"transparent"}};function nwr({to:e}){let t=Bi();return(0,iwr.jsx)(Mt,{"data-backlog-focus":"back",variant:"text",size:"small",onClick:()=>t(e),sx:aii,children:"\u2190 Backlog"})}var owr=E(fe(),1);var XA=E($(),1);function awr({itemId:e,onDeleted:t}){let r=La(),n=vr(),[i,o]=(0,owr.useState)(!1);return(0,XA.jsxs)(XA.Fragment,{children:[i&&(0,XA.jsx)(Si,{onConfirm:async()=>{await qot(e,r,n),await t()},onCancel:()=>o(!1)}),(0,XA.jsx)(Mt,{variant:"outlined",color:"error",size:"small",onClick:()=>o(!0),children:"Delete"})]})}var Cve=E(fe(),1);var _v=E($(),1);function swr({itemId:e}){let{launched:t,launch:r}=rve(e),n=S_(),i=(0,Cve.useRef)(null),[o,a]=(0,Cve.useState)(!1),s=u=>u.stopPropagation(),l=X1e(n);return(0,_v.jsxs)(_v.Fragment,{children:[(0,_v.jsxs)(US,{ref:i,variant:"tonal",size:"small",disabled:t,children:[(0,_v.jsx)(Mt,{onClick:u=>{s(u),r([])},children:"Refine"}),l.length>0&&(0,_v.jsx)(Mt,{size:"small","aria-label":"Refine with a different harness",onClick:u=>{s(u),a(!0)},children:(0,_v.jsx)(xd,{})})]}),(0,_v.jsx)(Z1e,{anchorEl:i.current,open:o,onClose:()=>a(!1),options:l,onSelect:u=>{a(!1),r(["--harness",u])},stop:s})]})}var y$=E($(),1);function lwr({item:e,onDeleted:t}){return(0,y$.jsxs)(Et,{direction:"row",spacing:1,children:[Y1e(e)&&(0,y$.jsx)(pve,{itemId:e.id}),(0,y$.jsx)(swr,{itemId:e.id}),(0,y$.jsx)(awr,{itemId:e.id,onDeleted:t})]})}var sii={todo:"text.secondary","in-progress":"warning.main",done:"success.main",wontdo:"error.main"},lii={todo:"to do","in-progress":"in progress",done:"done",wontdo:"won't do"};function AGe(e){return lii[e]}function cwr(e){return t=>{let r=n0e(t,sii[e]);return{height:20,minHeight:0,borderRadius:999,fontSize:11,fontWeight:600,color:r,bgcolor:Dr(r,.15),"&:hover":{bgcolor:Dr(r,.22)},"& .MuiOutlinedInput-notchedOutline, &:hover .MuiOutlinedInput-notchedOutline, &.Mui-focused .MuiOutlinedInput-notchedOutline":{border:0},"& .MuiSelect-select.MuiSelect-select":{py:0,pl:1,pr:"22px",minHeight:0,lineHeight:"20px"},"& .MuiSelect-icon":{color:"inherit",fontSize:16,right:4}}}}var PGe=E($(),1),uwr=e=>{let{value:t,options:r,onChange:n,label:i,sx:o}=e;return(0,PGe.jsx)(YS,{value:t,onChange:a=>n(a.target.value),size:"small",renderValue:i,sx:o,children:r.map(a=>(0,PGe.jsx)(hn,{value:a,children:i(a)},a))})};var LGe=E($(),1),cii=["todo","in-progress","done","wontdo"];function fwr({current:e,onStatusChange:t}){return t?(0,LGe.jsx)(uwr,{value:e,options:cii,onChange:t,label:AGe,sx:cwr(e)}):(0,LGe.jsx)(Hn,{label:AGe(e),size:"small",color:$1e[e]})}var bS=E($(),1),uii={alignItems:"center",color:"text.disabled",fontSize:"0.875rem"},fii={fontFamily:"fontFamilyMono",fontSize:12},dii={color:"text.secondary",fontSize:"0.75rem"};function dwr({item:e,onStatusChange:t}){let r=F1e[e.type];return(0,bS.jsxs)(Et,{direction:"row",spacing:.75,sx:uii,children:[(0,bS.jsx)(Le,{variant:"body2",color:"text.disabled",sx:fii,children:so(e.id)}),r&&(0,bS.jsx)(Hn,{label:e.type,size:"small",color:r}),(0,bS.jsx)(fwr,{current:e.status,onStatusChange:t}),(0,bS.jsx)($L,{jiraKey:e.jiraKey}),(0,bS.jsx)(RT,{githubIssue:e.githubIssue,origin:e.origin}),e.usageTotal&&(0,bS.jsx)(h$,{total:e.usageTotal,sx:dii})]})}var I_=E($(),1),hii={justifyContent:"space-between",alignItems:"flex-start",flexWrap:"wrap",gap:1.5},pii={display:"grid",gap:"6px",minWidth:0},mii={m:0,fontSize:24,fontWeight:600,lineHeight:1.25,letterSpacing:"-0.015em"};function hwr({item:e,onDeleted:t,onStatusChange:r}){return(0,I_.jsxs)(Et,{direction:"row",sx:hii,children:[(0,I_.jsxs)(J,{sx:pii,children:[(0,I_.jsx)(nwr,{to:"/backlog"}),(0,I_.jsx)(Le,{component:"h2",sx:mii,children:e.name}),(0,I_.jsx)(dwr,{item:e,onStatusChange:r})]}),(0,I_.jsx)(lwr,{item:e,onDeleted:t})]})}var v$=E(fe(),1);function pwr(){let e=(0,v$.useRef)(null),[t,r]=(0,v$.useState)(!1);return(0,v$.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 D_=E($(),1);function gii(e){return t=>({position:"sticky",top:0,zIndex:1,bgcolor:"background.default",mx:-2,px:2,pb:2,boxShadow:e?t.tokens.elevation.stuckHeader:"none",transition:t.transitions.create("box-shadow")})}function mwr({ref:e,...t}){let{sentinelRef:r,stuck:n}=pwr();return(0,D_.jsxs)(D_.Fragment,{children:[(0,D_.jsx)(J,{ref:r,sx:{height:0}}),(0,D_.jsx)(J,{ref:e,sx:gii(n),children:(0,D_.jsx)(hwr,{...t})})]})}var gwr=E(fe(),1);function ywr(){let e=(0,gwr.useRef)(null),t=Z0e(e,NX),r={[_Ge]:`${t}px`};return{headerRef:e,headerHeight:t,style:r}}var HX=E($(),1);function vwr({item:e,onReload:t}){let r=Bi(),n=La(),i=vr(),{headerRef:o,headerHeight:a,style:s}=ywr();return _y("ItemDetail"),(0,HX.jsx)(VCr,{style:s,header:(0,HX.jsx)(mwr,{ref:o,item:e,onDeleted:async()=>{await t(),r("/backlog")},onStatusChange:async f=>{await YL(e.id,f,n,i),await t()}}),body:(0,HX.jsx)(WCr,{item:e,onRewind:t,onCommentDeleted:t}),navigator:(0,HX.jsx)(twr,{item:e,headerHeight:a})})}var ZA=E($(),1),yii={display:"flex",justifyContent:"center",py:6};function bwr({onReload:e}){let[t]=Vc(),r=t.get("cwd")||void 0,n=t.get("node")||void 0,i=$n(),o=Ac().nodes?.local,a=(0,wve.useMemo)(()=>JTr(i,r,n,o),[i,r,n,o]);return _y("ItemRoute"),(0,ZA.jsx)(CU.Provider,{value:a,children:(0,ZA.jsx)(yf.Provider,{value:a.selectedNode,children:(0,ZA.jsx)(vii,{onReload:e})})})}function vii({onReload:e}){let{id:t}=nwe(),r=Number.NaN;try{r=qte(t??"")}catch{r=Number.NaN}let{item:n,loading:i,reload:o}=KTr(r),a=(0,wve.useCallback)(async()=>{await Promise.all([o(),e()])},[o,e]);return i?(0,ZA.jsx)(J,{sx:yii,children:(0,ZA.jsx)(ao,{})}):n?(0,ZA.jsx)(vwr,{item:n,onReload:a}):null}var QA=E($(),1);function xwr({items:e,loading:t,error:r,socket:n,onReload:i}){return(0,QA.jsxs)(mE,{children:[(0,QA.jsx)(es,{index:!0,element:(0,QA.jsx)(YTr,{items:e,loading:t,error:r,socket:n,onReload:i})}),(0,QA.jsx)(es,{path:"items/:id",element:(0,QA.jsx)(bwr,{onReload:i})})]})}var N0=E(fe(),1);var Swr=new Map;function Twr(e,t,r){return JSON.stringify([e??null,t,r??null])}var UX={get(e,t,r){return Swr.get(Twr(e,t,r))},set(e,t,r,n){Swr.set(Twr(e,t,n),r)}};function bii(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 Cwr(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&&bii(r.usageTotal,i.usageTotal)})}function wwr({setItems:e,setLoading:t,setError:r}){return{onLoaded:n=>{e(i=>Cwr(i,n)?i:n),t(!1),r(null)},onError:n=>{t(!1),r(n)}}}async function kwr(e,t,r,n){let i=await PT({cwd:e,node:n,signal:r,filter:t});return r.aborted||UX.set(e,t,i,n),i}function _wr(e,t,r,{onLoaded:n,onError:i},o){return(async()=>{try{let a=await kwr(e,t,r,o);r.aborted||n(a)}catch(a){r.aborted||i(a instanceof Error?a.message:"Failed to load.")}})()}var xii=5e3;function Ewr(e,t,r,n){let i=new AbortController,o=!1,a=()=>{o||(o=!0,_wr(e,t,i.signal,r,n).finally(()=>{o=!1}))};a();let s=setInterval(a,xii);return()=>{i.abort(),clearInterval(s)}}function Rwr(){let e=La(),t=vr(),[r]=r$(),n=UX.get(e,r,t),i=n??[],o=n===void 0,[a,s]=(0,N0.useState)(i),[l,u]=(0,N0.useState)(o),[f,d]=(0,N0.useState)(null),[h,p]=(0,N0.useState)(e),[m,g]=(0,N0.useState)(t),[y,v]=(0,N0.useState)(r);(e!==h||t!==m||r!==y)&&(p(e),g(t),v(r),s(i),u(o),d(null));let b=(0,N0.useCallback)(async()=>{let x=await PT({cwd:e,node:t,filter:r});s(x),UX.set(e,r,x,t),u(!1)},[e,t,r]);return(0,N0.useEffect)(()=>Ewr(e,r,wwr({setItems:s,setLoading:u,setError:d}),t),[e,t,r]),{items:a,loading:l,error:f,reload:b}}var b$=E($(),1);function Awr({socket:e}){let{items:t,loading:r,error:n,reload:i}=Rwr();return lne(!r),(0,b$.jsx)(hGe.Provider,{value:e.sessions,children:(0,b$.jsx)(bGe.Provider,{value:e.selectSession,children:(0,b$.jsx)(mE,{children:(0,b$.jsx)(es,{path:"/*",element:(0,b$.jsx)(xwr,{items:t,loading:r,error:n,socket:e,onReload:i})})})})})}var MGe=E($(),1);function Pwr({socket:e}){return(0,MGe.jsx)(Dz,{maxWidth:"lg",sx:{py:3,px:2},children:(0,MGe.jsx)(Awr,{socket:e})})}var yi=E($(),1);function Lwr({socket:e}){return _y("AppRoutes"),(0,yi.jsxs)(yi.Fragment,{children:[(0,yi.jsx)(yfr,{}),(0,yi.jsx)(mE,{children:(0,yi.jsxs)(es,{element:(0,yi.jsx)(Klt,{socket:e}),children:[(0,yi.jsx)(es,{path:"sessions",element:(0,yi.jsx)(Xxr,{socket:e})}),(0,yi.jsx)(es,{path:"backlog/*",element:(0,yi.jsx)(Pwr,{socket:e})}),(0,yi.jsx)(es,{path:"next",element:(0,yi.jsx)(gur,{sessions:e.sessions,selectSession:e.selectSession})}),(0,yi.jsx)(es,{path:"news",element:(0,yi.jsx)(ycr,{})}),(0,yi.jsx)(es,{path:"inbox",element:(0,yi.jsx)(dcr,{})}),(0,yi.jsx)(es,{path:"releases",element:(0,yi.jsx)(dfr,{})}),(0,yi.jsx)(es,{path:"usage",element:(0,yi.jsx)(NSr,{})}),(0,yi.jsx)(es,{path:"backups",element:(0,yi.jsx)(nct,{})}),(0,yi.jsx)(es,{path:"config",element:(0,yi.jsx)(aft,{})}),(0,yi.jsx)(es,{path:"updates",element:(0,yi.jsx)(V2r,{reconnecting:e.reconnecting,selectSession:e.selectSession})}),(0,yi.jsx)(es,{path:"diff",element:(0,yi.jsx)(Uar,{socket:e})}),(0,yi.jsx)(es,{path:"file",element:(0,yi.jsx)(scr,{socket:e})}),(0,yi.jsx)(es,{path:"*",element:(0,yi.jsx)(cwe,{to:"/sessions",replace:!0})})]})})]})}var Ev=E($(),1),Sii=28,Iwr=`calc(${Sii}px + ${uy.bottom})`,Tii={":root":{[rke]:Iwr}},Cii={position:"fixed",left:0,right:0,bottom:0,height:Iwr,boxSizing:"border-box",pb:uy.bottom,zIndex:e=>e.zIndex.appBar,display:"flex",alignItems:"center",gap:.5,px:.75,borderTop:1,borderColor:"divider",bgcolor:e=>e.tokens.color.statusBar?.background,color:e=>e.tokens.color.statusBar?.text,fontFamily:"fontFamilyMono",fontSize:"11.5px",whiteSpace:"nowrap",minWidth:0},Mwr={display:"flex",alignItems:"center",gap:.5,minWidth:0};function Dwr({start:e,end:t}){return(0,Ev.jsxs)(Ev.Fragment,{children:[(0,Ev.jsx)(f5,{styles:Tii}),(0,Ev.jsxs)(J,{component:"footer","data-testid":"status-bar",sx:Cii,children:[(0,Ev.jsx)(J,{sx:Mwr,children:e}),(0,Ev.jsx)(J,{sx:{flex:1}}),(0,Ev.jsx)(J,{sx:Mwr,children:t})]})]})}function Nwr(e){return e?.five_hour?.used_percentage!=null||e?.seven_day?.used_percentage!=null}function Owr(e,t){let r=[];Nwr(e)&&r.push({harness:"claude",rateLimits:e});for(let[n,i]of Object.entries(t))Nwr(i)&&r.push({harness:n,rateLimits:i});return r}var Vwr=E(fe(),1);var Rv=e=>e.tokens.color.statusBar;var x$=e=>Rv(e).secondary;function Bwr(e){return t=>Rv(t).level[e]}var Wwr=E(fe(),1);function kve(e,t,r){return e!=null?z1e(e,r):t}var _ve=E($(),1);function Fwr({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=kve(e?.resets_at,r,n);return(0,_ve.jsxs)(J,{component:"span",children:[(0,_ve.jsxs)(J,{component:"span",sx:{color:Bwr(o)},children:[Math.round(i),"%"]})," ",(0,_ve.jsxs)(J,{component:"span",sx:{color:x$},children:["(",a,")"]})]})}var JA=E($(),1),wii='@property --rainbow-pill-h { syntax: "<number>"; inherits: true; initial-value: 0; }',kii=go`
|
|
4016
|
+
`,VSr={...GSr,borderColor:"warning.main",borderLeft:4,borderLeftColor:"warning.main",bgcolor:e=>Dr(e.palette.warning.main,.08)},Bri={...VSr,borderLeftColor:"transparent",backgroundImage:e=>`repeating-linear-gradient(to bottom, ${e.palette.warning.main} 0 ${USr}px, transparent ${USr}px ${mGe}px)`,backgroundOrigin:"border-box",backgroundRepeat:"repeat-y",backgroundSize:`4px ${mGe}px`,animation:`${Ori} 0.9s linear infinite`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}},WSr={"& .MuiButtonBase-root:focus-visible":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:"2px"}},yv={card:GSr,inProgressCard:VSr,inProgressRunningCard:Bri,main:{minWidth:0,textAlign:"left"},stretchedNameLink:{display:"block",fontWeight:500,color:"text.primary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",...Nri},meta:{display:"flex",alignItems:"center",gap:1,...HSr,width:"fit-content",maxWidth:"100%",fontSize:"0.75rem",color:"text.secondary","& a, & p":{fontSize:"0.75rem"},...WSr},id:{color:"text.disabled"},actions:{display:"flex",alignItems:"center",gap:1,flexShrink:0,...HSr,...WSr}};function j1e(e){let t=e.peakContextPct>0?` \xB7 \u2593 ${Math.round(e.peakContextPct)}%`:"";return`\u2191 ${lh(e.tokensUp)} \u2193 ${lh(e.tokensDown)} \xB7 \u23F1 ${L0(e.activeMs)}${t}`}var jSr=E($(),1),Fri={width:6,height:6,borderRadius:"50%",bgcolor:"currentColor",flexShrink:0};function qSr(){return(0,jSr.jsx)(J,{component:"span",sx:Fri})}var kX=E($(),1),YSr={display:"inline-flex",alignItems:"center",gap:.625,color:"warning.main",fontWeight:500,fontSize:"0.75rem",whiteSpace:"nowrap",borderRadius:1};function KSr({item:e,openSession:t,onSelectSession:r}){let n=Bi();if(e.status!=="in-progress"||e.currentPhase==null)return null;let i=`phase ${e.currentPhase} of ${e.totalPhases??e.currentPhase}`,o=(0,kX.jsx)(qSr,{});if(!t)return(0,kX.jsxs)(J,{component:"span",sx:YSr,children:[o,i]});let a=()=>{r?.(t.id),n("/sessions")};return(0,kX.jsxs)(cn,{sx:YSr,title:`Open the ${t.status} session`,onClick:a,children:[o,i]})}var kp=E($(),1),$ri={display:"inline-flex",alignItems:"center",gap:.5},zri={width:8,height:8,borderRadius:"50%",flexShrink:0},Hri={whiteSpace:"nowrap"};function Uri({type:e}){let t=F1e[e];return(0,kp.jsxs)(J,{component:"span",sx:$ri,children:[(0,kp.jsx)(J,{component:"span",sx:{...zri,bgcolor:`${t}.main`}}),e]})}function Wri({item:e}){return e.usageTotal?(0,kp.jsx)(sr,{title:j1e(e.usageTotal),children:(0,kp.jsx)(J,{component:"span",sx:Hri,children:`\u23F1 ${L0(e.usageTotal.activeMs)}`})}):null}function XSr({item:e,openSession:t,onSelectSession:r}){return(0,kp.jsxs)(J,{sx:yv.meta,children:[(0,kp.jsx)(J,{component:"span",sx:yv.id,children:so(e.id)}),(0,kp.jsx)(Uri,{type:e.type}),(0,kp.jsx)(KSr,{item:e,openSession:t,onSelectSession:r}),(0,kp.jsx)($L,{jiraKey:e.jiraKey}),(0,kp.jsx)(RT,{githubIssue:e.githubIssue,variant:"icon"}),(0,kp.jsx)(Wri,{item:e})]})}function ZSr(e,t){return e.filter(r=>qB(r)?.itemId===t).reduce((r,n)=>r&&r.startedAt>=n.startedAt?r:n,void 0)}var JSr=E($(),1),Gri={todo:"\u25CB","in-progress":"\u25D4",done:"\u25CF",wontdo:"\u2715"},Vri={todo:"text.disabled","in-progress":"warning.main",done:"success.main",wontdo:"error.main"};function qri(e){return{fontSize:"1.125rem",flexShrink:0,color:Vri[e]}}function QSr({status:e}){return(0,JSr.jsx)(Le,{sx:qri(e),children:Gri[e]})}function Y1e(e){return e.status==="todo"||e.status==="in-progress"}function jri(e){if(e.status==="done")return e.totalPhases;if(e.status==="in-progress")return e.currentPhase}function Yri(e,t,r){return r?"complete":e<t?"done":e===t?"current":"remaining"}function eTr(e){let t=e.totalPhases,r=jri(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:Yri(o+1,r,n)}))}}var n$=E($(),1),Kri={done:"text.secondary",current:"warning.main",remaining:"divider",complete:"success.main"},Xri={display:"inline-flex",alignItems:"center",gap:.5,flexShrink:0},Zri={fontSize:"0.6875rem",color:"text.secondary",fontVariantNumeric:"tabular-nums"},Qri={display:"inline-flex",alignItems:"center",gap:"2px"},Jri={width:6,height:12,borderRadius:"1px",flexShrink:0};function tTr({item:e}){let t=eTr(e);return t?(0,n$.jsxs)(J,{sx:Xri,title:`Phase ${t.reached} of ${t.total}`,children:[(0,n$.jsx)(J,{component:"span",sx:Zri,children:`${t.reached}/${t.total}`}),(0,n$.jsx)(J,{component:"span",sx:Qri,"aria-hidden":!0,children:t.segments.map(r=>(0,n$.jsx)(J,{component:"span","data-segment":r.kind,sx:{...Jri,bgcolor:Kri[r.kind]}},r.phase))})]}):null}var ATr=E(fe(),1);var Q1e=E(fe(),1);var zA=E($(),1),eni={minWidth:0,p:.5,borderRadius:"50%"};function K1e({tooltip:e,disabled:t,onClick:r,compact:n=!1}){return(0,zA.jsx)(sr,{title:e,children:(0,zA.jsx)(J,{component:"span",sx:{display:"flex"},children:n?(0,zA.jsx)(Mt,{"aria-label":"Build",variant:"contained",color:"success",size:"small",disabled:t,sx:eni,onClick:r,children:(0,zA.jsx)(Lg,{fontSize:"small"})}):(0,zA.jsx)(Mt,{startIcon:(0,zA.jsx)(Lg,{}),disabled:t,onClick:r,children:"Build"})})})}var gGe=E($(),1);function X1e(e){let t=[];return e.exposeCodexActions&&t.push({kind:"codex",label:"with Codex"}),e.exposePiActions&&t.push({kind:"pi",label:"with pi"}),t}function Z1e({anchorEl:e,open:t,onClose:r,options:n,onSelect:i,stop:o}){return(0,gGe.jsx)(Bs,{anchorEl:e,open:t,onClose:r,onClick:o,children:n.map(a=>(0,gGe.jsx)(hn,{onClick:s=>{o(s),i(a.kind)},children:a.label},a.kind))})}var vv=E($(),1);function rTr({tooltip:e,disabled:t,onBuild:r,onSelectHarness:n}){let i=X1e(S_()),o=(0,Q1e.useRef)(null),[a,s]=(0,Q1e.useState)(!1),l=u=>u.stopPropagation();return(0,vv.jsxs)(vv.Fragment,{children:[(0,vv.jsxs)(US,{ref:o,variant:"contained",color:"primary",size:"small",disabled:t,children:[(0,vv.jsx)(K1e,{tooltip:e,disabled:t,onClick:u=>{l(u),r()}}),i.length>0&&(0,vv.jsx)(Mt,{"aria-label":"Build with a different harness",onClick:u=>{l(u),s(!0)},children:(0,vv.jsx)(xd,{})})]}),(0,vv.jsx)(Z1e,{anchorEl:o.current,open:a,onClose:()=>s(!1),options:i,onSelect:u=>{s(!1),n(u)},stop:l})]})}var nTr=E($(),1),i$=ct((0,nTr.jsx)("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96M19 18H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95C8.08 7.14 9.94 6 12 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11c1.56.1 2.78 1.41 2.78 2.96 0 1.65-1.35 3-3 3m-5.55-8h-2.9v3H8l4 4 4-4h-2.55z"}),"CloudDownloadOutlined");var w_=E($(),1),tni={vertical:"bottom",horizontal:"center"};function J1e({clone:e}){let{prompt:t,confirm:r,cancel:n,error:i,dismissError:o}=e;return(0,w_.jsxs)(w_.Fragment,{children:[t&&(0,w_.jsx)(Si,{title:"Clone repository",message:`Clone ${t.displayName} over SSH into ${t.cloneTarget}${t.node?` on ${t.node}`:""}?`,confirmLabel:"Clone",confirmColor:"primary",onConfirm:r,onCancel:n}),(0,w_.jsx)(eb,{open:!!i,autoHideDuration:8e3,onClose:o,anchorOrigin:tni,children:(0,w_.jsx)(xi,{severity:"error",onClose:o,variant:"filled",children:i})})]})}var D0=E(fe(),1);function yGe(e){return["backlog","clone",e]}function eve(e,t){t(yGe(e.origin),void 0,{title:`Clone ${e.displayName}`,subtitle:e.origin,...e.node&&{node:e.node}})}function iTr(e,t){return!!e&&e.length===t.length&&e.every((r,n)=>r===t[n])}function oTr(e,t,r){let n=yGe(t.origin),i=new Set(e.filter(o=>iTr(o.assistArgs,n)).map(o=>o.id));return eve(t,r),{args:n,target:t.cloneTarget,node:t.node,preexisting:i}}function aTr(e,t){if(!t.id){let n=e.find(i=>iTr(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 tve(e){let{setSelectedCwd:t}=$n(),{launchAssist:r}=ll(),[n,i]=(0,D0.useState)(null),[o,a]=(0,D0.useState)(null),[s,l]=(0,D0.useState)(null),u=(0,D0.useCallback)(p=>{l(null),i(p)},[]),f=(0,D0.useCallback)(()=>i(null),[]),d=(0,D0.useCallback)(()=>l(null),[]),h=(0,D0.useCallback)(()=>{n&&(a(oTr(e,n,r)),i(null))},[n,e,r]);return(0,D0.useEffect)(()=>{if(!o)return;let p=aTr(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 o$(e,t){return`Not cloned ${e?`on ${e}`:"locally"} \u2014 click to clone into ${t}`}var pS=E($(),1),rni={border:1,borderStyle:"dashed"};function sTr({target:e}){let t=tve(q1e());return(0,pS.jsxs)(pS.Fragment,{children:[(0,pS.jsx)(sr,{title:o$(e.node,e.cloneTarget),children:(0,pS.jsx)(er,{"aria-label":"Clone",size:"small",sx:rni,onClick:r=>{r.stopPropagation(),t.requestClone(e)},children:(0,pS.jsx)(i$,{fontSize:"small"})})}),(0,pS.jsx)(J1e,{clone:t})]})}var AX=E(fe(),1);var _X=E(fe(),1);function lTr(e,t,r,n){let i=La(),o=vr(),a=(0,_X.useRef)(!1),[s,l]=(0,_X.useState)(!1),[u,f]=(0,_X.useState)(null);return{busy:s,error:u,clearError:()=>f(null),confirm:async()=>{if(!a.current){a.current=!0,l(!0);try{await YL(e,t,i,o)}catch{f(r),a.current=!1,l(!1);return}await n()}}}}var EX=E($(),1),nni={done:{verb:"done",action:"Mark done"},wontdo:{verb:"won't do",action:"Won't do"}};function cTr({itemId:e,status:t,target:r,onClose:n}){let{verb:i,action:o}=nni[t],a=so(e),{busy:s,error:l,clearError:u,confirm:f}=lTr(e,t,`Failed to mark item ${a} as ${i}`,async()=>{n(),await r.onClosed()});return(0,EX.jsxs)(oa,{children:[(0,EX.jsx)(Si,{title:`Mark ${a} ${i}`,message:`${r.currentPhase??0} of ${r.totalPhases??0} phases completed. Mark this backlog item as ${i}?`,confirmLabel:o,busy:s,onConfirm:f,onCancel:n}),(0,EX.jsx)(ec,{error:l,onClose:u})]})}var a$=E($(),1),ini=[{status:"done",label:"Mark done"},{status:"wontdo",label:"Won't do"}];function uTr({anchorEl:e,open:t,onClose:r,onRefine:n,onSelect:i,stop:o}){return(0,a$.jsxs)(Bs,{anchorEl:e,open:t,onClose:r,onClick:o,children:[(0,a$.jsx)(hn,{onClick:a=>{o(a),n()},children:"Refine"}),(0,a$.jsx)(ki,{}),ini.map(({status:a,label:s})=>(0,a$.jsx)(hn,{onClick:l=>{o(l),i(a)},children:s},a))]})}var fTr=E($(),1),dTr=ct((0,fTr.jsx)("path",{d:"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2"}),"MoreVert");var vGe=E($(),1);function hTr({anchorRef:e,onClick:t}){return(0,vGe.jsx)(er,{ref:e,"aria-label":"More actions",size:"small",onClick:t,children:(0,vGe.jsx)(dTr,{fontSize:"small"})})}var RX=E($(),1);function pTr({anchorRef:e,tooltip:t,disabled:r,onBuild:n,onMore:i}){return(0,RX.jsxs)(J,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,RX.jsx)(K1e,{compact:!0,tooltip:t,disabled:r,onClick:n}),(0,RX.jsx)(hTr,{anchorRef:e,onClick:i})]})}var mTr=E(fe(),1);function rve(e){let{launchAssist:t}=ll(),r=Bi(),n=La(),i=vr(),[o,a]=(0,mTr.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 k_=E($(),1);function gTr({itemId:e,tooltip:t,disabled:r,onBuild:n,closeTarget:i}){let o=(0,AX.useRef)(null),[a,s]=(0,AX.useState)(!1),[l,u]=(0,AX.useState)(null),f=rve(e),d=h=>h.stopPropagation();return(0,k_.jsxs)(k_.Fragment,{children:[(0,k_.jsx)(pTr,{anchorRef:o,tooltip:t,disabled:r,onBuild:h=>{d(h),n()},onMore:h=>{d(h),s(!0)}}),(0,k_.jsx)(uTr,{anchorEl:o.current,open:a,onClose:()=>s(!1),onRefine:()=>{s(!1),f.launch([])},onSelect:h=>{s(!1),u(h)},stop:d}),l&&(0,k_.jsx)(cTr,{itemId:e,status:l,target:i,onClose:()=>u(null)})]})}var nve=E(fe(),1),bGe=(0,nve.createContext)(()=>{});function yTr(){return(0,nve.useContext)(bGe)}var ive=E($(),1);function vTr({session:e}){let t=yy(yTr());return(0,ive.jsxs)(Mt,{variant:"contained",size:"small",startIcon:(0,ive.jsx)(Lge,{}),onClick:r=>{r.stopPropagation(),t(e.id)},children:["Session ",e.id]})}function bTr(e,t,r,n){let i=r.node?[{node:r.node}]:[];e(["backlog","run",so(t),...n],r.cwd,...i)}function oni(e,t){let r=e.assistArgs;if(r?.[0]!=="backlog"||r[1]!=="run"||!r[2])return!1;try{return qte(r[2])===t}catch{return!1}}function xTr(e,t){return e.find(r=>r.status!=="done"&&r.status!=="error"&&(oni(r,t)||qB(r)?.itemId===t))}var ove=E(fe(),1),xGe=(0,ove.createContext)({nodes:null,names:[],visible:!1,selected:void 0,select:()=>{}});function Ac(){return(0,ove.useContext)(xGe)}function ave(){let{nodes:e,selected:t}=Ac();return t&&t!==e?.local?t:void 0}var CTr=E(fe(),1);var sve=E(fe(),1);function STr(e,t){return Promise.all(t.map(async r=>{let n=await ani(e,r).catch(()=>({}));return[r,n]}))}async function ani(e,t){let r=await hr(Yr(`/api/repo-location?origin=${encodeURIComponent(e)}`,t||void 0));return r.ok?r.json():{}}var SGe="\0";function TTr(e,t){let[r,n]=(0,sve.useState)(null);return(0,sve.useEffect)(()=>{if(!e||!t)return;let i=!1;return STr(e,t.split(SGe)).then(o=>{i||n({origin:e,byNode:Object.fromEntries(o)})}),()=>{i=!0}},[e,t]),r}function lve(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(SGe),a=TTr(i,o);return(0,CTr.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 s$=E(fe(),1);var cve=E(fe(),1);function uve(e){let t=(0,cve.useRef)(null);return(0,cve.useEffect)(()=>{e&&t.current?.scrollIntoView({block:"nearest"})},[e]),t}var kTr=E($(),1);function wTr({cwd:e,selected:t,highlighted:r,onHover:n,onSelect:i}){let o=uve(r);return(0,kTr.jsx)(hn,{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:bv(e)})}var TGe=E($(),1);function fve({repos:e,selected:t,highlight:r,onHighlight:n,onSelect:i}){return(0,TGe.jsx)(Hp,{dense:!0,children:e.map((o,a)=>(0,TGe.jsx)(wTr,{cwd:o,selected:o===t,highlighted:a===r,onHover:()=>n(a),onSelect:()=>i(o)},o))})}var dve=E(fe(),1);function __(e,t,r,n){let[i,o]=(0,dve.useState)(0);return(0,dve.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 PX=E($(),1);function bv(e){let t=e.includes("\\")?"\\":"/";return e.split(t).filter(Boolean).pop()??e}var sni={...KB};function _Tr({repos:e,selected:t,onSelect:r,close:n,initialFilter:i=""}){let[o,a]=(0,s$.useState)(i),s=(0,s$.useRef)(null);(0,s$.useEffect)(()=>{s.current?.focus()},[]);let l=o.trim().toLowerCase(),u=l?e.filter(m=>m.toLowerCase().includes(l)):e,{highlight:f,setHighlight:d,onKeyDown:h}=__(u,l,r,n);return(0,PX.jsxs)(nn,{elevation:4,sx:sni,children:[(0,PX.jsx)(ET,{inputRef:s,value:o,onChange:a,onKeyDown:h,placeholder:"Filter repos..."}),(0,PX.jsx)(fve,{repos:u,selected:t,highlight:f,onHighlight:d,onSelect:m=>{r(m),n()}})]})}function hve(e,t){return{origin:e.origin,cloneTarget:e.cloneTarget,displayName:bv(e.origin),node:t}}function ETr(){let e=La(),t=ave(),r=lve(e??"",[t])(t);return e?r.kind==="cloned"?{kind:"ready",cwd:r.cwd,node:t}:r.kind==="clonable"?{kind:"clone",prompt:hve(r,t)}:{kind:"unavailable",node:t??"this machine"}:{kind:"ready",node:t}}function RTr(e){return e?`Not cloned on ${e}`:"Build"}var LX=E($(),1);function pve({itemId:e,compact:t}){let{launchAssist:r}=ll(),n=ETr(),i=xTr(q1e(),e),[o,a]=(0,ATr.useState)(!1);if(n.kind==="clone")return(0,LX.jsx)(sTr,{target:n.prompt});if(i)return(0,LX.jsx)(vTr,{session:i});let s=n.kind==="unavailable"?n.node:void 0,l=o||!!s,u=d=>{l||n.kind!=="ready"||(a(!0),bTr(r,e,n,d))},f=RTr(s);return t?(0,LX.jsx)(gTr,{itemId:e,tooltip:f,disabled:l,onBuild:()=>u([]),closeTarget:t}):(0,LX.jsx)(rTr,{tooltip:f,disabled:l,onBuild:()=>u([]),onSelectHarness:d=>u(["--harness",d])})}var PTr=E(fe(),1);var l$=E($(),1);function LTr({itemId:e,starred:t,onToggled:r}){let n=La(),i=vr(),[o,a]=(0,PTr.useState)(!1);return(0,l$.jsx)(sr,{title:t?"Unstar":"Star",children:(0,l$.jsx)("span",{children:(0,l$.jsx)(er,{"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 fre(e,!t,n,i),await r()}finally{a(!1)}}},children:t?(0,l$.jsx)(m0e,{}):(0,l$.jsx)(g0e,{})})})})}var E_=E($(),1);function MTr({item:e,onReload:t}){return(0,E_.jsxs)(E_.Fragment,{children:[(0,E_.jsx)(tTr,{item:e}),(0,E_.jsx)(LTr,{itemId:e.id,starred:e.starred,onToggled:t}),Y1e(e)&&(0,E_.jsx)(pve,{itemId:e.id,compact:{currentPhase:e.currentPhase,totalPhases:e.totalPhases,onClosed:t}})]})}var mS=E($(),1);function lni(e,t){return e?t?yv.inProgressRunningCard:yv.inProgressCard:yv.card}function ITr({item:e,to:t,socket:r,onReload:n}){let i=ZSr(r.sessions,e.id),o=e.status==="in-progress",a=o&&i?.status==="running";return(0,mS.jsxs)(J,{sx:lni(o,a),children:[(0,mS.jsx)(QSr,{status:e.status}),(0,mS.jsxs)(J,{sx:yv.main,children:[(0,mS.jsx)(Zr,{component:ks,to:t,underline:"none",title:e.name,sx:yv.stretchedNameLink,children:e.name}),(0,mS.jsx)(XSr,{item:e,openSession:i,onSelectSession:r.selectSession})]}),(0,mS.jsx)(J,{sx:yv.actions,children:(0,mS.jsx)(MTr,{item:e,onReload:n})})]})}var NTr=E($(),1),cni={all:"items",story:"stories",bug:"bugs"},uni={textAlign:"center",color:"text.disabled",py:6,px:2};function DTr({query:e,typeFilter:t}){let r=cni[t],n=e.trim()?`No ${r} match your search.`:`No ${r} in the backlog.`;return(0,NTr.jsx)(J,{sx:uni,children:n})}var xv=E($(),1),fni={display:"flex",justifyContent:"center",py:6};function OTr({loading:e,error:t,query:r,typeFilter:n,items:i,socket:o,itemPath:a,onReload:s}){if(e)return(0,xv.jsx)(J,{sx:fni,children:(0,xv.jsx)(ao,{})});let l=t&&(0,xv.jsx)(xi,{severity:"error",children:t});return i.length===0?l||(0,xv.jsx)(DTr,{query:r,typeFilter:n}):(0,xv.jsxs)(xv.Fragment,{children:[l,i.map(u=>(0,xv.jsx)(ITr,{item:u,to:a(u),socket:o,onReload:s},u.id))]})}var c$=E(fe(),1);function dni(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 BTr({cwd:e,node:t,knownCwds:r,signal:n}){return(await fetch(qc(dni(r),e,t),{signal:n})).json()}function FTr(){let{repos:e,selectedCwd:t,cloneOn:r}=$n(),n=ave(),[i,o]=(0,c$.useState)([]),a=(0,c$.useMemo)(()=>e.map(l=>r(l,n)).filter(l=>!!l),[e,r,n]),s=t?r(t,n):void 0;return(0,c$.useEffect)(()=>{let l=new AbortController;return BTr({cwd:s,node:n,knownCwds:a,signal:l.signal}).then(o).catch(()=>{}),()=>l.abort()},[a,s,n]),{summaries:i,node:n}}var mve=E($(),1),hni={borderStyle:"dashed"};function $Tr({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,mve.jsx)(Hn,{label:`${o} (${a})`,size:"small",color:s?"primary":"default",variant:s?"filled":"outlined",disabled:!l&&!f,onClick:d,icon:f?(0,mve.jsx)(i$,{}):void 0,sx:f?hni:void 0});return!f||!u?h:(0,mve.jsx)(sr,{describeChild:!0,title:o$(t,u),children:h})}var MX=E($(),1),pni={flexWrap:"wrap",gap:1,mb:2};function zTr({sessions:e}){let{summaries:t,node:r}=FTr(),{setSelectedCwd:n}=$n(),i=tve(e);return t.length===0?null:(0,MX.jsxs)(Et,{direction:"row",sx:pni,children:[t.map(o=>(0,MX.jsx)($Tr,{summary:o,node:r,onSelectCwd:a=>r?n(a,r):n(a),onRequestClone:i.requestClone},o.origin)),(0,MX.jsx)(J1e,{clone:i})]})}var UTr=E($(),1);function HTr({value:e,onChange:t}){return(0,UTr.jsx)(Yn,{"data-backlog-focus":"search",autoFocus:!0,fullWidth:!0,size:"small",placeholder:"Search backlog\u2026",value:e,onChange:r=>t(r.target.value),sx:{mb:2}})}var yve=E(fe(),1);var CGe=E($(),1),gve=ct([(0,CGe.jsx)("path",{d:"M12 5.99 19.53 19H4.47zM12 2 1 21h22z"},"0"),(0,CGe.jsx)("path",{d:"M13 16h-2v2h2zm0-6h-2v5h2z"},"1")],"WarningAmber");var IX=E($(),1);function wGe({warn:e,tooltip:t,children:r}){return(0,IX.jsx)(sr,{title:t,children:(0,IX.jsxs)(Zr,{component:ks,to:"/backups",underline:"hover",color:e?"warning.main":"text.secondary",variant:"body2",sx:e?{display:"inline-flex",alignItems:"center",gap:.5}:void 0,children:[e&&(0,IX.jsx)(gve,{fontSize:"inherit"}),r]})})}var vve=E($(),1);async function mni(){let[e,t]=await Promise.all([hr("/api/backups/list"),hr("/api/backups/status")]),r=await e.json(),{staleAfterMs:n}=await t.json();return{row:r[0]??null,staleAfterMs:n}}function WTr(){let[e,t]=(0,yve.useState)();if((0,yve.useEffect)(()=>{mni().then(t)},[]),e===void 0)return null;let{row:r,staleAfterMs:n}=e;if(r===null)return(0,vve.jsx)(wGe,{warn:!0,tooltip:"No backup has been recorded",children:"Never backed up"});let i=new Date(r.createdAt).toLocaleString(),o=Date.now()-new Date(r.createdAt).getTime()>n;return(0,vve.jsxs)(wGe,{warn:o,tooltip:o?`Backup overdue \u2014 last backed up ${i}`:i,children:["Last backed up ",lo(String(r.createdAt))]})}var u$=E($(),1);function GTr(){let[e,t]=r$();return(0,u$.jsxs)(jl,{value:e,exclusive:!0,size:"small","aria-label":"Status filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,u$.jsx)($a,{value:"todo",children:"Todo"}),(0,u$.jsx)($a,{value:"done",children:"Done"}),(0,u$.jsx)($a,{value:"all",children:"All"})]})}var f$=E($(),1);function VTr({value:e,onChange:t}){return(0,f$.jsxs)(jl,{value:e,exclusive:!0,size:"small","aria-label":"Type filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,f$.jsx)($a,{value:"all",children:"All"}),(0,f$.jsx)($a,{value:"story",children:"Stories"}),(0,f$.jsx)($a,{value:"bug",children:"Bugs"})]})}var R_=E($(),1),gni={justifyContent:"space-between",alignItems:"center",mb:3},yni={fontWeight:600},vni={alignItems:"center"};function qTr({typeFilter:e,onTypeFilterChange:t}){return(0,R_.jsxs)(Et,{direction:"row",sx:gni,children:[(0,R_.jsx)(Le,{variant:"h5",sx:yni,children:"Backlog"}),(0,R_.jsxs)(Et,{direction:"row",spacing:2,sx:vni,children:[(0,R_.jsx)(WTr,{}),(0,R_.jsx)(VTr,{value:e,onChange:t}),(0,R_.jsx)(GTr,{})]})]})}var gS=E($(),1);function YTr({items:e,loading:t,error:r,socket:n,onReload:i}){let o=La(),a=vr(),{query:s,setQuery:l,results:u,loading:f}=zSr(),[d,h]=(0,jTr.useState)("all"),p=u??e,m=d==="all"?p:p.filter(g=>g.type===d);return(0,gS.jsxs)(gS.Fragment,{children:[(0,gS.jsx)(qTr,{typeFilter:d,onTypeFilterChange:h}),(0,gS.jsx)(HTr,{value:s,onChange:l}),(0,gS.jsx)(zTr,{sessions:n.sessions}),(0,gS.jsx)(OTr,{loading:t||f,error:u?null:r,query:s,typeFilter:d,items:m,socket:n,itemPath:g=>AT(g.id,o,a),onReload:i})]})}var wve=E(fe(),1);var HA=E(fe(),1);async function kGe(e,t,r){let n=await fetch(qc(`/api/items/${so(e)}`,t.cwd,t.node),{signal:r});return n.ok?n.json():null}function KTr(e){let t=La(),r=vr(),[n,i]=(0,HA.useState)(null),[o,a]=(0,HA.useState)(!0),s=(0,HA.useCallback)(async()=>{i(await kGe(e,{cwd:t,node:r}))},[e,t,r]);return(0,HA.useEffect)(()=>{let l=new AbortController,{signal:u}=l;return a(!0),(async()=>{try{let f=await kGe(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}}function XTr(e,t){let r=new Set,n=new Set,i=[];for(let o of t){if(o.cwdMissing)continue;let a=VL(o),s=im(o);!a||!s||r.has(a)||n.has(s)||(r.add(a),n.add(s),i.push(s))}return e&&!r.has(qL(e,t))&&!n.has(e)&&i.unshift(e),i}var _p="";function bni(e){let t=new Map([[_p,[]]]);for(let r of e){let n=r.node??_p;t.set(n,[...t.get(n)??[],r])}return t}function ZTr(e,t){var n;let r=new Map;for(let[i,o]of bni(t)){let a=i===_p?e:"";for(let s of XTr(a,o)){let l=qL(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 QTr(e,t){return e.clones[t]??e.clones[_p]??Object.values(e.clones)[0]}function DX(e,t){return e.find(r=>Object.values(r.clones).includes(t))}function yS(e,t){return!e||e===t?_p:e}function JTr(e,t,r,n){if(!t)return e;let i=yS(r,n);return{...e,selectedCwd:t,selectedNode:r,cloneOn:(o,a)=>{let s=e.cloneOn(o,a);return o!==t||s!==o||yS(a,n)===i?s:void 0}}}var UA={description:"item-section-description",acceptanceCriteria:"item-section-acceptance-criteria",plan:"item-section-plan",activity:"item-section-activity",comments:"item-section-comments"},NX=140,_Ge="--pinned-header-height",xni=`var(${_Ge}, ${NX}px)`,eCr=`calc(${xni} + 8px)`;function Sv(e){return{id:UA[e],sx:{mb:2,scrollMarginTop:eCr}}}function bve(e){return{id:`item-phase-${e}`,sx:{scrollMarginTop:eCr}}}var Tv={color:"text.disabled",mb:1,display:"block",letterSpacing:"0.08em",fontSize:11,fontWeight:600,lineHeight:1.6};var A_=E($(),1),Sni={maxWidth:"68ch",fontSize:14},Tni=e=>({mr:1,minWidth:14,color:"text.disabled",fontFamily:e.typography.fontFamilyMono,fontSize:12});function tCr({criteria:e}){return e.length===0?null:(0,A_.jsxs)(J,{...Sv("acceptanceCriteria"),children:[(0,A_.jsx)(Le,{variant:"overline",sx:Tv,children:"Acceptance Criteria"}),(0,A_.jsx)(ey,{disablePadding:!0,sx:Sni,children:e.map((t,r)=>(0,A_.jsxs)(VS,{disableGutters:!0,disablePadding:!0,sx:{py:.5,display:"flex",alignItems:"baseline"},children:[(0,A_.jsxs)(Le,{component:"span",sx:Tni,children:[r+1,"."]}),(0,A_.jsx)($u,{component:"span",className:"markdown",html:gB(t)})]},t))})]})}var OX=E($(),1);function rCr({description:e}){return e?(0,OX.jsxs)(J,{...Sv("description"),children:[(0,OX.jsx)(Le,{variant:"overline",sx:Tv,children:"Description"}),(0,OX.jsx)(yB,{content:e,renderMermaid:!0})]}):null}var fCr=E(fe(),1);function nCr(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 oCr=E($(),1),Cni={color:"text.secondary",alignSelf:"flex-start",textAlign:"left"};function iCr({hiddenCount:e,expanded:t,onToggle:r}){return e===0?null:(0,oCr.jsx)(Zr,{component:"button",type:"button",variant:"body2",underline:"hover",sx:Cni,onClick:n=>{n.stopPropagation(),r()},children:t?"Show fewer commits":`\u2026 and ${e} more commits`})}var WA=E($(),1),wni={display:"flex",alignItems:"center",gap:1},kni={color:"text.secondary",fontFamily:"fontFamilyMono"},_ni={flex:1,overflowWrap:"anywhere"},Eni={color:"text.disabled","&:hover":{color:"text.primary"}};function aCr({conversation:e}){let{resumeSession:t}=ll(),r=n=>{n.stopPropagation(),t(e.sessionId,e.cwd??"",e.title,e.harness)};return(0,WA.jsxs)(J,{sx:wni,children:[(0,WA.jsx)(Le,{variant:"body2",component:"span",sx:kni,children:"session"}),(0,WA.jsx)(Le,{variant:"body2",component:"span",sx:_ni,children:e.title??e.sessionId}),(0,WA.jsx)(er,{size:"small",title:"Resume",sx:Eni,onClick:r,children:(0,WA.jsx)(Lg,{sx:{fontSize:14}})})]})}var lCr=E($(),1),Rni={color:"text.disabled",ml:1};function sCr({gitRef:e}){return e.kind!=="commit"||!e.createdAt?null:(0,lCr.jsx)(J,{component:"span",sx:Rni,children:Ani(e.createdAt)})}function Ani(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function cCr(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 Cv=E($(),1),Pni={color:"text.secondary",mr:1,fontFamily:"fontFamilyMono"};function Lni({gitRef:e}){let t=cCr(e);return!e.url||e.kind==="session"?(0,Cv.jsx)(Cv.Fragment,{children:t}):(0,Cv.jsx)(Zr,{href:e.url,target:"_blank",rel:"noopener",onClick:r=>r.stopPropagation(),children:t})}function uCr({gitRef:e}){return(0,Cv.jsxs)(Le,{variant:"body2",children:[(0,Cv.jsx)(J,{component:"span",sx:Pni,children:e.kind}),(0,Cv.jsx)(Lni,{gitRef:e}),(0,Cv.jsx)(sCr,{gitRef:e})]})}var P_=E($(),1);function dCr({gitRefs:e,conversations:t=[]}){let[r,n]=(0,fCr.useState)(!1),{branches:i,commits:o,overflowCommits:a,prs:s,slacks:l}=nCr(e),u=[...i,...o,...r?a:[],...s,...l];return u.length===0&&t.length===0?null:(0,P_.jsxs)(J,{...Sv("activity"),children:[(0,P_.jsx)(Le,{variant:"overline",sx:Tv,children:"Activity"}),(0,P_.jsxs)(Et,{spacing:1,children:[u.map(f=>(0,P_.jsx)(uCr,{gitRef:f},`${f.kind}:${f.ref}`)),t.map(f=>(0,P_.jsx)(aCr,{conversation:f},f.sessionId)),(0,P_.jsx)(iCr,{hiddenCount:a.length,expanded:r,onToggle:()=>n(f=>!f)})]})]})}var GA=E($(),1),Mni={alignItems:"center",fontSize:"0.75rem",color:"text.secondary",mb:.5},Ini={color:"text.disabled"},Dni={fontWeight:500},Nni={summary:"Phase summary",comment:"Comment"};function hCr({comment:e}){return(0,GA.jsxs)(Et,{direction:"row",spacing:.5,sx:Mni,children:[e.id!==void 0&&(0,GA.jsxs)(Le,{variant:"caption",sx:Ini,children:["#",e.id]}),(0,GA.jsx)(Le,{variant:"caption",sx:Dni,children:Nni[e.type]}),e.phase!==void 0&&(0,GA.jsxs)(Le,{variant:"caption",children:["\xB7 Phase ",e.phase]}),(0,GA.jsxs)(Le,{variant:"caption",children:["\xB7 ",Oni(e.timestamp)]})]})}function Oni(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}var pCr=E($(),1),mCr=ct((0,pCr.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 EGe=E(fe(),1);async function gCr(e,t,r,n){let i=await fetch(qc(`/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 wv=E($(),1),Bni={mt:-.5,mr:-.5,color:"text.secondary"};function yCr({itemId:e,commentId:t,onDeleted:r}){let n=La(),i=vr(),[o,a]=(0,EGe.useState)(!1),[s,l]=(0,EGe.useState)(),u=()=>l(void 0);return(0,wv.jsxs)(wv.Fragment,{children:[o&&(0,wv.jsx)(Si,{message:"Are you sure you want to delete this comment?",onConfirm:async()=>{a(!1);try{await gCr(e,t,n,i),await r()}catch(f){l(f instanceof Error?f.message:"Failed to delete comment")}},onCancel:()=>a(!1)}),(0,wv.jsx)(eb,{open:s!==void 0,autoHideDuration:6e3,onClose:u,children:(0,wv.jsx)(xi,{severity:"error",variant:"filled",onClose:u,children:s})}),(0,wv.jsx)(er,{"aria-label":"Delete comment",size:"small",sx:Bni,onClick:()=>a(!0),children:(0,wv.jsx)(mCr,{fontSize:"inherit"})})]})}var VA=E($(),1),Fni={summary:{bgcolor:"warning.light",borderColor:"warning.dark"},comment:{bgcolor:"action.selected",borderColor:"divider"}},$ni={justifyContent:"space-between",alignItems:"flex-start"},zni={color:"text.primary",whiteSpace:"pre-wrap"};function Hni(e){return{p:1.5,bgcolor:e.bgcolor,borderColor:e.borderColor}}function vCr({comment:e,itemId:t,onDeleted:r}){return(0,VA.jsxs)(nn,{variant:"outlined",sx:Hni(Fni[e.type]),children:[(0,VA.jsxs)(Et,{direction:"row",sx:$ni,children:[(0,VA.jsx)(hCr,{comment:e}),e.id!==void 0&&t!==void 0&&r&&(0,VA.jsx)(yCr,{itemId:t,commentId:e.id,onDeleted:r})]}),(0,VA.jsx)(Le,{variant:"body2",sx:zni,children:e.text})]})}var d$=E($(),1);function bCr({comments:e,itemId:t,onCommentDeleted:r}){return e.length===0?null:(0,d$.jsxs)(J,{...Sv("comments"),children:[(0,d$.jsx)(Le,{variant:"overline",sx:Tv,children:"Comments"}),(0,d$.jsx)(Et,{spacing:1,children:e.map((n,i)=>(0,d$.jsx)(vCr,{comment:n,itemId:t,onDeleted:r},`${n.timestamp}-${i}`))})]})}var xCr=E($(),1);function h$({total:e,sx:t}){return(0,xCr.jsx)(Le,{sx:t,children:j1e(e)})}var TCr=E($(),1),Uni={color:"text.secondary",fontSize:"0.75rem"};function SCr({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,TCr.jsx)(h$,{total:t,sx:Uni})}var vS=E($(),1);function CCr({checks:e}){return(0,vS.jsxs)(J,{sx:{mt:1,pt:1},children:[(0,vS.jsx)(ki,{sx:{mb:1}}),(0,vS.jsx)(Le,{variant:"overline",sx:{color:"text.disabled",letterSpacing:"0.08em"},children:"Manual Checks"}),(0,vS.jsx)(ey,{disablePadding:!0,sx:{ml:.5,mt:.5},children:e.map(t=>(0,vS.jsxs)(VS,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,vS.jsx)(Le,{component:"span",sx:{mr:1,fontSize:"0.875rem",color:"text.secondary"},children:"\u2610"}),(0,vS.jsx)($u,{component:"span",className:"markdown",sx:{fontSize:"0.875rem",color:"text.secondary"},html:gB(t)})]},t))})]})}var xve="task-marker";function Wni(e,t){let{primary:r,success:n,divider:i}=e.palette;return t==="done"?Dr(n.main,.3):t==="current"?Dr(r.main,.6):i}function Gni(e,t){let r=t==="done";return{display:"grid",gap:1,px:2,py:"14px","& .MuiList-root":{ml:0},"& .MuiListItem-root":{py:"2px",fontSize:13.5,color:r?"text.primary":"text.secondary"},[`& .${xve}`]:{width:16,flexShrink:0,mr:"6px",fontSize:"inherit",textAlign:"center",color:r?"success.main":"text.disabled"},bgcolor:"background.paper",borderRadius:`${e.tokens.radius.md}px`,borderColor:Wni(e,t),...t==="current"&&{boxShadow:`0 0 0 3px ${e.palette.action.selected}`}}}function wCr(e){return t=>Gni(t,e)}var kCr={done:"\u2713",current:"\xB7",upcoming:"\xB7"};var BX=E($(),1),Vni={color:"text.secondary",fontSize:"0.75rem",letterSpacing:"0.08em",display:"block"},qni={color:"text.secondary",fontSize:"0.75rem",fontFamily:"fontFamilyMono",display:"block"};function _Cr({sessions:e}){return(0,BX.jsxs)(J,{sx:{mb:1},children:[(0,BX.jsx)(Le,{variant:"overline",sx:Vni,children:"Sessions"}),e.map(t=>(0,BX.jsx)(Le,{sx:qni,children:`${t.hostname} / ${t.osUser} / ${t.claudeSessionId}`},t.claudeSessionId))]})}var RCr=E($(),1),jni={color:"text.secondary",fontSize:"0.75rem",mb:1,display:"block"};function ECr({usage:e}){return(0,RCr.jsx)(h$,{total:e,sx:jni})}var LCr=E(fe(),1);var ACr=E(fe(),1),kv=E($(),1);function PCr({phaseName:e,onConfirm:t,onCancel:r}){let[n,i]=(0,ACr.useState)("");return(0,kv.jsxs)(ql,{open:!0,onClose:r,maxWidth:"xs",fullWidth:!0,children:[(0,kv.jsxs)(Ru,{children:["Rewind to ",e,"?"]}),(0,kv.jsxs)(Eu,{children:[(0,kv.jsx)(Le,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"This will mark all later phases as incomplete."}),(0,kv.jsx)(Yn,{fullWidth:!0,multiline:!0,rows:3,size:"small",placeholder:"Reason for rewinding...",value:n,onChange:o=>i(o.target.value)})]}),(0,kv.jsxs)(ud,{children:[(0,kv.jsx)(Mt,{onClick:r,children:"Cancel"}),(0,kv.jsx)(Mt,{variant:"contained",color:"warning",disabled:n.trim().length===0,onClick:()=>t(n.trim()),children:"Rewind"})]})]})}var qA=E($(),1),Yni={ml:"auto",minHeight:0,px:"6px",py:"2px",fontSize:12,fontWeight:500,borderRadius:"4px"};function MCr({itemId:e,phaseNumber:t,phaseName:r,onRewound:n}){let i=La(),o=vr(),[a,s]=(0,LCr.useState)(!1);return(0,qA.jsxs)(qA.Fragment,{children:[(0,qA.jsx)(Mt,{size:"small",color:"primary",variant:"text",onClick:()=>s(!0),sx:Yni,children:"Rewind"}),a&&(0,qA.jsx)(PCr,{phaseName:r,onConfirm:async l=>{await jot(e,t,l,i,o),await n()},onCancel:()=>s(!1)})]})}var DCr=E($(),1);function ICr({phase:e,index:t,status:r,itemId:n,onRewind:i}){return r!=="done"||n===void 0||!i?null:(0,DCr.jsx)(MCr,{itemId:n,phaseNumber:t+1,phaseName:e.name,onRewound:i})}var jA=E($(),1),Kni={done:{label:"Done",color:"success"},current:{label:"In progress",color:"primary"},upcoming:{label:"To do",color:"default"}},Xni={alignItems:"center",flexWrap:"wrap",gap:1,fontSize:14,fontWeight:600},Zni=e=>({fontFamily:e.typography.fontFamilyMono,fontSize:12,fontWeight:500,color:"text.disabled"});function NCr(e){let t=Kni[e.status];return(0,jA.jsxs)(Et,{direction:"row",sx:Xni,children:[(0,jA.jsx)(J,{component:"span",sx:Zni,children:e.index+1}),(0,jA.jsx)("span",{children:e.phase.name}),(0,jA.jsx)(Hn,{label:t.label,size:"small",color:t.color}),(0,jA.jsx)(ICr,{...e})]})}var p$=E($(),1);function OCr({tasks:e,marker:t}){return(0,p$.jsx)(ey,{disablePadding:!0,sx:{ml:.5},children:e.map(r=>(0,p$.jsxs)(VS,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,p$.jsx)(Le,{component:"span",className:xve,sx:{color:"text.secondary",mr:1},children:t}),(0,p$.jsx)($u,{component:"span",className:"markdown",html:gB(r.task)})]},r.task))})}var L_=E($(),1);function BCr({phase:e,index:t,status:r,itemId:n,usage:i,sessions:o,onRewind:a}){let s=e.manualChecks??[],l=bve(t),u=kCr[r];return(0,L_.jsxs)(nn,{variant:"outlined",id:l.id,sx:[wCr(r),l.sx],children:[(0,L_.jsx)(NCr,{phase:e,index:t,status:r,itemId:n,onRewind:a}),i&&(0,L_.jsx)(ECr,{usage:i}),(0,L_.jsx)(OCr,{tasks:e.tasks,marker:u}),s.length>0&&(0,L_.jsx)(CCr,{checks:s}),o&&o.length>0&&(0,L_.jsx)(_Cr,{sessions:o})]})}var FX={name:"Review",tasks:[]};function Sve(e){return e.at(-1)?.name===FX.name?e.length-1:e.length}function Tve(e,t){if(t===void 0)return"upcoming";let r=e+1;return r<t?"done":r===t?"current":"upcoming"}function FCr(e=[]){return new Map(e.map(t=>[t.phaseIdx,t]))}function $Cr(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 RGe=E($(),1);function zCr({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){let a=FCr(n),s=$Cr(i),l=Sve(e),u=(i??[]).filter(d=>d.phaseIdx>=l),f=l===e.length&&u.length>0?[...e,FX]:e;return(0,RGe.jsx)(Et,{spacing:1.5,children:f.map((d,h)=>(0,RGe.jsx)(BCr,{phase:d,index:h,status:Tve(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 YA=E($(),1),Qni={alignItems:"baseline",justifyContent:"space-between",mb:1},Jni=[Tv,{mb:0}];function HCr({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){return e.length===0?null:(0,YA.jsxs)(J,{...Sv("plan"),children:[(0,YA.jsxs)(Et,{direction:"row",sx:Qni,children:[(0,YA.jsx)(Le,{variant:"overline",sx:Jni,children:"Plan"}),n&&n.length>0&&(0,YA.jsx)(SCr,{usage:n})]}),(0,YA.jsx)(zCr,{phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o})]})}var M_=E($(),1);function UCr({item:e,onRewind:t,onCommentDeleted:r}){return(0,M_.jsxs)(M_.Fragment,{children:[e.plan&&(0,M_.jsx)(HCr,{phases:e.plan,currentPhase:e.currentPhase,itemId:e.id,usage:e.phaseUsage,sessions:e.phaseSessions,onRewind:t}),(0,M_.jsx)(dCr,{gitRefs:e.gitRefs??[],conversations:e.conversations}),e.comments&&(0,M_.jsx)(bCr,{comments:e.comments,itemId:e.id,onCommentDeleted:r})]})}var m$=E($(),1);function WCr({item:e,onRewind:t,onCommentDeleted:r}){return(0,m$.jsxs)(J,{sx:{pt:2,flex:1,minWidth:0},children:[(0,m$.jsx)(rCr,{description:e.description}),(0,m$.jsx)(tCr,{criteria:e.acceptanceCriteria}),(0,m$.jsx)(UCr,{item:e,onRewind:t,onCommentDeleted:r})]})}var GCr="item-detail";var g$={wideQuery:`@container ${GCr} (min-width: 760px)`,containerSx:{containerType:"inline-size",containerName:GCr},columnsSx:{display:"flex",alignItems:"flex-start",columnGap:4},mainColumnSx:{flex:1,minWidth:0}};var $X=E($(),1);function VCr({style:e,header:t,body:r,navigator:n}){return(0,$X.jsx)(J,{style:e,sx:g$.containerSx,children:(0,$X.jsxs)(J,{sx:g$.columnsSx,children:[(0,$X.jsxs)(J,{sx:g$.mainColumnSx,children:[t,r]}),n]})})}function eii(e){let t=e.plan??[];if(t.length===0)return[];let r=Sve(t),i=r===t.length&&(e.phaseSessions??[]).some(o=>o.phaseIdx>=r)?[...t,FX]:t;return[{id:UA.plan,label:"Phases"},...i.map((o,a)=>({id:bve(a).id,label:`${a+1}`,title:o.name,status:Tve(a,e.currentPhase),nested:!0}))]}function qCr(e){let t=[];return e.description&&t.push({id:UA.description,label:"Description"}),e.acceptanceCriteria.length>0&&t.push({id:UA.acceptanceCriteria,label:"Acceptance Criteria"}),t.push(...eii(e)),(e.gitRefs?.length??0)+(e.conversations?.length??0)>0&&t.push({id:UA.activity,label:"Activity"}),(e.comments?.length??0)>0&&t.push({id:UA.comments,label:"Comments"}),t}var tii=48,jCr={display:"none",[g$.wideQuery]:{display:"grid"},alignContent:"start",gap:"2px",position:"sticky",top:0,alignSelf:"flex-start",width:200,flexShrink:0,maxHeight:`calc(100vh - ${tii}px - ${vy})`,overflowY:"auto",overflowX:"hidden",pt:"44px",pb:2};function YCr(e){return{justifyContent:"flex-start",px:"10px",py:.5,borderLeft:2,borderColor:e?"primary.main":"divider",fontSize:13,textAlign:"left",color:e?"text.primary":"text.secondary",transition:"color .2s ease","&:hover":{color:"text.primary"}}}var KCr={display:"grid",gap:"2px",pl:"10px",borderLeft:2,borderColor:"divider"};function XCr(e){return t=>({display:"inline-grid",placeItems:"center",flexShrink:0,width:18,height:18,border:1,borderRadius:"50%",fontStyle:"normal",fontFamily:t.typography.fontFamilyMono,fontSize:10,...rii(t,e)})}function rii(e,t){return t==="done"?{bgcolor:Dr(e.palette.success.main,.18),borderColor:"transparent",color:"success.main"}:t==="current"?{bgcolor:"primary.main",borderColor:"transparent",color:"primary.contrastText"}:{borderColor:"divider",color:"text.disabled"}}function ZCr(e){return{justifyContent:"flex-start",alignItems:"flex-start",gap:1,minWidth:0,py:"3px",pl:.5,fontSize:12,textAlign:"left",color:e?"text.primary":"text.secondary",transition:"color .2s ease","&:hover":{color:"text.primary"},"& .phase-label":{minWidth:0,lineHeight:"18px",overflowWrap:"anywhere"}}}var zX=E($(),1);function QCr({section:e,active:t,onSelect:r}){return(0,zX.jsxs)(cn,{sx:ZCr(t),onClick:()=>r(e.id),title:e.title,"aria-current":t?"true":void 0,children:[(0,zX.jsx)(J,{component:"i",sx:XCr(e.status),children:e.label}),(0,zX.jsx)(J,{component:"span",className:"phase-label",children:e.title})]})}var KA=E($(),1);function nii(e){let t=[];for(let r of e){let n=t.at(-1);r.nested&&n?n.phases.push(r):t.push({link:r,phases:[]})}return t}function iii(e){return e.charAt(0)+e.slice(1).toLowerCase()}function JCr({sections:e,activeId:t,onSelect:r}){return(0,KA.jsx)(J,{component:"nav",sx:jCr,children:nii(e).map(({link:n,phases:i})=>(0,KA.jsxs)(J,{sx:{display:"contents"},children:[(0,KA.jsx)(cn,{sx:YCr(n.id===t),onClick:()=>r(n.id),"aria-current":n.id===t?"true":void 0,children:iii(n.label)}),i.length>0&&(0,KA.jsx)(J,{sx:KCr,children:i.map(o=>(0,KA.jsx)(QCr,{section:o,active:o.id===t,onSelect:r},o.id))})]},n.id))})}function ewr(e,t=NX){return ege(e,t)}var rwr=E($(),1);function oii(e){document.getElementById(e)?.scrollIntoView({behavior:"smooth",block:"start"})}function twr({item:e,headerHeight:t}){let r=qCr(e),n=ewr(r.map(i=>i.id),t);return r.length===0?null:(0,rwr.jsx)(JCr,{sections:r,activeId:n,onSelect:oii})}var iwr=E($(),1),aii={justifySelf:"start",minHeight:0,minWidth:0,p:0,fontSize:12,fontWeight:400,lineHeight:1.5,"&:hover":{bgcolor:"transparent"}};function nwr({to:e}){let t=Bi();return(0,iwr.jsx)(Mt,{"data-backlog-focus":"back",variant:"text",size:"small",onClick:()=>t(e),sx:aii,children:"\u2190 Backlog"})}var owr=E(fe(),1);var XA=E($(),1);function awr({itemId:e,onDeleted:t}){let r=La(),n=vr(),[i,o]=(0,owr.useState)(!1);return(0,XA.jsxs)(XA.Fragment,{children:[i&&(0,XA.jsx)(Si,{onConfirm:async()=>{await qot(e,r,n),await t()},onCancel:()=>o(!1)}),(0,XA.jsx)(Mt,{variant:"outlined",color:"error",size:"small",onClick:()=>o(!0),children:"Delete"})]})}var Cve=E(fe(),1);var _v=E($(),1);function swr({itemId:e}){let{launched:t,launch:r}=rve(e),n=S_(),i=(0,Cve.useRef)(null),[o,a]=(0,Cve.useState)(!1),s=u=>u.stopPropagation(),l=X1e(n);return(0,_v.jsxs)(_v.Fragment,{children:[(0,_v.jsxs)(US,{ref:i,variant:"tonal",size:"small",disabled:t,children:[(0,_v.jsx)(Mt,{onClick:u=>{s(u),r([])},children:"Refine"}),l.length>0&&(0,_v.jsx)(Mt,{size:"small","aria-label":"Refine with a different harness",onClick:u=>{s(u),a(!0)},children:(0,_v.jsx)(xd,{})})]}),(0,_v.jsx)(Z1e,{anchorEl:i.current,open:o,onClose:()=>a(!1),options:l,onSelect:u=>{a(!1),r(["--harness",u])},stop:s})]})}var y$=E($(),1);function lwr({item:e,onDeleted:t}){return(0,y$.jsxs)(Et,{direction:"row",spacing:1,children:[Y1e(e)&&(0,y$.jsx)(pve,{itemId:e.id}),(0,y$.jsx)(swr,{itemId:e.id}),(0,y$.jsx)(awr,{itemId:e.id,onDeleted:t})]})}var sii={todo:"text.secondary","in-progress":"warning.main",done:"success.main",wontdo:"error.main"},lii={todo:"to do","in-progress":"in progress",done:"done",wontdo:"won't do"};function AGe(e){return lii[e]}function cwr(e){return t=>{let r=n0e(t,sii[e]);return{height:20,minHeight:0,borderRadius:999,fontSize:11,fontWeight:600,color:r,bgcolor:Dr(r,.15),"&:hover":{bgcolor:Dr(r,.22)},"& .MuiOutlinedInput-notchedOutline, &:hover .MuiOutlinedInput-notchedOutline, &.Mui-focused .MuiOutlinedInput-notchedOutline":{border:0},"& .MuiSelect-select.MuiSelect-select":{py:0,pl:1,pr:"22px",minHeight:0,lineHeight:"20px"},"& .MuiSelect-icon":{color:"inherit",fontSize:16,right:4}}}}var PGe=E($(),1),uwr=e=>{let{value:t,options:r,onChange:n,label:i,sx:o}=e;return(0,PGe.jsx)(YS,{value:t,onChange:a=>n(a.target.value),size:"small",renderValue:i,sx:o,children:r.map(a=>(0,PGe.jsx)(hn,{value:a,children:i(a)},a))})};var LGe=E($(),1),cii=["todo","in-progress","done","wontdo"];function fwr({current:e,onStatusChange:t}){return t?(0,LGe.jsx)(uwr,{value:e,options:cii,onChange:t,label:AGe,sx:cwr(e)}):(0,LGe.jsx)(Hn,{label:AGe(e),size:"small",color:$1e[e]})}var bS=E($(),1),uii={alignItems:"center",color:"text.disabled",fontSize:"0.875rem"},fii={fontFamily:"fontFamilyMono",fontSize:12},dii={color:"text.secondary",fontSize:"0.75rem"};function dwr({item:e,onStatusChange:t}){let r=F1e[e.type];return(0,bS.jsxs)(Et,{direction:"row",spacing:.75,sx:uii,children:[(0,bS.jsx)(Le,{variant:"body2",color:"text.disabled",sx:fii,children:so(e.id)}),r&&(0,bS.jsx)(Hn,{label:e.type,size:"small",color:r}),(0,bS.jsx)(fwr,{current:e.status,onStatusChange:t}),(0,bS.jsx)($L,{jiraKey:e.jiraKey}),(0,bS.jsx)(RT,{githubIssue:e.githubIssue,origin:e.origin}),e.usageTotal&&(0,bS.jsx)(h$,{total:e.usageTotal,sx:dii})]})}var I_=E($(),1),hii={justifyContent:"space-between",alignItems:"flex-start",flexWrap:"wrap",gap:1.5},pii={display:"grid",gap:"6px",minWidth:0},mii={m:0,fontSize:24,fontWeight:600,lineHeight:1.25,letterSpacing:"-0.015em"};function hwr({item:e,onDeleted:t,onStatusChange:r}){return(0,I_.jsxs)(Et,{direction:"row",sx:hii,children:[(0,I_.jsxs)(J,{sx:pii,children:[(0,I_.jsx)(nwr,{to:"/backlog"}),(0,I_.jsx)(Le,{component:"h2",sx:mii,children:e.name}),(0,I_.jsx)(dwr,{item:e,onStatusChange:r})]}),(0,I_.jsx)(lwr,{item:e,onDeleted:t})]})}var v$=E(fe(),1);function pwr(){let e=(0,v$.useRef)(null),[t,r]=(0,v$.useState)(!1);return(0,v$.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 D_=E($(),1);function gii(e){return t=>({position:"sticky",top:0,zIndex:1,bgcolor:"background.default",mx:-2,px:2,pb:2,boxShadow:e?t.tokens.elevation.stuckHeader:"none",transition:t.transitions.create("box-shadow")})}function mwr({ref:e,...t}){let{sentinelRef:r,stuck:n}=pwr();return(0,D_.jsxs)(D_.Fragment,{children:[(0,D_.jsx)(J,{ref:r,sx:{height:0}}),(0,D_.jsx)(J,{ref:e,sx:gii(n),children:(0,D_.jsx)(hwr,{...t})})]})}var gwr=E(fe(),1);function ywr(){let e=(0,gwr.useRef)(null),t=Z0e(e,NX),r={[_Ge]:`${t}px`};return{headerRef:e,headerHeight:t,style:r}}var HX=E($(),1);function vwr({item:e,onReload:t}){let r=Bi(),n=La(),i=vr(),{headerRef:o,headerHeight:a,style:s}=ywr();return _y("ItemDetail"),(0,HX.jsx)(VCr,{style:s,header:(0,HX.jsx)(mwr,{ref:o,item:e,onDeleted:async()=>{await t(),r("/backlog")},onStatusChange:async f=>{await YL(e.id,f,n,i),await t()}}),body:(0,HX.jsx)(WCr,{item:e,onRewind:t,onCommentDeleted:t}),navigator:(0,HX.jsx)(twr,{item:e,headerHeight:a})})}var ZA=E($(),1),yii={display:"flex",justifyContent:"center",py:6};function bwr({onReload:e}){let[t]=Vc(),r=t.get("cwd")||void 0,n=t.get("node")||void 0,i=$n(),o=Ac().nodes?.local,a=(0,wve.useMemo)(()=>JTr(i,r,n,o),[i,r,n,o]);return _y("ItemRoute"),(0,ZA.jsx)(CU.Provider,{value:a,children:(0,ZA.jsx)(yf.Provider,{value:a.selectedNode,children:(0,ZA.jsx)(vii,{onReload:e})})})}function vii({onReload:e}){let{id:t}=nwe(),r=Number.NaN;try{r=qte(t??"")}catch{r=Number.NaN}let{item:n,loading:i,reload:o}=KTr(r),a=(0,wve.useCallback)(async()=>{await Promise.all([o(),e()])},[o,e]);return i?(0,ZA.jsx)(J,{sx:yii,children:(0,ZA.jsx)(ao,{})}):n?(0,ZA.jsx)(vwr,{item:n,onReload:a}):null}var QA=E($(),1);function xwr({items:e,loading:t,error:r,socket:n,onReload:i}){return(0,QA.jsxs)(mE,{children:[(0,QA.jsx)(es,{index:!0,element:(0,QA.jsx)(YTr,{items:e,loading:t,error:r,socket:n,onReload:i})}),(0,QA.jsx)(es,{path:"items/:id",element:(0,QA.jsx)(bwr,{onReload:i})})]})}var N0=E(fe(),1);var Swr=new Map;function Twr(e,t,r){return JSON.stringify([e??null,t,r??null])}var UX={get(e,t,r){return Swr.get(Twr(e,t,r))},set(e,t,r,n){Swr.set(Twr(e,t,n),r)}};function bii(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 Cwr(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&&bii(r.usageTotal,i.usageTotal)})}function wwr({setItems:e,setLoading:t,setError:r}){return{onLoaded:n=>{e(i=>Cwr(i,n)?i:n),t(!1),r(null)},onError:n=>{t(!1),r(n)}}}async function kwr(e,t,r,n){let i=await PT({cwd:e,node:n,signal:r,filter:t});return r.aborted||UX.set(e,t,i,n),i}function _wr(e,t,r,{onLoaded:n,onError:i},o){return(async()=>{try{let a=await kwr(e,t,r,o);r.aborted||n(a)}catch(a){r.aborted||i(a instanceof Error?a.message:"Failed to load.")}})()}var xii=5e3;function Ewr(e,t,r,n){let i=new AbortController,o=!1,a=()=>{o||(o=!0,_wr(e,t,i.signal,r,n).finally(()=>{o=!1}))};a();let s=setInterval(a,xii);return()=>{i.abort(),clearInterval(s)}}function Rwr(){let e=La(),t=vr(),[r]=r$(),n=UX.get(e,r,t),i=n??[],o=n===void 0,[a,s]=(0,N0.useState)(i),[l,u]=(0,N0.useState)(o),[f,d]=(0,N0.useState)(null),[h,p]=(0,N0.useState)(e),[m,g]=(0,N0.useState)(t),[y,v]=(0,N0.useState)(r);(e!==h||t!==m||r!==y)&&(p(e),g(t),v(r),s(i),u(o),d(null));let b=(0,N0.useCallback)(async()=>{let x=await PT({cwd:e,node:t,filter:r});s(x),UX.set(e,r,x,t),u(!1)},[e,t,r]);return(0,N0.useEffect)(()=>Ewr(e,r,wwr({setItems:s,setLoading:u,setError:d}),t),[e,t,r]),{items:a,loading:l,error:f,reload:b}}var b$=E($(),1);function Awr({socket:e}){let{items:t,loading:r,error:n,reload:i}=Rwr();return lne(!r),(0,b$.jsx)(hGe.Provider,{value:e.sessions,children:(0,b$.jsx)(bGe.Provider,{value:e.selectSession,children:(0,b$.jsx)(mE,{children:(0,b$.jsx)(es,{path:"/*",element:(0,b$.jsx)(xwr,{items:t,loading:r,error:n,socket:e,onReload:i})})})})})}var MGe=E($(),1);function Pwr({socket:e}){return(0,MGe.jsx)(Dz,{maxWidth:"lg",sx:{py:3,px:2},children:(0,MGe.jsx)(Awr,{socket:e})})}var yi=E($(),1);function Lwr({socket:e}){return _y("AppRoutes"),(0,yi.jsxs)(yi.Fragment,{children:[(0,yi.jsx)(yfr,{}),(0,yi.jsx)(mE,{children:(0,yi.jsxs)(es,{element:(0,yi.jsx)(Klt,{socket:e}),children:[(0,yi.jsx)(es,{path:"sessions",element:(0,yi.jsx)(Xxr,{socket:e})}),(0,yi.jsx)(es,{path:"backlog/*",element:(0,yi.jsx)(Pwr,{socket:e})}),(0,yi.jsx)(es,{path:"next",element:(0,yi.jsx)(gur,{sessions:e.sessions,selectSession:e.selectSession})}),(0,yi.jsx)(es,{path:"news",element:(0,yi.jsx)(ycr,{})}),(0,yi.jsx)(es,{path:"inbox",element:(0,yi.jsx)(dcr,{})}),(0,yi.jsx)(es,{path:"releases",element:(0,yi.jsx)(dfr,{})}),(0,yi.jsx)(es,{path:"usage",element:(0,yi.jsx)(NSr,{})}),(0,yi.jsx)(es,{path:"backups",element:(0,yi.jsx)(nct,{})}),(0,yi.jsx)(es,{path:"config",element:(0,yi.jsx)(aft,{})}),(0,yi.jsx)(es,{path:"updates",element:(0,yi.jsx)(V2r,{reconnecting:e.reconnecting,selectSession:e.selectSession})}),(0,yi.jsx)(es,{path:"diff",element:(0,yi.jsx)(Uar,{socket:e})}),(0,yi.jsx)(es,{path:"file",element:(0,yi.jsx)(scr,{socket:e})}),(0,yi.jsx)(es,{path:"*",element:(0,yi.jsx)(cwe,{to:"/sessions",replace:!0})})]})})]})}var Ev=E($(),1),Sii=28,Iwr=`calc(${Sii}px + ${uy.bottom})`,Tii={":root":{[rke]:Iwr}},Cii={position:"fixed",left:0,right:0,bottom:0,height:Iwr,boxSizing:"border-box",pb:uy.bottom,zIndex:e=>e.zIndex.appBar,display:"flex",alignItems:"center",gap:.5,px:.75,borderTop:1,borderColor:"divider",bgcolor:e=>e.tokens.color.statusBar?.background,color:e=>e.tokens.color.statusBar?.text,fontFamily:"fontFamilyMono",fontSize:"11.5px",whiteSpace:"nowrap",minWidth:0},Mwr={display:"flex",alignItems:"center",gap:.5,minWidth:0};function Dwr({start:e,end:t}){return(0,Ev.jsxs)(Ev.Fragment,{children:[(0,Ev.jsx)(f5,{styles:Tii}),(0,Ev.jsxs)(J,{component:"footer","data-testid":"status-bar",sx:Cii,children:[(0,Ev.jsx)(J,{sx:Mwr,children:e}),(0,Ev.jsx)(J,{sx:{flex:1}}),(0,Ev.jsx)(J,{sx:Mwr,children:t})]})]})}function Nwr(e){return e?.five_hour?.used_percentage!=null||e?.seven_day?.used_percentage!=null}function Owr(e,t){let r=[];Nwr(e)&&r.push({harness:"claude",rateLimits:e});for(let[n,i]of Object.entries(t))Nwr(i)&&r.push({harness:n,rateLimits:i});return r}var Vwr=E(fe(),1);var Rv=e=>e.tokens.color.statusBar;var x$=e=>Rv(e).secondary;function Bwr(e){return t=>Rv(t).level[e]}var Wwr=E(fe(),1);function kve(e,t,r){return e!=null?z1e(e,r):t}var _ve=E($(),1);function Fwr({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=kve(e?.resets_at,r,n);return(0,_ve.jsxs)(J,{component:"span",children:[(0,_ve.jsxs)(J,{component:"span",sx:{color:Bwr(o)},children:[Math.round(i),"%"]})," ",(0,_ve.jsxs)(J,{component:"span",sx:{color:x$},children:["(",a,")"]})]})}var JA=E($(),1),wii='@property --rainbow-pill-h { syntax: "<number>"; inherits: true; initial-value: 0; }',kii=go`
|
|
4017
4017
|
from { --rainbow-pill-h: 0; }
|
|
4018
4018
|
to { --rainbow-pill-h: 360; }
|
|
4019
4019
|
`,_ii=go`
|
|
4020
4020
|
0%, 100% { transform: scale(1); }
|
|
4021
4021
|
50% { transform: scale(1.08); }
|
|
4022
|
-
`,$wr={content:'""',position:"absolute",borderRadius:"inherit",background:"conic-gradient(from calc(var(--rainbow-pill-h) * 1deg) in oklch longer hue, oklch(66% 0.21 0), oklch(66% 0.21 0))",animation:`${kii} 1.8s linear infinite`},Eii={display:"inline-flex",alignItems:"center",px:1.5,py:"3px",borderRadius:999,position:"relative",isolation:"isolate",fontWeight:700,animation:`${_ii} 1.6s ease-in-out infinite`,"&::before":{...$wr,inset:0,zIndex:-1},"&::after":{...$wr,inset:"-5px",zIndex:-2,filter:"blur(9px)",opacity:.85},"& span":{color:sl.rainbowPill.text,textShadow:sl.rainbowPill.shadow},"@media (prefers-reduced-motion: reduce)":{animation:"none","&::before, &::after":{animation:"none"}}};function zwr({children:e}){return(0,JA.jsxs)(JA.Fragment,{children:[(0,JA.jsx)(f5,{styles:wii}),(0,JA.jsx)(J,{component:"span","data-testid":"rainbow-pill",sx:Eii,children:e})]})}function Hwr({pct:e,timeLabel:t}){return[Math.round(e),...(t.match(/\d+/g)??[]).map(Number)].join(",")}function Uwr(e){if(e.length!==2)return!1;let[t,r]=e;return Hwr(t)===Hwr(r)}var xS=E($(),1);function Gwr({rateLimits:e}){let t=e$(3e4),r=[{window:e.five_hour,windowSeconds:18e3,fallbackLabel:"5h"},{window:e.seven_day,windowSeconds:604800,fallbackLabel:"7d"}].filter(o=>o.window?.used_percentage!=null),n=Uwr(r.map(o=>({pct:o.window?.used_percentage??0,timeLabel:kve(o.window?.resets_at,o.fallbackLabel,t)}))),i=r.map((o,a)=>(0,xS.jsxs)(Wwr.Fragment,{children:[a>0?(0,xS.jsx)(J,{component:"span",sx:{color:x$,mr:.5},children:","}):null,(0,xS.jsx)(Fwr,{window:o.window,windowSeconds:o.windowSeconds,fallbackLabel:o.fallbackLabel,now:t})]},o.fallbackLabel));return n?(0,xS.jsx)(zwr,{children:i}):(0,xS.jsx)(xS.Fragment,{children:i})}var N_=E($(),1);function qwr({groups:e}){return(0,N_.jsx)(N_.Fragment,{children:e.map((t,r)=>(0,N_.jsxs)(Vwr.Fragment,{children:[(0,N_.jsx)(J,{component:"span",sx:{color:x$,ml:r>0?1:0,mr:.5},children:Du(t.harness)}),(0,N_.jsx)(Gwr,{rateLimits:t.rateLimits})]},t.harness))})}var jwr={root:{fontFamily:"fontFamilyMono",fontSize:12,display:"grid",gap:1},group:{display:"grid",gap:"2px"},heading:{color:e=>e.tokens.color.onAppBar.secondary},foot:{pt:.75,opacity:.6,borderTop:"1px solid color-mix(in srgb, currentColor 18%, transparent)"}};function Rii(e){if(e==="over")return{level:"warn",boundary:100};if(e==="warn")return{level:"ok",boundary:75}}function Aii(e){if(e==="ok")return{level:"warn",boundary:75};if(e==="warn")return{level:"over",boundary:100}}function Pii(e,t,r,n){if(e>=t)return;let i=e/t;return Math.round(r-n*(1-i))}function Xwr(e,t,r,n){if(t==null)return{kind:"unprojectable"};let i=uGe(t,r,n);if(i==null)return{kind:"unprojectable"};let o=b_(e,t,r,n),a=Rii(o),s=Aii(o);return{kind:"projected",recovery:a&&{level:a.level,pct:a.boundary*i,at:Pii(e,a.boundary,t,r)},worse:s&&{level:s.level,pct:s.boundary*i}}}function Eve(e){return t=>t.tokens.color.onAppBar.level[e]}function Zwr(e,t){return e.at==null?"not before reset":`${e.level==="ok"?"green":"under"} in ${z1e(e.at,t)}`}var O_=E($(),1),Qwr={display:"contents"};function IGe({direction:e,threshold:t}){let r=e==="back";if(!t)return(0,O_.jsxs)(J,{component:"span",sx:Qwr,children:[(0,O_.jsx)("span",{}),(0,O_.jsx)("span",{})]});let n=(0,O_.jsx)(J,{component:"span",sx:{opacity:.6},children:r?"\u2190":"\u2192"}),i=(0,O_.jsxs)(J,{component:"span",sx:{color:Eve(t.level),textAlign:"right"},children:[Math.round(t.pct),"%"]});return(0,O_.jsxs)(J,{component:"span",sx:Qwr,children:[r?i:n,r?n:i]})}var Jwr={row:{display:"grid",gridTemplateColumns:"2.5ch 4ch 1ch 4ch 1ch 4ch auto",alignItems:"baseline",gap:.75,fontVariantNumeric:"tabular-nums"},pctWeight:500,note:{pl:.75,color:e=>e.tokens.color.onAppBar.secondary}};var B_=E($(),1);function ekr({label:e,pct:t,resetsAt:r,windowSeconds:n,now:i}){let o=Jwr,a=b_(t,r,n,i),s=Xwr(t,r,n,i),l=s.kind==="projected"?s:void 0;return(0,B_.jsxs)(J,{sx:o.row,children:[(0,B_.jsx)(J,{component:"span",sx:{minWidth:"2ch"},children:e}),(0,B_.jsx)(IGe,{direction:"back",threshold:l?.recovery}),(0,B_.jsxs)(J,{component:"span",sx:{minWidth:"4ch",textAlign:"right",fontWeight:o.pctWeight,color:Eve(a)},children:[Math.round(t),"%"]}),(0,B_.jsx)(IGe,{direction:"forward",threshold:l?.worse}),(0,B_.jsx)(J,{component:"span",sx:o.note,children:l?l.recovery&&Zwr(l.recovery,i):"no projection yet"})]})}function tkr(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 nkr=E($(),1);function rkr({rateLimits:e,now:t}){return tkr(e).map(r=>(0,nkr.jsx)(ekr,{label:r.label,pct:r.pct,resetsAt:r.resetsAt,windowSeconds:r.windowSeconds,now:t},r.label))}var e6=E($(),1);function ikr({groups:e}){let t=e$(3e4),r=jwr;return(0,e6.jsxs)(J,{sx:r.root,children:[e.map(n=>(0,e6.jsxs)(J,{sx:r.group,children:[(0,e6.jsx)(J,{sx:r.heading,children:Du(n.harness)}),(0,e6.jsx)(rkr,{rateLimits:n.rateLimits,now:t})]},n.harness)),(0,e6.jsx)(J,{sx:r.foot,children:"Account usage per harness \u2014 view history"})]})}var DGe=E($(),1),Lii="Claude account usage (5h / 7d windows) \u2014 view history";function okr(e){return e.length===0?{title:Lii,content:"Usage"}:{title:(0,DGe.jsx)(ikr,{groups:e}),content:(0,DGe.jsx)(qwr,{groups:e})}}var akr={display:"flex",alignItems:"center",height:22,px:1,borderRadius:1,fontSize:"inherit","&:hover, &:focus-visible":{bgcolor:e=>e.tokens.color.statusBar.hover,color:e=>e.tokens.color.statusBar.hoverText}},skr={tooltip:{sx:{p:"10px 12px",minWidth:300,maxWidth:"none"}}};var NGe=E($(),1),Mii={};function lkr({rateLimits:e,harnessRateLimits:t=Mii}){let{title:r,content:n}=okr(Owr(e,t));return(0,NGe.jsx)(sr,{title:r,placement:"top-start",slotProps:skr,children:(0,NGe.jsx)(Zr,{component:ks,to:"/usage",underline:"none",color:"inherit",sx:akr,children:n})})}var fkr=E(fe(),1);var F_="0.956.1";var Rve=E(fe(),1),OGe=(0,Rve.createContext)(null);function Ave(){return(0,Rve.useContext)(OGe)}var BGe=E($(),1);function ckr(){let e=Ave();return!e||e===F_?null:(0,BGe.jsx)(sr,{title:`Daemon is running v${e}, but this page was served by v${F_}. Restart the daemon to match.`,children:(0,BGe.jsx)(gve,{fontSize:"small",color:"warning","aria-label":"Version mismatch"})})}var ukr=e=>({display:"inline-flex",alignItems:"center",gap:.75,px:1,py:0,height:22,borderRadius:1,fontSize:"inherit",lineHeight:1.5,color:"inherit",opacity:1,bgcolor:t=>e?Rv(t).active:"transparent",transition:"opacity .2s ease, background-color .2s ease, color .2s ease","&:hover, &:focus-visible":{bgcolor:t=>Rv(t).hover,color:t=>Rv(t).hoverText},"& .ready-dot":{width:6,height:6,borderRadius:"50%",bgcolor:t=>Rv(t).dot,boxShadow:t=>`0 0 0 3px ${Rv(t).dotRing}`},"& .ready-count":{fontWeight:500,color:t=>Rv(t).readyText}});var cg=E($(),1);function dkr(){let{entries:e}=FF(),t=Bi(),r=(0,fkr.useCallback)(()=>t("/updates"),[t]),{matches:n,chords:i}=Kn("openUpdates");if(Ao(n,r),!F_)return null;let o=e.filter(VF).length;return(0,cg.jsxs)(cg.Fragment,{children:[(0,cg.jsx)(sr,{describeChild:!0,placement:"top-end",title:(0,cg.jsx)(Ou,{label:"Updates",chords:i}),children:(0,cg.jsxs)(cn,{component:ks,to:"/updates","aria-label":o?`Updates: ${o} node${o>1?"s have":" has"} an update ready`:"Updates",sx:ukr(o>0),children:[o>0&&(0,cg.jsx)("span",{className:"ready-dot","aria-hidden":!0}),(0,cg.jsxs)("span",{children:["v",F_]}),o>0&&(0,cg.jsxs)("span",{className:"ready-count",children:[o," ready"]})]})}),(0,cg.jsx)(ckr,{})]})}var Pve=E($(),1);function hkr({socket:e}){return(0,Pve.jsx)(Dwr,{start:(0,Pve.jsx)(lkr,{rateLimits:e.rateLimits,harnessRateLimits:e.harnessRateLimits}),end:(0,Pve.jsx)(dkr,{})})}var Nve=E(fe(),1);var Dve=E(fe(),1);function pkr(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 $_=E($(),1),Iii={display:"flex",gap:1,alignItems:"center",minWidth:0},Dii={display:"flex",gap:1,alignItems:"baseline",minWidth:0,overflow:"hidden"},Nii={fontFamily:"fontFamilyMono",fontSize:13,whiteSpace:"nowrap"},Oii={fontFamily:"fontFamilyMono",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function Bii(e){let t=e.lastIndexOf("/");return t===-1?{dir:"",basename:e}:{dir:e.slice(0,t),basename:e.slice(t+1)}}function mkr({files:e,highlight:t,onHighlight:r,onSelect:n}){return(0,$_.jsx)(Hp,{dense:!0,sx:{py:0},children:e.map((i,o)=>{let{dir:a,basename:s}=Bii(i);return(0,$_.jsxs)(hn,{selected:o===t,onMouseEnter:()=>r(o),onClick:()=>n(i),sx:Iii,children:[(0,$_.jsx)(xge,{path:i}),(0,$_.jsxs)(J,{sx:Dii,children:[(0,$_.jsx)(Le,{component:"span",sx:Nii,children:s}),(0,$_.jsx)(Le,{component:"span",color:"text.secondary",sx:Oii,children:a})]})]},i)})})}var Lve=E($(),1),Fii={maxHeight:420,overflowY:"auto"},$ii={px:2,py:2,fontSize:13};function gkr({message:e,files:t,highlight:r,onHighlight:n,onSelect:i}){return(0,Lve.jsx)(J,{sx:Fii,children:e?(0,Lve.jsx)(Le,{color:"text.secondary",sx:$ii,children:e}):(0,Lve.jsx)(mkr,{files:t,highlight:r,onHighlight:n,onSelect:i})})}var ykr=E($(),1),zii={mt:6,alignSelf:"flex-start"};function Mve({onClose:e,onEntered:t,centered:r=!1,children:n}){return(0,ykr.jsx)(ql,{open:!0,onClose:e,maxWidth:"sm",fullWidth:!0,slotProps:{paper:{sx:r?void 0:zii},transition:{onEntered:t}},children:n})}var Ive=E(fe(),1);var vkr={files:[],loading:!1,error:!1};function bkr(e,t){let[r,n]=(0,Ive.useState)(vkr),i=vr();return(0,Ive.useEffect)(()=>{if(!e){n(vkr);return}let o=!1;return n(s=>({...s,loading:!0})),(async()=>{try{let s=await hr(Yr(`/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 t6=E($(),1);function Hii(e,t,r){let n=new URLSearchParams({path:e});return t&&n.set("cwd",t),t&&r&&n.set("node",r),`/file?${n}`}function xkr({onClose:e}){let{worktreeNode:t}=$n();return(0,t6.jsx)(yf.Provider,{value:t,children:(0,t6.jsx)(Uii,{onClose:e})})}function Uii({onClose:e}){let{worktreeCwd:t,worktreeNode:r}=$n(),[n,i]=(0,Dve.useState)(""),o=bkr(t,n),a=Bi(),s=(0,Dve.useRef)(null),l=p=>a(Hii(p,t,r)),{highlight:u,setHighlight:f,onKeyDown:d}=__(o.files,n,l,e),h=p=>{l(p),e()};return(0,t6.jsxs)(Mve,{onClose:e,onEntered:()=>s.current?.focus(),children:[(0,t6.jsx)(ET,{autoFocus:!0,inputRef:s,value:n,onChange:i,onKeyDown:d,placeholder:"Search files by name..."}),(0,t6.jsx)(gkr,{message:pkr(t,n,o),files:o.files,highlight:u,onHighlight:f,onSelect:h})]})}function Skr(e){Ao(Kn("quickOpen").matches,e)}var Ckr=E($(),1);function Tkr(){let[e,t]=(0,Nve.useState)(!1);return Skr((0,Nve.useCallback)(()=>t(!0),[])),e?(0,Ckr.jsx)(xkr,{onClose:()=>t(!1)}):null}var Ove=E($(),1);function wkr({notice:e,onClose:t,onView:r}){let n=e?.sessionId??null;return(0,Ove.jsx)(Oh,{open:e!==null,autoHideDuration:6e3,onClose:t,children:(0,Ove.jsx)(xi,{severity:"success",variant:"filled",onClose:t,action:n!==null?(0,Ove.jsx)(Mt,{color:"inherit",size:"small",onClick:()=>r(n),children:"View"}):void 0,children:e?.message})})}var VX=E(fe(),1);function kkr(e){let t=["claude"];return e.exposeCodexActions&&t.push("codex"),e.exposePiActions&&t.push("pi"),t}var Fkr=E(fe(),1);var _kr=E($(),1),Ekr=ct((0,_kr.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 Wii={connected:"success.main",connecting:"warning.main",disconnected:"error.main","version-blocked":"error.main"};function Rkr(e){return e?Wii[e]:"success.main"}function Akr(e){return e.split("-")[0].split(".").map(Number)}function Pkr(e,t){if(!e||!t||e===t)return;let r=Akr(e),n=Akr(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 r6=E($(),1),Gii={height:16,fontSize:10},Vii={opacity:.6,fontSize:"0.85em"};function qii(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 WX({nodes:e,name:t,showVersion:r=!1}){let n=Ave()??F_,i=e.links.find(a=>a.name===t),o=Pkr(i?.peerVersion,n);return(0,r6.jsx)(sr,{title:qii(e,t),placement:"right",children:(0,r6.jsxs)(J,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.75},children:[(0,r6.jsx)(Ekr,{sx:{fontSize:8,color:Rkr(i?.state)}}),t,r&&i?.peerVersion&&(0,r6.jsxs)(J,{component:"span",sx:Vii,children:["v",i.peerVersion]}),o&&(0,r6.jsx)(Hn,{label:o,size:"small",color:o==="behind"?"warning":"info",sx:Gii})]})})}var n6=E($(),1),jii={opacity:.6},Yii={display:"inline-flex",alignItems:"center",gap:.5,px:.5,border:1,borderStyle:"dashed",borderRadius:1};function Lkr({nodes:e,name:t,clone:r}){let n=(0,n6.jsx)(WX,{nodes:e,name:t});return r.kind==="cloned"?n:r.kind==="unavailable"?(0,n6.jsx)(J,{component:"span",sx:jii,children:n}):(0,n6.jsx)(sr,{title:o$(t,r.cloneTarget),children:(0,n6.jsxs)(J,{component:"span",sx:Yii,children:[(0,n6.jsx)(i$,{sx:{fontSize:14}}),n]})})}var Ikr=E($(),1),Kii={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 Mkr({value:e,label:t,checked:r,autoFocus:n,onSelect:i}){return(0,Ikr.jsx)(cn,{role:"radio","aria-checked":r,"data-value":e,tabIndex:r?0:-1,autoFocus:n&&r,onClick:i,sx:Kii,children:t})}var Dkr={ArrowRight:1,ArrowLeft:-1};function Xii(e,t,r){if(e.key==="Tab"){let n=t+(e.shiftKey?-1:1);return n>=0&&n<r?n:void 0}return(t+Dkr[e.key]+r)%r}function Nkr(e,t,r,n){return i=>{if(i.key==="ArrowUp"||i.key==="ArrowDown"){if(!n)return;i.preventDefault(),n();return}if(i.key!=="Tab"&&!Dkr[i.key]){O2(i);return}let o=Xii(i,e.indexOf(t),e.length);o!==void 0&&(i.preventDefault(),r(e[o]),i.currentTarget.querySelector(`[data-value="${e[o]}"]`)?.focus())}}var Okr=E(fe(),1);function S$(e){return e?.querySelector('[aria-checked="true"]')}function Bkr(e,t){(0,Okr.useEffect)(()=>{let r=e.current;if(!r?.contains(document.activeElement))return;let n=S$(r);n&&n!==document.activeElement&&n.focus()},[e,t])}var FGe=E($(),1),Zii={border:1,borderColor:"divider",borderRadius:1,height:40,p:"2px",flexShrink:0};function Bve({label:e,options:t,value:r,onChange:n,optionLabel:i=u=>u,groupRef:o,autoFocus:a,onTrack:s,onToggleRow:l}){return Bkr(o,r),(0,FGe.jsx)(Et,{ref:o,direction:"row",role:"radiogroup","aria-label":e,spacing:"2px",onFocus:s,onKeyDown:Nkr(t,r,n,l),sx:Zii,children:t.map(u=>(0,FGe.jsx)(Mkr,{value:u,label:i(u),checked:u===r,autoFocus:a,onSelect:()=>n(u)},u))})}var $Ge=E($(),1);function $kr({value:e,onChange:t,cloneState:r}){let{nodes:n,names:i,visible:o}=Ac(),a=(0,Fkr.useRef)(null);return!o||!n||!e?null:(0,$Ge.jsx)(Bve,{label:"Machine",options:i,value:e,onChange:t,optionLabel:s=>(0,$Ge.jsx)(Lkr,{nodes:n,name:s,clone:r(s)}),groupRef:a,autoFocus:!1,onTrack:()=>{}})}var Fve=E($(),1);function zkr({prompt:e,children:t}){return(0,Fve.jsxs)(Et,{children:[e,(0,Fve.jsx)(Et,{spacing:1,sx:{px:1.5,pb:1.5},children:t})]})}var Ukr=E($(),1),Qii=".MuiOutlinedInput-notchedOutline",Jii={"& .MuiOutlinedInput-root":{px:"18px",py:2,minHeight:92,alignItems:"flex-start",bgcolor:"transparent",borderRadius:0,fontSize:15},[`&&& ${Qii}`]:{border:0},"& textarea::placeholder":{color:"text.disabled",opacity:1}};function Hkr({value:e,onChange:t,placeholder:r,inputRef:n,autoFocus:i,onTrack:o}){return(0,Ukr.jsx)(Yn,{sx:Jii,value:e,onChange:a=>t(a.target.value),onKeyDown:O2,onFocus:o,onSelect:o,inputRef:n,placeholder:r,autoFocus:i,fullWidth:!0,multiline:!0,minRows:3,maxRows:12,slotProps:{htmlInput:{"aria-label":"Prompt"}}})}var qkr=E(fe(),1);var SS={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:v0e,submitLabel:"Start session"},design:{placeholder:"Describe the design task...",submitLabel:"Start design"}},Wkr=Object.keys(SS);var zGe=E($(),1);function Gkr({anchor:e,harness:t,harnesses:r,onPick:n,onClose:i}){return(0,zGe.jsx)(Bs,{open:e!==null,anchorEl:e,onClose:i,slotProps:{list:{dense:!0,"aria-label":"Harness"}},children:r.map(o=>(0,zGe.jsx)(hn,{role:"menuitemradio","aria-checked":o===t,selected:o===t,onClick:()=>{n(o),i()},sx:{fontSize:13},children:Du(o)},o))})}var i6=E($(),1);function Vkr(e){return t=>t==="prompt"&&e?(0,i6.jsxs)(i6.Fragment,{children:["prompt",(0,i6.jsx)(J,{component:"span",sx:{fontWeight:400,whiteSpace:"pre"},children:` \xB7 ${Du(e)}`}),(0,i6.jsx)(xd,{sx:{fontSize:18,mr:-.75}})]}):t}var o6=E($(),1);function jkr({draft:e,harness:t,harnesses:r,focus:n}){let[i,o]=(0,qkr.useState)(null),a=e.mode==="prompt"&&r.length>1,s=()=>o(S$(n.modeRef.current)??null),l=u=>{a&&u==="prompt"?s():e.setMode(u)};return(0,o6.jsxs)(o6.Fragment,{children:[(0,o6.jsx)(Bve,{label:"Mode",options:Wkr,value:e.mode,onChange:l,optionLabel:Vkr(r.length>1?t:void 0),groupRef:n.modeRef,autoFocus:n.autoFocus==="mode",onTrack:n.trackMode,onToggleRow:a?s:void 0}),(0,o6.jsx)(Gkr,{anchor:i,harness:t,harnesses:r,onPick:e.setHarness,onClose:()=>o(null)})]})}var a_r=E(fe(),1);var HGe=E($(),1),eoi={zIndex:e=>e.zIndex.modal+1};function Ykr({open:e,anchor:t,children:r}){return(0,HGe.jsx)(mP,{open:e,anchorEl:t,placement:"bottom-start",sx:eoi,children:(0,HGe.jsx)(nn,{sx:{maxHeight:240,overflowY:"auto",width:t?.clientWidth},onMouseDown:n=>n.preventDefault(),children:r})})}var Kkr=E($(),1),Xkr=ct((0,Kkr.jsx)("path",{d:"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z"}),"KeyboardArrowDown");var UGe=E($(),1),toi={fontSize:13,height:36,pr:1,cursor:"pointer","& input":{cursor:"text"}},roi={fontSize:16,color:"text.disabled"};function Zkr(e){return{htmlInput:{role:"combobox","aria-label":"Repo","aria-expanded":e},input:{sx:toi,endAdornment:(0,UGe.jsx)(R2e,{position:"end",children:(0,UGe.jsx)(Xkr,{sx:roi})})}}}var Qkr=E(eP(),1);function Jkr({open:e,highlighted:t,accept:r,close:n,navigate:i,openList:o}){return a=>{if(!e){if(a.key==="ArrowDown"){a.preventDefault(),o();return}O2(a);return}if(a.key!=="Escape"){if(a.key==="Enter"){if(a.preventDefault(),t===void 0)return;(0,Qkr.flushSync)(()=>{r(t),n()}),O2(a);return}if(a.key!=="Tab"){i(a);return}t!==void 0&&r(t),n()}}}function e_r(e,t){let r=t.trim().toLowerCase();return r?e.filter(n=>bv(n).toLowerCase().includes(r)):e}var WGe=E(fe(),1);function t_r(){let[e,t]=(0,WGe.useState)(!1),[r,n]=(0,WGe.useState)("");return{open:e,query:r,show:()=>t(!0),filterBy:i=>{n(i),t(!0)},close:()=>{t(!1),n("")}}}var n_r=E(fe(),1);var r_r=e=>e?bv(e):"";function i_r(e){let[t,r]=(0,n_r.useState)(()=>r_r(e));return{text:t,setText:r,showRepo:n=>r(r_r(n))}}function o_r(e,t,r){let n=t_r(),i=i_r(t),o=e_r(e,n.query),a=f=>{r(f),i.showRepo(f)},s=__(o,n.query,a,n.close),l=()=>s.setHighlight(Math.max(e.indexOf(t),0)),u=()=>{l(),n.show()};return{open:n.open,text:i.text,filtered:o,highlight:s.highlight,setHighlight:s.setHighlight,onKeyDown:Jkr({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 T$=E($(),1);function s_r({repos:e,value:t,onChange:r,inputRef:n,autoFocus:i,onTrack:o}){let a=o_r(e,t,r),s=(0,a_r.useRef)(null);return(0,T$.jsxs)(J,{ref:s,sx:{flex:1,minWidth:0},children:[(0,T$.jsx)(Yn,{value:a.text,onChange:l=>a.onType(l.target.value),onFocus:l=>{l.target.select(),a.onFocus(),o()},inputRef:n,autoFocus:i,onClick:a.onClick,onBlur:a.onBlur,onKeyDown:a.onKeyDown,placeholder:"Repo",size:"small",fullWidth:!0,slotProps:Zkr(a.open)}),(0,T$.jsx)(Ykr,{open:a.open,anchor:s.current,children:(0,T$.jsx)(fve,{repos:a.filtered,selected:t,highlight:a.highlight,onHighlight:a.setHighlight,onSelect:a.pick})})]})}var z_=E($(),1);function l_r({cloneState:e,...t}){let{draft:r,focus:n}=t,{repos:i}=$n();return(0,z_.jsxs)(zkr,{prompt:(0,z_.jsx)(Hkr,{value:r.prompt,onChange:r.setPrompt,placeholder:SS[r.mode].placeholder,inputRef:n.promptRef,autoFocus:n.autoFocus==="prompt",onTrack:n.trackPrompt}),children:[(0,z_.jsxs)(Et,{direction:"row",spacing:1,sx:{alignItems:"flex-start"},children:[(0,z_.jsx)(s_r,{repos:i,value:r.cwd,onChange:r.setCwd,inputRef:n.repoRef,autoFocus:n.autoFocus==="repo",onTrack:n.trackRepo}),(0,z_.jsx)(jkr,{...t})]}),(0,z_.jsx)($kr,{value:r.node,onChange:r.setNode,cloneState:e})]})}var f_r=E($(),1),c_r=[["Enter","start"],["Shift+Enter","newline"],["Esc","close"]];function u_r({submitLabel:e,disabled:t=!1,loading:r=!1}){return(0,f_r.jsx)(Mt,{type:"submit",variant:"contained",disabled:t,loading:r,children:e})}var a6=E($(),1),noi=e=>({alignItems:"center",flexWrap:"wrap",gap:"14px",py:"10px",pl:"18px",pr:1.5,borderTop:1,borderColor:e.tokens.color.lineSoft,bgcolor:"background.default",fontSize:12,color:"text.secondary"}),ioi=e=>({mr:.5,px:"5px",border:1,borderColor:"divider",borderRadius:"4px",fontFamily:e.typography.fontFamilyMono,fontSize:10.5,color:"text.primary"});function d_r(e){return(0,a6.jsxs)(Et,{direction:"row",sx:noi,children:[c_r.map(([t,r])=>(0,a6.jsxs)("span",{children:[(0,a6.jsx)(J,{component:"kbd",sx:ioi,children:t}),r]},t)),(0,a6.jsx)(J,{sx:{flex:1}}),(0,a6.jsx)(u_r,{...e})]})}var s6=E(fe(),1);function h_r(e,t){let r=(0,s6.useRef)(e),n=(0,s6.useRef)(null),i=(0,s6.useRef)(null),o=(0,s6.useRef)(null),a=(0,s6.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:S$(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 ooi(e,t,r){return e?r.kind==="cloned"?{kind:"launch",cwd:r.cwd}:r.kind==="clonable"?{kind:"clone",prompt:hve(r,t)}:{kind:"blocked"}:{kind:"launch",cwd:e}}function p_r(e,t){let{names:r,visible:n}=Ac(),i=lve(t,n?r:[void 0]);return{cloneState:i,target:ooi(t,e,i(e))}}function m_r({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}]:[];ldr(SS[e].sessionMode,n,(u,f)=>o.onCreateAssist(u,f,...l),()=>{},r)}function g_r(e,t,r,n){return r.kind==="blocked"||e.modePending?!1:r.kind==="clone"?(eve(r.prompt,n.onCreateAssist),!0):(m_r({mode:e.mode,harness:t,prompt:e.prompt,cwd:r.cwd,node:e.node},n),e.clear(),!0)}var $ve=E(fe(),1);function y_r(e,t){let[r,n]=(0,$ve.useState)(!1);return(0,$ve.useEffect)(()=>{!r||e.modePending||(n(!1),t())},[r,e.modePending,t]),()=>{e.modePending?n(!0):t()}}function v_r(e,t,r,n,i){let o=y_r(e,()=>{g_r(e,t,r,n)&&i()});return a=>{a.preventDefault(),o()}}var GX=E(fe(),1);function b_r(e,t){let r=(0,GX.useRef)(e),n=(0,GX.useRef)(null);return(0,GX.useEffect)(()=>{if(r.current&&!e){let i=n.current;i?.isConnected?i.focus():t()}r.current=e},[e,t]),i=>{n.current=i.target}}var S_r=E($(),1),aoi={border:0,margin:0,padding:0,minWidth:0};function x_r({loading:e,restoreFocus:t,children:r}){let n=b_r(e,t);return(0,S_r.jsx)("fieldset",{disabled:e,style:aoi,onFocus:n,children:r})}var l6=E($(),1);function T_r({draft:e,launchers:t,onClose:r}){let n=h_r(e.focus,e.setFocus),i=kkr(S_()),o=i.includes(e.harness)?e.harness:"claude",{target:a,cloneState:s}=p_r(e.node,e.cwd),l=v_r(e,o,a,t,r);return(0,l6.jsx)(Mve,{onClose:r,onEntered:n.restore,centered:!0,children:(0,l6.jsx)("form",{onSubmit:l,children:(0,l6.jsxs)(x_r,{loading:e.modePending,restoreFocus:n.restore,children:[(0,l6.jsx)(l_r,{draft:e,harness:o,harnesses:i,focus:n,cloneState:s}),(0,l6.jsx)(d_r,{submitLabel:a.kind==="clone"?"Clone":SS[e.mode].submitLabel,disabled:a.kind==="blocked",loading:e.modePending})]})})})}var zve=E(fe(),1);var soi=1e3;async function loi(e){try{let t=e?`?cwd=${encodeURIComponent(e)}`:"",n=await(await hr(`/api/new-session-defaults${t}`)).json();return Object.hasOwn(SS,n?.mode)?n.mode:null}catch{return null}}function C_r(e,t=0){let[r,n]=(0,zve.useState)(null);return(0,zve.useEffect)(()=>{let i=!1,o,a=async()=>{let s=await loi(e);i||(s?n({cwd:e,opens:t,mode:s}):o=setTimeout(a,soi))};return a(),()=>{i=!0,clearTimeout(o)}},[e,t]),r?{mode:r.mode,pending:r.cwd!==e||r.opens!==t}:null}function w_r(e,{visible:t,names:r,selected:n}){if(t)return e&&r.includes(e)?e:n}var TS=E(fe(),1),k_r={field:"prompt",selectionStart:0,selectionEnd:0};function __r(){let[e,t]=(0,TS.useState)(""),[r,n]=(0,TS.useState)(),[i,o]=(0,TS.useState)(),[a,s]=(0,TS.useState)("claude"),[l,u]=(0,TS.useState)(),[f,d]=(0,TS.useState)(k_r),h=(0,TS.useCallback)(()=>{t(""),n(void 0),o(void 0),u(void 0),d(k_r)},[]);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 E_r(e,t=C_r){let{selectedCwd:r}=$n(),n=Ac(),i=__r(),o=i.cwd??r,a=t(o,e);return a?{...i,cwd:o,mode:i.mode??a.mode,modePending:i.mode===void 0&&a.pending,node:w_r(i.node,n)}:null}function R_r(e){Ao(Kn("newSession").matches,e)}var A_r=E(fe(),1);function P_r(e,t){let{selectedCwd:r}=$n(),[n,i]=Vc(),o=n.get("new"),a=n.get("newCwd")??r,{setPrompt:s,setCwd:l,setFocus:u}=e??{};(0,A_r.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 M_r=E($(),1);function L_r({launchers:e}){let[t,r]=(0,VX.useState)(!1),[n,i]=(0,VX.useState)(0),o=E_r(n),a=(0,VX.useCallback)(()=>{r(!0),i(s=>s+1)},[]);return R_r(a),P_r(o,a),!t||!o?null:(0,M_r.jsx)(T_r,{draft:o,launchers:e,onClose:()=>r(!1)})}var Hve=E($(),1);function I_r({reconnecting:e}){return(0,Hve.jsx)(Oh,{open:e,children:(0,Hve.jsx)(xi,{severity:"info",variant:"filled",icon:(0,Hve.jsx)(ao,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var Av=E($(),1);function D_r({socket:e,onViewLaunchedSession:t}){return(0,Av.jsxs)(Av.Fragment,{children:[(0,Av.jsx)(Tkr,{}),(0,Av.jsx)(L_r,{launchers:{onCreate:e.createSession,onCreateDesign:e.createDesignSession,onCreateHarness:e.createHarnessSession,onCreateAssist:e.createAssistSession}}),(0,Av.jsx)(I_r,{reconnecting:e.reconnecting}),(0,Av.jsx)(ec,{error:e.error,onClose:e.clearError}),(0,Av.jsx)(wkr,{notice:e.success,onClose:e.clearSuccess,onView:t})]})}var Pv=E(fe(),1);var coi=6e4;function uoi(e,t,r){return t.map(n=>e.find(i=>i.name===n)??{name:n,local:n===r,loading:!0})}function N_r(e){let t=e.nodes?.local,r=e.names.join(`
|
|
4022
|
+
`,$wr={content:'""',position:"absolute",borderRadius:"inherit",background:"conic-gradient(from calc(var(--rainbow-pill-h) * 1deg) in oklch longer hue, oklch(66% 0.21 0), oklch(66% 0.21 0))",animation:`${kii} 1.8s linear infinite`},Eii={display:"inline-flex",alignItems:"center",px:1.5,py:"3px",borderRadius:999,position:"relative",isolation:"isolate",fontWeight:700,animation:`${_ii} 1.6s ease-in-out infinite`,"&::before":{...$wr,inset:0,zIndex:-1},"&::after":{...$wr,inset:"-5px",zIndex:-2,filter:"blur(9px)",opacity:.85},"& span":{color:sl.rainbowPill.text,textShadow:sl.rainbowPill.shadow},"@media (prefers-reduced-motion: reduce)":{animation:"none","&::before, &::after":{animation:"none"}}};function zwr({children:e}){return(0,JA.jsxs)(JA.Fragment,{children:[(0,JA.jsx)(f5,{styles:wii}),(0,JA.jsx)(J,{component:"span","data-testid":"rainbow-pill",sx:Eii,children:e})]})}function Hwr({pct:e,timeLabel:t}){return[Math.round(e),...(t.match(/\d+/g)??[]).map(Number)].join(",")}function Uwr(e){if(e.length!==2)return!1;let[t,r]=e;return Hwr(t)===Hwr(r)}var xS=E($(),1);function Gwr({rateLimits:e}){let t=e$(3e4),r=[{window:e.five_hour,windowSeconds:18e3,fallbackLabel:"5h"},{window:e.seven_day,windowSeconds:604800,fallbackLabel:"7d"}].filter(o=>o.window?.used_percentage!=null),n=Uwr(r.map(o=>({pct:o.window?.used_percentage??0,timeLabel:kve(o.window?.resets_at,o.fallbackLabel,t)}))),i=r.map((o,a)=>(0,xS.jsxs)(Wwr.Fragment,{children:[a>0?(0,xS.jsx)(J,{component:"span",sx:{color:x$,mr:.5},children:","}):null,(0,xS.jsx)(Fwr,{window:o.window,windowSeconds:o.windowSeconds,fallbackLabel:o.fallbackLabel,now:t})]},o.fallbackLabel));return n?(0,xS.jsx)(zwr,{children:i}):(0,xS.jsx)(xS.Fragment,{children:i})}var N_=E($(),1);function qwr({groups:e}){return(0,N_.jsx)(N_.Fragment,{children:e.map((t,r)=>(0,N_.jsxs)(Vwr.Fragment,{children:[(0,N_.jsx)(J,{component:"span",sx:{color:x$,ml:r>0?1:0,mr:.5},children:Du(t.harness)}),(0,N_.jsx)(Gwr,{rateLimits:t.rateLimits})]},t.harness))})}var jwr={root:{fontFamily:"fontFamilyMono",fontSize:12,display:"grid",gap:1},group:{display:"grid",gap:"2px"},heading:{color:e=>e.tokens.color.onAppBar.secondary},foot:{pt:.75,opacity:.6,borderTop:"1px solid color-mix(in srgb, currentColor 18%, transparent)"}};function Rii(e){if(e==="over")return{level:"warn",boundary:100};if(e==="warn")return{level:"ok",boundary:75}}function Aii(e){if(e==="ok")return{level:"warn",boundary:75};if(e==="warn")return{level:"over",boundary:100}}function Pii(e,t,r,n){if(e>=t)return;let i=e/t;return Math.round(r-n*(1-i))}function Xwr(e,t,r,n){if(t==null)return{kind:"unprojectable"};let i=uGe(t,r,n);if(i==null)return{kind:"unprojectable"};let o=b_(e,t,r,n),a=Rii(o),s=Aii(o);return{kind:"projected",recovery:a&&{level:a.level,pct:a.boundary*i,at:Pii(e,a.boundary,t,r)},worse:s&&{level:s.level,pct:s.boundary*i}}}function Eve(e){return t=>t.tokens.color.onAppBar.level[e]}function Zwr(e,t){return e.at==null?"not before reset":`${e.level==="ok"?"green":"under"} in ${z1e(e.at,t)}`}var O_=E($(),1),Qwr={display:"contents"};function IGe({direction:e,threshold:t}){let r=e==="back";if(!t)return(0,O_.jsxs)(J,{component:"span",sx:Qwr,children:[(0,O_.jsx)("span",{}),(0,O_.jsx)("span",{})]});let n=(0,O_.jsx)(J,{component:"span",sx:{opacity:.6},children:r?"\u2190":"\u2192"}),i=(0,O_.jsxs)(J,{component:"span",sx:{color:Eve(t.level),textAlign:"right"},children:[Math.round(t.pct),"%"]});return(0,O_.jsxs)(J,{component:"span",sx:Qwr,children:[r?i:n,r?n:i]})}var Jwr={row:{display:"grid",gridTemplateColumns:"2.5ch 4ch 1ch 4ch 1ch 4ch auto",alignItems:"baseline",gap:.75,fontVariantNumeric:"tabular-nums"},pctWeight:500,note:{pl:.75,color:e=>e.tokens.color.onAppBar.secondary}};var B_=E($(),1);function ekr({label:e,pct:t,resetsAt:r,windowSeconds:n,now:i}){let o=Jwr,a=b_(t,r,n,i),s=Xwr(t,r,n,i),l=s.kind==="projected"?s:void 0;return(0,B_.jsxs)(J,{sx:o.row,children:[(0,B_.jsx)(J,{component:"span",sx:{minWidth:"2ch"},children:e}),(0,B_.jsx)(IGe,{direction:"back",threshold:l?.recovery}),(0,B_.jsxs)(J,{component:"span",sx:{minWidth:"4ch",textAlign:"right",fontWeight:o.pctWeight,color:Eve(a)},children:[Math.round(t),"%"]}),(0,B_.jsx)(IGe,{direction:"forward",threshold:l?.worse}),(0,B_.jsx)(J,{component:"span",sx:o.note,children:l?l.recovery&&Zwr(l.recovery,i):"no projection yet"})]})}function tkr(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 nkr=E($(),1);function rkr({rateLimits:e,now:t}){return tkr(e).map(r=>(0,nkr.jsx)(ekr,{label:r.label,pct:r.pct,resetsAt:r.resetsAt,windowSeconds:r.windowSeconds,now:t},r.label))}var e6=E($(),1);function ikr({groups:e}){let t=e$(3e4),r=jwr;return(0,e6.jsxs)(J,{sx:r.root,children:[e.map(n=>(0,e6.jsxs)(J,{sx:r.group,children:[(0,e6.jsx)(J,{sx:r.heading,children:Du(n.harness)}),(0,e6.jsx)(rkr,{rateLimits:n.rateLimits,now:t})]},n.harness)),(0,e6.jsx)(J,{sx:r.foot,children:"Account usage per harness \u2014 view history"})]})}var DGe=E($(),1),Lii="Claude account usage (5h / 7d windows) \u2014 view history";function okr(e){return e.length===0?{title:Lii,content:"Usage"}:{title:(0,DGe.jsx)(ikr,{groups:e}),content:(0,DGe.jsx)(qwr,{groups:e})}}var akr={display:"flex",alignItems:"center",height:22,px:1,borderRadius:1,fontSize:"inherit","&:hover, &:focus-visible":{bgcolor:e=>e.tokens.color.statusBar.hover,color:e=>e.tokens.color.statusBar.hoverText}},skr={tooltip:{sx:{p:"10px 12px",minWidth:300,maxWidth:"none"}}};var NGe=E($(),1),Mii={};function lkr({rateLimits:e,harnessRateLimits:t=Mii}){let{title:r,content:n}=okr(Owr(e,t));return(0,NGe.jsx)(sr,{title:r,placement:"top-start",slotProps:skr,children:(0,NGe.jsx)(Zr,{component:ks,to:"/usage",underline:"none",color:"inherit",sx:akr,children:n})})}var fkr=E(fe(),1);var F_="0.956.2";var Rve=E(fe(),1),OGe=(0,Rve.createContext)(null);function Ave(){return(0,Rve.useContext)(OGe)}var BGe=E($(),1);function ckr(){let e=Ave();return!e||e===F_?null:(0,BGe.jsx)(sr,{title:`Daemon is running v${e}, but this page was served by v${F_}. Restart the daemon to match.`,children:(0,BGe.jsx)(gve,{fontSize:"small",color:"warning","aria-label":"Version mismatch"})})}var ukr=e=>({display:"inline-flex",alignItems:"center",gap:.75,px:1,py:0,height:22,borderRadius:1,fontSize:"inherit",lineHeight:1.5,color:"inherit",opacity:1,bgcolor:t=>e?Rv(t).active:"transparent",transition:"opacity .2s ease, background-color .2s ease, color .2s ease","&:hover, &:focus-visible":{bgcolor:t=>Rv(t).hover,color:t=>Rv(t).hoverText},"& .ready-dot":{width:6,height:6,borderRadius:"50%",bgcolor:t=>Rv(t).dot,boxShadow:t=>`0 0 0 3px ${Rv(t).dotRing}`},"& .ready-count":{fontWeight:500,color:t=>Rv(t).readyText}});var cg=E($(),1);function dkr(){let{entries:e}=FF(),t=Bi(),r=(0,fkr.useCallback)(()=>t("/updates"),[t]),{matches:n,chords:i}=Kn("openUpdates");if(Ao(n,r),!F_)return null;let o=e.filter(VF).length;return(0,cg.jsxs)(cg.Fragment,{children:[(0,cg.jsx)(sr,{describeChild:!0,placement:"top-end",title:(0,cg.jsx)(Ou,{label:"Updates",chords:i}),children:(0,cg.jsxs)(cn,{component:ks,to:"/updates","aria-label":o?`Updates: ${o} node${o>1?"s have":" has"} an update ready`:"Updates",sx:ukr(o>0),children:[o>0&&(0,cg.jsx)("span",{className:"ready-dot","aria-hidden":!0}),(0,cg.jsxs)("span",{children:["v",F_]}),o>0&&(0,cg.jsxs)("span",{className:"ready-count",children:[o," ready"]})]})}),(0,cg.jsx)(ckr,{})]})}var Pve=E($(),1);function hkr({socket:e}){return(0,Pve.jsx)(Dwr,{start:(0,Pve.jsx)(lkr,{rateLimits:e.rateLimits,harnessRateLimits:e.harnessRateLimits}),end:(0,Pve.jsx)(dkr,{})})}var Nve=E(fe(),1);var Dve=E(fe(),1);function pkr(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 $_=E($(),1),Iii={display:"flex",gap:1,alignItems:"center",minWidth:0},Dii={display:"flex",gap:1,alignItems:"baseline",minWidth:0,overflow:"hidden"},Nii={fontFamily:"fontFamilyMono",fontSize:13,whiteSpace:"nowrap"},Oii={fontFamily:"fontFamilyMono",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function Bii(e){let t=e.lastIndexOf("/");return t===-1?{dir:"",basename:e}:{dir:e.slice(0,t),basename:e.slice(t+1)}}function mkr({files:e,highlight:t,onHighlight:r,onSelect:n}){return(0,$_.jsx)(Hp,{dense:!0,sx:{py:0},children:e.map((i,o)=>{let{dir:a,basename:s}=Bii(i);return(0,$_.jsxs)(hn,{selected:o===t,onMouseEnter:()=>r(o),onClick:()=>n(i),sx:Iii,children:[(0,$_.jsx)(xge,{path:i}),(0,$_.jsxs)(J,{sx:Dii,children:[(0,$_.jsx)(Le,{component:"span",sx:Nii,children:s}),(0,$_.jsx)(Le,{component:"span",color:"text.secondary",sx:Oii,children:a})]})]},i)})})}var Lve=E($(),1),Fii={maxHeight:420,overflowY:"auto"},$ii={px:2,py:2,fontSize:13};function gkr({message:e,files:t,highlight:r,onHighlight:n,onSelect:i}){return(0,Lve.jsx)(J,{sx:Fii,children:e?(0,Lve.jsx)(Le,{color:"text.secondary",sx:$ii,children:e}):(0,Lve.jsx)(mkr,{files:t,highlight:r,onHighlight:n,onSelect:i})})}var ykr=E($(),1),zii={mt:6,alignSelf:"flex-start"};function Mve({onClose:e,onEntered:t,centered:r=!1,children:n}){return(0,ykr.jsx)(ql,{open:!0,onClose:e,maxWidth:"sm",fullWidth:!0,slotProps:{paper:{sx:r?void 0:zii},transition:{onEntered:t}},children:n})}var Ive=E(fe(),1);var vkr={files:[],loading:!1,error:!1};function bkr(e,t){let[r,n]=(0,Ive.useState)(vkr),i=vr();return(0,Ive.useEffect)(()=>{if(!e){n(vkr);return}let o=!1;return n(s=>({...s,loading:!0})),(async()=>{try{let s=await hr(Yr(`/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 t6=E($(),1);function Hii(e,t,r){let n=new URLSearchParams({path:e});return t&&n.set("cwd",t),t&&r&&n.set("node",r),`/file?${n}`}function xkr({onClose:e}){let{worktreeNode:t}=$n();return(0,t6.jsx)(yf.Provider,{value:t,children:(0,t6.jsx)(Uii,{onClose:e})})}function Uii({onClose:e}){let{worktreeCwd:t,worktreeNode:r}=$n(),[n,i]=(0,Dve.useState)(""),o=bkr(t,n),a=Bi(),s=(0,Dve.useRef)(null),l=p=>a(Hii(p,t,r)),{highlight:u,setHighlight:f,onKeyDown:d}=__(o.files,n,l,e),h=p=>{l(p),e()};return(0,t6.jsxs)(Mve,{onClose:e,onEntered:()=>s.current?.focus(),children:[(0,t6.jsx)(ET,{autoFocus:!0,inputRef:s,value:n,onChange:i,onKeyDown:d,placeholder:"Search files by name..."}),(0,t6.jsx)(gkr,{message:pkr(t,n,o),files:o.files,highlight:u,onHighlight:f,onSelect:h})]})}function Skr(e){Ao(Kn("quickOpen").matches,e)}var Ckr=E($(),1);function Tkr(){let[e,t]=(0,Nve.useState)(!1);return Skr((0,Nve.useCallback)(()=>t(!0),[])),e?(0,Ckr.jsx)(xkr,{onClose:()=>t(!1)}):null}var Ove=E($(),1);function wkr({notice:e,onClose:t,onView:r}){let n=e?.sessionId??null;return(0,Ove.jsx)(Oh,{open:e!==null,autoHideDuration:6e3,onClose:t,children:(0,Ove.jsx)(xi,{severity:"success",variant:"filled",onClose:t,action:n!==null?(0,Ove.jsx)(Mt,{color:"inherit",size:"small",onClick:()=>r(n),children:"View"}):void 0,children:e?.message})})}var VX=E(fe(),1);function kkr(e){let t=["claude"];return e.exposeCodexActions&&t.push("codex"),e.exposePiActions&&t.push("pi"),t}var Fkr=E(fe(),1);var _kr=E($(),1),Ekr=ct((0,_kr.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 Wii={connected:"success.main",connecting:"warning.main",disconnected:"error.main","version-blocked":"error.main"};function Rkr(e){return e?Wii[e]:"success.main"}function Akr(e){return e.split("-")[0].split(".").map(Number)}function Pkr(e,t){if(!e||!t||e===t)return;let r=Akr(e),n=Akr(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 r6=E($(),1),Gii={height:16,fontSize:10},Vii={opacity:.6,fontSize:"0.85em"};function qii(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 WX({nodes:e,name:t,showVersion:r=!1}){let n=Ave()??F_,i=e.links.find(a=>a.name===t),o=Pkr(i?.peerVersion,n);return(0,r6.jsx)(sr,{title:qii(e,t),placement:"right",children:(0,r6.jsxs)(J,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.75},children:[(0,r6.jsx)(Ekr,{sx:{fontSize:8,color:Rkr(i?.state)}}),t,r&&i?.peerVersion&&(0,r6.jsxs)(J,{component:"span",sx:Vii,children:["v",i.peerVersion]}),o&&(0,r6.jsx)(Hn,{label:o,size:"small",color:o==="behind"?"warning":"info",sx:Gii})]})})}var n6=E($(),1),jii={opacity:.6},Yii={display:"inline-flex",alignItems:"center",gap:.5,px:.5,border:1,borderStyle:"dashed",borderRadius:1};function Lkr({nodes:e,name:t,clone:r}){let n=(0,n6.jsx)(WX,{nodes:e,name:t});return r.kind==="cloned"?n:r.kind==="unavailable"?(0,n6.jsx)(J,{component:"span",sx:jii,children:n}):(0,n6.jsx)(sr,{title:o$(t,r.cloneTarget),children:(0,n6.jsxs)(J,{component:"span",sx:Yii,children:[(0,n6.jsx)(i$,{sx:{fontSize:14}}),n]})})}var Ikr=E($(),1),Kii={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 Mkr({value:e,label:t,checked:r,autoFocus:n,onSelect:i}){return(0,Ikr.jsx)(cn,{role:"radio","aria-checked":r,"data-value":e,tabIndex:r?0:-1,autoFocus:n&&r,onClick:i,sx:Kii,children:t})}var Dkr={ArrowRight:1,ArrowLeft:-1};function Xii(e,t,r){if(e.key==="Tab"){let n=t+(e.shiftKey?-1:1);return n>=0&&n<r?n:void 0}return(t+Dkr[e.key]+r)%r}function Nkr(e,t,r,n){return i=>{if(i.key==="ArrowUp"||i.key==="ArrowDown"){if(!n)return;i.preventDefault(),n();return}if(i.key!=="Tab"&&!Dkr[i.key]){O2(i);return}let o=Xii(i,e.indexOf(t),e.length);o!==void 0&&(i.preventDefault(),r(e[o]),i.currentTarget.querySelector(`[data-value="${e[o]}"]`)?.focus())}}var Okr=E(fe(),1);function S$(e){return e?.querySelector('[aria-checked="true"]')}function Bkr(e,t){(0,Okr.useEffect)(()=>{let r=e.current;if(!r?.contains(document.activeElement))return;let n=S$(r);n&&n!==document.activeElement&&n.focus()},[e,t])}var FGe=E($(),1),Zii={border:1,borderColor:"divider",borderRadius:1,height:40,p:"2px",flexShrink:0};function Bve({label:e,options:t,value:r,onChange:n,optionLabel:i=u=>u,groupRef:o,autoFocus:a,onTrack:s,onToggleRow:l}){return Bkr(o,r),(0,FGe.jsx)(Et,{ref:o,direction:"row",role:"radiogroup","aria-label":e,spacing:"2px",onFocus:s,onKeyDown:Nkr(t,r,n,l),sx:Zii,children:t.map(u=>(0,FGe.jsx)(Mkr,{value:u,label:i(u),checked:u===r,autoFocus:a,onSelect:()=>n(u)},u))})}var $Ge=E($(),1);function $kr({value:e,onChange:t,cloneState:r}){let{nodes:n,names:i,visible:o}=Ac(),a=(0,Fkr.useRef)(null);return!o||!n||!e?null:(0,$Ge.jsx)(Bve,{label:"Machine",options:i,value:e,onChange:t,optionLabel:s=>(0,$Ge.jsx)(Lkr,{nodes:n,name:s,clone:r(s)}),groupRef:a,autoFocus:!1,onTrack:()=>{}})}var Fve=E($(),1);function zkr({prompt:e,children:t}){return(0,Fve.jsxs)(Et,{children:[e,(0,Fve.jsx)(Et,{spacing:1,sx:{px:1.5,pb:1.5},children:t})]})}var Ukr=E($(),1),Qii=".MuiOutlinedInput-notchedOutline",Jii={"& .MuiOutlinedInput-root":{px:"18px",py:2,minHeight:92,alignItems:"flex-start",bgcolor:"transparent",borderRadius:0,fontSize:15},[`&&& ${Qii}`]:{border:0},"& textarea::placeholder":{color:"text.disabled",opacity:1}};function Hkr({value:e,onChange:t,placeholder:r,inputRef:n,autoFocus:i,onTrack:o}){return(0,Ukr.jsx)(Yn,{sx:Jii,value:e,onChange:a=>t(a.target.value),onKeyDown:O2,onFocus:o,onSelect:o,inputRef:n,placeholder:r,autoFocus:i,fullWidth:!0,multiline:!0,minRows:3,maxRows:12,slotProps:{htmlInput:{"aria-label":"Prompt"}}})}var qkr=E(fe(),1);var SS={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:v0e,submitLabel:"Start session"},design:{placeholder:"Describe the design task...",submitLabel:"Start design"}},Wkr=Object.keys(SS);var zGe=E($(),1);function Gkr({anchor:e,harness:t,harnesses:r,onPick:n,onClose:i}){return(0,zGe.jsx)(Bs,{open:e!==null,anchorEl:e,onClose:i,slotProps:{list:{dense:!0,"aria-label":"Harness"}},children:r.map(o=>(0,zGe.jsx)(hn,{role:"menuitemradio","aria-checked":o===t,selected:o===t,onClick:()=>{n(o),i()},sx:{fontSize:13},children:Du(o)},o))})}var i6=E($(),1);function Vkr(e){return t=>t==="prompt"&&e?(0,i6.jsxs)(i6.Fragment,{children:["prompt",(0,i6.jsx)(J,{component:"span",sx:{fontWeight:400,whiteSpace:"pre"},children:` \xB7 ${Du(e)}`}),(0,i6.jsx)(xd,{sx:{fontSize:18,mr:-.75}})]}):t}var o6=E($(),1);function jkr({draft:e,harness:t,harnesses:r,focus:n}){let[i,o]=(0,qkr.useState)(null),a=e.mode==="prompt"&&r.length>1,s=()=>o(S$(n.modeRef.current)??null),l=u=>{a&&u==="prompt"?s():e.setMode(u)};return(0,o6.jsxs)(o6.Fragment,{children:[(0,o6.jsx)(Bve,{label:"Mode",options:Wkr,value:e.mode,onChange:l,optionLabel:Vkr(r.length>1?t:void 0),groupRef:n.modeRef,autoFocus:n.autoFocus==="mode",onTrack:n.trackMode,onToggleRow:a?s:void 0}),(0,o6.jsx)(Gkr,{anchor:i,harness:t,harnesses:r,onPick:e.setHarness,onClose:()=>o(null)})]})}var a_r=E(fe(),1);var HGe=E($(),1),eoi={zIndex:e=>e.zIndex.modal+1};function Ykr({open:e,anchor:t,children:r}){return(0,HGe.jsx)(mP,{open:e,anchorEl:t,placement:"bottom-start",sx:eoi,children:(0,HGe.jsx)(nn,{sx:{maxHeight:240,overflowY:"auto",width:t?.clientWidth},onMouseDown:n=>n.preventDefault(),children:r})})}var Kkr=E($(),1),Xkr=ct((0,Kkr.jsx)("path",{d:"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z"}),"KeyboardArrowDown");var UGe=E($(),1),toi={fontSize:13,height:36,pr:1,cursor:"pointer","& input":{cursor:"text"}},roi={fontSize:16,color:"text.disabled"};function Zkr(e){return{htmlInput:{role:"combobox","aria-label":"Repo","aria-expanded":e},input:{sx:toi,endAdornment:(0,UGe.jsx)(R2e,{position:"end",children:(0,UGe.jsx)(Xkr,{sx:roi})})}}}var Qkr=E(eP(),1);function Jkr({open:e,highlighted:t,accept:r,close:n,navigate:i,openList:o}){return a=>{if(!e){if(a.key==="ArrowDown"){a.preventDefault(),o();return}O2(a);return}if(a.key!=="Escape"){if(a.key==="Enter"){if(a.preventDefault(),t===void 0)return;(0,Qkr.flushSync)(()=>{r(t),n()}),O2(a);return}if(a.key!=="Tab"){i(a);return}t!==void 0&&r(t),n()}}}function e_r(e,t){let r=t.trim().toLowerCase();return r?e.filter(n=>bv(n).toLowerCase().includes(r)):e}var WGe=E(fe(),1);function t_r(){let[e,t]=(0,WGe.useState)(!1),[r,n]=(0,WGe.useState)("");return{open:e,query:r,show:()=>t(!0),filterBy:i=>{n(i),t(!0)},close:()=>{t(!1),n("")}}}var n_r=E(fe(),1);var r_r=e=>e?bv(e):"";function i_r(e){let[t,r]=(0,n_r.useState)(()=>r_r(e));return{text:t,setText:r,showRepo:n=>r(r_r(n))}}function o_r(e,t,r){let n=t_r(),i=i_r(t),o=e_r(e,n.query),a=f=>{r(f),i.showRepo(f)},s=__(o,n.query,a,n.close),l=()=>s.setHighlight(Math.max(e.indexOf(t),0)),u=()=>{l(),n.show()};return{open:n.open,text:i.text,filtered:o,highlight:s.highlight,setHighlight:s.setHighlight,onKeyDown:Jkr({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 T$=E($(),1);function s_r({repos:e,value:t,onChange:r,inputRef:n,autoFocus:i,onTrack:o}){let a=o_r(e,t,r),s=(0,a_r.useRef)(null);return(0,T$.jsxs)(J,{ref:s,sx:{flex:1,minWidth:0},children:[(0,T$.jsx)(Yn,{value:a.text,onChange:l=>a.onType(l.target.value),onFocus:l=>{l.target.select(),a.onFocus(),o()},inputRef:n,autoFocus:i,onClick:a.onClick,onBlur:a.onBlur,onKeyDown:a.onKeyDown,placeholder:"Repo",size:"small",fullWidth:!0,slotProps:Zkr(a.open)}),(0,T$.jsx)(Ykr,{open:a.open,anchor:s.current,children:(0,T$.jsx)(fve,{repos:a.filtered,selected:t,highlight:a.highlight,onHighlight:a.setHighlight,onSelect:a.pick})})]})}var z_=E($(),1);function l_r({cloneState:e,...t}){let{draft:r,focus:n}=t,{repos:i}=$n();return(0,z_.jsxs)(zkr,{prompt:(0,z_.jsx)(Hkr,{value:r.prompt,onChange:r.setPrompt,placeholder:SS[r.mode].placeholder,inputRef:n.promptRef,autoFocus:n.autoFocus==="prompt",onTrack:n.trackPrompt}),children:[(0,z_.jsxs)(Et,{direction:"row",spacing:1,sx:{alignItems:"flex-start"},children:[(0,z_.jsx)(s_r,{repos:i,value:r.cwd,onChange:r.setCwd,inputRef:n.repoRef,autoFocus:n.autoFocus==="repo",onTrack:n.trackRepo}),(0,z_.jsx)(jkr,{...t})]}),(0,z_.jsx)($kr,{value:r.node,onChange:r.setNode,cloneState:e})]})}var f_r=E($(),1),c_r=[["Enter","start"],["Shift+Enter","newline"],["Esc","close"]];function u_r({submitLabel:e,disabled:t=!1,loading:r=!1}){return(0,f_r.jsx)(Mt,{type:"submit",variant:"contained",disabled:t,loading:r,children:e})}var a6=E($(),1),noi=e=>({alignItems:"center",flexWrap:"wrap",gap:"14px",py:"10px",pl:"18px",pr:1.5,borderTop:1,borderColor:e.tokens.color.lineSoft,bgcolor:"background.default",fontSize:12,color:"text.secondary"}),ioi=e=>({mr:.5,px:"5px",border:1,borderColor:"divider",borderRadius:"4px",fontFamily:e.typography.fontFamilyMono,fontSize:10.5,color:"text.primary"});function d_r(e){return(0,a6.jsxs)(Et,{direction:"row",sx:noi,children:[c_r.map(([t,r])=>(0,a6.jsxs)("span",{children:[(0,a6.jsx)(J,{component:"kbd",sx:ioi,children:t}),r]},t)),(0,a6.jsx)(J,{sx:{flex:1}}),(0,a6.jsx)(u_r,{...e})]})}var s6=E(fe(),1);function h_r(e,t){let r=(0,s6.useRef)(e),n=(0,s6.useRef)(null),i=(0,s6.useRef)(null),o=(0,s6.useRef)(null),a=(0,s6.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:S$(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 ooi(e,t,r){return e?r.kind==="cloned"?{kind:"launch",cwd:r.cwd}:r.kind==="clonable"?{kind:"clone",prompt:hve(r,t)}:{kind:"blocked"}:{kind:"launch",cwd:e}}function p_r(e,t){let{names:r,visible:n}=Ac(),i=lve(t,n?r:[void 0]);return{cloneState:i,target:ooi(t,e,i(e))}}function m_r({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}]:[];ldr(SS[e].sessionMode,n,(u,f)=>o.onCreateAssist(u,f,...l),()=>{},r)}function g_r(e,t,r,n){return r.kind==="blocked"||e.modePending?!1:r.kind==="clone"?(eve(r.prompt,n.onCreateAssist),!0):(m_r({mode:e.mode,harness:t,prompt:e.prompt,cwd:r.cwd,node:e.node},n),e.clear(),!0)}var $ve=E(fe(),1);function y_r(e,t){let[r,n]=(0,$ve.useState)(!1);return(0,$ve.useEffect)(()=>{!r||e.modePending||(n(!1),t())},[r,e.modePending,t]),()=>{e.modePending?n(!0):t()}}function v_r(e,t,r,n,i){let o=y_r(e,()=>{g_r(e,t,r,n)&&i()});return a=>{a.preventDefault(),o()}}var GX=E(fe(),1);function b_r(e,t){let r=(0,GX.useRef)(e),n=(0,GX.useRef)(null);return(0,GX.useEffect)(()=>{if(r.current&&!e){let i=n.current;i?.isConnected?i.focus():t()}r.current=e},[e,t]),i=>{n.current=i.target}}var S_r=E($(),1),aoi={border:0,margin:0,padding:0,minWidth:0};function x_r({loading:e,restoreFocus:t,children:r}){let n=b_r(e,t);return(0,S_r.jsx)("fieldset",{disabled:e,style:aoi,onFocus:n,children:r})}var l6=E($(),1);function T_r({draft:e,launchers:t,onClose:r}){let n=h_r(e.focus,e.setFocus),i=kkr(S_()),o=i.includes(e.harness)?e.harness:"claude",{target:a,cloneState:s}=p_r(e.node,e.cwd),l=v_r(e,o,a,t,r);return(0,l6.jsx)(Mve,{onClose:r,onEntered:n.restore,centered:!0,children:(0,l6.jsx)("form",{onSubmit:l,children:(0,l6.jsxs)(x_r,{loading:e.modePending,restoreFocus:n.restore,children:[(0,l6.jsx)(l_r,{draft:e,harness:o,harnesses:i,focus:n,cloneState:s}),(0,l6.jsx)(d_r,{submitLabel:a.kind==="clone"?"Clone":SS[e.mode].submitLabel,disabled:a.kind==="blocked",loading:e.modePending})]})})})}var zve=E(fe(),1);var soi=1e3;async function loi(e){try{let t=e?`?cwd=${encodeURIComponent(e)}`:"",n=await(await hr(`/api/new-session-defaults${t}`)).json();return Object.hasOwn(SS,n?.mode)?n.mode:null}catch{return null}}function C_r(e,t=0){let[r,n]=(0,zve.useState)(null);return(0,zve.useEffect)(()=>{let i=!1,o,a=async()=>{let s=await loi(e);i||(s?n({cwd:e,opens:t,mode:s}):o=setTimeout(a,soi))};return a(),()=>{i=!0,clearTimeout(o)}},[e,t]),r?{mode:r.mode,pending:r.cwd!==e||r.opens!==t}:null}function w_r(e,{visible:t,names:r,selected:n}){if(t)return e&&r.includes(e)?e:n}var TS=E(fe(),1),k_r={field:"prompt",selectionStart:0,selectionEnd:0};function __r(){let[e,t]=(0,TS.useState)(""),[r,n]=(0,TS.useState)(),[i,o]=(0,TS.useState)(),[a,s]=(0,TS.useState)("claude"),[l,u]=(0,TS.useState)(),[f,d]=(0,TS.useState)(k_r),h=(0,TS.useCallback)(()=>{t(""),n(void 0),o(void 0),u(void 0),d(k_r)},[]);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 E_r(e,t=C_r){let{selectedCwd:r}=$n(),n=Ac(),i=__r(),o=i.cwd??r,a=t(o,e);return a?{...i,cwd:o,mode:i.mode??a.mode,modePending:i.mode===void 0&&a.pending,node:w_r(i.node,n)}:null}function R_r(e){Ao(Kn("newSession").matches,e)}var A_r=E(fe(),1);function P_r(e,t){let{selectedCwd:r}=$n(),[n,i]=Vc(),o=n.get("new"),a=n.get("newCwd")??r,{setPrompt:s,setCwd:l,setFocus:u}=e??{};(0,A_r.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 M_r=E($(),1);function L_r({launchers:e}){let[t,r]=(0,VX.useState)(!1),[n,i]=(0,VX.useState)(0),o=E_r(n),a=(0,VX.useCallback)(()=>{r(!0),i(s=>s+1)},[]);return R_r(a),P_r(o,a),!t||!o?null:(0,M_r.jsx)(T_r,{draft:o,launchers:e,onClose:()=>r(!1)})}var Hve=E($(),1);function I_r({reconnecting:e}){return(0,Hve.jsx)(Oh,{open:e,children:(0,Hve.jsx)(xi,{severity:"info",variant:"filled",icon:(0,Hve.jsx)(ao,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var Av=E($(),1);function D_r({socket:e,onViewLaunchedSession:t}){return(0,Av.jsxs)(Av.Fragment,{children:[(0,Av.jsx)(Tkr,{}),(0,Av.jsx)(L_r,{launchers:{onCreate:e.createSession,onCreateDesign:e.createDesignSession,onCreateHarness:e.createHarnessSession,onCreateAssist:e.createAssistSession}}),(0,Av.jsx)(I_r,{reconnecting:e.reconnecting}),(0,Av.jsx)(ec,{error:e.error,onClose:e.clearError}),(0,Av.jsx)(wkr,{notice:e.success,onClose:e.clearSuccess,onView:t})]})}var Pv=E(fe(),1);var coi=6e4;function uoi(e,t,r){return t.map(n=>e.find(i=>i.name===n)??{name:n,local:n===r,loading:!0})}function N_r(e){let t=e.nodes?.local,r=e.names.join(`
|
|
4023
4023
|
`),[n,i]=(0,Pv.useState)([]),o=(0,Pv.useRef)(0),a=(0,Pv.useCallback)(()=>{let l=r?r.split(`
|
|
4024
|
-
`):[];if(l.length===0)return;let u=++o.current;i(f=>uoi(f,l,t));for(let f of l)M1e(f,f===t).then(d=>{u===o.current&&i(h=>h.map(p=>p.name===f?d:p))})},[r,t]);(0,Pv.useEffect)(()=>{a();let l=setInterval(a,coi);return()=>clearInterval(l)},[a]);let s=n.length===0;return(0,Pv.useMemo)(()=>({entries:n,loading:s,refresh:a}),[n,s,a])}var H_=E($(),1);function O_r({shell:e,children:t}){let{socket:r,selection:n,launch:i,sidebarCollapse:o}=e,a=N_r(r.nodeSelection);return(0,H_.jsx)(tGe.Provider,{value:a,children:(0,H_.jsx)(Xwe.Provider,{value:o,children:(0,H_.jsx)(CU.Provider,{value:n,children:(0,H_.jsx)(xGe.Provider,{value:r.nodeSelection,children:(0,H_.jsx)(yf.Provider,{value:n.selectedNode,children:(0,H_.jsx)(zze.Provider,{value:i,children:(0,H_.jsx)(tot,{children:t})})})})})})})}var B_r=E($(),1),F_r=ct((0,B_r.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 $_r=E(fe(),1);var O0=E($(),1),foi={ml:1,textTransform:"none",fontSize:12};function z_r(){let{nodes:e,names:t,visible:r,selected:n,select:i}=Ac(),[o,a]=(0,$_r.useState)(null);return!r||!e||!n?null:(0,O0.jsxs)(O0.Fragment,{children:[(0,O0.jsx)(Mt,{size:"small",color:"inherit",startIcon:(0,O0.jsx)(F_r,{fontSize:"small"}),"aria-label":"Machine","aria-haspopup":"menu",onClick:s=>a(s.currentTarget),sx:foi,children:(0,O0.jsx)(WX,{nodes:e,name:n})}),(0,O0.jsx)(Bs,{anchorEl:o,open:!!o,onClose:()=>a(null),children:t.map(s=>(0,O0.jsx)(hn,{selected:s===n,onClick:()=>{i(s),a(null)},sx:{fontSize:13},children:(0,O0.jsx)(WX,{nodes:e,name:s,showVersion:!0})},s))})]})}var qX=E(fe(),1);function H_r(e,t){return[...e[0].slice(0,-1),String(t+1)]}var c6=E($(),1),doi=[Zl("secondary"),{ml:.75}];function U_r({index:e,label:t,count:r,...n}){let{chords:i}=Kn("navTab");return(0,c6.jsx)(sr,{describeChild:!0,title:(0,c6.jsx)(Ou,{label:t,chords:[H_r(i,e)]}),children:(0,c6.jsx)(rb,{label:r?(0,c6.jsxs)("span",{children:[t,(0,c6.jsx)(J,{component:"span",sx:doi,children:r})]}):t,...n})})}var W_r=E(fe(),1);var hoi=6e4;function G_r(){let e=wge();return(0,W_r.useEffect)(()=>{_2.refresh();let t=setInterval(()=>{_2.refresh()},hoi);return()=>clearInterval(t)},[]),e?.length??0}var GGe=E(fe(),1);function V_r(e,t){let{bound:r}=Kn("navTab"),n=e.length,i=(0,GGe.useCallback)(a=>(IU(a,r)??n)<n,[r,n]),o=(0,GGe.useCallback)(a=>{let s=e[IU(a,r)??-1];s&&t(s)},[e,t,r]);Ao(i,o)}var Uve=E(fe(),1);function q_r(){let[e,t]=(0,Uve.useState)(!1);return(0,Uve.useEffect)(()=>{let r=!1;return(async()=>{try{let i=await(await hr("/api/news/nav")).json();r||t(i?.showInNav===!0)}catch{r||t(!1)}})(),()=>{r=!0}},[]),e}var Wve=E(fe(),1);async function poi(e,t){let r=await hr(Yr(`/api/releases/configured?cwd=${encodeURIComponent(e)}`,t));return r.ok?(await r.json())?.configured===!0:void 0}function j_r(e){let[t,r]=(0,Wve.useState)(null),n=vr(),i=`${n??""}\0${e}`;return(0,Wve.useEffect)(()=>{if(!e)return;let o=!1;return poi(e,n).catch(()=>{}).then(a=>{o||r({key:i,configured:a})}),()=>{o=!0}},[e,n,i]),t?.key===i?t.configured:void 0}var Y_r=E(fe(),1);function K_r(e){let{pathname:t}=Go(),r=Bi(),n=t==="/releases"||t.startsWith("/releases/");(0,Y_r.useEffect)(()=>{e===!1&&n&&r("/sessions",{replace:!0})},[e,n,r])}var moi={path:"/sessions",label:"Sessions"},goi={path:"/backlog",label:"Backlog"},yoi={path:"/next",label:"Next"},voi={path:"/releases",label:"Releases"},boi={path:"/news",label:"News"},xoi={path:"/inbox",label:"Inbox"};function X_r(e,t){return[moi,goi,yoi,...e?[voi]:[],...t?[boi]:[],xoi]}var VGe=E($(),1),Soi={mx:"6px"};function Z_r({cwd:e}){let t=Go(),r=Bi(),n=j_r(e),i=q_r(),o=G_r();K_r(n);let a=n===!0,s=(0,qX.useMemo)(()=>X_r(a,i),[a,i]),l=(0,qX.useMemo)(()=>s.map(d=>d.path),[s]),u=s.findIndex(d=>t.pathname.startsWith(d.path)),f=(0,qX.useCallback)(d=>{t.pathname!==d&&r(d)},[t.pathname,r]);return V_r(l,f),(0,VGe.jsx)(U5,{sx:Soi,value:u===-1?!1:u,textColor:"inherit",indicatorColor:"secondary",children:s.map((d,h)=>(0,VGe.jsx)(U_r,{index:h,label:d.label,count:d.path==="/inbox"?o:void 0,onClick:()=>f(d.path)},d.path))})}var jX=E($(),1),Q_r=(e,t)=>({bgcolor:e,color:t,"& .MuiSvgIcon-root":{color:t},transition:"filter 0.2s ease, transform 0.2s ease","&:hover":{bgcolor:e,color:t,filter:"brightness(1.08)"},"&:active":{transform:"translateY(1px)"}}),Toi=e=>({ml:.75,...e.tokens.color.appBar?Q_r("primary.main","primary.contrastText"):Q_r("primary.contrastText","primary.main")});function J_r(){let[,e]=Vc(),{label:t,chords:r}=Kn("newSession");return(0,jX.jsx)(sr,{title:(0,jX.jsx)(Ou,{label:t,chords:r}),children:(0,jX.jsx)(er,{sx:Toi,"aria-label":"New session",onClick:()=>e(i=>(i.set("new",""),i),{replace:!0}),children:(0,jX.jsx)(HT,{})})})}var Gve=E(fe(),1);var YX=E($(),1),Coi={strokeWidth:2};function e5r(e){return(0,YX.jsxs)(S0e,{viewBox:"0 0 24 24",sx:Coi,...e,children:[(0,YX.jsx)("path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 3.5c-.3 1.15-.3 2.35 0 3.5A5.4 5.4 0 0 0 4 10.5c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"}),(0,YX.jsx)("path",{d:"M9 18c-4.51 2-5-2-7-2"})]})}var KX=E($(),1);function t5r({cwd:e}){let[t,r]=(0,Gve.useState)(null),n=vr();return(0,Gve.useEffect)(()=>{if(!e){r(null);return}let i=!1;return(async()=>{try{let a=await(await hr(Yr(`/api/github-url?cwd=${encodeURIComponent(e)}`,n))).json();i||r(a?.url??null)}catch{i||r(null)}})(),()=>{i=!0}},[e,n]),t?(0,KX.jsx)(sr,{title:"Open in GitHub",children:(0,KX.jsx)(J,{component:"span",sx:T0e,children:(0,KX.jsx)(er,{onClick:()=>window.open(t,"_blank"),children:(0,KX.jsx)(e5r,{})})})}):null}var B0=E($(),1),woi={color:"inherit",mr:1.5};function r5r({reconnecting:e}){let{pending:t,error:r,clearError:n,restart:i}=v_("webserver",e);return(0,B0.jsxs)(B0.Fragment,{children:[(0,B0.jsx)(sr,{title:"Restart web server",children:(0,B0.jsx)("span",{children:(0,B0.jsx)(er,{sx:woi,disabled:t,onClick:i,children:t?(0,B0.jsx)(ao,{size:24}):(0,B0.jsx)(P1e,{})})})}),(0,B0.jsx)(ec,{error:r,onClose:n})]})}var o5r=E(fe(),1);var n5r=E(fe(),1);function i5r(e){let t=Qn().palette.primary.main;Ao(Kn("focusRepoPicker").matches,(0,n5r.useCallback)(()=>Ql({locate:()=>e.current?.querySelector("button")??null,focus:r=>r.focus()},t),[e,t]))}var XX=E($(),1),koi={width:240,ml:2};function a5r({repos:e,selected:t,onSelect:r}){let n=(0,o5r.useRef)(null);i5r(n);let{chords:i}=Kn("focusRepoPicker");return(0,XX.jsx)(J,{ref:n,sx:koi,children:(0,XX.jsx)(b0e,{label:t?bv(t):"Select repo...",tooltip:(0,XX.jsx)(Ou,{label:"Repo",chords:i}),typeToOpen:!0,children:(o,a)=>(0,XX.jsx)(_Tr,{repos:e,selected:t,onSelect:r,close:o,initialFilter:a})})})}var g5r=E(fe(),1);var ZX=E(fe(),1);function Vve(e){let[t,r]=(0,ZX.useState)([]),[n,i]=(0,ZX.useState)(!0),o=vr();return(0,ZX.useEffect)(()=>{if(!e){r([]),i(!1);return}let a=!1;return i(!0),hr(Yr(`/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 qGe=E($(),1);function jGe({text:e}){return(0,qGe.jsx)(J,{sx:{p:1.5},children:(0,qGe.jsx)(Le,{sx:{fontSize:13,color:"text.secondary"},children:e})})}var u6=E($(),1);function s5r({pr:e,highlighted:t,onHover:r,onPick:n}){let i=uve(t);return(0,u6.jsx)(hn,{ref:i,selected:t,onMouseDown:o=>o.preventDefault(),onMouseEnter:r,onClick:()=>n(e),sx:{alignItems:"flex-start",py:.75,whiteSpace:"normal"},children:(0,u6.jsxs)(Et,{spacing:.25,sx:{minWidth:0},children:[(0,u6.jsxs)(Le,{sx:{fontSize:13,lineHeight:1.3,fontWeight:500},children:[e.title,e.isDraft&&(0,u6.jsx)(Hn,{label:"Draft",size:"small",variant:"outlined",sx:{ml:.75,height:18,fontSize:10,verticalAlign:"middle"}})]}),(0,u6.jsxs)(Le,{sx:{fontSize:11,color:"text.secondary"},children:["#",e.number," \xB7 ",e.author," \xB7 ",lo(e.createdAt)]})]})})}var YGe=E($(),1);function l5r({prs:e,highlight:t,onHighlight:r,onPick:n}){return(0,YGe.jsx)(Hp,{dense:!0,disablePadding:!0,sx:{maxHeight:200,overflowY:"auto"},children:e.map((i,o)=>(0,YGe.jsx)(s5r,{pr:i,highlighted:o===t,onHover:()=>r(o),onPick:n},i.number))})}var u5r=E(fe(),1);function c5r(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 f5r(e,t,r){let[n,i]=(0,u5r.useState)(""),o=c5r(e,n),{highlight:a,setHighlight:s,onKeyDown:l}=__(o,n,t,r);return{filter:n,setFilter:i,filtered:o,highlight:a,setHighlight:s,onKeyDown:l,select:f=>{t(f),r()}}}var U_=E($(),1),d5r={...KB,left:"auto",width:320,maxHeight:"none",overflowY:"visible"};function h5r({cwd:e,onPick:t,close:r}){let{prs:n,loading:i}=Vve(e),o=f5r(n,t,r);return i||n.length===0?(0,U_.jsx)(nn,{elevation:4,sx:d5r,children:(0,U_.jsx)(jGe,{text:i?"Loading open PRs\u2026":"No open PRs"})}):(0,U_.jsxs)(nn,{elevation:4,sx:d5r,children:[(0,U_.jsx)(ET,{autoFocus:!0,value:o.filter,onChange:o.setFilter,onKeyDown:o.onKeyDown,placeholder:"Filter PRs..."}),o.filtered.length===0?(0,U_.jsx)(jGe,{text:"No PRs match"}):(0,U_.jsx)(l5r,{prs:o.filtered,highlight:o.highlight,onHighlight:o.setHighlight,onPick:o.select})]})}var m5r=E($(),1);function p5r({cwd:e,onPick:t,close:r}){return(0,m5r.jsx)(h5r,{cwd:e,onPick:t,close:r})}var W_=E($(),1);function y5r({cwd:e,disabled:t,onSelect:r}){let{prs:n,loading:i}=Vve(e),[o,a]=(0,g5r.useState)(null);return i||n.length===0?null:(0,W_.jsxs)(W_.Fragment,{children:[(0,W_.jsx)(b0e,{label:"prs",disabled:t,children:s=>(0,W_.jsx)(p5r,{cwd:e,onPick:a,close:s})}),o&&(0,W_.jsx)(Yge,{pr:o,onSelect:s=>{r(o,s),a(null)},onCancel:()=>a(null)})]})}var b5r=E($(),1);function v5r({onStartRun:e,cwd:t}){let r=p0e(t);return!t||r.length===0?null:(0,b5r.jsx)(d0e,{runs:r,onSelect:n=>e(n,t)})}var QX=E($(),1);function x5r({onCreateAssist:e,onStartRun:t}){let{selectedCwd:r,selectedNode:n}=$n();return(0,QX.jsxs)(Et,{direction:"row",spacing:.5,sx:{alignItems:"center","&:not(:empty)":{ml:1.5}},children:[(0,QX.jsx)(y5r,{cwd:r,disabled:!r,onSelect:(i,o)=>e([...o,String(i.number)],r,{...IB(i),node:n})}),(0,QX.jsx)(v5r,{onStartRun:(i,o)=>t(i,o,void 0,void 0,n),cwd:r})]})}var ch=E($(),1),_oi={minHeight:48,pl:1,pr:14},Eoi={flex:1,minWidth:0,display:"flex",alignItems:"center",overflowX:"auto",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}};function S5r({socket:e,selection:t}){let{collapsed:r,onToggleCollapsed:n}=zT();return(0,ch.jsx)(H5,{variant:"dense",disableGutters:!0,sx:_oi,children:(0,ch.jsxs)(J,{sx:Eoi,children:[r&&(0,ch.jsx)(Xre,{collapsed:r,onToggleCollapsed:n}),(0,ch.jsx)(r5r,{reconnecting:e.reconnecting}),(0,ch.jsx)(Z_r,{cwd:t.selectedCwd}),(0,ch.jsx)(z_r,{}),(0,ch.jsx)(a5r,{repos:t.repos,selected:t.selectedCwd,onSelect:t.setSelectedCwd}),(0,ch.jsxs)(J,{sx:{display:"flex",alignItems:"center",ml:1},children:[(0,ch.jsx)(C0e,{cwd:t.selectedCwd}),(0,ch.jsx)(t5r,{cwd:t.selectedCwd}),(0,ch.jsx)(J_r,{})]}),(0,ch.jsx)(x5r,{onCreateAssist:e.createAssistSession,onStartRun:e.startRun})]})})}var qve=E(fe(),1);function T5r(){let[e,t]=(0,qve.useState)(null);return(0,qve.useEffect)(()=>{let r=!1;return(async()=>{try{let i=await(await hr("/api/health")).json();!r&&typeof i?.nodeName=="string"&&t(i.nodeName)}catch{}})(),()=>{r=!0}},[]),e}var w5r=E($(),1),Roi={lineHeight:"32px",bgcolor:"transparent"};function C5r(){let e=T5r();return e?(0,w5r.jsx)(a2e,{sx:Roi,children:e}):null}var k5r=E($(),1),_5r=ct((0,k5r.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 E5r=E($(),1),R5r=ct((0,E5r.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 A5r=E($(),1),P5r=ct((0,A5r.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 L5r=E($(),1),M5r=ct((0,L5r.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 KGe=E($(),1);function I5r({mode:e}){return e==="dark"?(0,KGe.jsx)(M5r,{fontSize:"small"}):(0,KGe.jsx)(P5r,{fontSize:"small"})}var D5r=E($(),1),N5r=ct((0,D5r.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 C$=E($(),1);function O5r(){let e=r0e();return(0,C$.jsxs)(hn,{onClick:()=>_gt(!e),children:[(0,C$.jsx)(qS,{children:(0,C$.jsx)(N5r,{fontSize:"small"})}),(0,C$.jsx)(zp,{children:e?"Hide render HUD":"Show render HUD"})]})}var hl=E($(),1);function B5r({mode:e,restartLabel:t,updateLabel:r,onToggleColorMode:n,onShowShortcuts:i,onRestart:o,onUpdate:a}){return[(0,hl.jsxs)(hn,{onClick:n,children:[(0,hl.jsx)(qS,{children:(0,hl.jsx)(I5r,{mode:e})}),(0,hl.jsx)(zp,{children:"Toggle dark mode"})]},"color-mode"),(0,hl.jsx)(O5r,{},"render-hud"),(0,hl.jsxs)(hn,{onClick:i,children:[(0,hl.jsx)(qS,{children:(0,hl.jsx)(_5r,{fontSize:"small"})}),(0,hl.jsx)(zp,{children:"Keyboard shortcuts"})]},"shortcuts"),(0,hl.jsx)(ki,{},"restart-divider"),(0,hl.jsxs)(hn,{onClick:o,children:[(0,hl.jsx)(qS,{children:(0,hl.jsx)(n7,{fontSize:"small"})}),(0,hl.jsx)(zp,{children:t})]},"restart"),(0,hl.jsxs)(hn,{onClick:a,children:[(0,hl.jsx)(qS,{children:(0,hl.jsx)(R5r,{fontSize:"small"})}),(0,hl.jsx)(zp,{children:r})]},"update")]}var F5r=E(fe(),1);var z5r=E($(),1);function $5r({peer:e,onRestart:t,onClose:r}){let[n,i]=(0,F5r.useState)(!1);return(0,z5r.jsx)(Si,{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 H5r(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 Aoi=Object.keys(QL);function U5r(){let e=JL();return H5r(Aoi.map(t=>DT(t,e)))}var Ep=E($(),1),Poi={display:"flex",alignItems:"center",justifyContent:"space-between",pr:1},Loi={display:"flex",alignItems:"center",justifyContent:"space-between",gap:2,py:.5};function W5r({onClose:e}){let t=U5r();return(0,Ep.jsxs)(ql,{open:!0,onClose:e,maxWidth:"xs",fullWidth:!0,"aria-labelledby":"shortcuts-dialog-title",children:[(0,Ep.jsxs)(Ru,{id:"shortcuts-dialog-title",sx:Poi,children:["Keyboard shortcuts",(0,Ep.jsx)(er,{size:"small","aria-label":"Close",onClick:e,children:(0,Ep.jsx)(Ro,{fontSize:"small"})})]}),(0,Ep.jsx)(Eu,{dividers:!0,children:t.map(r=>(0,Ep.jsxs)(J,{component:"section",sx:{mb:1.5},children:[(0,Ep.jsx)(Le,{variant:"overline",color:"text.secondary",children:r.name}),r.shortcuts.map(n=>(0,Ep.jsxs)(J,{sx:Loi,children:[(0,Ep.jsx)(Le,{variant:"body2",children:n.label}),(0,Ep.jsx)(Et,{direction:"row",spacing:.5,children:(0,Ep.jsx)(_re,{chords:n.chords})})]},n.label))]},r.name))})]})}var f6=E($(),1);function G5r({reconnecting:e,onClose:t}){let{pending:r,error:n,clearError:i,restart:o}=v_(YF.target,e);return(0,f6.jsxs)(f6.Fragment,{children:[(0,f6.jsx)(Si,{title:YF.label,message:YF.message,confirmLabel:"Restart",busy:r,autoFocusConfirm:!0,onConfirm:()=>{o()},onCancel:t}),(0,f6.jsx)(ec,{error:n,onClose:i})]})}var q5r=E($(),1);function Moi(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 V5r({peer:e,onConfirm:t,onClose:r}){return(0,q5r.jsx)(Si,{...Moi(e),confirmLabel:"Update",onConfirm:()=>{t(),r()},onCancel:r})}var F0=E(fe(),1);async function Ioi(e){try{let t=await hr(`/api/node-doctor?link=${encodeURIComponent(e)}`);return t.ok?(await t.json()).hop:null}catch{return null}}async function j5r(e,t){let r=await Ioi(e);if(!r)return t;let n=r.remediation?` \u2014 ${r.remediation}`:"";return`${t}: ${r.hop} hop failed: ${r.error}${n}`}var CS=E(fe(),1);function Y5r(e){let{nodes:t}=Ac(),[r,n]=(0,CS.useState)(null),i=(0,CS.useRef)(!1),o=r?t?.links.find(l=>l.name===r.peer):void 0;(0,CS.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,CS.useCallback)((l,u)=>{i.current=!1,n({peer:l,describe:u})},[]),s=(0,CS.useCallback)(()=>n(null),[]);return{watch:a,stop:s}}var Doi=9e4;function jve(){let[e,t]=(0,F0.useState)(null),[r,n]=(0,F0.useState)(null),i=(0,F0.useRef)(void 0),o=(0,F0.useCallback)(f=>{clearTimeout(i.current),t(f)},[]),{watch:a,stop:s}=Y5r(o);(0,F0.useEffect)(()=>()=>clearTimeout(i.current),[]);let l=(0,F0.useCallback)(async(f,d)=>{n(await j5r(f,d))},[]);return{requestThenAwait:(0,F0.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`)},Doi),!0):(await l(f,`${d} failed (${await jF(m)})`),!1)},[l,a,s]),back:e,clearBack:()=>t(null),error:r,clearError:()=>n(null)}}var Noi=(e,t)=>t?`${e} is back (v${t})`:`${e} is back`;function K5r(){let{requestThenAwait:e,...t}=jve();return{restart:n=>e(n,`Restart ${n}`,()=>y_("both",n),Noi),...t}}var JX=E(fe(),1);var $0=E(fe(),1);function X5r(e){return e.commandType==="assist"&&e.assistArgs?.[0]==="update"&&e.status==="done"}function Yve(e,t,r){let[n,i]=(0,$0.useState)(!1),[o,a]=(0,$0.useState)(!1),s=(0,$0.useRef)(!1),l=(0,$0.useRef)(e);l.current=e;let u=(0,$0.useRef)(new Set),f=(0,$0.useCallback)(()=>{s.current=!1,a(!1),u.current=new Set(l.current.filter(X5r).map(d=>d.id)),i(!0)},[]);return(0,$0.useEffect)(()=>{if(!n||o)return;if(t){s.current=!0;return}if(!s.current)return;e.some(h=>X5r(h)&&h.node===r&&!u.current.has(h.id))&&a(!0)},[n,o,t,e,r]),{arm:f,completed:o}}var Z5r=(e,t)=>t?`${e} updated to v${t}`:`${e} updated`;function Ooi(e){return hr(`/api/self-update?node=${encodeURIComponent(e)}`,{method:"POST"})}function Q5r(e){let{nodes:t}=Ac(),{launchAssist:r}=ll(),{requestThenAwait:n,...i}=jve(),[o,a]=(0,JX.useState)(null),[s,l]=(0,JX.useState)(),u=m=>t?.links.find(g=>g.name===m)?.state,{arm:f,completed:d}=Yve(e,u(s)!=="connected",s);(0,JX.useEffect)(()=>{!d||!s||(l(void 0),n(s,`Restart ${s}'s web server`,()=>y_("webserver",s),Z5r))},[d,s,n]);let h=async m=>{a(`Updating assist on ${m}\u2026`),await n(m,`Update ${m}`,()=>Ooi(m),Z5r),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 z0=E($(),1);function J5r({dialog:e,peer:t,sessions:r,reconnecting:n,onClose:i}){let{launchAssist:o,armUpdateReload:a}=ll(),s=K5r(),l=Q5r(r);return(0,z0.jsxs)(z0.Fragment,{children:[e==="shortcuts"&&(0,z0.jsx)(W5r,{onClose:i}),e==="restart"&&t&&(0,z0.jsx)($5r,{peer:t,onRestart:s.restart,onClose:i}),e==="restart"&&!t&&(0,z0.jsx)(G5r,{reconnecting:n,onClose:i}),e==="update"&&(0,z0.jsx)(V5r,{peer:t,onConfirm:()=>{if(t){l.update(t);return}a(),o(["update"])},onClose:i}),(0,z0.jsx)(dX,{notices:s}),(0,z0.jsx)(dX,{notices:l})]})}var eEr=E($(),1),tEr=ct((0,eEr.jsx)("path",{d:"M11 18h2v-2h-2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4"}),"HelpOutlineOutlined");var Kve=E($(),1),Boi="https://staffordwilliams.com/assist";function rEr(){return(0,Kve.jsx)(sr,{title:"Help",children:(0,Kve.jsx)(er,{component:"a",href:Boi,target:"_blank",rel:"noopener noreferrer","aria-label":"Help",size:"small",sx:{color:"inherit"},children:(0,Kve.jsx)(tEr,{fontSize:"small"})})})}var nEr=E($(),1),iEr=ct((0,nEr.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 oEr=E(fe(),1);var eZ=E($(),1);function aEr(){let e=Bi(),t=(0,oEr.useCallback)(()=>e("/config"),[e]),{matches:r,chords:n}=Kn("openConfig");return Ao(r,t),(0,eZ.jsx)(sr,{describeChild:!0,title:(0,eZ.jsx)(Ou,{label:"Config",chords:n}),children:(0,eZ.jsx)(er,{size:"small",sx:{color:"inherit"},"aria-label":"Config",onClick:t,children:(0,eZ.jsx)(iEr,{fontSize:"small"})})})}var sEr=E($(),1),lEr=ct((0,sEr.jsx)("path",{d:"M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z"}),"Menu");var Xve=E(fe(),1);var tZ=E($(),1);function cEr({open:e,onOpen:t}){let r=(0,Xve.useRef)(null),{matches:n,chords:i}=Kn("openMenu");return Ao(n,(0,Xve.useCallback)(()=>{r.current&&t(r.current)},[t])),(0,tZ.jsx)(sr,{describeChild:!0,title:(0,tZ.jsx)(Ou,{label:"Menu",chords:i}),children:(0,tZ.jsx)(er,{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,tZ.jsx)(lEr,{fontSize:"small"})})})}var w$=E($(),1);function uEr({open:e,onOpen:t}){return(0,w$.jsxs)(J,{sx:{position:"fixed",top:`calc(8px + ${uy.top})`,right:16,zIndex:r=>r.zIndex.drawer+2,display:"flex",alignItems:"center",gap:.5,color:r=>r.tokens.color.appBar?.text??r.palette.primary.contrastText},children:[(0,w$.jsx)(rEr,{}),(0,w$.jsx)(aEr,{}),(0,w$.jsx)(cEr,{open:e,onOpen:t})]})}var d6=E(fe(),1);var dEr=E(fe(),1);var fEr=!0,Foi=new Set(["openMenu","cycleCards"]),$oi=Object.keys(QL).filter(e=>!Foi.has(e));function hEr(e,t){let r=JL();(0,dEr.useEffect)(()=>{if(!e)return;let n=i=>{$oi.some(o=>DT(o,r).matches(i))&&t()};return globalThis.addEventListener("keydown",n,fEr),()=>globalThis.removeEventListener("keydown",n,fEr)},[e,t,r])}function pEr(){let[e,t]=(0,d6.useState)(null),[r,n]=(0,d6.useState)(!0),i=!!e,o=(0,d6.useCallback)(()=>t(null),[]),a=(0,d6.useCallback)(s=>{n(!0),t(s)},[]);return hEr(i,(0,d6.useCallback)(()=>{n(!1),t(null)},[])),{anchorEl:e,open:i,close:o,openAt:a,restoreFocus:r}}var rZ=E(fe(),1);function mEr(e){Ao(Kn("shortcutsSheet").matches,e)}function gEr(){let[e,t]=(0,rZ.useState)(null);mEr((0,rZ.useCallback)(()=>t("shortcuts"),[]));let r=(0,rZ.useCallback)(()=>t(null),[]);return{dialog:e,showDialog:t,closeDialog:r}}function yEr(){let{nodes:e,selected:t}=Ac();return e&&t&&t!==e.local?t:void 0}function vEr(e){return{restartLabel:e?`Restart ${e}`:YF.label,updateLabel:e?`Update assist on ${e}`:"Update assist"}}var wS=E($(),1);function bEr({mode:e,toggle:t,sessions:r,reconnecting:n}){let{anchorEl:i,open:o,close:a,openAt:s,restoreFocus:l}=pEr(),{dialog:u,showDialog:f,closeDialog:d}=gEr(),h=yEr(),p=m=>()=>{a(),f(m)};return(0,wS.jsxs)(wS.Fragment,{children:[(0,wS.jsx)(uEr,{open:o,onOpen:s}),(0,wS.jsxs)(Bs,{anchorEl:i,open:o,onClose:a,disableRestoreFocus:!l,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[(0,wS.jsx)(C5r,{}),B5r({mode:e,...vEr(h),onToggleColorMode:()=>{t(),a()},onShowShortcuts:p("shortcuts"),onRestart:p("restart"),onUpdate:p("update")})]}),(0,wS.jsx)(J5r,{dialog:u,peer:h,sessions:r,reconnecting:n,onClose:d})]})}var TEr=E(fe(),1);var SEr=E($(),1);function xEr({conflict:e,onConfirm:t,onCancel:r}){let{name:n,cwd:i,port:o,group:a}=e.existing,s=nm(i),l=o?` on port ${o}`:"",u=s?` in ${s}`:"",f=a?`, holding the ${a} server slot`:"";return(0,SEr.jsx)(Si,{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 Zve=E($(),1);function CEr({socket:e,children:t}){let{serverConflict:r,clearServerConflict:n,retrySession:i,stopSession:o,startRun:a,discardSession:s}=e,l=(0,TEr.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,Zve.jsxs)(Uwe.Provider,{value:l,children:[t,r&&(0,Zve.jsx)(xEr,{conflict:r,onConfirm:u,onCancel:n})]})}var wEr=new Map;function kEr(e,t){if(!Oie())return;let r=wEr.get(e);if(wEr.set(e,t),!!r)for(let[n,i]of Object.entries(t))Object.is(i,r[n])||_y(`\u0394 ${e}.${n}`)}var Jve=E(fe(),1);function _Er(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||im(i)!==t?null:n}function Lv(e,t,r){if(e)return t.find(n=>n.id===e)??r.find(n=>n.sessionId===e)}function Qve(){let{pathname:e}=Go();return e.startsWith("/backlog")||e.startsWith("/usage")}function EEr({selectedCwd:e,selectedCardId:t,sessions:r,history:n,activeByRepo:i,onSelect:o}){let a=Lv(t,r,n),s=a&&im(a),l=!!(s&&s===e),u=_Er(i,e,r),f=(0,Jve.useRef)(t),d=Qve();(0,Jve.useEffect)(()=>{let h=f.current!==t&&!!s;f.current=t,!(d||h||l||!u)&&o(u)},[t,s,l,u,o,d])}var rbe=E(fe(),1);function REr(e,t,r,n){return Lv(e,t,r)?.cwd||n}function AEr(e,t,r,n){let i=REr(e,t,r,n.cwd),o=Lv(e,t,r);return{cwd:i,node:o?.cwd?o.node:n.node}}var XGe=E(fe(),1);function PEr(e,t,r){let{cwd:n,node:i,origin:o}=r,a=(0,XGe.useCallback)((l,u)=>{let f=yS(u,t),d=DX(e,l);return d?d.clones[f]:f===(l===n?i:_p)?l:void 0},[e,t,n,i]),s=(0,XGe.useCallback)(l=>DX(e,l)?.origin??(l===n?o:void 0),[e,n,o]);return{cloneOn:a,originOf:s}}var ebe=E(fe(),1);function LEr(e,t,r,n){let i=(0,ebe.useRef)(e);(0,ebe.useEffect)(()=>{if(i.current===e)return;i.current=e;let o=DX(t,r)?.clones[e];o&&n(o,e)},[e,t,r,n])}var k$=E(fe(),1);function MEr(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(_p)?_p:[...n][0]}function IEr(e,t,r,n){let[i,o]=(0,k$.useState)({cwd:e}),a=(0,k$.useCallback)((l,u,f)=>o({cwd:l,node:u,origin:f}),[]);(0,k$.useEffect)(()=>{e&&!i.cwd&&o({cwd:e})},[e,i.cwd]);let s=MEr(t,{cwd:i.cwd,node:i.node===void 0?void 0:yS(i.node,n)},r);return{selectedCwd:i.cwd,selectedNode:s||void 0,selectedPick:{cwd:i.cwd,node:s,origin:i.origin},setSelectedCwd:a}}var DEr=E(fe(),1);function tbe(e,t,r){let n=Lv(e,t,r);return n&&im(n)}function NEr(e,t,r,n){let i=tbe(e,t,r),o=Lv(e,t,r),a=o?.node??_p,s=o?.repoGroup?.origin;(0,DEr.useEffect)(()=>{i&&n(i,a,s)},[i,a,s,n])}function OEr(e,t,r,n,i){let o=i.nodes?.local,a=yS(i.selected,o),s=(0,rbe.useMemo)(()=>ZTr(e,t),[e,t]),{selectedCwd:l,selectedNode:u,selectedPick:f,setSelectedCwd:d}=IEr(e,s,a,o);NEr(r,n,t,d),LEr(a,s,l,d);let{cloneOn:h,originOf:p}=PEr(s,o,f),m=(0,rbe.useMemo)(()=>s.map(v=>QTr(v,a)),[s,a]),{cwd:g,node:y}=AEr(r,n,t,{cwd:l,node:u});return(0,rbe.useMemo)(()=>({repos:m,selectedCwd:l,selectedNode:u,worktreeCwd:g,worktreeNode:y,setSelectedCwd:d,cloneOn:h,originOf:p}),[m,l,u,g,y,d,h,p])}var ibe=E(fe(),1);var G_=E(fe(),1);var BEr=E(fe(),1),nbe="assist:reloaded-after-update";function FEr(e){(0,BEr.useEffect)(()=>{globalThis.sessionStorage?.getItem(nbe)&&(globalThis.sessionStorage.removeItem(nbe),e({message:"Reloaded after updating assist",sessionId:null}))},[e])}function $Er(e,t,r,n){let{arm:i,completed:o}=Yve(e,t),a=(0,G_.useRef)(!1),s=(0,G_.useCallback)(()=>{globalThis.sessionStorage?.setItem(nbe,"1")},[]),{error:l,restart:u}=v_("webserver",t,s);return FEr(r),(0,G_.useEffect)(()=>{l&&n(l)},[l,n]),(0,G_.useEffect)(()=>{!o||a.current||(a.current=!0,u())},[o,u]),{armUpdateReload:(0,G_.useCallback)(()=>{a.current=!1,i()},[i])}}function zEr(e){let{armUpdateReload:t}=$Er(e.sessions,e.reconnecting,e.setSuccess,e.setError),r=yy(e.selectSession),n=(0,ibe.useMemo)(()=>({launchAssist:e.createAssistSession,launchAgentInStream:e.createSessionInStream,resumeSession:e.resumeSession,armUpdateReload:t,activateSession:r,sendInput:e.sendInput}),[e.createAssistSession,e.createSessionInStream,e.resumeSession,t,r,e.sendInput]),i=Bi(),o=(0,ibe.useCallback)(a=>{e.selectSession(a),i("/sessions"),e.clearSuccess()},[i,e.selectSession,e.clearSuccess]);return{launch:n,viewLaunchedSession:o}}var HEr=E(fe(),1);function UEr(e,t,r,n){let i=tbe(e,t,r);(0,HEr.useEffect)(()=>{e&&i&&n({type:"set-active",cwd:i,sessionId:e})},[e,i,n])}var obe=E(fe(),1);function WEr(e,t){let r=(0,obe.useRef)(new Map);(0,obe.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 _$=E(fe(),1),GEr="assist.sessions.node";function zoi(){try{return localStorage.getItem(GEr)}catch{return null}}function Hoi(e){try{localStorage.setItem(GEr,e)}catch{}}function VEr(e){let[t,r]=(0,_$.useState)(zoi),n=(0,_$.useCallback)(i=>{r(i),Hoi(i)},[]);return(0,_$.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 jEr=E(fe(),1);function qEr(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 YEr(e,t){return(0,jEr.useCallback)(r=>{let n=e.current;n?.readyState===WebSocket.OPEN&&n.send(JSON.stringify(r));let i=qEr(r);i&&t(i)},[e,t])}var Mv=E(fe(),1);function abe(e,t,r,n,i){e({type:"create",prompt:r||void 0,cwd:n,...t,...i?{node:i}:{}})}function KEr(e){return(t,r,n)=>abe(e,{design:!0},t,r,n)}function XEr(e){return(t,r,n,i)=>abe(e,{harness:t},r,n,i)}function ZEr(e){return(t,r,n)=>abe(e,{auto:!0},t,r,n)}function QEr(e){return(t,r,n)=>e({type:"create-assist",assistArgs:t,cwd:r,...n})}function JEr(e){return(t,r,n,i,o)=>e({type:"resume",sessionId:t,cwd:r,name:n,harness:i,node:o})}function e4r(e,t){return(r,n)=>{t.delete(r),e({type:"retry",sessionId:r,replace:n})}}function t4r(e,t){return r=>{t.delete(r),e({type:"restart",sessionId:r})}}function r4r(e,t){return r=>{e({type:"dismiss",sessionId:r}),t.delete(r)}}function n4r(e,t){return r=>{e({type:"discard",sessionId:r}),t.delete(r)}}function i4r(e){return t=>e({type:"stop",sessionId:t})}function o4r(e){return(t,r,n,i,o)=>e({type:"create-run",runName:t,cwd:r,replace:n,launchedFrom:i,node:o})}function a4r(e){return(t,r)=>e({type:"set-autoapprove",sessionId:t,enabled:r})}function s4r(e){return(t,r)=>e({type:"set-autoadvance",sessionId:t,enabled:r})}function l4r(e){return(t,r)=>e({type:"set-starred",sessionId:t,starred:r})}function c4r(e){return(t,r)=>e({type:"input",sessionId:t,data:r,viewerId:fX})}function u4r(e){return(t,r,n,i)=>e({type:"resize",sessionId:t,cols:r,rows:n,viewerId:fX,claim:i==="claim",refresh:i==="refresh"})}function f4r(e){return(t,r,n,i)=>e({type:"pr-decision",sessionId:t,requestId:r,decision:n,...i})}var h6=E(fe(),1);function d4r(e){return(t,r,n)=>e({type:"create",prompt:r||void 0,cwd:n,joinSessionId:t,auto:!0})}function h4r(e){return{createSession:(0,h6.useMemo)(()=>ZEr(e),[e]),createSessionInStream:(0,h6.useMemo)(()=>d4r(e),[e]),createDesignSession:(0,h6.useMemo)(()=>KEr(e),[e]),createHarnessSession:(0,h6.useMemo)(()=>XEr(e),[e]),createAssistSession:(0,h6.useMemo)(()=>QEr(e),[e]),resumeSession:(0,h6.useMemo)(()=>JEr(e),[e])}}var nZ=E(fe(),1);function p4r(e,t){let r=(0,nZ.useCallback)((a,s)=>{e4r(e,t.current)(a,s)},[e,t]),n=(0,nZ.useCallback)(a=>{t4r(e,t.current)(a)},[e,t]),i=(0,nZ.useCallback)(a=>{r4r(e,t.current)(a)},[e,t]),o=(0,nZ.useCallback)(a=>{n4r(e,t.current)(a)},[e,t]);return{retrySession:r,restartSession:n,dismissSession:i,discardSession:o}}function m4r(e,t,r){return(n,i)=>{let o=t.get(n);return o&&(i(o),e({type:"snapshot",sessionId:n})),r.set(n,i),()=>r.delete(n)}}function g4r(e,t,r){let n={...h4r(e),sendInput:(0,Mv.useMemo)(()=>c4r(e),[e]),sendResize:(0,Mv.useMemo)(()=>u4r(e),[e]),sendPrDecision:(0,Mv.useMemo)(()=>f4r(e),[e]),setAutoApprove:(0,Mv.useMemo)(()=>a4r(e),[e]),setAutoAdvance:(0,Mv.useMemo)(()=>s4r(e),[e]),setStarred:(0,Mv.useMemo)(()=>l4r(e),[e]),stopSession:(0,Mv.useMemo)(()=>i4r(e),[e]),startRun:(0,Mv.useMemo)(()=>o4r(e),[e])},i=(0,Mv.useMemo)(()=>m4r(e,t.current,r.current),[e,t,r]);return{...n,...p4r(e,t),onOutput:i}}var iZ=E(fe(),1);function y4r(e,t,r){let n=(0,iZ.useCallback)(s=>{r(s),e({type:"fetch-transcript",sessionId:s})},[e,r]),i=(0,iZ.useCallback)(s=>e({type:"fetch-user-messages",sessionId:s}),[e]),o=(0,iZ.useCallback)(()=>{r(null)},[r]),a=(0,iZ.useCallback)(s=>{r(null),t(s)},[t,r]);return{viewTranscript:n,fetchUserMessages:i,clearTranscript:o,selectSession:a}}var ube=E(fe(),1);function v4r(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 E$=E(fe(),1);function b4r(){let[e,t]=(0,E$.useState)(null),r=(0,E$.useRef)(e);r.current=e;let n=(0,E$.useCallback)(()=>r.current,[]);return{activeId:e,setActiveId:t,getActiveId:n}}var S4r=E(fe(),1);function x4r(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 T4r(e,t,r){let n=Qve();(0,S4r.useEffect)(()=>{if(n){t(null);return}t(i=>x4r(e,i,r))},[e,t,r,n])}var sbe=E(fe(),1);function C4r(){let[e,t]=(0,sbe.useState)({}),[r,n]=(0,sbe.useState)(null),[i,o]=(0,sbe.useState)(null);return{activeByRepo:e,setActiveByRepo:t,daemonVersion:r,setDaemonVersion:n,nodes:i,setNodes:o}}var H0=E(fe(),1);function w4r(e,t){for(let r of t)clearTimeout(e.get(r)),e.delete(r)}function k4r(e,t){let r=new Set(t.map(n=>n.id));return[...e.keys()].filter(n=>!r.has(n))}function _4r(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 E4r(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 R4r(e,t){return t.filter(r=>r.commandType==="run"&&e.get(r.id)!==r.startedAt).map(r=>r.id)}var Uoi=1500;function A4r(){let[e,t]=(0,H0.useState)(new Set),r=(0,H0.useRef)(new Map),n=(0,H0.useRef)(new Map),i=(0,H0.useCallback)(s=>{t(l=>l.has(s)?l:new Set(l).add(s))},[]),o=(0,H0.useCallback)(s=>{let l=n.current;for(let u of s)clearTimeout(l.get(u)),l.set(u,setTimeout(()=>{l.delete(u),i(u)},Uoi))},[i]);(0,H0.useEffect)(()=>{let s=n.current;return()=>{for(let l of s.values())clearTimeout(l)}},[]);let a=(0,H0.useCallback)(s=>{let l=k4r(r.current,s),u=[...E4r(r.current,s),...l],f=R4r(r.current,s);r.current=new Map(s.map(d=>[d.id,d.startedAt])),w4r(n.current,l),u.length&&t(d=>_4r(d,u)),o(f)},[o]);return{initialized:e,markInitialized:i,syncSessions:a}}var V_=E(fe(),1);function P4r(){let[e,t]=(0,V_.useState)(null),[r,n]=(0,V_.useState)(null),[i,o]=(0,V_.useState)(null),a=(0,V_.useCallback)(()=>t(null),[]),s=(0,V_.useCallback)(()=>n(null),[]),l=(0,V_.useCallback)(()=>o(null),[]);return{error:e,setError:t,clearError:a,success:r,setSuccess:n,clearSuccess:s,serverConflict:i,setServerConflict:o,clearServerConflict:l}}var Iv=E(fe(),1);function L4r(e,t){return[...e,{...t,status:"launching"}]}function lbe(e){return e.find(t=>t.status==="launching")}function M4r(e){let t=lbe(e);return t?e.filter(r=>r.id!==t.id):e}function I4r(e,t){let r=lbe(e);return r?ZGe(e,r.id,t):e}function ZGe(e,t,r){return e.map(n=>n.id===t&&n.status==="launching"?{...n,status:"error",error:r}:n)}function D4r(e,t){return e.filter(r=>r.id!==t)}var N4r=E(fe(),1);var Woi=6e4,Goi="Launch timed out \u2014 the session did not start.";function O4r(e,t){(0,N4r.useEffect)(()=>{let r=e.filter(i=>i.status==="launching");if(r.length===0)return;let n=r.map(i=>setTimeout(()=>t(o=>ZGe(o,i.id,Goi)),Math.max(0,Woi-(Date.now()-i.startedAt))));return()=>n.forEach(clearTimeout)},[e,t])}function B4r(){let[e,t]=(0,Iv.useState)([]),r=(0,Iv.useRef)([]),n=(0,Iv.useCallback)(l=>{r.current=l(r.current),t(r.current)},[]),i=(0,Iv.useCallback)(l=>{n(u=>L4r(u,{id:crypto.randomUUID(),startedAt:Date.now(),...l}))},[n]),o=(0,Iv.useCallback)(()=>{let l=lbe(r.current);return n(M4r),l?.named?l.title:void 0},[n]),a=(0,Iv.useCallback)(l=>n(u=>I4r(u,l)),[n]),s=(0,Iv.useCallback)(l=>n(u=>D4r(u,l)),[n]);return O4r(e,n),{pendingLaunches:e,addPendingLaunch:i,resolvePendingLaunch:o,failPendingLaunch:a,dismissPendingLaunch:s}}var oZ=E(fe(),1);function F4r(){let[e,t]=(0,oZ.useState)(null),[r,n]=(0,oZ.useState)({}),i=(0,oZ.useCallback)((o,a)=>{o!=="claude"&&n(s=>({...s,[o]:a}))},[]);return{rateLimits:e,setRateLimits:t,harnessRateLimits:r,setHarnessRateLimits:i}}var $4r=E(fe(),1);function z4r(e,t){return(0,$4r.useCallback)(r=>{e(r),t(r)},[e,t])}var QGe=E(fe(),1);function H4r(){let e=(0,QGe.useRef)(new Map),t=(0,QGe.useRef)(new Map);return{buffers:e,handlers:t}}var cbe=E(fe(),1);function U4r(){let[e,t]=(0,cbe.useState)(null),[r,n]=(0,cbe.useState)(null),[i,o]=(0,cbe.useState)(null);return{transcript:e,setTranscript:t,viewingTranscriptSessionId:r,setViewingTranscriptSessionId:n,userMessages:i,setUserMessages:o}}var q_=E(fe(),1);function W4r(e,t){let r=e.sessionId;t.buffers.current?.delete(r),t.handlers.current?.get(r)?.("\x1Bc")}function G4r(e,t){let r=e.sessionId,n=t.resolvePendingLaunch();e.isNew&&t.getActiveId()!==null||(t.setViewingTranscriptSessionId(null),t.setActiveId(r)),e.isNew&&t.setSuccess({message:n?`Started ${n}`:"New session started",sessionId:r})}function V4r(e,t){let r=e.message;t.setError(r),t.failPendingLaunch(r)}function q4r(e,t){let r=e.rateLimits,n=e.harness;!n||n==="claude"?t.setRateLimits(r):t.setHarnessRateLimits?.(n,r)}function j4r(e,t){t.setNodes({local:e.local,links:e.links??[]})}function Y4r(e,t){t.setSuccess({message:e.message,sessionId:null})}function K4r(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 X4r(e,t){t.setServerConflict({existing:e.existing,runName:e.runName,cwd:e.cwd,sessionId:e.sessionId,launchedFrom:e.launchedFrom,node:e.node})}function Z4r(e,t){let r=e.sessions;t.setSessions(r),e.cwd&&t.setCurrentCwd(e.cwd),t.setActiveByRepo(e.active??{})}function Q4r(e,t){let r=e.sessionId,n=e.data;t.buffers.current?.set(r,n),t.handlers.current?.get(r)?.(`\x1Bc${n}`)}var Voi={sessions:Z4r,created:G4r,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:j4r,error:V4r,notice:Y4r,"run-conflict":X4r,limits:q4r,clear:W4r,output:K4r,snapshot:Q4r};function J4r(e,t){Voi[e.type]?.(e,t)}function e3r(e,t={}){let r=new WebSocket(Cot("/ws"));return r.onopen=()=>{t.onOpen?.(),r.send(JSON.stringify({type:"hello"})),r.send(JSON.stringify({type:"history"}))},r.onmessage=n=>{J4r(JSON.parse(n.data),e)},r.onclose=()=>t.onClose?.(),r}function t3r(e,t,r,n){let i=!1,o,a=0,s=!1,l=()=>{i||t(e3r(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 r3r(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=t3r({...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 n3r(){let[e,t]=(0,ube.useState)([]),[r,n]=(0,ube.useState)([]),{activeId:i,setActiveId:o,getActiveId:a}=b4r(),s=C4r(),l=U4r(),[u,f]=(0,ube.useState)(""),d=P4r(),h=B4r(),p=F4r(),{initialized:m,markInitialized:g,syncSessions:y}=A4r(),v=H4r(),b=z4r(y,t),{wsRef:x,requestHistory:C,reconnecting:T}=r3r({handleSessions:b,setHistory:n,getActiveId:a,setActiveId:o,...s,...l,setCurrentCwd:f,...d,...h,...p,markInitialized:g,...v});return T4r(e,o,v4r(s.activeByRepo,e)),{sessions:e,history:r,activeId:i,setActiveId:o,...s,...l,currentCwd:u,...d,...h,...p,initialized:m,wsRef:x,...v,requestHistory:C,reconnecting:T}}function i3r(){let e=n3r(),{wsRef:t,buffers:r,handlers:n,addPendingLaunch:i,activeId:o,sessions:a}=e,s=VEr(e.nodes),l=YEr(t,i),u=g4r(l,r,n);UEr(o,a,e.history,l),WEr(a,l);let f=y4r(l,e.setActiveId,e.setViewingTranscriptSessionId);return{...e,...u,...f,nodeSelection:s}}var R$=E(fe(),1);var o3r="assist:sidebar-collapsed";function a3r(){let[e,t]=(0,R$.useState)(()=>Ju(o3r).length>0),r=(0,R$.useCallback)(()=>{t(n=>{let i=!n;return ef(o3r,i?[!0]:[]),i})},[]);return(0,R$.useMemo)(()=>({collapsed:e,onToggleCollapsed:r}),[e,r])}var s3r=E(fe(),1);function l3r(){(0,s3r.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await hr("/api/hotkeys");if(!t.ok)return;let r=await t.json();e||bE.set(r)}catch{}})(),()=>{e=!0}},[])}function c3r(){let e=i3r(),t=fge(e),r=OEr(e.currentCwd,e.history,t,e.sessions,e.nodeSelection);EEr({selectedCwd:r.selectedCwd,selectedCardId:t,sessions:e.sessions,history:e.history,activeByRepo:e.activeByRepo,onSelect:e.selectSession});let{launch:n,viewLaunchedSession:i}=zEr(e);l3r();let o=a3r();return kEr("shell",{...e,selection:r,launch:n,sidebarCollapse:o}),{socket:e,selection:r,launch:n,viewLaunchedSession:i,sidebarCollapse:o}}var ug=E($(),1),qoi={zIndex:e=>e.zIndex.drawer+1,pt:uy.top},joi={minHeight:48,mt:uy.top};function u3r({mode:e,toggle:t}){let r=c3r(),{socket:n,selection:i,viewLaunchedSession:o}=r;return(0,ug.jsx)(O_r,{shell:r,children:(0,ug.jsxs)(OGe.Provider,{value:n.daemonVersion,children:[(0,ug.jsx)(bEr,{mode:e,toggle:t,sessions:n.sessions,reconnecting:n.reconnecting}),(0,ug.jsx)(Gxe,{position:"fixed",sx:qoi,"data-testid":"toolbar",children:(0,ug.jsx)(S5r,{socket:n,selection:i})}),(0,ug.jsx)(H5,{variant:"dense",sx:joi}),(0,ug.jsx)(CEr,{socket:n,children:(0,ug.jsx)(Lwr,{socket:n})}),(0,ug.jsx)(hkr,{socket:n}),(0,ug.jsx)(D_r,{socket:n,onViewLaunchedSession:o})]})})}var f3r=E(fe(),1);function d3r(){let[e,t]=(0,f3r.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})}}function h3r({color:e,radius:t}){return{MuiMenu:{styleOverrides:{paper:{borderRadius:t.md},list:{padding:4}}},MuiMenuItem:{styleOverrides:{root:{minHeight:30,padding:"5px 10px",borderRadius:4,fontSize:13,"&:hover":{backgroundColor:e.raised},"& .MuiListItemIcon-root":{minWidth:28},"& .MuiSvgIcon-root":{fontSize:16},"& .MuiListItemText-primary":{fontSize:13}}}}}}function p3r(e){let{color:t,radius:r,elevation:n,type:i}=e,o={border:`1px solid ${t.line}`};return{...h3r(e),MuiTooltip:{styleOverrides:{tooltip:{...o,backgroundColor:t.overlay.background,color:t.overlay.text,borderRadius:r.md,boxShadow:n.overlay,fontSize:`${i.scale.caption/16}rem`,padding:"6px 10px"},arrow:{color:t.overlay.background}}},MuiPopover:{styleOverrides:{paper:{...o,boxShadow:n.overlay}}},MuiBackdrop:{styleOverrides:{root:{"&:not(.MuiBackdrop-invisible)":{backgroundColor:t.scrim,backdropFilter:"blur(2px)"}}}},MuiDialog:{styleOverrides:{paper:{...o,backgroundColor:t.surface,borderRadius:r.md+4,boxShadow:n.dialog}}}}}var m3r=({variant:e})=>e==="outlined"||e==="tonal",g3r=[{props:{size:"small"},style:{minHeight:26,padding:"4px 9px",fontSize:12}},{props:m3r,style:{padding:"5px 11px"}},{props:e=>m3r(e)&&e.size==="small",style:{padding:"3px 8px"}}];var fbe=["primary","secondary","success","warning","error","info"];function aZ(e,t){return{backgroundColor:Dr(e,t),borderColor:Dr(e,.35),color:e}}function y3r({color:e}){return[{props:{variant:"tonal"},style:{backgroundColor:e.raised,border:`1px solid ${e.line}`,color:e.text.primary,"&:hover":{backgroundColor:e.raised,borderColor:e.text.disabled}}},...fbe.filter(t=>t!=="primary").map(t=>({props:{variant:"tonal",color:t},style:{...aZ(e[t].main,.16),"&:hover":aZ(e[t].main,.24)}}))]}var v3r={"& > *:nth-of-type(1)":{fontSize:16}};function b3r(e){let{color:t,radius:r}=e;return{MuiButton:{defaultProps:{disableElevation:!0},styleOverrides:{root:{minHeight:30,padding:"6px 12px",borderRadius:r.sm,fontSize:13,fontWeight:600,lineHeight:"18px"},startIcon:{marginLeft:-2,marginRight:6,...v3r},endIcon:{marginLeft:6,marginRight:-2,...v3r}},variants:[...g3r,{props:{variant:"text",color:"primary"},style:{color:t.text.secondary,"&:hover":{backgroundColor:t.raised,color:t.text.primary}}},...y3r(e),{props:{variant:"outlined",color:"error"},style:{borderColor:Dr(t.error.main,.35),"&:hover":{borderColor:t.error.main,backgroundColor:Dr(t.error.main,.1)}}}]}}}function JGe({color:e},t){return[{props:{variant:t,color:"default"},style:{backgroundColor:"transparent",border:`1px solid ${e.line}`,color:e.text.secondary,"&.MuiChip-clickable:hover":{backgroundColor:e.raised}}},...fbe.map(r=>({props:{variant:t,color:r},style:{...aZ(e[r].main,.14),borderColor:"transparent","& .MuiChip-deleteIcon":{color:Dr(e[r].main,.7),"&:hover, &:active":{color:e[r].main}},"&.MuiChip-clickable:hover":{backgroundColor:Dr(e[r].main,.22)}}}))]}function x3r(e){return{MuiChip:{styleOverrides:{root:{height:20,fontSize:11,fontWeight:600,borderRadius:999},sizeSmall:{height:20,"& .MuiChip-label":{padding:"0 7px"}},label:{padding:"0 8px"},icon:{fontSize:14,marginLeft:6,marginRight:-2},deleteIcon:{fontSize:14,marginLeft:-2,marginRight:4},outlined:{borderColor:e.color.line}},variants:[...JGe(e,"tonal"),...JGe(e,"filled")]}}}function S3r(e){return{...b3r(e),MuiButtonGroup:{defaultProps:{disableElevation:!0},variants:[{props:{variant:"tonal"},style:{"& .MuiButtonGroup-middleButton, & .MuiButtonGroup-lastButton":{marginLeft:-1}}}]},...x3r(e)}}var eVe=e=>`color-mix(in srgb, currentColor ${e}%, transparent)`,Yoi={".MuiAppBar-root &":{color:"inherit","&:hover":{backgroundColor:eVe(8)},"&.Mui-selected":{color:"inherit",backgroundColor:eVe(12),boxShadow:`inset 0 0 0 1px ${eVe(18)}`}}};function T3r({color:e,radius:t}){return{MuiTabs:{styleOverrides:{root:{minHeight:40,alignItems:"center"},list:{gap:2},indicator:{display:"none"}}},MuiTab:{styleOverrides:{root:{minHeight:30,padding:"6px 10px",borderRadius:t.sm,textTransform:"none",fontSize:13,fontWeight:500,opacity:1,color:e.text.secondary,"&:hover":{backgroundColor:e.raised,color:e.text.primary},"&.Mui-selected":{color:e.text.primary,backgroundColor:e.raised,boxShadow:`inset 0 0 0 1px ${e.line}`},...!e.appBar&&Yoi}}}}}var C3r=(e,t)=>({width:e,height:e,"& .MuiSvgIcon-root":{fontSize:t}});function w3r({color:e,radius:t}){return{MuiIconButton:{styleOverrides:{root:{...C3r(30,18),padding:0,borderRadius:t.sm,"&:hover":{backgroundColor:e.raised}}},variants:[{props:{size:"small"},style:C3r(26,16)},{props:{color:"default"},style:{color:e.text.secondary,"&:hover":{color:e.text.primary},...!e.appBar&&{".MuiAppBar-root &, .MuiAppBar-root &:hover":{color:"inherit"}}}}]}}}function k3r({color:e,radius:t}){return{MuiToggleButtonGroup:{styleOverrides:{root:{padding:2,gap:2,border:`1px solid ${e.line}`,borderRadius:t.sm,backgroundColor:e.background},grouped:{margin:0,border:0,borderRadius:4}}},MuiToggleButton:{styleOverrides:{root:{padding:"3px 8px",border:0,borderRadius:4,fontSize:13,fontWeight:500,lineHeight:"18px",textTransform:"none",color:e.text.secondary,"& .MuiSvgIcon-root":{fontSize:16},"&:hover":{backgroundColor:"transparent",color:e.text.primary},"&.Mui-selected, &.Mui-selected:hover":{backgroundColor:e.raised,color:e.text.primary}}}}}}var dbe=".MuiOutlinedInput-notchedOutline";function _3r({color:e,radius:t}){return{MuiOutlinedInput:{styleOverrides:{root:{backgroundColor:e.background,borderRadius:t.sm,fontSize:13,color:e.text.primary,[`& ${dbe}`]:{borderColor:e.line},[`&:hover ${dbe}`]:{borderColor:e.text.disabled},[`&.Mui-focused ${dbe}`]:{borderColor:e.primary.main,borderWidth:1},[`&.Mui-error ${dbe}`]:{borderColor:e.error.main}}}},MuiInputLabel:{styleOverrides:{root:{fontSize:13,color:e.text.secondary,"&.Mui-focused":{color:e.primary.main}}}},MuiSelect:{styleOverrides:{icon:{color:e.text.disabled}}}}}function E3r({color:e}){return{MuiSwitch:{styleOverrides:{root:{width:34,height:20,padding:0,"& .MuiSwitch-switchBase":{padding:2,color:e.text.secondary,"&.Mui-checked":{transform:"translateX(14px)",color:e.primary.contrastText},"&.Mui-checked + .MuiSwitch-track":{backgroundColor:e.primary.main,opacity:1}},"& .MuiSwitch-thumb":{width:16,height:16,boxShadow:"none"},"& .MuiSwitch-track":{borderRadius:10,backgroundColor:e.line,opacity:1}}}},MuiFormControlLabel:{styleOverrides:{root:{"&:has(.MuiSwitch-root)":{marginLeft:0,gap:8}}}}}}function R3r(e){let{appBar:t}=e.color;return{...p3r(e),...S3r(e),...w3r(e),...k3r(e),..._3r(e),...E3r(e),...T3r(e),MuiPaper:{styleOverrides:{root:{backgroundImage:"none"},outlined:{borderColor:e.color.line}}},MuiAppBar:{defaultProps:{elevation:e.elevation.appBar},styleOverrides:{root:t&&{backgroundColor:t.background,color:t.text,borderBottom:`1px solid ${e.color.line}`}}}}}var Dv="#0e1116",tVe="#141820",hbe="#1b202a",pbe="#e3e7ee",rVe="#8a93a3",sZ="#8b9cff",mbe="#5fd0a0",gbe="#f2b45a",ybe="#f27a7a",A3r={secondary:"rgba(255, 255, 255, 0.7)",hover:"rgba(255, 255, 255, 0.12)",active:"rgba(255, 255, 255, 0.16)",dot:"#ffb74d",dotRing:"rgba(0, 0, 0, 0.15)"},vbe={dark:{color:{background:Dv,surface:tVe,raised:hbe,line:"#262c37",lineSoft:"#1d222b",text:{primary:pbe,secondary:rVe,disabled:"#5c6473"},selected:"rgba(139, 156, 255, 0.14)",wash:{warning:"rgba(242, 180, 90, 0.09)",error:"rgba(242, 122, 122, 0.09)"},well:Dv,stripe:hbe,codeWash:"rgba(255, 255, 255, 0.08)",overlay:{background:hbe,text:pbe},scrim:"rgba(0, 0, 0, 0.5)",appBar:{background:tVe,text:pbe},onAppBar:{...A3r,secondary:rVe,level:{ok:mbe,warn:gbe,over:ybe}},statusBar:{background:tVe,text:rVe,hoverText:pbe,secondary:"#5c6473",hover:hbe,active:"transparent",dot:sZ,dotRing:"rgba(139, 156, 255, 0.14)",readyText:sZ,level:{ok:mbe,warn:gbe,over:ybe}},primary:{main:sZ,contrastText:Dv},secondary:{main:"#c99bff",contrastText:Dv},success:{main:mbe,contrastText:Dv},warning:{main:gbe,contrastText:Dv},error:{main:ybe,contrastText:Dv},info:{main:"#6cb6ff",contrastText:Dv}},terminal:{background:Dv,foreground:"#d6dbe4",cursor:sZ,cursorAccent:Dv,selectionBackground:"rgba(139, 156, 255, 0.28)",black:"#1b2029",red:ybe,green:mbe,yellow:gbe,blue:sZ,magenta:"#c99bff",cyan:"#6cc8d8",white:"#c3c9d4",brightBlack:"#5c6473",brightRed:"#ff9a9a",brightGreen:"#82e0b6",brightYellow:"#ffc97a",brightBlue:"#a9b6ff",brightMagenta:"#dcb8ff",brightCyan:"#8fdbe8",brightWhite:"#eef1f6"},elevation:{appBar:0,overlay:"0 14px 34px rgba(0, 0, 0, 0.45)",dialog:"0 30px 60px rgba(0, 0, 0, 0.5)",stuckHeader:"0 8px 8px -9px rgba(0, 0, 0, 0.8)"}},light:{color:{background:"#fff",surface:"#fff",raised:"rgba(0, 0, 0, 0.04)",line:"rgba(0, 0, 0, 0.12)",lineSoft:"rgba(0, 0, 0, 0.12)",text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},selected:"rgba(0, 0, 0, 0.08)",wash:{warning:"rgba(255, 167, 38, 0.09)",error:"rgba(244, 67, 54, 0.09)"},well:"#f3f4f6",stripe:"rgba(0, 0, 0, 0.1)",codeWash:"rgba(0, 0, 0, 0.06)",overlay:{background:"rgba(97, 97, 97, 0.92)",text:"#fff"},onAppBar:{...A3r,level:{ok:"#b9f6ca",warn:"#ffe57f",over:"#ffcdd2"}},primary:{main:"#1976d2",light:"#42a5f5",dark:"#1565c0",contrastText:"#fff"},secondary:{main:"#9c27b0",light:"#ba68c8",dark:"#7b1fa2",contrastText:"#fff"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20",contrastText:"#fff"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100",contrastText:"#fff"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828",contrastText:"#fff"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b",contrastText:"#fff"},scrim:"rgba(15, 23, 42, 0.32)",statusBar:{background:"#f3f4f6",text:"rgba(0, 0, 0, 0.6)",hoverText:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.38)",hover:"rgba(0, 0, 0, 0.06)",active:"transparent",dot:"#1976d2",dotRing:"rgba(25, 118, 210, 0.16)",readyText:"#1976d2",level:{ok:"#2e7d32",warn:"#ed6c02",over:"#d32f2f"}}},terminal:{background:"#ffffff",foreground:"#333333",cursor:"#333333",cursorAccent:"#ffffff",selectionBackground:"#add6ff",black:"#000000",red:"#cd3131",green:"#107c10",yellow:"#949800",blue:"#0451a5",magenta:"#bc05bc",cyan:"#0598bc",white:"#555555",brightBlack:"#666666",brightRed:"#cd3131",brightGreen:"#14ce14",brightYellow:"#b5ba00",brightBlue:"#0451a5",brightMagenta:"#bc05bc",brightCyan:"#0598bc",brightWhite:"#a5a5a5"},elevation:{appBar:0,overlay:"0 8px 24px rgba(15, 23, 42, 0.12)",dialog:"0 24px 48px rgba(15, 23, 42, 0.18)",stuckHeader:"0 6px 6px -7px rgba(0, 0, 0, 0.2)"}},font:{ui:'"Geist Variable", "Segoe UI", system-ui, sans-serif',mono:'"Geist Mono Variable", ui-monospace, Menlo, Consolas, monospace',terminal:'"Geist Mono Variable", ui-monospace, Menlo, Consolas, monospace'},type:{fontSize:14,terminalFontSize:13,scale:{caption:12,body2:14,body1:15,subtitle2:14,subtitle1:15,h6:16,h5:18,h4:24,button:14},button:{textTransform:"none",fontWeight:600}},radius:{sm:6,md:8},spacing:8};var kS=e=>`${e/16}rem`;function P3r({font:e,type:t}){let{scale:r}=t;return{fontFamily:e.ui,fontFamilyMono:e.mono,fontSize:t.fontSize,button:{...t.button,fontSize:kS(r.button)},caption:{fontSize:kS(r.caption)},body2:{fontSize:kS(r.body2)},body1:{fontSize:kS(r.body1)},subtitle2:{fontSize:kS(r.subtitle2)},subtitle1:{fontSize:kS(r.subtitle1)},h6:{fontSize:kS(r.h6)},h5:{fontSize:kS(r.h5)},h4:{fontSize:kS(r.h4)}}}function L3r(e){return{MuiButtonBase:{styleOverrides:{root:{cursor:"pointer","&.Mui-disabled":{cursor:"default"}}}},MuiLink:{styleOverrides:{root:{cursor:"pointer"}}},MuiAppBar:{defaultProps:{elevation:e.elevation.appBar}}}}function Koi(e){let{dark:t,light:r,...n}=vbe;return{...n,...e==="dark"?t:r,mode:e}}function M3r(e){let t=Koi(e),{color:r}=t;return Y0({tokens:t,palette:{mode:e,background:{default:r.background,paper:r.surface},primary:r.primary,secondary:r.secondary,success:r.success,warning:r.warning,error:r.error,info:r.info,text:r.text,divider:r.line,action:{hover:r.raised,selected:r.selected}},typography:P3r(t),shape:{borderRadius:t.radius.sm},spacing:t.spacing,components:{...L3r(t),...R3r(t)}})}function I3r(){if(typeof document>"u"||!document.fonts)return Promise.resolve();let{font:e,type:t}=vbe;return Promise.allSettled([document.fonts.load(`${t.fontSize}px ${e.ui}`),document.fonts.load(`${t.terminalFontSize}px ${e.terminal}`)])}P$();P$();var sVe=g6("Preferences",{web:()=>Promise.resolve().then(()=>($3r(),F3r)).then(e=>new e.PreferencesWeb)});var bbe=E(fe(),1);var lVe=E(fe(),1);var H3r=E($(),1);function z3r({value:e,error:t,onChange:r}){return(0,H3r.jsx)(Yn,{autoFocus:!0,label:"Node URL",placeholder:"https://mac.tail1234.ts.net:3100",value:e,onChange:n=>r(n.target.value),error:!!t,helperText:t,slotProps:{htmlInput:{autoCapitalize:"none",autoCorrect:"off",inputMode:"url"}}})}var nai=/^[a-z]+:[/]{2}/i;function U3r(e){let t=e.trim(),r=nai.test(t)?t:`https://${t}`;try{let n=new URL(r);return n.protocol!=="https:"&&n.protocol!=="http:"?void 0:n.origin}catch{return}}var j_=E($(),1),iai={height:"100%",boxSizing:"border-box",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",p:2,bgcolor:"background.default"};function W3r({onSave:e}){let[t,r]=(0,lVe.useState)(""),[n,i]=(0,lVe.useState)();return(0,j_.jsx)(J,{component:"form",onSubmit:a=>{a.preventDefault();let s=U3r(t);s?e(s):i("Enter an http(s) URL, e.g. https://mac.tail1234.ts.net:3100")},sx:iai,children:(0,j_.jsxs)(Et,{spacing:2,sx:{width:"100%",maxWidth:420},children:[(0,j_.jsx)(Le,{variant:"h6",children:"Connect to a home node"}),(0,j_.jsx)(Le,{variant:"body2",color:"text.secondary",children:"Enter the Tailscale URL of the assist web server to view its sessions and those of the nodes it links to."}),(0,j_.jsx)(z3r,{value:t,error:n,onChange:a=>{r(a),i(void 0)}}),(0,j_.jsx)(Mt,{type:"submit",variant:"contained",disabled:!t.trim(),children:"Connect"})]})})}var j3r=E($(),1),G3r="homeNodeUrl",V3r=p6.isNativePlatform();function q3r({children:e}){let[t,r]=(0,bbe.useState)(V3r?void 0:""),n=i=>{Tot(i),r(i)};return(0,bbe.useEffect)(()=>{V3r&&sVe.get({key:G3r}).then(({value:i})=>{i?n(i):r(null)}).catch(()=>r(null))},[]),t===void 0?null:t===null?(0,j3r.jsx)(W3r,{onSave:i=>{sVe.set({key:G3r,value:i}),n(i)}}):e}var Y3r=E(fe(),1);var xbe=E($(),1),oai=5;function K3r({children:e}){let[t,r]=(0,Y3r.useState)(null);return(0,xbe.jsxs)(mke.Provider,{value:t,children:[e,(0,xbe.jsx)(J,{ref:r,"data-testid":"toast-stack",sx:{position:"fixed",zIndex:"snackbar",bottom:{xs:1,sm:3},left:{xs:1,sm:"50%"},right:{xs:1,sm:"auto"},transform:{sm:"translateX(-50%)"},display:"flex",flexDirection:"column",alignItems:{xs:"stretch",sm:"center"},gap:1,pointerEvents:"none","& > *":{pointerEvents:"auto"},[`& > :nth-last-of-type(n+${oai+1})`]:{display:"none"}}})]})}P$();var cZ;(function(e){e.Dark="DARK",e.Light="LIGHT",e.Default="DEFAULT"})(cZ||(cZ={}));var X3r;(function(e){e.None="NONE",e.Slide="SLIDE",e.Fade="FADE"})(X3r||(X3r={}));var Z3r=g6("StatusBar");var J3r=E(fe(),1);P$();var Q3r=p6.isNativePlatform();function eRr(e){(0,J3r.useEffect)(()=>{Q3r&&Z3r.setStyle({style:e==="dark"?cZ.Dark:cZ.Light}).catch(()=>{})},[e])}var Nv=E($(),1);function aai(){let{mode:e,toggle:t}=d3r(),r=(0,rRr.useMemo)(()=>M3r(e),[e]);return eRr(e),(0,Nv.jsxs)(yQ,{theme:r,children:[(0,Nv.jsx)(iJ,{}),(0,Nv.jsx)(K3r,{children:(0,Nv.jsx)(q3r,{children:(0,Nv.jsx)(u3r,{mode:e,toggle:t})})})]})}var sai=gwe([{path:"*",element:(0,Nv.jsx)(aai,{})}]);function lai(){return(0,Nv.jsx)(lwe,{router:sai})}var tRr=document.getElementById("app");tRr&&I3r().then(()=>{(0,nRr.createRoot)(tRr).render((0,Nv.jsx)(lai,{}))});})();
|
|
4024
|
+
`):[];if(l.length===0)return;let u=++o.current;i(f=>uoi(f,l,t));for(let f of l)M1e(f,f===t).then(d=>{u===o.current&&i(h=>h.map(p=>p.name===f?d:p))})},[r,t]);(0,Pv.useEffect)(()=>{a();let l=setInterval(a,coi);return()=>clearInterval(l)},[a]);let s=n.length===0;return(0,Pv.useMemo)(()=>({entries:n,loading:s,refresh:a}),[n,s,a])}var H_=E($(),1);function O_r({shell:e,children:t}){let{socket:r,selection:n,launch:i,sidebarCollapse:o}=e,a=N_r(r.nodeSelection);return(0,H_.jsx)(tGe.Provider,{value:a,children:(0,H_.jsx)(Xwe.Provider,{value:o,children:(0,H_.jsx)(CU.Provider,{value:n,children:(0,H_.jsx)(xGe.Provider,{value:r.nodeSelection,children:(0,H_.jsx)(yf.Provider,{value:n.selectedNode,children:(0,H_.jsx)(zze.Provider,{value:i,children:(0,H_.jsx)(tot,{children:t})})})})})})})}var B_r=E($(),1),F_r=ct((0,B_r.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 $_r=E(fe(),1);var O0=E($(),1),foi={ml:1,textTransform:"none",fontSize:12};function z_r(){let{nodes:e,names:t,visible:r,selected:n,select:i}=Ac(),[o,a]=(0,$_r.useState)(null);return!r||!e||!n?null:(0,O0.jsxs)(O0.Fragment,{children:[(0,O0.jsx)(Mt,{size:"small",color:"inherit",startIcon:(0,O0.jsx)(F_r,{fontSize:"small"}),"aria-label":"Machine","aria-haspopup":"menu",onClick:s=>a(s.currentTarget),sx:foi,children:(0,O0.jsx)(WX,{nodes:e,name:n})}),(0,O0.jsx)(Bs,{anchorEl:o,open:!!o,onClose:()=>a(null),children:t.map(s=>(0,O0.jsx)(hn,{selected:s===n,onClick:()=>{i(s),a(null)},sx:{fontSize:13},children:(0,O0.jsx)(WX,{nodes:e,name:s,showVersion:!0})},s))})]})}var qX=E(fe(),1);function H_r(e,t){return[...e[0].slice(0,-1),String(t+1)]}var c6=E($(),1),doi=[Zl("secondary"),{ml:.75}];function U_r({index:e,label:t,count:r,...n}){let{chords:i}=Kn("navTab");return(0,c6.jsx)(sr,{describeChild:!0,title:(0,c6.jsx)(Ou,{label:t,chords:[H_r(i,e)]}),children:(0,c6.jsx)(rb,{label:r?(0,c6.jsxs)("span",{children:[t,(0,c6.jsx)(J,{component:"span",sx:doi,children:r})]}):t,...n})})}var W_r=E(fe(),1);var hoi=6e4;function G_r(){let e=wge();return(0,W_r.useEffect)(()=>{_2.refresh();let t=setInterval(()=>{_2.refresh()},hoi);return()=>clearInterval(t)},[]),e?.length??0}var GGe=E(fe(),1);function V_r(e,t){let{bound:r}=Kn("navTab"),n=e.length,i=(0,GGe.useCallback)(a=>(IU(a,r)??n)<n,[r,n]),o=(0,GGe.useCallback)(a=>{let s=e[IU(a,r)??-1];s&&t(s)},[e,t,r]);Ao(i,o)}var Uve=E(fe(),1);function q_r(){let[e,t]=(0,Uve.useState)(!1);return(0,Uve.useEffect)(()=>{let r=!1;return(async()=>{try{let i=await(await hr("/api/news/nav")).json();r||t(i?.showInNav===!0)}catch{r||t(!1)}})(),()=>{r=!0}},[]),e}var Wve=E(fe(),1);async function poi(e,t){let r=await hr(Yr(`/api/releases/configured?cwd=${encodeURIComponent(e)}`,t));return r.ok?(await r.json())?.configured===!0:void 0}function j_r(e){let[t,r]=(0,Wve.useState)(null),n=vr(),i=`${n??""}\0${e}`;return(0,Wve.useEffect)(()=>{if(!e)return;let o=!1;return poi(e,n).catch(()=>{}).then(a=>{o||r({key:i,configured:a})}),()=>{o=!0}},[e,n,i]),t?.key===i?t.configured:void 0}var Y_r=E(fe(),1);function K_r(e){let{pathname:t}=Go(),r=Bi(),n=t==="/releases"||t.startsWith("/releases/");(0,Y_r.useEffect)(()=>{e===!1&&n&&r("/sessions",{replace:!0})},[e,n,r])}var moi={path:"/sessions",label:"Sessions"},goi={path:"/backlog",label:"Backlog"},yoi={path:"/next",label:"Next"},voi={path:"/releases",label:"Releases"},boi={path:"/news",label:"News"},xoi={path:"/inbox",label:"Inbox"};function X_r(e,t){return[moi,goi,yoi,...e?[voi]:[],...t?[boi]:[],xoi]}var VGe=E($(),1),Soi={mx:"6px"};function Z_r({cwd:e}){let t=Go(),r=Bi(),n=j_r(e),i=q_r(),o=G_r();K_r(n);let a=n===!0,s=(0,qX.useMemo)(()=>X_r(a,i),[a,i]),l=(0,qX.useMemo)(()=>s.map(d=>d.path),[s]),u=s.findIndex(d=>t.pathname.startsWith(d.path)),f=(0,qX.useCallback)(d=>{t.pathname!==d&&r(d)},[t.pathname,r]);return V_r(l,f),(0,VGe.jsx)(U5,{sx:Soi,value:u===-1?!1:u,textColor:"inherit",indicatorColor:"secondary",children:s.map((d,h)=>(0,VGe.jsx)(U_r,{index:h,label:d.label,count:d.path==="/inbox"?o:void 0,onClick:()=>f(d.path)},d.path))})}var jX=E($(),1),Q_r=(e,t)=>({bgcolor:e,color:t,"& .MuiSvgIcon-root":{color:t},transition:"filter 0.2s ease, transform 0.2s ease","&:hover":{bgcolor:e,color:t,filter:"brightness(1.08)"},"&:active":{transform:"translateY(1px)"}}),Toi=e=>({ml:.75,...e.tokens.color.appBar?Q_r("primary.main","primary.contrastText"):Q_r("primary.contrastText","primary.main")});function J_r(){let[,e]=Vc(),{label:t,chords:r}=Kn("newSession");return(0,jX.jsx)(sr,{title:(0,jX.jsx)(Ou,{label:t,chords:r}),children:(0,jX.jsx)(er,{sx:Toi,"aria-label":"New session",onClick:()=>e(i=>(i.set("new",""),i),{replace:!0}),children:(0,jX.jsx)(HT,{})})})}var Gve=E(fe(),1);var YX=E($(),1),Coi={strokeWidth:2};function e5r(e){return(0,YX.jsxs)(S0e,{viewBox:"0 0 24 24",sx:Coi,...e,children:[(0,YX.jsx)("path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 3.5c-.3 1.15-.3 2.35 0 3.5A5.4 5.4 0 0 0 4 10.5c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"}),(0,YX.jsx)("path",{d:"M9 18c-4.51 2-5-2-7-2"})]})}var KX=E($(),1);function t5r({cwd:e}){let[t,r]=(0,Gve.useState)(null),n=vr();return(0,Gve.useEffect)(()=>{if(!e){r(null);return}let i=!1;return(async()=>{try{let a=await(await hr(Yr(`/api/github-url?cwd=${encodeURIComponent(e)}`,n))).json();i||r(a?.url??null)}catch{i||r(null)}})(),()=>{i=!0}},[e,n]),t?(0,KX.jsx)(sr,{title:"Open in GitHub",children:(0,KX.jsx)(J,{component:"span",sx:T0e,children:(0,KX.jsx)(er,{onClick:()=>window.open(t,"_blank"),children:(0,KX.jsx)(e5r,{})})})}):null}var B0=E($(),1),woi={color:"inherit",mr:1.5};function r5r({reconnecting:e}){let{pending:t,error:r,clearError:n,restart:i}=v_("webserver",e);return(0,B0.jsxs)(B0.Fragment,{children:[(0,B0.jsx)(sr,{title:"Restart web server",children:(0,B0.jsx)("span",{children:(0,B0.jsx)(er,{sx:woi,disabled:t,onClick:i,children:t?(0,B0.jsx)(ao,{size:24}):(0,B0.jsx)(P1e,{})})})}),(0,B0.jsx)(ec,{error:r,onClose:n})]})}var o5r=E(fe(),1);var n5r=E(fe(),1);function i5r(e){let t=Qn().palette.primary.main;Ao(Kn("focusRepoPicker").matches,(0,n5r.useCallback)(()=>Ql({locate:()=>e.current?.querySelector("button")??null,focus:r=>r.focus()},t),[e,t]))}var XX=E($(),1),koi={width:240,ml:2};function a5r({repos:e,selected:t,onSelect:r}){let n=(0,o5r.useRef)(null);i5r(n);let{chords:i}=Kn("focusRepoPicker");return(0,XX.jsx)(J,{ref:n,sx:koi,children:(0,XX.jsx)(b0e,{label:t?bv(t):"Select repo...",tooltip:(0,XX.jsx)(Ou,{label:"Repo",chords:i}),typeToOpen:!0,children:(o,a)=>(0,XX.jsx)(_Tr,{repos:e,selected:t,onSelect:r,close:o,initialFilter:a})})})}var g5r=E(fe(),1);var ZX=E(fe(),1);function Vve(e){let[t,r]=(0,ZX.useState)([]),[n,i]=(0,ZX.useState)(!0),o=vr();return(0,ZX.useEffect)(()=>{if(!e){r([]),i(!1);return}let a=!1;return i(!0),hr(Yr(`/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 qGe=E($(),1);function jGe({text:e}){return(0,qGe.jsx)(J,{sx:{p:1.5},children:(0,qGe.jsx)(Le,{sx:{fontSize:13,color:"text.secondary"},children:e})})}var u6=E($(),1);function s5r({pr:e,highlighted:t,onHover:r,onPick:n}){let i=uve(t);return(0,u6.jsx)(hn,{ref:i,selected:t,onMouseDown:o=>o.preventDefault(),onMouseEnter:r,onClick:()=>n(e),sx:{alignItems:"flex-start",py:.75,whiteSpace:"normal"},children:(0,u6.jsxs)(Et,{spacing:.25,sx:{minWidth:0},children:[(0,u6.jsxs)(Le,{sx:{fontSize:13,lineHeight:1.3,fontWeight:500},children:[e.title,e.isDraft&&(0,u6.jsx)(Hn,{label:"Draft",size:"small",variant:"outlined",sx:{ml:.75,height:18,fontSize:10,verticalAlign:"middle"}})]}),(0,u6.jsxs)(Le,{sx:{fontSize:11,color:"text.secondary"},children:["#",e.number," \xB7 ",e.author," \xB7 ",lo(e.createdAt)]})]})})}var YGe=E($(),1);function l5r({prs:e,highlight:t,onHighlight:r,onPick:n}){return(0,YGe.jsx)(Hp,{dense:!0,disablePadding:!0,sx:{maxHeight:200,overflowY:"auto"},children:e.map((i,o)=>(0,YGe.jsx)(s5r,{pr:i,highlighted:o===t,onHover:()=>r(o),onPick:n},i.number))})}var u5r=E(fe(),1);function c5r(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 f5r(e,t,r){let[n,i]=(0,u5r.useState)(""),o=c5r(e,n),{highlight:a,setHighlight:s,onKeyDown:l}=__(o,n,t,r);return{filter:n,setFilter:i,filtered:o,highlight:a,setHighlight:s,onKeyDown:l,select:f=>{t(f),r()}}}var U_=E($(),1),d5r={...KB,left:"auto",width:320,maxHeight:"none",overflowY:"visible"};function h5r({cwd:e,onPick:t,close:r}){let{prs:n,loading:i}=Vve(e),o=f5r(n,t,r);return i||n.length===0?(0,U_.jsx)(nn,{elevation:4,sx:d5r,children:(0,U_.jsx)(jGe,{text:i?"Loading open PRs\u2026":"No open PRs"})}):(0,U_.jsxs)(nn,{elevation:4,sx:d5r,children:[(0,U_.jsx)(ET,{autoFocus:!0,value:o.filter,onChange:o.setFilter,onKeyDown:o.onKeyDown,placeholder:"Filter PRs..."}),o.filtered.length===0?(0,U_.jsx)(jGe,{text:"No PRs match"}):(0,U_.jsx)(l5r,{prs:o.filtered,highlight:o.highlight,onHighlight:o.setHighlight,onPick:o.select})]})}var m5r=E($(),1);function p5r({cwd:e,onPick:t,close:r}){return(0,m5r.jsx)(h5r,{cwd:e,onPick:t,close:r})}var W_=E($(),1);function y5r({cwd:e,disabled:t,onSelect:r}){let{prs:n,loading:i}=Vve(e),[o,a]=(0,g5r.useState)(null);return i||n.length===0?null:(0,W_.jsxs)(W_.Fragment,{children:[(0,W_.jsx)(b0e,{label:"prs",disabled:t,children:s=>(0,W_.jsx)(p5r,{cwd:e,onPick:a,close:s})}),o&&(0,W_.jsx)(Yge,{pr:o,onSelect:s=>{r(o,s),a(null)},onCancel:()=>a(null)})]})}var b5r=E($(),1);function v5r({onStartRun:e,cwd:t}){let r=p0e(t);return!t||r.length===0?null:(0,b5r.jsx)(d0e,{runs:r,onSelect:n=>e(n,t)})}var QX=E($(),1);function x5r({onCreateAssist:e,onStartRun:t}){let{selectedCwd:r,selectedNode:n}=$n();return(0,QX.jsxs)(Et,{direction:"row",spacing:.5,sx:{alignItems:"center","&:not(:empty)":{ml:1.5}},children:[(0,QX.jsx)(y5r,{cwd:r,disabled:!r,onSelect:(i,o)=>e([...o,String(i.number)],r,{...IB(i),node:n})}),(0,QX.jsx)(v5r,{onStartRun:(i,o)=>t(i,o,void 0,void 0,n),cwd:r})]})}var ch=E($(),1),_oi={minHeight:48,pl:1,pr:14},Eoi={flex:1,minWidth:0,display:"flex",alignItems:"center",overflowX:{xs:"auto",sm:"visible"},scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}};function S5r({socket:e,selection:t}){let{collapsed:r,onToggleCollapsed:n}=zT();return(0,ch.jsx)(H5,{variant:"dense",disableGutters:!0,sx:_oi,children:(0,ch.jsxs)(J,{sx:Eoi,children:[r&&(0,ch.jsx)(Xre,{collapsed:r,onToggleCollapsed:n}),(0,ch.jsx)(r5r,{reconnecting:e.reconnecting}),(0,ch.jsx)(Z_r,{cwd:t.selectedCwd}),(0,ch.jsx)(z_r,{}),(0,ch.jsx)(a5r,{repos:t.repos,selected:t.selectedCwd,onSelect:t.setSelectedCwd}),(0,ch.jsxs)(J,{sx:{display:"flex",alignItems:"center",ml:1},children:[(0,ch.jsx)(C0e,{cwd:t.selectedCwd}),(0,ch.jsx)(t5r,{cwd:t.selectedCwd}),(0,ch.jsx)(J_r,{})]}),(0,ch.jsx)(x5r,{onCreateAssist:e.createAssistSession,onStartRun:e.startRun})]})})}var qve=E(fe(),1);function T5r(){let[e,t]=(0,qve.useState)(null);return(0,qve.useEffect)(()=>{let r=!1;return(async()=>{try{let i=await(await hr("/api/health")).json();!r&&typeof i?.nodeName=="string"&&t(i.nodeName)}catch{}})(),()=>{r=!0}},[]),e}var w5r=E($(),1),Roi={lineHeight:"32px",bgcolor:"transparent"};function C5r(){let e=T5r();return e?(0,w5r.jsx)(a2e,{sx:Roi,children:e}):null}var k5r=E($(),1),_5r=ct((0,k5r.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 E5r=E($(),1),R5r=ct((0,E5r.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 A5r=E($(),1),P5r=ct((0,A5r.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 L5r=E($(),1),M5r=ct((0,L5r.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 KGe=E($(),1);function I5r({mode:e}){return e==="dark"?(0,KGe.jsx)(M5r,{fontSize:"small"}):(0,KGe.jsx)(P5r,{fontSize:"small"})}var D5r=E($(),1),N5r=ct((0,D5r.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 C$=E($(),1);function O5r(){let e=r0e();return(0,C$.jsxs)(hn,{onClick:()=>_gt(!e),children:[(0,C$.jsx)(qS,{children:(0,C$.jsx)(N5r,{fontSize:"small"})}),(0,C$.jsx)(zp,{children:e?"Hide render HUD":"Show render HUD"})]})}var hl=E($(),1);function B5r({mode:e,restartLabel:t,updateLabel:r,onToggleColorMode:n,onShowShortcuts:i,onRestart:o,onUpdate:a}){return[(0,hl.jsxs)(hn,{onClick:n,children:[(0,hl.jsx)(qS,{children:(0,hl.jsx)(I5r,{mode:e})}),(0,hl.jsx)(zp,{children:"Toggle dark mode"})]},"color-mode"),(0,hl.jsx)(O5r,{},"render-hud"),(0,hl.jsxs)(hn,{onClick:i,children:[(0,hl.jsx)(qS,{children:(0,hl.jsx)(_5r,{fontSize:"small"})}),(0,hl.jsx)(zp,{children:"Keyboard shortcuts"})]},"shortcuts"),(0,hl.jsx)(ki,{},"restart-divider"),(0,hl.jsxs)(hn,{onClick:o,children:[(0,hl.jsx)(qS,{children:(0,hl.jsx)(n7,{fontSize:"small"})}),(0,hl.jsx)(zp,{children:t})]},"restart"),(0,hl.jsxs)(hn,{onClick:a,children:[(0,hl.jsx)(qS,{children:(0,hl.jsx)(R5r,{fontSize:"small"})}),(0,hl.jsx)(zp,{children:r})]},"update")]}var F5r=E(fe(),1);var z5r=E($(),1);function $5r({peer:e,onRestart:t,onClose:r}){let[n,i]=(0,F5r.useState)(!1);return(0,z5r.jsx)(Si,{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 H5r(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 Aoi=Object.keys(QL);function U5r(){let e=JL();return H5r(Aoi.map(t=>DT(t,e)))}var Ep=E($(),1),Poi={display:"flex",alignItems:"center",justifyContent:"space-between",pr:1},Loi={display:"flex",alignItems:"center",justifyContent:"space-between",gap:2,py:.5};function W5r({onClose:e}){let t=U5r();return(0,Ep.jsxs)(ql,{open:!0,onClose:e,maxWidth:"xs",fullWidth:!0,"aria-labelledby":"shortcuts-dialog-title",children:[(0,Ep.jsxs)(Ru,{id:"shortcuts-dialog-title",sx:Poi,children:["Keyboard shortcuts",(0,Ep.jsx)(er,{size:"small","aria-label":"Close",onClick:e,children:(0,Ep.jsx)(Ro,{fontSize:"small"})})]}),(0,Ep.jsx)(Eu,{dividers:!0,children:t.map(r=>(0,Ep.jsxs)(J,{component:"section",sx:{mb:1.5},children:[(0,Ep.jsx)(Le,{variant:"overline",color:"text.secondary",children:r.name}),r.shortcuts.map(n=>(0,Ep.jsxs)(J,{sx:Loi,children:[(0,Ep.jsx)(Le,{variant:"body2",children:n.label}),(0,Ep.jsx)(Et,{direction:"row",spacing:.5,children:(0,Ep.jsx)(_re,{chords:n.chords})})]},n.label))]},r.name))})]})}var f6=E($(),1);function G5r({reconnecting:e,onClose:t}){let{pending:r,error:n,clearError:i,restart:o}=v_(YF.target,e);return(0,f6.jsxs)(f6.Fragment,{children:[(0,f6.jsx)(Si,{title:YF.label,message:YF.message,confirmLabel:"Restart",busy:r,autoFocusConfirm:!0,onConfirm:()=>{o()},onCancel:t}),(0,f6.jsx)(ec,{error:n,onClose:i})]})}var q5r=E($(),1);function Moi(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 V5r({peer:e,onConfirm:t,onClose:r}){return(0,q5r.jsx)(Si,{...Moi(e),confirmLabel:"Update",onConfirm:()=>{t(),r()},onCancel:r})}var F0=E(fe(),1);async function Ioi(e){try{let t=await hr(`/api/node-doctor?link=${encodeURIComponent(e)}`);return t.ok?(await t.json()).hop:null}catch{return null}}async function j5r(e,t){let r=await Ioi(e);if(!r)return t;let n=r.remediation?` \u2014 ${r.remediation}`:"";return`${t}: ${r.hop} hop failed: ${r.error}${n}`}var CS=E(fe(),1);function Y5r(e){let{nodes:t}=Ac(),[r,n]=(0,CS.useState)(null),i=(0,CS.useRef)(!1),o=r?t?.links.find(l=>l.name===r.peer):void 0;(0,CS.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,CS.useCallback)((l,u)=>{i.current=!1,n({peer:l,describe:u})},[]),s=(0,CS.useCallback)(()=>n(null),[]);return{watch:a,stop:s}}var Doi=9e4;function jve(){let[e,t]=(0,F0.useState)(null),[r,n]=(0,F0.useState)(null),i=(0,F0.useRef)(void 0),o=(0,F0.useCallback)(f=>{clearTimeout(i.current),t(f)},[]),{watch:a,stop:s}=Y5r(o);(0,F0.useEffect)(()=>()=>clearTimeout(i.current),[]);let l=(0,F0.useCallback)(async(f,d)=>{n(await j5r(f,d))},[]);return{requestThenAwait:(0,F0.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`)},Doi),!0):(await l(f,`${d} failed (${await jF(m)})`),!1)},[l,a,s]),back:e,clearBack:()=>t(null),error:r,clearError:()=>n(null)}}var Noi=(e,t)=>t?`${e} is back (v${t})`:`${e} is back`;function K5r(){let{requestThenAwait:e,...t}=jve();return{restart:n=>e(n,`Restart ${n}`,()=>y_("both",n),Noi),...t}}var JX=E(fe(),1);var $0=E(fe(),1);function X5r(e){return e.commandType==="assist"&&e.assistArgs?.[0]==="update"&&e.status==="done"}function Yve(e,t,r){let[n,i]=(0,$0.useState)(!1),[o,a]=(0,$0.useState)(!1),s=(0,$0.useRef)(!1),l=(0,$0.useRef)(e);l.current=e;let u=(0,$0.useRef)(new Set),f=(0,$0.useCallback)(()=>{s.current=!1,a(!1),u.current=new Set(l.current.filter(X5r).map(d=>d.id)),i(!0)},[]);return(0,$0.useEffect)(()=>{if(!n||o)return;if(t){s.current=!0;return}if(!s.current)return;e.some(h=>X5r(h)&&h.node===r&&!u.current.has(h.id))&&a(!0)},[n,o,t,e,r]),{arm:f,completed:o}}var Z5r=(e,t)=>t?`${e} updated to v${t}`:`${e} updated`;function Ooi(e){return hr(`/api/self-update?node=${encodeURIComponent(e)}`,{method:"POST"})}function Q5r(e){let{nodes:t}=Ac(),{launchAssist:r}=ll(),{requestThenAwait:n,...i}=jve(),[o,a]=(0,JX.useState)(null),[s,l]=(0,JX.useState)(),u=m=>t?.links.find(g=>g.name===m)?.state,{arm:f,completed:d}=Yve(e,u(s)!=="connected",s);(0,JX.useEffect)(()=>{!d||!s||(l(void 0),n(s,`Restart ${s}'s web server`,()=>y_("webserver",s),Z5r))},[d,s,n]);let h=async m=>{a(`Updating assist on ${m}\u2026`),await n(m,`Update ${m}`,()=>Ooi(m),Z5r),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 z0=E($(),1);function J5r({dialog:e,peer:t,sessions:r,reconnecting:n,onClose:i}){let{launchAssist:o,armUpdateReload:a}=ll(),s=K5r(),l=Q5r(r);return(0,z0.jsxs)(z0.Fragment,{children:[e==="shortcuts"&&(0,z0.jsx)(W5r,{onClose:i}),e==="restart"&&t&&(0,z0.jsx)($5r,{peer:t,onRestart:s.restart,onClose:i}),e==="restart"&&!t&&(0,z0.jsx)(G5r,{reconnecting:n,onClose:i}),e==="update"&&(0,z0.jsx)(V5r,{peer:t,onConfirm:()=>{if(t){l.update(t);return}a(),o(["update"])},onClose:i}),(0,z0.jsx)(dX,{notices:s}),(0,z0.jsx)(dX,{notices:l})]})}var eEr=E($(),1),tEr=ct((0,eEr.jsx)("path",{d:"M11 18h2v-2h-2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4"}),"HelpOutlineOutlined");var Kve=E($(),1),Boi="https://staffordwilliams.com/assist";function rEr(){return(0,Kve.jsx)(sr,{title:"Help",children:(0,Kve.jsx)(er,{component:"a",href:Boi,target:"_blank",rel:"noopener noreferrer","aria-label":"Help",size:"small",sx:{color:"inherit"},children:(0,Kve.jsx)(tEr,{fontSize:"small"})})})}var nEr=E($(),1),iEr=ct((0,nEr.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 oEr=E(fe(),1);var eZ=E($(),1);function aEr(){let e=Bi(),t=(0,oEr.useCallback)(()=>e("/config"),[e]),{matches:r,chords:n}=Kn("openConfig");return Ao(r,t),(0,eZ.jsx)(sr,{describeChild:!0,title:(0,eZ.jsx)(Ou,{label:"Config",chords:n}),children:(0,eZ.jsx)(er,{size:"small",sx:{color:"inherit"},"aria-label":"Config",onClick:t,children:(0,eZ.jsx)(iEr,{fontSize:"small"})})})}var sEr=E($(),1),lEr=ct((0,sEr.jsx)("path",{d:"M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z"}),"Menu");var Xve=E(fe(),1);var tZ=E($(),1);function cEr({open:e,onOpen:t}){let r=(0,Xve.useRef)(null),{matches:n,chords:i}=Kn("openMenu");return Ao(n,(0,Xve.useCallback)(()=>{r.current&&t(r.current)},[t])),(0,tZ.jsx)(sr,{describeChild:!0,title:(0,tZ.jsx)(Ou,{label:"Menu",chords:i}),children:(0,tZ.jsx)(er,{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,tZ.jsx)(lEr,{fontSize:"small"})})})}var w$=E($(),1);function uEr({open:e,onOpen:t}){return(0,w$.jsxs)(J,{sx:{position:"fixed",top:`calc(8px + ${uy.top})`,right:16,zIndex:r=>r.zIndex.drawer+2,display:"flex",alignItems:"center",gap:.5,color:r=>r.tokens.color.appBar?.text??r.palette.primary.contrastText},children:[(0,w$.jsx)(rEr,{}),(0,w$.jsx)(aEr,{}),(0,w$.jsx)(cEr,{open:e,onOpen:t})]})}var d6=E(fe(),1);var dEr=E(fe(),1);var fEr=!0,Foi=new Set(["openMenu","cycleCards"]),$oi=Object.keys(QL).filter(e=>!Foi.has(e));function hEr(e,t){let r=JL();(0,dEr.useEffect)(()=>{if(!e)return;let n=i=>{$oi.some(o=>DT(o,r).matches(i))&&t()};return globalThis.addEventListener("keydown",n,fEr),()=>globalThis.removeEventListener("keydown",n,fEr)},[e,t,r])}function pEr(){let[e,t]=(0,d6.useState)(null),[r,n]=(0,d6.useState)(!0),i=!!e,o=(0,d6.useCallback)(()=>t(null),[]),a=(0,d6.useCallback)(s=>{n(!0),t(s)},[]);return hEr(i,(0,d6.useCallback)(()=>{n(!1),t(null)},[])),{anchorEl:e,open:i,close:o,openAt:a,restoreFocus:r}}var rZ=E(fe(),1);function mEr(e){Ao(Kn("shortcutsSheet").matches,e)}function gEr(){let[e,t]=(0,rZ.useState)(null);mEr((0,rZ.useCallback)(()=>t("shortcuts"),[]));let r=(0,rZ.useCallback)(()=>t(null),[]);return{dialog:e,showDialog:t,closeDialog:r}}function yEr(){let{nodes:e,selected:t}=Ac();return e&&t&&t!==e.local?t:void 0}function vEr(e){return{restartLabel:e?`Restart ${e}`:YF.label,updateLabel:e?`Update assist on ${e}`:"Update assist"}}var wS=E($(),1);function bEr({mode:e,toggle:t,sessions:r,reconnecting:n}){let{anchorEl:i,open:o,close:a,openAt:s,restoreFocus:l}=pEr(),{dialog:u,showDialog:f,closeDialog:d}=gEr(),h=yEr(),p=m=>()=>{a(),f(m)};return(0,wS.jsxs)(wS.Fragment,{children:[(0,wS.jsx)(uEr,{open:o,onOpen:s}),(0,wS.jsxs)(Bs,{anchorEl:i,open:o,onClose:a,disableRestoreFocus:!l,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[(0,wS.jsx)(C5r,{}),B5r({mode:e,...vEr(h),onToggleColorMode:()=>{t(),a()},onShowShortcuts:p("shortcuts"),onRestart:p("restart"),onUpdate:p("update")})]}),(0,wS.jsx)(J5r,{dialog:u,peer:h,sessions:r,reconnecting:n,onClose:d})]})}var TEr=E(fe(),1);var SEr=E($(),1);function xEr({conflict:e,onConfirm:t,onCancel:r}){let{name:n,cwd:i,port:o,group:a}=e.existing,s=nm(i),l=o?` on port ${o}`:"",u=s?` in ${s}`:"",f=a?`, holding the ${a} server slot`:"";return(0,SEr.jsx)(Si,{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 Zve=E($(),1);function CEr({socket:e,children:t}){let{serverConflict:r,clearServerConflict:n,retrySession:i,stopSession:o,startRun:a,discardSession:s}=e,l=(0,TEr.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,Zve.jsxs)(Uwe.Provider,{value:l,children:[t,r&&(0,Zve.jsx)(xEr,{conflict:r,onConfirm:u,onCancel:n})]})}var wEr=new Map;function kEr(e,t){if(!Oie())return;let r=wEr.get(e);if(wEr.set(e,t),!!r)for(let[n,i]of Object.entries(t))Object.is(i,r[n])||_y(`\u0394 ${e}.${n}`)}var Jve=E(fe(),1);function _Er(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||im(i)!==t?null:n}function Lv(e,t,r){if(e)return t.find(n=>n.id===e)??r.find(n=>n.sessionId===e)}function Qve(){let{pathname:e}=Go();return e.startsWith("/backlog")||e.startsWith("/usage")}function EEr({selectedCwd:e,selectedCardId:t,sessions:r,history:n,activeByRepo:i,onSelect:o}){let a=Lv(t,r,n),s=a&&im(a),l=!!(s&&s===e),u=_Er(i,e,r),f=(0,Jve.useRef)(t),d=Qve();(0,Jve.useEffect)(()=>{let h=f.current!==t&&!!s;f.current=t,!(d||h||l||!u)&&o(u)},[t,s,l,u,o,d])}var rbe=E(fe(),1);function REr(e,t,r,n){return Lv(e,t,r)?.cwd||n}function AEr(e,t,r,n){let i=REr(e,t,r,n.cwd),o=Lv(e,t,r);return{cwd:i,node:o?.cwd?o.node:n.node}}var XGe=E(fe(),1);function PEr(e,t,r){let{cwd:n,node:i,origin:o}=r,a=(0,XGe.useCallback)((l,u)=>{let f=yS(u,t),d=DX(e,l);return d?d.clones[f]:f===(l===n?i:_p)?l:void 0},[e,t,n,i]),s=(0,XGe.useCallback)(l=>DX(e,l)?.origin??(l===n?o:void 0),[e,n,o]);return{cloneOn:a,originOf:s}}var ebe=E(fe(),1);function LEr(e,t,r,n){let i=(0,ebe.useRef)(e);(0,ebe.useEffect)(()=>{if(i.current===e)return;i.current=e;let o=DX(t,r)?.clones[e];o&&n(o,e)},[e,t,r,n])}var k$=E(fe(),1);function MEr(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(_p)?_p:[...n][0]}function IEr(e,t,r,n){let[i,o]=(0,k$.useState)({cwd:e}),a=(0,k$.useCallback)((l,u,f)=>o({cwd:l,node:u,origin:f}),[]);(0,k$.useEffect)(()=>{e&&!i.cwd&&o({cwd:e})},[e,i.cwd]);let s=MEr(t,{cwd:i.cwd,node:i.node===void 0?void 0:yS(i.node,n)},r);return{selectedCwd:i.cwd,selectedNode:s||void 0,selectedPick:{cwd:i.cwd,node:s,origin:i.origin},setSelectedCwd:a}}var DEr=E(fe(),1);function tbe(e,t,r){let n=Lv(e,t,r);return n&&im(n)}function NEr(e,t,r,n){let i=tbe(e,t,r),o=Lv(e,t,r),a=o?.node??_p,s=o?.repoGroup?.origin;(0,DEr.useEffect)(()=>{i&&n(i,a,s)},[i,a,s,n])}function OEr(e,t,r,n,i){let o=i.nodes?.local,a=yS(i.selected,o),s=(0,rbe.useMemo)(()=>ZTr(e,t),[e,t]),{selectedCwd:l,selectedNode:u,selectedPick:f,setSelectedCwd:d}=IEr(e,s,a,o);NEr(r,n,t,d),LEr(a,s,l,d);let{cloneOn:h,originOf:p}=PEr(s,o,f),m=(0,rbe.useMemo)(()=>s.map(v=>QTr(v,a)),[s,a]),{cwd:g,node:y}=AEr(r,n,t,{cwd:l,node:u});return(0,rbe.useMemo)(()=>({repos:m,selectedCwd:l,selectedNode:u,worktreeCwd:g,worktreeNode:y,setSelectedCwd:d,cloneOn:h,originOf:p}),[m,l,u,g,y,d,h,p])}var ibe=E(fe(),1);var G_=E(fe(),1);var BEr=E(fe(),1),nbe="assist:reloaded-after-update";function FEr(e){(0,BEr.useEffect)(()=>{globalThis.sessionStorage?.getItem(nbe)&&(globalThis.sessionStorage.removeItem(nbe),e({message:"Reloaded after updating assist",sessionId:null}))},[e])}function $Er(e,t,r,n){let{arm:i,completed:o}=Yve(e,t),a=(0,G_.useRef)(!1),s=(0,G_.useCallback)(()=>{globalThis.sessionStorage?.setItem(nbe,"1")},[]),{error:l,restart:u}=v_("webserver",t,s);return FEr(r),(0,G_.useEffect)(()=>{l&&n(l)},[l,n]),(0,G_.useEffect)(()=>{!o||a.current||(a.current=!0,u())},[o,u]),{armUpdateReload:(0,G_.useCallback)(()=>{a.current=!1,i()},[i])}}function zEr(e){let{armUpdateReload:t}=$Er(e.sessions,e.reconnecting,e.setSuccess,e.setError),r=yy(e.selectSession),n=(0,ibe.useMemo)(()=>({launchAssist:e.createAssistSession,launchAgentInStream:e.createSessionInStream,resumeSession:e.resumeSession,armUpdateReload:t,activateSession:r,sendInput:e.sendInput}),[e.createAssistSession,e.createSessionInStream,e.resumeSession,t,r,e.sendInput]),i=Bi(),o=(0,ibe.useCallback)(a=>{e.selectSession(a),i("/sessions"),e.clearSuccess()},[i,e.selectSession,e.clearSuccess]);return{launch:n,viewLaunchedSession:o}}var HEr=E(fe(),1);function UEr(e,t,r,n){let i=tbe(e,t,r);(0,HEr.useEffect)(()=>{e&&i&&n({type:"set-active",cwd:i,sessionId:e})},[e,i,n])}var obe=E(fe(),1);function WEr(e,t){let r=(0,obe.useRef)(new Map);(0,obe.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 _$=E(fe(),1),GEr="assist.sessions.node";function zoi(){try{return localStorage.getItem(GEr)}catch{return null}}function Hoi(e){try{localStorage.setItem(GEr,e)}catch{}}function VEr(e){let[t,r]=(0,_$.useState)(zoi),n=(0,_$.useCallback)(i=>{r(i),Hoi(i)},[]);return(0,_$.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 jEr=E(fe(),1);function qEr(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 YEr(e,t){return(0,jEr.useCallback)(r=>{let n=e.current;n?.readyState===WebSocket.OPEN&&n.send(JSON.stringify(r));let i=qEr(r);i&&t(i)},[e,t])}var Mv=E(fe(),1);function abe(e,t,r,n,i){e({type:"create",prompt:r||void 0,cwd:n,...t,...i?{node:i}:{}})}function KEr(e){return(t,r,n)=>abe(e,{design:!0},t,r,n)}function XEr(e){return(t,r,n,i)=>abe(e,{harness:t},r,n,i)}function ZEr(e){return(t,r,n)=>abe(e,{auto:!0},t,r,n)}function QEr(e){return(t,r,n)=>e({type:"create-assist",assistArgs:t,cwd:r,...n})}function JEr(e){return(t,r,n,i,o)=>e({type:"resume",sessionId:t,cwd:r,name:n,harness:i,node:o})}function e4r(e,t){return(r,n)=>{t.delete(r),e({type:"retry",sessionId:r,replace:n})}}function t4r(e,t){return r=>{t.delete(r),e({type:"restart",sessionId:r})}}function r4r(e,t){return r=>{e({type:"dismiss",sessionId:r}),t.delete(r)}}function n4r(e,t){return r=>{e({type:"discard",sessionId:r}),t.delete(r)}}function i4r(e){return t=>e({type:"stop",sessionId:t})}function o4r(e){return(t,r,n,i,o)=>e({type:"create-run",runName:t,cwd:r,replace:n,launchedFrom:i,node:o})}function a4r(e){return(t,r)=>e({type:"set-autoapprove",sessionId:t,enabled:r})}function s4r(e){return(t,r)=>e({type:"set-autoadvance",sessionId:t,enabled:r})}function l4r(e){return(t,r)=>e({type:"set-starred",sessionId:t,starred:r})}function c4r(e){return(t,r)=>e({type:"input",sessionId:t,data:r,viewerId:fX})}function u4r(e){return(t,r,n,i)=>e({type:"resize",sessionId:t,cols:r,rows:n,viewerId:fX,claim:i==="claim",refresh:i==="refresh"})}function f4r(e){return(t,r,n,i)=>e({type:"pr-decision",sessionId:t,requestId:r,decision:n,...i})}var h6=E(fe(),1);function d4r(e){return(t,r,n)=>e({type:"create",prompt:r||void 0,cwd:n,joinSessionId:t,auto:!0})}function h4r(e){return{createSession:(0,h6.useMemo)(()=>ZEr(e),[e]),createSessionInStream:(0,h6.useMemo)(()=>d4r(e),[e]),createDesignSession:(0,h6.useMemo)(()=>KEr(e),[e]),createHarnessSession:(0,h6.useMemo)(()=>XEr(e),[e]),createAssistSession:(0,h6.useMemo)(()=>QEr(e),[e]),resumeSession:(0,h6.useMemo)(()=>JEr(e),[e])}}var nZ=E(fe(),1);function p4r(e,t){let r=(0,nZ.useCallback)((a,s)=>{e4r(e,t.current)(a,s)},[e,t]),n=(0,nZ.useCallback)(a=>{t4r(e,t.current)(a)},[e,t]),i=(0,nZ.useCallback)(a=>{r4r(e,t.current)(a)},[e,t]),o=(0,nZ.useCallback)(a=>{n4r(e,t.current)(a)},[e,t]);return{retrySession:r,restartSession:n,dismissSession:i,discardSession:o}}function m4r(e,t,r){return(n,i)=>{let o=t.get(n);return o&&(i(o),e({type:"snapshot",sessionId:n})),r.set(n,i),()=>r.delete(n)}}function g4r(e,t,r){let n={...h4r(e),sendInput:(0,Mv.useMemo)(()=>c4r(e),[e]),sendResize:(0,Mv.useMemo)(()=>u4r(e),[e]),sendPrDecision:(0,Mv.useMemo)(()=>f4r(e),[e]),setAutoApprove:(0,Mv.useMemo)(()=>a4r(e),[e]),setAutoAdvance:(0,Mv.useMemo)(()=>s4r(e),[e]),setStarred:(0,Mv.useMemo)(()=>l4r(e),[e]),stopSession:(0,Mv.useMemo)(()=>i4r(e),[e]),startRun:(0,Mv.useMemo)(()=>o4r(e),[e])},i=(0,Mv.useMemo)(()=>m4r(e,t.current,r.current),[e,t,r]);return{...n,...p4r(e,t),onOutput:i}}var iZ=E(fe(),1);function y4r(e,t,r){let n=(0,iZ.useCallback)(s=>{r(s),e({type:"fetch-transcript",sessionId:s})},[e,r]),i=(0,iZ.useCallback)(s=>e({type:"fetch-user-messages",sessionId:s}),[e]),o=(0,iZ.useCallback)(()=>{r(null)},[r]),a=(0,iZ.useCallback)(s=>{r(null),t(s)},[t,r]);return{viewTranscript:n,fetchUserMessages:i,clearTranscript:o,selectSession:a}}var ube=E(fe(),1);function v4r(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 E$=E(fe(),1);function b4r(){let[e,t]=(0,E$.useState)(null),r=(0,E$.useRef)(e);r.current=e;let n=(0,E$.useCallback)(()=>r.current,[]);return{activeId:e,setActiveId:t,getActiveId:n}}var S4r=E(fe(),1);function x4r(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 T4r(e,t,r){let n=Qve();(0,S4r.useEffect)(()=>{if(n){t(null);return}t(i=>x4r(e,i,r))},[e,t,r,n])}var sbe=E(fe(),1);function C4r(){let[e,t]=(0,sbe.useState)({}),[r,n]=(0,sbe.useState)(null),[i,o]=(0,sbe.useState)(null);return{activeByRepo:e,setActiveByRepo:t,daemonVersion:r,setDaemonVersion:n,nodes:i,setNodes:o}}var H0=E(fe(),1);function w4r(e,t){for(let r of t)clearTimeout(e.get(r)),e.delete(r)}function k4r(e,t){let r=new Set(t.map(n=>n.id));return[...e.keys()].filter(n=>!r.has(n))}function _4r(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 E4r(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 R4r(e,t){return t.filter(r=>r.commandType==="run"&&e.get(r.id)!==r.startedAt).map(r=>r.id)}var Uoi=1500;function A4r(){let[e,t]=(0,H0.useState)(new Set),r=(0,H0.useRef)(new Map),n=(0,H0.useRef)(new Map),i=(0,H0.useCallback)(s=>{t(l=>l.has(s)?l:new Set(l).add(s))},[]),o=(0,H0.useCallback)(s=>{let l=n.current;for(let u of s)clearTimeout(l.get(u)),l.set(u,setTimeout(()=>{l.delete(u),i(u)},Uoi))},[i]);(0,H0.useEffect)(()=>{let s=n.current;return()=>{for(let l of s.values())clearTimeout(l)}},[]);let a=(0,H0.useCallback)(s=>{let l=k4r(r.current,s),u=[...E4r(r.current,s),...l],f=R4r(r.current,s);r.current=new Map(s.map(d=>[d.id,d.startedAt])),w4r(n.current,l),u.length&&t(d=>_4r(d,u)),o(f)},[o]);return{initialized:e,markInitialized:i,syncSessions:a}}var V_=E(fe(),1);function P4r(){let[e,t]=(0,V_.useState)(null),[r,n]=(0,V_.useState)(null),[i,o]=(0,V_.useState)(null),a=(0,V_.useCallback)(()=>t(null),[]),s=(0,V_.useCallback)(()=>n(null),[]),l=(0,V_.useCallback)(()=>o(null),[]);return{error:e,setError:t,clearError:a,success:r,setSuccess:n,clearSuccess:s,serverConflict:i,setServerConflict:o,clearServerConflict:l}}var Iv=E(fe(),1);function L4r(e,t){return[...e,{...t,status:"launching"}]}function lbe(e){return e.find(t=>t.status==="launching")}function M4r(e){let t=lbe(e);return t?e.filter(r=>r.id!==t.id):e}function I4r(e,t){let r=lbe(e);return r?ZGe(e,r.id,t):e}function ZGe(e,t,r){return e.map(n=>n.id===t&&n.status==="launching"?{...n,status:"error",error:r}:n)}function D4r(e,t){return e.filter(r=>r.id!==t)}var N4r=E(fe(),1);var Woi=6e4,Goi="Launch timed out \u2014 the session did not start.";function O4r(e,t){(0,N4r.useEffect)(()=>{let r=e.filter(i=>i.status==="launching");if(r.length===0)return;let n=r.map(i=>setTimeout(()=>t(o=>ZGe(o,i.id,Goi)),Math.max(0,Woi-(Date.now()-i.startedAt))));return()=>n.forEach(clearTimeout)},[e,t])}function B4r(){let[e,t]=(0,Iv.useState)([]),r=(0,Iv.useRef)([]),n=(0,Iv.useCallback)(l=>{r.current=l(r.current),t(r.current)},[]),i=(0,Iv.useCallback)(l=>{n(u=>L4r(u,{id:crypto.randomUUID(),startedAt:Date.now(),...l}))},[n]),o=(0,Iv.useCallback)(()=>{let l=lbe(r.current);return n(M4r),l?.named?l.title:void 0},[n]),a=(0,Iv.useCallback)(l=>n(u=>I4r(u,l)),[n]),s=(0,Iv.useCallback)(l=>n(u=>D4r(u,l)),[n]);return O4r(e,n),{pendingLaunches:e,addPendingLaunch:i,resolvePendingLaunch:o,failPendingLaunch:a,dismissPendingLaunch:s}}var oZ=E(fe(),1);function F4r(){let[e,t]=(0,oZ.useState)(null),[r,n]=(0,oZ.useState)({}),i=(0,oZ.useCallback)((o,a)=>{o!=="claude"&&n(s=>({...s,[o]:a}))},[]);return{rateLimits:e,setRateLimits:t,harnessRateLimits:r,setHarnessRateLimits:i}}var $4r=E(fe(),1);function z4r(e,t){return(0,$4r.useCallback)(r=>{e(r),t(r)},[e,t])}var QGe=E(fe(),1);function H4r(){let e=(0,QGe.useRef)(new Map),t=(0,QGe.useRef)(new Map);return{buffers:e,handlers:t}}var cbe=E(fe(),1);function U4r(){let[e,t]=(0,cbe.useState)(null),[r,n]=(0,cbe.useState)(null),[i,o]=(0,cbe.useState)(null);return{transcript:e,setTranscript:t,viewingTranscriptSessionId:r,setViewingTranscriptSessionId:n,userMessages:i,setUserMessages:o}}var q_=E(fe(),1);function W4r(e,t){let r=e.sessionId;t.buffers.current?.delete(r),t.handlers.current?.get(r)?.("\x1Bc")}function G4r(e,t){let r=e.sessionId,n=t.resolvePendingLaunch();e.isNew&&t.getActiveId()!==null||(t.setViewingTranscriptSessionId(null),t.setActiveId(r)),e.isNew&&t.setSuccess({message:n?`Started ${n}`:"New session started",sessionId:r})}function V4r(e,t){let r=e.message;t.setError(r),t.failPendingLaunch(r)}function q4r(e,t){let r=e.rateLimits,n=e.harness;!n||n==="claude"?t.setRateLimits(r):t.setHarnessRateLimits?.(n,r)}function j4r(e,t){t.setNodes({local:e.local,links:e.links??[]})}function Y4r(e,t){t.setSuccess({message:e.message,sessionId:null})}function K4r(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 X4r(e,t){t.setServerConflict({existing:e.existing,runName:e.runName,cwd:e.cwd,sessionId:e.sessionId,launchedFrom:e.launchedFrom,node:e.node})}function Z4r(e,t){let r=e.sessions;t.setSessions(r),e.cwd&&t.setCurrentCwd(e.cwd),t.setActiveByRepo(e.active??{})}function Q4r(e,t){let r=e.sessionId,n=e.data;t.buffers.current?.set(r,n),t.handlers.current?.get(r)?.(`\x1Bc${n}`)}var Voi={sessions:Z4r,created:G4r,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:j4r,error:V4r,notice:Y4r,"run-conflict":X4r,limits:q4r,clear:W4r,output:K4r,snapshot:Q4r};function J4r(e,t){Voi[e.type]?.(e,t)}function e3r(e,t={}){let r=new WebSocket(Cot("/ws"));return r.onopen=()=>{t.onOpen?.(),r.send(JSON.stringify({type:"hello"})),r.send(JSON.stringify({type:"history"}))},r.onmessage=n=>{J4r(JSON.parse(n.data),e)},r.onclose=()=>t.onClose?.(),r}function t3r(e,t,r,n){let i=!1,o,a=0,s=!1,l=()=>{i||t(e3r(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 r3r(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=t3r({...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 n3r(){let[e,t]=(0,ube.useState)([]),[r,n]=(0,ube.useState)([]),{activeId:i,setActiveId:o,getActiveId:a}=b4r(),s=C4r(),l=U4r(),[u,f]=(0,ube.useState)(""),d=P4r(),h=B4r(),p=F4r(),{initialized:m,markInitialized:g,syncSessions:y}=A4r(),v=H4r(),b=z4r(y,t),{wsRef:x,requestHistory:C,reconnecting:T}=r3r({handleSessions:b,setHistory:n,getActiveId:a,setActiveId:o,...s,...l,setCurrentCwd:f,...d,...h,...p,markInitialized:g,...v});return T4r(e,o,v4r(s.activeByRepo,e)),{sessions:e,history:r,activeId:i,setActiveId:o,...s,...l,currentCwd:u,...d,...h,...p,initialized:m,wsRef:x,...v,requestHistory:C,reconnecting:T}}function i3r(){let e=n3r(),{wsRef:t,buffers:r,handlers:n,addPendingLaunch:i,activeId:o,sessions:a}=e,s=VEr(e.nodes),l=YEr(t,i),u=g4r(l,r,n);UEr(o,a,e.history,l),WEr(a,l);let f=y4r(l,e.setActiveId,e.setViewingTranscriptSessionId);return{...e,...u,...f,nodeSelection:s}}var R$=E(fe(),1);var o3r="assist:sidebar-collapsed";function a3r(){let[e,t]=(0,R$.useState)(()=>Ju(o3r).length>0),r=(0,R$.useCallback)(()=>{t(n=>{let i=!n;return ef(o3r,i?[!0]:[]),i})},[]);return(0,R$.useMemo)(()=>({collapsed:e,onToggleCollapsed:r}),[e,r])}var s3r=E(fe(),1);function l3r(){(0,s3r.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await hr("/api/hotkeys");if(!t.ok)return;let r=await t.json();e||bE.set(r)}catch{}})(),()=>{e=!0}},[])}function c3r(){let e=i3r(),t=fge(e),r=OEr(e.currentCwd,e.history,t,e.sessions,e.nodeSelection);EEr({selectedCwd:r.selectedCwd,selectedCardId:t,sessions:e.sessions,history:e.history,activeByRepo:e.activeByRepo,onSelect:e.selectSession});let{launch:n,viewLaunchedSession:i}=zEr(e);l3r();let o=a3r();return kEr("shell",{...e,selection:r,launch:n,sidebarCollapse:o}),{socket:e,selection:r,launch:n,viewLaunchedSession:i,sidebarCollapse:o}}var ug=E($(),1),qoi={zIndex:e=>e.zIndex.drawer+1,pt:uy.top},joi={minHeight:48,mt:uy.top};function u3r({mode:e,toggle:t}){let r=c3r(),{socket:n,selection:i,viewLaunchedSession:o}=r;return(0,ug.jsx)(O_r,{shell:r,children:(0,ug.jsxs)(OGe.Provider,{value:n.daemonVersion,children:[(0,ug.jsx)(bEr,{mode:e,toggle:t,sessions:n.sessions,reconnecting:n.reconnecting}),(0,ug.jsx)(Gxe,{position:"fixed",sx:qoi,"data-testid":"toolbar",children:(0,ug.jsx)(S5r,{socket:n,selection:i})}),(0,ug.jsx)(H5,{variant:"dense",sx:joi}),(0,ug.jsx)(CEr,{socket:n,children:(0,ug.jsx)(Lwr,{socket:n})}),(0,ug.jsx)(hkr,{socket:n}),(0,ug.jsx)(D_r,{socket:n,onViewLaunchedSession:o})]})})}var f3r=E(fe(),1);function d3r(){let[e,t]=(0,f3r.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})}}function h3r({color:e,radius:t}){return{MuiMenu:{styleOverrides:{paper:{borderRadius:t.md},list:{padding:4}}},MuiMenuItem:{styleOverrides:{root:{minHeight:30,padding:"5px 10px",borderRadius:4,fontSize:13,"&:hover":{backgroundColor:e.raised},"& .MuiListItemIcon-root":{minWidth:28},"& .MuiSvgIcon-root":{fontSize:16},"& .MuiListItemText-primary":{fontSize:13}}}}}}function p3r(e){let{color:t,radius:r,elevation:n,type:i}=e,o={border:`1px solid ${t.line}`};return{...h3r(e),MuiTooltip:{styleOverrides:{tooltip:{...o,backgroundColor:t.overlay.background,color:t.overlay.text,borderRadius:r.md,boxShadow:n.overlay,fontSize:`${i.scale.caption/16}rem`,padding:"6px 10px"},arrow:{color:t.overlay.background}}},MuiPopover:{styleOverrides:{paper:{...o,boxShadow:n.overlay}}},MuiBackdrop:{styleOverrides:{root:{"&:not(.MuiBackdrop-invisible)":{backgroundColor:t.scrim,backdropFilter:"blur(2px)"}}}},MuiDialog:{styleOverrides:{paper:{...o,backgroundColor:t.surface,borderRadius:r.md+4,boxShadow:n.dialog}}}}}var m3r=({variant:e})=>e==="outlined"||e==="tonal",g3r=[{props:{size:"small"},style:{minHeight:26,padding:"4px 9px",fontSize:12}},{props:m3r,style:{padding:"5px 11px"}},{props:e=>m3r(e)&&e.size==="small",style:{padding:"3px 8px"}}];var fbe=["primary","secondary","success","warning","error","info"];function aZ(e,t){return{backgroundColor:Dr(e,t),borderColor:Dr(e,.35),color:e}}function y3r({color:e}){return[{props:{variant:"tonal"},style:{backgroundColor:e.raised,border:`1px solid ${e.line}`,color:e.text.primary,"&:hover":{backgroundColor:e.raised,borderColor:e.text.disabled}}},...fbe.filter(t=>t!=="primary").map(t=>({props:{variant:"tonal",color:t},style:{...aZ(e[t].main,.16),"&:hover":aZ(e[t].main,.24)}}))]}var v3r={"& > *:nth-of-type(1)":{fontSize:16}};function b3r(e){let{color:t,radius:r}=e;return{MuiButton:{defaultProps:{disableElevation:!0},styleOverrides:{root:{minHeight:30,padding:"6px 12px",borderRadius:r.sm,fontSize:13,fontWeight:600,lineHeight:"18px"},startIcon:{marginLeft:-2,marginRight:6,...v3r},endIcon:{marginLeft:6,marginRight:-2,...v3r}},variants:[...g3r,{props:{variant:"text",color:"primary"},style:{color:t.text.secondary,"&:hover":{backgroundColor:t.raised,color:t.text.primary}}},...y3r(e),{props:{variant:"outlined",color:"error"},style:{borderColor:Dr(t.error.main,.35),"&:hover":{borderColor:t.error.main,backgroundColor:Dr(t.error.main,.1)}}}]}}}function JGe({color:e},t){return[{props:{variant:t,color:"default"},style:{backgroundColor:"transparent",border:`1px solid ${e.line}`,color:e.text.secondary,"&.MuiChip-clickable:hover":{backgroundColor:e.raised}}},...fbe.map(r=>({props:{variant:t,color:r},style:{...aZ(e[r].main,.14),borderColor:"transparent","& .MuiChip-deleteIcon":{color:Dr(e[r].main,.7),"&:hover, &:active":{color:e[r].main}},"&.MuiChip-clickable:hover":{backgroundColor:Dr(e[r].main,.22)}}}))]}function x3r(e){return{MuiChip:{styleOverrides:{root:{height:20,fontSize:11,fontWeight:600,borderRadius:999},sizeSmall:{height:20,"& .MuiChip-label":{padding:"0 7px"}},label:{padding:"0 8px"},icon:{fontSize:14,marginLeft:6,marginRight:-2},deleteIcon:{fontSize:14,marginLeft:-2,marginRight:4},outlined:{borderColor:e.color.line}},variants:[...JGe(e,"tonal"),...JGe(e,"filled")]}}}function S3r(e){return{...b3r(e),MuiButtonGroup:{defaultProps:{disableElevation:!0},variants:[{props:{variant:"tonal"},style:{"& .MuiButtonGroup-middleButton, & .MuiButtonGroup-lastButton":{marginLeft:-1}}}]},...x3r(e)}}var eVe=e=>`color-mix(in srgb, currentColor ${e}%, transparent)`,Yoi={".MuiAppBar-root &":{color:"inherit","&:hover":{backgroundColor:eVe(8)},"&.Mui-selected":{color:"inherit",backgroundColor:eVe(12),boxShadow:`inset 0 0 0 1px ${eVe(18)}`}}};function T3r({color:e,radius:t}){return{MuiTabs:{styleOverrides:{root:{minHeight:40,alignItems:"center"},list:{gap:2},indicator:{display:"none"}}},MuiTab:{styleOverrides:{root:{minHeight:30,padding:"6px 10px",borderRadius:t.sm,textTransform:"none",fontSize:13,fontWeight:500,opacity:1,color:e.text.secondary,"&:hover":{backgroundColor:e.raised,color:e.text.primary},"&.Mui-selected":{color:e.text.primary,backgroundColor:e.raised,boxShadow:`inset 0 0 0 1px ${e.line}`},...!e.appBar&&Yoi}}}}}var C3r=(e,t)=>({width:e,height:e,"& .MuiSvgIcon-root":{fontSize:t}});function w3r({color:e,radius:t}){return{MuiIconButton:{styleOverrides:{root:{...C3r(30,18),padding:0,borderRadius:t.sm,"&:hover":{backgroundColor:e.raised}}},variants:[{props:{size:"small"},style:C3r(26,16)},{props:{color:"default"},style:{color:e.text.secondary,"&:hover":{color:e.text.primary},...!e.appBar&&{".MuiAppBar-root &, .MuiAppBar-root &:hover":{color:"inherit"}}}}]}}}function k3r({color:e,radius:t}){return{MuiToggleButtonGroup:{styleOverrides:{root:{padding:2,gap:2,border:`1px solid ${e.line}`,borderRadius:t.sm,backgroundColor:e.background},grouped:{margin:0,border:0,borderRadius:4}}},MuiToggleButton:{styleOverrides:{root:{padding:"3px 8px",border:0,borderRadius:4,fontSize:13,fontWeight:500,lineHeight:"18px",textTransform:"none",color:e.text.secondary,"& .MuiSvgIcon-root":{fontSize:16},"&:hover":{backgroundColor:"transparent",color:e.text.primary},"&.Mui-selected, &.Mui-selected:hover":{backgroundColor:e.raised,color:e.text.primary}}}}}}var dbe=".MuiOutlinedInput-notchedOutline";function _3r({color:e,radius:t}){return{MuiOutlinedInput:{styleOverrides:{root:{backgroundColor:e.background,borderRadius:t.sm,fontSize:13,color:e.text.primary,[`& ${dbe}`]:{borderColor:e.line},[`&:hover ${dbe}`]:{borderColor:e.text.disabled},[`&.Mui-focused ${dbe}`]:{borderColor:e.primary.main,borderWidth:1},[`&.Mui-error ${dbe}`]:{borderColor:e.error.main}}}},MuiInputLabel:{styleOverrides:{root:{fontSize:13,color:e.text.secondary,"&.Mui-focused":{color:e.primary.main}}}},MuiSelect:{styleOverrides:{icon:{color:e.text.disabled}}}}}function E3r({color:e}){return{MuiSwitch:{styleOverrides:{root:{width:34,height:20,padding:0,"& .MuiSwitch-switchBase":{padding:2,color:e.text.secondary,"&.Mui-checked":{transform:"translateX(14px)",color:e.primary.contrastText},"&.Mui-checked + .MuiSwitch-track":{backgroundColor:e.primary.main,opacity:1}},"& .MuiSwitch-thumb":{width:16,height:16,boxShadow:"none"},"& .MuiSwitch-track":{borderRadius:10,backgroundColor:e.line,opacity:1}}}},MuiFormControlLabel:{styleOverrides:{root:{"&:has(.MuiSwitch-root)":{marginLeft:0,gap:8}}}}}}function R3r(e){let{appBar:t}=e.color;return{...p3r(e),...S3r(e),...w3r(e),...k3r(e),..._3r(e),...E3r(e),...T3r(e),MuiPaper:{styleOverrides:{root:{backgroundImage:"none"},outlined:{borderColor:e.color.line}}},MuiAppBar:{defaultProps:{elevation:e.elevation.appBar},styleOverrides:{root:t&&{backgroundColor:t.background,color:t.text,borderBottom:`1px solid ${e.color.line}`}}}}}var Dv="#0e1116",tVe="#141820",hbe="#1b202a",pbe="#e3e7ee",rVe="#8a93a3",sZ="#8b9cff",mbe="#5fd0a0",gbe="#f2b45a",ybe="#f27a7a",A3r={secondary:"rgba(255, 255, 255, 0.7)",hover:"rgba(255, 255, 255, 0.12)",active:"rgba(255, 255, 255, 0.16)",dot:"#ffb74d",dotRing:"rgba(0, 0, 0, 0.15)"},vbe={dark:{color:{background:Dv,surface:tVe,raised:hbe,line:"#262c37",lineSoft:"#1d222b",text:{primary:pbe,secondary:rVe,disabled:"#5c6473"},selected:"rgba(139, 156, 255, 0.14)",wash:{warning:"rgba(242, 180, 90, 0.09)",error:"rgba(242, 122, 122, 0.09)"},well:Dv,stripe:hbe,codeWash:"rgba(255, 255, 255, 0.08)",overlay:{background:hbe,text:pbe},scrim:"rgba(0, 0, 0, 0.5)",appBar:{background:tVe,text:pbe},onAppBar:{...A3r,secondary:rVe,level:{ok:mbe,warn:gbe,over:ybe}},statusBar:{background:tVe,text:rVe,hoverText:pbe,secondary:"#5c6473",hover:hbe,active:"transparent",dot:sZ,dotRing:"rgba(139, 156, 255, 0.14)",readyText:sZ,level:{ok:mbe,warn:gbe,over:ybe}},primary:{main:sZ,contrastText:Dv},secondary:{main:"#c99bff",contrastText:Dv},success:{main:mbe,contrastText:Dv},warning:{main:gbe,contrastText:Dv},error:{main:ybe,contrastText:Dv},info:{main:"#6cb6ff",contrastText:Dv}},terminal:{background:Dv,foreground:"#d6dbe4",cursor:sZ,cursorAccent:Dv,selectionBackground:"rgba(139, 156, 255, 0.28)",black:"#1b2029",red:ybe,green:mbe,yellow:gbe,blue:sZ,magenta:"#c99bff",cyan:"#6cc8d8",white:"#c3c9d4",brightBlack:"#5c6473",brightRed:"#ff9a9a",brightGreen:"#82e0b6",brightYellow:"#ffc97a",brightBlue:"#a9b6ff",brightMagenta:"#dcb8ff",brightCyan:"#8fdbe8",brightWhite:"#eef1f6"},elevation:{appBar:0,overlay:"0 14px 34px rgba(0, 0, 0, 0.45)",dialog:"0 30px 60px rgba(0, 0, 0, 0.5)",stuckHeader:"0 8px 8px -9px rgba(0, 0, 0, 0.8)"}},light:{color:{background:"#fff",surface:"#fff",raised:"rgba(0, 0, 0, 0.04)",line:"rgba(0, 0, 0, 0.12)",lineSoft:"rgba(0, 0, 0, 0.12)",text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},selected:"rgba(0, 0, 0, 0.08)",wash:{warning:"rgba(255, 167, 38, 0.09)",error:"rgba(244, 67, 54, 0.09)"},well:"#f3f4f6",stripe:"rgba(0, 0, 0, 0.1)",codeWash:"rgba(0, 0, 0, 0.06)",overlay:{background:"rgba(97, 97, 97, 0.92)",text:"#fff"},onAppBar:{...A3r,level:{ok:"#b9f6ca",warn:"#ffe57f",over:"#ffcdd2"}},primary:{main:"#1976d2",light:"#42a5f5",dark:"#1565c0",contrastText:"#fff"},secondary:{main:"#9c27b0",light:"#ba68c8",dark:"#7b1fa2",contrastText:"#fff"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20",contrastText:"#fff"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100",contrastText:"#fff"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828",contrastText:"#fff"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b",contrastText:"#fff"},scrim:"rgba(15, 23, 42, 0.32)",statusBar:{background:"#f3f4f6",text:"rgba(0, 0, 0, 0.6)",hoverText:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.38)",hover:"rgba(0, 0, 0, 0.06)",active:"transparent",dot:"#1976d2",dotRing:"rgba(25, 118, 210, 0.16)",readyText:"#1976d2",level:{ok:"#2e7d32",warn:"#ed6c02",over:"#d32f2f"}}},terminal:{background:"#ffffff",foreground:"#333333",cursor:"#333333",cursorAccent:"#ffffff",selectionBackground:"#add6ff",black:"#000000",red:"#cd3131",green:"#107c10",yellow:"#949800",blue:"#0451a5",magenta:"#bc05bc",cyan:"#0598bc",white:"#555555",brightBlack:"#666666",brightRed:"#cd3131",brightGreen:"#14ce14",brightYellow:"#b5ba00",brightBlue:"#0451a5",brightMagenta:"#bc05bc",brightCyan:"#0598bc",brightWhite:"#a5a5a5"},elevation:{appBar:0,overlay:"0 8px 24px rgba(15, 23, 42, 0.12)",dialog:"0 24px 48px rgba(15, 23, 42, 0.18)",stuckHeader:"0 6px 6px -7px rgba(0, 0, 0, 0.2)"}},font:{ui:'"Geist Variable", "Segoe UI", system-ui, sans-serif',mono:'"Geist Mono Variable", ui-monospace, Menlo, Consolas, monospace',terminal:'"Geist Mono Variable", ui-monospace, Menlo, Consolas, monospace'},type:{fontSize:14,terminalFontSize:13,scale:{caption:12,body2:14,body1:15,subtitle2:14,subtitle1:15,h6:16,h5:18,h4:24,button:14},button:{textTransform:"none",fontWeight:600}},radius:{sm:6,md:8},spacing:8};var kS=e=>`${e/16}rem`;function P3r({font:e,type:t}){let{scale:r}=t;return{fontFamily:e.ui,fontFamilyMono:e.mono,fontSize:t.fontSize,button:{...t.button,fontSize:kS(r.button)},caption:{fontSize:kS(r.caption)},body2:{fontSize:kS(r.body2)},body1:{fontSize:kS(r.body1)},subtitle2:{fontSize:kS(r.subtitle2)},subtitle1:{fontSize:kS(r.subtitle1)},h6:{fontSize:kS(r.h6)},h5:{fontSize:kS(r.h5)},h4:{fontSize:kS(r.h4)}}}function L3r(e){return{MuiButtonBase:{styleOverrides:{root:{cursor:"pointer","&.Mui-disabled":{cursor:"default"}}}},MuiLink:{styleOverrides:{root:{cursor:"pointer"}}},MuiAppBar:{defaultProps:{elevation:e.elevation.appBar}}}}function Koi(e){let{dark:t,light:r,...n}=vbe;return{...n,...e==="dark"?t:r,mode:e}}function M3r(e){let t=Koi(e),{color:r}=t;return Y0({tokens:t,palette:{mode:e,background:{default:r.background,paper:r.surface},primary:r.primary,secondary:r.secondary,success:r.success,warning:r.warning,error:r.error,info:r.info,text:r.text,divider:r.line,action:{hover:r.raised,selected:r.selected}},typography:P3r(t),shape:{borderRadius:t.radius.sm},spacing:t.spacing,components:{...L3r(t),...R3r(t)}})}function I3r(){if(typeof document>"u"||!document.fonts)return Promise.resolve();let{font:e,type:t}=vbe;return Promise.allSettled([document.fonts.load(`${t.fontSize}px ${e.ui}`),document.fonts.load(`${t.terminalFontSize}px ${e.terminal}`)])}P$();P$();var sVe=g6("Preferences",{web:()=>Promise.resolve().then(()=>($3r(),F3r)).then(e=>new e.PreferencesWeb)});var bbe=E(fe(),1);var lVe=E(fe(),1);var H3r=E($(),1);function z3r({value:e,error:t,onChange:r}){return(0,H3r.jsx)(Yn,{autoFocus:!0,label:"Node URL",placeholder:"https://mac.tail1234.ts.net:3100",value:e,onChange:n=>r(n.target.value),error:!!t,helperText:t,slotProps:{htmlInput:{autoCapitalize:"none",autoCorrect:"off",inputMode:"url"}}})}var nai=/^[a-z]+:[/]{2}/i;function U3r(e){let t=e.trim(),r=nai.test(t)?t:`https://${t}`;try{let n=new URL(r);return n.protocol!=="https:"&&n.protocol!=="http:"?void 0:n.origin}catch{return}}var j_=E($(),1),iai={height:"100%",boxSizing:"border-box",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",p:2,bgcolor:"background.default"};function W3r({onSave:e}){let[t,r]=(0,lVe.useState)(""),[n,i]=(0,lVe.useState)();return(0,j_.jsx)(J,{component:"form",onSubmit:a=>{a.preventDefault();let s=U3r(t);s?e(s):i("Enter an http(s) URL, e.g. https://mac.tail1234.ts.net:3100")},sx:iai,children:(0,j_.jsxs)(Et,{spacing:2,sx:{width:"100%",maxWidth:420},children:[(0,j_.jsx)(Le,{variant:"h6",children:"Connect to a home node"}),(0,j_.jsx)(Le,{variant:"body2",color:"text.secondary",children:"Enter the Tailscale URL of the assist web server to view its sessions and those of the nodes it links to."}),(0,j_.jsx)(z3r,{value:t,error:n,onChange:a=>{r(a),i(void 0)}}),(0,j_.jsx)(Mt,{type:"submit",variant:"contained",disabled:!t.trim(),children:"Connect"})]})})}var j3r=E($(),1),G3r="homeNodeUrl",V3r=p6.isNativePlatform();function q3r({children:e}){let[t,r]=(0,bbe.useState)(V3r?void 0:""),n=i=>{Tot(i),r(i)};return(0,bbe.useEffect)(()=>{V3r&&sVe.get({key:G3r}).then(({value:i})=>{i?n(i):r(null)}).catch(()=>r(null))},[]),t===void 0?null:t===null?(0,j3r.jsx)(W3r,{onSave:i=>{sVe.set({key:G3r,value:i}),n(i)}}):e}var Y3r=E(fe(),1);var xbe=E($(),1),oai=5;function K3r({children:e}){let[t,r]=(0,Y3r.useState)(null);return(0,xbe.jsxs)(mke.Provider,{value:t,children:[e,(0,xbe.jsx)(J,{ref:r,"data-testid":"toast-stack",sx:{position:"fixed",zIndex:"snackbar",bottom:{xs:1,sm:3},left:{xs:1,sm:"50%"},right:{xs:1,sm:"auto"},transform:{sm:"translateX(-50%)"},display:"flex",flexDirection:"column",alignItems:{xs:"stretch",sm:"center"},gap:1,pointerEvents:"none","& > *":{pointerEvents:"auto"},[`& > :nth-last-of-type(n+${oai+1})`]:{display:"none"}}})]})}P$();var cZ;(function(e){e.Dark="DARK",e.Light="LIGHT",e.Default="DEFAULT"})(cZ||(cZ={}));var X3r;(function(e){e.None="NONE",e.Slide="SLIDE",e.Fade="FADE"})(X3r||(X3r={}));var Z3r=g6("StatusBar");var J3r=E(fe(),1);P$();var Q3r=p6.isNativePlatform();function eRr(e){(0,J3r.useEffect)(()=>{Q3r&&Z3r.setStyle({style:e==="dark"?cZ.Dark:cZ.Light}).catch(()=>{})},[e])}var Nv=E($(),1);function aai(){let{mode:e,toggle:t}=d3r(),r=(0,rRr.useMemo)(()=>M3r(e),[e]);return eRr(e),(0,Nv.jsxs)(yQ,{theme:r,children:[(0,Nv.jsx)(iJ,{}),(0,Nv.jsx)(K3r,{children:(0,Nv.jsx)(q3r,{children:(0,Nv.jsx)(u3r,{mode:e,toggle:t})})})]})}var sai=gwe([{path:"*",element:(0,Nv.jsx)(aai,{})}]);function lai(){return(0,Nv.jsx)(lwe,{router:sai})}var tRr=document.getElementById("app");tRr&&I3r().then(()=>{(0,nRr.createRoot)(tRr).render((0,Nv.jsx)(lai,{}))});})();
|
|
4025
4025
|
/*! Bundled license information:
|
|
4026
4026
|
|
|
4027
4027
|
react/cjs/react.production.js:
|