@staff0rd/assist 0.318.7 → 0.318.9
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.
|
@@ -261,7 +261,7 @@ ${e}</tr>
|
|
|
261
261
|
`}tablecell(e){let t=this.parser.parseInline(e.tokens),r=e.header?"th":"td";return(e.align?`<${r} align="${e.align}">`:`<${r}>`)+t+`</${r}>
|
|
262
262
|
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${En(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:r}){let o=this.parser.parseInline(r),i=rz(e);if(i===null)return o;e=i;let s='<a href="'+e+'"';return t&&(s+=' title="'+En(t)+'"'),s+=">"+o+"</a>",s}image({href:e,title:t,text:r,tokens:o}){o&&(r=this.parser.parseInline(o,this.parser.textRenderer));let i=rz(e);if(i===null)return En(r);e=i;let s=`<img src="${e}" alt="${r}"`;return t&&(s+=` title="${En(t)}"`),s+=">",s}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:En(e.text)}},KR=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}},La=class zR{constructor(t){Ve(this,"options");Ve(this,"renderer");Ve(this,"textRenderer");this.options=t||Fu,this.options.renderer=this.options.renderer||new _S,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new KR}static parse(t,r){return new zR(r).parse(t)}static parseInline(t,r){return new zR(r).parseInline(t)}parse(t,r=!0){let o="";for(let i=0;i<t.length;i++){let s=t[i];if(this.options.extensions?.renderers?.[s.type]){let a=s,l=this.options.extensions.renderers[a.type].call({parser:this},a);if(l!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(a.type)){o+=l||"";continue}}let n=s;switch(n.type){case"space":{o+=this.renderer.space(n);continue}case"hr":{o+=this.renderer.hr(n);continue}case"heading":{o+=this.renderer.heading(n);continue}case"code":{o+=this.renderer.code(n);continue}case"table":{o+=this.renderer.table(n);continue}case"blockquote":{o+=this.renderer.blockquote(n);continue}case"list":{o+=this.renderer.list(n);continue}case"html":{o+=this.renderer.html(n);continue}case"paragraph":{o+=this.renderer.paragraph(n);continue}case"text":{let a=n,l=this.renderer.text(a);for(;i+1<t.length&&t[i+1].type==="text";)a=t[++i],l+=`
|
|
263
263
|
`+this.renderer.text(a);r?o+=this.renderer.paragraph({type:"paragraph",raw:l,text:l,tokens:[{type:"text",raw:l,text:l,escaped:!0}]}):o+=l;continue}default:{let a='Token with "'+n.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return o}parseInline(t,r=this.renderer){let o="";for(let i=0;i<t.length;i++){let s=t[i];if(this.options.extensions?.renderers?.[s.type]){let a=this.options.extensions.renderers[s.type].call({parser:this},s);if(a!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(s.type)){o+=a||"";continue}}let n=s;switch(n.type){case"escape":{o+=r.text(n);break}case"html":{o+=r.html(n);break}case"link":{o+=r.link(n);break}case"image":{o+=r.image(n);break}case"strong":{o+=r.strong(n);break}case"em":{o+=r.em(n);break}case"codespan":{o+=r.codespan(n);break}case"br":{o+=r.br(n);break}case"del":{o+=r.del(n);break}case"text":{o+=r.text(n);break}default:{let a='Token with "'+n.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return o}},BR,yS=(BR=class{constructor(e){Ve(this,"options");Ve(this,"block");this.options=e||Fu}preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}provideLexer(){return this.block?Oa.lex:Oa.lexInline}provideParser(){return this.block?La.parse:La.parseInline}},Ve(BR,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens"])),BR),Gie=class{constructor(...e){Ve(this,"defaults",FR());Ve(this,"options",this.setOptions);Ve(this,"parse",this.parseMarkdown(!0));Ve(this,"parseInline",this.parseMarkdown(!1));Ve(this,"Parser",La);Ve(this,"Renderer",_S);Ve(this,"TextRenderer",KR);Ve(this,"Lexer",Oa);Ve(this,"Tokenizer",bS);Ve(this,"Hooks",yS);this.use(...e)}walkTokens(e,t){let r=[];for(let o of e)switch(r=r.concat(t.call(this,o)),o.type){case"table":{let i=o;for(let s of i.header)r=r.concat(this.walkTokens(s.tokens,t));for(let s of i.rows)for(let n of s)r=r.concat(this.walkTokens(n.tokens,t));break}case"list":{let i=o;r=r.concat(this.walkTokens(i.items,t));break}default:{let i=o;this.defaults.extensions?.childTokens?.[i.type]?this.defaults.extensions.childTokens[i.type].forEach(s=>{let n=i[s].flat(1/0);r=r.concat(this.walkTokens(n,t))}):i.tokens&&(r=r.concat(this.walkTokens(i.tokens,t)))}}return r}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(r=>{let o={...r};if(o.async=this.defaults.async||o.async||!1,r.extensions&&(r.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let s=t.renderers[i.name];s?t.renderers[i.name]=function(...n){let a=i.renderer.apply(this,n);return a===!1&&(a=s.apply(this,n)),a}:t.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=t[i.level];s?s.unshift(i.tokenizer):t[i.level]=[i.tokenizer],i.start&&(i.level==="block"?t.startBlock?t.startBlock.push(i.start):t.startBlock=[i.start]:i.level==="inline"&&(t.startInline?t.startInline.push(i.start):t.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(t.childTokens[i.name]=i.childTokens)}),o.extensions=t),r.renderer){let i=this.defaults.renderer||new _S(this.defaults);for(let s in r.renderer){if(!(s in i))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let n=s,a=r.renderer[n],l=i[n];i[n]=(...c)=>{let u=a.apply(i,c);return u===!1&&(u=l.apply(i,c)),u||""}}o.renderer=i}if(r.tokenizer){let i=this.defaults.tokenizer||new bS(this.defaults);for(let s in r.tokenizer){if(!(s in i))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let n=s,a=r.tokenizer[n],l=i[n];i[n]=(...c)=>{let u=a.apply(i,c);return u===!1&&(u=l.apply(i,c)),u}}o.tokenizer=i}if(r.hooks){let i=this.defaults.hooks||new yS;for(let s in r.hooks){if(!(s in i))throw new Error(`hook '${s}' does not exist`);if(["options","block"].includes(s))continue;let n=s,a=r.hooks[n],l=i[n];yS.passThroughHooks.has(s)?i[n]=c=>{if(this.defaults.async)return Promise.resolve(a.call(i,c)).then(p=>l.call(i,p));let u=a.call(i,c);return l.call(i,u)}:i[n]=(...c)=>{let u=a.apply(i,c);return u===!1&&(u=l.apply(i,c)),u}}o.hooks=i}if(r.walkTokens){let i=this.defaults.walkTokens,s=r.walkTokens;o.walkTokens=function(n){let a=[];return a.push(s.call(this,n)),i&&(a=a.concat(i.call(this,n))),a}}this.defaults={...this.defaults,...o}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return Oa.lex(e,t??this.defaults)}parser(e,t){return La.parse(e,t??this.defaults)}parseMarkdown(e){return(r,o)=>{let i={...o},s={...this.defaults,...i},n=this.onError(!!s.silent,!!s.async);if(this.defaults.async===!0&&i.async===!1)return n(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof r>"u"||r===null)return n(new Error("marked(): input parameter is undefined or null"));if(typeof r!="string")return n(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(r)+", string expected"));s.hooks&&(s.hooks.options=s,s.hooks.block=e);let a=s.hooks?s.hooks.provideLexer():e?Oa.lex:Oa.lexInline,l=s.hooks?s.hooks.provideParser():e?La.parse:La.parseInline;if(s.async)return Promise.resolve(s.hooks?s.hooks.preprocess(r):r).then(c=>a(c,s)).then(c=>s.hooks?s.hooks.processAllTokens(c):c).then(c=>s.walkTokens?Promise.all(this.walkTokens(c,s.walkTokens)).then(()=>c):c).then(c=>l(c,s)).then(c=>s.hooks?s.hooks.postprocess(c):c).catch(n);try{s.hooks&&(r=s.hooks.preprocess(r));let c=a(r,s);s.hooks&&(c=s.hooks.processAllTokens(c)),s.walkTokens&&this.walkTokens(c,s.walkTokens);let u=l(c,s);return s.hooks&&(u=s.hooks.postprocess(u)),u}catch(c){return n(c)}}}onError(e,t){return r=>{if(r.message+=`
|
|
264
|
-
Please report this to https://github.com/markedjs/marked.`,e){let o="<p>An error occurred:</p><pre>"+En(r.message+"",!0)+"</pre>";return t?Promise.resolve(o):o}if(t)return Promise.reject(r);throw r}}},zu=new Gie;function $e(e,t){return zu.parse(e,t)}$e.options=$e.setOptions=function(e){return zu.setOptions(e),$e.defaults=zu.defaults,sz($e.defaults),$e};$e.getDefaults=FR;$e.defaults=Fu;$e.use=function(...e){return zu.use(...e),$e.defaults=zu.defaults,sz($e.defaults),$e};$e.walkTokens=function(e,t){return zu.walkTokens(e,t)};$e.parseInline=zu.parseInline;$e.Parser=La;$e.parser=La.parse;$e.Renderer=_S;$e.TextRenderer=KR;$e.Lexer=Oa;$e.lexer=Oa.lex;$e.Tokenizer=bS;$e.Hooks=yS;$e.parse=$e;var IKe=$e.options,zKe=$e.setOptions,FKe=$e.use,$Ke=$e.walkTokens,UKe=$e.parseInline;var HKe=La.parse,jKe=Oa.lex;var Jl=y(C(),1);function gz({criteria:e}){return e.length===0?null:(0,Jl.jsxs)(ee,{sx:{mb:2},children:[(0,Jl.jsx)(te,{variant:"overline",sx:{color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"},children:"Acceptance Criteria"}),(0,Jl.jsx)(mn,{disablePadding:!0,children:e.map((t,r)=>(0,Jl.jsxs)(_l,{disableGutters:!0,disablePadding:!0,sx:{py:.5,display:"flex",alignItems:"baseline"},children:[(0,Jl.jsxs)(te,{component:"span",sx:{color:"text.secondary",mr:1},children:[r+1,"."]}),(0,Jl.jsx)(ee,{component:"span",className:"markdown",dangerouslySetInnerHTML:{__html:$e.parseInline(t)}})]},t))})]})}var $u=y(C(),1),Yie={alignItems:"center",fontSize:"0.75rem",color:"text.secondary",mb:.5},Xie={color:"text.disabled"},Zie={fontWeight:500},Qie={summary:"Phase summary",comment:"Comment"};function yz({comment:e}){return(0,$u.jsxs)(ft,{direction:"row",spacing:.5,sx:Yie,children:[e.id!==void 0&&(0,$u.jsxs)(te,{variant:"caption",sx:Xie,children:["#",e.id]}),(0,$u.jsx)(te,{variant:"caption",sx:Zie,children:Qie[e.type]}),e.phase!==void 0&&(0,$u.jsxs)(te,{variant:"caption",children:["\xB7 Phase ",e.phase]}),(0,$u.jsxs)(te,{variant:"caption",children:["\xB7 ",Jie(e.timestamp)]})]})}function Jie(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}var vz=y(C(),1),bz=fe((0,vz.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 GR=y(I(),1);var kn=y(C(),1),ese={mt:-.5,mr:-.5,color:"text.secondary"};function _z({itemId:e,commentId:t,onDeleted:r}){let o=xr(),[i,s]=(0,GR.useState)(!1),[n,a]=(0,GR.useState)(),l=()=>a(void 0);return(0,kn.jsxs)(kn.Fragment,{children:[i&&(0,kn.jsx)(ms,{message:"Are you sure you want to delete this comment?",onConfirm:async()=>{s(!1);try{await z6(e,t,o),await r()}catch(c){a(c instanceof Error?c.message:"Failed to delete comment")}},onCancel:()=>s(!1)}),(0,kn.jsx)(gn,{open:n!==void 0,autoHideDuration:6e3,onClose:l,children:(0,kn.jsx)(fn,{severity:"error",variant:"filled",onClose:l,children:n})}),(0,kn.jsx)(Ct,{"aria-label":"Delete comment",size:"small",sx:ese,onClick:()=>s(!0),children:(0,kn.jsx)(bz,{fontSize:"inherit"})})]})}var Uu=y(C(),1),tse={summary:{bgcolor:"warning.light",borderColor:"warning.dark"},comment:{bgcolor:"action.selected",borderColor:"divider"}},rse={justifyContent:"space-between",alignItems:"flex-start"},ose={color:"text.primary",whiteSpace:"pre-wrap"};function ise(e){return{p:1.5,bgcolor:e.bgcolor,borderColor:e.borderColor}}function Sz({comment:e,itemId:t,onDeleted:r}){return(0,Uu.jsxs)(st,{variant:"outlined",sx:ise(tse[e.type]),children:[(0,Uu.jsxs)(ft,{direction:"row",sx:rse,children:[(0,Uu.jsx)(yz,{comment:e}),e.id!==void 0&&t!==void 0&&r&&(0,Uu.jsx)(_z,{itemId:t,commentId:e.id,onDeleted:r})]}),(0,Uu.jsx)(te,{variant:"body2",sx:ose,children:e.text})]})}var Df=y(C(),1),sse={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function xz({comments:e,itemId:t,onCommentDeleted:r}){return e.length===0?null:(0,Df.jsxs)(ee,{sx:{mb:2},children:[(0,Df.jsx)(te,{variant:"overline",sx:sse,children:"Comments"}),(0,Df.jsx)(ft,{spacing:1,children:e.map((o,i)=>(0,Df.jsx)(Sz,{comment:o,itemId:t,onDeleted:r},`${o.timestamp}-${i}`))})]})}var TS=y(C(),1),Tz={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"}},nse=["todo","in-progress","done","wontdo"];function wz({current:e,onStatusChange:t}){return t?(0,TS.jsx)(Md,{value:e,onChange:r=>t(r.target.value),size:"small",sx:{fontSize:"0.75rem",fontWeight:500,borderRadius:4,bgcolor:Tz[e].bg,color:Tz[e].text,"& .MuiSelect-select":{py:.5,px:1.5},"& .MuiSelect-icon":{color:"inherit"}},children:nse.map(r=>(0,TS.jsx)(es,{value:r,children:r},r))}):(0,TS.jsx)(_t,{label:e,size:"small",color:aS[e],sx:{fontWeight:500,fontSize:"0.75rem"}})}var Bf=y(C(),1),ase={alignItems:"center",color:"text.disabled",fontSize:"0.875rem",mb:2},lse={fontWeight:500,fontSize:"0.75rem"};function Cz({item:e,onStatusChange:t}){let r=nS[e.type];return(0,Bf.jsxs)(ft,{direction:"row",spacing:1,sx:ase,children:[(0,Bf.jsxs)(te,{variant:"body2",color:"text.disabled",children:["#",e.id]}),r&&(0,Bf.jsx)(_t,{label:e.type,size:"small",color:r,sx:lse}),(0,Bf.jsx)(wz,{current:e.status,onStatusChange:t})]})}var Rz=y(C(),1),cse={lineHeight:1.7,"& p":{mt:0}};function Pz({content:e}){return(0,Rz.jsx)(ee,{className:"markdown",sx:cse,dangerouslySetInnerHTML:{__html:$e.parse(e)}})}var Da=y(C(),1);function Ez({checks:e}){return(0,Da.jsxs)(ee,{sx:{mt:1,pt:1},children:[(0,Da.jsx)(bd,{sx:{mb:1}}),(0,Da.jsx)(te,{variant:"overline",sx:{color:"text.disabled",letterSpacing:"0.08em"},children:"Manual Checks"}),(0,Da.jsx)(mn,{disablePadding:!0,sx:{ml:.5,mt:.5},children:e.map(t=>(0,Da.jsxs)(_l,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,Da.jsx)(te,{component:"span",sx:{mr:1,fontSize:"0.875rem",color:"text.secondary"},children:"\u2610"}),(0,Da.jsx)(ee,{component:"span",className:"markdown",sx:{fontSize:"0.875rem",color:"text.secondary"},dangerouslySetInnerHTML:{__html:$e.parseInline(t)}})]},t))})]})}var Az=y(I(),1);var kz=y(I(),1),Mn=y(C(),1);function Mz({phaseName:e,onConfirm:t,onCancel:r}){let[o,i]=(0,kz.useState)("");return(0,Mn.jsxs)(md,{open:!0,onClose:r,maxWidth:"xs",fullWidth:!0,children:[(0,Mn.jsxs)(vd,{children:["Rewind to ",e,"?"]}),(0,Mn.jsxs)(yd,{children:[(0,Mn.jsx)(te,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"This will mark all later phases as incomplete."}),(0,Mn.jsx)(vn,{fullWidth:!0,multiline:!0,rows:3,size:"small",placeholder:"Reason for rewinding...",value:o,onChange:s=>i(s.target.value)})]}),(0,Mn.jsxs)(gd,{children:[(0,Mn.jsx)(dt,{onClick:r,children:"Cancel"}),(0,Mn.jsx)(dt,{variant:"contained",color:"warning",disabled:o.trim().length===0,onClick:()=>t(o.trim()),children:"Rewind"})]})]})}var Hu=y(C(),1);function Oz({itemId:e,phaseNumber:t,phaseName:r,onRewound:o}){let i=xr(),[s,n]=(0,Az.useState)(!1);return(0,Hu.jsxs)(Hu.Fragment,{children:[(0,Hu.jsx)(dt,{size:"small",color:"warning",variant:"outlined",onClick:()=>n(!0),sx:{ml:"auto",textTransform:"none",fontSize:"0.75rem"},children:"Rewind"}),s&&(0,Hu.jsx)(Mz,{phaseName:r,onConfirm:async a=>{await F6(e,t,a,i),await o()},onCancel:()=>n(!1)})]})}var Nf=y(C(),1),use={done:{label:"Done",color:"success"},current:{label:"In Progress",color:"info"},upcoming:{label:"Upcoming",color:"default"}},pse={alignItems:"center",mb:1},dse={fontWeight:500},fse={fontWeight:500,fontSize:"0.75rem"};function Lz({phase:e,index:t,status:r,itemId:o,onRewind:i}){let s=use[r],n=r==="done"&&o!==void 0&&i;return(0,Nf.jsxs)(ft,{direction:"row",spacing:1,sx:pse,children:[(0,Nf.jsxs)(te,{sx:dse,children:["Phase ",t+1,": ",e.name]}),(0,Nf.jsx)(_t,{label:s.label,size:"small",color:s.color,sx:fse}),n&&(0,Nf.jsx)(Oz,{itemId:o,phaseNumber:t+1,phaseName:e.name,onRewound:i})]})}var If=y(C(),1);function Dz({tasks:e,marker:t}){return(0,If.jsx)(mn,{disablePadding:!0,sx:{ml:.5},children:e.map(r=>(0,If.jsxs)(_l,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,If.jsx)(te,{component:"span",sx:{color:"text.secondary",mr:1},children:t}),(0,If.jsx)(ee,{component:"span",className:"markdown",dangerouslySetInnerHTML:{__html:$e.parseInline(r.task)}})]},r.task))})}var zf=y(C(),1),hse={done:{borderColor:"success.light",bgcolor:"success.light"},current:{borderColor:"info.main",bgcolor:"info.light",ring:"info.light"},upcoming:{borderColor:"divider",bgcolor:"background.paper"}};function mse(e){return{p:2,borderColor:e.borderColor,bgcolor:e.bgcolor,...e.ring?{boxShadow:"0 0 0 2px",borderColor:"info.main"}:{}}}var gse={done:"\u2713",current:"\u2022",upcoming:"\u2022"};function Bz({phase:e,index:t,status:r,itemId:o,onRewind:i}){let s=e.manualChecks??[];return(0,zf.jsxs)(st,{variant:"outlined",sx:mse(hse[r]),children:[(0,zf.jsx)(Lz,{phase:e,index:t,status:r,itemId:o,onRewind:i}),(0,zf.jsx)(Dz,{tasks:e.tasks,marker:gse[r]}),s.length>0&&(0,zf.jsx)(Ez,{checks:s})]})}var Ff=y(C(),1);function yse(e,t){if(t===void 0)return"upcoming";let r=e+1;return r<t?"done":r===t?"current":"upcoming"}function Nz({phases:e,currentPhase:t,itemId:r,onRewind:o}){return e.length===0?null:(0,Ff.jsxs)(ee,{sx:{mb:2},children:[(0,Ff.jsx)(te,{variant:"overline",sx:{color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"},children:"Plan"}),(0,Ff.jsx)(ft,{spacing:1.5,children:e.map((i,s)=>(0,Ff.jsx)(Bz,{phase:i,index:s,status:yse(s,t),itemId:r,onRewind:o},i.name))})]})}var Gs=y(C(),1),vse={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function Iz({item:e,onStatusChange:t,onRewind:r,onCommentDeleted:o}){return(0,Gs.jsxs)(st,{variant:"outlined",sx:{p:3},children:[(0,Gs.jsx)(te,{variant:"h5",component:"h2",children:e.name}),(0,Gs.jsx)(Cz,{item:e,onStatusChange:t}),e.description&&(0,Gs.jsxs)(ee,{sx:{mb:2},children:[(0,Gs.jsx)(te,{variant:"overline",sx:vse,children:"Description"}),(0,Gs.jsx)(Pz,{content:e.description})]}),(0,Gs.jsx)(gz,{criteria:e.acceptanceCriteria}),e.plan&&(0,Gs.jsx)(Nz,{phases:e.plan,currentPhase:e.currentPhase,itemId:e.id,onRewind:r}),e.comments&&(0,Gs.jsx)(xz,{comments:e.comments,itemId:e.id,onCommentDeleted:o})]})}var zz=y(C(),1),Fz=fe((0,zz.jsx)("path",{d:"M3 17v2h6v-2zM3 5v2h10V5zm10 16v-2h8v-2h-8v-2h-2v6zM7 9v2H3v2h4v2h2V9zm14 4v-2H11v2zm-6-4h2V7h4V5h-4V3h-2z"}),"Tune");var $z=y(I(),1);var YR=y(C(),1);function Uz({itemId:e}){let{launchAssist:t}=Of(),r=Lr(),o=xr(),[i,s]=(0,$z.useState)(!1);return(0,YR.jsx)(dt,{variant:"outlined",size:"small",startIcon:(0,YR.jsx)(Fz,{}),disabled:i,onClick:a=>{a.stopPropagation(),!i&&(s(!0),t(["refine","--once",String(e)],o),r("/sessions"))},children:"Refine"})}var Ys=y(C(),1),bse={justifyContent:"space-between",alignItems:"center",mb:2};function _se({item:e,onDeleted:t}){return(0,Ys.jsxs)(ft,{direction:"row",sx:bse,children:[(0,Ys.jsx)(X6,{to:"/backlog"}),(0,Ys.jsxs)(ft,{direction:"row",spacing:1,children:[sS(e)&&(0,Ys.jsx)(pS,{itemId:e.id}),(0,Ys.jsx)(Uz,{itemId:e.id}),(0,Ys.jsx)(J6,{itemId:e.id,onDeleted:t})]})]})}function Hz({item:e,onReload:t}){let r=Lr(),o=xr();return(0,Ys.jsxs)(ee,{children:[(0,Ys.jsx)(_se,{item:e,onDeleted:async()=>{await t(),r("/backlog")}}),(0,Ys.jsx)(Iz,{item:e,onStatusChange:async n=>{await hS(e.id,n,o),await t()},onRewind:t,onCommentDeleted:t})]})}var wS=y(C(),1),Sse={display:"flex",justifyContent:"center",py:6};function Wz({onReload:e}){let{id:t}=gR(),r=Number(t),{item:o,loading:i,reload:s}=Y6(r),n=(0,jz.useCallback)(async()=>{await Promise.all([s(),e()])},[s,e]);return i?(0,wS.jsx)(ee,{sx:Sse,children:(0,wS.jsx)(Xt,{})}):o?(0,wS.jsx)(Hz,{item:o,onReload:n}):null}var ju=y(C(),1);function Vz({items:e,loading:t,socket:r,onReload:o}){return(0,ju.jsxs)(Du,{children:[(0,ju.jsx)(li,{index:!0,element:(0,ju.jsx)(G6,{items:e,loading:t,socket:r,onReload:o})}),(0,ju.jsx)(li,{path:"items/:id",element:(0,ju.jsx)(Wz,{onReload:o})})]})}var Xs=y(I(),1);var qz=new Map;function Kz(e,t){return JSON.stringify([e??null,t])}var ey={get(e,t){return qz.get(Kz(e,t))},set(e,t,r){qz.set(Kz(e,t),r)}};function Gz(e,t){return e===t?!0:e.length!==t.length?!1:e.every((r,o)=>{let i=t[o];return r.id===i.id&&r.type===i.type&&r.name===i.name&&r.status===i.status&&r.starred===i.starred})}async function Yz(e,t){return(await(await fetch(Di("/api/backlog/exists",e),{signal:t})).json()).exists}async function Xz(e,t,r){let o=await Yz(e,r),i=o?await Ql({cwd:e,signal:r,showCompleted:t}):[];return r.aborted||ey.set(e,t,i),{found:o,items:i}}function Zz(e,t,r,o){(async()=>{try{let{found:i,items:s}=await Xz(e,t,r);r.aborted||o(i,s)}catch{}})()}var xse=5e3;function Qz(e,t,r){let o=new AbortController,i=()=>Zz(e,t,o.signal,r);i();let s=setInterval(i,xse);return()=>{o.abort(),clearInterval(s)}}function Jz(){let e=xr(),[t]=Mf(),r=ey.get(e,t),o=r??[],i=r===void 0,[s,n]=(0,Xs.useState)(o),[a,l]=(0,Xs.useState)(i),[c,u]=(0,Xs.useState)(!0),[p,f]=(0,Xs.useState)(e),[d,h]=(0,Xs.useState)(t);(e!==p||t!==d)&&(f(e),h(t),n(o),l(i),u(!0));let m=(0,Xs.useCallback)(async()=>{let g=await Ql({cwd:e,showCompleted:t});n(g),ey.set(e,t,g),l(!1)},[e,t]);(0,Xs.useEffect)(()=>(u(!0),Qz(e,t,(g,b)=>{u(g),n(v=>Gz(v,b)?v:b),l(!1)})),[e,t]);let S=(0,Xs.useCallback)(async()=>{await N6(e),u(!0),l(!0),await m()},[e,m]);return{items:s,loading:a,exists:c,reload:m,initialize:S}}var ty=y(C(),1);function e8({socket:e}){let{items:t,loading:r,exists:o,reload:i,initialize:s}=Jz();return o?(0,ty.jsx)(Du,{children:(0,ty.jsx)(li,{path:"/*",element:(0,ty.jsx)(Vz,{items:t,loading:r,socket:e,onReload:i})})}):(0,ty.jsx)(_6,{onInit:s})}var t8=["B","KB","MB","GB","TB"];function r8(e){if(e<1024)return`${e} B`;let t=e,r=0;for(;t>=1024&&r<t8.length-1;)t/=1024,r++;return`${t.toFixed(1)} ${t8[r]}`}var Ba=y(C(),1);function Tse(e){return e.split(/[/\\]/).pop()??e}function o8({backup:e}){return(0,Ba.jsxs)(la,{children:[(0,Ba.jsx)(pr,{children:new Date(e.createdAt).toLocaleString()}),(0,Ba.jsx)(pr,{sx:{fontFamily:"monospace",wordBreak:"break-all"},children:(0,Ba.jsx)(yr,{title:e.filePath,children:(0,Ba.jsx)("span",{children:Tse(e.filePath)})})}),(0,Ba.jsx)(pr,{align:"right",children:r8(e.sizeBytes)}),(0,Ba.jsx)(pr,{align:"right",children:e.durationMs==null?"\u2014":`${(e.durationMs/1e3).toFixed(1)}s`})]})}var gs=y(C(),1);function i8({backups:e}){return(0,gs.jsx)(Um,{component:st,children:(0,gs.jsxs)(zm,{size:"small",children:[(0,gs.jsx)(Hm,{children:(0,gs.jsxs)(la,{children:[(0,gs.jsx)(pr,{children:"Time"}),(0,gs.jsx)(pr,{children:"File"}),(0,gs.jsx)(pr,{align:"right",children:"Size"}),(0,gs.jsx)(pr,{align:"right",children:"Duration"})]})}),(0,gs.jsx)(Fm,{children:e.map(t=>(0,gs.jsx)(o8,{backup:t},t.id))})]})})}var ry=y(I(),1),Wu=y(C(),1),CS=e=>{let{title:t,emptyMessage:r,fetchRows:o,children:i}=e,[s,n]=(0,ry.useState)([]),[a,l]=(0,ry.useState)(!0);return(0,ry.useEffect)(()=>{o().then(n).finally(()=>l(!1))},[o]),a?(0,Wu.jsx)(ee,{sx:{display:"flex",justifyContent:"center",py:6},children:(0,Wu.jsx)(Xt,{})}):(0,Wu.jsxs)(vl,{maxWidth:"md",sx:{py:3,px:2},children:[(0,Wu.jsx)(te,{variant:"h6",sx:{mb:2},children:t}),s.length===0?(0,Wu.jsx)(te,{color:"text.secondary",align:"center",sx:{py:6},children:r}):i(s)]})};var XR=y(C(),1);async function wse(){return(await fetch("/api/backups/list")).json()}function s8(){return(0,XR.jsx)(CS,{title:"Backups",emptyMessage:"No backups recorded yet.",fetchRows:wse,children:e=>(0,XR.jsx)(i8,{backups:e})})}var oy=y(I(),1);function n8(e){let t=Math.floor((Date.now()-new Date(e).getTime())/1e3);if(t<60)return"just now";let r=Math.floor(t/60);if(r<60)return`${r}m ago`;let o=Math.floor(r/60);return o<24?`${o}h ago`:`${Math.floor(o/24)}d ago`}var Na=y(C(),1),Cse={display:"block",bgcolor:"background.paper",borderRadius:2,p:2.5,transition:"background-color 0.15s","&:hover":{bgcolor:"action.hover"}},Pse={width:16,height:16};function a8({item:e}){return(0,Na.jsxs)(au,{href:e.link,target:"_blank",rel:"noopener noreferrer",underline:"none",color:"inherit",sx:Cse,children:[(0,Na.jsxs)(ee,{sx:{display:"flex",alignItems:"center",gap:1,mb:.75},children:[(0,Na.jsx)(NT,{src:`${e.feedOrigin}/favicon.ico`,variant:"rounded",sx:Pse,children:" "}),(0,Na.jsx)(_t,{label:e.feedTitle,size:"small"}),(0,Na.jsx)(te,{variant:"body2",color:"text.secondary",children:n8(e.pubDate)})]}),(0,Na.jsx)(te,{variant:"h6",sx:{fontWeight:500,lineHeight:1.3},children:e.title}),e.excerpt&&(0,Na.jsx)(te,{variant:"body2",color:"text.secondary",sx:{mt:.75},children:e.excerpt})]})}function Rse(e){let t=new Date(e),r=new Date;return t.toLocaleDateString("en-US",{weekday:"long",month:"short",day:"numeric",year:t.getFullYear()!==r.getFullYear()?"numeric":void 0})}function Ese(e){return new Date(e).toISOString().slice(0,10)}function l8(e){let t=new Map;for(let r of e){let o=Ese(r.pubDate),i=t.get(o);i?i.items.push(r):t.set(o,{label:Rse(r.pubDate),items:[r]})}return[...t.values()]}var Zs=y(C(),1);async function kse(){return(await fetch("/api/news/items")).json()}function c8(){let[e,t]=(0,oy.useState)([]),[r,o]=(0,oy.useState)(!0);return(0,oy.useEffect)(()=>{kse().then(i=>t(l8(i))).finally(()=>o(!1))},[]),r?(0,Zs.jsx)(ee,{sx:{display:"flex",justifyContent:"center",py:6},children:(0,Zs.jsx)(Xt,{})}):e.length===0?(0,Zs.jsx)(vl,{maxWidth:"md",sx:{py:3,px:2},children:(0,Zs.jsx)(te,{color:"text.secondary",align:"center",sx:{py:6},children:"No news items."})}):(0,Zs.jsx)(vl,{maxWidth:"md",sx:{py:3,px:2},children:e.map(i=>(0,Zs.jsxs)(ee,{sx:{mb:4},children:[(0,Zs.jsx)(te,{variant:"overline",color:"text.secondary",sx:{display:"block",mb:1,px:.5},children:i.label}),(0,Zs.jsx)(ft,{spacing:1,children:i.items.map(s=>(0,Zs.jsx)(a8,{item:s},`${s.link}-${s.pubDate}`))})]},i.label))})}var Ox=y(I(),1);var ay=y(I(),1);var NS=y(I(),1);function PS(e){if(e.activity?.kind==="backlog")return"next";switch(e.commandType){case"assist":{let t=e.assistArgs?.[0];return t==="draft"||t==="bug"||t==="next"||t==="refine"?t:"prompt"}case"run":return"run";default:return"prompt"}}var Qs=y(C(),1),RS={height:18,fontSize:"0.65rem"};function u8({session:e}){let{activity:t}=e,r=t?.kind==="backlog",o=r&&t.phase===t.totalPhases;return r?(0,Qs.jsxs)(Qs.Fragment,{children:[(0,Qs.jsx)(_t,{label:`#${t.itemId}`,size:"small",sx:RS,clickable:!0,component:hs,to:`/backlog/items/${t.itemId}`,onClick:i=>i.stopPropagation()}),(0,Qs.jsx)(_t,{label:`${t.phase}/${t.totalPhases}`,size:"small",color:o?"primary":"default",sx:RS})]}):(0,Qs.jsxs)(Qs.Fragment,{children:[(0,Qs.jsx)(_t,{label:PS(e),size:"small",color:"primary",variant:"outlined",sx:RS}),t?.itemId!=null&&(0,Qs.jsx)(_t,{label:`#${t.itemId}`,size:"small",sx:RS,clickable:!0,component:hs,to:`/backlog/items/${t.itemId}`,onClick:i=>i.stopPropagation()})]})}function $f(e){return!!e&&/^[A-Za-z]:[\\/]/.test(e)}function ES(e){if(!e)return"";let t=e.split(/[/\\]/).filter(Boolean);return t[t.length-1]??""}var ZR=y(C(),1);function p8(e){return(0,ZR.jsx)(ll,{viewBox:"0 0 24 24",...e,children:(0,ZR.jsx)("path",{d:"M0 3.449 9.75 2.1v9.451H0m10.949-9.602L24 0v11.4H10.949M0 12.6h9.75v9.451L0 20.699m10.949-8.099H24V24l-12.9-1.801"})})}var QR=y(C(),1);function ec(){return(0,QR.jsx)(yr,{title:"Windows",children:(0,QR.jsx)(p8,{sx:{fontSize:13,color:"info.main"}})})}var tc=y(C(),1),Mse={height:18,fontSize:"0.65rem"};function d8({session:e}){let t=ES(e.cwd);return(0,tc.jsxs)(tc.Fragment,{children:[t&&(0,tc.jsx)(_t,{label:t,size:"small",sx:Mse}),$f(e.cwd)&&(0,tc.jsx)(ec,{}),(0,tc.jsx)(u8,{session:e})]})}var f8=y(C(),1),h8=fe((0,f8.jsx)("path",{d:"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"}),"Check");var eE=y(I(),1);var JR=y(C(),1);function Uf({error:e,onClose:t}){return(0,JR.jsx)(gn,{open:e!==null,autoHideDuration:8e3,onClose:t,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,JR.jsx)(fn,{severity:"error",variant:"filled",onClose:t,children:e})})}var Ia=y(C(),1);function m8({target:e,cwd:t,onDismiss:r}){let{itemId:o,phase:i,totalPhases:s}=e,[n,a]=(0,eE.useState)(!1),[l,c]=(0,eE.useState)(null),u=async()=>{try{await hS(o,"done",t),a(!1),r()}catch{c(`Failed to mark item #${o} as done`)}};return(0,Ia.jsxs)(Ia.Fragment,{children:[(0,Ia.jsx)(Ct,{size:"small",onClick:p=>{p.stopPropagation(),a(!0)},title:"Mark done",sx:{color:"text.disabled","&:hover":{color:"text.primary"}},children:(0,Ia.jsx)(h8,{sx:{fontSize:16}})}),n&&(0,Ia.jsx)(ms,{title:`Mark #${o} done`,message:`${i??0} of ${s??0} phases completed. Mark this backlog item as done and end its session?`,confirmLabel:"Mark done",onConfirm:u,onCancel:()=>a(!1)}),(0,Ia.jsx)(Uf,{error:l,onClose:()=>c(null)})]})}var g8=y(C(),1),y8=fe((0,g8.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");var v8=y(I(),1);var rc=y(C(),1);function b8({status:e,onDismiss:t}){let[r,o]=(0,v8.useState)(!1),i=e==="done";return(0,rc.jsxs)(rc.Fragment,{children:[(0,rc.jsx)(Ct,{size:"small",onClick:s=>{s.stopPropagation(),i?t():o(!0)},title:"Dismiss",sx:{color:"text.disabled","&:hover":{color:"text.primary"}},children:(0,rc.jsx)(y8,{sx:{fontSize:16}})}),r&&(0,rc.jsx)(ms,{title:"End session",message:"This will stop the running session and kill its process. Are you sure?",confirmLabel:"End session",onConfirm:()=>{o(!1),t()},onCancel:()=>o(!1)})]})}var _8=y(C(),1),S8=fe((0,_8.jsx)("path",{d:"M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8"}),"Replay");var tE=y(C(),1);function x8({onRetry:e}){return(0,tE.jsx)(Ct,{size:"small",onClick:t=>{t.stopPropagation(),e()},title:"Retry",sx:{color:"text.disabled","&:hover":{color:"text.primary"}},children:(0,tE.jsx)(S8,{sx:{fontSize:14}})})}var za=y(I(),1);function Vu(e){let t=e.activity?.itemId;if(!(!e.cwd||e.activity?.kind!=="backlog"||t==null))return{cwd:e.cwd,itemId:t}}function iy(e,t){return`${e}::${t}`}function T8(e){let t=new Set;for(let r of e){let o=Vu(r);o&&t.add(o.cwd)}return[...t].sort()}async function Ase(e){try{return(await Ql({cwd:e,showCompleted:!0})).filter(r=>r.starred).map(r=>iy(e,r.id))}catch{return[]}}async function w8(e){let t=await Promise.all(e.map(Ase));return new Set(t.flat())}var kS=y(I(),1);function Ose(e,t,r){let o=new Set(e);return r?o.add(t):o.delete(t),o}function C8(e,t){let r=Vu(t);return r?e.has(iy(r.cwd,r.itemId)):!1}function P8(e,t){let r=Vu(t);if(!r)return;let o=iy(r.cwd,r.itemId);e(i=>{let s=!i.has(o);return mS(r.itemId,s,r.cwd),Ose(i,o,s)})}function Lse(e,t){let r=!1,o=e?e.split("|"):[];return w8(o).then(i=>{r||t(i)}),()=>{r=!0}}function R8(e){let[t,r]=(0,kS.useState)(new Set);return(0,kS.useEffect)(()=>Lse(e,r),[e]),[t,r]}var M8=y(C(),1),E8=(0,za.createContext)(null);function k8({sessions:e,children:t}){let r=T8(e).join("|"),[o,i]=R8(r),s=(0,za.useCallback)(l=>C8(o,l),[o]),n=(0,za.useCallback)(l=>P8(i,l),[i]),a=(0,za.useMemo)(()=>({isStarred:s,toggleStar:n}),[s,n]);return(0,M8.jsx)(E8.Provider,{value:a,children:t})}function MS(){let e=(0,za.useContext)(E8);if(!e)throw new Error("useStarredSessions must be used within a StarredSessionsProvider");return e}var AS=y(C(),1);function A8({session:e}){let{isStarred:t,toggleStar:r}=MS(),o=t(e);return(0,AS.jsx)(Ct,{size:"small",onClick:i=>{i.stopPropagation(),r(e)},title:o?"Unstar":"Star","aria-label":o?"Unstar":"Star","aria-pressed":o,sx:{color:o?"warning.main":"text.disabled","&:hover":{color:o?"warning.main":"text.primary"}},children:o?(0,AS.jsx)(dS,{sx:{fontSize:16}}):(0,AS.jsx)(fS,{sx:{fontSize:16}})})}var Fa=y(C(),1);function O8({session:e,onRetry:t,onDismiss:r}){let{status:o}=e,i=cS(e),s=Vu(e)!==void 0;return(0,Fa.jsxs)(ee,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,Fa.jsx)(d8,{session:e}),(0,Fa.jsx)(ee,{sx:{flex:1}}),o==="done"&&t&&(0,Fa.jsx)(x8,{onRetry:t}),s&&(0,Fa.jsx)(A8,{session:e}),i&&(0,Fa.jsx)(m8,{target:i,cwd:e.cwd,onDismiss:r}),(0,Fa.jsx)(b8,{status:o,onDismiss:r})]})}function L8(e){let{activity:t}=e;if(t?.kind==="backlog")return t.itemName??e.name;if(e.assistArgs?.[0]==="refine"&&t?.itemName)return t.itemName;switch(e.commandType){case"assist":return Dse(e.assistArgs)??e.assistArgs?.[0]??e.name;case"run":return e.runName?`run: ${e.runName}`:e.name;default:return e.name}}function Dse(e){let t=e?.slice(1).filter(r=>!r.startsWith("--"));return t?.[t.length-1]}var Hf=y(C(),1);function OS(e){return{display:"block",width:"100%",textAlign:"left",p:"10px 12px",mb:.5,borderRadius:1.5,bgcolor:e?"action.selected":"background.default",border:1,borderColor:e?"primary.main":"transparent",cursor:e?"default":"pointer",transition:"background 0.15s","&:hover":e?void 0:{bgcolor:"action.hover"}}}function D8({session:e,onRetry:t,onDismiss:r}){let{activity:o,status:i}=e,s=o?.kind==="backlog"&&i!=="done"?o.phaseName:void 0;return(0,Hf.jsxs)(ee,{sx:{display:"flex",flexDirection:"column",gap:.5},children:[(0,Hf.jsx)(O8,{session:e,onRetry:t,onDismiss:r}),(0,Hf.jsx)(te,{variant:"body2",sx:{color:"text.primary",overflowWrap:"anywhere"},children:L8(e)}),s&&(0,Hf.jsx)(te,{variant:"caption",sx:{color:"text.secondary",overflowWrap:"anywhere"},children:s})]})}var $a=y(C(),1),rE={height:18,fontSize:"0.65rem"};function B8({session:e}){let t=ES(e.cwd);return(0,$a.jsxs)($a.Fragment,{children:[t&&(0,$a.jsx)(_t,{label:t,size:"small",sx:rE}),e.origin==="windows"&&(0,$a.jsx)(ec,{}),e.sessionType&&e.sessionType!=="next"&&(0,$a.jsx)(_t,{label:e.sessionType,size:"small",color:"primary",variant:"outlined",sx:rE}),e.itemId!=null&&(0,$a.jsx)(_t,{label:`#${e.itemId}`,size:"small",sx:rE,clickable:!0,component:hs,to:`/backlog/items/${e.itemId}`,onClick:r=>r.stopPropagation()})]})}function N8(e){return e.prompt||e.name}var ys=y(C(),1);function Bse({onResume:e}){return(0,ys.jsx)(Ct,{size:"small",onClick:t=>{t.stopPropagation(),e()},title:"Resume",sx:{color:"text.disabled","&:hover":{color:"text.primary"}},children:(0,ys.jsx)(Yg,{sx:{fontSize:14}})})}function I8({session:e,onView:t,onResume:r}){return(0,ys.jsx)(qt,{onClick:()=>t(e),sx:OS(!1),children:(0,ys.jsxs)(ee,{sx:{display:"flex",flexDirection:"column",gap:.5},children:[(0,ys.jsxs)(ee,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,ys.jsx)(B8,{session:e}),(0,ys.jsx)(ee,{sx:{flex:1}}),(0,ys.jsx)(Bse,{onResume:()=>r(e)})]}),(0,ys.jsx)(te,{variant:"body2",sx:{color:"text.primary",overflowWrap:"anywhere"},children:N8(e)}),(0,ys.jsx)(te,{variant:"caption",color:"text.disabled",sx:{alignSelf:"flex-end"},children:eS(e.timestamp)})]})})}var DS=y(I(),1);var z8=y(C(),1),F8=fe((0,z8.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");var $8=y(C(),1),U8=fe((0,$8.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");var LS=y(C(),1);function H8({label:e,open:t,onClick:r,disabled:o=!1}){return(0,LS.jsx)(dt,{size:"small",variant:"outlined",disabled:o,onClick:r,endIcon:t?(0,LS.jsx)(U8,{}):(0,LS.jsx)(F8,{}),sx:{textTransform:"none",fontSize:11,justifyContent:"space-between",maxWidth:"100%",overflow:"hidden"},fullWidth:!0,children:e})}var BS=y(C(),1),jf={position:"absolute",top:"100%",left:0,right:0,mt:.25,maxHeight:200,overflowY:"auto",zIndex:10};function Wf({label:e,children:t,disabled:r=!1}){let[o,i]=(0,DS.useState)(!1),s=(0,DS.useRef)(null);return(0,BS.jsxs)(st,{component:"fieldset",ref:s,variant:"outlined",sx:{position:"relative",border:"none",m:0,p:0},onBlur:n=>{s.current?.contains(n.relatedTarget)||i(!1)},children:[(0,BS.jsx)(H8,{label:e,open:o,disabled:r,onClick:()=>i(!o)}),o&&t(()=>i(!1))]})}var Vf=y(C(),1);function j8({items:e,selected:t,onToggle:r}){return(0,Vf.jsx)(cu,{dense:!0,sx:jf,children:e.map(o=>(0,Vf.jsxs)(es,{onClick:()=>r(o),dense:!0,children:[(0,Vf.jsx)(zT,{size:"small",checked:t.has(o),sx:{p:0,mr:1}}),(0,Vf.jsx)(lu,{primary:o,slotProps:{primary:{variant:"caption"}}})]},o))})}var oE=y(C(),1);function Nse(e){return e.size===0?"All projects":e.size===1?[...e][0]:`${e.size} projects`}function W8({projects:e,selected:t,onChange:r}){let o=i=>{let s=new Set(t);s.has(i)?s.delete(i):s.add(i),r(s)};return(0,oE.jsx)(Wf,{label:Nse(t),children:()=>(0,oE.jsx)(j8,{items:e,selected:t,onToggle:o})})}function V8(e){let t=new Set;for(let r of e)t.add(r.project);return[...t].sort()}function q8(e,t){return t.size===0?e:e.filter(r=>t.has(r.project))}var An=y(C(),1);function Ise({hasAny:e}){return(0,An.jsx)(te,{variant:"caption",color:"text.disabled",sx:{display:"block",textAlign:"center",p:2},children:e?"No sessions match filter":"No session history"})}function zse({sessions:e,onView:t,onResume:r}){return(0,An.jsxs)(ee,{sx:{flex:1,overflow:"auto",p:1},children:[e.map(o=>(0,An.jsx)(I8,{session:o,onView:t,onResume:r},o.sessionId)),e.length===0&&(0,An.jsx)(Ise,{hasAny:!1})]})}function K8({sessions:e,onView:t,onResume:r}){let[o,i]=(0,NS.useState)(new Set),s=(0,NS.useMemo)(()=>V8(e),[e]),n=q8(e,o);return(0,An.jsxs)(ee,{sx:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden"},children:[s.length>1&&(0,An.jsx)(ee,{sx:{px:1,pt:1},children:(0,An.jsx)(W8,{projects:s,selected:o,onChange:i})}),(0,An.jsx)(zse,{sessions:n,onView:t,onResume:r})]})}function IS(e,t){return!t.has(e.id)&&e.status!=="done"&&e.status!=="error"}var iE=y(C(),1);function zS({label:e,checked:t,onChange:r}){return(0,iE.jsx)(xd,{sx:{m:0,mt:.5},onClick:o=>o.stopPropagation(),control:(0,iE.jsx)(Ld,{size:"small",checked:t,onChange:o=>r(o.target.checked)}),label:e,slotProps:{typography:{variant:"caption",color:"text.secondary"}}})}var Y8=y(C(),1);function G8({label:e="Continue",...t}){return(0,Y8.jsx)(zS,{label:e,...t})}var Z8=y(C(),1);function X8(e){return(0,Z8.jsx)(zS,{label:"Auto-run",...e})}var qu=y(C(),1);function Q8({session:e,onSetAutoRun:t,onSetAutoAdvance:r}){let o=PS(e),i=e.activity,s=i?.kind==="backlog"&&i.phase!==void 0&&i.phase===i.totalPhases;return(0,qu.jsxs)(qu.Fragment,{children:[(o==="draft"||o==="bug"||o==="refine")&&(0,qu.jsx)(X8,{checked:e.autoRun??!1,onChange:t}),i?.kind==="backlog"&&(0,qu.jsx)(G8,{label:s?"Dismiss":"Continue",checked:e.autoAdvance??!0,onChange:r})]})}var eF=y(C(),1);function J8({error:e}){return e?(0,eF.jsx)(te,{variant:"caption",color:"error.main",sx:{display:"block",mt:.5},children:e}):null}var Ku=y(C(),1),Fse={running:"success.main",waiting:"warning.main",done:"info.main",error:"error.main"};function tF({status:e,elapsed:t,restored:r}){return(0,Ku.jsxs)(ee,{sx:{display:"flex",justifyContent:"space-between",mt:.5},children:[(0,Ku.jsxs)(ee,{sx:{display:"flex",gap:1},children:[(0,Ku.jsxs)(te,{variant:"caption",sx:{color:Fse[e]},children:["\u25CF ",e]}),r!==void 0&&(0,Ku.jsx)(te,{variant:"caption",sx:{color:r?"success.main":"warning.main"},children:r?"restored":"not restored"})]}),(0,Ku.jsx)(te,{variant:"caption",color:"text.disabled",children:t})]})}var FS=y(I(),1);function rF(e=0,t=null){let[,r]=(0,FS.useState)(0);(0,FS.useEffect)(()=>{if(t==null)return;let a=setInterval(()=>r(l=>l+1),1e3);return()=>clearInterval(a)},[t]);let o=t==null?e:e+(Date.now()-t),i=Math.floor(o/1e3),s=Math.floor(i/60),n=i%60;return s>=60?`${Math.floor(s/60)}h ${s%60}m`:s>0?`${s}m ${n}s`:`${n}s`}var Ni=y(C(),1);function oF({session:e,active:t,loading:r,onClick:o,onRetry:i,onDismiss:s,onSetAutoRun:n,onSetAutoAdvance:a}){let l=rF(e.runningMs,e.runningSince);return(0,Ni.jsxs)(qt,{onClick:o,sx:OS(t),children:[(0,Ni.jsx)(D8,{session:e,onRetry:i,onDismiss:s}),r?(0,Ni.jsxs)(ee,{sx:{display:"flex",alignItems:"center",gap:1,mt:.5},children:[(0,Ni.jsx)(Xt,{size:12}),(0,Ni.jsx)(te,{variant:"caption",color:"text.disabled",children:"Starting\u2026"})]}):(0,Ni.jsxs)(Ni.Fragment,{children:[(0,Ni.jsx)(tF,{status:e.status,elapsed:l,restored:e.restored}),e.status==="error"&&(0,Ni.jsx)(J8,{error:e.error}),(0,Ni.jsx)(Q8,{session:e,onSetAutoRun:n,onSetAutoAdvance:a})]})]})}var sy=y(C(),1);function iF({sessions:e,activeId:t,initialized:r,onSelect:o,onRetry:i,onDismiss:s,onSetAutoRun:n,onSetAutoAdvance:a}){return(0,sy.jsxs)(ee,{sx:{flex:1,overflow:"auto",p:1},children:[e.map(l=>(0,sy.jsx)(oF,{session:l,active:l.id===t,loading:IS(l,r),onClick:()=>o(l.id),onRetry:(l.commandType==="run"||l.commandType==="assist")&&l.status==="done"?()=>i(l.id):void 0,onDismiss:()=>s(l.id),onSetAutoRun:c=>n(l.id,c),onSetAutoAdvance:c=>a(l.id,c)},l.id)),e.length===0&&(0,sy.jsx)(te,{variant:"caption",color:"text.disabled",sx:{display:"block",textAlign:"center",p:2},children:"No sessions yet"})]})}var ny=y(C(),1),sF={minHeight:36,py:0,fontSize:12};function nF({tab:e,activeCount:t,historyCount:r,onChange:o}){return(0,ny.jsxs)(Vm,{value:e==="active"?0:1,onChange:(s,n)=>o(n===0?"active":"history"),variant:"fullWidth",sx:{borderBottom:1,borderColor:"divider",minHeight:36},children:[(0,ny.jsx)(Tl,{label:`Active ${t}`,sx:sF}),(0,ny.jsx)(Tl,{label:`History ${r}`,sx:sF})]})}var qf=y(C(),1),$se={width:"25%",borderRight:1,borderColor:"divider",display:"flex",flexDirection:"column",bgcolor:"background.paper"};function aF(e){return(0,qf.jsxs)(ee,{sx:$se,children:[(0,qf.jsx)(nF,{tab:e.tab,activeCount:e.sessions.length,historyCount:e.history.length,onChange:e.onTabChange}),e.tab==="active"?(0,qf.jsx)(iF,{sessions:e.sessions,activeId:e.activeId,initialized:e.initialized,onSelect:e.onSelect,onRetry:e.onRetry,onDismiss:e.onDismiss,onSetAutoRun:e.onSetAutoRun,onSetAutoAdvance:e.onSetAutoAdvance}):(0,qf.jsx)(K8,{sessions:e.history,onView:e.onView,onResume:e.onResume})]})}function lF(e,t){return[...e.filter(r=>t(r)),...e.filter(r=>!t(r))]}var uF=y(C(),1);function cF({socket:e,tab:t,onTabChange:r}){let{isStarred:o}=MS(),i=(0,ay.useMemo)(()=>lF(e.sessions,o),[e.sessions,o]),s=(0,ay.useCallback)(a=>{e.resumeSession(a.sessionId,a.cwd,a.name),r("active")},[e.resumeSession,r]),n=(0,ay.useCallback)(a=>{e.viewTranscript(a.sessionId)},[e.viewTranscript]);return(0,uF.jsx)(aF,{sessions:i,history:e.history,activeId:e.activeId,tab:t,onTabChange:r,onSelect:e.selectSession,onView:n,onResume:s,onRetry:e.retrySession,onDismiss:e.dismissSession,onSetAutoRun:e.setAutoRun,onSetAutoAdvance:e.setAutoAdvance,initialized:e.initialized})}var ly=y(C(),1);function pF(){return(0,ly.jsxs)(ee,{sx:{position:"absolute",inset:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:2,bgcolor:"background.default"},children:[(0,ly.jsx)(Xt,{size:28}),(0,ly.jsx)(te,{variant:"body2",color:"text.disabled",children:"Starting session\u2026"})]})}var j7=y(I(),1);var Uy=y(I(),1);var Use=2,Hse=1,dF=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let t=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(e.css.cell.width===0||e.css.cell.height===0)return;let t=this._terminal.options.scrollback===0?0:this._terminal.options.overviewRuler?.width||14,r=window.getComputedStyle(this._terminal.element.parentElement),o=parseInt(r.getPropertyValue("height")),i=Math.max(0,parseInt(r.getPropertyValue("width"))),s=window.getComputedStyle(this._terminal.element),n={top:parseInt(s.getPropertyValue("padding-top")),bottom:parseInt(s.getPropertyValue("padding-bottom")),right:parseInt(s.getPropertyValue("padding-right")),left:parseInt(s.getPropertyValue("padding-left"))},a=n.top+n.bottom,l=n.right+n.left,c=o-a,u=i-l-t;return{cols:Math.max(Use,Math.floor(u/e.css.cell.width)),rows:Math.max(Hse,Math.floor(c/e.css.cell.height))}}};var jse=Object.defineProperty,Wse=Object.getOwnPropertyDescriptor,Vse=(e,t,r,o)=>{for(var i=o>1?void 0:o?Wse(t,r):t,s=e.length-1,n;s>=0;s--)(n=e[s])&&(i=(o?n(t,r,i):n(i))||i);return o&&i&&jse(t,r,i),i},qse=(e,t)=>(r,o)=>t(r,o,e),Kse=class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?fF.isErrorNoTelemetry(e)?new fF(e.message+`
|
|
264
|
+
Please report this to https://github.com/markedjs/marked.`,e){let o="<p>An error occurred:</p><pre>"+En(r.message+"",!0)+"</pre>";return t?Promise.resolve(o):o}if(t)return Promise.reject(r);throw r}}},zu=new Gie;function $e(e,t){return zu.parse(e,t)}$e.options=$e.setOptions=function(e){return zu.setOptions(e),$e.defaults=zu.defaults,sz($e.defaults),$e};$e.getDefaults=FR;$e.defaults=Fu;$e.use=function(...e){return zu.use(...e),$e.defaults=zu.defaults,sz($e.defaults),$e};$e.walkTokens=function(e,t){return zu.walkTokens(e,t)};$e.parseInline=zu.parseInline;$e.Parser=La;$e.parser=La.parse;$e.Renderer=_S;$e.TextRenderer=KR;$e.Lexer=Oa;$e.lexer=Oa.lex;$e.Tokenizer=bS;$e.Hooks=yS;$e.parse=$e;var IKe=$e.options,zKe=$e.setOptions,FKe=$e.use,$Ke=$e.walkTokens,UKe=$e.parseInline;var HKe=La.parse,jKe=Oa.lex;var Jl=y(C(),1);function gz({criteria:e}){return e.length===0?null:(0,Jl.jsxs)(ee,{sx:{mb:2},children:[(0,Jl.jsx)(te,{variant:"overline",sx:{color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"},children:"Acceptance Criteria"}),(0,Jl.jsx)(mn,{disablePadding:!0,children:e.map((t,r)=>(0,Jl.jsxs)(_l,{disableGutters:!0,disablePadding:!0,sx:{py:.5,display:"flex",alignItems:"baseline"},children:[(0,Jl.jsxs)(te,{component:"span",sx:{color:"text.secondary",mr:1},children:[r+1,"."]}),(0,Jl.jsx)(ee,{component:"span",className:"markdown",dangerouslySetInnerHTML:{__html:$e.parseInline(t)}})]},t))})]})}var $u=y(C(),1),Yie={alignItems:"center",fontSize:"0.75rem",color:"text.secondary",mb:.5},Xie={color:"text.disabled"},Zie={fontWeight:500},Qie={summary:"Phase summary",comment:"Comment"};function yz({comment:e}){return(0,$u.jsxs)(ft,{direction:"row",spacing:.5,sx:Yie,children:[e.id!==void 0&&(0,$u.jsxs)(te,{variant:"caption",sx:Xie,children:["#",e.id]}),(0,$u.jsx)(te,{variant:"caption",sx:Zie,children:Qie[e.type]}),e.phase!==void 0&&(0,$u.jsxs)(te,{variant:"caption",children:["\xB7 Phase ",e.phase]}),(0,$u.jsxs)(te,{variant:"caption",children:["\xB7 ",Jie(e.timestamp)]})]})}function Jie(e){return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}var vz=y(C(),1),bz=fe((0,vz.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 GR=y(I(),1);var kn=y(C(),1),ese={mt:-.5,mr:-.5,color:"text.secondary"};function _z({itemId:e,commentId:t,onDeleted:r}){let o=xr(),[i,s]=(0,GR.useState)(!1),[n,a]=(0,GR.useState)(),l=()=>a(void 0);return(0,kn.jsxs)(kn.Fragment,{children:[i&&(0,kn.jsx)(ms,{message:"Are you sure you want to delete this comment?",onConfirm:async()=>{s(!1);try{await z6(e,t,o),await r()}catch(c){a(c instanceof Error?c.message:"Failed to delete comment")}},onCancel:()=>s(!1)}),(0,kn.jsx)(gn,{open:n!==void 0,autoHideDuration:6e3,onClose:l,children:(0,kn.jsx)(fn,{severity:"error",variant:"filled",onClose:l,children:n})}),(0,kn.jsx)(Ct,{"aria-label":"Delete comment",size:"small",sx:ese,onClick:()=>s(!0),children:(0,kn.jsx)(bz,{fontSize:"inherit"})})]})}var Uu=y(C(),1),tse={summary:{bgcolor:"warning.light",borderColor:"warning.dark"},comment:{bgcolor:"action.selected",borderColor:"divider"}},rse={justifyContent:"space-between",alignItems:"flex-start"},ose={color:"text.primary",whiteSpace:"pre-wrap"};function ise(e){return{p:1.5,bgcolor:e.bgcolor,borderColor:e.borderColor}}function Sz({comment:e,itemId:t,onDeleted:r}){return(0,Uu.jsxs)(st,{variant:"outlined",sx:ise(tse[e.type]),children:[(0,Uu.jsxs)(ft,{direction:"row",sx:rse,children:[(0,Uu.jsx)(yz,{comment:e}),e.id!==void 0&&t!==void 0&&r&&(0,Uu.jsx)(_z,{itemId:t,commentId:e.id,onDeleted:r})]}),(0,Uu.jsx)(te,{variant:"body2",sx:ose,children:e.text})]})}var Df=y(C(),1),sse={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function xz({comments:e,itemId:t,onCommentDeleted:r}){return e.length===0?null:(0,Df.jsxs)(ee,{sx:{mb:2},children:[(0,Df.jsx)(te,{variant:"overline",sx:sse,children:"Comments"}),(0,Df.jsx)(ft,{spacing:1,children:e.map((o,i)=>(0,Df.jsx)(Sz,{comment:o,itemId:t,onDeleted:r},`${o.timestamp}-${i}`))})]})}var TS=y(C(),1),Tz={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"}},nse=["todo","in-progress","done","wontdo"];function wz({current:e,onStatusChange:t}){return t?(0,TS.jsx)(Md,{value:e,onChange:r=>t(r.target.value),size:"small",sx:{fontSize:"0.75rem",fontWeight:500,borderRadius:4,bgcolor:Tz[e].bg,color:Tz[e].text,"& .MuiSelect-select":{py:.5,px:1.5},"& .MuiSelect-icon":{color:"inherit"}},children:nse.map(r=>(0,TS.jsx)(es,{value:r,children:r},r))}):(0,TS.jsx)(_t,{label:e,size:"small",color:aS[e],sx:{fontWeight:500,fontSize:"0.75rem"}})}var Bf=y(C(),1),ase={alignItems:"center",color:"text.disabled",fontSize:"0.875rem",mb:2},lse={fontWeight:500,fontSize:"0.75rem"};function Cz({item:e,onStatusChange:t}){let r=nS[e.type];return(0,Bf.jsxs)(ft,{direction:"row",spacing:1,sx:ase,children:[(0,Bf.jsxs)(te,{variant:"body2",color:"text.disabled",children:["#",e.id]}),r&&(0,Bf.jsx)(_t,{label:e.type,size:"small",color:r,sx:lse}),(0,Bf.jsx)(wz,{current:e.status,onStatusChange:t})]})}var Rz=y(C(),1),cse={lineHeight:1.7,"& p":{mt:0}};function Pz({content:e}){return(0,Rz.jsx)(ee,{className:"markdown",sx:cse,dangerouslySetInnerHTML:{__html:$e.parse(e)}})}var Da=y(C(),1);function Ez({checks:e}){return(0,Da.jsxs)(ee,{sx:{mt:1,pt:1},children:[(0,Da.jsx)(bd,{sx:{mb:1}}),(0,Da.jsx)(te,{variant:"overline",sx:{color:"text.disabled",letterSpacing:"0.08em"},children:"Manual Checks"}),(0,Da.jsx)(mn,{disablePadding:!0,sx:{ml:.5,mt:.5},children:e.map(t=>(0,Da.jsxs)(_l,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,Da.jsx)(te,{component:"span",sx:{mr:1,fontSize:"0.875rem",color:"text.secondary"},children:"\u2610"}),(0,Da.jsx)(ee,{component:"span",className:"markdown",sx:{fontSize:"0.875rem",color:"text.secondary"},dangerouslySetInnerHTML:{__html:$e.parseInline(t)}})]},t))})]})}var Az=y(I(),1);var kz=y(I(),1),Mn=y(C(),1);function Mz({phaseName:e,onConfirm:t,onCancel:r}){let[o,i]=(0,kz.useState)("");return(0,Mn.jsxs)(md,{open:!0,onClose:r,maxWidth:"xs",fullWidth:!0,children:[(0,Mn.jsxs)(vd,{children:["Rewind to ",e,"?"]}),(0,Mn.jsxs)(yd,{children:[(0,Mn.jsx)(te,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"This will mark all later phases as incomplete."}),(0,Mn.jsx)(vn,{fullWidth:!0,multiline:!0,rows:3,size:"small",placeholder:"Reason for rewinding...",value:o,onChange:s=>i(s.target.value)})]}),(0,Mn.jsxs)(gd,{children:[(0,Mn.jsx)(dt,{onClick:r,children:"Cancel"}),(0,Mn.jsx)(dt,{variant:"contained",color:"warning",disabled:o.trim().length===0,onClick:()=>t(o.trim()),children:"Rewind"})]})]})}var Hu=y(C(),1);function Oz({itemId:e,phaseNumber:t,phaseName:r,onRewound:o}){let i=xr(),[s,n]=(0,Az.useState)(!1);return(0,Hu.jsxs)(Hu.Fragment,{children:[(0,Hu.jsx)(dt,{size:"small",color:"warning",variant:"outlined",onClick:()=>n(!0),sx:{ml:"auto",textTransform:"none",fontSize:"0.75rem"},children:"Rewind"}),s&&(0,Hu.jsx)(Mz,{phaseName:r,onConfirm:async a=>{await F6(e,t,a,i),await o()},onCancel:()=>n(!1)})]})}var Nf=y(C(),1),use={done:{label:"Done",color:"success"},current:{label:"In Progress",color:"info"},upcoming:{label:"Upcoming",color:"default"}},pse={alignItems:"center",mb:1},dse={fontWeight:500},fse={fontWeight:500,fontSize:"0.75rem"};function Lz({phase:e,index:t,status:r,itemId:o,onRewind:i}){let s=use[r],n=r==="done"&&o!==void 0&&i;return(0,Nf.jsxs)(ft,{direction:"row",spacing:1,sx:pse,children:[(0,Nf.jsxs)(te,{sx:dse,children:["Phase ",t+1,": ",e.name]}),(0,Nf.jsx)(_t,{label:s.label,size:"small",color:s.color,sx:fse}),n&&(0,Nf.jsx)(Oz,{itemId:o,phaseNumber:t+1,phaseName:e.name,onRewound:i})]})}var If=y(C(),1);function Dz({tasks:e,marker:t}){return(0,If.jsx)(mn,{disablePadding:!0,sx:{ml:.5},children:e.map(r=>(0,If.jsxs)(_l,{disableGutters:!0,disablePadding:!0,sx:{py:.25,display:"flex",alignItems:"baseline"},children:[(0,If.jsx)(te,{component:"span",sx:{color:"text.secondary",mr:1},children:t}),(0,If.jsx)(ee,{component:"span",className:"markdown",dangerouslySetInnerHTML:{__html:$e.parseInline(r.task)}})]},r.task))})}var zf=y(C(),1),hse={done:{borderColor:"success.light",bgcolor:"success.light"},current:{borderColor:"info.main",bgcolor:"info.light",ring:"info.light"},upcoming:{borderColor:"divider",bgcolor:"background.paper"}};function mse(e){return{p:2,borderColor:e.borderColor,bgcolor:e.bgcolor,...e.ring?{boxShadow:"0 0 0 2px",borderColor:"info.main"}:{}}}var gse={done:"\u2713",current:"\u2022",upcoming:"\u2022"};function Bz({phase:e,index:t,status:r,itemId:o,onRewind:i}){let s=e.manualChecks??[];return(0,zf.jsxs)(st,{variant:"outlined",sx:mse(hse[r]),children:[(0,zf.jsx)(Lz,{phase:e,index:t,status:r,itemId:o,onRewind:i}),(0,zf.jsx)(Dz,{tasks:e.tasks,marker:gse[r]}),s.length>0&&(0,zf.jsx)(Ez,{checks:s})]})}var Ff=y(C(),1);function yse(e,t){if(t===void 0)return"upcoming";let r=e+1;return r<t?"done":r===t?"current":"upcoming"}function Nz({phases:e,currentPhase:t,itemId:r,onRewind:o}){return e.length===0?null:(0,Ff.jsxs)(ee,{sx:{mb:2},children:[(0,Ff.jsx)(te,{variant:"overline",sx:{color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"},children:"Plan"}),(0,Ff.jsx)(ft,{spacing:1.5,children:e.map((i,s)=>(0,Ff.jsx)(Bz,{phase:i,index:s,status:yse(s,t),itemId:r,onRewind:o},i.name))})]})}var Gs=y(C(),1),vse={color:"text.secondary",mb:1,display:"block",letterSpacing:"0.08em"};function Iz({item:e,onStatusChange:t,onRewind:r,onCommentDeleted:o}){return(0,Gs.jsxs)(st,{variant:"outlined",sx:{p:3},children:[(0,Gs.jsx)(te,{variant:"h5",component:"h2",children:e.name}),(0,Gs.jsx)(Cz,{item:e,onStatusChange:t}),e.description&&(0,Gs.jsxs)(ee,{sx:{mb:2},children:[(0,Gs.jsx)(te,{variant:"overline",sx:vse,children:"Description"}),(0,Gs.jsx)(Pz,{content:e.description})]}),(0,Gs.jsx)(gz,{criteria:e.acceptanceCriteria}),e.plan&&(0,Gs.jsx)(Nz,{phases:e.plan,currentPhase:e.currentPhase,itemId:e.id,onRewind:r}),e.comments&&(0,Gs.jsx)(xz,{comments:e.comments,itemId:e.id,onCommentDeleted:o})]})}var zz=y(C(),1),Fz=fe((0,zz.jsx)("path",{d:"M3 17v2h6v-2zM3 5v2h10V5zm10 16v-2h8v-2h-8v-2h-2v6zM7 9v2H3v2h4v2h2V9zm14 4v-2H11v2zm-6-4h2V7h4V5h-4V3h-2z"}),"Tune");var $z=y(I(),1);var YR=y(C(),1);function Uz({itemId:e}){let{launchAssist:t}=Of(),r=Lr(),o=xr(),[i,s]=(0,$z.useState)(!1);return(0,YR.jsx)(dt,{variant:"outlined",size:"small",startIcon:(0,YR.jsx)(Fz,{}),disabled:i,onClick:a=>{a.stopPropagation(),!i&&(s(!0),t(["refine","--once",String(e)],o),r("/sessions"))},children:"Refine"})}var Ys=y(C(),1),bse={justifyContent:"space-between",alignItems:"center",mb:2};function _se({item:e,onDeleted:t}){return(0,Ys.jsxs)(ft,{direction:"row",sx:bse,children:[(0,Ys.jsx)(X6,{to:"/backlog"}),(0,Ys.jsxs)(ft,{direction:"row",spacing:1,children:[sS(e)&&(0,Ys.jsx)(pS,{itemId:e.id}),(0,Ys.jsx)(Uz,{itemId:e.id}),(0,Ys.jsx)(J6,{itemId:e.id,onDeleted:t})]})]})}function Hz({item:e,onReload:t}){let r=Lr(),o=xr();return(0,Ys.jsxs)(ee,{children:[(0,Ys.jsx)(_se,{item:e,onDeleted:async()=>{await t(),r("/backlog")}}),(0,Ys.jsx)(Iz,{item:e,onStatusChange:async n=>{await hS(e.id,n,o),await t()},onRewind:t,onCommentDeleted:t})]})}var wS=y(C(),1),Sse={display:"flex",justifyContent:"center",py:6};function Wz({onReload:e}){let{id:t}=gR(),r=Number(t),{item:o,loading:i,reload:s}=Y6(r),n=(0,jz.useCallback)(async()=>{await Promise.all([s(),e()])},[s,e]);return i?(0,wS.jsx)(ee,{sx:Sse,children:(0,wS.jsx)(Xt,{})}):o?(0,wS.jsx)(Hz,{item:o,onReload:n}):null}var ju=y(C(),1);function Vz({items:e,loading:t,socket:r,onReload:o}){return(0,ju.jsxs)(Du,{children:[(0,ju.jsx)(li,{index:!0,element:(0,ju.jsx)(G6,{items:e,loading:t,socket:r,onReload:o})}),(0,ju.jsx)(li,{path:"items/:id",element:(0,ju.jsx)(Wz,{onReload:o})})]})}var Xs=y(I(),1);var qz=new Map;function Kz(e,t){return JSON.stringify([e??null,t])}var ey={get(e,t){return qz.get(Kz(e,t))},set(e,t,r){qz.set(Kz(e,t),r)}};function Gz(e,t){return e===t?!0:e.length!==t.length?!1:e.every((r,o)=>{let i=t[o];return r.id===i.id&&r.type===i.type&&r.name===i.name&&r.status===i.status&&r.starred===i.starred})}async function Yz(e,t){return(await(await fetch(Di("/api/backlog/exists",e),{signal:t})).json()).exists}async function Xz(e,t,r){let o=await Yz(e,r),i=o?await Ql({cwd:e,signal:r,showCompleted:t}):[];return r.aborted||ey.set(e,t,i),{found:o,items:i}}function Zz(e,t,r,o){(async()=>{try{let{found:i,items:s}=await Xz(e,t,r);r.aborted||o(i,s)}catch{}})()}var xse=5e3;function Qz(e,t,r){let o=new AbortController,i=()=>Zz(e,t,o.signal,r);i();let s=setInterval(i,xse);return()=>{o.abort(),clearInterval(s)}}function Jz(){let e=xr(),[t]=Mf(),r=ey.get(e,t),o=r??[],i=r===void 0,[s,n]=(0,Xs.useState)(o),[a,l]=(0,Xs.useState)(i),[c,u]=(0,Xs.useState)(!0),[p,f]=(0,Xs.useState)(e),[d,h]=(0,Xs.useState)(t);(e!==p||t!==d)&&(f(e),h(t),n(o),l(i),u(!0));let m=(0,Xs.useCallback)(async()=>{let g=await Ql({cwd:e,showCompleted:t});n(g),ey.set(e,t,g),l(!1)},[e,t]);(0,Xs.useEffect)(()=>(u(!0),Qz(e,t,(g,b)=>{u(g),n(v=>Gz(v,b)?v:b),l(!1)})),[e,t]);let S=(0,Xs.useCallback)(async()=>{await N6(e),u(!0),l(!0),await m()},[e,m]);return{items:s,loading:a,exists:c,reload:m,initialize:S}}var ty=y(C(),1);function e8({socket:e}){let{items:t,loading:r,exists:o,reload:i,initialize:s}=Jz();return o?(0,ty.jsx)(Du,{children:(0,ty.jsx)(li,{path:"/*",element:(0,ty.jsx)(Vz,{items:t,loading:r,socket:e,onReload:i})})}):(0,ty.jsx)(_6,{onInit:s})}var t8=["B","KB","MB","GB","TB"];function r8(e){if(e<1024)return`${e} B`;let t=e,r=0;for(;t>=1024&&r<t8.length-1;)t/=1024,r++;return`${t.toFixed(1)} ${t8[r]}`}var Ba=y(C(),1);function Tse(e){return e.split(/[/\\]/).pop()??e}function o8({backup:e}){return(0,Ba.jsxs)(la,{children:[(0,Ba.jsx)(pr,{children:new Date(e.createdAt).toLocaleString()}),(0,Ba.jsx)(pr,{sx:{fontFamily:"monospace",wordBreak:"break-all"},children:(0,Ba.jsx)(yr,{title:e.filePath,children:(0,Ba.jsx)("span",{children:Tse(e.filePath)})})}),(0,Ba.jsx)(pr,{align:"right",children:r8(e.sizeBytes)}),(0,Ba.jsx)(pr,{align:"right",children:e.durationMs==null?"\u2014":`${(e.durationMs/1e3).toFixed(1)}s`})]})}var gs=y(C(),1);function i8({backups:e}){return(0,gs.jsx)(Um,{component:st,children:(0,gs.jsxs)(zm,{size:"small",children:[(0,gs.jsx)(Hm,{children:(0,gs.jsxs)(la,{children:[(0,gs.jsx)(pr,{children:"Time"}),(0,gs.jsx)(pr,{children:"File"}),(0,gs.jsx)(pr,{align:"right",children:"Size"}),(0,gs.jsx)(pr,{align:"right",children:"Duration"})]})}),(0,gs.jsx)(Fm,{children:e.map(t=>(0,gs.jsx)(o8,{backup:t},t.id))})]})})}var ry=y(I(),1),Wu=y(C(),1),CS=e=>{let{title:t,emptyMessage:r,fetchRows:o,children:i}=e,[s,n]=(0,ry.useState)([]),[a,l]=(0,ry.useState)(!0);return(0,ry.useEffect)(()=>{o().then(n).finally(()=>l(!1))},[o]),a?(0,Wu.jsx)(ee,{sx:{display:"flex",justifyContent:"center",py:6},children:(0,Wu.jsx)(Xt,{})}):(0,Wu.jsxs)(vl,{maxWidth:"md",sx:{py:3,px:2},children:[(0,Wu.jsx)(te,{variant:"h6",sx:{mb:2},children:t}),s.length===0?(0,Wu.jsx)(te,{color:"text.secondary",align:"center",sx:{py:6},children:r}):i(s)]})};var XR=y(C(),1);async function wse(){return(await fetch("/api/backups/list")).json()}function s8(){return(0,XR.jsx)(CS,{title:"Backups",emptyMessage:"No backups recorded yet.",fetchRows:wse,children:e=>(0,XR.jsx)(i8,{backups:e})})}var oy=y(I(),1);function n8(e){let t=Math.floor((Date.now()-new Date(e).getTime())/1e3);if(t<60)return"just now";let r=Math.floor(t/60);if(r<60)return`${r}m ago`;let o=Math.floor(r/60);return o<24?`${o}h ago`:`${Math.floor(o/24)}d ago`}var Na=y(C(),1),Cse={display:"block",bgcolor:"background.paper",borderRadius:2,p:2.5,transition:"background-color 0.15s","&:hover":{bgcolor:"action.hover"}},Pse={width:16,height:16};function a8({item:e}){return(0,Na.jsxs)(au,{href:e.link,target:"_blank",rel:"noopener noreferrer",underline:"none",color:"inherit",sx:Cse,children:[(0,Na.jsxs)(ee,{sx:{display:"flex",alignItems:"center",gap:1,mb:.75},children:[(0,Na.jsx)(NT,{src:`${e.feedOrigin}/favicon.ico`,variant:"rounded",sx:Pse,children:" "}),(0,Na.jsx)(_t,{label:e.feedTitle,size:"small"}),(0,Na.jsx)(te,{variant:"body2",color:"text.secondary",children:n8(e.pubDate)})]}),(0,Na.jsx)(te,{variant:"h6",sx:{fontWeight:500,lineHeight:1.3},children:e.title}),e.excerpt&&(0,Na.jsx)(te,{variant:"body2",color:"text.secondary",sx:{mt:.75},children:e.excerpt})]})}function Rse(e){let t=new Date(e),r=new Date;return t.toLocaleDateString("en-US",{weekday:"long",month:"short",day:"numeric",year:t.getFullYear()!==r.getFullYear()?"numeric":void 0})}function Ese(e){return new Date(e).toISOString().slice(0,10)}function l8(e){let t=new Map;for(let r of e){let o=Ese(r.pubDate),i=t.get(o);i?i.items.push(r):t.set(o,{label:Rse(r.pubDate),items:[r]})}return[...t.values()]}var Zs=y(C(),1);async function kse(){return(await fetch("/api/news/items")).json()}function c8(){let[e,t]=(0,oy.useState)([]),[r,o]=(0,oy.useState)(!0);return(0,oy.useEffect)(()=>{kse().then(i=>t(l8(i))).finally(()=>o(!1))},[]),r?(0,Zs.jsx)(ee,{sx:{display:"flex",justifyContent:"center",py:6},children:(0,Zs.jsx)(Xt,{})}):e.length===0?(0,Zs.jsx)(vl,{maxWidth:"md",sx:{py:3,px:2},children:(0,Zs.jsx)(te,{color:"text.secondary",align:"center",sx:{py:6},children:"No news items."})}):(0,Zs.jsx)(vl,{maxWidth:"md",sx:{py:3,px:2},children:e.map(i=>(0,Zs.jsxs)(ee,{sx:{mb:4},children:[(0,Zs.jsx)(te,{variant:"overline",color:"text.secondary",sx:{display:"block",mb:1,px:.5},children:i.label}),(0,Zs.jsx)(ft,{spacing:1,children:i.items.map(s=>(0,Zs.jsx)(a8,{item:s},`${s.link}-${s.pubDate}`))})]},i.label))})}var Ox=y(I(),1);var ay=y(I(),1);var NS=y(I(),1);function PS(e){if(e.activity?.kind==="backlog")return"next";switch(e.commandType){case"assist":{let t=e.assistArgs?.[0];return t==="draft"||t==="bug"||t==="next"||t==="refine"?t:"prompt"}case"run":return"run";default:return"prompt"}}var Qs=y(C(),1),RS={height:18,fontSize:"0.65rem"};function u8({session:e}){let{activity:t}=e,r=t?.kind==="backlog",o=r&&t.phase===t.totalPhases;return r?(0,Qs.jsxs)(Qs.Fragment,{children:[(0,Qs.jsx)(_t,{label:`#${t.itemId}`,size:"small",sx:RS,clickable:!0,component:hs,to:`/backlog/items/${t.itemId}`,onClick:i=>i.stopPropagation()}),(0,Qs.jsx)(_t,{label:`${t.phase}/${t.totalPhases}`,size:"small",color:o?"primary":"default",sx:RS})]}):(0,Qs.jsxs)(Qs.Fragment,{children:[(0,Qs.jsx)(_t,{label:PS(e),size:"small",color:"primary",variant:"outlined",sx:RS}),t?.itemId!=null&&(0,Qs.jsx)(_t,{label:`#${t.itemId}`,size:"small",sx:RS,clickable:!0,component:hs,to:`/backlog/items/${t.itemId}`,onClick:i=>i.stopPropagation()})]})}function $f(e){return!!e&&/^[A-Za-z]:[\\/]/.test(e)}function ES(e){if(!e)return"";let t=e.split(/[/\\]/).filter(Boolean);return t[t.length-1]??""}var ZR=y(C(),1);function p8(e){return(0,ZR.jsx)(ll,{viewBox:"0 0 24 24",...e,children:(0,ZR.jsx)("path",{d:"M0 3.449 9.75 2.1v9.451H0m10.949-9.602L24 0v11.4H10.949M0 12.6h9.75v9.451L0 20.699m10.949-8.099H24V24l-12.9-1.801"})})}var QR=y(C(),1);function ec(){return(0,QR.jsx)(yr,{title:"Windows",children:(0,QR.jsx)(p8,{sx:{fontSize:13,color:"info.main"}})})}var tc=y(C(),1),Mse={height:18,fontSize:"0.65rem"};function d8({session:e}){let t=ES(e.cwd);return(0,tc.jsxs)(tc.Fragment,{children:[t&&(0,tc.jsx)(_t,{label:t,size:"small",sx:Mse}),$f(e.cwd)&&(0,tc.jsx)(ec,{}),(0,tc.jsx)(u8,{session:e})]})}var f8=y(C(),1),h8=fe((0,f8.jsx)("path",{d:"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"}),"Check");var eE=y(I(),1);var JR=y(C(),1);function Uf({error:e,onClose:t}){return(0,JR.jsx)(gn,{open:e!==null,autoHideDuration:8e3,onClose:t,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,JR.jsx)(fn,{severity:"error",variant:"filled",onClose:t,children:e})})}var Ia=y(C(),1);function m8({target:e,cwd:t,onDismiss:r}){let{itemId:o,phase:i,totalPhases:s}=e,[n,a]=(0,eE.useState)(!1),[l,c]=(0,eE.useState)(null),u=async()=>{try{await hS(o,"done",t),a(!1),r()}catch{c(`Failed to mark item #${o} as done`)}};return(0,Ia.jsxs)(Ia.Fragment,{children:[(0,Ia.jsx)(Ct,{size:"small",onClick:p=>{p.stopPropagation(),a(!0)},title:"Mark done",sx:{color:"text.disabled","&:hover":{color:"text.primary"}},children:(0,Ia.jsx)(h8,{sx:{fontSize:16}})}),n&&(0,Ia.jsx)(ms,{title:`Mark #${o} done`,message:`${i??0} of ${s??0} phases completed. Mark this backlog item as done and end its session?`,confirmLabel:"Mark done",onConfirm:u,onCancel:()=>a(!1)}),(0,Ia.jsx)(Uf,{error:l,onClose:()=>c(null)})]})}var g8=y(C(),1),y8=fe((0,g8.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");var v8=y(I(),1);var rc=y(C(),1);function b8({status:e,onDismiss:t}){let[r,o]=(0,v8.useState)(!1),i=e==="done";return(0,rc.jsxs)(rc.Fragment,{children:[(0,rc.jsx)(Ct,{size:"small",onClick:s=>{s.stopPropagation(),i?t():o(!0)},title:"Dismiss",sx:{color:"text.disabled","&:hover":{color:"text.primary"}},children:(0,rc.jsx)(y8,{sx:{fontSize:16}})}),r&&(0,rc.jsx)(ms,{title:"End session",message:"This will stop the running session and kill its process. Are you sure?",confirmLabel:"End session",onConfirm:()=>{o(!1),t()},onCancel:()=>o(!1)})]})}var _8=y(C(),1),S8=fe((0,_8.jsx)("path",{d:"M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8"}),"Replay");var tE=y(C(),1);function x8({onRetry:e}){return(0,tE.jsx)(Ct,{size:"small",onClick:t=>{t.stopPropagation(),e()},title:"Retry",sx:{color:"text.disabled","&:hover":{color:"text.primary"}},children:(0,tE.jsx)(S8,{sx:{fontSize:14}})})}var za=y(I(),1);function Vu(e){let t=e.activity?.itemId;if(!(!e.cwd||e.activity?.kind!=="backlog"||t==null))return{cwd:e.cwd,itemId:t}}function iy(e,t){return`${e}::${t}`}function T8(e){let t=new Set;for(let r of e){let o=Vu(r);o&&t.add(o.cwd)}return[...t].sort()}async function Ase(e){try{return(await Ql({cwd:e,showCompleted:!0})).filter(r=>r.starred).map(r=>iy(e,r.id))}catch{return[]}}async function w8(e){let t=await Promise.all(e.map(Ase));return new Set(t.flat())}var kS=y(I(),1);function Ose(e,t,r){let o=new Set(e);return r?o.add(t):o.delete(t),o}function C8(e,t){let r=Vu(t);return r?e.has(iy(r.cwd,r.itemId)):!1}function P8(e,t){let r=Vu(t);if(!r)return;let o=iy(r.cwd,r.itemId);e(i=>{let s=!i.has(o);return mS(r.itemId,s,r.cwd),Ose(i,o,s)})}function Lse(e,t){let r=!1,o=e?e.split("|"):[];return w8(o).then(i=>{r||t(i)}),()=>{r=!0}}function R8(e){let[t,r]=(0,kS.useState)(new Set);return(0,kS.useEffect)(()=>Lse(e,r),[e]),[t,r]}var M8=y(C(),1),E8=(0,za.createContext)(null);function k8({sessions:e,children:t}){let r=T8(e).join("|"),[o,i]=R8(r),s=(0,za.useCallback)(l=>C8(o,l),[o]),n=(0,za.useCallback)(l=>P8(i,l),[i]),a=(0,za.useMemo)(()=>({isStarred:s,toggleStar:n}),[s,n]);return(0,M8.jsx)(E8.Provider,{value:a,children:t})}function MS(){let e=(0,za.useContext)(E8);if(!e)throw new Error("useStarredSessions must be used within a StarredSessionsProvider");return e}var AS=y(C(),1);function A8({session:e}){let{isStarred:t,toggleStar:r}=MS(),o=t(e);return(0,AS.jsx)(Ct,{size:"small",onClick:i=>{i.stopPropagation(),r(e)},title:o?"Unstar":"Star","aria-label":o?"Unstar":"Star","aria-pressed":o,sx:{color:o?"warning.main":"text.disabled","&:hover":{color:o?"warning.main":"text.primary"}},children:o?(0,AS.jsx)(dS,{sx:{fontSize:16}}):(0,AS.jsx)(fS,{sx:{fontSize:16}})})}var Fa=y(C(),1);function O8({session:e,onRetry:t,onDismiss:r}){let{status:o}=e,i=cS(e),s=Vu(e)!==void 0;return(0,Fa.jsxs)(ee,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,Fa.jsx)(d8,{session:e}),(0,Fa.jsx)(ee,{sx:{flex:1}}),o==="done"&&t&&(0,Fa.jsx)(x8,{onRetry:t}),s&&(0,Fa.jsx)(A8,{session:e}),i&&(0,Fa.jsx)(m8,{target:i,cwd:e.cwd,onDismiss:r}),(0,Fa.jsx)(b8,{status:o,onDismiss:r})]})}function L8(e){let{activity:t}=e;if(t?.kind==="backlog")return t.itemName??e.name;if(e.assistArgs?.[0]==="refine"&&t?.itemName)return t.itemName;switch(e.commandType){case"assist":return Dse(e.assistArgs)??e.assistArgs?.[0]??e.name;case"run":return e.runName?`run: ${e.runName}`:e.name;default:return e.name}}function Dse(e){let t=e?.slice(1).filter(r=>!r.startsWith("--"));return t?.[t.length-1]}var Hf=y(C(),1);function OS(e){return{display:"block",width:"100%",textAlign:"left",p:"10px 12px",mb:.5,borderRadius:1.5,bgcolor:e?"action.selected":"background.default",border:1,borderColor:e?"primary.main":"transparent",cursor:e?"default":"pointer",transition:"background 0.15s","&:hover":e?void 0:{bgcolor:"action.hover"}}}function D8({session:e,onRetry:t,onDismiss:r}){let{activity:o,status:i}=e,s=o?.kind==="backlog"&&i!=="done"?o.phaseName:void 0;return(0,Hf.jsxs)(ee,{sx:{display:"flex",flexDirection:"column",gap:.5},children:[(0,Hf.jsx)(O8,{session:e,onRetry:t,onDismiss:r}),(0,Hf.jsx)(te,{variant:"body2",sx:{color:"text.primary",overflowWrap:"anywhere",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:5,overflow:"hidden"},children:L8(e)}),s&&(0,Hf.jsx)(te,{variant:"caption",sx:{color:"text.secondary",overflowWrap:"anywhere"},children:s})]})}var $a=y(C(),1),rE={height:18,fontSize:"0.65rem"};function B8({session:e}){let t=ES(e.cwd);return(0,$a.jsxs)($a.Fragment,{children:[t&&(0,$a.jsx)(_t,{label:t,size:"small",sx:rE}),e.origin==="windows"&&(0,$a.jsx)(ec,{}),e.sessionType&&e.sessionType!=="next"&&(0,$a.jsx)(_t,{label:e.sessionType,size:"small",color:"primary",variant:"outlined",sx:rE}),e.itemId!=null&&(0,$a.jsx)(_t,{label:`#${e.itemId}`,size:"small",sx:rE,clickable:!0,component:hs,to:`/backlog/items/${e.itemId}`,onClick:r=>r.stopPropagation()})]})}function N8(e){return e.prompt||e.name}var ys=y(C(),1);function Bse({onResume:e}){return(0,ys.jsx)(Ct,{size:"small",onClick:t=>{t.stopPropagation(),e()},title:"Resume",sx:{color:"text.disabled","&:hover":{color:"text.primary"}},children:(0,ys.jsx)(Yg,{sx:{fontSize:14}})})}function I8({session:e,onView:t,onResume:r}){return(0,ys.jsx)(qt,{onClick:()=>t(e),sx:OS(!1),children:(0,ys.jsxs)(ee,{sx:{display:"flex",flexDirection:"column",gap:.5},children:[(0,ys.jsxs)(ee,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,ys.jsx)(B8,{session:e}),(0,ys.jsx)(ee,{sx:{flex:1}}),(0,ys.jsx)(Bse,{onResume:()=>r(e)})]}),(0,ys.jsx)(te,{variant:"body2",sx:{color:"text.primary",overflowWrap:"anywhere"},children:N8(e)}),(0,ys.jsx)(te,{variant:"caption",color:"text.disabled",sx:{alignSelf:"flex-end"},children:eS(e.timestamp)})]})})}var DS=y(I(),1);var z8=y(C(),1),F8=fe((0,z8.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");var $8=y(C(),1),U8=fe((0,$8.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");var LS=y(C(),1);function H8({label:e,open:t,onClick:r,disabled:o=!1}){return(0,LS.jsx)(dt,{size:"small",variant:"outlined",disabled:o,onClick:r,endIcon:t?(0,LS.jsx)(U8,{}):(0,LS.jsx)(F8,{}),sx:{textTransform:"none",fontSize:11,justifyContent:"space-between",maxWidth:"100%",overflow:"hidden"},fullWidth:!0,children:e})}var BS=y(C(),1),jf={position:"absolute",top:"100%",left:0,right:0,mt:.25,maxHeight:200,overflowY:"auto",zIndex:10};function Wf({label:e,children:t,disabled:r=!1}){let[o,i]=(0,DS.useState)(!1),s=(0,DS.useRef)(null);return(0,BS.jsxs)(st,{component:"fieldset",ref:s,variant:"outlined",sx:{position:"relative",border:"none",m:0,p:0},onBlur:n=>{s.current?.contains(n.relatedTarget)||i(!1)},children:[(0,BS.jsx)(H8,{label:e,open:o,disabled:r,onClick:()=>i(!o)}),o&&t(()=>i(!1))]})}var Vf=y(C(),1);function j8({items:e,selected:t,onToggle:r}){return(0,Vf.jsx)(cu,{dense:!0,sx:jf,children:e.map(o=>(0,Vf.jsxs)(es,{onClick:()=>r(o),dense:!0,children:[(0,Vf.jsx)(zT,{size:"small",checked:t.has(o),sx:{p:0,mr:1}}),(0,Vf.jsx)(lu,{primary:o,slotProps:{primary:{variant:"caption"}}})]},o))})}var oE=y(C(),1);function Nse(e){return e.size===0?"All projects":e.size===1?[...e][0]:`${e.size} projects`}function W8({projects:e,selected:t,onChange:r}){let o=i=>{let s=new Set(t);s.has(i)?s.delete(i):s.add(i),r(s)};return(0,oE.jsx)(Wf,{label:Nse(t),children:()=>(0,oE.jsx)(j8,{items:e,selected:t,onToggle:o})})}function V8(e){let t=new Set;for(let r of e)t.add(r.project);return[...t].sort()}function q8(e,t){return t.size===0?e:e.filter(r=>t.has(r.project))}var An=y(C(),1);function Ise({hasAny:e}){return(0,An.jsx)(te,{variant:"caption",color:"text.disabled",sx:{display:"block",textAlign:"center",p:2},children:e?"No sessions match filter":"No session history"})}function zse({sessions:e,onView:t,onResume:r}){return(0,An.jsxs)(ee,{sx:{flex:1,overflow:"auto",p:1},children:[e.map(o=>(0,An.jsx)(I8,{session:o,onView:t,onResume:r},o.sessionId)),e.length===0&&(0,An.jsx)(Ise,{hasAny:!1})]})}function K8({sessions:e,onView:t,onResume:r}){let[o,i]=(0,NS.useState)(new Set),s=(0,NS.useMemo)(()=>V8(e),[e]),n=q8(e,o);return(0,An.jsxs)(ee,{sx:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden"},children:[s.length>1&&(0,An.jsx)(ee,{sx:{px:1,pt:1},children:(0,An.jsx)(W8,{projects:s,selected:o,onChange:i})}),(0,An.jsx)(zse,{sessions:n,onView:t,onResume:r})]})}function IS(e,t){return!t.has(e.id)&&e.status!=="done"&&e.status!=="error"}var iE=y(C(),1);function zS({label:e,checked:t,onChange:r}){return(0,iE.jsx)(xd,{sx:{m:0,mt:.5},onClick:o=>o.stopPropagation(),control:(0,iE.jsx)(Ld,{size:"small",checked:t,onChange:o=>r(o.target.checked)}),label:e,slotProps:{typography:{variant:"caption",color:"text.secondary"}}})}var Y8=y(C(),1);function G8({label:e="Continue",...t}){return(0,Y8.jsx)(zS,{label:e,...t})}var Z8=y(C(),1);function X8(e){return(0,Z8.jsx)(zS,{label:"Auto-run",...e})}var qu=y(C(),1);function Q8({session:e,onSetAutoRun:t,onSetAutoAdvance:r}){let o=PS(e),i=e.activity,s=i?.kind==="backlog"&&i.phase!==void 0&&i.phase===i.totalPhases;return(0,qu.jsxs)(qu.Fragment,{children:[(o==="draft"||o==="bug"||o==="refine")&&(0,qu.jsx)(X8,{checked:e.autoRun??!1,onChange:t}),i?.kind==="backlog"&&(0,qu.jsx)(G8,{label:s?"Dismiss":"Continue",checked:e.autoAdvance??!0,onChange:r})]})}var eF=y(C(),1);function J8({error:e}){return e?(0,eF.jsx)(te,{variant:"caption",color:"error.main",sx:{display:"block",mt:.5},children:e}):null}var Ku=y(C(),1),Fse={running:"success.main",waiting:"warning.main",done:"info.main",error:"error.main"};function tF({status:e,elapsed:t,restored:r}){return(0,Ku.jsxs)(ee,{sx:{display:"flex",justifyContent:"space-between",mt:.5},children:[(0,Ku.jsxs)(ee,{sx:{display:"flex",gap:1},children:[(0,Ku.jsxs)(te,{variant:"caption",sx:{color:Fse[e]},children:["\u25CF ",e]}),r!==void 0&&(0,Ku.jsx)(te,{variant:"caption",sx:{color:r?"success.main":"warning.main"},children:r?"restored":"not restored"})]}),(0,Ku.jsx)(te,{variant:"caption",color:"text.disabled",children:t})]})}var FS=y(I(),1);function rF(e=0,t=null){let[,r]=(0,FS.useState)(0);(0,FS.useEffect)(()=>{if(t==null)return;let a=setInterval(()=>r(l=>l+1),1e3);return()=>clearInterval(a)},[t]);let o=t==null?e:e+(Date.now()-t),i=Math.floor(o/1e3),s=Math.floor(i/60),n=i%60;return s>=60?`${Math.floor(s/60)}h ${s%60}m`:s>0?`${s}m ${n}s`:`${n}s`}var Ni=y(C(),1);function oF({session:e,active:t,loading:r,onClick:o,onRetry:i,onDismiss:s,onSetAutoRun:n,onSetAutoAdvance:a}){let l=rF(e.runningMs,e.runningSince);return(0,Ni.jsxs)(qt,{onClick:o,sx:OS(t),children:[(0,Ni.jsx)(D8,{session:e,onRetry:i,onDismiss:s}),r?(0,Ni.jsxs)(ee,{sx:{display:"flex",alignItems:"center",gap:1,mt:.5},children:[(0,Ni.jsx)(Xt,{size:12}),(0,Ni.jsx)(te,{variant:"caption",color:"text.disabled",children:"Starting\u2026"})]}):(0,Ni.jsxs)(Ni.Fragment,{children:[(0,Ni.jsx)(tF,{status:e.status,elapsed:l,restored:e.restored}),e.status==="error"&&(0,Ni.jsx)(J8,{error:e.error}),(0,Ni.jsx)(Q8,{session:e,onSetAutoRun:n,onSetAutoAdvance:a})]})]})}var sy=y(C(),1);function iF({sessions:e,activeId:t,initialized:r,onSelect:o,onRetry:i,onDismiss:s,onSetAutoRun:n,onSetAutoAdvance:a}){return(0,sy.jsxs)(ee,{sx:{flex:1,overflow:"auto",p:1},children:[e.map(l=>(0,sy.jsx)(oF,{session:l,active:l.id===t,loading:IS(l,r),onClick:()=>o(l.id),onRetry:(l.commandType==="run"||l.commandType==="assist")&&l.status==="done"?()=>i(l.id):void 0,onDismiss:()=>s(l.id),onSetAutoRun:c=>n(l.id,c),onSetAutoAdvance:c=>a(l.id,c)},l.id)),e.length===0&&(0,sy.jsx)(te,{variant:"caption",color:"text.disabled",sx:{display:"block",textAlign:"center",p:2},children:"No sessions yet"})]})}var ny=y(C(),1),sF={minHeight:36,py:0,fontSize:12};function nF({tab:e,activeCount:t,historyCount:r,onChange:o}){return(0,ny.jsxs)(Vm,{value:e==="active"?0:1,onChange:(s,n)=>o(n===0?"active":"history"),variant:"fullWidth",sx:{borderBottom:1,borderColor:"divider",minHeight:36},children:[(0,ny.jsx)(Tl,{label:`Active ${t}`,sx:sF}),(0,ny.jsx)(Tl,{label:`History ${r}`,sx:sF})]})}var qf=y(C(),1),$se={width:"25%",borderRight:1,borderColor:"divider",display:"flex",flexDirection:"column",bgcolor:"background.paper"};function aF(e){return(0,qf.jsxs)(ee,{sx:$se,children:[(0,qf.jsx)(nF,{tab:e.tab,activeCount:e.sessions.length,historyCount:e.history.length,onChange:e.onTabChange}),e.tab==="active"?(0,qf.jsx)(iF,{sessions:e.sessions,activeId:e.activeId,initialized:e.initialized,onSelect:e.onSelect,onRetry:e.onRetry,onDismiss:e.onDismiss,onSetAutoRun:e.onSetAutoRun,onSetAutoAdvance:e.onSetAutoAdvance}):(0,qf.jsx)(K8,{sessions:e.history,onView:e.onView,onResume:e.onResume})]})}function lF(e,t){return[...e.filter(r=>t(r)),...e.filter(r=>!t(r))]}var uF=y(C(),1);function cF({socket:e,tab:t,onTabChange:r}){let{isStarred:o}=MS(),i=(0,ay.useMemo)(()=>lF(e.sessions,o),[e.sessions,o]),s=(0,ay.useCallback)(a=>{e.resumeSession(a.sessionId,a.cwd,a.name),r("active")},[e.resumeSession,r]),n=(0,ay.useCallback)(a=>{e.viewTranscript(a.sessionId)},[e.viewTranscript]);return(0,uF.jsx)(aF,{sessions:i,history:e.history,activeId:e.activeId,tab:t,onTabChange:r,onSelect:e.selectSession,onView:n,onResume:s,onRetry:e.retrySession,onDismiss:e.dismissSession,onSetAutoRun:e.setAutoRun,onSetAutoAdvance:e.setAutoAdvance,initialized:e.initialized})}var ly=y(C(),1);function pF(){return(0,ly.jsxs)(ee,{sx:{position:"absolute",inset:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:2,bgcolor:"background.default"},children:[(0,ly.jsx)(Xt,{size:28}),(0,ly.jsx)(te,{variant:"body2",color:"text.disabled",children:"Starting session\u2026"})]})}var j7=y(I(),1);var Uy=y(I(),1);var Use=2,Hse=1,dF=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let t=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(e.css.cell.width===0||e.css.cell.height===0)return;let t=this._terminal.options.scrollback===0?0:this._terminal.options.overviewRuler?.width||14,r=window.getComputedStyle(this._terminal.element.parentElement),o=parseInt(r.getPropertyValue("height")),i=Math.max(0,parseInt(r.getPropertyValue("width"))),s=window.getComputedStyle(this._terminal.element),n={top:parseInt(s.getPropertyValue("padding-top")),bottom:parseInt(s.getPropertyValue("padding-bottom")),right:parseInt(s.getPropertyValue("padding-right")),left:parseInt(s.getPropertyValue("padding-left"))},a=n.top+n.bottom,l=n.right+n.left,c=o-a,u=i-l-t;return{cols:Math.max(Use,Math.floor(u/e.css.cell.width)),rows:Math.max(Hse,Math.floor(c/e.css.cell.height))}}};var jse=Object.defineProperty,Wse=Object.getOwnPropertyDescriptor,Vse=(e,t,r,o)=>{for(var i=o>1?void 0:o?Wse(t,r):t,s=e.length-1,n;s>=0;s--)(n=e[s])&&(i=(o?n(t,r,i):n(i))||i);return o&&i&&jse(t,r,i),i},qse=(e,t)=>(r,o)=>t(r,o,e),Kse=class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?fF.isErrorNoTelemetry(e)?new fF(e.message+`
|
|
265
265
|
|
|
266
266
|
`+e.stack):new Error(e.message+`
|
|
267
267
|
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { Command } from "commander";
|
|
|
6
6
|
// package.json
|
|
7
7
|
var package_default = {
|
|
8
8
|
name: "@staff0rd/assist",
|
|
9
|
-
version: "0.318.
|
|
9
|
+
version: "0.318.9",
|
|
10
10
|
type: "module",
|
|
11
11
|
main: "dist/index.js",
|
|
12
12
|
bin: {
|
|
@@ -20481,7 +20481,10 @@ function restoreOne(persisted, spawn12, sessions) {
|
|
|
20481
20481
|
logUnresumable(persisted.name, id2, sessions.get(id2));
|
|
20482
20482
|
} catch (error) {
|
|
20483
20483
|
const reason = logRestoreError(persisted.name, error);
|
|
20484
|
-
|
|
20484
|
+
try {
|
|
20485
|
+
spawn12((id2) => errorSession(id2, persisted, reason));
|
|
20486
|
+
} catch {
|
|
20487
|
+
}
|
|
20485
20488
|
}
|
|
20486
20489
|
}
|
|
20487
20490
|
function logUnresumable(name, id2, session) {
|
|
@@ -20496,11 +20499,35 @@ function logRestoreError(name, error) {
|
|
|
20496
20499
|
return reason;
|
|
20497
20500
|
}
|
|
20498
20501
|
|
|
20502
|
+
// src/commands/sessions/daemon/sessionLimits.ts
|
|
20503
|
+
var MAX_LIVE = 12;
|
|
20504
|
+
var MAX_RESTORE = 10;
|
|
20505
|
+
var sessionLimits = {
|
|
20506
|
+
maxRestore: MAX_RESTORE,
|
|
20507
|
+
/** Allocate the next session id from counter, refusing past the absolute
|
|
20508
|
+
* ceiling regardless of caller (restore, web create, retry) so no trigger
|
|
20509
|
+
* can fan out without bound. The counter advances only when allowed. */
|
|
20510
|
+
nextId(liveCount, counter) {
|
|
20511
|
+
if (liveCount >= MAX_LIVE) {
|
|
20512
|
+
daemonLog(`refusing to spawn: at ceiling of ${MAX_LIVE} live sessions`);
|
|
20513
|
+
throw new Error(`session ceiling of ${MAX_LIVE} reached`);
|
|
20514
|
+
}
|
|
20515
|
+
return String(counter.next++);
|
|
20516
|
+
}
|
|
20517
|
+
};
|
|
20518
|
+
|
|
20499
20519
|
// src/commands/sessions/daemon/restoreAll.ts
|
|
20500
20520
|
function restoreAll(spawn12, sessions) {
|
|
20501
|
-
|
|
20502
|
-
|
|
20503
|
-
|
|
20521
|
+
const persisted = loadPersistedSessions();
|
|
20522
|
+
const toRestore = persisted.slice(0, sessionLimits.maxRestore);
|
|
20523
|
+
const skipped = persisted.length - toRestore.length;
|
|
20524
|
+
if (skipped > 0)
|
|
20525
|
+
daemonLog(
|
|
20526
|
+
`restore capped at ${sessionLimits.maxRestore}; skipping ${skipped} persisted session(s)`
|
|
20527
|
+
);
|
|
20528
|
+
return toRestore.map((persisted2) => {
|
|
20529
|
+
restoreOne(persisted2, spawn12, sessions);
|
|
20530
|
+
return persisted2.name;
|
|
20504
20531
|
});
|
|
20505
20532
|
}
|
|
20506
20533
|
|
|
@@ -21233,7 +21260,7 @@ var SessionManager = class {
|
|
|
21233
21260
|
// why: dispatch calls active.set() on card click; broadcasts include active.toJSON()
|
|
21234
21261
|
active = new ActiveSelection(() => this.notify());
|
|
21235
21262
|
clients = new ClientHub(persistUsagePeak);
|
|
21236
|
-
|
|
21263
|
+
idCounter = { next: 1 };
|
|
21237
21264
|
shuttingDown = false;
|
|
21238
21265
|
// why: dispatch calls windowsProxy.route() to forward windows-origin sessions
|
|
21239
21266
|
windowsProxy = new WindowsProxy(this.clients, () => this.notify());
|
|
@@ -21259,7 +21286,7 @@ var SessionManager = class {
|
|
|
21259
21286
|
watchActivity(session, this.notify);
|
|
21260
21287
|
return session.id;
|
|
21261
21288
|
}
|
|
21262
|
-
spawnWith = (create) => this.add(create(
|
|
21289
|
+
spawnWith = (create) => this.add(create(sessionLimits.nextId(this.sessions.size, this.idCounter)));
|
|
21263
21290
|
spawn(prompt, cwd) {
|
|
21264
21291
|
return this.spawnWith((id2) => createSession(id2, prompt, cwd));
|
|
21265
21292
|
}
|