@staff0rd/assist 0.786.0 → 0.786.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -27,10 +27,24 @@ Every glob must match files this repo actually has. Check each one does before p
|
|
|
27
27
|
|
|
28
28
|
## Step 3: Put the proposal to the user
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
Do not ask in chat. Write the proposal as markdown to a scratch file with the Write tool, one heading per key so each can be commented on:
|
|
31
31
|
|
|
32
|
-
-
|
|
33
|
-
- `
|
|
32
|
+
- each glob as its own bullet, with the files in this repo it matches (a count, plus a few names), and why it belongs
|
|
33
|
+
- `descriptionWordCap` with its value
|
|
34
|
+
- the scope you propose, with the other one named so the user can swap it:
|
|
35
|
+
- `project` — the repo's own `assist.yml`, checked in, so the team reviews against the same globs (propose this unless the user has said otherwise)
|
|
36
|
+
- `repo` — this repo's block in `~/.assist.yml`, personal to this machine
|
|
37
|
+
|
|
38
|
+
Then run, **as a background task**, doing no other work until it returns:
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
assist ask --title 'High-level review config' --body - < <scratch file>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
- **Approved (exit 0)** — fold every printed inline comment into the answers (a comment on a glob edits or drops it; a comment on the scope switches it), then write.
|
|
45
|
+
- **Rejected (non-zero exit)** — write nothing. Address the reason and each comment, re-check any changed glob still matches files, revise the scratch file and re-run `assist ask`.
|
|
46
|
+
|
|
47
|
+
Outside a web session `assist ask` only prints the markdown and exits 0 without a decision: ask the user in chat instead, and write only once they have answered.
|
|
34
48
|
|
|
35
49
|
## Step 4: Write the answers
|
|
36
50
|
|
|
@@ -3973,7 +3973,7 @@ ${f.join(`
|
|
|
3973
3973
|
`)})}var V9=L(z(),1);function thr({entry:e,state:t,actions:r}){return(0,V9.jsxs)(ue,{sx:{px:2,pb:2,pl:{xs:2,sm:7.5},display:"grid",gap:1.5},children:[(0,V9.jsx)(Jdr,{entry:e,state:t,actions:r}),(0,V9.jsx)(Fe,{variant:"caption",color:"text.secondary",children:"History \xB7 ~/.assist/watchers/"}),(0,V9.jsx)(ehr,{lines:e.status?.history??[]})]})}function G9(e){let t=e.status?.loop;return t!==void 0&&(t.phase!=="off"||t.paused===!0)}var q9=L(z(),1),zHn={display:"flex",gap:.5,flexWrap:"wrap",justifyContent:{xs:"flex-start",sm:"flex-end"},gridColumn:{xs:"1 / -1",sm:"auto"}};function rhr({entry:e,state:t,actions:r}){let n=r.notices.busy[e.name],i=e.status?.loop.paused===!0;return(0,q9.jsxs)(ue,{sx:zHn,children:[t.kind==="ready"&&(0,q9.jsx)(nge,{entry:e,actions:r}),t.kind==="diverged"&&(0,q9.jsx)(ege,{entry:e,actions:r}),G9(e)&&(0,q9.jsx)(qt,{size:"small",disabled:n!==void 0,onClick:()=>{r.control(e,i?"resume":"pause")},children:i?"Resume":"Pause"})]})}var HHn={ready:"warning",diverged:"error"},nhr=e=>t=>{let r=HHn[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 ihr=L(z(),1),ohr=ft((0,ihr.jsx)("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"}),"ArrowUpward");var ahr=L(z(),1),shr=ft((0,ahr.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 lhr=L(z(),1),chr=ft((0,lhr.jsx)("path",{d:"M6 19h4V5H6zm8-14v14h4V5z"}),"Pause");var uhr=L(z(),1),fhr=ft((0,uhr.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 dhr=L(z(),1),hhr=ft((0,dhr.jsx)("path",{d:"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z"}),"Warning");var U1=L(z(),1),UHn={ok:{tone:"success",icon:(0,U1.jsx)(j0,{})},ready:{tone:"warning",icon:(0,U1.jsx)(ohr,{})},diverged:{tone:"error",icon:(0,U1.jsx)(hhr,{})},retrying:{tone:"warning",icon:(0,U1.jsx)(Ree,{})},paused:{tone:"neutral",icon:(0,U1.jsx)(chr,{})},off:{tone:"neutral",icon:(0,U1.jsx)(fhr,{})},unavailable:{tone:"neutral",icon:(0,U1.jsx)(shr,{})}};function WHn(e,t){return t==="neutral"?e.palette.text.secondary:e.palette[t].main}function phr({state:e}){let{tone:t,icon:r}=UHn[e.kind];return(0,U1.jsxs)(ue,{component:"span",sx:n=>({alignSelf:"flex-start",display:"inline-flex",alignItems:"center",gap:.75,height:24,px:1.25,borderRadius:3,fontSize:12,fontWeight:500,whiteSpace:"nowrap",color:WHn(n,t),bgcolor:t==="neutral"?n.palette.action.hover:Ea(n.palette[t].main,.1),border:t==="neutral"?`1px solid ${n.palette.divider}`:0,"& svg":{fontSize:14}}),children:[r,e.label]})}var Xj=L(z(),1);function mhr({state:e}){return(0,Xj.jsxs)(ue,{sx:{...Jme,gridColumn:{xs:"2",sm:"auto"},gap:.25},children:[(0,Xj.jsx)(phr,{state:e}),(0,Xj.jsx)(Fe,{variant:"caption",color:"text.secondary",noWrap:!0,children:e.line})]})}var W1=L(z(),1),ghr={gridColumn:{xs:"2",sm:"auto"}},VHn={fontFamily:"'Roboto Mono', ui-monospace, Menlo, monospace",fontSize:12,fontVariantNumeric:"tabular-nums"};function yhr({entry:e}){let t=e.status;if(!t)return(0,W1.jsx)(Fe,{variant:"caption",color:"text.secondary",sx:ghr,children:"\u2014"});let r=t.running!==t.built;return(0,W1.jsxs)(ue,{sx:{...ghr,display:"flex",flexDirection:"column"},children:[(0,W1.jsxs)(ue,{component:"span",sx:VHn,children:["v",t.running,r&&(0,W1.jsxs)(W1.Fragment,{children:[" ",(0,W1.jsx)(ue,{component:"span",sx:{color:"warning.main"},children:"\u2192"})," ","v",t.built]})]}),(0,W1.jsx)(Fe,{variant:"caption",color:"text.secondary",children:r?"running \u2192 built":"running"})]})}function oge(e){return(e.status?.restart.length??0)>0}function vhr(e,t){return e.paused?{kind:"paused",label:"Paused",line:"won't pull until resumed"}:e.phase==="off"?{kind:"off",label:"Off",line:e.reason??"not running"}:e.phase==="retrying"?{kind:"retrying",label:"Retrying",line:`${e.reason??"lap failed"} \xB7 ${t}`}:{kind:"ok",label:"Up to date",line:`watching origin since ${t}`}}function m_(e){let{status:t}=e;if(!t)return{kind:"unavailable",label:"Unavailable",line:e.error??"no update state"};let{loop:r}=t,n=fa(r.since);return r.phase==="diverged"?{kind:"diverged",label:"Diverged \xB7 fixing",line:`diverged ${n}${r.escalationId?` \xB7 session ${r.escalationId}`:""}`}:oge(e)?{kind:"ready",label:"Restart to update",line:`restart ${t.restart.map(U9).join(" + ")}${r.paused?" \xB7 paused":""}`}:vhr(r,n)}var V1=L(z(),1);function xhr({entry:e,actions:t}){let[r,n]=(0,bhr.useState)(!1),i=m_(e);return(0,V1.jsxs)(ue,{component:"article",sx:{"& + &":{borderTop:1,borderColor:"divider"}},children:[(0,V1.jsxs)(ue,{sx:nhr(i.kind),children:[(0,V1.jsx)(jdr,{open:r,label:`${r?"Hide":"Show"} history for ${e.name}`,onToggle:()=>n(o=>!o)}),(0,V1.jsx)(Ydr,{entry:e}),(0,V1.jsx)(yhr,{entry:e}),(0,V1.jsx)(mhr,{state:i}),(0,V1.jsx)(rhr,{entry:e,state:i,actions:t})]}),r&&(0,V1.jsx)(thr,{entry:e,state:i,actions:t})]})}var Thr=L(z(),1),age=ft((0,Thr.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 x$e=L(ge(),1);var j9=L(z(),1);function Shr({entries:e,actions:t}){let[r,n]=(0,x$e.useState)(!1),[i,o]=(0,x$e.useState)(!1),a=e.filter(l=>m_(l).kind==="ready").length,s=e.some(l=>G9(l)&&!l.status?.loop.paused);return(0,j9.jsxs)(ue,{sx:{display:"flex",gap:1,flexWrap:"wrap"},children:[(0,j9.jsx)(qt,{variant:"outlined",size:"small",startIcon:(0,j9.jsx)(age,{}),disabled:!s||r,onClick:()=>{n(!0),t.checkAll(e).finally(()=>n(!1))},children:"Check now"}),(0,j9.jsx)(qt,{variant:"contained",size:"small",disabled:a===0||i,onClick:()=>{o(!0),t.restartReady(e).finally(()=>o(!1))},children:a?`Restart ready nodes (${a})`:"Restart ready nodes"})]})}function Chr(e){let t=e.map(o=>m_(o).kind),r=o=>t.filter(a=>a===o).length,n=r("ready"),i=[`${e.length} node${e.length===1?"":"s"}`];return i.push(n?`${n} ready to restart`:"all running their latest build"),r("diverged")&&i.push(`${r("diverged")} diverged`),r("unavailable")&&i.push(`${r("unavailable")} unavailable`),i.join(" \xB7 ")}var Ohr=L(ge(),1);function whr(e,t){return`${e}:${t}`}var T$e=L(ge(),1);async function Y9(e){if(!e)return"web server unreachable";try{return(await e.json()).error??`HTTP ${e.status}`}catch{return`HTTP ${e.status}`}}async function _hr(e,t){let r;try{r=await fetch(tn(`/api/updates/control?action=${t}`,e.local?void 0:e.name),{method:"POST"})}catch{}return r?.ok?void 0:Y9(r)}var GHn=5e3,khr={pause:"Pausing",resume:"Resuming",check:"Checking"};function Ehr(e,t){let{mark:r,setError:n,setBack:i}=e,o=(0,T$e.useCallback)(async(s,l)=>{r(s.name,khr[l]);let u=await _hr(s,l);return u&&n(`${khr[l]} ${s.name} failed: ${u}`),r(s.name),t(),!u&&l==="check"&&setTimeout(t,GHn),!u},[r,n,t]),a=(0,T$e.useCallback)(async s=>{let l=s.filter(d=>G9(d)&&!d.status?.loop.paused),f=(await Promise.all(l.map(d=>o(d,"check")))).filter(Boolean).length;f&&i(`Checking ${f} node${f===1?"":"s"} against origin`)},[o,i]);return{control:o,checkAll:a}}var S$e=L(ge(),1);var G1=L(ge(),1);var K9={target:"both",label:"Restart daemon",message:"This restarts the sessions daemon and the web server, then reloads the page once the server is back."};function g_(e,t){let r=t?`&node=${encodeURIComponent(t)}`:"";return fetch(`/api/restart?target=${e}${r}`,{method:"POST"})}var w2=L(ge(),1);var qHn="/api/session-layout";async function jHn(){try{return(await fetch(qHn,{cache:"no-store"})).ok}catch{return!1}}async function Rhr(e){let t=0;for(;!e();){if(t=await jHn()?t+1:0,t>=2)return!e();await new Promise(r=>setTimeout(r,300))}return!1}function YHn(){return{sawDisconnect:!1,waiting:!1,abandoned:!0}}function Ahr(e,t,r){let n=(0,w2.useRef)(YHn()),i=(0,w2.useRef)(r);i.current=r,(0,w2.useEffect)(()=>{let s=n.current;if(!(!e||s.abandoned)){if(t){s.sawDisconnect=!0;return}!s.sawDisconnect||s.waiting||(s.waiting=!0,Rhr(()=>s.abandoned).then(l=>{l&&i.current()}))}},[e,t]);let o=(0,w2.useCallback)(()=>{n.current.abandoned=!0},[]),a=(0,w2.useCallback)(()=>{n.current.abandoned=!0,n.current={sawDisconnect:!1,waiting:!1,abandoned:!1}},[]);return(0,w2.useEffect)(()=>o,[o]),{arm:a,abandon:o}}var KHn=15e3;function y_(e,t,r){let[n,i]=(0,G1.useState)(!1),[o,a]=(0,G1.useState)(null),s=(0,G1.useRef)(void 0),{arm:l,abandon:u}=Ahr(n,t,()=>{clearTimeout(s.current),r?.(),globalThis.location.reload()});(0,G1.useEffect)(()=>()=>clearTimeout(s.current),[]);let f=(0,G1.useCallback)(async h=>{i(!0),l(),s.current=setTimeout(()=>{u(),i(!1),a("Web server did not come back")},KHn);try{if(!(await g_(h)).ok)throw new Error("restart failed")}catch{u(),clearTimeout(s.current),i(!1),a("Failed to restart web server")}},[l,u]),d=(0,G1.useCallback)(()=>f(e),[f,e]);return{pending:n,error:o,clearError:()=>a(null),restart:d,restartTo:f}}function sge(e){return e.local&&(e.status?.restart.includes("webserver")??!1)}async function lge(e,t){try{let r=await fetch(tn("/api/updates",t?void 0:e)),n=await r.json();if(!r.ok)throw new Error(n?.error??`HTTP ${r.status}`);return{name:e,local:t,status:n}}catch(r){return{name:e,local:t,error:r instanceof Error?r.message:"Failed to load update state"}}}var XHn=2e3,ZHn=9e4,QHn=e=>new Promise(t=>setTimeout(t,e));async function Phr(e,t){let r=Date.now()+ZHn;for(;Date.now()<r;){await QHn(XHn);let n=await lge(e.name,e.local),i=n.status;if(i?.daemonReachable&&!t.some(o=>i.restart.includes(o)))return n}}async function Lhr(e,t,r){let n;try{n=await g_(t,e.local?void 0:e.name)}catch{}if(!n?.ok)throw new Error(await Y9(n));let i=await Phr(e,r);if(!i?.status)throw new Error(`${e.name} did not come back`);return i.status.running}async function Mhr(e,t,r){try{let n=await Lhr(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 Ihr(e){return e.length>1?"both":e[0]}function Dhr(e,t,r){let n=y_("webserver",e),i=(0,S$e.useCallback)(async a=>{let s=Ihr(a.status?.restart??[]);if(s){if(t.mark(a.name,"Restarting"),sge(a))return n.restartTo(s);await Mhr(a,s,t),t.mark(a.name),r()}},[n,t,r]),o=(0,S$e.useCallback)(async a=>{let s=a.filter(l=>m_(l).kind==="ready");await Promise.all(s.filter(l=>!sge(l)).map(l=>i(l)));for(let l of s.filter(sge))await i(l)},[i]);return{restart:i,restartReady:o,localError:n.error,clearLocalError:n.clearError}}var X9=L(ge(),1);function Nhr(){let[e,t]=(0,X9.useState)(null),[r,n]=(0,X9.useState)(null),[i,o]=(0,X9.useState)({}),a=(0,X9.useCallback)((s,l)=>{o(u=>{let f={...u};return l?f[s]=l:delete f[s],f})},[]);return{busy:i,mark:a,back:e,setBack:t,clearBack:()=>t(null),error:r,setError:n,clearError:()=>n(null)}}function Bhr(e,t){let{refresh:r}=z9(),n=Nhr(),i=Dhr(e,n,r),o=Ehr(n,r),a=FP(t),s=(0,Ohr.useCallback)(l=>{let u=l.status?.loop.escalationId;u&&a(l.local?u:whr(l.name,u))},[a]);return{...i,...o,openFix:s,notices:n}}var t0=L(z(),1);function Fhr({reconnecting:e,selectSession:t}){let{entries:r,loading:n}=z9(),i=Bhr(e,t),{notices:o}=i;return(0,t0.jsxs)(zl,{loading:n,header:(0,t0.jsxs)(ue,{sx:{display:"flex",alignItems:"flex-end",gap:2,flexWrap:"wrap",mb:3},children:[(0,t0.jsxs)(ue,{sx:{flex:"1 1 auto"},children:[(0,t0.jsx)(Fe,{variant:"h5",component:"h1",children:"Updates"}),(0,t0.jsx)(Fe,{variant:"body2",color:"text.secondary",children:Chr(r)})]}),(0,t0.jsx)(Shr,{entries:r,actions:i})]}),children:[(0,t0.jsx)(an,{variant:"outlined",component:"section","aria-label":"Nodes",children:r.map(a=>(0,t0.jsx)(xhr,{entry:a,actions:i},a.name))}),(0,t0.jsx)(Yj,{notices:{...o,error:o.error??i.localError,clearError:()=>{o.clearError(),i.clearLocalError()}}})]})}var kpr=L(ge(),1);var Z9=L(ge(),1);function cge(e,t){let r=(0,Z9.useRef)(null),[n,i]=(0,Z9.useState)();return(0,Z9.useLayoutEffect)(()=>{e===t&&r.current&&i(r.current.offsetHeight)},[e,t]),{ref:r,height:n}}var zhr=L(ge(),1);function uge(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 fge(e){let t=o=>o.startsWith("local:"),r=o=>{let a=uge(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,uge(o));continue}let a=r(o),s=(n.get(a)??0)>1;i.set(o,s?uge(o):a)}return i}var Zj={field:"lastPhase",direction:"desc"};var Qj="all",Jj="all";async function $hr(e,t,r){let n=new URLSearchParams({page:String(e),pageSize:String(t)});r.origin!==Qj&&n.set("origin",r.origin),r.status!==Jj&&n.set("status",r.status),r.sort.field!==Zj.field&&n.set("sort",r.sort.field),r.sort.direction!==Zj.direction&&n.set("direction",r.sort.direction);let i=await fetch(`/api/usage/items?${n}`);if(!i.ok)throw new Error(`Failed to load item usage (HTTP ${i.status}).`);return i.json()}var eY=L(z(),1);function Hhr({origins:e,origin:t,onChange:r}){let n=(0,zhr.useMemo)(()=>fge(e.map(o=>o.origin)),[e]),i=e.reduce((o,a)=>o+a.count,0);return(0,eY.jsxs)(ni,{select:!0,size:"small",label:"Repo",value:t,onChange:o=>r(o.target.value),sx:{minWidth:220},children:[(0,eY.jsx)(fn,{value:Qj,children:`All repos (${i})`}),e.map(o=>(0,eY.jsx)(fn,{value:o.origin,children:`${n.get(o.origin)??o.origin} (${o.count})`},o.origin))]})}var C$e=L(z(),1),JHn=[{value:Jj,label:"All"},{value:"done",label:"Done"},{value:"running",label:"Running"}];function Uhr({status:e,onChange:t}){return(0,C$e.jsx)(du,{size:"small",exclusive:!0,value:e,onChange:(r,n)=>n&&t(n),"aria-label":"Filter items by status",children:JHn.map(r=>(0,C$e.jsx)(hs,{value:r.value,children:r.label},r.value))})}var Q9=L(z(),1),eUn={display:"flex",alignItems:"center",gap:2,flexWrap:"wrap",mb:2},tUn="Repos show their bare name, or org/repo when two share one. Totals sum every phase's recorded usage.";function Whr({origins:e,origin:t,onOriginChange:r,status:n,onStatusChange:i}){return(0,Q9.jsxs)(ue,{sx:eUn,children:[(0,Q9.jsx)(Uhr,{status:n,onChange:i}),(0,Q9.jsx)(Hhr,{origins:e,origin:t,onChange:r}),(0,Q9.jsx)(Fe,{variant:"caption",color:"text.disabled",children:tUn})]})}var tpr=L(ge(),1);function zd(e){return e<1e3?String(e):e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(1)}M`}function r0(e){let t=Math.round(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60);if(r<60){let o=t%60;return o>0?`${r}m ${o}s`:`${r}m`}let n=Math.floor(r/60),i=r%60;return i>0?`${n}h ${i}m`:`${n}h`}var hge=L(z(),1),rUn={whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"},Vhr={display:"block",fontSize:"0.75rem",color:"text.disabled",whiteSpace:"nowrap"},nUn={...Vhr,fontStyle:"italic"};function dge({total:e,perPhase:t,partial:r}){return(0,hge.jsxs)(_n,{align:"right",sx:rUn,children:[e,t?(0,hge.jsx)(Fe,{component:"span",sx:r?nUn:Vhr,children:t}):null]})}var tY=L(z(),1),iUn={width:"100%",maxWidth:0},oUn={display:"block",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},aUn={display:"block",mt:"2px",fontSize:"0.75rem",color:"text.secondary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function Ghr({id:e,name:t,type:r,repoLabel:n}){return(0,tY.jsxs)(_n,{sx:iUn,children:[(0,tY.jsx)(xn,{component:ys,to:BT(e),underline:"hover",color:"text.primary",title:t,sx:oUn,children:t}),(0,tY.jsxs)(Fe,{component:"span",sx:aUn,children:[so(e)," \xB7 ",r," \xB7 ",n]})]})}function qhr(e){let t=Math.max(1,e.recordedPhases);return{active:`${r0(e.activeMs/t)} / phase`,tokens:`${zd(Math.round((e.tokensUp+e.tokensDown)/t))} / phase`}}function jhr(e){if(!(e.status==="done"||e.recordedPhases>e.phaseCount))return`${e.recordedPhases} of ${e.phaseCount} phases`}var pge={story:"info",bug:"error"},mge={todo:"default","in-progress":"warning",done:"success",wontdo:"error"};var sUn=new Set(["done","wontdo"]);function Yhr(e){return sUn.has(e)?{label:e,color:mge[e]}:{label:"running",color:"warning"}}var w$e=L(z(),1),lUn={height:20,fontSize:"0.6875rem"};function Khr({status:e}){let t=Yhr(e);return(0,w$e.jsx)(_n,{children:(0,w$e.jsx)(sn,{label:t.label,size:"small",variant:"outlined",color:t.color,sx:lUn})})}var n0=L(z(),1),Xhr={whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"};function Zhr({row:e,repoLabel:t}){let r=qhr(e);return(0,n0.jsxs)(qu,{hover:!0,children:[(0,n0.jsx)(Ghr,{id:e.id,name:e.name,type:e.type,repoLabel:t}),(0,n0.jsx)(Khr,{status:e.status}),(0,n0.jsx)(dge,{total:String(e.phaseCount||e.recordedPhases),perPhase:jhr(e),partial:!0}),(0,n0.jsx)(dge,{total:r0(e.activeMs),perPhase:r.active}),(0,n0.jsx)(dge,{total:`\u2191 ${zd(e.tokensUp)} \u2193 ${zd(e.tokensDown)}`,perPhase:r.tokens}),(0,n0.jsx)(_n,{align:"right",sx:Xhr,children:(0,n0.jsxs)(ue,{component:"span",sx:{color:YJ(e.peakContextPct)},children:[Math.round(e.peakContextPct),"%"]})}),(0,n0.jsx)(_n,{align:"right",sx:Xhr,children:e.lastPhaseAt?fa(e.lastPhaseAt):"\u2014"})]})}var Qhr=[{label:"Item"},{label:"Status"},{label:"Phases",sort:"phases",numeric:!0},{label:"Active",sort:"active",numeric:!0,tooltip:"Accumulated active time across the item's phases \u2014 not wall clock."},{label:"Tokens",sort:"tokens",numeric:!0},{label:"Peak ctx",sort:"peakContext",numeric:!0,tooltip:"The highest context-window usage any one phase reached."},{label:"Last phase",sort:"lastPhase",numeric:!0,tooltip:"When the item's most recent phase session started."}];var Fm=L(z(),1),cUn={"& th":{whiteSpace:"nowrap"}};function Jhr({column:e}){return e.tooltip?(0,Fm.jsx)(lr,{title:e.tooltip,describeChild:!0,children:(0,Fm.jsx)("span",{children:e.label})}):(0,Fm.jsx)(Fm.Fragment,{children:e.label})}function epr({sort:e,onSort:t}){return(0,Fm.jsx)(Bk,{sx:cUn,children:(0,Fm.jsx)(qu,{children:Qhr.map(r=>{let n=r.sort,i=n!==void 0&&e.field===n;return(0,Fm.jsx)(_n,{align:r.numeric?"right":"left",sortDirection:i?e.direction:!1,children:n===void 0?(0,Fm.jsx)(Jhr,{column:r}):(0,Fm.jsx)(pve,{active:i,direction:i?e.direction:"desc",onClick:()=>t(n),children:(0,Fm.jsx)(Jhr,{column:r})})},r.label)})})})}var pR=L(z(),1),uUn={"& td, & th":{px:1.5}};function rpr({rows:e,origins:t,sort:r,onSort:n}){let i=(0,tpr.useMemo)(()=>fge([...t,...e.map(o=>o.origin)]),[t,e]);return(0,pR.jsx)(Ok,{component:an,children:(0,pR.jsxs)(kv,{size:"small",sx:uUn,children:[(0,pR.jsx)(epr,{sort:r,onSort:n}),(0,pR.jsx)(Ev,{children:e.map(o=>(0,pR.jsx)(Zhr,{row:o,repoLabel:i.get(o.origin)??o.origin},o.id))})]})})}function npr(e){let t=Math.max(1,e.medianPhases),r=e.repoCount===1?"repo":"repos";return{items:String(e.itemCount),itemsFoot:`across ${e.repoCount} ${r} \xB7 ${e.doneCount} done`,phases:String(Math.round(e.medianPhases*10)/10),active:r0(e.medianActiveMs),activeFoot:`${r0(e.medianActiveMs/t)} per phase`,tokens:zd(Math.round(e.medianTokens)),tokensFoot:`${zd(Math.round(e.medianTokens/t))} per phase`}}var J9=L(z(),1),ipr={display:"block"},fUn={fontWeight:400,fontVariantNumeric:"tabular-nums"};function rY({label:e,value:t,foot:r}){return(0,J9.jsxs)(ue,{children:[(0,J9.jsx)(Fe,{variant:"caption",color:"text.secondary",sx:ipr,children:e}),(0,J9.jsx)(Fe,{variant:"h5",sx:fUn,children:t}),r?(0,J9.jsx)(Fe,{variant:"caption",color:"text.disabled",sx:ipr,children:r}):null]})}var mR=L(z(),1),dUn={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 opr({summary:e}){let t=npr(e);return(0,mR.jsxs)(an,{sx:dUn,children:[(0,mR.jsx)(rY,{label:"Items with recorded usage",value:t.items,foot:t.itemsFoot}),(0,mR.jsx)(rY,{label:"Median phases",value:t.phases}),(0,mR.jsx)(rY,{label:"Median active time",value:t.active,foot:t.activeFoot}),(0,mR.jsx)(rY,{label:"Median tokens",value:t.tokens,foot:t.tokensFoot})]})}var rp=L(z(),1);function apr({items:e,data:t}){let{rows:r,total:n,page:i,pageSize:o}=e,{ref:a,height:s}=cge(r.length,o);return(0,rp.jsxs)(rp.Fragment,{children:[(0,rp.jsx)(opr,{summary:t.summary}),(0,rp.jsx)(Whr,{origins:t.origins,origin:e.origin,onOriginChange:e.selectOrigin,status:e.status,onStatusChange:e.selectStatus}),n===0?(0,rp.jsx)(Fe,{color:"text.secondary",align:"center",sx:{py:6},children:"No items match this filter."}):(0,rp.jsxs)(rp.Fragment,{children:[(0,rp.jsx)(ue,{ref:a,sx:{minHeight:s},children:(0,rp.jsx)(rpr,{rows:r,origins:t.origins.map(l=>l.origin),sort:e.sort,onSort:e.sortBy})}),(0,rp.jsx)(n$,{component:"div",count:n,page:i,rowsPerPage:o,rowsPerPageOptions:[o],onPageChange:(l,u)=>e.setPage(u)})]})]})}var _2=L(z(),1);function spr({items:e}){let{data:t}=e;return(0,_2.jsxs)(_2.Fragment,{children:[(0,_2.jsx)(ue,{sx:{height:4,mb:1},children:e.fetching&&(0,_2.jsx)(Nk,{})}),t?t.origins.length===0?(0,_2.jsx)(Fe,{color:"text.secondary",align:"center",sx:{py:6},children:"No item usage recorded yet."}):(0,_2.jsx)(apr,{items:e,data:t}):null]})}function _$e(e,t,r){if(e==null)return;let n=Math.max(0,e-r),i=Math.max(0,t-n)/t;if(!(i<.05))return i}function gge(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 hUn(e,t,r,n){let i=_$e(t,r,n);if(i!=null)return e/i}function v_(e,t,r,n){let i=hUn(e,t,r,n);return i==null?"ok":i>100?"over":i>75?"warn":"ok"}var pUn=["five_hour","seven_day"],mUn=["claude","codex","pi"];function lpr(e){let[t,r]=e.includes(":")?e.split(":",2):["claude",e],n=mUn.find(o=>o===t),i=pUn.find(o=>o===r);if(!(!n||!i)&&!(n==="claude"&&e.includes(":")))return{harness:n,window:i}}var cpr={five_hour:{label:"5h",seconds:18e3},seven_day:{label:"7d",seconds:604800,tint:{light:"rgba(0, 0, 0, 0.1)",dark:"rgba(255, 255, 255, 0.1)"}}};function eB(e){let t=lpr(e);if(!t)return cpr.five_hour;let r=cpr[t.window];return t.harness==="claude"?r:{...r,label:`${gu(t.harness)} ${r.label}`}}var gUn={ok:"success.main",warn:"warning.main",over:"error.main"};function b_(e){return gUn[e]}var oY=L(z(),1),yUn={ok:"success",warn:"warning",over:"error"};function upr({percentage:e,level:t}){return(0,oY.jsxs)(ue,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,oY.jsx)(Nk,{variant:"determinate",value:Math.min(100,e),color:yUn[t],sx:{flexGrow:1,height:8,borderRadius:1}}),(0,oY.jsxs)(ue,{sx:{minWidth:40,textAlign:"right",color:b_(t)},children:[Math.round(e),"%"]})]})}function fpr(e){return e.avgContextPct==null?"\u2014":`${Math.round(e.avgContextPct)}%`}var vUn=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function k$e(e){return vUn.format(e)}var yge=L(z(),1);function dpr({peak:e}){return(0,yge.jsx)(_n,{align:"right",sx:{whiteSpace:"nowrap"},children:(0,yge.jsx)(lr,{title:`Cycle started ${k$e(new Date(e.createdAt))}`,children:(0,yge.jsx)("span",{children:k$e(new Date(e.resetsAt*1e3))})})})}var ppr=L(z(),1);function hpr(){return(0,ppr.jsx)(sn,{label:"reset",size:"small",color:"warning",variant:"outlined",title:"Quota reset mid-cycle \u2014 this is the peak reached before the reset.",sx:{ml:1}})}function mpr(e){return!e.tokensUp&&!e.tokensDown?"\u2014":`\u2191 ${zd(e.tokensUp)} \u2193 ${zd(e.tokensDown)}`}var i0=L(z(),1);function gpr({peak:e,now:t}){let{label:r,seconds:n,tint:i}=eB(e.window),o=v_(e.usedPercentage,e.resetsAt,n,t);return(0,i0.jsxs)(qu,{sx:a=>({backgroundColor:i?a.palette.mode==="dark"?i.dark:i.light:void 0}),children:[(0,i0.jsxs)(_n,{children:[r,e.resetDetected&&(0,i0.jsx)(hpr,{})]}),(0,i0.jsx)(_n,{sx:{minWidth:160},children:(0,i0.jsx)(upr,{percentage:e.usedPercentage,level:o})}),(0,i0.jsx)(_n,{align:"right",sx:{whiteSpace:"nowrap"},children:fpr(e)}),(0,i0.jsx)(_n,{align:"right",sx:{whiteSpace:"nowrap"},children:e.phaseCount??0}),(0,i0.jsx)(_n,{align:"right",sx:{whiteSpace:"nowrap"},children:mpr(e)}),(0,i0.jsx)(dpr,{peak:e})]})}var vge=L(ge(),1);function x_(e){let[t,r]=(0,vge.useState)(()=>Math.floor(Date.now()/1e3));return(0,vge.useEffect)(()=>{let n=setInterval(()=>r(Math.floor(Date.now()/1e3)),e);return()=>clearInterval(n)},[e]),t}var pc=L(z(),1);function ypr({peaks:e}){let t=x_(3e4);return(0,pc.jsx)(Ok,{component:an,children:(0,pc.jsxs)(kv,{size:"small",children:[(0,pc.jsx)(Bk,{sx:{"& th":{whiteSpace:"nowrap"}},children:(0,pc.jsxs)(qu,{children:[(0,pc.jsx)(_n,{children:"Window"}),(0,pc.jsx)(_n,{children:"Peak usage"}),(0,pc.jsx)(_n,{align:"right",children:(0,pc.jsx)(lr,{title:"Mean context-window usage across all readings in this rate-limit cycle \u2014 distinct from the Peak usage quota above.",children:(0,pc.jsx)("span",{children:"Avg context"})})}),(0,pc.jsx)(_n,{align:"right",children:(0,pc.jsx)(lr,{title:"Number of phase readings behind the average.",children:(0,pc.jsx)("span",{children:"Phases"})})}),(0,pc.jsx)(_n,{align:"right",children:"Tokens spent"}),(0,pc.jsx)(_n,{align:"right",children:"Cycle reset"})]})}),(0,pc.jsx)(Ev,{children:e.map(r=>(0,pc.jsx)(gpr,{peak:r,now:t},`${r.window}-${r.resetsAt}-${r.segment}`))})]})})}var T_=L(z(),1);function vpr({rows:e,total:t,page:r,pageSize:n,onPageChange:i}){let{ref:o,height:a}=cge(e.length,n);return(0,T_.jsxs)(T_.Fragment,{children:[(0,T_.jsx)(ue,{ref:o,sx:{minHeight:a},children:(0,T_.jsx)(ypr,{peaks:e})}),(0,T_.jsx)(n$,{component:"div",count:t,page:r,rowsPerPage:n,rowsPerPageOptions:[n],onPageChange:(s,l)=>i(l)})]})}var aY=L(ge(),1);function S_(){let[e,t]=(0,aY.useState)(!1),[r,n]=(0,aY.useState)(!1);return(0,aY.useEffect)(()=>{let i=!1;return(async()=>{try{let a=await(await fetch("/api/harness")).json();i||(t(!!a?.exposeCodexActions),n(!!a?.exposePiActions))}catch{t(!1),n(!1)}})(),()=>{i=!0}},[]),{exposeCodexActions:e,exposePiActions:r}}var E$e=L(z(),1),bpr=["five_hour","seven_day"],bUn=["codex:five_hour","codex:seven_day"];function xUn(e){let t=e?[...bpr,...bUn]:bpr;return[{value:"all",label:"All"},...t.map(r=>({value:r,label:eB(r).label}))]}function xpr({window:e,onChange:t}){let{exposeCodexActions:r}=S_();return(0,E$e.jsx)(du,{size:"small",exclusive:!0,value:e,onChange:(n,i)=>i&&t(i),"aria-label":"Filter peaks by rate-limit window",children:xUn(r).map(n=>(0,E$e.jsx)(hs,{value:n.value,children:n.label},n.value))})}var q1=L(z(),1);function Tpr({history:e}){let{window:t,total:r}=e;return(0,q1.jsxs)(q1.Fragment,{children:[(0,q1.jsx)(xpr,{window:t,onChange:e.selectWindow}),(0,q1.jsx)(ue,{sx:{height:4,my:1},children:e.fetching&&(0,q1.jsx)(Nk,{})}),r===0?(0,q1.jsx)(Fe,{color:"text.secondary",align:"center",sx:{py:6},children:t==="all"?"No usage peaks recorded yet.":`No ${eB(t).label} usage peaks recorded yet.`}):(0,q1.jsx)(vpr,{rows:e.rows,total:r,page:e.page,pageSize:e.pageSize,onPageChange:e.setPage})]})}var xge=L(ge(),1);async function Spr(e,t,r){let n=new URLSearchParams({page:String(e),pageSize:String(t)});r!=="all"&&n.set("window",r);let i=await fetch(`/api/usage/history?${n}`);if(!i.ok)throw new Error(`Failed to load usage history (HTTP ${i.status}).`);return i.json()}var C_=L(ge(),1);function bge(e,t,r=!0){let[n,i]=(0,C_.useState)(0),[o,a]=(0,C_.useState)(null),[s,l]=(0,C_.useState)(!1),[u,f]=(0,C_.useState)(null);(0,C_.useEffect)(()=>{if(!r)return;let p=!1;return l(!0),e(n,t).then(m=>{p||(a(m),l(!1))},m=>{p||(f(m instanceof Error?m:new Error(String(m))),l(!1))}),()=>{p=!0}},[e,n,t,r]);let d=o?.total??0;(0,C_.useEffect)(()=>{if(d===0)return;let p=Math.ceil(d/t)-1;n>p&&i(p)},[n,t,d]);let h=o?.rows??[];return{data:o,rows:h,total:d,loaded:o!==null,fetching:s,error:u,page:n,setPage:i,pageSize:t}}var TUn=30;function Cpr(){let[e,t]=(0,xge.useState)("all"),r=(0,xge.useCallback)((o,a)=>Spr(o,a,e),[e]),n=bge(r,TUn);return{...n,window:e,selectWindow:o=>{t(o),n.setPage(0)}}}var tB=L(ge(),1);function wpr(e,t){return e.field!==t?{field:t,direction:"desc"}:{field:t,direction:e.direction==="desc"?"asc":"desc"}}var SUn=30;function _pr(e){let[t,r]=(0,tB.useState)(Qj),[n,i]=(0,tB.useState)(Jj),[o,a]=(0,tB.useState)(Zj),s=(0,tB.useCallback)((h,p)=>$hr(h,p,{origin:t,status:n,sort:o}),[t,n,o]),l=bge(s,SUn,e);return{...l,origin:t,selectOrigin:h=>{r(h),l.setPage(0)},status:n,selectStatus:h=>{i(h),l.setPage(0)},sort:o,sortBy:h=>{a(p=>wpr(p,h)),l.setPage(0)}}}var w_=L(z(),1),CUn={borderBottom:1,borderColor:"divider",mb:2};function Epr(){let[e,t]=(0,kpr.useState)("limits"),r=Cpr(),n=_pr(e==="items");if(r.error)throw r.error;if(n.error)throw n.error;return(0,w_.jsxs)(zl,{loading:!r.loaded,title:"Usage history",maxWidth:"lg",children:[(0,w_.jsxs)($k,{value:e,onChange:(i,o)=>t(o),textColor:"inherit",indicatorColor:"secondary",sx:CUn,"aria-label":"Usage history views",children:[(0,w_.jsx)(_v,{label:"Rate limits",value:"limits"}),(0,w_.jsx)(_v,{label:"Items",value:"items"})]}),e==="limits"?(0,w_.jsx)(Tpr,{history:r}):(0,w_.jsx)(spr,{items:n})]})}var Tge=L(ge(),1),R$e=(0,Tge.createContext)([]);function Sge(){return(0,Tge.useContext)(R$e)}var Dmr=L(ge(),1);function as(){let{selectedCwd:e}=$n();return e||void 0}var k2=L(ge(),1);var Apr=L(ge(),1);var wUn=new Set(["todo","done","all"]);function Rpr(e){return e&&wUn.has(e)?e:"todo"}var Ppr="backlog-filter",A$e=new Set,Lpr=_Un();function _Un(){try{return Rpr(localStorage.getItem(Ppr))}catch{return"todo"}}function kUn(e){return A$e.add(e),()=>A$e.delete(e)}function EUn(){return Lpr}function RUn(e){Lpr=e;try{localStorage.setItem(Ppr,e)}catch{}for(let t of A$e)t()}function rB(){return[(0,Apr.useSyncExternalStore)(kUn,EUn),RUn]}function Mpr(){let e=as(),t=yr(),[r]=rB(),[n,i]=(0,k2.useState)(""),[o,a]=(0,k2.useState)(null),[s,l]=(0,k2.useState)(!1),[u,f]=(0,k2.useState)(e),d=(0,k2.useRef)(void 0);return e!==u&&(f(e),a(null),l(n.trim().length>0)),(0,k2.useEffect)(()=>{if(d.current!==void 0&&clearTimeout(d.current),!n.trim()){a(null),l(!1);return}let h=new AbortController,{signal:p}=h;return l(!0),d.current=setTimeout(async()=>{try{let m=await zT({query:n,cwd:e,node:t,signal:p,filter:r});if(p.aborted)return;a(m),l(!1)}catch(m){if(!p.aborted)throw m}},250),()=>{d.current!==void 0&&clearTimeout(d.current),h.abort()}},[n,e,t,r]),{query:n,setQuery:i,results:o,loading:s}}var Opr={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}},AUn={"&::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"}},Ipr={position:"relative",zIndex:2},Dpr=8,P$e=24,PUn=wa`
|
|
3974
3974
|
from { background-position: 0 0; }
|
|
3975
3975
|
to { background-position: 0 ${P$e}px; }
|
|
3976
|
-
`,Bpr={...Opr,borderColor:"warning.main",borderLeft:4,borderLeftColor:"warning.main",bgcolor:e=>Ea(e.palette.warning.main,.08)},LUn={...Bpr,borderLeftColor:"transparent",backgroundImage:e=>`repeating-linear-gradient(to bottom, ${e.palette.warning.main} 0 ${Dpr}px, transparent ${Dpr}px ${P$e}px)`,backgroundOrigin:"border-box",backgroundRepeat:"repeat-y",backgroundSize:`4px ${P$e}px`,animation:`${PUn} 0.9s linear infinite`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}},Npr={"& .MuiButtonBase-root:focus-visible":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:"2px"}},j1={card:Opr,inProgressCard:Bpr,inProgressRunningCard:LUn,main:{minWidth:0,textAlign:"left"},stretchedNameLink:{display:"block",fontWeight:500,color:"text.primary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",...AUn},meta:{display:"flex",alignItems:"center",gap:1,...Ipr,width:"fit-content",maxWidth:"100%",fontSize:"0.75rem",color:"text.secondary","& a, & p":{fontSize:"0.75rem"},...Npr},id:{color:"text.disabled"},actions:{display:"flex",alignItems:"center",gap:1,flexShrink:0,...Ipr,...Npr}};function Cge(e){let t=e.peakContextPct>0?` \xB7 \u2593 ${Math.round(e.peakContextPct)}%`:"";return`\u2191 ${zd(e.tokensUp)} \u2193 ${zd(e.tokensDown)} \xB7 \u23F1 ${r0(e.activeMs)}${t}`}var $pr=L(z(),1),MUn={width:6,height:6,borderRadius:"50%",bgcolor:"currentColor",flexShrink:0};function Fpr(){return(0,$pr.jsx)(ue,{component:"span",sx:MUn})}var sY=L(z(),1),zpr={display:"inline-flex",alignItems:"center",gap:.625,color:"warning.main",fontWeight:500,fontSize:"0.75rem",whiteSpace:"nowrap",borderRadius:1};function Hpr({item:e,openSession:t,onSelectSession:r}){let n=Xi();if(e.status!=="in-progress"||e.currentPhase==null)return null;let i=`phase ${e.currentPhase} of ${e.totalPhases??e.currentPhase}`,o=(0,sY.jsx)(Fpr,{});if(!t)return(0,sY.jsxs)(ue,{component:"span",sx:zpr,children:[o,i]});let a=()=>{r?.(t.id),n("/sessions")};return(0,sY.jsxs)(Dn,{sx:zpr,title:`Open the ${t.status} session`,onClick:a,children:[o,i]})}var np=L(z(),1),IUn={display:"inline-flex",alignItems:"center",gap:.5},DUn={width:8,height:8,borderRadius:"50%",flexShrink:0},NUn={whiteSpace:"nowrap"};function OUn({type:e}){let t=pge[e];return(0,np.jsxs)(ue,{component:"span",sx:IUn,children:[(0,np.jsx)(ue,{component:"span",sx:{...DUn,bgcolor:`${t}.main`}}),e]})}function BUn({item:e}){return e.usageTotal?(0,np.jsx)(lr,{title:Cge(e.usageTotal),children:(0,np.jsx)(ue,{component:"span",sx:NUn,children:`\u23F1 ${r0(e.usageTotal.activeMs)}`})}):null}function Upr({item:e,openSession:t,onSelectSession:r}){return(0,np.jsxs)(ue,{sx:j1.meta,children:[(0,np.jsx)(ue,{component:"span",sx:j1.id,children:so(e.id)}),(0,np.jsx)(OUn,{type:e.type}),(0,np.jsx)(Hpr,{item:e,openSession:t,onSelectSession:r}),(0,np.jsx)(cP,{jiraKey:e.jiraKey}),(0,np.jsx)(lP,{githubIssue:e.githubIssue,variant:"icon"}),(0,np.jsx)(BUn,{item:e})]})}function Wpr(e,t){return e.filter(r=>wP(r)?.itemId===t).reduce((r,n)=>r&&r.startedAt>=n.startedAt?r:n,void 0)}var Gpr=L(z(),1),FUn={todo:"\u25CB","in-progress":"\u25D4",done:"\u25CF",wontdo:"\u2715"},$Un={todo:"text.disabled","in-progress":"warning.main",done:"success.main",wontdo:"error.main"};function zUn(e){return{fontSize:"1.125rem",flexShrink:0,color:$Un[e]}}function Vpr({status:e}){return(0,Gpr.jsx)(Fe,{sx:zUn(e),children:FUn[e]})}function wge(e){return e.status==="todo"||e.status==="in-progress"}function HUn(e){if(e.status==="done")return e.totalPhases;if(e.status==="in-progress")return e.currentPhase}function UUn(e,t,r){return r?"complete":e<t?"done":e===t?"current":"remaining"}function qpr(e){let t=e.totalPhases,r=HUn(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:UUn(o+1,r,n)}))}}var nB=L(z(),1),WUn={done:"text.secondary",current:"warning.main",remaining:"divider",complete:"success.main"},VUn={display:"inline-flex",alignItems:"center",gap:.5,flexShrink:0},GUn={fontSize:"0.6875rem",color:"text.secondary",fontVariantNumeric:"tabular-nums"},qUn={display:"inline-flex",alignItems:"center",gap:"2px"},jUn={width:6,height:12,borderRadius:"1px",flexShrink:0};function jpr({item:e}){let t=qpr(e);return t?(0,nB.jsxs)(ue,{sx:VUn,title:`Phase ${t.reached} of ${t.total}`,children:[(0,nB.jsx)(ue,{component:"span",sx:GUn,children:`${t.reached}/${t.total}`}),(0,nB.jsx)(ue,{component:"span",sx:qUn,"aria-hidden":!0,children:t.segments.map(r=>(0,nB.jsx)(ue,{component:"span","data-segment":r.kind,sx:{...jUn,bgcolor:WUn[r.kind]}},r.phase))})]}):null}var hmr=L(ge(),1);var Ege=L(ge(),1);var lY=L(z(),1);function Ypr({tooltip:e,disabled:t,onClick:r}){return(0,lY.jsx)(lr,{title:e,children:(0,lY.jsx)(ue,{component:"span",sx:{display:"flex"},children:(0,lY.jsx)(qt,{startIcon:(0,lY.jsx)(Op,{}),disabled:t,onClick:r,children:"Build"})})})}var L$e=L(z(),1);function _ge(e){let t=[];return e.exposeCodexActions&&t.push({kind:"codex",label:"with Codex"}),e.exposePiActions&&t.push({kind:"pi",label:"with pi"}),t}function kge({anchorEl:e,open:t,onClose:r,options:n,onSelect:i,stop:o}){return(0,L$e.jsx)(Dl,{anchorEl:e,open:t,onClose:r,onClick:o,children:n.map(a=>(0,L$e.jsx)(fn,{onClick:s=>{o(s),i(a.kind)},children:a.label},a.kind))})}var Y1=L(z(),1);function Kpr({tooltip:e,disabled:t,onBuild:r,onSelectHarness:n}){let i=_ge(S_()),o=(0,Ege.useRef)(null),[a,s]=(0,Ege.useState)(!1),l=u=>u.stopPropagation();return(0,Y1.jsxs)(Y1.Fragment,{children:[(0,Y1.jsxs)(Q2,{ref:o,variant:"contained",color:"success",size:"small",disabled:t,children:[(0,Y1.jsx)(Ypr,{tooltip:e,disabled:t,onClick:u=>{l(u),r()}}),i.length>0&&(0,Y1.jsx)(qt,{"aria-label":"Build with a different harness",onClick:u=>{l(u),s(!0)},children:(0,Y1.jsx)(zp,{})})]}),(0,Y1.jsx)(kge,{anchorEl:o.current,open:a,onClose:()=>s(!1),options:i,onSelect:u=>{s(!1),n(u)},stop:l})]})}var Xpr=L(z(),1),iB=ft((0,Xpr.jsx)("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96M19 18H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95C8.08 7.14 9.94 6 12 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11c1.56.1 2.78 1.41 2.78 2.96 0 1.65-1.35 3-3 3m-5.55-8h-2.9v3H8l4 4 4-4h-2.55z"}),"CloudDownloadOutlined");var __=L(z(),1),YUn={vertical:"bottom",horizontal:"center"};function Rge({clone:e}){let{prompt:t,confirm:r,cancel:n,error:i,dismissError:o}=e;return(0,__.jsxs)(__.Fragment,{children:[t&&(0,__.jsx)(vo,{title:"Clone repository",message:`Clone ${t.displayName} over SSH into ${t.cloneTarget}${t.node?` on ${t.node}`:""}?`,confirmLabel:"Clone",confirmColor:"primary",onConfirm:r,onCancel:n}),(0,__.jsx)(ol,{open:!!i,autoHideDuration:8e3,onClose:o,anchorOrigin:YUn,children:(0,__.jsx)(ri,{severity:"error",onClose:o,variant:"filled",children:i})})]})}var o0=L(ge(),1);function M$e(e){return["backlog","clone",e]}function Age(e,t){t(M$e(e.origin),void 0,{title:`Clone ${e.displayName}`,subtitle:e.origin,...e.node&&{node:e.node}})}function Zpr(e,t){return!!e&&e.length===t.length&&e.every((r,n)=>r===t[n])}function Qpr(e,t,r){let n=M$e(t.origin),i=new Set(e.filter(o=>Zpr(o.assistArgs,n)).map(o=>o.id));return Age(t,r),{args:n,target:t.cloneTarget,node:t.node,preexisting:i}}function Jpr(e,t){if(!t.id){let n=e.find(i=>Zpr(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 Pge(e){let{setSelectedCwd:t}=$n(),{launchAssist:r}=$l(),[n,i]=(0,o0.useState)(null),[o,a]=(0,o0.useState)(null),[s,l]=(0,o0.useState)(null),u=(0,o0.useCallback)(p=>{l(null),i(p)},[]),f=(0,o0.useCallback)(()=>i(null),[]),d=(0,o0.useCallback)(()=>l(null),[]),h=(0,o0.useCallback)(()=>{n&&(a(Qpr(e,n,r)),i(null))},[n,e,r]);return(0,o0.useEffect)(()=>{if(!o)return;let p=Jpr(e,o);p&&(p.type==="latch"?a(m=>m&&{...m,id:p.id}):p.type==="done"?(o.node?t(o.target,o.node):t(o.target),a(null)):(l(p.message),a(null)))},[e,o,t]),{prompt:n,requestClone:u,confirm:h,cancel:f,error:s,dismissError:d}}function oB(e,t){return`Not cloned ${e?`on ${e}`:"locally"} \u2014 click to clone into ${t}`}var E2=L(z(),1),KUn={border:1,borderStyle:"dashed"};function emr({target:e}){let t=Pge(Sge());return(0,E2.jsxs)(E2.Fragment,{children:[(0,E2.jsx)(lr,{title:oB(e.node,e.cloneTarget),children:(0,E2.jsx)(sr,{"aria-label":"Clone",size:"small",sx:KUn,onClick:r=>{r.stopPropagation(),t.requestClone(e)},children:(0,E2.jsx)(iB,{fontSize:"small"})})}),(0,E2.jsx)(Rge,{clone:t})]})}function tmr(e,t,r,n){let i=r.node?[{node:r.node}]:[];e(["backlog","run",so(t),...n],r.cwd,...i)}var cY=L(z(),1);function rmr({tooltip:e,disabled:t,onClick:r}){return(0,cY.jsx)(lr,{title:e,children:(0,cY.jsx)("span",{children:(0,cY.jsx)(sr,{"aria-label":"Build",color:"success",size:"small",disabled:t,onClick:r,children:(0,cY.jsx)(Op,{})})})})}function XUn(e,t){let r=e.assistArgs;if(r?.[0]!=="backlog"||r[1]!=="run"||!r[2])return!1;try{return mJ(r[2])===t}catch{return!1}}function nmr(e,t){return e.find(r=>r.status!=="done"&&r.status!=="error"&&(XUn(r,t)||wP(r)?.itemId===t))}var Lge=L(ge(),1),I$e=(0,Lge.createContext)({nodes:null,names:[],visible:!1,selected:void 0,select:()=>{}});function Ou(){return(0,Lge.useContext)(I$e)}function Mge(){let{nodes:e,selected:t}=Ou();return t&&t!==e?.local?t:void 0}var amr=L(ge(),1);var Ige=L(ge(),1);function imr(e,t){return Promise.all(t.map(async r=>{let n=await ZUn(e,r).catch(()=>({}));return[r,n]}))}async function ZUn(e,t){let r=await fetch(tn(`/api/repo-location?origin=${encodeURIComponent(e)}`,t||void 0));return r.ok?r.json():{}}var D$e="\0";function omr(e,t){let[r,n]=(0,Ige.useState)(null);return(0,Ige.useEffect)(()=>{if(!e||!t)return;let i=!1;return imr(e,t.split(D$e)).then(o=>{i||n({origin:e,byNode:Object.fromEntries(o)})}),()=>{i=!0}},[e,t]),r}function Dge(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(D$e),a=omr(i,o);return(0,amr.useCallback)(s=>{let l=e?r(e,s):void 0;if(l)return{kind:"cloned",cwd:l};let u=a&&a.origin===i?a.byNode[s??""]:void 0;return u?.cwd?{kind:"cloned",cwd:u.cwd}:i&&u?.cloneTarget?{kind:"clonable",origin:i,cloneTarget:u.cloneTarget}:{kind:"unavailable"}},[e,r,i,a])}var sB=L(ge(),1);var smr=L(z(),1);function aB({inputRef:e,value:t,onChange:r,onKeyDown:n,placeholder:i,autoFocus:o}){return(0,smr.jsx)(ni,{autoFocus:o,inputRef:e,value:t,onChange:a=>r(a.target.value),onKeyDown:n,placeholder:i,size:"small",fullWidth:!0,slotProps:{input:{sx:{fontSize:12}}},sx:{p:.5}})}var Nge=L(ge(),1);function Oge(e){let t=(0,Nge.useRef)(null);return(0,Nge.useEffect)(()=>{e&&t.current?.scrollIntoView({block:"nearest"})},[e]),t}var cmr=L(z(),1);function lmr({cwd:e,selected:t,highlighted:r,onHover:n,onSelect:i}){let o=Oge(r);return(0,cmr.jsx)(fn,{ref:o,selected:t,title:e,onClick:i,onMouseEnter:n,sx:{fontSize:12,display:"flex",justifyContent:"space-between",gap:1,...r&&{bgcolor:"action.hover"}},children:K1(e)})}var N$e=L(z(),1);function Bge({repos:e,selected:t,highlight:r,onHighlight:n,onSelect:i}){return(0,N$e.jsx)(Tp,{dense:!0,children:e.map((o,a)=>(0,N$e.jsx)(lmr,{cwd:o,selected:o===t,highlighted:a===r,onHover:()=>n(a),onSelect:()=>i(o)},o))})}var Fge=L(ge(),1);function k_(e,t,r,n){let[i,o]=(0,Fge.useState)(0);return(0,Fge.useEffect)(()=>{o(0)},[t]),{highlight:i,setHighlight:o,onKeyDown:s=>{let l=e.length;if(s.key==="ArrowDown")s.preventDefault(),l>0&&o(u=>(u+1)%l);else if(s.key==="ArrowUp")s.preventDefault(),l>0&&o(u=>(u-1+l)%l);else if(s.key==="Enter"){s.preventDefault();let u=e[i];u!==void 0&&(r(u),n())}else s.key==="Escape"&&(s.preventDefault(),n())}}}var uY=L(z(),1);function K1(e){let t=e.includes("\\")?"\\":"/";return e.split(t).filter(Boolean).pop()??e}var QUn={...LP};function umr({repos:e,selected:t,onSelect:r,close:n}){let[i,o]=(0,sB.useState)(""),a=(0,sB.useRef)(null);(0,sB.useEffect)(()=>{a.current?.focus()},[]);let s=i.trim().toLowerCase(),l=s?e.filter(p=>p.toLowerCase().includes(s)):e,{highlight:u,setHighlight:f,onKeyDown:d}=k_(l,s,r,n);return(0,uY.jsxs)(an,{elevation:4,sx:QUn,children:[(0,uY.jsx)(aB,{inputRef:a,value:i,onChange:o,onKeyDown:d,placeholder:"Filter repos..."}),(0,uY.jsx)(Bge,{repos:l,selected:t,highlight:u,onHighlight:f,onSelect:p=>{r(p),n()}})]})}function $ge(e,t){return{origin:e.origin,cloneTarget:e.cloneTarget,displayName:K1(e.origin),node:t}}function fmr(){let e=as(),t=Mge(),r=Dge(e??"",[t])(t);return e?r.kind==="cloned"?{kind:"ready",cwd:r.cwd,node:t}:r.kind==="clonable"?{kind:"clone",prompt:$ge(r,t)}:{kind:"unavailable",node:t??"this machine"}:{kind:"ready",node:t}}function dmr(e,t){return t?`Not cloned on ${t}`:e?"Already running \u2014 close that session to run it again":"Build"}var zge=L(z(),1);function Hge({itemId:e,compact:t=!1}){let{launchAssist:r}=$l(),n=fmr(),i=nmr(Sge(),e),[o,a]=(0,hmr.useState)(!1);if(n.kind==="clone")return(0,zge.jsx)(emr,{target:n.prompt});let s=n.kind==="unavailable"?n.node:void 0,l=o||i!==void 0||!!s,u=d=>{l||n.kind!=="ready"||(a(!0),tmr(r,e,n,d))},f=dmr(i!==void 0,s);return t?(0,zge.jsx)(rmr,{tooltip:f,disabled:l,onClick:d=>{d.stopPropagation(),u([])}}):(0,zge.jsx)(Kpr,{tooltip:f,disabled:l,onBuild:()=>u([]),onSelectHarness:d=>u(["--harness",d])})}var pmr=L(ge(),1);var lB=L(z(),1);function mmr({itemId:e,starred:t,onToggled:r}){let n=as(),i=yr(),[o,a]=(0,pmr.useState)(!1);return(0,lB.jsx)(lr,{title:t?"Unstar":"Star",children:(0,lB.jsx)("span",{children:(0,lB.jsx)(sr,{"aria-label":t?"Unstar":"Star","aria-pressed":t,color:t?"warning":"default",size:"small",disabled:o,onClick:async l=>{if(l.stopPropagation(),!o){a(!0);try{await PJ(e,!t,n,i),await r()}finally{a(!1)}}},children:t?(0,lB.jsx)(Nee,{}):(0,lB.jsx)(Oee,{})})})})}var gmr=L(z(),1),ymr=ft((0,gmr.jsx)("path",{d:"M22 7h-9v2h9zm0 8h-9v2h9zM5.54 11 2 7.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41zm0 8L2 15.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41z"}),"Checklist");var fY=L(z(),1),JUn={display:"inline-flex",alignItems:"center",gap:.375,flexShrink:0,fontSize:"0.71875rem",color:"text.secondary","& svg":{fontSize:14}};function vmr({count:e}){return e<1?null:(0,fY.jsx)(lr,{title:`${e} incomplete subtask${e===1?"":"s"}`,children:(0,fY.jsxs)(ue,{component:"span",sx:JUn,children:[(0,fY.jsx)(ymr,{}),e]})})}var R2=L(z(),1);function bmr({item:e,onReload:t}){return(0,R2.jsxs)(R2.Fragment,{children:[(0,R2.jsx)(vmr,{count:e.incompleteSubtasks}),(0,R2.jsx)(jpr,{item:e}),(0,R2.jsx)(mmr,{itemId:e.id,starred:e.starred,onToggled:t}),wge(e)&&(0,R2.jsx)(Hge,{itemId:e.id,compact:!0})]})}var A2=L(z(),1);function eWn(e,t){return e?t?j1.inProgressRunningCard:j1.inProgressCard:j1.card}function xmr({item:e,to:t,socket:r,onReload:n}){let i=Wpr(r.sessions,e.id),o=e.status==="in-progress",a=o&&i?.status==="running";return(0,A2.jsxs)(ue,{sx:eWn(o,a),children:[(0,A2.jsx)(Vpr,{status:e.status}),(0,A2.jsxs)(ue,{sx:j1.main,children:[(0,A2.jsx)(xn,{component:ys,to:t,underline:"none",title:e.name,sx:j1.stretchedNameLink,children:e.name}),(0,A2.jsx)(Upr,{item:e,openSession:i,onSelectSession:r.selectSession})]}),(0,A2.jsx)(ue,{sx:j1.actions,children:(0,A2.jsx)(bmr,{item:e,onReload:n})})]})}var Smr=L(z(),1),tWn={all:"items",story:"stories",bug:"bugs"},rWn={textAlign:"center",color:"text.disabled",py:6,px:2};function Tmr({query:e,typeFilter:t}){let r=tWn[t],n=e.trim()?`No ${r} match your search.`:`No ${r} in the backlog.`;return(0,Smr.jsx)(ue,{sx:rWn,children:n})}var X1=L(z(),1),nWn={display:"flex",justifyContent:"center",py:6};function Cmr({loading:e,error:t,query:r,typeFilter:n,items:i,socket:o,itemPath:a,onReload:s}){if(e)return(0,X1.jsx)(ue,{sx:nWn,children:(0,X1.jsx)(mo,{})});let l=t&&(0,X1.jsx)(ri,{severity:"error",children:t});return i.length===0?l||(0,X1.jsx)(Tmr,{query:r,typeFilter:n}):(0,X1.jsxs)(X1.Fragment,{children:[l,i.map(u=>(0,X1.jsx)(xmr,{item:u,to:a(u),socket:o,onReload:s},u.id))]})}var cB=L(ge(),1);function iWn(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 wmr({cwd:e,node:t,knownCwds:r,signal:n}){return(await fetch(Fl(iWn(r),e,t),{signal:n})).json()}function _mr(){let{repos:e,selectedCwd:t,cloneOn:r}=$n(),n=Mge(),[i,o]=(0,cB.useState)([]),a=(0,cB.useMemo)(()=>e.map(l=>r(l,n)).filter(l=>!!l),[e,r,n]),s=t?r(t,n):void 0;return(0,cB.useEffect)(()=>{let l=new AbortController;return wmr({cwd:s,node:n,knownCwds:a,signal:l.signal}).then(o).catch(()=>{}),()=>l.abort()},[a,s,n]),{summaries:i,node:n}}var Uge=L(z(),1),oWn={borderStyle:"dashed"};function kmr({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,Uge.jsx)(sn,{label:`${o} (${a})`,size:"small",color:s?"primary":"default",variant:s?"filled":"outlined",disabled:!l&&!f,onClick:d,icon:f?(0,Uge.jsx)(iB,{}):void 0,sx:f?oWn:void 0});return!f||!u?h:(0,Uge.jsx)(lr,{describeChild:!0,title:oB(t,u),children:h})}var dY=L(z(),1),aWn={flexWrap:"wrap",gap:1,mb:2};function Emr({sessions:e}){let{summaries:t,node:r}=_mr(),{setSelectedCwd:n}=$n(),i=Pge(e);return t.length===0?null:(0,dY.jsxs)(Rt,{direction:"row",sx:aWn,children:[t.map(o=>(0,dY.jsx)(kmr,{summary:o,node:r,onSelectCwd:a=>r?n(a,r):n(a),onRequestClone:i.requestClone},o.origin)),(0,dY.jsx)(Rge,{clone:i})]})}var Amr=L(z(),1);function Rmr({value:e,onChange:t}){return(0,Amr.jsx)(ni,{"data-backlog-focus":"search",fullWidth:!0,size:"small",placeholder:"Search backlog\u2026",value:e,onChange:r=>t(r.target.value),sx:{mb:2}})}var Wge=L(ge(),1);var Vge=L(z(),1);async function sWn(){return(await(await fetch("/api/backups/list")).json())[0]}function Pmr(){let[e,t]=(0,Wge.useState)();return(0,Wge.useEffect)(()=>{sWn().then(t)},[]),e?(0,Vge.jsx)(lr,{title:new Date(e.createdAt).toLocaleString(),children:(0,Vge.jsxs)(xn,{component:ys,to:"/backups",underline:"hover",color:"text.secondary",variant:"body2",children:["Last backed up ",fa(String(e.createdAt))]})}):null}var uB=L(z(),1);function Lmr(){let[e,t]=rB();return(0,uB.jsxs)(du,{value:e,exclusive:!0,size:"small","aria-label":"Status filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,uB.jsx)(hs,{value:"todo",children:"Todo"}),(0,uB.jsx)(hs,{value:"done",children:"Done"}),(0,uB.jsx)(hs,{value:"all",children:"All"})]})}var fB=L(z(),1);function Mmr({value:e,onChange:t}){return(0,fB.jsxs)(du,{value:e,exclusive:!0,size:"small","aria-label":"Type filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,fB.jsx)(hs,{value:"all",children:"All"}),(0,fB.jsx)(hs,{value:"story",children:"Stories"}),(0,fB.jsx)(hs,{value:"bug",children:"Bugs"})]})}var E_=L(z(),1),lWn={justifyContent:"space-between",alignItems:"center",mb:3},cWn={fontWeight:600},uWn={alignItems:"center"};function Imr({typeFilter:e,onTypeFilterChange:t}){return(0,E_.jsxs)(Rt,{direction:"row",sx:lWn,children:[(0,E_.jsx)(Fe,{variant:"h5",sx:cWn,children:"Backlog"}),(0,E_.jsxs)(Rt,{direction:"row",spacing:2,sx:uWn,children:[(0,E_.jsx)(Pmr,{}),(0,E_.jsx)(Mmr,{value:e,onChange:t}),(0,E_.jsx)(Lmr,{})]})]})}var P2=L(z(),1);function Nmr({items:e,loading:t,error:r,socket:n,onReload:i}){let o=as(),a=yr(),{query:s,setQuery:l,results:u,loading:f}=Mpr(),[d,h]=(0,Dmr.useState)("all"),p=u??e,m=d==="all"?p:p.filter(g=>g.type===d);return(0,P2.jsxs)(P2.Fragment,{children:[(0,P2.jsx)(Imr,{typeFilter:d,onTypeFilterChange:h}),(0,P2.jsx)(Rmr,{value:s,onChange:l}),(0,P2.jsx)(Emr,{sessions:n.sessions}),(0,P2.jsx)(Cmr,{loading:t||f,error:u?null:r,query:s,typeFilter:d,items:m,socket:n,itemPath:g=>BT(g.id,o,a),onReload:i})]})}var Jge=L(ge(),1);var gR=L(ge(),1);async function O$e(e,t,r){let n=await fetch(Fl(`/api/items/${so(e)}`,t.cwd,t.node),{signal:r});return n.ok?n.json():null}function Omr(e){let t=as(),r=yr(),[n,i]=(0,gR.useState)(null),[o,a]=(0,gR.useState)(!0),s=(0,gR.useCallback)(async()=>{i(await O$e(e,{cwd:t,node:r}))},[e,t,r]);return(0,gR.useEffect)(()=>{let l=new AbortController,{signal:u}=l;return a(!0),(async()=>{try{let f=await O$e(e,{cwd:t,node:r},u);if(u.aborted)return;i(f),a(!1)}catch(f){if(!u.aborted)throw f}})(),()=>l.abort()},[e,t,r]),{item:n,loading:o,reload:s}}var R_={description:"item-section-description",acceptanceCriteria:"item-section-acceptance-criteria",subtasks:"item-section-subtasks",plan:"item-section-plan",activity:"item-section-activity",comments:"item-section-comments"},hY=140,B$e="--pinned-header-height",Gge=`var(${B$e}, ${hY}px)`,Bmr=`calc(${Gge} + 8px)`;function $m(e){return{id:R_[e],sx:{mb:2,scrollMarginTop:Bmr}}}function qge(e){return{id:`item-phase-${e}`,sx:{scrollMarginTop:Bmr}}}var A_=L(z(),1);function Fmr({criteria:e}){return e.length===0?null:(0,A_.jsxs)(ue,{...$m("acceptanceCriteria"),children:[(0,A_.jsx)(Fe,{variant:"overline",sx:{color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"},children:"Acceptance Criteria"}),(0,A_.jsx)(R0,{disablePadding:!0,sx:{maxWidth:"72ch"},children:e.map((t,r)=>(0,A_.jsxs)(tT,{disableGutters:!0,disablePadding:!0,sx:{py:.5,display:"flex",alignItems:"baseline"},children:[(0,A_.jsxs)(Fe,{component:"span",sx:{color:"text.secondary",mr:1},children:[r+1,"."]}),(0,A_.jsx)(yu,{component:"span",className:"markdown",html:EP(t)})]},t))})]})}var pY=L(z(),1),fWn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function $mr({description:e}){return e?(0,pY.jsxs)(ue,{...$m("description"),children:[(0,pY.jsx)(Fe,{variant:"overline",sx:fWn,children:"Description"}),(0,pY.jsx)(kw,{content:e,renderMermaid:!0})]}):null}var Ymr=L(ge(),1);function zmr(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 Umr=L(z(),1),dWn={color:"text.secondary",alignSelf:"flex-start",textAlign:"left"};function Hmr({hiddenCount:e,expanded:t,onToggle:r}){return e===0?null:(0,Umr.jsx)(xn,{component:"button",type:"button",variant:"body2",underline:"hover",sx:dWn,onClick:n=>{n.stopPropagation(),r()},children:t?"Show fewer commits":`\u2026 and ${e} more commits`})}var yR=L(z(),1),hWn={display:"flex",alignItems:"center",gap:1},pWn={color:"text.secondary",fontFamily:"monospace"},mWn={flex:1,overflowWrap:"anywhere"},gWn={color:"text.disabled","&:hover":{color:"text.primary"}};function Wmr({conversation:e}){let{resumeSession:t}=$l(),r=n=>{n.stopPropagation(),t(e.sessionId,e.cwd??"",e.title,e.harness)};return(0,yR.jsxs)(ue,{sx:hWn,children:[(0,yR.jsx)(Fe,{variant:"body2",component:"span",sx:pWn,children:"session"}),(0,yR.jsx)(Fe,{variant:"body2",component:"span",sx:mWn,children:e.title??e.sessionId}),(0,yR.jsx)(sr,{size:"small",title:"Resume",sx:gWn,onClick:r,children:(0,yR.jsx)(Op,{sx:{fontSize:14}})})]})}var Gmr=L(z(),1),yWn={color:"text.disabled",ml:1};function Vmr({gitRef:e}){return e.kind!=="commit"||!e.createdAt?null:(0,Gmr.jsx)(ue,{component:"span",sx:yWn,children:vWn(e.createdAt)})}function vWn(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function qmr(e){if(e.kind==="commit"){let t=e.title?` ${e.title}`:"";return`${e.ref.slice(0,8)}${t}`}if(e.kind==="pr"){let t=e.title?` ${e.title}`:"",r=e.state?` (${e.state.toLowerCase()})`:"";return`#${e.ref}${t}${r}`}return e.kind==="slack"||e.kind==="session"?e.title??e.ref:e.ref}var Z1=L(z(),1),bWn={color:"text.secondary",mr:1,fontFamily:"monospace"};function xWn({gitRef:e}){let t=qmr(e);return!e.url||e.kind==="session"?(0,Z1.jsx)(Z1.Fragment,{children:t}):(0,Z1.jsx)(xn,{href:e.url,target:"_blank",rel:"noopener",onClick:r=>r.stopPropagation(),children:t})}function jmr({gitRef:e}){return(0,Z1.jsxs)(Fe,{variant:"body2",children:[(0,Z1.jsx)(ue,{component:"span",sx:bWn,children:e.kind}),(0,Z1.jsx)(xWn,{gitRef:e}),(0,Z1.jsx)(Vmr,{gitRef:e})]})}var P_=L(z(),1),TWn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function Kmr({gitRefs:e,conversations:t=[]}){let[r,n]=(0,Ymr.useState)(!1),{branches:i,commits:o,overflowCommits:a,prs:s,slacks:l}=zmr(e),u=[...i,...o,...r?a:[],...s,...l];return u.length===0&&t.length===0?null:(0,P_.jsxs)(ue,{...$m("activity"),children:[(0,P_.jsx)(Fe,{variant:"overline",sx:TWn,children:"Activity"}),(0,P_.jsxs)(Rt,{spacing:1,children:[u.map(f=>(0,P_.jsx)(jmr,{gitRef:f},`${f.kind}:${f.ref}`)),t.map(f=>(0,P_.jsx)(Wmr,{conversation:f},f.sessionId)),(0,P_.jsx)(Hmr,{hiddenCount:a.length,expanded:r,onToggle:()=>n(f=>!f)})]})]})}var vR=L(z(),1),SWn={alignItems:"center",fontSize:"0.75rem",color:"text.secondary",mb:.5},CWn={color:"text.disabled"},wWn={fontWeight:500},_Wn={summary:"Phase summary",comment:"Comment"};function Xmr({comment:e}){return(0,vR.jsxs)(Rt,{direction:"row",spacing:.5,sx:SWn,children:[e.id!==void 0&&(0,vR.jsxs)(Fe,{variant:"caption",sx:CWn,children:["#",e.id]}),(0,vR.jsx)(Fe,{variant:"caption",sx:wWn,children:_Wn[e.type]}),e.phase!==void 0&&(0,vR.jsxs)(Fe,{variant:"caption",children:["\xB7 Phase ",e.phase]}),(0,vR.jsxs)(Fe,{variant:"caption",children:["\xB7 ",kWn(e.timestamp)]})]})}function kWn(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}var Zmr=L(z(),1),Qmr=ft((0,Zmr.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 F$e=L(ge(),1);async function Jmr(e,t,r,n){let i=await fetch(Fl(`/api/items/${so(e)}/comments/${t}`,r,n),{method:"DELETE"});if(!i.ok){let o=await i.json().catch(()=>{});throw new Error(o?.error??`Failed to delete comment (${i.status})`)}}var Q1=L(z(),1),EWn={mt:-.5,mr:-.5,color:"text.secondary"};function egr({itemId:e,commentId:t,onDeleted:r}){let n=as(),i=yr(),[o,a]=(0,F$e.useState)(!1),[s,l]=(0,F$e.useState)(),u=()=>l(void 0);return(0,Q1.jsxs)(Q1.Fragment,{children:[o&&(0,Q1.jsx)(vo,{message:"Are you sure you want to delete this comment?",onConfirm:async()=>{a(!1);try{await Jmr(e,t,n,i),await r()}catch(f){l(f instanceof Error?f.message:"Failed to delete comment")}},onCancel:()=>a(!1)}),(0,Q1.jsx)(ol,{open:s!==void 0,autoHideDuration:6e3,onClose:u,children:(0,Q1.jsx)(ri,{severity:"error",variant:"filled",onClose:u,children:s})}),(0,Q1.jsx)(sr,{"aria-label":"Delete comment",size:"small",sx:EWn,onClick:()=>a(!0),children:(0,Q1.jsx)(Qmr,{fontSize:"inherit"})})]})}var bR=L(z(),1),RWn={summary:{bgcolor:"warning.light",borderColor:"warning.dark"},comment:{bgcolor:"action.selected",borderColor:"divider"}},AWn={justifyContent:"space-between",alignItems:"flex-start"},PWn={color:"text.primary",whiteSpace:"pre-wrap"};function LWn(e){return{p:1.5,bgcolor:e.bgcolor,borderColor:e.borderColor}}function tgr({comment:e,itemId:t,onDeleted:r}){return(0,bR.jsxs)(an,{variant:"outlined",sx:LWn(RWn[e.type]),children:[(0,bR.jsxs)(Rt,{direction:"row",sx:AWn,children:[(0,bR.jsx)(Xmr,{comment:e}),e.id!==void 0&&t!==void 0&&r&&(0,bR.jsx)(egr,{itemId:t,commentId:e.id,onDeleted:r})]}),(0,bR.jsx)(Fe,{variant:"body2",sx:PWn,children:e.text})]})}var dB=L(z(),1),MWn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function rgr({comments:e,itemId:t,onCommentDeleted:r}){return e.length===0?null:(0,dB.jsxs)(ue,{...$m("comments"),children:[(0,dB.jsx)(Fe,{variant:"overline",sx:MWn,children:"Comments"}),(0,dB.jsx)(Rt,{spacing:1,children:e.map((n,i)=>(0,dB.jsx)(tgr,{comment:n,itemId:t,onDeleted:r},`${n.timestamp}-${i}`))})]})}var ngr=L(z(),1);function hB({total:e,sx:t}){return(0,ngr.jsx)(Fe,{sx:t,children:Cge(e)})}var ogr=L(z(),1),IWn={color:"text.secondary",fontSize:"0.75rem"};function igr({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,ogr.jsx)(hB,{total:t,sx:IWn})}var L2=L(z(),1);function agr({checks:e}){return(0,L2.jsxs)(ue,{sx:{mt:1,pt:1},children:[(0,L2.jsx)(no,{sx:{mb:1}}),(0,L2.jsx)(Fe,{variant:"overline",sx:{color:"text.disabled",letterSpacing:"0.08em"},children:"Manual Checks"}),(0,L2.jsx)(R0,{disablePadding:!0,sx:{ml:.5,mt:.5},children:e.map(t=>(0,L2.jsxs)(tT,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,L2.jsx)(Fe,{component:"span",sx:{mr:1,fontSize:"0.875rem",color:"text.secondary"},children:"\u2610"}),(0,L2.jsx)(yu,{component:"span",className:"markdown",sx:{fontSize:"0.875rem",color:"text.secondary"},html:EP(t)})]},t))})]})}var jge={done:{borderColor:"success.light",bgcolor:"success.light"},current:{borderColor:"info.main",bgcolor:"info.light",ring:"info.light"},upcoming:{borderColor:"divider",bgcolor:"background.paper"}};function sgr(e){let t=jge[e];return{p:2,borderColor:t.ring?"info.main":t.borderColor,bgcolor:t.bgcolor,...t.ring?{boxShadow:"0 0 0 2px"}:{}}}var lgr={done:"\u2713",current:"\u2022",upcoming:"\u2022"};var fgr=L(ge(),1);var cgr=L(ge(),1),J1=L(z(),1);function ugr({phaseName:e,onConfirm:t,onCancel:r}){let[n,i]=(0,cgr.useState)("");return(0,J1.jsxs)(Ps,{open:!0,onClose:r,maxWidth:"xs",fullWidth:!0,children:[(0,J1.jsxs)(Il,{children:["Rewind to ",e,"?"]}),(0,J1.jsxs)(Ml,{children:[(0,J1.jsx)(Fe,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"This will mark all later phases as incomplete."}),(0,J1.jsx)(ni,{fullWidth:!0,multiline:!0,rows:3,size:"small",placeholder:"Reason for rewinding...",value:n,onChange:o=>i(o.target.value)})]}),(0,J1.jsxs)(cu,{children:[(0,J1.jsx)(qt,{onClick:r,children:"Cancel"}),(0,J1.jsx)(qt,{variant:"contained",color:"warning",disabled:n.trim().length===0,onClick:()=>t(n.trim()),children:"Rewind"})]})]})}var xR=L(z(),1);function dgr({itemId:e,phaseNumber:t,phaseName:r,onRewound:n}){let i=as(),o=yr(),[a,s]=(0,fgr.useState)(!1);return(0,xR.jsxs)(xR.Fragment,{children:[(0,xR.jsx)(qt,{size:"small",color:"warning",variant:"outlined",onClick:()=>s(!0),sx:{ml:"auto",textTransform:"none",fontSize:"0.75rem"},children:"Rewind"}),a&&(0,xR.jsx)(ugr,{phaseName:r,onConfirm:async l=>{await Cet(e,t,l,i,o),await n()},onCancel:()=>s(!1)})]})}var pB=L(z(),1),DWn={done:{label:"Done",color:"success"},current:{label:"In Progress",color:"info"},upcoming:{label:"Upcoming",color:"default"}},NWn={alignItems:"center",mb:1},OWn={fontWeight:500},BWn={fontWeight:500,fontSize:"0.75rem"};function hgr({phase:e,index:t,status:r,itemId:n,onRewind:i}){let o=DWn[r],a=r==="done"&&n!==void 0&&i;return(0,pB.jsxs)(Rt,{direction:"row",spacing:1,sx:NWn,children:[(0,pB.jsxs)(Fe,{sx:OWn,children:["Phase ",t+1,": ",e.name]}),(0,pB.jsx)(sn,{label:o.label,size:"small",color:o.color,sx:BWn}),a&&(0,pB.jsx)(dgr,{itemId:n,phaseNumber:t+1,phaseName:e.name,onRewound:i})]})}var mY=L(z(),1),FWn={color:"text.secondary",fontSize:"0.75rem",letterSpacing:"0.08em",display:"block"},$Wn={color:"text.secondary",fontSize:"0.75rem",fontFamily:"monospace",display:"block"};function pgr({sessions:e}){return(0,mY.jsxs)(ue,{sx:{mb:1},children:[(0,mY.jsx)(Fe,{variant:"overline",sx:FWn,children:"Sessions"}),e.map(t=>(0,mY.jsx)(Fe,{sx:$Wn,children:`${t.hostname} / ${t.osUser} / ${t.claudeSessionId}`},t.claudeSessionId))]})}var ggr=L(z(),1),zWn={color:"text.secondary",fontSize:"0.75rem",mb:1,display:"block"};function mgr({usage:e}){return(0,ggr.jsx)(hB,{total:e,sx:zWn})}var mB=L(z(),1);function ygr({tasks:e,marker:t}){return(0,mB.jsx)(R0,{disablePadding:!0,sx:{ml:.5},children:e.map(r=>(0,mB.jsxs)(tT,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,mB.jsx)(Fe,{component:"span",sx:{color:"text.secondary",mr:1},children:t}),(0,mB.jsx)(yu,{component:"span",className:"markdown",html:EP(r.task)})]},r.task))})}var L_=L(z(),1);function vgr({phase:e,index:t,status:r,itemId:n,usage:i,sessions:o,onRewind:a}){let s=e.manualChecks??[],l=qge(t);return(0,L_.jsxs)(an,{variant:"outlined",id:l.id,sx:{...sgr(r),...l.sx},children:[(0,L_.jsx)(hgr,{phase:e,index:t,status:r,itemId:n,onRewind:a}),i&&(0,L_.jsx)(mgr,{usage:i}),(0,L_.jsx)(ygr,{tasks:e.tasks,marker:lgr[r]}),s.length>0&&(0,L_.jsx)(agr,{checks:s}),o&&o.length>0&&(0,L_.jsx)(pgr,{sessions:o})]})}var gY={name:"Review",tasks:[]};function Yge(e){return e.at(-1)?.name===gY.name?e.length-1:e.length}function Kge(e,t){if(t===void 0)return"upcoming";let r=e+1;return r<t?"done":r===t?"current":"upcoming"}function bgr(e=[]){return new Map(e.map(t=>[t.phaseIdx,t]))}function xgr(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 $$e=L(z(),1);function Tgr({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){let a=bgr(n),s=xgr(i),l=Yge(e),u=(i??[]).filter(d=>d.phaseIdx>=l),f=l===e.length&&u.length>0?[...e,gY]:e;return(0,$$e.jsx)(Rt,{spacing:1.5,children:f.map((d,h)=>(0,$$e.jsx)(vgr,{phase:d,index:h,status:Kge(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 TR=L(z(),1),HWn={alignItems:"baseline",justifyContent:"space-between",mb:1},UWn={color:"text.secondary",display:"block",letterSpacing:"0.08em"};function Sgr({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){return e.length===0?null:(0,TR.jsxs)(ue,{...$m("plan"),children:[(0,TR.jsxs)(Rt,{direction:"row",sx:HWn,children:[(0,TR.jsx)(Fe,{variant:"overline",sx:UWn,children:"Plan"}),n&&n.length>0&&(0,TR.jsx)(igr,{usage:n})]}),(0,TR.jsx)(Tgr,{phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o})]})}var z$e=L(z(),1),Xge=e=>{let{value:t,options:r,colors:n,onChange:i}=e;return(0,z$e.jsx)(iT,{value:t,onChange:o=>i(o.target.value),size:"small",sx:{fontSize:"0.75rem",fontWeight:500,borderRadius:4,bgcolor:n[t].bg,color:n[t].text,"& .MuiSelect-select":{py:.5,px:1.5},"& .MuiSelect-icon":{color:"inherit"}},children:r.map(o=>(0,z$e.jsx)(fn,{value:o,children:o},o))})};var wgr=L(z(),1),WWn={todo:{bg:"action.selected",text:"text.primary"},"in-progress":{bg:"warning.main",text:"warning.contrastText"},done:{bg:"success.main",text:"success.contrastText"}},VWn=["todo","in-progress","done"];function Cgr({current:e,onStatusChange:t}){return(0,wgr.jsx)(Xge,{value:e,options:VWn,colors:WWn,onChange:t})}var M_=L(z(),1);function _gr({subtask:e,onStatusChange:t}){let r=e.status==="done";return(0,M_.jsxs)(Rt,{direction:"row",spacing:1,sx:{alignItems:"flex-start",justifyContent:"space-between"},children:[(0,M_.jsxs)(ue,{sx:{flex:1},children:[(0,M_.jsx)(Fe,{variant:"body2",sx:{textDecoration:r?"line-through":"none",color:r?"text.disabled":"text.primary"},children:e.title}),e.description&&(0,M_.jsx)(ue,{sx:{mt:.5,fontSize:"0.8125rem",color:r?"text.disabled":"text.secondary"},children:(0,M_.jsx)(kw,{content:e.description})})]}),(0,M_.jsx)(Cgr,{current:e.status,onStatusChange:t})]})}var SR=L(z(),1),GWn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function kgr({subtasks:e,onStatusChange:t}){if(e.length===0)return null;let r=e.filter(n=>n.status!=="done").length;return(0,SR.jsxs)(ue,{...$m("subtasks"),children:[(0,SR.jsx)(Fe,{variant:"overline",sx:GWn,children:"Sub-tasks"}),(0,SR.jsx)(Rt,{spacing:1,children:e.map((n,i)=>(0,SR.jsx)(_gr,{subtask:n,onStatusChange:o=>t(i,o)},`${n.title}-${i}`))}),r>0&&(0,SR.jsxs)(ri,{severity:"warning",sx:{mt:1},children:[r," sub-task",r===1?"":"s"," not yet done."]})]})}var M2=L(z(),1);function Egr({item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n}){return(0,M2.jsxs)(M2.Fragment,{children:[e.subtasks&&n&&(0,M2.jsx)(kgr,{subtasks:e.subtasks,onStatusChange:n}),e.plan&&(0,M2.jsx)(Sgr,{phases:e.plan,currentPhase:e.currentPhase,itemId:e.id,usage:e.phaseUsage,sessions:e.phaseSessions,onRewind:t}),(0,M2.jsx)(Kmr,{gitRefs:e.gitRefs??[],conversations:e.conversations}),e.comments&&(0,M2.jsx)(rgr,{comments:e.comments,itemId:e.id,onCommentDeleted:r})]})}var gB=L(z(),1);function Rgr({item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n}){return(0,gB.jsxs)(ue,{sx:{pt:2,flex:1,minWidth:0},children:[(0,gB.jsx)($mr,{description:e.description}),(0,gB.jsx)(Fmr,{criteria:e.acceptanceCriteria}),(0,gB.jsx)(Egr,{item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n})]})}var Agr="item-detail";var yY={wideQuery:`@container ${Agr} (min-width: 760px)`,containerSx:{containerType:"inline-size",containerName:Agr},columnsSx:{display:"flex",columnGap:3}};function qWn(e){let t=e.plan??[];if(t.length===0)return[];let r=Yge(t),i=r===t.length&&(e.phaseSessions??[]).some(o=>o.phaseIdx>=r)?[...t,gY]:t;return[{id:R_.plan,label:"Phases"},...i.map((o,a)=>({id:qge(a).id,label:`${a+1}`,title:o.name,status:Kge(a,e.currentPhase),nested:!0}))]}function Pgr(e){let t=[];return e.description&&t.push({id:R_.description,label:"Description"}),e.acceptanceCriteria.length>0&&t.push({id:R_.acceptanceCriteria,label:"Acceptance Criteria"}),(e.subtasks?.length??0)>0&&t.push({id:R_.subtasks,label:"Sub-tasks"}),t.push(...qWn(e)),(e.gitRefs?.length??0)+(e.conversations?.length??0)>0&&t.push({id:R_.activity,label:"Activity"}),(e.comments?.length??0)>0&&t.push({id:R_.comments,label:"Comments"}),t}var Lgr="1.3125rem",Mgr={position:"relative",borderRadius:1,"&::after":{content:'""',position:"absolute",inset:0,borderRadius:"inherit",pointerEvents:"none"},"&:hover::after":{bgcolor:"action.hover"},"&:active::after":{bgcolor:"action.selected"}},jWn={...Mgr,display:"block",flexShrink:0,maxWidth:"100%",px:1,py:.5,border:0,bgcolor:"transparent",fontSize:Lgr,lineHeight:1.2,letterSpacing:"0.02em",textAlign:"left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"text.secondary"},YWn={...Mgr,display:"flex",alignItems:"center",justifyContent:"center",fontSize:Lgr,width:"2em",height:"2em",flexShrink:0,lineHeight:1,borderRadius:"50%",border:1,color:"text.primary"},KWn={borderColor:"text.primary",borderWidth:3},XWn={color:"text.primary",fontWeight:700,"&::after":{bgcolor:"action.selected"}};function Igr(e,t){let r=e.status&&jge[e.status];return r?{...YWn,ml:1.5,bgcolor:r.bgcolor,borderColor:r.borderColor,borderWidth:r.ring?3:1,...t&&KWn}:{...jWn,...t&&XWn}}var Ngr=L(z(),1);function Dgr({section:e,active:t,onSelect:r}){return(0,Ngr.jsx)(Dn,{sx:Igr(e,t),onClick:()=>r(e.id),title:e.title??e.label,"aria-current":t?"true":void 0,children:e.label})}function Ogr(e,t=hY){return jhe(e,t)}var H$e=L(z(),1),ZWn=48,QWn=260,JWn={display:"none",[yY.wideQuery]:{display:"flex"},position:"sticky",top:Gge,alignSelf:"flex-start",width:QWn,flexShrink:0,maxHeight:`calc(100vh - ${ZWn}px - ${Gge})`,alignItems:"flex-start",overflowY:"auto",overflowX:"hidden",py:2};function eVn(e){document.getElementById(e)?.scrollIntoView({behavior:"smooth",block:"start"})}function Bgr({item:e,headerHeight:t}){let r=Pgr(e),n=Ogr(r.map(i=>i.id),t);return r.length===0?null:(0,H$e.jsx)(Rt,{component:"nav",spacing:1,sx:JWn,children:r.map(i=>(0,H$e.jsx)(Dgr,{section:i,active:i.id===n,onSelect:eVn},i.id))})}var $gr=L(z(),1);function Fgr({to:e}){let t=Xi();return(0,$gr.jsx)(qt,{"data-backlog-focus":"back",variant:"text",size:"small",onClick:()=>t(e),sx:{mb:2,textTransform:"none"},children:"\u2190 Back"})}var zgr=L(ge(),1);var CR=L(z(),1);function Hgr({itemId:e,onDeleted:t}){let r=as(),n=yr(),[i,o]=(0,zgr.useState)(!1);return(0,CR.jsxs)(CR.Fragment,{children:[i&&(0,CR.jsx)(vo,{onConfirm:async()=>{await xet(e,r,n),await t()},onCancel:()=>o(!1)}),(0,CR.jsx)(qt,{variant:"contained",color:"error",size:"small",onClick:()=>o(!0),children:"Delete"})]})}var U$e=L(z(),1),tVn={todo:{bg:"action.selected",text:"text.primary"},"in-progress":{bg:"warning.main",text:"warning.contrastText"},done:{bg:"success.main",text:"success.contrastText"},wontdo:{bg:"error.main",text:"error.contrastText"}},rVn=["todo","in-progress","done","wontdo"];function Ugr({current:e,onStatusChange:t}){return t?(0,U$e.jsx)(Xge,{value:e,options:rVn,colors:tVn,onChange:t}):(0,U$e.jsx)(sn,{label:e,size:"small",color:mge[e],sx:{fontWeight:500,fontSize:"0.75rem"}})}var I2=L(z(),1),nVn={alignItems:"center",color:"text.disabled",fontSize:"0.875rem"},iVn={fontWeight:500,fontSize:"0.75rem"},oVn={color:"text.secondary",fontSize:"0.75rem"};function Wgr({item:e,onStatusChange:t}){let r=pge[e.type];return(0,I2.jsxs)(Rt,{direction:"row",spacing:1,sx:nVn,children:[(0,I2.jsx)(Fe,{variant:"body2",color:"text.disabled",children:so(e.id)}),r&&(0,I2.jsx)(sn,{label:e.type,size:"small",color:r,sx:iVn}),(0,I2.jsx)(Ugr,{current:e.status,onStatusChange:t}),(0,I2.jsx)(cP,{jiraKey:e.jiraKey}),(0,I2.jsx)(lP,{githubIssue:e.githubIssue,origin:e.origin}),e.usageTotal&&(0,I2.jsx)(hB,{total:e.usageTotal,sx:oVn})]})}var Vgr=L(z(),1),Ggr=ft((0,Vgr.jsx)("path",{d:"M3 17v2h6v-2zM3 5v2h10V5zm10 16v-2h8v-2h-8v-2h-2v6zM7 9v2H3v2h4v2h2V9zm14 4v-2H11v2zm-6-4h2V7h4V5h-4V3h-2z"}),"Tune");var Zge=L(ge(),1);var qgr=L(ge(),1);function jgr(e){let{launchAssist:t}=$l(),r=Xi(),n=as(),i=yr(),[o,a]=(0,qgr.useState)(!1);return{launched:o,launch:l=>{if(o)return;a(!0);let u=i?[{node:i}]:[];t(["refine","--once",...l,so(e)],n,...u),r("/sessions")}}}var a0=L(z(),1);function Ygr({itemId:e}){let{launched:t,launch:r}=jgr(e),n=S_(),i=(0,Zge.useRef)(null),[o,a]=(0,Zge.useState)(!1),s=u=>u.stopPropagation(),l=_ge(n);return(0,a0.jsxs)(a0.Fragment,{children:[(0,a0.jsxs)(Q2,{ref:i,variant:"outlined",size:"small",disabled:t,children:[(0,a0.jsx)(qt,{startIcon:(0,a0.jsx)(Ggr,{}),onClick:u=>{s(u),r([])},children:"Refine"}),l.length>0&&(0,a0.jsx)(qt,{size:"small","aria-label":"Refine with a different harness",onClick:u=>{s(u),a(!0)},children:(0,a0.jsx)(zp,{})})]}),(0,a0.jsx)(kge,{anchorEl:i.current,open:o,onClose:()=>a(!1),options:l,onSelect:u=>{a(!1),r(["--harness",u])},stop:s})]})}var yB=L(ge(),1);function Kgr(){let e=(0,yB.useRef)(null),[t,r]=(0,yB.useState)(!1);return(0,yB.useEffect)(()=>{let n=e.current;if(!n)return;let i=new IntersectionObserver(([o])=>r(!o.isIntersecting),{threshold:0});return i.observe(n),()=>i.disconnect()},[]),{sentinelRef:e,stuck:t}}var Of=L(z(),1),aVn={justifyContent:"space-between",alignItems:"center",mb:2};function sVn(e){return e.palette.mode==="dark"?"0 8px 8px -9px rgba(0, 0, 0, 0.8)":"0 6px 6px -7px rgba(0, 0, 0, 0.2)"}function lVn(e){return t=>({position:"sticky",top:0,zIndex:1,bgcolor:"background.default",mx:-2,px:2,pb:2,borderBottom:1,borderColor:"divider",boxShadow:e?sVn(t):"none",transition:t.transitions.create("box-shadow")})}function Xgr({item:e,onDeleted:t,onStatusChange:r,ref:n}){let{sentinelRef:i,stuck:o}=Kgr();return(0,Of.jsxs)(Of.Fragment,{children:[(0,Of.jsx)(ue,{ref:i,sx:{height:0}}),(0,Of.jsxs)(ue,{ref:n,sx:lVn(o),children:[(0,Of.jsxs)(Rt,{direction:"row",sx:aVn,children:[(0,Of.jsx)(Fgr,{to:"/backlog"}),(0,Of.jsxs)(Rt,{direction:"row",spacing:1,children:[wge(e)&&(0,Of.jsx)(Hge,{itemId:e.id}),(0,Of.jsx)(Ygr,{itemId:e.id}),(0,Of.jsx)(Hgr,{itemId:e.id,onDeleted:t})]})]}),(0,Of.jsx)(Fe,{variant:"h5",component:"h2",children:e.name}),(0,Of.jsx)(Wgr,{item:e,onStatusChange:r})]})]})}var Qgr=L(ge(),1);var Qge=L(ge(),1);function Zgr(e,t){let[r,n]=(0,Qge.useState)(t);return(0,Qge.useEffect)(()=>{let i=e.current;if(!i||(n(i.offsetHeight),typeof ResizeObserver>"u"))return;let o=new ResizeObserver(()=>n(i.offsetHeight));return o.observe(i),()=>o.disconnect()},[e]),r}function Jgr(){let e=(0,Qgr.useRef)(null),t=Zgr(e,hY),r={[B$e]:`${t}px`};return{headerRef:e,headerHeight:t,style:r}}var I_=L(z(),1);function e0r({item:e,onReload:t}){let r=Xi(),n=as(),i=yr(),{headerRef:o,headerHeight:a,style:s}=Jgr();ny("ItemDetail");let l=async()=>{await t(),r("/backlog")},u=async d=>{await AJ(e.id,d,n,i),await t()},f=async(d,h)=>{await Tet(e.id,d,h,n,i),await t()};return(0,I_.jsxs)(ue,{style:s,children:[(0,I_.jsx)(Xgr,{ref:o,item:e,onDeleted:l,onStatusChange:u}),(0,I_.jsx)(ue,{sx:yY.containerSx,children:(0,I_.jsxs)(ue,{sx:yY.columnsSx,children:[(0,I_.jsx)(Rgr,{item:e,onRewind:t,onCommentDeleted:t,onSubtaskStatusChange:f}),(0,I_.jsx)(Bgr,{item:e,headerHeight:a})]})})]})}var wR=L(z(),1),cVn={display:"flex",justifyContent:"center",py:6};function t0r({onReload:e}){let[t]=Pc(),r=t.get("cwd")||void 0,n=t.get("node")||void 0,i=$n(),o=(0,Jge.useMemo)(()=>r?{...i,selectedCwd:r,selectedNode:n}:i,[i,r,n]);return ny("ItemRoute"),(0,wR.jsx)(bz.Provider,{value:o,children:(0,wR.jsx)(Ku.Provider,{value:o.selectedNode,children:(0,wR.jsx)(uVn,{onReload:e})})})}function uVn({onReload:e}){let{id:t}=p2e(),r=Number.NaN;try{r=mJ(t??"")}catch{r=Number.NaN}let{item:n,loading:i,reload:o}=Omr(r),a=(0,Jge.useCallback)(async()=>{await Promise.all([o(),e()])},[o,e]);return i?(0,wR.jsx)(ue,{sx:cVn,children:(0,wR.jsx)(mo,{})}):n?(0,wR.jsx)(e0r,{item:n,onReload:a}):null}var _R=L(z(),1);function r0r({items:e,loading:t,error:r,socket:n,onReload:i}){return(0,_R.jsxs)(d5,{children:[(0,_R.jsx)(gs,{index:!0,element:(0,_R.jsx)(Nmr,{items:e,loading:t,error:r,socket:n,onReload:i})}),(0,_R.jsx)(gs,{path:"items/:id",element:(0,_R.jsx)(t0r,{onReload:i})})]})}var s0=L(ge(),1);var n0r=new Map;function i0r(e,t,r){return JSON.stringify([e??null,t,r??null])}var vY={get(e,t,r){return n0r.get(i0r(e,t,r))},set(e,t,r,n){n0r.set(i0r(e,t,n),r)}};function fVn(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 o0r(e,t){return e===t?!0:e.length!==t.length?!1:e.every((r,n)=>{let i=t[n];return r.id===i.id&&r.type===i.type&&r.name===i.name&&r.status===i.status&&r.starred===i.starred&&r.incompleteSubtasks===i.incompleteSubtasks&&fVn(r.usageTotal,i.usageTotal)})}function a0r({setItems:e,setLoading:t,setError:r}){return{onLoaded:n=>{e(i=>o0r(i,n)?i:n),t(!1),r(null)},onError:n=>{t(!1),r(n)}}}async function s0r(e,t,r,n){let i=await zT({cwd:e,node:n,signal:r,filter:t});return r.aborted||vY.set(e,t,i,n),i}function l0r(e,t,r,{onLoaded:n,onError:i},o){return(async()=>{try{let a=await s0r(e,t,r,o);r.aborted||n(a)}catch(a){r.aborted||i(a instanceof Error?a.message:"Failed to load.")}})()}var dVn=5e3;function c0r(e,t,r,n){let i=new AbortController,o=!1,a=()=>{o||(o=!0,l0r(e,t,i.signal,r,n).finally(()=>{o=!1}))};a();let s=setInterval(a,dVn);return()=>{i.abort(),clearInterval(s)}}function u0r(){let e=as(),t=yr(),[r]=rB(),n=vY.get(e,r,t),i=n??[],o=n===void 0,[a,s]=(0,s0.useState)(i),[l,u]=(0,s0.useState)(o),[f,d]=(0,s0.useState)(null),[h,p]=(0,s0.useState)(e),[m,g]=(0,s0.useState)(t),[y,v]=(0,s0.useState)(r);(e!==h||t!==m||r!==y)&&(p(e),g(t),v(r),s(i),u(o),d(null));let b=(0,s0.useCallback)(async()=>{let x=await zT({cwd:e,node:t,filter:r});s(x),vY.set(e,r,x,t),u(!1)},[e,t,r]);return(0,s0.useEffect)(()=>c0r(e,r,a0r({setItems:s,setLoading:u,setError:d}),t),[e,t,r]),{items:a,loading:l,error:f,reload:b}}var bY=L(z(),1);function f0r({socket:e}){let{items:t,loading:r,error:n,reload:i}=u0r();return ste(!r),(0,bY.jsx)(R$e.Provider,{value:e.sessions,children:(0,bY.jsx)(d5,{children:(0,bY.jsx)(gs,{path:"/*",element:(0,bY.jsx)(r0r,{items:t,loading:r,error:n,socket:e,onReload:i})})})})}var W$e=L(z(),1);function d0r({socket:e}){return(0,W$e.jsx)(MF,{maxWidth:"lg",sx:{py:3,px:2},children:(0,W$e.jsx)(f0r,{socket:e})})}var ki=L(z(),1);function h0r({socket:e}){return ny("AppRoutes"),(0,ki.jsxs)(ki.Fragment,{children:[(0,ki.jsx)(sor,{}),(0,ki.jsx)(d5,{children:(0,ki.jsxs)(gs,{element:(0,ki.jsx)(bit,{socket:e}),children:[(0,ki.jsx)(gs,{path:"sessions",element:(0,ki.jsx)(qdr,{socket:e})}),(0,ki.jsx)(gs,{path:"backlog/*",element:(0,ki.jsx)(d0r,{socket:e})}),(0,ki.jsx)(gs,{path:"next",element:(0,ki.jsx)(xir,{sessions:e.sessions,selectSession:e.selectSession})}),(0,ki.jsx)(gs,{path:"news",element:(0,ki.jsx)(Inr,{})}),(0,ki.jsx)(gs,{path:"releases",element:(0,ki.jsx)(nor,{})}),(0,ki.jsx)(gs,{path:"usage",element:(0,ki.jsx)(Epr,{})}),(0,ki.jsx)(gs,{path:"backups",element:(0,ki.jsx)(Eit,{})}),(0,ki.jsx)(gs,{path:"config",element:(0,ki.jsx)(Tat,{})}),(0,ki.jsx)(gs,{path:"updates",element:(0,ki.jsx)(Fhr,{reconnecting:e.reconnecting,selectSession:e.selectSession})}),(0,ki.jsx)(gs,{path:"diff",element:(0,ki.jsx)(Qrr,{socket:e})}),(0,ki.jsx)(gs,{path:"file",element:(0,ki.jsx)(Rnr,{socket:e})}),(0,ki.jsx)(gs,{path:"*",element:(0,ki.jsx)(x2e,{to:"/sessions",replace:!0})})]})})]})}var i0e=L(ge(),1);var n0e=L(ge(),1);function p0r(e,t,r){if(!e)return"Select a repo to search files.";if(r.error)return"Couldn't search files in this repo.";if(!(r.files.length>0||r.loading))return t?"No matching files.":"No files in this repo."}var D_=L(z(),1),hVn={display:"flex",gap:1,alignItems:"center",minWidth:0},pVn={display:"flex",gap:1,alignItems:"baseline",minWidth:0,overflow:"hidden"},mVn={fontFamily:"monospace",fontSize:13,whiteSpace:"nowrap"},gVn={fontFamily:"monospace",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function yVn(e){let t=e.lastIndexOf("/");return t===-1?{dir:"",basename:e}:{dir:e.slice(0,t),basename:e.slice(t+1)}}function m0r({files:e,highlight:t,onHighlight:r,onSelect:n}){return(0,D_.jsx)(Tp,{dense:!0,sx:{py:0},children:e.map((i,o)=>{let{dir:a,basename:s}=yVn(i);return(0,D_.jsxs)(fn,{selected:o===t,onMouseEnter:()=>r(o),onClick:()=>n(i),sx:hVn,children:[(0,D_.jsx)(QO,{path:i}),(0,D_.jsxs)(ue,{sx:pVn,children:[(0,D_.jsx)(Fe,{component:"span",sx:mVn,children:s}),(0,D_.jsx)(Fe,{component:"span",color:"text.secondary",sx:gVn,children:a})]})]},i)})})}var e0e=L(z(),1),vVn={maxHeight:420,overflowY:"auto"},bVn={px:2,py:2,fontSize:13};function g0r({message:e,files:t,highlight:r,onHighlight:n,onSelect:i}){return(0,e0e.jsx)(ue,{sx:vVn,children:e?(0,e0e.jsx)(Fe,{color:"text.secondary",sx:bVn,children:e}):(0,e0e.jsx)(m0r,{files:t,highlight:r,onHighlight:n,onSelect:i})})}var y0r=L(z(),1),xVn={mt:6,alignSelf:"flex-start"};function t0e({onClose:e,onEntered:t,centered:r=!1,children:n}){return(0,y0r.jsx)(Ps,{open:!0,onClose:e,maxWidth:"sm",fullWidth:!0,slotProps:{paper:{sx:r?void 0:xVn},transition:{onEntered:t}},children:n})}var r0e=L(ge(),1);var v0r={files:[],loading:!1,error:!1};function b0r(e,t){let[r,n]=(0,r0e.useState)(v0r),i=yr();return(0,r0e.useEffect)(()=>{if(!e){n(v0r);return}let o=!1;return n(s=>({...s,loading:!0})),(async()=>{try{let s=await fetch(tn(`/api/files?cwd=${encodeURIComponent(e)}&q=${encodeURIComponent(t)}`,i));if(!s.ok)throw new Error(`HTTP ${s.status}`);let l=await s.json();if(o)return;n({files:Array.isArray(l.files)?l.files:[],loading:!1,error:!1})}catch{o||n({files:[],loading:!1,error:!0})}})(),()=>{o=!0}},[e,t,i]),r}var kR=L(z(),1);function TVn(e,t,r){let n=new URLSearchParams({path:e});return t&&n.set("cwd",t),t&&r&&n.set("node",r),`/file?${n}`}function x0r({onClose:e}){let{worktreeNode:t}=$n();return(0,kR.jsx)(Ku.Provider,{value:t,children:(0,kR.jsx)(SVn,{onClose:e})})}function SVn({onClose:e}){let{worktreeCwd:t,worktreeNode:r}=$n(),[n,i]=(0,n0e.useState)(""),o=b0r(t,n),a=Xi(),s=(0,n0e.useRef)(null),l=p=>a(TVn(p,t,r)),{highlight:u,setHighlight:f,onKeyDown:d}=k_(o.files,n,l,e),h=p=>{l(p),e()};return(0,kR.jsxs)(t0e,{onClose:e,onEntered:()=>s.current?.focus(),children:[(0,kR.jsx)(aB,{autoFocus:!0,inputRef:s,value:n,onChange:i,onKeyDown:d,placeholder:"Search files by name..."}),(0,kR.jsx)(g0r,{message:p0r(t,n,o),files:o.files,highlight:u,onHighlight:f,onSelect:h})]})}function T0r(e){Io(Yn("quickOpen").matches,e)}var C0r=L(z(),1);function S0r(){let[e,t]=(0,i0e.useState)(!1);return T0r((0,i0e.useCallback)(()=>t(!0),[])),e?(0,C0r.jsx)(x0r,{onClose:()=>t(!1)}):null}var o0e=L(z(),1);function w0r({notice:e,onClose:t,onView:r}){let n=e?.sessionId??null;return(0,o0e.jsx)(ol,{open:e!==null,autoHideDuration:6e3,onClose:t,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,o0e.jsx)(ri,{severity:"success",variant:"filled",onClose:t,action:n!==null?(0,o0e.jsx)(qt,{color:"inherit",size:"small",onClick:()=>r(n),children:"View"}):void 0,children:e?.message})})}var u0e=L(ge(),1);function _0r(e){let t=["claude"];return e.exposeCodexActions&&t.push("codex"),e.exposePiActions&&t.push("pi"),t}var F0r=L(ge(),1);var k0r=L(z(),1),E0r=ft((0,k0r.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2"}),"Circle");var N_="0.786.0";var CVn={connected:"success.main",connecting:"warning.main",disconnected:"error.main","version-blocked":"error.main"};function R0r(e){return e?CVn[e]:"success.main"}function A0r(e){return e.split("-")[0].split(".").map(Number)}function P0r(e,t){if(!e||!t||e===t)return;let r=A0r(e),n=A0r(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 a0e=L(ge(),1),V$e=(0,a0e.createContext)(null);function s0e(){return(0,a0e.useContext)(V$e)}var ER=L(z(),1),wVn={height:16,fontSize:10},_Vn={opacity:.6,fontSize:"0.85em"};function kVn(e,t){if(t===e.local)return"this machine";let r=e.links.find(n=>n.name===t);return r?r.error?`${r.state}: ${r.error}`:r.state:""}function xY({nodes:e,name:t,showVersion:r=!1}){let n=s0e()??N_,i=e.links.find(a=>a.name===t),o=P0r(i?.peerVersion,n);return(0,ER.jsx)(lr,{title:kVn(e,t),placement:"right",children:(0,ER.jsxs)(ue,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.75},children:[(0,ER.jsx)(E0r,{sx:{fontSize:8,color:R0r(i?.state)}}),t,r&&i?.peerVersion&&(0,ER.jsxs)(ue,{component:"span",sx:_Vn,children:["v",i.peerVersion]}),o&&(0,ER.jsx)(sn,{label:o,size:"small",color:o==="behind"?"warning":"info",sx:wVn})]})})}var RR=L(z(),1),EVn={opacity:.6},RVn={display:"inline-flex",alignItems:"center",gap:.5,px:.5,border:1,borderStyle:"dashed",borderRadius:1};function L0r({nodes:e,name:t,clone:r}){let n=(0,RR.jsx)(xY,{nodes:e,name:t});return r.kind==="cloned"?n:r.kind==="unavailable"?(0,RR.jsx)(ue,{component:"span",sx:EVn,children:n}):(0,RR.jsx)(lr,{title:oB(t,r.cloneTarget),children:(0,RR.jsxs)(ue,{component:"span",sx:RVn,children:[(0,RR.jsx)(iB,{sx:{fontSize:14}}),n]})})}var I0r=L(z(),1),AVn={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 M0r({value:e,label:t,checked:r,autoFocus:n,onSelect:i}){return(0,I0r.jsx)(Dn,{role:"radio","aria-checked":r,"data-value":e,tabIndex:r?0:-1,autoFocus:n&&r,onClick:i,sx:AVn,children:t})}var D0r={ArrowRight:1,ArrowLeft:-1};function PVn(e,t,r){if(e.key==="Tab"){let n=t+(e.shiftKey?-1:1);return n>=0&&n<r?n:void 0}return(t+D0r[e.key]+r)%r}function N0r(e,t,r,n){return i=>{if(i.key==="ArrowUp"||i.key==="ArrowDown"){if(!n)return;i.preventDefault(),n();return}if(i.key!=="Tab"&&!D0r[i.key]){lb(i);return}let o=PVn(i,e.indexOf(t),e.length);o!==void 0&&(i.preventDefault(),r(e[o]),i.currentTarget.querySelector(`[data-value="${e[o]}"]`)?.focus())}}var O0r=L(ge(),1);function vB(e){return e?.querySelector('[aria-checked="true"]')}function B0r(e,t){(0,O0r.useEffect)(()=>{let r=e.current;if(!r?.contains(document.activeElement))return;let n=vB(r);n&&n!==document.activeElement&&n.focus()},[e,t])}var G$e=L(z(),1),LVn={border:1,borderColor:"divider",borderRadius:1,height:40,p:"2px",flexShrink:0};function l0e({label:e,options:t,value:r,onChange:n,optionLabel:i=u=>u,groupRef:o,autoFocus:a,onTrack:s,onToggleRow:l}){return B0r(o,r),(0,G$e.jsx)(Rt,{ref:o,direction:"row",role:"radiogroup","aria-label":e,spacing:"2px",onFocus:s,onKeyDown:N0r(t,r,n,l),sx:LVn,children:t.map(u=>(0,G$e.jsx)(M0r,{value:u,label:i(u),checked:u===r,autoFocus:a,onSelect:()=>n(u)},u))})}var q$e=L(z(),1);function $0r({value:e,onChange:t,cloneState:r}){let{nodes:n,names:i,visible:o}=Ou(),a=(0,F0r.useRef)(null);return!o||!n||!e?null:(0,q$e.jsx)(l0e,{label:"Machine",options:i,value:e,onChange:t,optionLabel:s=>(0,q$e.jsx)(L0r,{nodes:n,name:s,clone:r(s)}),groupRef:a,autoFocus:!1,onTrack:()=>{}})}var H0r=L(z(),1);function z0r({value:e,onChange:t,placeholder:r,inputRef:n,autoFocus:i,onTrack:o}){return(0,H0r.jsx)(ni,{value:e,onChange:a=>t(a.target.value),onKeyDown:lb,onFocus:o,onSelect:o,inputRef:n,placeholder:r,autoFocus:i,fullWidth:!0,multiline:!0,minRows:3,maxRows:12,slotProps:{htmlInput:{"aria-label":"Prompt"},input:{sx:{fontSize:14}}}})}var G0r=L(ge(),1);var D2={draft:{placeholder:"Describe the backlog item to draft...",submitLabel:"Start draft",sessionMode:"assist-draft"},bug:{placeholder:"Describe the bug: what happened, what you expected...",submitLabel:"File bug",sessionMode:"assist-bug"},prompt:{placeholder:Fee,submitLabel:"Start session"},design:{placeholder:"Describe the design task...",submitLabel:"Start design"}},U0r=Object.keys(D2);var j$e=L(z(),1);function W0r({anchor:e,harness:t,harnesses:r,onPick:n,onClose:i}){return(0,j$e.jsx)(Dl,{open:e!==null,anchorEl:e,onClose:i,slotProps:{list:{dense:!0,"aria-label":"Harness"}},children:r.map(o=>(0,j$e.jsx)(fn,{role:"menuitemradio","aria-checked":o===t,selected:o===t,onClick:()=>{n(o),i()},sx:{fontSize:13},children:gu(o)},o))})}var AR=L(z(),1);function V0r(e){return t=>t==="prompt"&&e?(0,AR.jsxs)(AR.Fragment,{children:["prompt",(0,AR.jsx)(ue,{component:"span",sx:{fontWeight:400,whiteSpace:"pre"},children:` \xB7 ${gu(e)}`}),(0,AR.jsx)(zp,{sx:{fontSize:18,mr:-.75}})]}):t}var PR=L(z(),1);function q0r({draft:e,harness:t,harnesses:r,focus:n}){let[i,o]=(0,G0r.useState)(null),a=e.mode==="prompt"&&r.length>1,s=()=>o(vB(n.modeRef.current)??null),l=u=>{a&&u==="prompt"?s():e.setMode(u)};return(0,PR.jsxs)(PR.Fragment,{children:[(0,PR.jsx)(l0e,{label:"Mode",options:U0r,value:e.mode,onChange:l,optionLabel:V0r(r.length>1?t:void 0),groupRef:n.modeRef,autoFocus:n.autoFocus==="mode",onTrack:n.trackMode,onToggleRow:a?s:void 0}),(0,PR.jsx)(W0r,{anchor:i,harness:t,harnesses:r,onPick:e.setHarness,onClose:()=>o(null)})]})}var nyr=L(ge(),1);var Y$e=L(z(),1),MVn={zIndex:e=>e.zIndex.modal+1};function j0r({open:e,anchor:t,children:r}){return(0,Y$e.jsx)(OA,{open:e,anchorEl:t,placement:"bottom-start",sx:MVn,children:(0,Y$e.jsx)(an,{sx:{maxHeight:240,overflowY:"auto",width:t?.clientWidth},onMouseDown:n=>n.preventDefault(),children:r})})}function Y0r(e){return{htmlInput:{role:"combobox","aria-label":"Repo","aria-expanded":e},input:{sx:{fontSize:13,height:40}}}}var K0r=L(lF(),1);function X0r({open:e,highlighted:t,accept:r,close:n,navigate:i,openList:o}){return a=>{if(!e){if(a.key==="ArrowDown"){a.preventDefault(),o();return}lb(a);return}if(a.key!=="Escape"){if(a.key==="Enter"){if(a.preventDefault(),t===void 0)return;(0,K0r.flushSync)(()=>{r(t),n()}),lb(a);return}if(a.key!=="Tab"){i(a);return}t!==void 0&&r(t),n()}}}function Z0r(e,t){let r=t.trim().toLowerCase();return r?e.filter(n=>K1(n).toLowerCase().includes(r)):e}var K$e=L(ge(),1);function Q0r(){let[e,t]=(0,K$e.useState)(!1),[r,n]=(0,K$e.useState)("");return{open:e,query:r,show:()=>t(!0),filterBy:i=>{n(i),t(!0)},close:()=>{t(!1),n("")}}}var eyr=L(ge(),1);var J0r=e=>e?K1(e):"";function tyr(e){let[t,r]=(0,eyr.useState)(()=>J0r(e));return{text:t,setText:r,showRepo:n=>r(J0r(n))}}function ryr(e,t,r){let n=Q0r(),i=tyr(t),o=Z0r(e,n.query),a=f=>{r(f),i.showRepo(f)},s=k_(o,n.query,a,n.close),l=()=>s.setHighlight(Math.max(e.indexOf(t),0)),u=()=>{l(),n.show()};return{open:n.open,text:i.text,filtered:o,highlight:s.highlight,setHighlight:s.setHighlight,onKeyDown:X0r({open:n.open,highlighted:o[s.highlight],accept:a,close:n.close,navigate:s.onKeyDown,openList:u}),onClick:()=>{n.open||u()},onType:f=>{i.setText(f),n.filterBy(f)},onFocus:l,onBlur:()=>{n.close(),i.showRepo(t)},pick:f=>{a(f),n.close()}}}var bB=L(z(),1);function iyr({repos:e,value:t,onChange:r,inputRef:n,autoFocus:i,onTrack:o}){let a=ryr(e,t,r),s=(0,nyr.useRef)(null);return(0,bB.jsxs)(ue,{ref:s,sx:{flex:1,minWidth:0},children:[(0,bB.jsx)(ni,{value:a.text,onChange:l=>a.onType(l.target.value),onFocus:l=>{l.target.select(),a.onFocus(),o()},inputRef:n,autoFocus:i,onClick:a.onClick,onBlur:a.onBlur,onKeyDown:a.onKeyDown,placeholder:"Repo",size:"small",fullWidth:!0,slotProps:Y0r(a.open)}),(0,bB.jsx)(j0r,{open:a.open,anchor:s.current,children:(0,bB.jsx)(Bge,{repos:a.filtered,selected:t,highlight:a.highlight,onHighlight:a.setHighlight,onSelect:a.pick})})]})}var O_=L(z(),1);function oyr({cloneState:e,...t}){let{draft:r,focus:n}=t,{repos:i}=$n();return(0,O_.jsxs)(Rt,{spacing:1,sx:{p:1},children:[(0,O_.jsx)(z0r,{value:r.prompt,onChange:r.setPrompt,placeholder:D2[r.mode].placeholder,inputRef:n.promptRef,autoFocus:n.autoFocus==="prompt",onTrack:n.trackPrompt}),(0,O_.jsxs)(Rt,{direction:"row",spacing:1,sx:{alignItems:"flex-start"},children:[(0,O_.jsx)(iyr,{repos:i,value:r.cwd,onChange:r.setCwd,inputRef:n.repoRef,autoFocus:n.autoFocus==="repo",onTrack:n.trackRepo}),(0,O_.jsx)(q0r,{...t})]}),(0,O_.jsx)($0r,{value:r.node,onChange:r.setNode,cloneState:e})]})}var xB=L(z(),1),IVn=["Enter start","Shift+Enter newline","Esc close"],DVn={alignItems:"center",px:1.5,py:1,borderTop:1,borderColor:"divider",bgcolor:"action.hover"};function ayr({submitLabel:e,disabled:t=!1}){return(0,xB.jsxs)(Rt,{direction:"row",spacing:1.5,sx:DVn,children:[(0,xB.jsx)(Rt,{direction:"row",spacing:1.5,sx:{mr:"auto"},children:IVn.map(r=>(0,xB.jsx)(Fe,{variant:"caption",color:"text.secondary",children:r},r))}),(0,xB.jsx)(qt,{type:"submit",variant:"contained",size:"small",disabled:t,children:e})]})}function syr({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}]:[];fnt(D2[e].sessionMode,n,(u,f)=>o.onCreateAssist(u,f,...l),()=>{},r)}function lyr(e,t,r,n){return r.kind==="blocked"?!1:r.kind==="clone"?(Age(r.prompt,n.onCreateAssist),!0):(syr({mode:e.mode,harness:t,prompt:e.prompt,cwd:r.cwd,node:e.node},n),e.clear(),!0)}var LR=L(ge(),1);function cyr(e,t){let r=(0,LR.useRef)(e),n=(0,LR.useRef)(null),i=(0,LR.useRef)(null),o=(0,LR.useRef)(null),a=(0,LR.useCallback)(u=>{n.current=u;let{field:f,selectionStart:d,selectionEnd:h}=r.current;u&&f==="prompt"&&u.setSelectionRange(d,h)},[]),s=u=>{let f=u.target;t({field:"prompt",selectionStart:f.selectionStart,selectionEnd:f.selectionEnd})},l=()=>{if(o.current?.closest("form")?.contains(document.activeElement))return;let{field:u}=r.current;({repo:i.current,mode:vB(o.current),prompt:n.current}[u]??n.current)?.focus()};return{autoFocus:e.field,promptRef:a,repoRef:i,modeRef:o,trackPrompt:s,trackRepo:()=>t({...e,field:"repo"}),trackMode:()=>t({...e,field:"mode"}),restore:l}}function NVn(e,t,r){return e?r.kind==="cloned"?{kind:"launch",cwd:r.cwd}:r.kind==="clonable"?{kind:"clone",prompt:$ge(r,t)}:{kind:"blocked"}:{kind:"launch",cwd:e}}function uyr(e,t){let{names:r,visible:n}=Ou(),i=Dge(t,n?r:[void 0]);return{cloneState:i,target:NVn(t,e,i(e))}}var TB=L(z(),1);function fyr({draft:e,launchers:t,onClose:r}){let n=cyr(e.focus,e.setFocus),i=_0r(S_()),o=i.includes(e.harness)?e.harness:"claude",{target:a,cloneState:s}=uyr(e.node,e.cwd),l=u=>{u.preventDefault(),lyr(e,o,a,t)&&r()};return(0,TB.jsx)(t0e,{onClose:r,onEntered:n.restore,centered:!0,children:(0,TB.jsxs)("form",{onSubmit:l,children:[(0,TB.jsx)(oyr,{draft:e,harness:o,harnesses:i,focus:n,cloneState:s}),(0,TB.jsx)(ayr,{submitLabel:a.kind==="clone"?"Clone":D2[e.mode].submitLabel,disabled:a.kind==="blocked"})]})})}var c0e=L(ge(),1);function dyr(e){let[t,r]=(0,c0e.useState)(null);return(0,c0e.useEffect)(()=>{let n=!1;return(async()=>{let i="draft";try{let o=e?`?cwd=${encodeURIComponent(e)}`:"",s=await(await fetch(`/api/new-session-defaults${o}`)).json();Object.hasOwn(D2,s?.mode)&&(i=s.mode)}catch{}n||r(i)})(),()=>{n=!0}},[e]),t}function hyr(e,{visible:t,names:r,selected:n}){if(t)return e&&r.includes(e)?e:n}var N2=L(ge(),1),pyr={field:"prompt",selectionStart:0,selectionEnd:0};function myr(){let[e,t]=(0,N2.useState)(""),[r,n]=(0,N2.useState)(),[i,o]=(0,N2.useState)(),[a,s]=(0,N2.useState)("claude"),[l,u]=(0,N2.useState)(),[f,d]=(0,N2.useState)(pyr),h=(0,N2.useCallback)(()=>{t(""),n(void 0),o(void 0),u(void 0),d(pyr)},[]);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 gyr(e=dyr){let{selectedCwd:t}=$n(),r=Ou(),n=myr(),i=n.cwd??t,o=e(i);return o?{...n,cwd:i,mode:n.mode??o,node:hyr(n.node,r)}:null}function yyr(e){Io(Yn("newSession").matches,e)}var vyr=L(ge(),1);function byr(e,t){let{selectedCwd:r}=$n(),[n,i]=Pc(),o=n.get("new"),a=n.get("newCwd")??r,{setPrompt:s,setCwd:l,setFocus:u}=e??{};(0,vyr.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 Tyr=L(z(),1);function xyr({launchers:e}){let[t,r]=(0,u0e.useState)(!1),n=gyr(),i=(0,u0e.useCallback)(()=>r(!0),[]);return yyr(i),byr(n,i),!t||!n?null:(0,Tyr.jsx)(fyr,{draft:n,launchers:e,onClose:()=>r(!1)})}var f0e=L(z(),1);function Syr({reconnecting:e}){return(0,f0e.jsx)(ol,{open:e,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,f0e.jsx)(ri,{severity:"info",variant:"filled",icon:(0,f0e.jsx)(mo,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var ev=L(z(),1);function Cyr({socket:e,onViewLaunchedSession:t}){return(0,ev.jsxs)(ev.Fragment,{children:[(0,ev.jsx)(S0r,{}),(0,ev.jsx)(xyr,{launchers:{onCreate:e.createSession,onCreateDesign:e.createDesignSession,onCreateHarness:e.createHarnessSession,onCreateAssist:e.createAssistSession}}),(0,ev.jsx)(Syr,{reconnecting:e.reconnecting}),(0,ev.jsx)(vu,{error:e.error,onClose:e.clearError}),(0,ev.jsx)(w0r,{notice:e.success,onClose:e.clearSuccess,onView:t})]})}var l0=L(ge(),1);var OVn=6e4;function wyr(e){let t=e.nodes?.local,r=e.names.join(`
|
|
3976
|
+
`,Bpr={...Opr,borderColor:"warning.main",borderLeft:4,borderLeftColor:"warning.main",bgcolor:e=>Ea(e.palette.warning.main,.08)},LUn={...Bpr,borderLeftColor:"transparent",backgroundImage:e=>`repeating-linear-gradient(to bottom, ${e.palette.warning.main} 0 ${Dpr}px, transparent ${Dpr}px ${P$e}px)`,backgroundOrigin:"border-box",backgroundRepeat:"repeat-y",backgroundSize:`4px ${P$e}px`,animation:`${PUn} 0.9s linear infinite`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}},Npr={"& .MuiButtonBase-root:focus-visible":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:"2px"}},j1={card:Opr,inProgressCard:Bpr,inProgressRunningCard:LUn,main:{minWidth:0,textAlign:"left"},stretchedNameLink:{display:"block",fontWeight:500,color:"text.primary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",...AUn},meta:{display:"flex",alignItems:"center",gap:1,...Ipr,width:"fit-content",maxWidth:"100%",fontSize:"0.75rem",color:"text.secondary","& a, & p":{fontSize:"0.75rem"},...Npr},id:{color:"text.disabled"},actions:{display:"flex",alignItems:"center",gap:1,flexShrink:0,...Ipr,...Npr}};function Cge(e){let t=e.peakContextPct>0?` \xB7 \u2593 ${Math.round(e.peakContextPct)}%`:"";return`\u2191 ${zd(e.tokensUp)} \u2193 ${zd(e.tokensDown)} \xB7 \u23F1 ${r0(e.activeMs)}${t}`}var $pr=L(z(),1),MUn={width:6,height:6,borderRadius:"50%",bgcolor:"currentColor",flexShrink:0};function Fpr(){return(0,$pr.jsx)(ue,{component:"span",sx:MUn})}var sY=L(z(),1),zpr={display:"inline-flex",alignItems:"center",gap:.625,color:"warning.main",fontWeight:500,fontSize:"0.75rem",whiteSpace:"nowrap",borderRadius:1};function Hpr({item:e,openSession:t,onSelectSession:r}){let n=Xi();if(e.status!=="in-progress"||e.currentPhase==null)return null;let i=`phase ${e.currentPhase} of ${e.totalPhases??e.currentPhase}`,o=(0,sY.jsx)(Fpr,{});if(!t)return(0,sY.jsxs)(ue,{component:"span",sx:zpr,children:[o,i]});let a=()=>{r?.(t.id),n("/sessions")};return(0,sY.jsxs)(Dn,{sx:zpr,title:`Open the ${t.status} session`,onClick:a,children:[o,i]})}var np=L(z(),1),IUn={display:"inline-flex",alignItems:"center",gap:.5},DUn={width:8,height:8,borderRadius:"50%",flexShrink:0},NUn={whiteSpace:"nowrap"};function OUn({type:e}){let t=pge[e];return(0,np.jsxs)(ue,{component:"span",sx:IUn,children:[(0,np.jsx)(ue,{component:"span",sx:{...DUn,bgcolor:`${t}.main`}}),e]})}function BUn({item:e}){return e.usageTotal?(0,np.jsx)(lr,{title:Cge(e.usageTotal),children:(0,np.jsx)(ue,{component:"span",sx:NUn,children:`\u23F1 ${r0(e.usageTotal.activeMs)}`})}):null}function Upr({item:e,openSession:t,onSelectSession:r}){return(0,np.jsxs)(ue,{sx:j1.meta,children:[(0,np.jsx)(ue,{component:"span",sx:j1.id,children:so(e.id)}),(0,np.jsx)(OUn,{type:e.type}),(0,np.jsx)(Hpr,{item:e,openSession:t,onSelectSession:r}),(0,np.jsx)(cP,{jiraKey:e.jiraKey}),(0,np.jsx)(lP,{githubIssue:e.githubIssue,variant:"icon"}),(0,np.jsx)(BUn,{item:e})]})}function Wpr(e,t){return e.filter(r=>wP(r)?.itemId===t).reduce((r,n)=>r&&r.startedAt>=n.startedAt?r:n,void 0)}var Gpr=L(z(),1),FUn={todo:"\u25CB","in-progress":"\u25D4",done:"\u25CF",wontdo:"\u2715"},$Un={todo:"text.disabled","in-progress":"warning.main",done:"success.main",wontdo:"error.main"};function zUn(e){return{fontSize:"1.125rem",flexShrink:0,color:$Un[e]}}function Vpr({status:e}){return(0,Gpr.jsx)(Fe,{sx:zUn(e),children:FUn[e]})}function wge(e){return e.status==="todo"||e.status==="in-progress"}function HUn(e){if(e.status==="done")return e.totalPhases;if(e.status==="in-progress")return e.currentPhase}function UUn(e,t,r){return r?"complete":e<t?"done":e===t?"current":"remaining"}function qpr(e){let t=e.totalPhases,r=HUn(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:UUn(o+1,r,n)}))}}var nB=L(z(),1),WUn={done:"text.secondary",current:"warning.main",remaining:"divider",complete:"success.main"},VUn={display:"inline-flex",alignItems:"center",gap:.5,flexShrink:0},GUn={fontSize:"0.6875rem",color:"text.secondary",fontVariantNumeric:"tabular-nums"},qUn={display:"inline-flex",alignItems:"center",gap:"2px"},jUn={width:6,height:12,borderRadius:"1px",flexShrink:0};function jpr({item:e}){let t=qpr(e);return t?(0,nB.jsxs)(ue,{sx:VUn,title:`Phase ${t.reached} of ${t.total}`,children:[(0,nB.jsx)(ue,{component:"span",sx:GUn,children:`${t.reached}/${t.total}`}),(0,nB.jsx)(ue,{component:"span",sx:qUn,"aria-hidden":!0,children:t.segments.map(r=>(0,nB.jsx)(ue,{component:"span","data-segment":r.kind,sx:{...jUn,bgcolor:WUn[r.kind]}},r.phase))})]}):null}var hmr=L(ge(),1);var Ege=L(ge(),1);var lY=L(z(),1);function Ypr({tooltip:e,disabled:t,onClick:r}){return(0,lY.jsx)(lr,{title:e,children:(0,lY.jsx)(ue,{component:"span",sx:{display:"flex"},children:(0,lY.jsx)(qt,{startIcon:(0,lY.jsx)(Op,{}),disabled:t,onClick:r,children:"Build"})})})}var L$e=L(z(),1);function _ge(e){let t=[];return e.exposeCodexActions&&t.push({kind:"codex",label:"with Codex"}),e.exposePiActions&&t.push({kind:"pi",label:"with pi"}),t}function kge({anchorEl:e,open:t,onClose:r,options:n,onSelect:i,stop:o}){return(0,L$e.jsx)(Dl,{anchorEl:e,open:t,onClose:r,onClick:o,children:n.map(a=>(0,L$e.jsx)(fn,{onClick:s=>{o(s),i(a.kind)},children:a.label},a.kind))})}var Y1=L(z(),1);function Kpr({tooltip:e,disabled:t,onBuild:r,onSelectHarness:n}){let i=_ge(S_()),o=(0,Ege.useRef)(null),[a,s]=(0,Ege.useState)(!1),l=u=>u.stopPropagation();return(0,Y1.jsxs)(Y1.Fragment,{children:[(0,Y1.jsxs)(Q2,{ref:o,variant:"contained",color:"success",size:"small",disabled:t,children:[(0,Y1.jsx)(Ypr,{tooltip:e,disabled:t,onClick:u=>{l(u),r()}}),i.length>0&&(0,Y1.jsx)(qt,{"aria-label":"Build with a different harness",onClick:u=>{l(u),s(!0)},children:(0,Y1.jsx)(zp,{})})]}),(0,Y1.jsx)(kge,{anchorEl:o.current,open:a,onClose:()=>s(!1),options:i,onSelect:u=>{s(!1),n(u)},stop:l})]})}var Xpr=L(z(),1),iB=ft((0,Xpr.jsx)("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96M19 18H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95C8.08 7.14 9.94 6 12 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11c1.56.1 2.78 1.41 2.78 2.96 0 1.65-1.35 3-3 3m-5.55-8h-2.9v3H8l4 4 4-4h-2.55z"}),"CloudDownloadOutlined");var __=L(z(),1),YUn={vertical:"bottom",horizontal:"center"};function Rge({clone:e}){let{prompt:t,confirm:r,cancel:n,error:i,dismissError:o}=e;return(0,__.jsxs)(__.Fragment,{children:[t&&(0,__.jsx)(vo,{title:"Clone repository",message:`Clone ${t.displayName} over SSH into ${t.cloneTarget}${t.node?` on ${t.node}`:""}?`,confirmLabel:"Clone",confirmColor:"primary",onConfirm:r,onCancel:n}),(0,__.jsx)(ol,{open:!!i,autoHideDuration:8e3,onClose:o,anchorOrigin:YUn,children:(0,__.jsx)(ri,{severity:"error",onClose:o,variant:"filled",children:i})})]})}var o0=L(ge(),1);function M$e(e){return["backlog","clone",e]}function Age(e,t){t(M$e(e.origin),void 0,{title:`Clone ${e.displayName}`,subtitle:e.origin,...e.node&&{node:e.node}})}function Zpr(e,t){return!!e&&e.length===t.length&&e.every((r,n)=>r===t[n])}function Qpr(e,t,r){let n=M$e(t.origin),i=new Set(e.filter(o=>Zpr(o.assistArgs,n)).map(o=>o.id));return Age(t,r),{args:n,target:t.cloneTarget,node:t.node,preexisting:i}}function Jpr(e,t){if(!t.id){let n=e.find(i=>Zpr(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 Pge(e){let{setSelectedCwd:t}=$n(),{launchAssist:r}=$l(),[n,i]=(0,o0.useState)(null),[o,a]=(0,o0.useState)(null),[s,l]=(0,o0.useState)(null),u=(0,o0.useCallback)(p=>{l(null),i(p)},[]),f=(0,o0.useCallback)(()=>i(null),[]),d=(0,o0.useCallback)(()=>l(null),[]),h=(0,o0.useCallback)(()=>{n&&(a(Qpr(e,n,r)),i(null))},[n,e,r]);return(0,o0.useEffect)(()=>{if(!o)return;let p=Jpr(e,o);p&&(p.type==="latch"?a(m=>m&&{...m,id:p.id}):p.type==="done"?(o.node?t(o.target,o.node):t(o.target),a(null)):(l(p.message),a(null)))},[e,o,t]),{prompt:n,requestClone:u,confirm:h,cancel:f,error:s,dismissError:d}}function oB(e,t){return`Not cloned ${e?`on ${e}`:"locally"} \u2014 click to clone into ${t}`}var E2=L(z(),1),KUn={border:1,borderStyle:"dashed"};function emr({target:e}){let t=Pge(Sge());return(0,E2.jsxs)(E2.Fragment,{children:[(0,E2.jsx)(lr,{title:oB(e.node,e.cloneTarget),children:(0,E2.jsx)(sr,{"aria-label":"Clone",size:"small",sx:KUn,onClick:r=>{r.stopPropagation(),t.requestClone(e)},children:(0,E2.jsx)(iB,{fontSize:"small"})})}),(0,E2.jsx)(Rge,{clone:t})]})}function tmr(e,t,r,n){let i=r.node?[{node:r.node}]:[];e(["backlog","run",so(t),...n],r.cwd,...i)}var cY=L(z(),1);function rmr({tooltip:e,disabled:t,onClick:r}){return(0,cY.jsx)(lr,{title:e,children:(0,cY.jsx)("span",{children:(0,cY.jsx)(sr,{"aria-label":"Build",color:"success",size:"small",disabled:t,onClick:r,children:(0,cY.jsx)(Op,{})})})})}function XUn(e,t){let r=e.assistArgs;if(r?.[0]!=="backlog"||r[1]!=="run"||!r[2])return!1;try{return mJ(r[2])===t}catch{return!1}}function nmr(e,t){return e.find(r=>r.status!=="done"&&r.status!=="error"&&(XUn(r,t)||wP(r)?.itemId===t))}var Lge=L(ge(),1),I$e=(0,Lge.createContext)({nodes:null,names:[],visible:!1,selected:void 0,select:()=>{}});function Ou(){return(0,Lge.useContext)(I$e)}function Mge(){let{nodes:e,selected:t}=Ou();return t&&t!==e?.local?t:void 0}var amr=L(ge(),1);var Ige=L(ge(),1);function imr(e,t){return Promise.all(t.map(async r=>{let n=await ZUn(e,r).catch(()=>({}));return[r,n]}))}async function ZUn(e,t){let r=await fetch(tn(`/api/repo-location?origin=${encodeURIComponent(e)}`,t||void 0));return r.ok?r.json():{}}var D$e="\0";function omr(e,t){let[r,n]=(0,Ige.useState)(null);return(0,Ige.useEffect)(()=>{if(!e||!t)return;let i=!1;return imr(e,t.split(D$e)).then(o=>{i||n({origin:e,byNode:Object.fromEntries(o)})}),()=>{i=!0}},[e,t]),r}function Dge(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(D$e),a=omr(i,o);return(0,amr.useCallback)(s=>{let l=e?r(e,s):void 0;if(l)return{kind:"cloned",cwd:l};let u=a&&a.origin===i?a.byNode[s??""]:void 0;return u?.cwd?{kind:"cloned",cwd:u.cwd}:i&&u?.cloneTarget?{kind:"clonable",origin:i,cloneTarget:u.cloneTarget}:{kind:"unavailable"}},[e,r,i,a])}var sB=L(ge(),1);var smr=L(z(),1);function aB({inputRef:e,value:t,onChange:r,onKeyDown:n,placeholder:i,autoFocus:o}){return(0,smr.jsx)(ni,{autoFocus:o,inputRef:e,value:t,onChange:a=>r(a.target.value),onKeyDown:n,placeholder:i,size:"small",fullWidth:!0,slotProps:{input:{sx:{fontSize:12}}},sx:{p:.5}})}var Nge=L(ge(),1);function Oge(e){let t=(0,Nge.useRef)(null);return(0,Nge.useEffect)(()=>{e&&t.current?.scrollIntoView({block:"nearest"})},[e]),t}var cmr=L(z(),1);function lmr({cwd:e,selected:t,highlighted:r,onHover:n,onSelect:i}){let o=Oge(r);return(0,cmr.jsx)(fn,{ref:o,selected:t,title:e,onClick:i,onMouseEnter:n,sx:{fontSize:12,display:"flex",justifyContent:"space-between",gap:1,...r&&{bgcolor:"action.hover"}},children:K1(e)})}var N$e=L(z(),1);function Bge({repos:e,selected:t,highlight:r,onHighlight:n,onSelect:i}){return(0,N$e.jsx)(Tp,{dense:!0,children:e.map((o,a)=>(0,N$e.jsx)(lmr,{cwd:o,selected:o===t,highlighted:a===r,onHover:()=>n(a),onSelect:()=>i(o)},o))})}var Fge=L(ge(),1);function k_(e,t,r,n){let[i,o]=(0,Fge.useState)(0);return(0,Fge.useEffect)(()=>{o(0)},[t]),{highlight:i,setHighlight:o,onKeyDown:s=>{let l=e.length;if(s.key==="ArrowDown")s.preventDefault(),l>0&&o(u=>(u+1)%l);else if(s.key==="ArrowUp")s.preventDefault(),l>0&&o(u=>(u-1+l)%l);else if(s.key==="Enter"){s.preventDefault();let u=e[i];u!==void 0&&(r(u),n())}else s.key==="Escape"&&(s.preventDefault(),n())}}}var uY=L(z(),1);function K1(e){let t=e.includes("\\")?"\\":"/";return e.split(t).filter(Boolean).pop()??e}var QUn={...LP};function umr({repos:e,selected:t,onSelect:r,close:n}){let[i,o]=(0,sB.useState)(""),a=(0,sB.useRef)(null);(0,sB.useEffect)(()=>{a.current?.focus()},[]);let s=i.trim().toLowerCase(),l=s?e.filter(p=>p.toLowerCase().includes(s)):e,{highlight:u,setHighlight:f,onKeyDown:d}=k_(l,s,r,n);return(0,uY.jsxs)(an,{elevation:4,sx:QUn,children:[(0,uY.jsx)(aB,{inputRef:a,value:i,onChange:o,onKeyDown:d,placeholder:"Filter repos..."}),(0,uY.jsx)(Bge,{repos:l,selected:t,highlight:u,onHighlight:f,onSelect:p=>{r(p),n()}})]})}function $ge(e,t){return{origin:e.origin,cloneTarget:e.cloneTarget,displayName:K1(e.origin),node:t}}function fmr(){let e=as(),t=Mge(),r=Dge(e??"",[t])(t);return e?r.kind==="cloned"?{kind:"ready",cwd:r.cwd,node:t}:r.kind==="clonable"?{kind:"clone",prompt:$ge(r,t)}:{kind:"unavailable",node:t??"this machine"}:{kind:"ready",node:t}}function dmr(e,t){return t?`Not cloned on ${t}`:e?"Already running \u2014 close that session to run it again":"Build"}var zge=L(z(),1);function Hge({itemId:e,compact:t=!1}){let{launchAssist:r}=$l(),n=fmr(),i=nmr(Sge(),e),[o,a]=(0,hmr.useState)(!1);if(n.kind==="clone")return(0,zge.jsx)(emr,{target:n.prompt});let s=n.kind==="unavailable"?n.node:void 0,l=o||i!==void 0||!!s,u=d=>{l||n.kind!=="ready"||(a(!0),tmr(r,e,n,d))},f=dmr(i!==void 0,s);return t?(0,zge.jsx)(rmr,{tooltip:f,disabled:l,onClick:d=>{d.stopPropagation(),u([])}}):(0,zge.jsx)(Kpr,{tooltip:f,disabled:l,onBuild:()=>u([]),onSelectHarness:d=>u(["--harness",d])})}var pmr=L(ge(),1);var lB=L(z(),1);function mmr({itemId:e,starred:t,onToggled:r}){let n=as(),i=yr(),[o,a]=(0,pmr.useState)(!1);return(0,lB.jsx)(lr,{title:t?"Unstar":"Star",children:(0,lB.jsx)("span",{children:(0,lB.jsx)(sr,{"aria-label":t?"Unstar":"Star","aria-pressed":t,color:t?"warning":"default",size:"small",disabled:o,onClick:async l=>{if(l.stopPropagation(),!o){a(!0);try{await PJ(e,!t,n,i),await r()}finally{a(!1)}}},children:t?(0,lB.jsx)(Nee,{}):(0,lB.jsx)(Oee,{})})})})}var gmr=L(z(),1),ymr=ft((0,gmr.jsx)("path",{d:"M22 7h-9v2h9zm0 8h-9v2h9zM5.54 11 2 7.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41zm0 8L2 15.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41z"}),"Checklist");var fY=L(z(),1),JUn={display:"inline-flex",alignItems:"center",gap:.375,flexShrink:0,fontSize:"0.71875rem",color:"text.secondary","& svg":{fontSize:14}};function vmr({count:e}){return e<1?null:(0,fY.jsx)(lr,{title:`${e} incomplete subtask${e===1?"":"s"}`,children:(0,fY.jsxs)(ue,{component:"span",sx:JUn,children:[(0,fY.jsx)(ymr,{}),e]})})}var R2=L(z(),1);function bmr({item:e,onReload:t}){return(0,R2.jsxs)(R2.Fragment,{children:[(0,R2.jsx)(vmr,{count:e.incompleteSubtasks}),(0,R2.jsx)(jpr,{item:e}),(0,R2.jsx)(mmr,{itemId:e.id,starred:e.starred,onToggled:t}),wge(e)&&(0,R2.jsx)(Hge,{itemId:e.id,compact:!0})]})}var A2=L(z(),1);function eWn(e,t){return e?t?j1.inProgressRunningCard:j1.inProgressCard:j1.card}function xmr({item:e,to:t,socket:r,onReload:n}){let i=Wpr(r.sessions,e.id),o=e.status==="in-progress",a=o&&i?.status==="running";return(0,A2.jsxs)(ue,{sx:eWn(o,a),children:[(0,A2.jsx)(Vpr,{status:e.status}),(0,A2.jsxs)(ue,{sx:j1.main,children:[(0,A2.jsx)(xn,{component:ys,to:t,underline:"none",title:e.name,sx:j1.stretchedNameLink,children:e.name}),(0,A2.jsx)(Upr,{item:e,openSession:i,onSelectSession:r.selectSession})]}),(0,A2.jsx)(ue,{sx:j1.actions,children:(0,A2.jsx)(bmr,{item:e,onReload:n})})]})}var Smr=L(z(),1),tWn={all:"items",story:"stories",bug:"bugs"},rWn={textAlign:"center",color:"text.disabled",py:6,px:2};function Tmr({query:e,typeFilter:t}){let r=tWn[t],n=e.trim()?`No ${r} match your search.`:`No ${r} in the backlog.`;return(0,Smr.jsx)(ue,{sx:rWn,children:n})}var X1=L(z(),1),nWn={display:"flex",justifyContent:"center",py:6};function Cmr({loading:e,error:t,query:r,typeFilter:n,items:i,socket:o,itemPath:a,onReload:s}){if(e)return(0,X1.jsx)(ue,{sx:nWn,children:(0,X1.jsx)(mo,{})});let l=t&&(0,X1.jsx)(ri,{severity:"error",children:t});return i.length===0?l||(0,X1.jsx)(Tmr,{query:r,typeFilter:n}):(0,X1.jsxs)(X1.Fragment,{children:[l,i.map(u=>(0,X1.jsx)(xmr,{item:u,to:a(u),socket:o,onReload:s},u.id))]})}var cB=L(ge(),1);function iWn(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 wmr({cwd:e,node:t,knownCwds:r,signal:n}){return(await fetch(Fl(iWn(r),e,t),{signal:n})).json()}function _mr(){let{repos:e,selectedCwd:t,cloneOn:r}=$n(),n=Mge(),[i,o]=(0,cB.useState)([]),a=(0,cB.useMemo)(()=>e.map(l=>r(l,n)).filter(l=>!!l),[e,r,n]),s=t?r(t,n):void 0;return(0,cB.useEffect)(()=>{let l=new AbortController;return wmr({cwd:s,node:n,knownCwds:a,signal:l.signal}).then(o).catch(()=>{}),()=>l.abort()},[a,s,n]),{summaries:i,node:n}}var Uge=L(z(),1),oWn={borderStyle:"dashed"};function kmr({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,Uge.jsx)(sn,{label:`${o} (${a})`,size:"small",color:s?"primary":"default",variant:s?"filled":"outlined",disabled:!l&&!f,onClick:d,icon:f?(0,Uge.jsx)(iB,{}):void 0,sx:f?oWn:void 0});return!f||!u?h:(0,Uge.jsx)(lr,{describeChild:!0,title:oB(t,u),children:h})}var dY=L(z(),1),aWn={flexWrap:"wrap",gap:1,mb:2};function Emr({sessions:e}){let{summaries:t,node:r}=_mr(),{setSelectedCwd:n}=$n(),i=Pge(e);return t.length===0?null:(0,dY.jsxs)(Rt,{direction:"row",sx:aWn,children:[t.map(o=>(0,dY.jsx)(kmr,{summary:o,node:r,onSelectCwd:a=>r?n(a,r):n(a),onRequestClone:i.requestClone},o.origin)),(0,dY.jsx)(Rge,{clone:i})]})}var Amr=L(z(),1);function Rmr({value:e,onChange:t}){return(0,Amr.jsx)(ni,{"data-backlog-focus":"search",fullWidth:!0,size:"small",placeholder:"Search backlog\u2026",value:e,onChange:r=>t(r.target.value),sx:{mb:2}})}var Wge=L(ge(),1);var Vge=L(z(),1);async function sWn(){return(await(await fetch("/api/backups/list")).json())[0]}function Pmr(){let[e,t]=(0,Wge.useState)();return(0,Wge.useEffect)(()=>{sWn().then(t)},[]),e?(0,Vge.jsx)(lr,{title:new Date(e.createdAt).toLocaleString(),children:(0,Vge.jsxs)(xn,{component:ys,to:"/backups",underline:"hover",color:"text.secondary",variant:"body2",children:["Last backed up ",fa(String(e.createdAt))]})}):null}var uB=L(z(),1);function Lmr(){let[e,t]=rB();return(0,uB.jsxs)(du,{value:e,exclusive:!0,size:"small","aria-label":"Status filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,uB.jsx)(hs,{value:"todo",children:"Todo"}),(0,uB.jsx)(hs,{value:"done",children:"Done"}),(0,uB.jsx)(hs,{value:"all",children:"All"})]})}var fB=L(z(),1);function Mmr({value:e,onChange:t}){return(0,fB.jsxs)(du,{value:e,exclusive:!0,size:"small","aria-label":"Type filter",onChange:(r,n)=>{n!==null&&t(n)},children:[(0,fB.jsx)(hs,{value:"all",children:"All"}),(0,fB.jsx)(hs,{value:"story",children:"Stories"}),(0,fB.jsx)(hs,{value:"bug",children:"Bugs"})]})}var E_=L(z(),1),lWn={justifyContent:"space-between",alignItems:"center",mb:3},cWn={fontWeight:600},uWn={alignItems:"center"};function Imr({typeFilter:e,onTypeFilterChange:t}){return(0,E_.jsxs)(Rt,{direction:"row",sx:lWn,children:[(0,E_.jsx)(Fe,{variant:"h5",sx:cWn,children:"Backlog"}),(0,E_.jsxs)(Rt,{direction:"row",spacing:2,sx:uWn,children:[(0,E_.jsx)(Pmr,{}),(0,E_.jsx)(Mmr,{value:e,onChange:t}),(0,E_.jsx)(Lmr,{})]})]})}var P2=L(z(),1);function Nmr({items:e,loading:t,error:r,socket:n,onReload:i}){let o=as(),a=yr(),{query:s,setQuery:l,results:u,loading:f}=Mpr(),[d,h]=(0,Dmr.useState)("all"),p=u??e,m=d==="all"?p:p.filter(g=>g.type===d);return(0,P2.jsxs)(P2.Fragment,{children:[(0,P2.jsx)(Imr,{typeFilter:d,onTypeFilterChange:h}),(0,P2.jsx)(Rmr,{value:s,onChange:l}),(0,P2.jsx)(Emr,{sessions:n.sessions}),(0,P2.jsx)(Cmr,{loading:t||f,error:u?null:r,query:s,typeFilter:d,items:m,socket:n,itemPath:g=>BT(g.id,o,a),onReload:i})]})}var Jge=L(ge(),1);var gR=L(ge(),1);async function O$e(e,t,r){let n=await fetch(Fl(`/api/items/${so(e)}`,t.cwd,t.node),{signal:r});return n.ok?n.json():null}function Omr(e){let t=as(),r=yr(),[n,i]=(0,gR.useState)(null),[o,a]=(0,gR.useState)(!0),s=(0,gR.useCallback)(async()=>{i(await O$e(e,{cwd:t,node:r}))},[e,t,r]);return(0,gR.useEffect)(()=>{let l=new AbortController,{signal:u}=l;return a(!0),(async()=>{try{let f=await O$e(e,{cwd:t,node:r},u);if(u.aborted)return;i(f),a(!1)}catch(f){if(!u.aborted)throw f}})(),()=>l.abort()},[e,t,r]),{item:n,loading:o,reload:s}}var R_={description:"item-section-description",acceptanceCriteria:"item-section-acceptance-criteria",subtasks:"item-section-subtasks",plan:"item-section-plan",activity:"item-section-activity",comments:"item-section-comments"},hY=140,B$e="--pinned-header-height",Gge=`var(${B$e}, ${hY}px)`,Bmr=`calc(${Gge} + 8px)`;function $m(e){return{id:R_[e],sx:{mb:2,scrollMarginTop:Bmr}}}function qge(e){return{id:`item-phase-${e}`,sx:{scrollMarginTop:Bmr}}}var A_=L(z(),1);function Fmr({criteria:e}){return e.length===0?null:(0,A_.jsxs)(ue,{...$m("acceptanceCriteria"),children:[(0,A_.jsx)(Fe,{variant:"overline",sx:{color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"},children:"Acceptance Criteria"}),(0,A_.jsx)(R0,{disablePadding:!0,sx:{maxWidth:"72ch"},children:e.map((t,r)=>(0,A_.jsxs)(tT,{disableGutters:!0,disablePadding:!0,sx:{py:.5,display:"flex",alignItems:"baseline"},children:[(0,A_.jsxs)(Fe,{component:"span",sx:{color:"text.secondary",mr:1},children:[r+1,"."]}),(0,A_.jsx)(yu,{component:"span",className:"markdown",html:EP(t)})]},t))})]})}var pY=L(z(),1),fWn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function $mr({description:e}){return e?(0,pY.jsxs)(ue,{...$m("description"),children:[(0,pY.jsx)(Fe,{variant:"overline",sx:fWn,children:"Description"}),(0,pY.jsx)(kw,{content:e,renderMermaid:!0})]}):null}var Ymr=L(ge(),1);function zmr(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 Umr=L(z(),1),dWn={color:"text.secondary",alignSelf:"flex-start",textAlign:"left"};function Hmr({hiddenCount:e,expanded:t,onToggle:r}){return e===0?null:(0,Umr.jsx)(xn,{component:"button",type:"button",variant:"body2",underline:"hover",sx:dWn,onClick:n=>{n.stopPropagation(),r()},children:t?"Show fewer commits":`\u2026 and ${e} more commits`})}var yR=L(z(),1),hWn={display:"flex",alignItems:"center",gap:1},pWn={color:"text.secondary",fontFamily:"monospace"},mWn={flex:1,overflowWrap:"anywhere"},gWn={color:"text.disabled","&:hover":{color:"text.primary"}};function Wmr({conversation:e}){let{resumeSession:t}=$l(),r=n=>{n.stopPropagation(),t(e.sessionId,e.cwd??"",e.title,e.harness)};return(0,yR.jsxs)(ue,{sx:hWn,children:[(0,yR.jsx)(Fe,{variant:"body2",component:"span",sx:pWn,children:"session"}),(0,yR.jsx)(Fe,{variant:"body2",component:"span",sx:mWn,children:e.title??e.sessionId}),(0,yR.jsx)(sr,{size:"small",title:"Resume",sx:gWn,onClick:r,children:(0,yR.jsx)(Op,{sx:{fontSize:14}})})]})}var Gmr=L(z(),1),yWn={color:"text.disabled",ml:1};function Vmr({gitRef:e}){return e.kind!=="commit"||!e.createdAt?null:(0,Gmr.jsx)(ue,{component:"span",sx:yWn,children:vWn(e.createdAt)})}function vWn(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function qmr(e){if(e.kind==="commit"){let t=e.title?` ${e.title}`:"";return`${e.ref.slice(0,8)}${t}`}if(e.kind==="pr"){let t=e.title?` ${e.title}`:"",r=e.state?` (${e.state.toLowerCase()})`:"";return`#${e.ref}${t}${r}`}return e.kind==="slack"||e.kind==="session"?e.title??e.ref:e.ref}var Z1=L(z(),1),bWn={color:"text.secondary",mr:1,fontFamily:"monospace"};function xWn({gitRef:e}){let t=qmr(e);return!e.url||e.kind==="session"?(0,Z1.jsx)(Z1.Fragment,{children:t}):(0,Z1.jsx)(xn,{href:e.url,target:"_blank",rel:"noopener",onClick:r=>r.stopPropagation(),children:t})}function jmr({gitRef:e}){return(0,Z1.jsxs)(Fe,{variant:"body2",children:[(0,Z1.jsx)(ue,{component:"span",sx:bWn,children:e.kind}),(0,Z1.jsx)(xWn,{gitRef:e}),(0,Z1.jsx)(Vmr,{gitRef:e})]})}var P_=L(z(),1),TWn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function Kmr({gitRefs:e,conversations:t=[]}){let[r,n]=(0,Ymr.useState)(!1),{branches:i,commits:o,overflowCommits:a,prs:s,slacks:l}=zmr(e),u=[...i,...o,...r?a:[],...s,...l];return u.length===0&&t.length===0?null:(0,P_.jsxs)(ue,{...$m("activity"),children:[(0,P_.jsx)(Fe,{variant:"overline",sx:TWn,children:"Activity"}),(0,P_.jsxs)(Rt,{spacing:1,children:[u.map(f=>(0,P_.jsx)(jmr,{gitRef:f},`${f.kind}:${f.ref}`)),t.map(f=>(0,P_.jsx)(Wmr,{conversation:f},f.sessionId)),(0,P_.jsx)(Hmr,{hiddenCount:a.length,expanded:r,onToggle:()=>n(f=>!f)})]})]})}var vR=L(z(),1),SWn={alignItems:"center",fontSize:"0.75rem",color:"text.secondary",mb:.5},CWn={color:"text.disabled"},wWn={fontWeight:500},_Wn={summary:"Phase summary",comment:"Comment"};function Xmr({comment:e}){return(0,vR.jsxs)(Rt,{direction:"row",spacing:.5,sx:SWn,children:[e.id!==void 0&&(0,vR.jsxs)(Fe,{variant:"caption",sx:CWn,children:["#",e.id]}),(0,vR.jsx)(Fe,{variant:"caption",sx:wWn,children:_Wn[e.type]}),e.phase!==void 0&&(0,vR.jsxs)(Fe,{variant:"caption",children:["\xB7 Phase ",e.phase]}),(0,vR.jsxs)(Fe,{variant:"caption",children:["\xB7 ",kWn(e.timestamp)]})]})}function kWn(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}var Zmr=L(z(),1),Qmr=ft((0,Zmr.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 F$e=L(ge(),1);async function Jmr(e,t,r,n){let i=await fetch(Fl(`/api/items/${so(e)}/comments/${t}`,r,n),{method:"DELETE"});if(!i.ok){let o=await i.json().catch(()=>{});throw new Error(o?.error??`Failed to delete comment (${i.status})`)}}var Q1=L(z(),1),EWn={mt:-.5,mr:-.5,color:"text.secondary"};function egr({itemId:e,commentId:t,onDeleted:r}){let n=as(),i=yr(),[o,a]=(0,F$e.useState)(!1),[s,l]=(0,F$e.useState)(),u=()=>l(void 0);return(0,Q1.jsxs)(Q1.Fragment,{children:[o&&(0,Q1.jsx)(vo,{message:"Are you sure you want to delete this comment?",onConfirm:async()=>{a(!1);try{await Jmr(e,t,n,i),await r()}catch(f){l(f instanceof Error?f.message:"Failed to delete comment")}},onCancel:()=>a(!1)}),(0,Q1.jsx)(ol,{open:s!==void 0,autoHideDuration:6e3,onClose:u,children:(0,Q1.jsx)(ri,{severity:"error",variant:"filled",onClose:u,children:s})}),(0,Q1.jsx)(sr,{"aria-label":"Delete comment",size:"small",sx:EWn,onClick:()=>a(!0),children:(0,Q1.jsx)(Qmr,{fontSize:"inherit"})})]})}var bR=L(z(),1),RWn={summary:{bgcolor:"warning.light",borderColor:"warning.dark"},comment:{bgcolor:"action.selected",borderColor:"divider"}},AWn={justifyContent:"space-between",alignItems:"flex-start"},PWn={color:"text.primary",whiteSpace:"pre-wrap"};function LWn(e){return{p:1.5,bgcolor:e.bgcolor,borderColor:e.borderColor}}function tgr({comment:e,itemId:t,onDeleted:r}){return(0,bR.jsxs)(an,{variant:"outlined",sx:LWn(RWn[e.type]),children:[(0,bR.jsxs)(Rt,{direction:"row",sx:AWn,children:[(0,bR.jsx)(Xmr,{comment:e}),e.id!==void 0&&t!==void 0&&r&&(0,bR.jsx)(egr,{itemId:t,commentId:e.id,onDeleted:r})]}),(0,bR.jsx)(Fe,{variant:"body2",sx:PWn,children:e.text})]})}var dB=L(z(),1),MWn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function rgr({comments:e,itemId:t,onCommentDeleted:r}){return e.length===0?null:(0,dB.jsxs)(ue,{...$m("comments"),children:[(0,dB.jsx)(Fe,{variant:"overline",sx:MWn,children:"Comments"}),(0,dB.jsx)(Rt,{spacing:1,children:e.map((n,i)=>(0,dB.jsx)(tgr,{comment:n,itemId:t,onDeleted:r},`${n.timestamp}-${i}`))})]})}var ngr=L(z(),1);function hB({total:e,sx:t}){return(0,ngr.jsx)(Fe,{sx:t,children:Cge(e)})}var ogr=L(z(),1),IWn={color:"text.secondary",fontSize:"0.75rem"};function igr({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,ogr.jsx)(hB,{total:t,sx:IWn})}var L2=L(z(),1);function agr({checks:e}){return(0,L2.jsxs)(ue,{sx:{mt:1,pt:1},children:[(0,L2.jsx)(no,{sx:{mb:1}}),(0,L2.jsx)(Fe,{variant:"overline",sx:{color:"text.disabled",letterSpacing:"0.08em"},children:"Manual Checks"}),(0,L2.jsx)(R0,{disablePadding:!0,sx:{ml:.5,mt:.5},children:e.map(t=>(0,L2.jsxs)(tT,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,L2.jsx)(Fe,{component:"span",sx:{mr:1,fontSize:"0.875rem",color:"text.secondary"},children:"\u2610"}),(0,L2.jsx)(yu,{component:"span",className:"markdown",sx:{fontSize:"0.875rem",color:"text.secondary"},html:EP(t)})]},t))})]})}var jge={done:{borderColor:"success.light",bgcolor:"success.light"},current:{borderColor:"info.main",bgcolor:"info.light",ring:"info.light"},upcoming:{borderColor:"divider",bgcolor:"background.paper"}};function sgr(e){let t=jge[e];return{p:2,borderColor:t.ring?"info.main":t.borderColor,bgcolor:t.bgcolor,...t.ring?{boxShadow:"0 0 0 2px"}:{}}}var lgr={done:"\u2713",current:"\u2022",upcoming:"\u2022"};var fgr=L(ge(),1);var cgr=L(ge(),1),J1=L(z(),1);function ugr({phaseName:e,onConfirm:t,onCancel:r}){let[n,i]=(0,cgr.useState)("");return(0,J1.jsxs)(Ps,{open:!0,onClose:r,maxWidth:"xs",fullWidth:!0,children:[(0,J1.jsxs)(Il,{children:["Rewind to ",e,"?"]}),(0,J1.jsxs)(Ml,{children:[(0,J1.jsx)(Fe,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"This will mark all later phases as incomplete."}),(0,J1.jsx)(ni,{fullWidth:!0,multiline:!0,rows:3,size:"small",placeholder:"Reason for rewinding...",value:n,onChange:o=>i(o.target.value)})]}),(0,J1.jsxs)(cu,{children:[(0,J1.jsx)(qt,{onClick:r,children:"Cancel"}),(0,J1.jsx)(qt,{variant:"contained",color:"warning",disabled:n.trim().length===0,onClick:()=>t(n.trim()),children:"Rewind"})]})]})}var xR=L(z(),1);function dgr({itemId:e,phaseNumber:t,phaseName:r,onRewound:n}){let i=as(),o=yr(),[a,s]=(0,fgr.useState)(!1);return(0,xR.jsxs)(xR.Fragment,{children:[(0,xR.jsx)(qt,{size:"small",color:"warning",variant:"outlined",onClick:()=>s(!0),sx:{ml:"auto",textTransform:"none",fontSize:"0.75rem"},children:"Rewind"}),a&&(0,xR.jsx)(ugr,{phaseName:r,onConfirm:async l=>{await Cet(e,t,l,i,o),await n()},onCancel:()=>s(!1)})]})}var pB=L(z(),1),DWn={done:{label:"Done",color:"success"},current:{label:"In Progress",color:"info"},upcoming:{label:"Upcoming",color:"default"}},NWn={alignItems:"center",mb:1},OWn={fontWeight:500},BWn={fontWeight:500,fontSize:"0.75rem"};function hgr({phase:e,index:t,status:r,itemId:n,onRewind:i}){let o=DWn[r],a=r==="done"&&n!==void 0&&i;return(0,pB.jsxs)(Rt,{direction:"row",spacing:1,sx:NWn,children:[(0,pB.jsxs)(Fe,{sx:OWn,children:["Phase ",t+1,": ",e.name]}),(0,pB.jsx)(sn,{label:o.label,size:"small",color:o.color,sx:BWn}),a&&(0,pB.jsx)(dgr,{itemId:n,phaseNumber:t+1,phaseName:e.name,onRewound:i})]})}var mY=L(z(),1),FWn={color:"text.secondary",fontSize:"0.75rem",letterSpacing:"0.08em",display:"block"},$Wn={color:"text.secondary",fontSize:"0.75rem",fontFamily:"monospace",display:"block"};function pgr({sessions:e}){return(0,mY.jsxs)(ue,{sx:{mb:1},children:[(0,mY.jsx)(Fe,{variant:"overline",sx:FWn,children:"Sessions"}),e.map(t=>(0,mY.jsx)(Fe,{sx:$Wn,children:`${t.hostname} / ${t.osUser} / ${t.claudeSessionId}`},t.claudeSessionId))]})}var ggr=L(z(),1),zWn={color:"text.secondary",fontSize:"0.75rem",mb:1,display:"block"};function mgr({usage:e}){return(0,ggr.jsx)(hB,{total:e,sx:zWn})}var mB=L(z(),1);function ygr({tasks:e,marker:t}){return(0,mB.jsx)(R0,{disablePadding:!0,sx:{ml:.5},children:e.map(r=>(0,mB.jsxs)(tT,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,mB.jsx)(Fe,{component:"span",sx:{color:"text.secondary",mr:1},children:t}),(0,mB.jsx)(yu,{component:"span",className:"markdown",html:EP(r.task)})]},r.task))})}var L_=L(z(),1);function vgr({phase:e,index:t,status:r,itemId:n,usage:i,sessions:o,onRewind:a}){let s=e.manualChecks??[],l=qge(t);return(0,L_.jsxs)(an,{variant:"outlined",id:l.id,sx:{...sgr(r),...l.sx},children:[(0,L_.jsx)(hgr,{phase:e,index:t,status:r,itemId:n,onRewind:a}),i&&(0,L_.jsx)(mgr,{usage:i}),(0,L_.jsx)(ygr,{tasks:e.tasks,marker:lgr[r]}),s.length>0&&(0,L_.jsx)(agr,{checks:s}),o&&o.length>0&&(0,L_.jsx)(pgr,{sessions:o})]})}var gY={name:"Review",tasks:[]};function Yge(e){return e.at(-1)?.name===gY.name?e.length-1:e.length}function Kge(e,t){if(t===void 0)return"upcoming";let r=e+1;return r<t?"done":r===t?"current":"upcoming"}function bgr(e=[]){return new Map(e.map(t=>[t.phaseIdx,t]))}function xgr(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 $$e=L(z(),1);function Tgr({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){let a=bgr(n),s=xgr(i),l=Yge(e),u=(i??[]).filter(d=>d.phaseIdx>=l),f=l===e.length&&u.length>0?[...e,gY]:e;return(0,$$e.jsx)(Rt,{spacing:1.5,children:f.map((d,h)=>(0,$$e.jsx)(vgr,{phase:d,index:h,status:Kge(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 TR=L(z(),1),HWn={alignItems:"baseline",justifyContent:"space-between",mb:1},UWn={color:"text.secondary",display:"block",letterSpacing:"0.08em"};function Sgr({phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o}){return e.length===0?null:(0,TR.jsxs)(ue,{...$m("plan"),children:[(0,TR.jsxs)(Rt,{direction:"row",sx:HWn,children:[(0,TR.jsx)(Fe,{variant:"overline",sx:UWn,children:"Plan"}),n&&n.length>0&&(0,TR.jsx)(igr,{usage:n})]}),(0,TR.jsx)(Tgr,{phases:e,currentPhase:t,itemId:r,usage:n,sessions:i,onRewind:o})]})}var z$e=L(z(),1),Xge=e=>{let{value:t,options:r,colors:n,onChange:i}=e;return(0,z$e.jsx)(iT,{value:t,onChange:o=>i(o.target.value),size:"small",sx:{fontSize:"0.75rem",fontWeight:500,borderRadius:4,bgcolor:n[t].bg,color:n[t].text,"& .MuiSelect-select":{py:.5,px:1.5},"& .MuiSelect-icon":{color:"inherit"}},children:r.map(o=>(0,z$e.jsx)(fn,{value:o,children:o},o))})};var wgr=L(z(),1),WWn={todo:{bg:"action.selected",text:"text.primary"},"in-progress":{bg:"warning.main",text:"warning.contrastText"},done:{bg:"success.main",text:"success.contrastText"}},VWn=["todo","in-progress","done"];function Cgr({current:e,onStatusChange:t}){return(0,wgr.jsx)(Xge,{value:e,options:VWn,colors:WWn,onChange:t})}var M_=L(z(),1);function _gr({subtask:e,onStatusChange:t}){let r=e.status==="done";return(0,M_.jsxs)(Rt,{direction:"row",spacing:1,sx:{alignItems:"flex-start",justifyContent:"space-between"},children:[(0,M_.jsxs)(ue,{sx:{flex:1},children:[(0,M_.jsx)(Fe,{variant:"body2",sx:{textDecoration:r?"line-through":"none",color:r?"text.disabled":"text.primary"},children:e.title}),e.description&&(0,M_.jsx)(ue,{sx:{mt:.5,fontSize:"0.8125rem",color:r?"text.disabled":"text.secondary"},children:(0,M_.jsx)(kw,{content:e.description})})]}),(0,M_.jsx)(Cgr,{current:e.status,onStatusChange:t})]})}var SR=L(z(),1),GWn={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function kgr({subtasks:e,onStatusChange:t}){if(e.length===0)return null;let r=e.filter(n=>n.status!=="done").length;return(0,SR.jsxs)(ue,{...$m("subtasks"),children:[(0,SR.jsx)(Fe,{variant:"overline",sx:GWn,children:"Sub-tasks"}),(0,SR.jsx)(Rt,{spacing:1,children:e.map((n,i)=>(0,SR.jsx)(_gr,{subtask:n,onStatusChange:o=>t(i,o)},`${n.title}-${i}`))}),r>0&&(0,SR.jsxs)(ri,{severity:"warning",sx:{mt:1},children:[r," sub-task",r===1?"":"s"," not yet done."]})]})}var M2=L(z(),1);function Egr({item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n}){return(0,M2.jsxs)(M2.Fragment,{children:[e.subtasks&&n&&(0,M2.jsx)(kgr,{subtasks:e.subtasks,onStatusChange:n}),e.plan&&(0,M2.jsx)(Sgr,{phases:e.plan,currentPhase:e.currentPhase,itemId:e.id,usage:e.phaseUsage,sessions:e.phaseSessions,onRewind:t}),(0,M2.jsx)(Kmr,{gitRefs:e.gitRefs??[],conversations:e.conversations}),e.comments&&(0,M2.jsx)(rgr,{comments:e.comments,itemId:e.id,onCommentDeleted:r})]})}var gB=L(z(),1);function Rgr({item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n}){return(0,gB.jsxs)(ue,{sx:{pt:2,flex:1,minWidth:0},children:[(0,gB.jsx)($mr,{description:e.description}),(0,gB.jsx)(Fmr,{criteria:e.acceptanceCriteria}),(0,gB.jsx)(Egr,{item:e,onRewind:t,onCommentDeleted:r,onSubtaskStatusChange:n})]})}var Agr="item-detail";var yY={wideQuery:`@container ${Agr} (min-width: 760px)`,containerSx:{containerType:"inline-size",containerName:Agr},columnsSx:{display:"flex",columnGap:3}};function qWn(e){let t=e.plan??[];if(t.length===0)return[];let r=Yge(t),i=r===t.length&&(e.phaseSessions??[]).some(o=>o.phaseIdx>=r)?[...t,gY]:t;return[{id:R_.plan,label:"Phases"},...i.map((o,a)=>({id:qge(a).id,label:`${a+1}`,title:o.name,status:Kge(a,e.currentPhase),nested:!0}))]}function Pgr(e){let t=[];return e.description&&t.push({id:R_.description,label:"Description"}),e.acceptanceCriteria.length>0&&t.push({id:R_.acceptanceCriteria,label:"Acceptance Criteria"}),(e.subtasks?.length??0)>0&&t.push({id:R_.subtasks,label:"Sub-tasks"}),t.push(...qWn(e)),(e.gitRefs?.length??0)+(e.conversations?.length??0)>0&&t.push({id:R_.activity,label:"Activity"}),(e.comments?.length??0)>0&&t.push({id:R_.comments,label:"Comments"}),t}var Lgr="1.3125rem",Mgr={position:"relative",borderRadius:1,"&::after":{content:'""',position:"absolute",inset:0,borderRadius:"inherit",pointerEvents:"none"},"&:hover::after":{bgcolor:"action.hover"},"&:active::after":{bgcolor:"action.selected"}},jWn={...Mgr,display:"block",flexShrink:0,maxWidth:"100%",px:1,py:.5,border:0,bgcolor:"transparent",fontSize:Lgr,lineHeight:1.2,letterSpacing:"0.02em",textAlign:"left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"text.secondary"},YWn={...Mgr,display:"flex",alignItems:"center",justifyContent:"center",fontSize:Lgr,width:"2em",height:"2em",flexShrink:0,lineHeight:1,borderRadius:"50%",border:1,color:"text.primary"},KWn={borderColor:"text.primary",borderWidth:3},XWn={color:"text.primary",fontWeight:700,"&::after":{bgcolor:"action.selected"}};function Igr(e,t){let r=e.status&&jge[e.status];return r?{...YWn,ml:1.5,bgcolor:r.bgcolor,borderColor:r.borderColor,borderWidth:r.ring?3:1,...t&&KWn}:{...jWn,...t&&XWn}}var Ngr=L(z(),1);function Dgr({section:e,active:t,onSelect:r}){return(0,Ngr.jsx)(Dn,{sx:Igr(e,t),onClick:()=>r(e.id),title:e.title??e.label,"aria-current":t?"true":void 0,children:e.label})}function Ogr(e,t=hY){return jhe(e,t)}var H$e=L(z(),1),ZWn=48,QWn=260,JWn={display:"none",[yY.wideQuery]:{display:"flex"},position:"sticky",top:Gge,alignSelf:"flex-start",width:QWn,flexShrink:0,maxHeight:`calc(100vh - ${ZWn}px - ${Gge})`,alignItems:"flex-start",overflowY:"auto",overflowX:"hidden",py:2};function eVn(e){document.getElementById(e)?.scrollIntoView({behavior:"smooth",block:"start"})}function Bgr({item:e,headerHeight:t}){let r=Pgr(e),n=Ogr(r.map(i=>i.id),t);return r.length===0?null:(0,H$e.jsx)(Rt,{component:"nav",spacing:1,sx:JWn,children:r.map(i=>(0,H$e.jsx)(Dgr,{section:i,active:i.id===n,onSelect:eVn},i.id))})}var $gr=L(z(),1);function Fgr({to:e}){let t=Xi();return(0,$gr.jsx)(qt,{"data-backlog-focus":"back",variant:"text",size:"small",onClick:()=>t(e),sx:{mb:2,textTransform:"none"},children:"\u2190 Back"})}var zgr=L(ge(),1);var CR=L(z(),1);function Hgr({itemId:e,onDeleted:t}){let r=as(),n=yr(),[i,o]=(0,zgr.useState)(!1);return(0,CR.jsxs)(CR.Fragment,{children:[i&&(0,CR.jsx)(vo,{onConfirm:async()=>{await xet(e,r,n),await t()},onCancel:()=>o(!1)}),(0,CR.jsx)(qt,{variant:"contained",color:"error",size:"small",onClick:()=>o(!0),children:"Delete"})]})}var U$e=L(z(),1),tVn={todo:{bg:"action.selected",text:"text.primary"},"in-progress":{bg:"warning.main",text:"warning.contrastText"},done:{bg:"success.main",text:"success.contrastText"},wontdo:{bg:"error.main",text:"error.contrastText"}},rVn=["todo","in-progress","done","wontdo"];function Ugr({current:e,onStatusChange:t}){return t?(0,U$e.jsx)(Xge,{value:e,options:rVn,colors:tVn,onChange:t}):(0,U$e.jsx)(sn,{label:e,size:"small",color:mge[e],sx:{fontWeight:500,fontSize:"0.75rem"}})}var I2=L(z(),1),nVn={alignItems:"center",color:"text.disabled",fontSize:"0.875rem"},iVn={fontWeight:500,fontSize:"0.75rem"},oVn={color:"text.secondary",fontSize:"0.75rem"};function Wgr({item:e,onStatusChange:t}){let r=pge[e.type];return(0,I2.jsxs)(Rt,{direction:"row",spacing:1,sx:nVn,children:[(0,I2.jsx)(Fe,{variant:"body2",color:"text.disabled",children:so(e.id)}),r&&(0,I2.jsx)(sn,{label:e.type,size:"small",color:r,sx:iVn}),(0,I2.jsx)(Ugr,{current:e.status,onStatusChange:t}),(0,I2.jsx)(cP,{jiraKey:e.jiraKey}),(0,I2.jsx)(lP,{githubIssue:e.githubIssue,origin:e.origin}),e.usageTotal&&(0,I2.jsx)(hB,{total:e.usageTotal,sx:oVn})]})}var Vgr=L(z(),1),Ggr=ft((0,Vgr.jsx)("path",{d:"M3 17v2h6v-2zM3 5v2h10V5zm10 16v-2h8v-2h-8v-2h-2v6zM7 9v2H3v2h4v2h2V9zm14 4v-2H11v2zm-6-4h2V7h4V5h-4V3h-2z"}),"Tune");var Zge=L(ge(),1);var qgr=L(ge(),1);function jgr(e){let{launchAssist:t}=$l(),r=Xi(),n=as(),i=yr(),[o,a]=(0,qgr.useState)(!1);return{launched:o,launch:l=>{if(o)return;a(!0);let u=i?[{node:i}]:[];t(["refine","--once",...l,so(e)],n,...u),r("/sessions")}}}var a0=L(z(),1);function Ygr({itemId:e}){let{launched:t,launch:r}=jgr(e),n=S_(),i=(0,Zge.useRef)(null),[o,a]=(0,Zge.useState)(!1),s=u=>u.stopPropagation(),l=_ge(n);return(0,a0.jsxs)(a0.Fragment,{children:[(0,a0.jsxs)(Q2,{ref:i,variant:"outlined",size:"small",disabled:t,children:[(0,a0.jsx)(qt,{startIcon:(0,a0.jsx)(Ggr,{}),onClick:u=>{s(u),r([])},children:"Refine"}),l.length>0&&(0,a0.jsx)(qt,{size:"small","aria-label":"Refine with a different harness",onClick:u=>{s(u),a(!0)},children:(0,a0.jsx)(zp,{})})]}),(0,a0.jsx)(kge,{anchorEl:i.current,open:o,onClose:()=>a(!1),options:l,onSelect:u=>{a(!1),r(["--harness",u])},stop:s})]})}var yB=L(ge(),1);function Kgr(){let e=(0,yB.useRef)(null),[t,r]=(0,yB.useState)(!1);return(0,yB.useEffect)(()=>{let n=e.current;if(!n)return;let i=new IntersectionObserver(([o])=>r(!o.isIntersecting),{threshold:0});return i.observe(n),()=>i.disconnect()},[]),{sentinelRef:e,stuck:t}}var Of=L(z(),1),aVn={justifyContent:"space-between",alignItems:"center",mb:2};function sVn(e){return e.palette.mode==="dark"?"0 8px 8px -9px rgba(0, 0, 0, 0.8)":"0 6px 6px -7px rgba(0, 0, 0, 0.2)"}function lVn(e){return t=>({position:"sticky",top:0,zIndex:1,bgcolor:"background.default",mx:-2,px:2,pb:2,borderBottom:1,borderColor:"divider",boxShadow:e?sVn(t):"none",transition:t.transitions.create("box-shadow")})}function Xgr({item:e,onDeleted:t,onStatusChange:r,ref:n}){let{sentinelRef:i,stuck:o}=Kgr();return(0,Of.jsxs)(Of.Fragment,{children:[(0,Of.jsx)(ue,{ref:i,sx:{height:0}}),(0,Of.jsxs)(ue,{ref:n,sx:lVn(o),children:[(0,Of.jsxs)(Rt,{direction:"row",sx:aVn,children:[(0,Of.jsx)(Fgr,{to:"/backlog"}),(0,Of.jsxs)(Rt,{direction:"row",spacing:1,children:[wge(e)&&(0,Of.jsx)(Hge,{itemId:e.id}),(0,Of.jsx)(Ygr,{itemId:e.id}),(0,Of.jsx)(Hgr,{itemId:e.id,onDeleted:t})]})]}),(0,Of.jsx)(Fe,{variant:"h5",component:"h2",children:e.name}),(0,Of.jsx)(Wgr,{item:e,onStatusChange:r})]})]})}var Qgr=L(ge(),1);var Qge=L(ge(),1);function Zgr(e,t){let[r,n]=(0,Qge.useState)(t);return(0,Qge.useEffect)(()=>{let i=e.current;if(!i||(n(i.offsetHeight),typeof ResizeObserver>"u"))return;let o=new ResizeObserver(()=>n(i.offsetHeight));return o.observe(i),()=>o.disconnect()},[e]),r}function Jgr(){let e=(0,Qgr.useRef)(null),t=Zgr(e,hY),r={[B$e]:`${t}px`};return{headerRef:e,headerHeight:t,style:r}}var I_=L(z(),1);function e0r({item:e,onReload:t}){let r=Xi(),n=as(),i=yr(),{headerRef:o,headerHeight:a,style:s}=Jgr();ny("ItemDetail");let l=async()=>{await t(),r("/backlog")},u=async d=>{await AJ(e.id,d,n,i),await t()},f=async(d,h)=>{await Tet(e.id,d,h,n,i),await t()};return(0,I_.jsxs)(ue,{style:s,children:[(0,I_.jsx)(Xgr,{ref:o,item:e,onDeleted:l,onStatusChange:u}),(0,I_.jsx)(ue,{sx:yY.containerSx,children:(0,I_.jsxs)(ue,{sx:yY.columnsSx,children:[(0,I_.jsx)(Rgr,{item:e,onRewind:t,onCommentDeleted:t,onSubtaskStatusChange:f}),(0,I_.jsx)(Bgr,{item:e,headerHeight:a})]})})]})}var wR=L(z(),1),cVn={display:"flex",justifyContent:"center",py:6};function t0r({onReload:e}){let[t]=Pc(),r=t.get("cwd")||void 0,n=t.get("node")||void 0,i=$n(),o=(0,Jge.useMemo)(()=>r?{...i,selectedCwd:r,selectedNode:n}:i,[i,r,n]);return ny("ItemRoute"),(0,wR.jsx)(bz.Provider,{value:o,children:(0,wR.jsx)(Ku.Provider,{value:o.selectedNode,children:(0,wR.jsx)(uVn,{onReload:e})})})}function uVn({onReload:e}){let{id:t}=p2e(),r=Number.NaN;try{r=mJ(t??"")}catch{r=Number.NaN}let{item:n,loading:i,reload:o}=Omr(r),a=(0,Jge.useCallback)(async()=>{await Promise.all([o(),e()])},[o,e]);return i?(0,wR.jsx)(ue,{sx:cVn,children:(0,wR.jsx)(mo,{})}):n?(0,wR.jsx)(e0r,{item:n,onReload:a}):null}var _R=L(z(),1);function r0r({items:e,loading:t,error:r,socket:n,onReload:i}){return(0,_R.jsxs)(d5,{children:[(0,_R.jsx)(gs,{index:!0,element:(0,_R.jsx)(Nmr,{items:e,loading:t,error:r,socket:n,onReload:i})}),(0,_R.jsx)(gs,{path:"items/:id",element:(0,_R.jsx)(t0r,{onReload:i})})]})}var s0=L(ge(),1);var n0r=new Map;function i0r(e,t,r){return JSON.stringify([e??null,t,r??null])}var vY={get(e,t,r){return n0r.get(i0r(e,t,r))},set(e,t,r,n){n0r.set(i0r(e,t,n),r)}};function fVn(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 o0r(e,t){return e===t?!0:e.length!==t.length?!1:e.every((r,n)=>{let i=t[n];return r.id===i.id&&r.type===i.type&&r.name===i.name&&r.status===i.status&&r.starred===i.starred&&r.incompleteSubtasks===i.incompleteSubtasks&&fVn(r.usageTotal,i.usageTotal)})}function a0r({setItems:e,setLoading:t,setError:r}){return{onLoaded:n=>{e(i=>o0r(i,n)?i:n),t(!1),r(null)},onError:n=>{t(!1),r(n)}}}async function s0r(e,t,r,n){let i=await zT({cwd:e,node:n,signal:r,filter:t});return r.aborted||vY.set(e,t,i,n),i}function l0r(e,t,r,{onLoaded:n,onError:i},o){return(async()=>{try{let a=await s0r(e,t,r,o);r.aborted||n(a)}catch(a){r.aborted||i(a instanceof Error?a.message:"Failed to load.")}})()}var dVn=5e3;function c0r(e,t,r,n){let i=new AbortController,o=!1,a=()=>{o||(o=!0,l0r(e,t,i.signal,r,n).finally(()=>{o=!1}))};a();let s=setInterval(a,dVn);return()=>{i.abort(),clearInterval(s)}}function u0r(){let e=as(),t=yr(),[r]=rB(),n=vY.get(e,r,t),i=n??[],o=n===void 0,[a,s]=(0,s0.useState)(i),[l,u]=(0,s0.useState)(o),[f,d]=(0,s0.useState)(null),[h,p]=(0,s0.useState)(e),[m,g]=(0,s0.useState)(t),[y,v]=(0,s0.useState)(r);(e!==h||t!==m||r!==y)&&(p(e),g(t),v(r),s(i),u(o),d(null));let b=(0,s0.useCallback)(async()=>{let x=await zT({cwd:e,node:t,filter:r});s(x),vY.set(e,r,x,t),u(!1)},[e,t,r]);return(0,s0.useEffect)(()=>c0r(e,r,a0r({setItems:s,setLoading:u,setError:d}),t),[e,t,r]),{items:a,loading:l,error:f,reload:b}}var bY=L(z(),1);function f0r({socket:e}){let{items:t,loading:r,error:n,reload:i}=u0r();return ste(!r),(0,bY.jsx)(R$e.Provider,{value:e.sessions,children:(0,bY.jsx)(d5,{children:(0,bY.jsx)(gs,{path:"/*",element:(0,bY.jsx)(r0r,{items:t,loading:r,error:n,socket:e,onReload:i})})})})}var W$e=L(z(),1);function d0r({socket:e}){return(0,W$e.jsx)(MF,{maxWidth:"lg",sx:{py:3,px:2},children:(0,W$e.jsx)(f0r,{socket:e})})}var ki=L(z(),1);function h0r({socket:e}){return ny("AppRoutes"),(0,ki.jsxs)(ki.Fragment,{children:[(0,ki.jsx)(sor,{}),(0,ki.jsx)(d5,{children:(0,ki.jsxs)(gs,{element:(0,ki.jsx)(bit,{socket:e}),children:[(0,ki.jsx)(gs,{path:"sessions",element:(0,ki.jsx)(qdr,{socket:e})}),(0,ki.jsx)(gs,{path:"backlog/*",element:(0,ki.jsx)(d0r,{socket:e})}),(0,ki.jsx)(gs,{path:"next",element:(0,ki.jsx)(xir,{sessions:e.sessions,selectSession:e.selectSession})}),(0,ki.jsx)(gs,{path:"news",element:(0,ki.jsx)(Inr,{})}),(0,ki.jsx)(gs,{path:"releases",element:(0,ki.jsx)(nor,{})}),(0,ki.jsx)(gs,{path:"usage",element:(0,ki.jsx)(Epr,{})}),(0,ki.jsx)(gs,{path:"backups",element:(0,ki.jsx)(Eit,{})}),(0,ki.jsx)(gs,{path:"config",element:(0,ki.jsx)(Tat,{})}),(0,ki.jsx)(gs,{path:"updates",element:(0,ki.jsx)(Fhr,{reconnecting:e.reconnecting,selectSession:e.selectSession})}),(0,ki.jsx)(gs,{path:"diff",element:(0,ki.jsx)(Qrr,{socket:e})}),(0,ki.jsx)(gs,{path:"file",element:(0,ki.jsx)(Rnr,{socket:e})}),(0,ki.jsx)(gs,{path:"*",element:(0,ki.jsx)(x2e,{to:"/sessions",replace:!0})})]})})]})}var i0e=L(ge(),1);var n0e=L(ge(),1);function p0r(e,t,r){if(!e)return"Select a repo to search files.";if(r.error)return"Couldn't search files in this repo.";if(!(r.files.length>0||r.loading))return t?"No matching files.":"No files in this repo."}var D_=L(z(),1),hVn={display:"flex",gap:1,alignItems:"center",minWidth:0},pVn={display:"flex",gap:1,alignItems:"baseline",minWidth:0,overflow:"hidden"},mVn={fontFamily:"monospace",fontSize:13,whiteSpace:"nowrap"},gVn={fontFamily:"monospace",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function yVn(e){let t=e.lastIndexOf("/");return t===-1?{dir:"",basename:e}:{dir:e.slice(0,t),basename:e.slice(t+1)}}function m0r({files:e,highlight:t,onHighlight:r,onSelect:n}){return(0,D_.jsx)(Tp,{dense:!0,sx:{py:0},children:e.map((i,o)=>{let{dir:a,basename:s}=yVn(i);return(0,D_.jsxs)(fn,{selected:o===t,onMouseEnter:()=>r(o),onClick:()=>n(i),sx:hVn,children:[(0,D_.jsx)(QO,{path:i}),(0,D_.jsxs)(ue,{sx:pVn,children:[(0,D_.jsx)(Fe,{component:"span",sx:mVn,children:s}),(0,D_.jsx)(Fe,{component:"span",color:"text.secondary",sx:gVn,children:a})]})]},i)})})}var e0e=L(z(),1),vVn={maxHeight:420,overflowY:"auto"},bVn={px:2,py:2,fontSize:13};function g0r({message:e,files:t,highlight:r,onHighlight:n,onSelect:i}){return(0,e0e.jsx)(ue,{sx:vVn,children:e?(0,e0e.jsx)(Fe,{color:"text.secondary",sx:bVn,children:e}):(0,e0e.jsx)(m0r,{files:t,highlight:r,onHighlight:n,onSelect:i})})}var y0r=L(z(),1),xVn={mt:6,alignSelf:"flex-start"};function t0e({onClose:e,onEntered:t,centered:r=!1,children:n}){return(0,y0r.jsx)(Ps,{open:!0,onClose:e,maxWidth:"sm",fullWidth:!0,slotProps:{paper:{sx:r?void 0:xVn},transition:{onEntered:t}},children:n})}var r0e=L(ge(),1);var v0r={files:[],loading:!1,error:!1};function b0r(e,t){let[r,n]=(0,r0e.useState)(v0r),i=yr();return(0,r0e.useEffect)(()=>{if(!e){n(v0r);return}let o=!1;return n(s=>({...s,loading:!0})),(async()=>{try{let s=await fetch(tn(`/api/files?cwd=${encodeURIComponent(e)}&q=${encodeURIComponent(t)}`,i));if(!s.ok)throw new Error(`HTTP ${s.status}`);let l=await s.json();if(o)return;n({files:Array.isArray(l.files)?l.files:[],loading:!1,error:!1})}catch{o||n({files:[],loading:!1,error:!0})}})(),()=>{o=!0}},[e,t,i]),r}var kR=L(z(),1);function TVn(e,t,r){let n=new URLSearchParams({path:e});return t&&n.set("cwd",t),t&&r&&n.set("node",r),`/file?${n}`}function x0r({onClose:e}){let{worktreeNode:t}=$n();return(0,kR.jsx)(Ku.Provider,{value:t,children:(0,kR.jsx)(SVn,{onClose:e})})}function SVn({onClose:e}){let{worktreeCwd:t,worktreeNode:r}=$n(),[n,i]=(0,n0e.useState)(""),o=b0r(t,n),a=Xi(),s=(0,n0e.useRef)(null),l=p=>a(TVn(p,t,r)),{highlight:u,setHighlight:f,onKeyDown:d}=k_(o.files,n,l,e),h=p=>{l(p),e()};return(0,kR.jsxs)(t0e,{onClose:e,onEntered:()=>s.current?.focus(),children:[(0,kR.jsx)(aB,{autoFocus:!0,inputRef:s,value:n,onChange:i,onKeyDown:d,placeholder:"Search files by name..."}),(0,kR.jsx)(g0r,{message:p0r(t,n,o),files:o.files,highlight:u,onHighlight:f,onSelect:h})]})}function T0r(e){Io(Yn("quickOpen").matches,e)}var C0r=L(z(),1);function S0r(){let[e,t]=(0,i0e.useState)(!1);return T0r((0,i0e.useCallback)(()=>t(!0),[])),e?(0,C0r.jsx)(x0r,{onClose:()=>t(!1)}):null}var o0e=L(z(),1);function w0r({notice:e,onClose:t,onView:r}){let n=e?.sessionId??null;return(0,o0e.jsx)(ol,{open:e!==null,autoHideDuration:6e3,onClose:t,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,o0e.jsx)(ri,{severity:"success",variant:"filled",onClose:t,action:n!==null?(0,o0e.jsx)(qt,{color:"inherit",size:"small",onClick:()=>r(n),children:"View"}):void 0,children:e?.message})})}var u0e=L(ge(),1);function _0r(e){let t=["claude"];return e.exposeCodexActions&&t.push("codex"),e.exposePiActions&&t.push("pi"),t}var F0r=L(ge(),1);var k0r=L(z(),1),E0r=ft((0,k0r.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2"}),"Circle");var N_="0.786.1";var CVn={connected:"success.main",connecting:"warning.main",disconnected:"error.main","version-blocked":"error.main"};function R0r(e){return e?CVn[e]:"success.main"}function A0r(e){return e.split("-")[0].split(".").map(Number)}function P0r(e,t){if(!e||!t||e===t)return;let r=A0r(e),n=A0r(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 a0e=L(ge(),1),V$e=(0,a0e.createContext)(null);function s0e(){return(0,a0e.useContext)(V$e)}var ER=L(z(),1),wVn={height:16,fontSize:10},_Vn={opacity:.6,fontSize:"0.85em"};function kVn(e,t){if(t===e.local)return"this machine";let r=e.links.find(n=>n.name===t);return r?r.error?`${r.state}: ${r.error}`:r.state:""}function xY({nodes:e,name:t,showVersion:r=!1}){let n=s0e()??N_,i=e.links.find(a=>a.name===t),o=P0r(i?.peerVersion,n);return(0,ER.jsx)(lr,{title:kVn(e,t),placement:"right",children:(0,ER.jsxs)(ue,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.75},children:[(0,ER.jsx)(E0r,{sx:{fontSize:8,color:R0r(i?.state)}}),t,r&&i?.peerVersion&&(0,ER.jsxs)(ue,{component:"span",sx:_Vn,children:["v",i.peerVersion]}),o&&(0,ER.jsx)(sn,{label:o,size:"small",color:o==="behind"?"warning":"info",sx:wVn})]})})}var RR=L(z(),1),EVn={opacity:.6},RVn={display:"inline-flex",alignItems:"center",gap:.5,px:.5,border:1,borderStyle:"dashed",borderRadius:1};function L0r({nodes:e,name:t,clone:r}){let n=(0,RR.jsx)(xY,{nodes:e,name:t});return r.kind==="cloned"?n:r.kind==="unavailable"?(0,RR.jsx)(ue,{component:"span",sx:EVn,children:n}):(0,RR.jsx)(lr,{title:oB(t,r.cloneTarget),children:(0,RR.jsxs)(ue,{component:"span",sx:RVn,children:[(0,RR.jsx)(iB,{sx:{fontSize:14}}),n]})})}var I0r=L(z(),1),AVn={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 M0r({value:e,label:t,checked:r,autoFocus:n,onSelect:i}){return(0,I0r.jsx)(Dn,{role:"radio","aria-checked":r,"data-value":e,tabIndex:r?0:-1,autoFocus:n&&r,onClick:i,sx:AVn,children:t})}var D0r={ArrowRight:1,ArrowLeft:-1};function PVn(e,t,r){if(e.key==="Tab"){let n=t+(e.shiftKey?-1:1);return n>=0&&n<r?n:void 0}return(t+D0r[e.key]+r)%r}function N0r(e,t,r,n){return i=>{if(i.key==="ArrowUp"||i.key==="ArrowDown"){if(!n)return;i.preventDefault(),n();return}if(i.key!=="Tab"&&!D0r[i.key]){lb(i);return}let o=PVn(i,e.indexOf(t),e.length);o!==void 0&&(i.preventDefault(),r(e[o]),i.currentTarget.querySelector(`[data-value="${e[o]}"]`)?.focus())}}var O0r=L(ge(),1);function vB(e){return e?.querySelector('[aria-checked="true"]')}function B0r(e,t){(0,O0r.useEffect)(()=>{let r=e.current;if(!r?.contains(document.activeElement))return;let n=vB(r);n&&n!==document.activeElement&&n.focus()},[e,t])}var G$e=L(z(),1),LVn={border:1,borderColor:"divider",borderRadius:1,height:40,p:"2px",flexShrink:0};function l0e({label:e,options:t,value:r,onChange:n,optionLabel:i=u=>u,groupRef:o,autoFocus:a,onTrack:s,onToggleRow:l}){return B0r(o,r),(0,G$e.jsx)(Rt,{ref:o,direction:"row",role:"radiogroup","aria-label":e,spacing:"2px",onFocus:s,onKeyDown:N0r(t,r,n,l),sx:LVn,children:t.map(u=>(0,G$e.jsx)(M0r,{value:u,label:i(u),checked:u===r,autoFocus:a,onSelect:()=>n(u)},u))})}var q$e=L(z(),1);function $0r({value:e,onChange:t,cloneState:r}){let{nodes:n,names:i,visible:o}=Ou(),a=(0,F0r.useRef)(null);return!o||!n||!e?null:(0,q$e.jsx)(l0e,{label:"Machine",options:i,value:e,onChange:t,optionLabel:s=>(0,q$e.jsx)(L0r,{nodes:n,name:s,clone:r(s)}),groupRef:a,autoFocus:!1,onTrack:()=>{}})}var H0r=L(z(),1);function z0r({value:e,onChange:t,placeholder:r,inputRef:n,autoFocus:i,onTrack:o}){return(0,H0r.jsx)(ni,{value:e,onChange:a=>t(a.target.value),onKeyDown:lb,onFocus:o,onSelect:o,inputRef:n,placeholder:r,autoFocus:i,fullWidth:!0,multiline:!0,minRows:3,maxRows:12,slotProps:{htmlInput:{"aria-label":"Prompt"},input:{sx:{fontSize:14}}}})}var G0r=L(ge(),1);var D2={draft:{placeholder:"Describe the backlog item to draft...",submitLabel:"Start draft",sessionMode:"assist-draft"},bug:{placeholder:"Describe the bug: what happened, what you expected...",submitLabel:"File bug",sessionMode:"assist-bug"},prompt:{placeholder:Fee,submitLabel:"Start session"},design:{placeholder:"Describe the design task...",submitLabel:"Start design"}},U0r=Object.keys(D2);var j$e=L(z(),1);function W0r({anchor:e,harness:t,harnesses:r,onPick:n,onClose:i}){return(0,j$e.jsx)(Dl,{open:e!==null,anchorEl:e,onClose:i,slotProps:{list:{dense:!0,"aria-label":"Harness"}},children:r.map(o=>(0,j$e.jsx)(fn,{role:"menuitemradio","aria-checked":o===t,selected:o===t,onClick:()=>{n(o),i()},sx:{fontSize:13},children:gu(o)},o))})}var AR=L(z(),1);function V0r(e){return t=>t==="prompt"&&e?(0,AR.jsxs)(AR.Fragment,{children:["prompt",(0,AR.jsx)(ue,{component:"span",sx:{fontWeight:400,whiteSpace:"pre"},children:` \xB7 ${gu(e)}`}),(0,AR.jsx)(zp,{sx:{fontSize:18,mr:-.75}})]}):t}var PR=L(z(),1);function q0r({draft:e,harness:t,harnesses:r,focus:n}){let[i,o]=(0,G0r.useState)(null),a=e.mode==="prompt"&&r.length>1,s=()=>o(vB(n.modeRef.current)??null),l=u=>{a&&u==="prompt"?s():e.setMode(u)};return(0,PR.jsxs)(PR.Fragment,{children:[(0,PR.jsx)(l0e,{label:"Mode",options:U0r,value:e.mode,onChange:l,optionLabel:V0r(r.length>1?t:void 0),groupRef:n.modeRef,autoFocus:n.autoFocus==="mode",onTrack:n.trackMode,onToggleRow:a?s:void 0}),(0,PR.jsx)(W0r,{anchor:i,harness:t,harnesses:r,onPick:e.setHarness,onClose:()=>o(null)})]})}var nyr=L(ge(),1);var Y$e=L(z(),1),MVn={zIndex:e=>e.zIndex.modal+1};function j0r({open:e,anchor:t,children:r}){return(0,Y$e.jsx)(OA,{open:e,anchorEl:t,placement:"bottom-start",sx:MVn,children:(0,Y$e.jsx)(an,{sx:{maxHeight:240,overflowY:"auto",width:t?.clientWidth},onMouseDown:n=>n.preventDefault(),children:r})})}function Y0r(e){return{htmlInput:{role:"combobox","aria-label":"Repo","aria-expanded":e},input:{sx:{fontSize:13,height:40}}}}var K0r=L(lF(),1);function X0r({open:e,highlighted:t,accept:r,close:n,navigate:i,openList:o}){return a=>{if(!e){if(a.key==="ArrowDown"){a.preventDefault(),o();return}lb(a);return}if(a.key!=="Escape"){if(a.key==="Enter"){if(a.preventDefault(),t===void 0)return;(0,K0r.flushSync)(()=>{r(t),n()}),lb(a);return}if(a.key!=="Tab"){i(a);return}t!==void 0&&r(t),n()}}}function Z0r(e,t){let r=t.trim().toLowerCase();return r?e.filter(n=>K1(n).toLowerCase().includes(r)):e}var K$e=L(ge(),1);function Q0r(){let[e,t]=(0,K$e.useState)(!1),[r,n]=(0,K$e.useState)("");return{open:e,query:r,show:()=>t(!0),filterBy:i=>{n(i),t(!0)},close:()=>{t(!1),n("")}}}var eyr=L(ge(),1);var J0r=e=>e?K1(e):"";function tyr(e){let[t,r]=(0,eyr.useState)(()=>J0r(e));return{text:t,setText:r,showRepo:n=>r(J0r(n))}}function ryr(e,t,r){let n=Q0r(),i=tyr(t),o=Z0r(e,n.query),a=f=>{r(f),i.showRepo(f)},s=k_(o,n.query,a,n.close),l=()=>s.setHighlight(Math.max(e.indexOf(t),0)),u=()=>{l(),n.show()};return{open:n.open,text:i.text,filtered:o,highlight:s.highlight,setHighlight:s.setHighlight,onKeyDown:X0r({open:n.open,highlighted:o[s.highlight],accept:a,close:n.close,navigate:s.onKeyDown,openList:u}),onClick:()=>{n.open||u()},onType:f=>{i.setText(f),n.filterBy(f)},onFocus:l,onBlur:()=>{n.close(),i.showRepo(t)},pick:f=>{a(f),n.close()}}}var bB=L(z(),1);function iyr({repos:e,value:t,onChange:r,inputRef:n,autoFocus:i,onTrack:o}){let a=ryr(e,t,r),s=(0,nyr.useRef)(null);return(0,bB.jsxs)(ue,{ref:s,sx:{flex:1,minWidth:0},children:[(0,bB.jsx)(ni,{value:a.text,onChange:l=>a.onType(l.target.value),onFocus:l=>{l.target.select(),a.onFocus(),o()},inputRef:n,autoFocus:i,onClick:a.onClick,onBlur:a.onBlur,onKeyDown:a.onKeyDown,placeholder:"Repo",size:"small",fullWidth:!0,slotProps:Y0r(a.open)}),(0,bB.jsx)(j0r,{open:a.open,anchor:s.current,children:(0,bB.jsx)(Bge,{repos:a.filtered,selected:t,highlight:a.highlight,onHighlight:a.setHighlight,onSelect:a.pick})})]})}var O_=L(z(),1);function oyr({cloneState:e,...t}){let{draft:r,focus:n}=t,{repos:i}=$n();return(0,O_.jsxs)(Rt,{spacing:1,sx:{p:1},children:[(0,O_.jsx)(z0r,{value:r.prompt,onChange:r.setPrompt,placeholder:D2[r.mode].placeholder,inputRef:n.promptRef,autoFocus:n.autoFocus==="prompt",onTrack:n.trackPrompt}),(0,O_.jsxs)(Rt,{direction:"row",spacing:1,sx:{alignItems:"flex-start"},children:[(0,O_.jsx)(iyr,{repos:i,value:r.cwd,onChange:r.setCwd,inputRef:n.repoRef,autoFocus:n.autoFocus==="repo",onTrack:n.trackRepo}),(0,O_.jsx)(q0r,{...t})]}),(0,O_.jsx)($0r,{value:r.node,onChange:r.setNode,cloneState:e})]})}var xB=L(z(),1),IVn=["Enter start","Shift+Enter newline","Esc close"],DVn={alignItems:"center",px:1.5,py:1,borderTop:1,borderColor:"divider",bgcolor:"action.hover"};function ayr({submitLabel:e,disabled:t=!1}){return(0,xB.jsxs)(Rt,{direction:"row",spacing:1.5,sx:DVn,children:[(0,xB.jsx)(Rt,{direction:"row",spacing:1.5,sx:{mr:"auto"},children:IVn.map(r=>(0,xB.jsx)(Fe,{variant:"caption",color:"text.secondary",children:r},r))}),(0,xB.jsx)(qt,{type:"submit",variant:"contained",size:"small",disabled:t,children:e})]})}function syr({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}]:[];fnt(D2[e].sessionMode,n,(u,f)=>o.onCreateAssist(u,f,...l),()=>{},r)}function lyr(e,t,r,n){return r.kind==="blocked"?!1:r.kind==="clone"?(Age(r.prompt,n.onCreateAssist),!0):(syr({mode:e.mode,harness:t,prompt:e.prompt,cwd:r.cwd,node:e.node},n),e.clear(),!0)}var LR=L(ge(),1);function cyr(e,t){let r=(0,LR.useRef)(e),n=(0,LR.useRef)(null),i=(0,LR.useRef)(null),o=(0,LR.useRef)(null),a=(0,LR.useCallback)(u=>{n.current=u;let{field:f,selectionStart:d,selectionEnd:h}=r.current;u&&f==="prompt"&&u.setSelectionRange(d,h)},[]),s=u=>{let f=u.target;t({field:"prompt",selectionStart:f.selectionStart,selectionEnd:f.selectionEnd})},l=()=>{if(o.current?.closest("form")?.contains(document.activeElement))return;let{field:u}=r.current;({repo:i.current,mode:vB(o.current),prompt:n.current}[u]??n.current)?.focus()};return{autoFocus:e.field,promptRef:a,repoRef:i,modeRef:o,trackPrompt:s,trackRepo:()=>t({...e,field:"repo"}),trackMode:()=>t({...e,field:"mode"}),restore:l}}function NVn(e,t,r){return e?r.kind==="cloned"?{kind:"launch",cwd:r.cwd}:r.kind==="clonable"?{kind:"clone",prompt:$ge(r,t)}:{kind:"blocked"}:{kind:"launch",cwd:e}}function uyr(e,t){let{names:r,visible:n}=Ou(),i=Dge(t,n?r:[void 0]);return{cloneState:i,target:NVn(t,e,i(e))}}var TB=L(z(),1);function fyr({draft:e,launchers:t,onClose:r}){let n=cyr(e.focus,e.setFocus),i=_0r(S_()),o=i.includes(e.harness)?e.harness:"claude",{target:a,cloneState:s}=uyr(e.node,e.cwd),l=u=>{u.preventDefault(),lyr(e,o,a,t)&&r()};return(0,TB.jsx)(t0e,{onClose:r,onEntered:n.restore,centered:!0,children:(0,TB.jsxs)("form",{onSubmit:l,children:[(0,TB.jsx)(oyr,{draft:e,harness:o,harnesses:i,focus:n,cloneState:s}),(0,TB.jsx)(ayr,{submitLabel:a.kind==="clone"?"Clone":D2[e.mode].submitLabel,disabled:a.kind==="blocked"})]})})}var c0e=L(ge(),1);function dyr(e){let[t,r]=(0,c0e.useState)(null);return(0,c0e.useEffect)(()=>{let n=!1;return(async()=>{let i="draft";try{let o=e?`?cwd=${encodeURIComponent(e)}`:"",s=await(await fetch(`/api/new-session-defaults${o}`)).json();Object.hasOwn(D2,s?.mode)&&(i=s.mode)}catch{}n||r(i)})(),()=>{n=!0}},[e]),t}function hyr(e,{visible:t,names:r,selected:n}){if(t)return e&&r.includes(e)?e:n}var N2=L(ge(),1),pyr={field:"prompt",selectionStart:0,selectionEnd:0};function myr(){let[e,t]=(0,N2.useState)(""),[r,n]=(0,N2.useState)(),[i,o]=(0,N2.useState)(),[a,s]=(0,N2.useState)("claude"),[l,u]=(0,N2.useState)(),[f,d]=(0,N2.useState)(pyr),h=(0,N2.useCallback)(()=>{t(""),n(void 0),o(void 0),u(void 0),d(pyr)},[]);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 gyr(e=dyr){let{selectedCwd:t}=$n(),r=Ou(),n=myr(),i=n.cwd??t,o=e(i);return o?{...n,cwd:i,mode:n.mode??o,node:hyr(n.node,r)}:null}function yyr(e){Io(Yn("newSession").matches,e)}var vyr=L(ge(),1);function byr(e,t){let{selectedCwd:r}=$n(),[n,i]=Pc(),o=n.get("new"),a=n.get("newCwd")??r,{setPrompt:s,setCwd:l,setFocus:u}=e??{};(0,vyr.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 Tyr=L(z(),1);function xyr({launchers:e}){let[t,r]=(0,u0e.useState)(!1),n=gyr(),i=(0,u0e.useCallback)(()=>r(!0),[]);return yyr(i),byr(n,i),!t||!n?null:(0,Tyr.jsx)(fyr,{draft:n,launchers:e,onClose:()=>r(!1)})}var f0e=L(z(),1);function Syr({reconnecting:e}){return(0,f0e.jsx)(ol,{open:e,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,f0e.jsx)(ri,{severity:"info",variant:"filled",icon:(0,f0e.jsx)(mo,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var ev=L(z(),1);function Cyr({socket:e,onViewLaunchedSession:t}){return(0,ev.jsxs)(ev.Fragment,{children:[(0,ev.jsx)(S0r,{}),(0,ev.jsx)(xyr,{launchers:{onCreate:e.createSession,onCreateDesign:e.createDesignSession,onCreateHarness:e.createHarnessSession,onCreateAssist:e.createAssistSession}}),(0,ev.jsx)(Syr,{reconnecting:e.reconnecting}),(0,ev.jsx)(vu,{error:e.error,onClose:e.clearError}),(0,ev.jsx)(w0r,{notice:e.success,onClose:e.clearSuccess,onView:t})]})}var l0=L(ge(),1);var OVn=6e4;function wyr(e){let t=e.nodes?.local,r=e.names.join(`
|
|
3977
3977
|
`),[n,i]=(0,l0.useState)([]),[o,a]=(0,l0.useState)(!0),s=(0,l0.useRef)(0),l=(0,l0.useCallback)(()=>{let u=r?r.split(`
|
|
3978
3978
|
`):[];if(u.length===0)return;let f=++s.current;Promise.all(u.map(d=>lge(d,d===t))).then(d=>{f===s.current&&(i(d),a(!1))})},[r,t]);return(0,l0.useEffect)(()=>{l();let u=setInterval(l,OVn);return()=>clearInterval(u)},[l]),(0,l0.useMemo)(()=>({entries:n,loading:o,refresh:l}),[n,o,l])}var B_=L(z(),1);function _yr({shell:e,children:t}){let{socket:r,selection:n,launch:i,topBar:o,sidebarCollapse:a}=e,s=wyr(r.nodeSelection);return(0,B_.jsx)(g$e.Provider,{value:s,children:(0,B_.jsx)(z2e.Provider,{value:o,children:(0,B_.jsx)(RTe.Provider,{value:a,children:(0,B_.jsx)(bz.Provider,{value:n,children:(0,B_.jsx)(I$e.Provider,{value:r.nodeSelection,children:(0,B_.jsx)(Ku.Provider,{value:n.selectedNode,children:(0,B_.jsx)(nTe.Provider,{value:i,children:t})})})})})})})}var kyr=L(z(),1),Eyr=ft((0,kyr.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 Ryr=L(ge(),1);var c0=L(z(),1),BVn={ml:1,textTransform:"none",fontSize:12};function Ayr(){let{nodes:e,names:t,visible:r,selected:n,select:i}=Ou(),[o,a]=(0,Ryr.useState)(null);return!r||!e||!n?null:(0,c0.jsxs)(c0.Fragment,{children:[(0,c0.jsx)(qt,{size:"small",color:"inherit",startIcon:(0,c0.jsx)(Eyr,{fontSize:"small"}),"aria-label":"Machine","aria-haspopup":"menu",onClick:s=>a(s.currentTarget),sx:BVn,children:(0,c0.jsx)(xY,{nodes:e,name:n})}),(0,c0.jsx)(Dl,{anchorEl:o,open:!!o,onClose:()=>a(null),children:t.map(s=>(0,c0.jsx)(fn,{selected:s===n,onClick:()=>{i(s),a(null)},sx:{fontSize:13},children:(0,c0.jsx)(xY,{nodes:e,name:s,showVersion:!0})},s))})]})}var TY=L(ge(),1);function Pyr(e,t){return[...e[0].slice(0,-1),String(t+1)]}var d0e=L(z(),1);function Lyr({index:e,label:t,...r}){let{chords:n}=Yn("navTab");return(0,d0e.jsx)(lr,{describeChild:!0,title:(0,d0e.jsx)(Jf,{label:t,chords:[Pyr(n,e)]}),children:(0,d0e.jsx)(_v,{label:t,...r})})}var X$e=L(ge(),1);function Myr(e,t){let{bound:r}=Yn("navTab"),n=e.length,i=(0,X$e.useCallback)(a=>(kz(a,r)??n)<n,[r,n]),o=(0,X$e.useCallback)(a=>{let s=e[kz(a,r)??-1];s&&t(s)},[e,t,r]);Io(i,o)}var h0e=L(ge(),1);function Iyr(){let[e,t]=(0,h0e.useState)(!1);return(0,h0e.useEffect)(()=>{let r=!1;return(async()=>{try{let i=await(await fetch("/api/news/nav")).json();r||t(i?.showInNav===!0)}catch{r||t(!1)}})(),()=>{r=!0}},[]),e}var p0e=L(ge(),1);async function FVn(e,t){let r=await fetch(tn(`/api/releases/configured?cwd=${encodeURIComponent(e)}`,t));return r.ok?(await r.json())?.configured===!0:void 0}function Dyr(e){let[t,r]=(0,p0e.useState)(null),n=yr(),i=`${n??""}\0${e}`;return(0,p0e.useEffect)(()=>{if(!e)return;let o=!1;return FVn(e,n).catch(()=>{}).then(a=>{o||r({key:i,configured:a})}),()=>{o=!0}},[e,n,i]),t?.key===i?t.configured:void 0}var Nyr=L(ge(),1);function Oyr(e){let{pathname:t}=ua(),r=Xi(),n=t==="/releases"||t.startsWith("/releases/");(0,Nyr.useEffect)(()=>{e===!1&&n&&r("/sessions",{replace:!0})},[e,n,r])}var $Vn={path:"/sessions",label:"Sessions"},zVn={path:"/backlog",label:"Backlog"},HVn={path:"/next",label:"Next"},UVn={path:"/releases",label:"Releases"},WVn={path:"/news",label:"News"};function Byr(e,t){return[$Vn,zVn,HVn,...e?[UVn]:[],...t?[WVn]:[]]}var Z$e=L(z(),1);function Fyr({cwd:e}){let t=ua(),r=Xi(),n=Dyr(e),i=Iyr();Oyr(n);let o=n===!0,a=(0,TY.useMemo)(()=>Byr(o,i),[o,i]),s=(0,TY.useMemo)(()=>a.map(f=>f.path),[a]),l=a.findIndex(f=>t.pathname.startsWith(f.path)),u=(0,TY.useCallback)(f=>{t.pathname!==f&&r(f)},[t.pathname,r]);return Myr(s,u),(0,Z$e.jsx)($k,{value:l===-1?!1:l,textColor:"inherit",indicatorColor:"secondary",children:a.map((f,d)=>(0,Z$e.jsx)(Lyr,{index:d,label:f.label,onClick:()=>u(f.path)},f.path))})}var $yr=L(z(),1),zyr=ft((0,$yr.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m5 11h-4v4h-2v-4H7v-2h4V7h2v4h4z"}),"AddCircle");var SY=L(z(),1),VVn={color:"success.light"};function Hyr(){let[,e]=Pc(),{label:t,chords:r}=Yn("newSession");return(0,SY.jsx)(lr,{title:(0,SY.jsx)(Jf,{label:t,chords:r}),children:(0,SY.jsx)(sr,{size:"small",sx:VVn,"aria-label":"New session",onClick:()=>e(i=>(i.set("new",""),i),{replace:!0}),children:(0,SY.jsx)(zyr,{})})})}var g0e=L(ge(),1);var m0e=L(z(),1),GVn={color:"inherit"};function Uyr({cwd:e}){let[t,r]=(0,g0e.useState)(null),n=yr();return(0,g0e.useEffect)(()=>{if(!e){r(null);return}let i=!1;return(async()=>{try{let a=await(await fetch(tn(`/api/github-url?cwd=${encodeURIComponent(e)}`,n))).json();i||r(a?.url??null)}catch{i||r(null)}})(),()=>{i=!0}},[e,n]),t?(0,m0e.jsx)(lr,{title:"Open in GitHub",children:(0,m0e.jsx)(sr,{sx:GVn,onClick:()=>window.open(t,"_blank"),children:(0,m0e.jsx)(oP,{})})}):null}var Gyr=L(ge(),1);var Vyr=L(ge(),1);var y0e=L(z(),1);function Wyr({window:e,windowSeconds:t,fallbackLabel:r,now:n}){let i=e?.used_percentage;if(i==null)return null;let o=v_(i,e?.resets_at,t,n),a=e?.resets_at!=null?gge(e.resets_at,n):r;return(0,y0e.jsxs)(ue,{component:"span",children:[(0,y0e.jsxs)(ue,{component:"span",sx:{color:b_(o)},children:[Math.round(i),"%"]})," ",(0,y0e.jsxs)(ue,{component:"span",sx:{color:"text.secondary"},children:["(",a,")"]})]})}var F_=L(z(),1);function v0e({rateLimits:e}){let t=x_(3e4),r=[{window:e.five_hour,windowSeconds:18e3,fallbackLabel:"5h"},{window:e.seven_day,windowSeconds:604800,fallbackLabel:"7d"}].filter(n=>n.window?.used_percentage!=null);return(0,F_.jsx)(F_.Fragment,{children:r.map((n,i)=>(0,F_.jsxs)(Vyr.Fragment,{children:[i>0?(0,F_.jsx)(ue,{component:"span",sx:{color:"text.secondary",mr:.5},children:","}):null,(0,F_.jsx)(Wyr,{window:n.window,windowSeconds:n.windowSeconds,fallbackLabel:n.fallbackLabel,now:t})]},n.fallbackLabel))})}var $_=L(z(),1);function qyr({groups:e}){return(0,$_.jsx)($_.Fragment,{children:e.map((t,r)=>(0,$_.jsxs)(Gyr.Fragment,{children:[(0,$_.jsx)(ue,{component:"span",sx:{color:"text.secondary",ml:r>0?1:0,mr:.5},children:gu(t.harness)}),(0,$_.jsx)(v0e,{rateLimits:t.rateLimits})]},t.harness))})}function qVn(e){if(e==="over")return{level:"warn",boundary:100};if(e==="warn")return{level:"ok",boundary:75}}function jVn(e){if(e==="ok")return{level:"warn",boundary:75};if(e==="warn")return{level:"over",boundary:100}}function YVn(e,t,r,n){if(e>=t)return;let i=e/t;return Math.round(r-n*(1-i))}function Kyr(e,t,r,n){if(t==null)return{kind:"unprojectable"};let i=_$e(t,r,n);if(i==null)return{kind:"unprojectable"};let o=v_(e,t,r,n),a=qVn(o),s=jVn(o);return{kind:"projected",recovery:a&&{level:a.level,pct:a.boundary*i,at:YVn(e,a.boundary,t,r)},worse:s&&{level:s.level,pct:s.boundary*i}}}function Xyr(e,t){return e.at==null?"not before reset":`${e.level==="ok"?"green":"under"} in ${gge(e.at,t)}`}var u0=L(z(),1);function Q$e({direction:e,threshold:t}){let r=e==="back",n={display:"inline-flex",gap:.5,minWidth:"6ch",justifyContent:r?"flex-end":"flex-start"};if(!t)return(0,u0.jsx)(ue,{component:"span",sx:n});let i=(0,u0.jsx)(ue,{component:"span",sx:{opacity:.6},children:r?"\u2190":"\u2192"}),o=(0,u0.jsxs)(ue,{component:"span",sx:{color:b_(t.level)},children:[Math.round(t.pct),"%"]});return(0,u0.jsx)(ue,{component:"span",sx:n,children:r?(0,u0.jsxs)(u0.Fragment,{children:[o,i]}):(0,u0.jsxs)(u0.Fragment,{children:[i,o]})})}var z_=L(z(),1);function Zyr({label:e,pct:t,resetsAt:r,windowSeconds:n,now:i}){let o=v_(t,r,n,i),a=Kyr(t,r,n,i),s=a.kind==="projected"?a:void 0;return(0,z_.jsxs)(ue,{sx:{display:"flex",alignItems:"baseline",gap:.75},children:[(0,z_.jsx)(ue,{component:"span",sx:{minWidth:"2ch"},children:e}),(0,z_.jsx)(Q$e,{direction:"back",threshold:s?.recovery}),(0,z_.jsxs)(ue,{component:"span",sx:{minWidth:"4ch",textAlign:"right",color:b_(o)},children:[Math.round(t),"%"]}),(0,z_.jsx)(Q$e,{direction:"forward",threshold:s?.worse}),(0,z_.jsx)(ue,{component:"span",sx:{opacity:.6},children:s?s.recovery&&Xyr(s.recovery,i):"no projection yet"})]})}function Qyr(e){return[{label:"5h",window:e.five_hour,windowSeconds:18e3},{label:"7d",window:e.seven_day,windowSeconds:604800}].flatMap(t=>t.window?.used_percentage==null?[]:[{label:t.label,pct:t.window.used_percentage,resetsAt:t.window.resets_at,windowSeconds:t.windowSeconds}])}var Jyr=L(z(),1);function b0e({rateLimits:e,now:t}){return Qyr(e).map(r=>(0,Jyr.jsx)(Zyr,{label:r.label,pct:r.pct,resetsAt:r.resetsAt,windowSeconds:r.windowSeconds,now:t},r.label))}var MR=L(z(),1);function e1r({groups:e}){let t=x_(3e4);return(0,MR.jsxs)(ue,{sx:{fontFamily:"monospace",fontSize:12},children:[e.map(r=>(0,MR.jsxs)(ue,{sx:{mb:.5},children:[(0,MR.jsx)(ue,{sx:{opacity:.8},children:gu(r.harness)}),(0,MR.jsx)(b0e,{rateLimits:r.rateLimits,now:t})]},r.harness)),(0,MR.jsx)(ue,{sx:{mt:.5,opacity:.6},children:"Account usage per harness \u2014 view history"})]})}function t1r(e){return e?.five_hour?.used_percentage!=null||e?.seven_day?.used_percentage!=null}function r1r(e,t){let r=[];t1r(e)&&r.push({harness:"claude",rateLimits:e});for(let[n,i]of Object.entries(t))t1r(i)&&r.push({harness:n,rateLimits:i});return r}var CY=L(z(),1),J$e="Claude account usage (5h / 7d windows) \u2014 view history";function n1r({rateLimits:e}){let t=x_(3e4);return(0,CY.jsxs)(ue,{sx:{fontFamily:"monospace",fontSize:12},children:[(0,CY.jsx)(b0e,{rateLimits:e,now:t}),(0,CY.jsx)(ue,{sx:{mt:.5,opacity:.6},children:J$e})]})}var IR=L(z(),1),KVn={display:"flex",alignItems:"center",ml:2,fontFamily:"monospace",fontSize:13},XVn={};function i1r({rateLimits:e,harnessRateLimits:t=XVn}){let r=r1r(e,t),n=r.every(s=>s.harness==="claude"),i=e,o=J$e,a="Usage";return r.length>0&&n?(o=(0,IR.jsx)(n1r,{rateLimits:i}),a=(0,IR.jsx)(v0e,{rateLimits:i})):r.length>0&&(o=(0,IR.jsx)(e1r,{groups:r}),a=(0,IR.jsx)(qyr,{groups:r})),(0,IR.jsx)(lr,{title:o,children:(0,IR.jsx)(xn,{component:ys,to:"/usage",underline:"hover",color:"inherit",sx:KVn,children:a})})}var f0=L(z(),1),ZVn={color:"inherit",mr:1.5};function o1r({reconnecting:e}){let{pending:t,error:r,clearError:n,restart:i}=y_("webserver",e);return(0,f0.jsxs)(f0.Fragment,{children:[(0,f0.jsx)(lr,{title:"Restart web server",children:(0,f0.jsx)("span",{children:(0,f0.jsx)(sr,{sx:ZVn,disabled:t,onClick:i,children:t?(0,f0.jsx)(mo,{size:24}):(0,f0.jsx)(age,{})})})}),(0,f0.jsx)(vu,{error:r,onClose:n})]})}var l1r=L(ge(),1);var a1r=L(ge(),1);function s1r(e){let t=Oi().palette.primary.main;Io(Yn("focusRepoPicker").matches,(0,a1r.useCallback)(()=>bu({locate:()=>e.current?.querySelector("button")??null,focus:r=>r.focus()},t),[e,t]))}var wY=L(z(),1),QVn={width:240,ml:2};function c1r({repos:e,selected:t,onSelect:r}){let n=(0,l1r.useRef)(null);s1r(n);let{chords:i}=Yn("focusRepoPicker");return(0,wY.jsx)(ue,{ref:n,sx:QVn,children:(0,wY.jsx)(zee,{label:t?K1(t):"Select repo...",tooltip:(0,wY.jsx)(Jf,{label:"Repo",chords:i}),children:o=>(0,wY.jsx)(umr,{repos:e,selected:t,onSelect:r,close:o})})})}var b1r=L(ge(),1);var _Y=L(ge(),1);function x0e(e){let[t,r]=(0,_Y.useState)([]),[n,i]=(0,_Y.useState)(!0),o=yr();return(0,_Y.useEffect)(()=>{if(!e){r([]),i(!1);return}let a=!1;return i(!0),fetch(tn(`/api/pr-list?cwd=${encodeURIComponent(e)}`,o)).then(s=>s.json()).then(s=>{a||(r(Array.isArray(s?.prs)?s.prs:[]),i(!1))}).catch(()=>{a||(r([]),i(!1))}),()=>{a=!0}},[e,o]),{prs:t,loading:n}}var eze=L(z(),1);function tze({text:e}){return(0,eze.jsx)(ue,{sx:{p:1.5},children:(0,eze.jsx)(Fe,{sx:{fontSize:13,color:"text.secondary"},children:e})})}var DR=L(z(),1);function u1r({pr:e,highlighted:t,onHover:r,onPick:n}){let i=Oge(t);return(0,DR.jsx)(fn,{ref:i,selected:t,onMouseDown:o=>o.preventDefault(),onMouseEnter:r,onClick:()=>n(e),sx:{alignItems:"flex-start",py:.75,whiteSpace:"normal"},children:(0,DR.jsxs)(Rt,{spacing:.25,sx:{minWidth:0},children:[(0,DR.jsxs)(Fe,{sx:{fontSize:13,lineHeight:1.3,fontWeight:500},children:[e.title,e.isDraft&&(0,DR.jsx)(sn,{label:"Draft",size:"small",variant:"outlined",sx:{ml:.75,height:18,fontSize:10,verticalAlign:"middle"}})]}),(0,DR.jsxs)(Fe,{sx:{fontSize:11,color:"text.secondary"},children:["#",e.number," \xB7 ",e.author," \xB7 ",fa(e.createdAt)]})]})})}var rze=L(z(),1);function f1r({prs:e,highlight:t,onHighlight:r,onPick:n}){return(0,rze.jsx)(Tp,{dense:!0,disablePadding:!0,sx:{maxHeight:200,overflowY:"auto"},children:e.map((i,o)=>(0,rze.jsx)(u1r,{pr:i,highlighted:o===t,onHover:()=>r(o),onPick:n},i.number))})}var h1r=L(ge(),1);function d1r(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 p1r(e,t,r){let[n,i]=(0,h1r.useState)(""),o=d1r(e,n),{highlight:a,setHighlight:s,onKeyDown:l}=k_(o,n,t,r);return{filter:n,setFilter:i,filtered:o,highlight:a,setHighlight:s,onKeyDown:l,select:f=>{t(f),r()}}}var H_=L(z(),1),m1r={...LP,left:"auto",width:320,maxHeight:"none",overflowY:"visible"};function g1r({cwd:e,onPick:t,close:r}){let{prs:n,loading:i}=x0e(e),o=p1r(n,t,r);return i||n.length===0?(0,H_.jsx)(an,{elevation:4,sx:m1r,children:(0,H_.jsx)(tze,{text:i?"Loading open PRs\u2026":"No open PRs"})}):(0,H_.jsxs)(an,{elevation:4,sx:m1r,children:[(0,H_.jsx)(aB,{autoFocus:!0,value:o.filter,onChange:o.setFilter,onKeyDown:o.onKeyDown,placeholder:"Filter PRs..."}),o.filtered.length===0?(0,H_.jsx)(tze,{text:"No PRs match"}):(0,H_.jsx)(f1r,{prs:o.filtered,highlight:o.highlight,onHighlight:o.setHighlight,onPick:o.select})]})}var v1r=L(z(),1);function y1r({cwd:e,onPick:t,close:r}){return(0,v1r.jsx)(g1r,{cwd:e,onPick:t,close:r})}var U_=L(z(),1);function x1r({cwd:e,disabled:t,onSelect:r}){let{prs:n,loading:i}=x0e(e),[o,a]=(0,b1r.useState)(null);return i||n.length===0?null:(0,U_.jsxs)(U_.Fragment,{children:[(0,U_.jsx)(zee,{label:"prs",disabled:t,children:s=>(0,U_.jsx)(y1r,{cwd:e,onPick:a,close:s})}),o&&(0,U_.jsx)(wpe,{pr:o,onSelect:s=>{r(o,s),a(null)},onCancel:()=>a(null)})]})}var S1r=L(z(),1);function T1r({onStartRun:e,cwd:t}){let r=Dee(t);return!t||r.length===0?null:(0,S1r.jsx)(Mee,{runs:r,onSelect:n=>e(n,t)})}var kY=L(z(),1);function C1r({onCreateAssist:e,onStartRun:t}){let{selectedCwd:r,selectedNode:n}=$n();return(0,kY.jsxs)(Rt,{direction:"row",spacing:.5,sx:{alignItems:"center","&:not(:empty)":{ml:2}},children:[(0,kY.jsx)(x1r,{cwd:r,disabled:!r,onSelect:(i,o)=>e([...o,String(i.number)],r,{..._P(i),node:n})}),(0,kY.jsx)(T1r,{onStartRun:(i,o)=>t(i,o,void 0,void 0,n),cwd:r})]})}var Hd=L(z(),1),JVn={minHeight:48,pl:1,pr:14};function w1r({socket:e,selection:t}){let{collapsed:r,onToggleCollapsed:n}=JT();return(0,Hd.jsxs)(Fk,{variant:"dense",disableGutters:!0,sx:JVn,children:[r&&(0,Hd.jsx)(Xee,{collapsed:r,onToggleCollapsed:n}),(0,Hd.jsx)(o1r,{reconnecting:e.reconnecting}),(0,Hd.jsx)(Fyr,{cwd:t.selectedCwd}),(0,Hd.jsx)(Ayr,{}),(0,Hd.jsx)(c1r,{repos:t.repos,selected:t.selectedCwd,onSelect:t.setSelectedCwd}),(0,Hd.jsxs)(ue,{sx:{display:"flex",alignItems:"center",ml:1},children:[(0,Hd.jsx)(Uee,{cwd:t.selectedCwd}),(0,Hd.jsx)(Uyr,{cwd:t.selectedCwd}),(0,Hd.jsx)(Hyr,{})]}),(0,Hd.jsx)(C1r,{onCreateAssist:e.createAssistSession,onStartRun:e.startRun}),(0,Hd.jsx)(i1r,{rateLimits:e.rateLimits,harnessRateLimits:e.harnessRateLimits})]})}var T0e=L(ge(),1);function _1r(){let[e,t]=(0,T0e.useState)(null);return(0,T0e.useEffect)(()=>{let r=!1;return(async()=>{try{let i=await(await fetch("/api/health")).json();!r&&typeof i?.nodeName=="string"&&t(i.nodeName)}catch{}})(),()=>{r=!0}},[]),e}var E1r=L(z(),1),eGn={lineHeight:"32px",bgcolor:"transparent"};function k1r(){let e=_1r();return e?(0,E1r.jsx)(S1e,{sx:eGn,children:e}):null}var R1r=L(z(),1),A1r=ft((0,R1r.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 P1r=L(z(),1),L1r=ft((0,P1r.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 M1r=L(z(),1),I1r=ft((0,M1r.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 D1r=L(z(),1),N1r=ft((0,D1r.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 nze=L(z(),1);function O1r({mode:e}){return e==="dark"?(0,nze.jsx)(N1r,{fontSize:"small"}):(0,nze.jsx)(I1r,{fontSize:"small"})}var B1r=L(z(),1),F1r=ft((0,B1r.jsx)("path",{d:"m20.38 8.57-1.23 1.85a8 8 0 0 1-.22 7.58H5.07A8 8 0 0 1 15.58 6.85l1.85-1.23A10 10 0 0 0 3.35 19a2 2 0 0 0 1.72 1h13.85a2 2 0 0 0 1.74-1 10 10 0 0 0-.27-10.44zm-9.79 6.84a2 2 0 0 0 2.83 0l5.66-8.49-8.49 5.66a2 2 0 0 0 0 2.83"}),"Speed");var SB=L(z(),1);function $1r(){let e=Lpe();return(0,SB.jsxs)(fn,{onClick:()=>Cft(!e),children:[(0,SB.jsx)(rT,{children:(0,SB.jsx)(F1r,{fontSize:"small"})}),(0,SB.jsx)(xp,{children:e?"Hide render HUD":"Show render HUD"})]})}var el=L(z(),1);function z1r({mode:e,restartLabel:t,updateLabel:r,onToggleColorMode:n,onShowShortcuts:i,onRestart:o,onUpdate:a}){return[(0,el.jsxs)(fn,{onClick:n,children:[(0,el.jsx)(rT,{children:(0,el.jsx)(O1r,{mode:e})}),(0,el.jsx)(xp,{children:"Toggle dark mode"})]},"color-mode"),(0,el.jsx)($1r,{},"render-hud"),(0,el.jsxs)(fn,{onClick:i,children:[(0,el.jsx)(rT,{children:(0,el.jsx)(A1r,{fontSize:"small"})}),(0,el.jsx)(xp,{children:"Keyboard shortcuts"})]},"shortcuts"),(0,el.jsx)(no,{},"restart-divider"),(0,el.jsxs)(fn,{onClick:o,children:[(0,el.jsx)(rT,{children:(0,el.jsx)(uee,{fontSize:"small"})}),(0,el.jsx)(xp,{children:t})]},"restart"),(0,el.jsxs)(fn,{onClick:a,children:[(0,el.jsx)(rT,{children:(0,el.jsx)(L1r,{fontSize:"small"})}),(0,el.jsx)(xp,{children:r})]},"update")]}var H1r=L(ge(),1);var W1r=L(z(),1);function U1r({peer:e,onRestart:t,onClose:r}){let[n,i]=(0,H1r.useState)(!1);return(0,W1r.jsx)(vo,{title:`Restart ${e}?`,message:`Restarts the sessions daemon and web server on ${e}. Its sessions resume when the daemon is back. This page stays open.`,confirmLabel:"Restart",busy:n,autoFocusConfirm:!0,onConfirm:()=>{i(!0),t(e).finally(r)},onCancel:r})}function V1r(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 tGn=Object.keys(gP);function G1r(){let e=yP();return V1r(tGn.map(t=>WT(t,e)))}var ip=L(z(),1),rGn={display:"flex",alignItems:"center",justifyContent:"space-between",pr:1},nGn={display:"flex",alignItems:"center",justifyContent:"space-between",gap:2,py:.5};function q1r({onClose:e}){let t=G1r();return(0,ip.jsxs)(Ps,{open:!0,onClose:e,maxWidth:"xs",fullWidth:!0,"aria-labelledby":"shortcuts-dialog-title",children:[(0,ip.jsxs)(Il,{id:"shortcuts-dialog-title",sx:rGn,children:["Keyboard shortcuts",(0,ip.jsx)(sr,{size:"small","aria-label":"Close",onClick:e,children:(0,ip.jsx)(da,{fontSize:"small"})})]}),(0,ip.jsx)(Ml,{dividers:!0,children:t.map(r=>(0,ip.jsxs)(ue,{component:"section",sx:{mb:1.5},children:[(0,ip.jsx)(Fe,{variant:"overline",color:"text.secondary",children:r.name}),r.shortcuts.map(n=>(0,ip.jsxs)(ue,{sx:nGn,children:[(0,ip.jsx)(Fe,{variant:"body2",children:n.label}),(0,ip.jsx)(Rt,{direction:"row",spacing:.5,children:(0,ip.jsx)(VJ,{chords:n.chords})})]},n.label))]},r.name))})]})}var NR=L(z(),1);function j1r({reconnecting:e,onClose:t}){let{pending:r,error:n,clearError:i,restart:o}=y_(K9.target,e);return(0,NR.jsxs)(NR.Fragment,{children:[(0,NR.jsx)(vo,{title:K9.label,message:K9.message,confirmLabel:"Restart",busy:r,autoFocusConfirm:!0,onConfirm:()=>{o()},onCancel:t}),(0,NR.jsx)(vu,{error:n,onClose:i})]})}var K1r=L(z(),1);function iGn(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 Y1r({peer:e,onConfirm:t,onClose:r}){return(0,K1r.jsx)(vo,{...iGn(e),confirmLabel:"Update",onConfirm:()=>{t(),r()},onCancel:r})}var d0=L(ge(),1);async function oGn(e){try{let t=await fetch(`/api/node-doctor?link=${encodeURIComponent(e)}`);return t.ok?(await t.json()).hop:null}catch{return null}}async function X1r(e,t){let r=await oGn(e);if(!r)return t;let n=r.remediation?` \u2014 ${r.remediation}`:"";return`${t}: ${r.hop} hop failed: ${r.error}${n}`}var O2=L(ge(),1);function Z1r(e){let{nodes:t}=Ou(),[r,n]=(0,O2.useState)(null),i=(0,O2.useRef)(!1),o=r?t?.links.find(l=>l.name===r.peer):void 0;(0,O2.useEffect)(()=>{if(!(!r||!o)){if(o.state!=="connected"){i.current=!0;return}i.current&&(n(null),e(r.describe(r.peer,o.peerVersion)))}},[r,o,e]);let a=(0,O2.useCallback)((l,u)=>{i.current=!1,n({peer:l,describe:u})},[]),s=(0,O2.useCallback)(()=>n(null),[]);return{watch:a,stop:s}}var aGn=9e4;function S0e(){let[e,t]=(0,d0.useState)(null),[r,n]=(0,d0.useState)(null),i=(0,d0.useRef)(void 0),o=(0,d0.useCallback)(f=>{clearTimeout(i.current),t(f)},[]),{watch:a,stop:s}=Z1r(o);(0,d0.useEffect)(()=>()=>clearTimeout(i.current),[]);let l=(0,d0.useCallback)(async(f,d)=>{n(await X1r(f,d))},[]);return{requestThenAwait:(0,d0.useCallback)(async(f,d,h,p)=>{let m;try{m=await h()}catch{}return m?.ok?(a(f,p),clearTimeout(i.current),i.current=setTimeout(()=>{s(),l(f,`${f} did not come back`)},aGn),!0):(await l(f,`${d} failed (${await Y9(m)})`),!1)},[l,a,s]),back:e,clearBack:()=>t(null),error:r,clearError:()=>n(null)}}var sGn=(e,t)=>t?`${e} is back (v${t})`:`${e} is back`;function Q1r(){let{requestThenAwait:e,...t}=S0e();return{restart:n=>e(n,`Restart ${n}`,()=>g_("both",n),sGn),...t}}var EY=L(ge(),1);var h0=L(ge(),1);function J1r(e){return e.commandType==="assist"&&e.assistArgs?.[0]==="update"&&e.status==="done"}function C0e(e,t,r){let[n,i]=(0,h0.useState)(!1),[o,a]=(0,h0.useState)(!1),s=(0,h0.useRef)(!1),l=(0,h0.useRef)(e);l.current=e;let u=(0,h0.useRef)(new Set),f=(0,h0.useCallback)(()=>{s.current=!1,a(!1),u.current=new Set(l.current.filter(J1r).map(d=>d.id)),i(!0)},[]);return(0,h0.useEffect)(()=>{if(!n||o)return;if(t){s.current=!0;return}if(!s.current)return;e.some(h=>J1r(h)&&h.node===r&&!u.current.has(h.id))&&a(!0)},[n,o,t,e,r]),{arm:f,completed:o}}var evr=(e,t)=>t?`${e} updated to v${t}`:`${e} updated`;function lGn(e){return fetch(`/api/self-update?node=${encodeURIComponent(e)}`,{method:"POST"})}function tvr(e){let{nodes:t}=Ou(),{launchAssist:r}=$l(),{requestThenAwait:n,...i}=S0e(),[o,a]=(0,EY.useState)(null),[s,l]=(0,EY.useState)(),u=m=>t?.links.find(g=>g.name===m)?.state,{arm:f,completed:d}=C0e(e,u(s)!=="connected",s);(0,EY.useEffect)(()=>{!d||!s||(l(void 0),n(s,`Restart ${s}'s web server`,()=>g_("webserver",s),evr))},[d,s,n]);let h=async m=>{a(`Updating assist on ${m}\u2026`),await n(m,`Update ${m}`,()=>lGn(m),evr),a(null)};return{update:m=>{if(u(m)!=="connected"){h(m);return}l(m),f(),r(["update"],void 0,{node:m})},progress:o,...i}}var p0=L(z(),1);function rvr({dialog:e,peer:t,sessions:r,reconnecting:n,onClose:i}){let{launchAssist:o,armUpdateReload:a}=$l(),s=Q1r(),l=tvr(r);return(0,p0.jsxs)(p0.Fragment,{children:[e==="shortcuts"&&(0,p0.jsx)(q1r,{onClose:i}),e==="restart"&&t&&(0,p0.jsx)(U1r,{peer:t,onRestart:s.restart,onClose:i}),e==="restart"&&!t&&(0,p0.jsx)(j1r,{reconnecting:n,onClose:i}),e==="update"&&(0,p0.jsx)(Y1r,{peer:t,onConfirm:()=>{if(t){l.update(t);return}a(),o(["update"])},onClose:i}),(0,p0.jsx)(Yj,{notices:s}),(0,p0.jsx)(Yj,{notices:l})]})}var nvr=L(z(),1),ivr=ft((0,nvr.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 ovr=L(ge(),1);var RY=L(z(),1);function avr(){let e=Xi(),t=(0,ovr.useCallback)(()=>e("/config"),[e]),{matches:r,chords:n}=Yn("openConfig");return Io(r,t),(0,RY.jsx)(lr,{describeChild:!0,title:(0,RY.jsx)(Jf,{label:"Config",chords:n}),children:(0,RY.jsx)(sr,{size:"small",sx:{color:"inherit"},"aria-label":"Config",onClick:t,children:(0,RY.jsx)(ivr,{fontSize:"small"})})})}var svr=L(z(),1),lvr=ft((0,svr.jsx)("path",{d:"M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z"}),"Menu");var w0e=L(ge(),1);var AY=L(z(),1);function cvr({open:e,onOpen:t}){let r=(0,w0e.useRef)(null),{matches:n,chords:i}=Yn("openMenu");return Io(n,(0,w0e.useCallback)(()=>{r.current&&t(r.current)},[t])),(0,AY.jsx)(lr,{describeChild:!0,title:(0,AY.jsx)(Jf,{label:"Menu",chords:i}),children:(0,AY.jsx)(sr,{ref:r,onClick:o=>t(o.currentTarget),size:"small",sx:{color:"inherit"},"aria-label":"Open menu","aria-haspopup":"true","aria-expanded":e?"true":void 0,children:(0,AY.jsx)(lvr,{fontSize:"small"})})})}var ize=L(z(),1),uvr=ft([(0,ize.jsx)("path",{d:"M12 5.99 19.53 19H4.47zM12 2 1 21h22z"},"0"),(0,ize.jsx)("path",{d:"M13 16h-2v2h2zm0-6h-2v5h2z"},"1")],"WarningAmber");var oze=L(z(),1);function fvr(){let e=s0e();return!e||e===N_?null:(0,oze.jsx)(lr,{title:`Daemon is running v${e}, but this page was served by v${N_}. Restart the daemon to match.`,children:(0,oze.jsx)(uvr,{fontSize:"small",color:"warning","aria-label":"Version mismatch"})})}var dvr=e=>({display:"inline-flex",alignItems:"center",gap:.75,px:1,py:.25,borderRadius:999,fontSize:12,lineHeight:1.5,color:"inherit",opacity:e?1:.55,bgcolor:e?"rgba(255,255,255,0.16)":"transparent",transition:"opacity .2s ease, background-color .2s ease","&:hover, &:focus-visible":{opacity:1,bgcolor:"rgba(255,255,255,0.12)"},"& .ready-dot":{width:8,height:8,borderRadius:"50%",bgcolor:"#ffb74d",boxShadow:"0 0 0 2px rgba(0,0,0,.15)"},"& .ready-count":{fontWeight:500}});var tv=L(z(),1);function hvr(){let{entries:e}=z9();if(!N_)return null;let t=e.filter(oge).length;return(0,tv.jsxs)(tv.Fragment,{children:[(0,tv.jsxs)(Dn,{component:ys,to:"/updates","aria-label":t?`Updates: ${t} node${t>1?"s have":" has"} an update ready`:"Updates",sx:dvr(t>0),children:[t>0&&(0,tv.jsx)("span",{className:"ready-dot","aria-hidden":!0}),(0,tv.jsxs)("span",{children:["v",N_]}),t>0&&(0,tv.jsxs)("span",{className:"ready-count",children:[t," ready"]})]}),(0,tv.jsx)(fvr,{})]})}var CB=L(z(),1);function pvr({open:e,onOpen:t}){return(0,CB.jsxs)(ue,{sx:{position:"fixed",top:8,right:16,zIndex:r=>r.zIndex.drawer+2,display:"flex",alignItems:"center",gap:.5,color:"inherit"},children:[(0,CB.jsx)(hvr,{}),(0,CB.jsx)(avr,{}),(0,CB.jsx)(cvr,{open:e,onOpen:t})]})}var OR=L(ge(),1);var gvr=L(ge(),1);var mvr=!0,cGn=new Set(["openMenu","cycleCards"]),uGn=Object.keys(gP).filter(e=>!cGn.has(e));function yvr(e,t){let r=yP();(0,gvr.useEffect)(()=>{if(!e)return;let n=i=>{uGn.some(o=>WT(o,r).matches(i))&&t()};return globalThis.addEventListener("keydown",n,mvr),()=>globalThis.removeEventListener("keydown",n,mvr)},[e,t,r])}function vvr(){let[e,t]=(0,OR.useState)(null),[r,n]=(0,OR.useState)(!0),i=!!e,o=(0,OR.useCallback)(()=>t(null),[]),a=(0,OR.useCallback)(s=>{n(!0),t(s)},[]);return yvr(i,(0,OR.useCallback)(()=>{n(!1),t(null)},[])),{anchorEl:e,open:i,close:o,openAt:a,restoreFocus:r}}var PY=L(ge(),1);function bvr(e){Io(Yn("shortcutsSheet").matches,e)}function xvr(){let[e,t]=(0,PY.useState)(null);bvr((0,PY.useCallback)(()=>t("shortcuts"),[]));let r=(0,PY.useCallback)(()=>t(null),[]);return{dialog:e,showDialog:t,closeDialog:r}}function Tvr(){let{nodes:e,selected:t}=Ou();return e&&t&&t!==e.local?t:void 0}function Svr(e){return{restartLabel:e?`Restart ${e}`:K9.label,updateLabel:e?`Update assist on ${e}`:"Update assist"}}var B2=L(z(),1);function Cvr({mode:e,toggle:t,sessions:r,reconnecting:n}){let{anchorEl:i,open:o,close:a,openAt:s,restoreFocus:l}=vvr(),{dialog:u,showDialog:f,closeDialog:d}=xvr(),h=Tvr(),p=m=>()=>{a(),f(m)};return(0,B2.jsxs)(B2.Fragment,{children:[(0,B2.jsx)(pvr,{open:o,onOpen:s}),(0,B2.jsxs)(Dl,{anchorEl:i,open:o,onClose:a,disableRestoreFocus:!l,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[(0,B2.jsx)(k1r,{}),z1r({mode:e,...Svr(h),onToggleColorMode:()=>{t(),a()},onShowShortcuts:p("shortcuts"),onRestart:p("restart"),onUpdate:p("update")})]}),(0,B2.jsx)(rvr,{dialog:u,peer:h,sessions:r,reconnecting:n,onClose:d})]})}var kvr=L(ge(),1);var _vr=L(z(),1);function wvr({conflict:e,onConfirm:t,onCancel:r}){let{name:n,cwd:i,port:o,group:a}=e.existing,s=Bp(i),l=o?` on port ${o}`:"",u=s?` in ${s}`:"",f=a?`, holding the ${a} server slot`:"";return(0,_vr.jsx)(vo,{title:a?`Replace the ${a} server?`:"Replace running server?",message:`"${n}" is already serving${l}${u}${f}. Replace it \u2014 stop the running server and start this one?`,confirmLabel:"Replace",confirmColor:"error",onConfirm:t,onCancel:r})}var _0e=L(z(),1);function Evr({socket:e,children:t}){let{serverConflict:r,clearServerConflict:n,retrySession:i,stopSession:o,startRun:a,discardSession:s}=e,l=(0,kvr.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,_0e.jsxs)(Q2e.Provider,{value:l,children:[t,r&&(0,_0e.jsx)(wvr,{conflict:r,onConfirm:u,onCancel:n})]})}var Rvr=new Map;function Avr(e,t){if(!Are())return;let r=Rvr.get(e);if(Rvr.set(e,t),!!r)for(let[n,i]of Object.entries(t))Object.is(i,r[n])||ny(`\u0394 ${e}.${n}`)}var E0e=L(ge(),1);function Pvr(e,t,r){if(!t)return null;let n=e[t];if(!n)return null;let i=r.find(o=>o.id===n);return!i||Fp(i)!==t?null:n}function rv(e,t,r){if(e)return t.find(n=>n.id===e)??r.find(n=>n.sessionId===e)}function k0e(){let{pathname:e}=ua();return e.startsWith("/backlog")||e.startsWith("/usage")}function Lvr({selectedCwd:e,selectedCardId:t,sessions:r,history:n,activeByRepo:i,onSelect:o}){let a=rv(t,r,n),s=a&&Fp(a),l=!!(s&&s===e),u=Pvr(i,e,r),f=(0,E0e.useRef)(t),d=k0e();(0,E0e.useEffect)(()=>{let h=f.current!==t&&!!s;f.current=t,!(d||h||l||!u)&&o(u)},[t,s,l,u,o,d])}var P0e=L(ge(),1);function Mvr(e,t,r,n){return rv(e,t,r)?.cwd||n}function Ivr(e,t,r,n){let i=Mvr(e,t,r,n.cwd),o=rv(e,t,r);return{cwd:i,node:o?.cwd?o.node:n.node}}function Dvr(e,t){let r=new Set,n=new Set,i=[];for(let o of t){if(o.cwdMissing)continue;let a=FT(o),s=Fp(o);!a||!s||r.has(a)||n.has(s)||(r.add(a),n.add(s),i.push(s))}return e&&!r.has(hP(e,t))&&!n.has(e)&&i.unshift(e),i}var op="";function fGn(e){let t=new Map([[op,[]]]);for(let r of e){let n=r.node??op;t.set(n,[...t.get(n)??[],r])}return t}function Nvr(e,t){var n;let r=new Map;for(let[i,o]of fGn(t)){let a=i===op?e:"";for(let s of Dvr(a,o)){let l=hP(s,o),u=r.get(l)??{key:l,origin:l===s?void 0:l,clones:{}};(n=u.clones)[i]??(n[i]=s),r.set(l,u)}}return[...r.values()]}function Ovr(e,t){return e.clones[t]??e.clones[op]??Object.values(e.clones)[0]}function LY(e,t){return e.find(r=>Object.values(r.clones).includes(t))}function wB(e,t){return!e||e===t?op:e}var aze=L(ge(),1);function Bvr(e,t){let r=(0,aze.useCallback)((i,o)=>{let a=wB(o,t),s=LY(e,i);return s?s.clones[a]:a===op?i:void 0},[e,t]),n=(0,aze.useCallback)(i=>LY(e,i)?.origin,[e]);return{cloneOn:r,originOf:n}}var R0e=L(ge(),1);function Fvr(e,t,r,n){let i=(0,R0e.useRef)(e);(0,R0e.useEffect)(()=>{if(i.current===e)return;i.current=e;let o=LY(t,r)?.clones[e];o&&n(o,e)},[e,t,r,n])}var _B=L(ge(),1);function $vr(e,t,r){if(t.node!==void 0)return t.node;let n=new Set(e.flatMap(i=>Object.entries(i.clones).filter(([,o])=>o===t.cwd).map(([o])=>o)));return n.has(r)?r:n.size===0||n.has(op)?op:[...n][0]}function zvr(e,t,r,n){let[i,o]=(0,_B.useState)({cwd:e}),a=(0,_B.useCallback)((l,u)=>o({cwd:l,node:u}),[]);(0,_B.useEffect)(()=>{e&&!i.cwd&&o({cwd:e})},[e,i.cwd]);let s=$vr(t,{cwd:i.cwd,node:i.node===void 0?void 0:wB(i.node,n)},r);return{selectedCwd:i.cwd,selectedNode:s||void 0,setSelectedCwd:a}}var Hvr=L(ge(),1);function A0e(e,t,r){let n=rv(e,t,r);return n&&Fp(n)}function Uvr(e,t,r,n){let i=A0e(e,t,r),o=rv(e,t,r)?.node??op;(0,Hvr.useEffect)(()=>{i&&n(i,o)},[i,o,n])}function Wvr(e,t,r,n,i){let o=i.nodes?.local,a=wB(i.selected,o),s=(0,P0e.useMemo)(()=>Nvr(e,t),[e,t]),{selectedCwd:l,selectedNode:u,setSelectedCwd:f}=zvr(e,s,a,o);Uvr(r,n,t,f),Fvr(a,s,l,f);let{cloneOn:d,originOf:h}=Bvr(s,o),p=(0,P0e.useMemo)(()=>s.map(y=>Ovr(y,a)),[s,a]),{cwd:m,node:g}=Ivr(r,n,t,{cwd:l,node:u});return(0,P0e.useMemo)(()=>({repos:p,selectedCwd:l,selectedNode:u,worktreeCwd:m,worktreeNode:g,setSelectedCwd:f,cloneOn:d,originOf:h}),[p,l,u,m,g,f,d,h])}var M0e=L(ge(),1);var W_=L(ge(),1);var Vvr=L(ge(),1),L0e="assist:reloaded-after-update";function Gvr(e){(0,Vvr.useEffect)(()=>{globalThis.sessionStorage?.getItem(L0e)&&(globalThis.sessionStorage.removeItem(L0e),e({message:"Reloaded after updating assist",sessionId:null}))},[e])}function qvr(e,t,r,n){let{arm:i,completed:o}=C0e(e,t),a=(0,W_.useRef)(!1),s=(0,W_.useCallback)(()=>{globalThis.sessionStorage?.setItem(L0e,"1")},[]),{error:l,restart:u}=y_("webserver",t,s);return Gvr(r),(0,W_.useEffect)(()=>{l&&n(l)},[l,n]),(0,W_.useEffect)(()=>{!o||a.current||(a.current=!0,u())},[o,u]),{armUpdateReload:(0,W_.useCallback)(()=>{a.current=!1,i()},[i])}}function jvr(e){let{armUpdateReload:t}=qvr(e.sessions,e.reconnecting,e.setSuccess,e.setError),r=(0,M0e.useMemo)(()=>({launchAssist:e.createAssistSession,launchAgentInStream:e.createSessionInStream,resumeSession:e.resumeSession,armUpdateReload:t}),[e.createAssistSession,e.createSessionInStream,e.resumeSession,t]),n=Xi(),i=(0,M0e.useCallback)(o=>{e.selectSession(o),n("/sessions"),e.clearSuccess()},[n,e.selectSession,e.clearSuccess]);return{launch:r,viewLaunchedSession:i}}var Yvr=L(ge(),1);function Kvr(e,t,r,n){let i=A0e(e,t,r);(0,Yvr.useEffect)(()=>{e&&i&&n({type:"set-active",cwd:i,sessionId:e})},[e,i,n])}var I0e=L(ge(),1);function Xvr(e,t){let r=(0,I0e.useRef)(new Map);(0,I0e.useEffect)(()=>{let n=new Set;for(let{id:i,status:o}of e)n.add(i),r.current.get(i)!==o&&(r.current.set(i,o),console.debug(`[sessions] render session ${i} status=${o}`),t({type:"ui-status",sessionId:i,status:o}));for(let i of r.current.keys())n.has(i)||r.current.delete(i)},[e,t])}var kB=L(ge(),1),Zvr="assist.sessions.node";function dGn(){try{return localStorage.getItem(Zvr)}catch{return null}}function hGn(e){try{localStorage.setItem(Zvr,e)}catch{}}function Qvr(e){let[t,r]=(0,kB.useState)(dGn),n=(0,kB.useCallback)(i=>{r(i),hGn(i)},[]);return(0,kB.useMemo)(()=>{let i=e?[e.local,...e.links.map(o=>o.name)]:[];return{nodes:e,names:i,visible:i.length>1,selected:t&&i.includes(t)?t:e?.local,select:n}},[e,t,n])}var ebr=L(ge(),1);function Jvr(e){let t=e;if(t.type==="create")return{cwd:t.cwd,title:t.prompt?.trim()||(t.design?"New design session":"New session"),node:t.node};if(t.type==="create-assist"){let r=t.title?.trim();return{cwd:t.cwd,title:r||"New session",named:!!r,node:t.node}}return null}function tbr(e,t){return(0,ebr.useCallback)(r=>{let n=e.current;n?.readyState===WebSocket.OPEN&&n.send(JSON.stringify(r));let i=Jvr(r);i&&t(i)},[e,t])}var nv=L(ge(),1);function D0e(e,t,r,n,i){e({type:"create",prompt:r||void 0,cwd:n,...t,...i?{node:i}:{}})}function rbr(e){return(t,r,n)=>D0e(e,{design:!0},t,r,n)}function nbr(e){return(t,r,n,i)=>D0e(e,{harness:t},r,n,i)}function ibr(e){return(t,r,n)=>D0e(e,{auto:!0},t,r,n)}function obr(e){return(t,r,n)=>e({type:"create-assist",assistArgs:t,cwd:r,...n})}function abr(e){return(t,r,n,i,o)=>e({type:"resume",sessionId:t,cwd:r,name:n,harness:i,node:o})}function sbr(e,t){return(r,n)=>{t.delete(r),e({type:"retry",sessionId:r,replace:n})}}function lbr(e,t){return r=>{t.delete(r),e({type:"restart",sessionId:r})}}function cbr(e,t){return r=>{e({type:"dismiss",sessionId:r}),t.delete(r)}}function ubr(e,t){return r=>{e({type:"discard",sessionId:r}),t.delete(r)}}function fbr(e){return t=>e({type:"stop",sessionId:t})}function dbr(e){return(t,r,n,i,o)=>e({type:"create-run",runName:t,cwd:r,replace:n,launchedFrom:i,node:o})}function hbr(e){return(t,r)=>e({type:"set-autorun",sessionId:t,enabled:r})}function pbr(e){return(t,r)=>e({type:"set-autoadvance",sessionId:t,enabled:r})}function mbr(e){return(t,r)=>e({type:"set-starred",sessionId:t,starred:r})}function gbr(e){return(t,r)=>e({type:"input",sessionId:t,data:r,viewerId:jj})}function ybr(e){return(t,r,n,i)=>e({type:"resize",sessionId:t,cols:r,rows:n,viewerId:jj,claim:i})}function vbr(e,t){return(r,n)=>{let i=e.get(r);return i&&n(i),t.set(r,n),()=>t.delete(r)}}function bbr(e){return(t,r,n,i)=>e({type:"pr-decision",sessionId:t,requestId:r,decision:n,...i})}var BR=L(ge(),1);function xbr(e){return(t,r,n)=>e({type:"create",prompt:r||void 0,cwd:n,joinSessionId:t,auto:!0})}function Tbr(e){return{createSession:(0,BR.useMemo)(()=>ibr(e),[e]),createSessionInStream:(0,BR.useMemo)(()=>xbr(e),[e]),createDesignSession:(0,BR.useMemo)(()=>rbr(e),[e]),createHarnessSession:(0,BR.useMemo)(()=>nbr(e),[e]),createAssistSession:(0,BR.useMemo)(()=>obr(e),[e]),resumeSession:(0,BR.useMemo)(()=>abr(e),[e])}}var MY=L(ge(),1);function Sbr(e,t){let r=(0,MY.useCallback)((a,s)=>{sbr(e,t.current)(a,s)},[e,t]),n=(0,MY.useCallback)(a=>{lbr(e,t.current)(a)},[e,t]),i=(0,MY.useCallback)(a=>{cbr(e,t.current)(a)},[e,t]),o=(0,MY.useCallback)(a=>{ubr(e,t.current)(a)},[e,t]);return{retrySession:r,restartSession:n,dismissSession:i,discardSession:o}}function Cbr(e,t,r){let n={...Tbr(e),sendInput:(0,nv.useMemo)(()=>gbr(e),[e]),sendResize:(0,nv.useMemo)(()=>ybr(e),[e]),sendPrDecision:(0,nv.useMemo)(()=>bbr(e),[e]),setAutoRun:(0,nv.useMemo)(()=>hbr(e),[e]),setAutoAdvance:(0,nv.useMemo)(()=>pbr(e),[e]),setStarred:(0,nv.useMemo)(()=>mbr(e),[e]),stopSession:(0,nv.useMemo)(()=>fbr(e),[e]),startRun:(0,nv.useMemo)(()=>dbr(e),[e])},i=(0,nv.useMemo)(()=>vbr(t.current,r.current),[t,r]);return{...n,...Sbr(e,t),onOutput:i}}var IY=L(ge(),1);function wbr(e,t,r){let n=(0,IY.useCallback)(s=>{r(s),e({type:"fetch-transcript",sessionId:s})},[e,r]),i=(0,IY.useCallback)(s=>e({type:"fetch-user-messages",sessionId:s}),[e]),o=(0,IY.useCallback)(()=>{r(null)},[r]),a=(0,IY.useCallback)(s=>{r(null),t(s)},[t,r]);return{viewTranscript:n,fetchUserMessages:i,clearTranscript:o,selectSession:a}}var q_=L(ge(),1);function _br(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 Ebr=L(ge(),1);function kbr(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 Rbr(e,t,r){let n=k0e();(0,Ebr.useEffect)(()=>{if(n){t(null);return}t(i=>kbr(e,i,r))},[e,t,r,n])}var N0e=L(ge(),1);function Abr(){let[e,t]=(0,N0e.useState)({}),[r,n]=(0,N0e.useState)(null),[i,o]=(0,N0e.useState)(null);return{activeByRepo:e,setActiveByRepo:t,daemonVersion:r,setDaemonVersion:n,nodes:i,setNodes:o}}var m0=L(ge(),1);function Pbr(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 Lbr(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 Mbr(e,t){return t.filter(r=>r.commandType==="run"&&e.get(r.id)!==r.startedAt).map(r=>r.id)}var pGn=1500;function Ibr(){let[e,t]=(0,m0.useState)(new Set),r=(0,m0.useRef)(new Map),n=(0,m0.useRef)(new Map),i=(0,m0.useCallback)(s=>{t(l=>l.has(s)?l:new Set(l).add(s))},[]),o=(0,m0.useCallback)(s=>{let l=n.current;for(let u of s)clearTimeout(l.get(u)),l.set(u,setTimeout(()=>{l.delete(u),i(u)},pGn))},[i]);(0,m0.useEffect)(()=>{let s=n.current;return()=>{for(let l of s.values())clearTimeout(l)}},[]);let a=(0,m0.useCallback)(s=>{let l=Lbr(r.current,s),u=Mbr(r.current,s);r.current=new Map(s.map(f=>[f.id,f.startedAt])),l.length&&t(f=>Pbr(f,l)),o(u)},[o]);return{initialized:e,markInitialized:i,syncSessions:a}}var V_=L(ge(),1);function Dbr(){let[e,t]=(0,V_.useState)(null),[r,n]=(0,V_.useState)(null),[i,o]=(0,V_.useState)(null),a=(0,V_.useCallback)(()=>t(null),[]),s=(0,V_.useCallback)(()=>n(null),[]),l=(0,V_.useCallback)(()=>o(null),[]);return{error:e,setError:t,clearError:a,success:r,setSuccess:n,clearSuccess:s,serverConflict:i,setServerConflict:o,clearServerConflict:l}}var iv=L(ge(),1);function Nbr(e,t){return[...e,{...t,status:"launching"}]}function O0e(e){return e.find(t=>t.status==="launching")}function Obr(e){let t=O0e(e);return t?e.filter(r=>r.id!==t.id):e}function Bbr(e,t){let r=O0e(e);return r?sze(e,r.id,t):e}function sze(e,t,r){return e.map(n=>n.id===t&&n.status==="launching"?{...n,status:"error",error:r}:n)}function Fbr(e,t){return e.filter(r=>r.id!==t)}var $br=L(ge(),1);var mGn=6e4,gGn="Launch timed out \u2014 the session did not start.";function zbr(e,t){(0,$br.useEffect)(()=>{let r=e.filter(i=>i.status==="launching");if(r.length===0)return;let n=r.map(i=>setTimeout(()=>t(o=>sze(o,i.id,gGn)),Math.max(0,mGn-(Date.now()-i.startedAt))));return()=>n.forEach(clearTimeout)},[e,t])}function Hbr(){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=>Nbr(u,{id:crypto.randomUUID(),startedAt:Date.now(),...l}))},[n]),o=(0,iv.useCallback)(()=>{let l=O0e(r.current);return n(Obr),l?.named?l.title:void 0},[n]),a=(0,iv.useCallback)(l=>n(u=>Bbr(u,l)),[n]),s=(0,iv.useCallback)(l=>n(u=>Fbr(u,l)),[n]);return zbr(e,n),{pendingLaunches:e,addPendingLaunch:i,resolvePendingLaunch:o,failPendingLaunch:a,dismissPendingLaunch:s}}var DY=L(ge(),1);function Ubr(){let[e,t]=(0,DY.useState)(null),[r,n]=(0,DY.useState)({}),i=(0,DY.useCallback)((o,a)=>{o!=="claude"&&n(s=>({...s,[o]:a}))},[]);return{rateLimits:e,setRateLimits:t,harnessRateLimits:r,setHarnessRateLimits:i}}var Wbr=L(ge(),1);function Vbr(e,t){return(0,Wbr.useCallback)(r=>{e(r),t(r)},[e,t])}var B0e=L(ge(),1);function Gbr(){let[e,t]=(0,B0e.useState)(null),[r,n]=(0,B0e.useState)(null),[i,o]=(0,B0e.useState)(null);return{transcript:e,setTranscript:t,viewingTranscriptSessionId:r,setViewingTranscriptSessionId:n,userMessages:i,setUserMessages:o}}var G_=L(ge(),1);function qbr(e,t){let r=e.sessionId;t.buffers.current?.delete(r),t.handlers.current?.get(r)?.("\x1Bc")}function jbr(e,t){let r=e.sessionId,n=t.resolvePendingLaunch();t.setViewingTranscriptSessionId(null),t.setActiveId(r),e.isNew&&t.setSuccess({message:n?`Started ${n}`:"New session started",sessionId:r})}function Ybr(e,t){let r=e.message;t.setError(r),t.failPendingLaunch(r)}function Kbr(e,t){let r=e.rateLimits,n=e.harness;!n||n==="claude"?t.setRateLimits(r):t.setHarnessRateLimits?.(n,r)}function Xbr(e,t){t.setNodes({local:e.local,links:e.links??[]})}function Zbr(e,t){t.setSuccess({message:e.message,sessionId:null})}function Qbr(e,t){let r=e.sessionId,n=t.buffers.current?.get(r)??"";t.buffers.current?.set(r,n+e.data),t.handlers.current?.get(r)?.(e.data),t.markInitialized(r)}function Jbr(e,t){t.setServerConflict({existing:e.existing,runName:e.runName,cwd:e.cwd,sessionId:e.sessionId,launchedFrom:e.launchedFrom,node:e.node})}function exr(e,t){let r=e.sessions;t.setSessions(r),e.cwd&&t.setCurrentCwd(e.cwd),t.setActiveByRepo(e.active??{})}var yGn={sessions:exr,created:jbr,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:Xbr,error:Ybr,notice:Zbr,"run-conflict":Jbr,limits:Kbr,clear:qbr,output:Qbr};function txr(e,t){yGn[e.type]?.(e,t)}function rxr(e,t={}){let r=location.protocol==="https:"?"wss:":"ws:",n=new WebSocket(`${r}//${location.host}/ws`);return n.onopen=()=>{t.onOpen?.(),n.send(JSON.stringify({type:"hello"})),n.send(JSON.stringify({type:"history"}))},n.onmessage=i=>{txr(JSON.parse(i.data),e)},n.onclose=()=>t.onClose?.(),n}function nxr(e,t,r,n){let i=!1,o,a=0,s=!1,l=()=>{i||t(rxr(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 ixr(e){let t=(0,G_.useRef)(null),[r,n]=(0,G_.useState)(!1),{handleSessions:i,markInitialized:o,buffers:a,handlers:s}=e;(0,G_.useEffect)(()=>{let u=()=>{a.current?.clear();let d=s.current;if(d)for(let h of d.values())h("\x1Bc")},f=nxr({...e,setSessions:i},d=>{t.current=d},u,n);return()=>{f(),t.current?.close()}},[i,o,a,s]);let l=(0,G_.useCallback)(()=>{let u=t.current;u?.readyState===WebSocket.OPEN&&u.send(JSON.stringify({type:"history"}))},[]);return{wsRef:t,requestHistory:l,reconnecting:r}}function oxr(){let[e,t]=(0,q_.useState)([]),[r,n]=(0,q_.useState)([]),[i,o]=(0,q_.useState)(null),a=Abr(),s=Gbr(),[l,u]=(0,q_.useState)(""),f=Dbr(),d=Hbr(),h=Ubr(),{initialized:p,markInitialized:m,syncSessions:g}=Ibr(),y=(0,q_.useRef)(new Map),v=(0,q_.useRef)(new Map),b=Vbr(g,t),{wsRef:x,requestHistory:S,reconnecting:C}=ixr({handleSessions:b,setHistory:n,setActiveId:o,...a,...s,setCurrentCwd:u,...f,...d,...h,markInitialized:m,buffers:y,handlers:v});return Rbr(e,o,_br(a.activeByRepo,e)),{sessions:e,history:r,activeId:i,setActiveId:o,...a,...s,currentCwd:l,...f,...d,...h,initialized:p,wsRef:x,buffers:y,handlers:v,requestHistory:S,reconnecting:C}}function axr(){let e=oxr(),{wsRef:t,buffers:r,handlers:n,addPendingLaunch:i,activeId:o,sessions:a}=e,s=Qvr(e.nodes),l=tbr(t,i),u=Cbr(l,r,n);Kvr(o,a,e.history,l),Xvr(a,l);let f=wbr(l,e.setActiveId,e.setViewingTranscriptSessionId);return{...e,...u,...f,nodeSelection:s}}var EB=L(ge(),1);var sxr="assist:sidebar-collapsed";function lxr(){let[e,t]=(0,EB.useState)(()=>Od(sxr).length>0),r=(0,EB.useCallback)(()=>{t(n=>{let i=!n;return Bd(sxr,i?[!0]:[]),i})},[]);return(0,EB.useMemo)(()=>({collapsed:e,onToggleCollapsed:r}),[e,r])}var cxr=L(ge(),1);function uxr(){(0,cxr.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await fetch("/api/hotkeys");if(!t.ok)return;let r=await t.json();e||h5.set(r)}catch{}})(),()=>{e=!0}},[])}var F0e=L(ge(),1);function fxr(){let[e,t]=(0,F0e.useState)(!0);return(0,F0e.useEffect)(()=>{let r=!1;return(async()=>{try{let i=await(await fetch("/api/session-layout")).json();r||t(!!i?.topBar)}catch{t(!0)}})(),()=>{r=!0}},[]),e}function dxr(){let e=axr(),t=ipe(e),r=Wvr(e.currentCwd,e.history,t,e.sessions,e.nodeSelection);Lvr({selectedCwd:r.selectedCwd,selectedCardId:t,sessions:e.sessions,history:e.history,activeByRepo:e.activeByRepo,onSelect:e.selectSession});let{launch:n,viewLaunchedSession:i}=jvr(e),o=fxr();uxr();let a=lxr();return Avr("shell",{...e,selection:r,launch:n,topBar:o,sidebarCollapse:a}),{socket:e,selection:r,launch:n,viewLaunchedSession:i,topBar:o,sidebarCollapse:a}}var g0=L(z(),1),vGn={zIndex:e=>e.zIndex.drawer+1},bGn={minHeight:48};function hxr({mode:e,toggle:t}){let r=dxr(),{socket:n,selection:i,viewLaunchedSession:o}=r;return(0,g0.jsx)(_yr,{shell:r,children:(0,g0.jsxs)(V$e.Provider,{value:n.daemonVersion,children:[(0,g0.jsx)(Cvr,{mode:e,toggle:t,sessions:n.sessions,reconnecting:n.reconnecting}),(0,g0.jsx)(a1e,{position:"fixed",elevation:1,sx:vGn,children:(0,g0.jsx)(w1r,{socket:n,selection:i})}),(0,g0.jsx)(Fk,{variant:"dense",sx:bGn}),(0,g0.jsx)(Evr,{socket:n,children:(0,g0.jsx)(h0r,{socket:n})}),(0,g0.jsx)(Cyr,{socket:n,onViewLaunchedSession:o})]})})}var pxr=L(ge(),1);function mxr(){let[e,t]=(0,pxr.useState)(()=>{try{return localStorage.getItem("theme-mode")??"dark"}catch{return"dark"}});return{mode:e,toggle:()=>t(n=>{let i=n==="dark"?"light":"dark";try{localStorage.setItem("theme-mode",i)}catch{}return i})}}var j_=L(z(),1),xGn={MuiButtonBase:{styleOverrides:{root:{cursor:"pointer","&.Mui-disabled":{cursor:"default"}}}},MuiLink:{styleOverrides:{root:{cursor:"pointer"}}}};function TGn(){let{mode:e,toggle:t}=mxr(),r=(0,yxr.useMemo)(()=>C0({palette:{mode:e,...e==="dark"&&{background:{default:"#1e1e1e",paper:"#252526"}}},components:xGn}),[e]);return(0,j_.jsxs)(UK,{theme:r,children:[(0,j_.jsx)(AX,{}),(0,j_.jsx)(hxr,{mode:e,toggle:t})]})}var SGn=E2e([{path:"*",element:(0,j_.jsx)(TGn,{})}]);function CGn(){return(0,j_.jsx)(b2e,{router:SGn})}var gxr=document.getElementById("app");gxr&&(0,vxr.createRoot)(gxr).render((0,j_.jsx)(CGn,{}));})();
|
|
3979
3979
|
/*! Bundled license information:
|
package/dist/index.js
CHANGED