@oxgeneral/orch 1.0.20 → 1.0.22

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.
@@ -1,22 +0,0 @@
1
- #!/usr/bin/env node
2
- import {b,a as a$2}from'./chunk-3YGXRXS7.js';import {a as a$4}from'./chunk-EWRVHOUA.js';import {a as a$3}from'./chunk-XMKCAUEH.js';import {a}from'./chunk-N4OXN2HW.js';import {c,a as a$1}from'./chunk-HXOMNULD.js';import {f,h,g}from'./chunk-64WUDYEM.js';import {n}from'./chunk-LRYVT4D4.js';import io,{useState,useMemo,useEffect,useRef,useCallback}from'react';import {Box,Text,useInput,useApp,useStdout}from'ink';import {jsxs,jsx,Fragment}from'react/jsx-runtime';var e={amber:"#ffaf00",amberDim:"#af8700",green:"#5faf87",red:"#d75f5f",blue:"#5fafd7",yellow:"#d7af00",cyan:"#5fd7d7",purple:"#af87ff",white:"#eeeeee",silver:"#bcbcbc",gray:"#808080",dim:"#585858",ghost:"#3a3a3a",void:"#262626",errorBg:"#3d1515",warnBg:"#3d2e0a",successBg:"#0f2d1f",infoBg:"#1a1a22",toolBg:"#0f1f2d"},Ro="\u2501",Ve="\u2500",ge="\xB7",Qt="\u25C8",vr="\u2605",pn="\u27F3",Ht="\u25C6",Ao={in_progress:e.green,retrying:e.yellow,review:e.blue,todo:e.dim,done:e.green,failed:e.red,cancelled:e.dim},As=new Map,$s=new Map;function He(t){if(t<=0)return "";let n=As.get(t);return n||(n=Ro.repeat(t),As.set(t,n)),n}function be(t){if(t<=0)return "";let n=$s.get(t);return n||(n=Ve.repeat(t),$s.set(t,n)),n}function rt(t,n){return t.length>n?t.slice(0,n-1)+"\u2026":t}var el=1e4;function _r(t,n=el){if(t)return t.length>n?t.slice(0,n)+`
3
- \u2026[truncated]`:t}var Bs={active:e.green,paused:e.dim,achieved:e.amber,abandoned:e.ghost};var ol=120,$o=0,no=null,Bo=new Set;function rl(){no||(no=setInterval(()=>{$o++;for(let t of Bo)t($o);},ol));}function sl(){no&&Bo.size===0&&(clearInterval(no),no=null);}function Bn(t=true){let[n,o]=useState($o);return useEffect(()=>{if(!t)return;o($o);let r=l=>o(l);return Bo.add(r),rl(),()=>{Bo.delete(r),sl();}},[t]),n}var Es=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];function jt({color:t}){let n=Bn();return jsx(Text,{color:t,children:Es[n%Es.length]})}var oo={in_progress:0,retrying:1,review:2,todo:3,done:4,failed:5,cancelled:6};var cl="\u25CB",Ls="\u2713",Ps="\u2715",dl="\u21BB",ul="\u2500",gl="\u25B6",Pt={green:"#0f2d1f",blue:"#0f1f2d",yellow:"#2d2a0f",red:"#2d0f0f",neutral:"#1a1a22",amber:"#2d1f0a"},ml={in_progress:{icon:gl,label:"RUN",fg:e.green,bg:Pt.green,bold:true,spinner:true},retrying:{icon:dl,label:"RETRY",fg:e.yellow,bg:Pt.yellow,spinner:true},review:{icon:Qt,label:"REVIEW",fg:e.blue,bg:Pt.blue},todo:{icon:cl,label:"TODO",fg:e.dim,bg:Pt.neutral},done:{icon:Ls,label:"DONE",fg:e.green,bg:Pt.green},failed:{icon:Ps,label:"FAIL",fg:e.red,bg:Pt.red,bold:true},cancelled:{icon:ul,label:"OFF",fg:e.dim,bg:Pt.neutral}},fl={1:{color:e.red,label:"!!!"},2:{color:e.yellow,label:"!!"},3:{color:e.dim,label:"!"},4:{color:e.ghost,label:ge}};var hl=18,xl="#2d1f0a",Eo=io.memo(function({task:n,selected:o,width:r,agentNameMap:l,goalMap:f$1}){let x=ml[n.status],T=n.status==="in_progress"||n.status==="retrying",b=fl[n.priority]??{color:e.ghost,label:ge},y,C;if(n.status==="done")y=Ls,C=e.green;else if(n.status==="failed")y=Ps,C=e.red;else if(T){let E=Date.now()-new Date(n.updated_at).getTime();y=f(E),C=e.cyan;}else y="\u2014",C=void 0;let I=o?"\u25B8":" ",$=n.goalId?f$1?.get(n.goalId):void 0,S=!!$,H=10,V=4,F=14,P=S?hl:0,j=7,O=2+H+V+F+P+j,L=r?Math.max(10,r-O):40,N=n.assignee?l?.get(n.assignee)??n.assignee:void 0;return jsxs(Box,{children:[jsxs(Text,{color:o?e.amber:void 0,children:[I," "]}),jsx(Box,{width:H,children:jsx(Text,{backgroundColor:x.bg,color:x.fg,bold:x.bold,children:x.spinner?jsxs(Fragment,{children:[" ",jsx(jt,{color:x.fg})," ",x.label," "]}):jsxs(Fragment,{children:[" ",x.icon," ",x.label," "]})})}),jsx(Box,{width:V,children:jsx(Text,{color:b.color,bold:n.priority<=2,children:b.label})}),jsxs(Box,{width:L,children:[jsx(Text,{wrap:"truncate",bold:o||T,color:o?e.white:T?e.silver:void 0,children:n.title.length>L?n.title.slice(0,L-1)+"\u2026":n.title}),(n.attachments?.length??0)>0&&jsxs(Text,{color:e.dim,children:[" ","\u{1F4CE}",n.attachments.length]})]}),S&&jsx(Box,{width:P,children:jsxs(Text,{backgroundColor:xl,color:e.amberDim,wrap:"truncate",children:[" \u2295 ",rt($.title,13)," "]})}),jsx(Box,{width:F,children:N?jsxs(Text,{backgroundColor:Pt.green,color:e.green,wrap:"truncate",children:[" ",N.length>F-2?N.slice(0,F-3)+"\u2026":N," "]}):jsx(Text,{color:e.ghost,children:"\u2014"})}),jsx(Box,{width:j,justifyContent:"flex-end",children:jsx(Text,{color:C,dimColor:!C,children:y})})]})});var Ns="\u2295";function Ds({goalTitle:t,taskCount:n,doneCount:o,width:r}){let l=n>0?Math.round(o/n*100):0,f=` ${Ns} ${t.toUpperCase()} ${ge} ${n} task${n!==1?"s":""} ${ge} ${l}% done `,x=3,T=Math.max(0,r-x-f.length-4);return jsxs(Box,{paddingX:2,children:[jsx(Text,{color:e.ghost,children:be(x)}),jsx(Text,{backgroundColor:Pt.amber,color:e.amber,bold:true,children:f}),jsx(Text,{color:e.ghost,children:be(T)})]})}function Fs({taskCount:t,width:n}){let o=` ${Ns} UNGROUPED ${ge} ${t} task${t!==1?"s":""} `,r=3,l=Math.max(0,n-r-o.length-4);return jsxs(Box,{paddingX:2,children:[jsx(Text,{color:e.ghost,children:be(r)}),jsx(Text,{backgroundColor:Pt.neutral,color:e.dim,children:o}),jsx(Text,{color:e.ghost,children:be(l)})]})}var Tl="\u2715",Gs="\u25CB",yl="\u25B6",wl="\u2713",En={green:"#0f2d1f",red:"#2d0f0f",neutral:"#1a1a22",amber:"#2d1f0a"},Sl={running:{icon:yl,label:"ACTIVE",fg:e.green,bg:En.green,bold:true,spinner:true},idle:{icon:Gs,label:"IDLE",fg:e.dim,bg:En.neutral},error:{icon:Tl,label:"ERROR",fg:e.red,bg:En.red,bold:true},disabled:{icon:Gs,label:"OFF",fg:e.ghost,bg:En.neutral}},Rr={running:0,idle:1,error:2,disabled:3},zs=io.memo(function({agent:n$1,selected:o,width:r,runningEntry:l,currentTaskTitle:f$1,teamName:x,isLead:T}){let b=Sl[n$1.status],y=n$1.status==="running",C,I;if(y&&l){let N=Date.now()-new Date(l.started_at).getTime();C=f(N),I=e.cyan;}else n$1.stats.total_runs>0?(C=`${n$1.stats.tasks_completed}/${n$1.stats.total_runs}`,I=n$1.stats.tasks_completed>0?e.green:e.dim):(C="\u2014",I=void 0);let $=o?"\u25B8":" ",S=11,H=8,V=x?Math.min(x.length+2,12):0,F=10,P=2+S+H+V+F,j=r?Math.max(8,r-P):20,O=n$1.stats.total_runs>0,L=O?Math.round(n$1.stats.tasks_completed/n$1.stats.total_runs*100):0;return jsxs(Box,{children:[jsxs(Text,{color:o?e.amber:void 0,children:[$," "]}),jsx(Box,{width:S,children:jsx(Text,{backgroundColor:b.bg,color:b.fg,bold:b.bold,children:b.spinner?jsxs(Fragment,{children:[" ",jsx(jt,{color:b.fg})," ",b.label," "]}):jsxs(Fragment,{children:[" ",b.icon," ",b.label," "]})})}),jsx(Box,{width:j,children:jsxs(Text,{wrap:"truncate",bold:o||y,color:o?e.white:y?e.green:e.silver,children:[n$1.autonomous&&jsxs(Text,{color:e.cyan,children:[pn," "]}),T&&jsxs(Text,{color:e.amber,children:[vr," "]}),n$1.name,y&&f$1&&jsxs(Text,{color:e.dim,children:[" ",ge," ",f$1]}),n$1.status==="error"&&n$1.last_error&&jsxs(Text,{color:e.red,children:[" ",ge," ",rt(n[n$1.last_error.kind]?.message??n$1.last_error.message,30)]})]})}),jsx(Box,{width:H,children:jsx(Text,{color:e.dim,children:n$1.adapter})}),x&&jsx(Box,{width:V,children:jsx(Text,{color:e.amber,wrap:"truncate",children:x})}),jsx(Box,{width:F,justifyContent:"flex-end",children:O&&!y?jsxs(Text,{color:L>=80?e.green:L>=50?e.yellow:e.red,children:[C," ",wl]}):jsx(Text,{color:I,dimColor:!I,children:C})})]})});function Vs({teamName:t,memberCount:n,leadName:o,width:r}){let l=`${n} agent${n!==1?"s":""}`,f=o?` ${ge} ${vr} ${o}`:"",x=` ${Qt} ${t.toUpperCase()} ${ge} ${l}${f} `,T=3,b=Math.max(0,r-T-x.length-4);return jsxs(Box,{paddingX:2,children:[jsx(Text,{color:e.ghost,children:be(T)}),jsx(Text,{backgroundColor:En.amber,color:e.amber,bold:true,children:x}),jsx(Text,{color:e.ghost,children:be(b)})]})}var kl="\u25C7";function Hs({memberCount:t,width:n}){let o=`${t} agent${t!==1?"s":""}`,r=` ${kl} UNASSIGNED ${ge} ${o} `,l=3,f=Math.max(0,n-l-r.length-4);return jsxs(Box,{paddingX:2,children:[jsx(Text,{color:e.ghost,children:be(l)}),jsx(Text,{backgroundColor:En.neutral,color:e.dim,children:r}),jsx(Text,{color:e.ghost,children:be(f)})]})}var js="\u2713",Us="\u2715",Il="\u2016",Ml="\u25C9",so={green:"#0f2d1f",amber:"#2d1f0a",neutral:"#1a1a22"},vl={active:{icon:Ml,label:"ACTIVE",fg:e.green,bg:so.green,bold:true},paused:{icon:Il,label:"PAUSED",fg:e.dim,bg:so.neutral},achieved:{icon:js,label:"DONE",fg:e.amber,bg:so.amber,bold:true},abandoned:{icon:Us,label:"DROP",fg:e.ghost,bg:so.neutral}},_l="\u2588",Rl="\u2591",Al=14,Xs=io.memo(function({goal:n,selected:o,width:r,agentNameMap:l,tasksByGoal:f}){let x=vl[n.status],T=o?"\u25B8":" ",b=f?.length??0,y=f?.filter(L=>L.status==="done").length??0,C=b>0,I=11,$=C?Al:0,S=14,H=7,V=2+I+$+S+H,F=r?Math.max(10,r-V):40,P=n.assignee?l?.get(n.assignee)??n.assignee:void 0,j,O;if(n.status==="achieved")j=js,O=e.amber;else if(n.status==="abandoned")j=Us,O=e.ghost;else {let L=Date.now()-new Date(n.created_at).getTime(),N=Math.floor(L/864e5);j=N>0?`${N}d`:"<1d",O=e.dim;}return jsxs(Box,{children:[jsxs(Text,{color:o?e.amber:void 0,children:[T," "]}),jsx(Box,{width:I,children:jsxs(Text,{backgroundColor:x.bg,color:x.fg,bold:x.bold,children:[" ",x.icon," ",x.label," "]})}),jsx(Box,{width:F,children:jsx(Text,{wrap:"truncate",bold:o||n.status==="active",color:o?e.white:n.status==="active"?e.silver:void 0,children:n.title.length>F?n.title.slice(0,F-1)+"\u2026":n.title})}),C&&(()=>{let N=b>0?Math.round(y/b*6):0,E=6-N;return jsxs(Box,{width:$,children:[jsx(Text,{color:e.green,children:_l.repeat(N)}),jsx(Text,{color:e.ghost,children:Rl.repeat(E)}),jsx(Text,{color:e.dim,children:` ${y}/${b}`})]})})(),jsx(Box,{width:S,children:P?jsxs(Text,{backgroundColor:so.green,color:e.green,wrap:"truncate",children:[" ",P.length>S-2?P.slice(0,S-3)+"\u2026":P," "]}):jsx(Text,{color:e.ghost,children:"\u2014"})}),jsx(Box,{width:H,justifyContent:"flex-end",children:jsx(Text,{color:O,dimColor:!O,children:j})})]})});var $l={system:"\u2666",lifecycle:"\u25B6",output:"\u2502",tool:"\u2699",result:"\u2190",error:"\u2715",file:"\u270E",info:"\u2502"};function Pn({label:t,width:n,color:o}){let r=n-4,l=` ${t} `,f=3,x=Math.max(0,r-f-l.length);return jsxs(Text,{color:o??e.ghost,children:[" ",be(f),l,be(x)]})}function qs({task:t,height:n,width:o,taskLogs:r,agentNameMap:l,taskTitleMap:f}){let x=Ao[t.status]??e.dim,T=t.priority<=2?t.priority===1?e.red:e.yellow:void 0,b=24,y=!!t.description?.trim(),C=!!t.proof?.agent_summary,I=(t.proof?.files_changed?.length??0)>0,$=(r?.length??0)>0,S=(t.attachments?.length??0)>0,H=y?t.description.split(`
4
- `):[],V=C?t.proof.agent_summary.split(`
5
- `):[],F=3;S&&(F+=2+t.attachments.length),y?(F+=1,F+=Math.min(H.length,Math.max(1,Math.ceil((n-10)*.3)))):C||(F+=2),C&&(F+=2),I&&(F+=1),$&&(F+=2);let P=Math.max(0,n-F),j=0,O=0;C&&$?(j=Math.max(1,Math.floor(P*.4)),O=Math.max(1,P-j)):C?j=P:$&&(O=P);let L=y?H.slice(0,Math.max(1,Math.ceil((n-10)*.3))):[],N=V.slice(0,j);return jsxs(Box,{flexDirection:"column",paddingX:2,children:[jsxs(Box,{children:[jsxs(Box,{width:b,children:[jsx(Text,{color:e.dim,children:" status "}),jsx(Text,{color:x,children:t.status})]}),jsxs(Box,{children:[jsx(Text,{color:e.dim,children:" assignee "}),jsx(Text,{color:t.assignee?e.green:e.dim,children:t.assignee?l?.get(t.assignee)??t.assignee:"\u2014"})]})]}),jsxs(Box,{children:[jsxs(Box,{width:b,children:[jsx(Text,{color:e.dim,children:" priority "}),jsxs(Text,{color:T,bold:t.priority<=2,children:["P",t.priority]})]}),jsxs(Box,{children:[jsx(Text,{color:e.dim,children:" attempts "}),jsxs(Text,{children:[t.attempts,"/",t.max_attempts]})]})]}),jsxs(Box,{children:[jsxs(Box,{width:b,children:[jsx(Text,{color:e.dim,children:" labels "}),jsx(Text,{color:e.purple,children:t.labels.length>0?t.labels.join(", "):"\u2014"})]}),jsxs(Box,{children:[jsx(Text,{color:e.dim,children:" depends "}),jsx(Text,{dimColor:true,children:t.depends_on.length>0?t.depends_on.map(E=>f?.get(E)??E).join(", "):"\u2014"})]})]}),S&&jsxs(Fragment,{children:[jsx(Text,{children:" "}),jsx(Pn,{label:`attachments (${t.attachments.length})`,width:o,color:e.dim}),t.attachments.map((E,W)=>jsxs(Text,{color:e.cyan,wrap:"truncate",children:[" ",E]},`a${W}`))]}),y&&jsxs(Fragment,{children:[jsx(Text,{children:" "}),L.map((E,W)=>jsxs(Text,{color:e.silver,wrap:"truncate",children:[" ",rt(E,o-8)]},`d${W}`))]}),!y&&!C&&jsxs(Fragment,{children:[jsx(Text,{children:" "}),jsx(Text,{color:e.dim,children:" No description."})]}),C&&jsxs(Fragment,{children:[jsx(Text,{children:" "}),jsx(Pn,{label:"result",width:o,color:e.dim}),N.map((E,W)=>jsxs(Text,{color:e.white,wrap:"truncate",children:[" ",rt(E,o-8)]},`r${W}`))]}),I&&jsxs(Box,{children:[jsx(Text,{color:e.dim,children:" files "}),jsx(Text,{color:e.cyan,children:t.proof.files_changed.length}),jsx(Text,{color:e.dim,children:" changed"}),t.proof.branch&&jsxs(Fragment,{children:[jsxs(Text,{color:e.dim,children:[" ","\xB7"," "]}),jsx(Text,{color:e.cyan,children:t.proof.branch})]})]}),$&&jsxs(Fragment,{children:[jsx(Text,{children:" "}),jsx(Pn,{label:"activity",width:o,color:e.dim}),r.slice(-O).map((E,W)=>{let z=E.msgType??"info",X=$l[z]??"\u2502",_=E.color;z==="tool"?_=e.cyan:z==="file"?_=e.purple:z==="error"?_=e.red:z==="lifecycle"?_=e.green:z==="system"&&(_=e.dim);let le=Math.max(10,o-12),Ee=rt(E.text,le);return jsxs(Box,{children:[jsxs(Text,{color:e.ghost,children:[" ",E.time," "]}),jsxs(Text,{color:z==="error"?e.red:e.dim,children:[X," "]}),jsx(Text,{color:_,bold:z==="lifecycle",children:Ee})]},W)})]})]})}var Oo=[{key:"G",id:"goals",label:"GOALS"},{key:"T",id:"tasks",label:"TASKS"},{key:"A",id:"agents",label:"AGENTS"},{key:"L",id:"logs",label:"ACTIONS"}];var Ks="\u25CF",Ys="\u25CB",Bl="\u2713",El="\u2715",Ol="\u2191",Ll="\u2193",Pl="\u03A3",Nl="\u25B6",Dl="\u21BB",Fl="\u{1F9E0}",Ar=[" ","\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"],Qe={green:"#0f2d1f",blue:"#0f1f2d",yellow:"#2d2a0f",red:"#2d0f0f",neutral:"#1a1a22",amber:"#2d1f0a"};function Gl({active:t}){let n=Bn(t),o=!t||Math.floor(n/10)%2===0;return jsx(Text,{color:o?e.amber:e.amberDim,bold:true,children:Ht})}function Wl({width:t,active:n}){let o=Math.max(4,Math.floor(t*.08)),r=2,l=Bn(n),f=Math.ceil((t+o)/r),x=n?l%(f*2):0;if(!n)return jsx(Box,{paddingX:1,children:jsx(Text,{color:e.ghost,children:He(t)})});let T=x<f?x*r:(f*2-x)*r,b=Math.max(0,T-o),y=Math.min(t,T),C=b,I=Math.max(0,y-b),$=Math.max(0,t-y);return jsxs(Box,{paddingX:1,children:[jsx(Text,{color:e.ghost,children:He(C)}),jsx(Text,{color:e.amber,children:He(I)}),jsx(Text,{color:e.ghost,children:He($)})]})}function zl({data:t,width:n,color:o}){if(t.length===0)return null;let r=t.slice(-n),l=Math.max(...r,1),f=r.map(x=>{let T=Math.round(x/l*(Ar.length-1));return Ar[T]??Ar[0]}).join("");return jsx(Text,{color:o,children:f})}function Vl({tab:t,flashColor:n,onComplete:o,badge:r}){let l=Bn(),f=io.useRef(l),x=io.useRef(false),T=l-f.current,b=2,y=6*b;return io.useEffect(()=>{T>=y&&!x.current&&(x.current=true,o());},[T,o]),Math.floor(T/b)%2===0&&T<y?jsxs(Text,{backgroundColor:n,color:"#0a0a0c",bold:true,children:[" ",t.key," ",t.label,r," "]}):jsxs(Box,{gap:0,children:[jsx(Text,{color:e.ghost,children:t.key}),jsxs(Text,{color:e.dim,children:[" ",t.label.toLowerCase(),r]})]})}function Hl({projectName:t,activeView:n,mode:o,stats:r,uptime:l,width:f,version:x,latestVersion:T,updateInstalled:b,taskBadge:y,flashTab:C,flashColor:I,onFlashComplete:$}){return jsxs(Box,{paddingX:1,justifyContent:"space-between",width:f,children:[jsxs(Box,{gap:0,children:[jsx(Gl,{active:r.running>0}),jsx(Text,{color:e.amber,bold:true,children:" ORCH"}),x&&jsxs(Text,{color:e.ghost,children:[" ",x]}),T&&T!==x&&(b?jsxs(Text,{backgroundColor:Qe.green,color:e.green,bold:true,children:[" v",T," INSTALLED \u2014 RESTART TO APPLY "]}):jsxs(Text,{backgroundColor:Qe.green,color:e.green,bold:true,children:[" UPDATE ",T," "]})),jsxs(Text,{color:e.ghost,children:[" ",ge," "]}),jsx(Text,{color:e.silver,children:t})]}),jsx(Box,{gap:0,children:Oo.map((S,H)=>{let V=n===S.id,F=S.id==="tasks"&&y!=null&&y>0?` (${y})`:"",P=!V&&C===S.id&&I&&$;return jsxs(io.Fragment,{children:[H>0&&jsx(Text,{children:" "}),V?jsxs(Text,{backgroundColor:e.amber,color:"#0a0a0c",bold:true,children:[" ",S.key," ",S.label,F," "]}):P?jsx(Vl,{tab:S,flashColor:I,onComplete:$,badge:F}):jsxs(Box,{gap:0,children:[jsx(Text,{color:e.ghost,children:S.key}),jsxs(Text,{color:e.dim,children:[" ",S.label.toLowerCase(),F]})]})]},S.id)})}),jsxs(Box,{gap:0,children:[o==="watching"?jsxs(Text,{backgroundColor:Qe.green,color:e.green,bold:true,children:[" ",Ks," WATCHING"," "]}):o==="observing"?jsxs(Text,{backgroundColor:Qe.amber,color:e.amber,bold:true,children:[" ",Ks," OBSERVING"," "]}):jsxs(Text,{backgroundColor:Qe.neutral,color:e.dim,children:[" ",Ys," IDLE"," "]}),r.running>0&&jsxs(Fragment,{children:[jsx(Text,{children:" "}),jsxs(Text,{backgroundColor:Qe.green,color:e.green,children:[" ",jsx(jt,{color:e.green})," ",r.running," active"," "]})]}),l&&jsxs(Text,{color:e.ghost,children:[" ",l]})]})]})}function jl({stats:t,tokens:n,width:o,sparklineData:r}){let f=[{icon:Nl,label:"RUN",count:t.running,fg:e.green,bg:Qe.green,bold:true,spinner:true,show:t.running>0},{icon:Dl,label:"RETRY",count:t.retrying,fg:e.yellow,bg:Qe.yellow,show:t.retrying>0},{icon:Qt,label:"REVIEW",count:t.review,fg:e.blue,bg:Qe.blue,show:t.review>0},{icon:Ys,label:"TODO",count:t.todo,fg:e.dim,bg:Qe.neutral,show:t.todo>0},{icon:Bl,label:"DONE",count:t.done,fg:e.green,bg:Qe.green,show:t.done>0},{icon:El,label:"FAIL",count:t.failed,fg:e.red,bg:Qe.red,bold:true,show:t.failed>0},{icon:Ht,label:"TEAMS",count:t.teams,fg:e.amber,bg:Qe.amber,show:t.teams>0}].filter(b=>b.show),x=n.total>0,T=r&&r.length>0?Math.min(16,r.length):0;return jsxs(Box,{paddingX:1,justifyContent:"space-between",width:o,children:[jsxs(Box,{gap:1,children:[f.map(b=>jsx(Text,{backgroundColor:b.bg,color:b.fg,bold:b.bold,children:b.spinner?jsxs(Fragment,{children:[" ",jsx(jt,{color:b.fg})," ",b.count," ",b.label," "]}):jsxs(Fragment,{children:[" ",b.icon," ",b.count," ",b.label," "]})},b.label)),f.length===0&&jsxs(Text,{backgroundColor:Qe.neutral,color:e.dim,children:[" ","NO TASKS"," "]})]}),jsxs(Box,{gap:0,children:[T>0&&r&&jsxs(Fragment,{children:[jsx(zl,{data:r,width:T,color:e.amberDim}),jsx(Text,{children:" "})]}),x&&jsxs(Text,{backgroundColor:Qe.amber,color:e.cyan,children:[" ",Ol,h(n.input)," ",Ll,h(n.output),n.reasoning>0?` ${Fl}${h(n.reasoning)}`:""," ",ge," ",Pl,h(n.total)," "]})]})]})}var Zs=io.memo(function(n){let o=Math.max(10,n.width-2),r=n.stats.running>0;return jsxs(Box,{flexDirection:"column",children:[jsx(Box,{height:1}),jsx(Hl,{projectName:n.projectName,activeView:n.activeView,mode:n.mode,stats:n.stats,uptime:n.uptime,width:n.width,version:n.version,latestVersion:n.latestVersion,updateInstalled:n.updateInstalled,taskBadge:n.taskBadge,flashTab:n.flashTab,flashColor:n.flashColor,onFlashComplete:n.onFlashComplete}),jsx(Box,{height:1}),jsx(jl,{stats:n.stats,tokens:n.tokens,width:n.width,sparklineData:n.sparklineData}),jsx(Wl,{width:o,active:r})]})});var ao="\u0423\u041F\u0420\u0410\u0412\u041B\u0415\u041D\u0418\u0415",Nn="\u041C\u041E\u041D\u0418\u0422\u041E\u0420\u0418\u041D\u0413",Po="\u041D\u0410\u0421\u0422\u0420\u041E\u0419\u041A\u0418",hn={task:{sub:["add","list","show","cancel","retry","assign","approve","reject","delete"],help:"Manage tasks",category:ao},agent:{sub:["add","list","disable","enable","delete","autonomous","shop"],help:"Manage agents",category:ao},team:{sub:["create","list","join","leave","disband","set-lead"],help:"Manage teams",category:ao},goal:{sub:["add","list","show","status","delete"],help:"Manage goals",category:ao},run:{args:"[id]",help:"Run task (or selected)",category:Nn},"run-all":{help:"Run all todo tasks",category:Nn},watch:{help:"Start watch mode (auto-dispatch)",category:Nn},pause:{help:"Pause watch mode",category:Nn},status:{help:"Show orchestrator status",category:Nn},config:{sub:["activity-filter","max-concurrent"],help:"TUI settings",category:Po},help:{help:"List all commands",category:Po},quit:{help:"Exit the TUI",category:Po}};function $r(t){if(!t.startsWith("/"))return null;let n=t.slice(1),o=n.indexOf(" ");if(o===-1){let T=n;if(!T)return null;let b=Object.keys(hn).find(y=>y.startsWith(T)&&y!==T);return b?b.slice(T.length):null}let r=n.slice(0,o),l=hn[r];if(!l?.sub)return null;let f=n.slice(o+1);if(!f)return null;let x=l.sub.find(T=>T.startsWith(f)&&T!==f);return x?x.slice(f.length):null}function Js(t){if(!t.startsWith("/"))return [];let n=t.slice(1),o=n.indexOf(" ");if(o===-1){let T=n.toLowerCase(),b=[];if(!T){let y=[ao,Nn,Po];for(let C of y){b.push({cmd:"",desc:`\u2500\u2500 ${C} \u2500\u2500`});for(let[I,$]of Object.entries(hn))if($.category===C){let S=$.args?` ${$.args}`:"";b.push({cmd:`/${I}${S}`,desc:$.help,subs:$.sub?.join(" \xB7 ")});}}return b}for(let[y,C]of Object.entries(hn))if(y.startsWith(T)){let I=C.args?` ${C.args}`:"";if(b.push({cmd:`/${y}${I}`,desc:C.help,subs:C.sub?.join(" \xB7 ")}),y===T&&C.sub)for(let $ of C.sub)b.push({cmd:`/${y} ${$}`,desc:`${C.help}: ${$}`});}return b}let r=n.slice(0,o),l=hn[r];if(!l?.sub)return [];let f=n.slice(o+1).toLowerCase(),x=[];for(let T of l.sub)(!f||T.startsWith(f))&&x.push({cmd:`/${r} ${T}`,desc:`${l.help}: ${T}`});return x}var No=class{entries=[];cursor=0;push(n){n&&(this.entries[this.entries.length-1]!==n&&(this.entries.push(n),this.entries.length>100&&this.entries.shift()),this.cursor=this.entries.length);}prev(){return this.entries.length===0?null:(this.cursor>0&&this.cursor--,this.entries[this.cursor]??null)}next(){return this.cursor<this.entries.length-1?(this.cursor++,this.entries[this.cursor]??null):(this.cursor=this.entries.length,null)}reset(){this.cursor=this.entries.length;}};var Xl="\u2588",Qs=io.memo(function({mode:n,value:o,completion:r,activeView:l,canRun:f,canNew:x,canApprove:T,canReject:b,canCancel:y,canDelete:C,canUndo:I,canEdit:$,canForceStop:S,canToggleAuto:H,autoActive:V,canPause:F,isPaused:P,canToggleShowAll:j,showAllActive:O,hasDetail:L,itemCount:N,itemLabel:E,width:W,hasSuggestions:z,onboardingCompleted:X}){if(n==="command"){let _=z?" \u2191\u2193 select Tab fill Esc \u2715":" Enter exec \u2191\u2193 history Tab complete Esc \u2715",le=Math.max(4,W-6-_.length-(r?.length??0)-1),Ee=o.length>le?"\u2026"+o.slice(-(le-1)):o;return jsx(Box,{paddingX:2,justifyContent:"space-between",width:W,children:jsxs(Box,{children:[jsx(Text,{color:e.amber,children:"/ "}),jsx(Text,{color:e.white,children:Ee}),r&&jsx(Text,{color:e.ghost,children:r}),jsx(Text,{color:e.amber,children:Xl}),jsx(Text,{color:e.dim,children:_})]})})}return jsxs(Box,{paddingX:2,justifyContent:"space-between",width:W,children:[jsxs(Text,{color:e.dim,children:[jsx(Text,{bold:true,color:e.gray,children:"\u2191\u2193"})," ",jsx(Text,{bold:true,color:e.gray,children:"Tab"}),"/",jsx(Text,{bold:true,color:e.gray,children:"\u2190\u2192"})," ",jsx(Text,{bold:true,color:e.gray,children:"/"})," cmd",x&&jsxs(Fragment,{children:[" ",jsx(Text,{bold:true,color:e.gray,children:"N"})," new"]}),f&&jsxs(Fragment,{children:[" ",jsx(Text,{bold:true,color:e.gray,children:"R"})," run"]}),y&&jsxs(Fragment,{children:[" ",jsx(Text,{bold:true,color:e.amber,children:"C"})," cancel"]}),T&&jsxs(Fragment,{children:[" ",jsx(Text,{bold:true,color:e.green,children:"A"})," approve"]}),b&&jsxs(Fragment,{children:[" ",jsx(Text,{bold:true,color:e.red,children:"X"})," reject"]}),$&&jsxs(Fragment,{children:[" ",jsx(Text,{bold:true,color:e.cyan,children:"E"})," edit"]}),S&&jsxs(Fragment,{children:[" ",jsx(Text,{bold:true,color:e.red,children:"S"})," stop"]}),F&&jsxs(Fragment,{children:[" ",jsx(Text,{bold:true,color:e.amber,children:"P"}),P?" resume":" pause"]}),H&&jsxs(Fragment,{children:[" ",jsx(Text,{bold:true,color:e.cyan,children:"U"}),V?" auto off":" auto on"]}),j&&jsxs(Fragment,{children:[" ",jsx(Text,{bold:true,color:e.gray,children:"S"}),O?" collapse":" show all"]}),C&&!T&&jsxs(Fragment,{children:[" ",jsx(Text,{bold:true,color:e.gray,children:"D"})," delete"]}),I&&jsxs(Fragment,{children:[" ",jsx(Text,{bold:true,color:e.yellow,children:"Z"})," undo"]}),L&&jsxs(Fragment,{children:[" ",jsx(Text,{bold:true,color:e.gray,children:"Esc"})," close"]}),!L&&(l==="tasks"||l==="agents"||l==="goals")&&jsxs(Fragment,{children:[" ",jsx(Text,{bold:true,color:e.gray,children:"Enter"})," detail"]})," ",jsx(Text,{bold:true,color:e.gray,children:"Q"})," quit"," ",jsx(Text,{bold:true,color:X===false?e.amber:e.gray,children:"?"}),jsx(Text,{color:X===false?e.amber:void 0,children:" help"})]}),N>0&&jsxs(Text,{color:e.dim,children:[N," ",E]})]})});var Do="\u2588",Er=process.platform==="darwin"?"\u2318":"Ctrl";function Yl(t,n){if(n<=0||t.length<=n)return [t];let o=[];for(let r=0;r<t.length;r+=n)o.push(t.slice(r,r+n));return o}function Fo(t,n){if(n<=0)return 0;let o=n-1;for(;o>0&&t[o-1]===" ";)o--;for(;o>0&&t[o-1]!==" ";)o--;return o}function ni(t,n){if(n>=t.length)return t.length;let o=n;for(;o<t.length&&t[o]!==" ";)o++;for(;o<t.length&&t[o]===" ";)o++;return o}function oi({title:t,steps:n,onComplete:o,onCancel:r,width:l,height:f,onPasteImage:x,footerExtra:T,onSuggestionSelected:b}){let [y,C]=useState(0),[I,$]=useState({}),[S,H]=useState(()=>{let R=n.find(M=>!M.skip?.({}));return R?.type==="text"&&R.defaultValue?R.defaultValue:""}),[V,F]=useState(()=>{let R=n.find(M=>!M.skip?.({}));return R?.type==="text"&&R.defaultValue?R.defaultValue.length:0}),[P,j]=useState(()=>{let R=n.find(M=>!M.skip?.({}));return R?.type==="textarea"&&R.defaultValue?R.defaultValue.split(`
6
- `):[""]}),[O,L]=useState(0),[N,E]=useState(0),[W,z]=useState(()=>{let R=n.find(M=>!M.skip?.({}));if(R?.type==="select"&&R.defaultValue){let k=(R.getOptions?.({})??R.options??[]).findIndex(B=>B.value===R.defaultValue);return k>=0?k:0}return 0}),X=useMemo(()=>n.filter(R=>!R.skip?.(I)),[n,I]),_=X[y],le=X.length,{taLineNumWidth:Ft,taContentWidth:dt}=useMemo(()=>{let R=String(P.length).length;return {taLineNumWidth:R,taContentWidth:Math.max(1,l-R-4)}},[P.length,l]),Ae=useMemo(()=>{if(!_||_.type!=="textarea")return [];let R=[];for(let M=0;M<P.length;M++){let k=Yl(P[M]??"",dt);for(let B=0;B<k.length;B++)R.push({logicalRow:M,startCol:B*dt,text:k[B],isFirst:B===0});}return R},[_?.id,_?.type,P,dt]),Ke=useMemo(()=>{for(let R=0;R<Ae.length;R++){let M=Ae[R];if(M.logicalRow===O&&(N>=M.startCol&&N<M.startCol+dt||N>=M.startCol&&(R+1>=Ae.length||Ae[R+1].logicalRow!==O)))return R}return 0},[Ae,O,N,dt]),[ut,pt]=useState(new Set),[De,Ye]=useState(false),[gt,Ze]=useState(0),[rn,Ce]=useState(false),[ht,xt]=useState(null),[qt,mt]=useState(false),kt=useRef(null),Ue=useRef(null),uo=useMemo(()=>_?_.type==="text"?S:_.type==="textarea"?P.join(`
7
- `):"":"",[_,S,P]),Gn=useCallback((R,M)=>{if(kt.current&&clearTimeout(kt.current),!M){xt(null);return}kt.current=setTimeout(()=>{xt(M(R));},300);},[]);useEffect(()=>(_&&_.validate&&(_.type==="text"||_.type==="textarea")&&Gn(uo,_.validate),()=>{kt.current&&clearTimeout(kt.current);}),[uo,_,Gn]),useEffect(()=>()=>{Ue.current&&clearTimeout(Ue.current);},[]);let Rt=useMemo(()=>!_||_.type!=="select"&&_.type!=="multiselect"?[]:_.getOptions?.(I)??_.options??[],[_,I]),Gt=Math.min(W,Math.max(0,Rt.length-1)),Wt=useMemo(()=>{if(!_?.suggestions)return [];if(!S.trim())return _.suggestions;let R=S.toLowerCase();return _.suggestions.filter(M=>M.label.toLowerCase().includes(R)||(M.hint??"").toLowerCase().includes(R))},[_?.suggestions,S]),zt=Math.min(gt,Math.max(0,Wt.length-1)),sn=R=>{let M={...I,[_.id]:R};$(M),H(""),F(0),j([""]),L(0),E(0),z(0),pt(new Set),Ye(false),Ze(0),Ce(false),xt(null),mt(false),kt.current&&clearTimeout(kt.current);let k=_.id,Z=n.findIndex(K=>K.id===k)+1;for(;Z<n.length;){let K=n[Z];if(K&&!K.skip?.(M))break;Z++;}if(Z>=n.length)o(M);else {let K=n[Z].id,ne=n.filter(Q=>!Q.skip?.(M)).findIndex(Q=>Q.id===K);C(ne>=0?ne:0);let pe=n[Z];if(pe.type==="text"){let Q=pe.defaultValue??"";H(Q),F(Q.length);}else if(pe.type==="textarea"){let Q=pe.defaultValue?pe.defaultValue.split(`
8
- `):[""];j(Q),L(Q.length-1),E(Q[Q.length-1].length);}else if(pe.type==="select"){let Q=pe.getOptions?.(M)??pe.options??[];if(pe.defaultValue){let Yt=Q.findIndex(ve=>ve.value===pe.defaultValue);z(Yt>=0?Yt:0);}else z(0);}else pe.type==="multiselect"&&(z(0),pe.defaultValue?pt(new Set(pe.defaultValue.split(","))):pt(new Set));}},an=()=>{if(y===0){r();return}let R=_.id,k=n.findIndex(ne=>ne.id===R)-1;for(;k>=0;){let ne=n[k];if(ne&&!ne.skip?.(I))break;k--;}if(k<0){r();return}let B=n[k].id,Z=X.findIndex(ne=>ne.id===B);C(Z>=0?Z:0),Ye(false),Ze(0),Ce(false),xt(null),mt(false),kt.current&&clearTimeout(kt.current);let K=n[k];if(I[K.id]&&Ce(true),K.type==="text"){let ne=I[K.id]??K.defaultValue??"";H(ne),F(ne.length);}else if(K.type==="textarea"){let ne=I[K.id]??K.defaultValue??"",pe=ne?ne.split(`
9
- `):[""];j(pe),L(pe.length-1),E(pe[pe.length-1].length);}else if(K.type==="multiselect"){z(0);let ne=I[K.id];pt(ne?new Set(ne.split(",")):new Set);}else {let ne=K.getOptions?.(I)??K.options??[],pe=I[K.id],Q=ne.findIndex(Yt=>Yt.value===pe);z(Q>=0?Q:0);}};if(useInput((R,M)=>{if(_){if(M.escape){y===0?r():an();return}if((M.ctrl||M.meta)&&(R==="v"||R==="i")&&x&&(_.type==="text"||_.type==="textarea")){x();return}if(_.type==="text"){if(De&&Wt.length>0){if(M.upArrow){zt<=0?Ye(false):Ze(k=>k-1);return}if(M.downArrow){Ze(k=>Math.min(Wt.length-1,k+1));return}if(M.return){let k=Wt[zt];k&&b&&b(k.value);return}Ye(false);}if(M.return){let k=S.trim();if(_.required&&!k){Ce(true);return}if(ht!==null){Ce(true),mt(true),Ue.current&&clearTimeout(Ue.current),Ue.current=setTimeout(()=>mt(false),2e3);return}sn(k);return}if(M.downArrow&&_.suggestions&&Wt.length>0){Ye(true),Ze(0);return}if(M.ctrl&&R==="a"){F(0);return}if(M.ctrl&&R==="e"){F(S.length);return}if(M.ctrl&&R==="k"){Ce(true),H(k=>k.slice(0,V));return}if(M.ctrl&&R==="u"){Ce(true),H(k=>k.slice(V)),F(0);return}if(M.ctrl&&R==="w"){Ce(true);let k=Fo(S,V);H(B=>B.slice(0,k)+B.slice(V)),F(k);return}if(M.meta&&(M.leftArrow||R==="b")){F(Fo(S,V));return}if(M.meta&&(M.rightArrow||R==="f")){F(ni(S,V));return}if(M.leftArrow){F(k=>Math.max(0,k-1));return}if(M.rightArrow){F(k=>Math.min(S.length,k+1));return}if(M.backspace||M.delete){if(V===0&&S.length===0&&y>0){an();return}V>0&&(H(k=>k.slice(0,V-1)+k.slice(V)),F(k=>k-1));return}R&&!M.ctrl&&!M.meta&&!M.escape&&(Ce(true),Ye(false),Ze(0),H(k=>k.slice(0,V)+R+k.slice(V)),F(k=>k+R.length));return}if(_.type==="textarea"){if(M.return&&(M.ctrl||M.meta)){let k=P.join(`
10
- `).trim();if(_.required&&!k){Ce(true);return}if(ht!==null){Ce(true),mt(true),Ue.current&&clearTimeout(Ue.current),Ue.current=setTimeout(()=>mt(false),2e3);return}sn(k);return}if(M.return){Ce(true),j(k=>{let B=k[O]??"",Z=B.slice(0,N),K=B.slice(N),ye=[...k];return ye.splice(O,1,Z,K),ye}),L(k=>k+1),E(0);return}if(M.ctrl&&R==="a"){E(0);return}if(M.ctrl&&R==="e"){E((P[O]??"").length);return}if(M.ctrl&&R==="k"){Ce(true),j(k=>{let B=[...k];return B[O]=(B[O]??"").slice(0,N),B});return}if(M.ctrl&&R==="u"){Ce(true),j(k=>{let B=[...k];return B[O]=(B[O]??"").slice(N),B}),E(0);return}if(M.ctrl&&R==="w"){Ce(true);let k=O,B=N;j(Z=>{let K=Z[k]??"",ye=Fo(K,B),ne=[...Z];return ne[k]=K.slice(0,ye)+K.slice(B),E(ye),ne});return}if(M.meta&&(M.leftArrow||R==="b")){E(Fo(P[O]??"",N));return}if(M.meta&&(M.rightArrow||R==="f")){E(ni(P[O]??"",N));return}if(M.upArrow){if(Ke>0){let k=Ae[Ke],B=Ae[Ke-1],Z=N-(k?.startCol??0),K=Math.min(B.startCol+Z,B.startCol+B.text.length);L(B.logicalRow),E(K);}return}if(M.downArrow){if(Ke<Ae.length-1){let k=Ae[Ke],B=Ae[Ke+1],Z=N-(k?.startCol??0),K=Math.min(B.startCol+Z,B.startCol+B.text.length);L(B.logicalRow),E(K);}return}if(M.leftArrow){N>0?E(k=>k-1):O>0&&(L(k=>k-1),E((P[O-1]??"").length));return}if(M.rightArrow){let k=(P[O]??"").length;N<k?E(B=>B+1):O<P.length-1&&(L(B=>B+1),E(0));return}if(M.backspace||M.delete){if(N===0&&O===0)return;if(N>0)j(k=>{let B=[...k],Z=B[O]??"";return B[O]=Z.slice(0,N-1)+Z.slice(N),B}),E(k=>k-1);else {let k=(P[O-1]??"").length;j(B=>{let Z=[...B],K=Z[O-1]??"",ye=Z[O]??"";return Z.splice(O-1,2,K+ye),Z}),E(k),L(B=>B-1);}return}if(R&&!M.ctrl&&!M.meta&&!M.escape){Ce(true);let k=R.split(/\r?\n/);if(k.length===1)j(B=>{let Z=[...B],K=Z[O]??"";return Z[O]=K.slice(0,N)+R+K.slice(N),Z}),E(B=>B+R.length);else {let B=O,Z=N;j(K=>{let ye=[...K],ne=ye[B]??"",pe=ne.slice(0,Z),Q=ne.slice(Z),Yt=k[0]??"",ve=k[k.length-1]??"",rr=[pe+Yt,...k.slice(1,-1),ve+Q];return ye.splice(B,1,...rr),ye}),L(B+k.length-1),E((k[k.length-1]??"").length);}}return}if(_.type==="select"||_.type==="multiselect"){if(M.upArrow||R==="k"){z(k=>Math.max(0,k-1));return}if(M.downArrow||R==="j"){z(k=>Math.min(Rt.length-1,k+1));return}if(M.backspace||M.delete){an();return}if(_.type==="select"){if(M.return||M.tab){let k=Rt[Gt];if(k){if(_.validate){let B=_.validate(k.value);if(B!==null){Ce(true),xt(B),mt(true),Ue.current&&clearTimeout(Ue.current),Ue.current=setTimeout(()=>mt(false),2e3);return}}sn(k.value);}return}if(R>="1"&&R<="9"){let k=parseInt(R,10)-1;if(k<Rt.length){let B=Rt[k];B&&sn(B.value);}return}}else {if(R===" "){let k=Rt[Gt];k&&pt(B=>{let Z=new Set(B);return Z.has(k.value)?Z.delete(k.value):Z.add(k.value),Z});return}if(M.return){let k=Array.from(ut).join(",");sn(k);return}}}}}),!_)return null;let nt=rn?ht:null,Wn=Math.max(20,l-6),At=`${y+1}/${le}`,Kt=Math.max(2,f-4),ln=0;Gt>=Kt&&(ln=Gt-Kt+1);let zn=Rt.slice(ln,ln+Kt);return jsxs(Box,{flexDirection:"column",paddingX:2,children:[jsxs(Box,{children:[jsx(Text,{color:e.amber,bold:true,children:t}),jsxs(Text,{color:e.ghost,children:[" ",Ve,Ve," "]}),jsxs(Text,{color:e.dim,children:["step ",At]})]}),jsxs(Box,{children:[jsx(Text,{children:" "}),X.map((R,M)=>jsxs(Text,{color:M===y?e.amber:M<y?e.green:e.ghost,children:[M===y?"\u25CF":M<y?"\u2713":"\u25CB"," "]},R.id))]}),jsxs(Box,{marginTop:0,children:[jsxs(Text,{color:e.white,bold:true,children:[" ",_.label]}),_.required&&jsx(Text,{color:e.red,children:" *"}),!_.required&&jsxs(Text,{color:e.dim,children:[" (optional, ",_.type==="textarea"?`${Er}+Enter`:"Enter"," to skip)"]})]}),_.description&&jsx(Box,{children:jsxs(Text,{color:e.dim,children:[" ",_.description]})}),_.type==="text"&&jsxs(Box,{flexDirection:"column",children:[jsxs(Box,{borderStyle:nt?"round":void 0,borderColor:nt?e.red:void 0,children:[jsxs(Text,{color:e.amber,children:[" ",">"," "]}),S.length>0?jsxs(Fragment,{children:[jsx(Text,{color:e.white,children:S.slice(0,V)}),jsx(Text,{color:e.amber,children:Do}),jsx(Text,{color:e.white,children:S.slice(V)})]}):_.placeholder?jsxs(Fragment,{children:[jsx(Text,{color:e.ghost,children:_.placeholder}),jsx(Text,{color:e.amber,children:Do})]}):jsx(Text,{color:e.amber,children:Do})]}),nt&&jsxs(Text,{color:e.red,dimColor:true,children:[" ",nt]}),qt&&jsx(Text,{color:e.red,children:" Fix the error above"})]}),_.type==="text"&&_.suggestions&&Wt.length>0&&(()=>{let R=Math.max(2,f-6),M=0;De&&zt>=R&&(M=zt-R+1);let k=Wt.slice(M,M+R);return jsxs(Box,{flexDirection:"column",children:[jsxs(Text,{color:e.ghost,children:[" ",Ve,Ve,Ve," or browse templates ",Ve.repeat(Math.max(0,Wn-28))]}),k.map((B,Z)=>{let K=Z+M,ye=De&&K===zt;return jsxs(Box,{children:[jsx(Text,{color:ye?e.amber:e.ghost,children:ye?" \u25B8 ":" "}),jsx(Text,{color:ye?e.white:e.silver,bold:ye,children:B.label}),B.hint&&jsxs(Text,{color:e.dim,wrap:"truncate",children:[" ",Ve," ",B.hint.replace(/\n/g," ")]})]},B.value)})]})})(),_.type==="textarea"&&(()=>{let R=Math.max(3,f-6),M=0;Ke>=R&&(M=Ke-R+1);let k=Ae.slice(M,M+R);return jsxs(Box,{flexDirection:"column",children:[jsxs(Box,{flexDirection:"column",borderStyle:nt?"round":void 0,borderColor:nt?e.red:void 0,children:[k.map((B,Z)=>{let K=Z+M,ye=B.isFirst?String(B.logicalRow+1).padStart(Ft," "):"".padStart(Ft," "),ne=K===Ke,pe=N-B.startCol;return jsxs(Box,{children:[jsxs(Text,{color:e.dim,children:[" ",ye," "]}),jsxs(Text,{color:e.ghost,children:["\u2502"," "]}),ne?jsxs(Fragment,{children:[jsx(Text,{color:e.white,children:B.text.slice(0,pe)}),jsx(Text,{color:e.amber,children:Do}),jsx(Text,{color:e.white,children:B.text.slice(pe)})]}):jsx(Text,{color:e.silver,children:B.text||(B.isFirst?" ":"")})]},`${B.logicalRow}-${B.startCol}`)}),P.length===1&&P[0]===""&&_.placeholder&&jsx(Box,{children:jsxs(Text,{color:e.dim,children:[" ","".padStart(Ft," ")," ",_.placeholder]})})]}),nt&&jsxs(Text,{color:e.red,dimColor:true,children:[" ",nt]}),qt&&jsx(Text,{color:e.red,children:" Fix the error above"})]})})(),_.type==="select"&&jsxs(Box,{flexDirection:"column",children:[zn.map((R,M)=>{let k=M+ln,B=k===Gt,Z=String(k+1).padStart(Rt.length>=10?2:1);return jsxs(Box,{children:[jsx(Text,{color:B?e.amber:e.ghost,children:B?" \u25B8 ":` ${Z} `}),jsx(Text,{color:B?e.white:e.silver,bold:B,children:R.label}),R.hint&&jsxs(Text,{color:e.dim,wrap:"truncate",children:[" ",Ve," ",R.hint.replace(/\n/g," ")]})]},R.value)}),nt&&jsxs(Text,{color:e.red,dimColor:true,children:[" ",nt]}),qt&&jsx(Text,{color:e.red,children:" Fix the error above"})]}),_.type==="multiselect"&&jsxs(Box,{flexDirection:"column",children:[zn.map((R,M)=>{let B=M+ln===Gt,Z=ut.has(R.value);return jsxs(Box,{children:[jsx(Text,{color:B?e.amber:e.ghost,children:B?" \u25B8 ":" "}),jsx(Text,{color:Z?e.green:e.dim,children:Z?"[\u2713]":"[ ]"}),jsxs(Text,{color:B?e.white:e.silver,bold:B,children:[" ",R.label]}),R.hint&&jsxs(Text,{color:e.dim,wrap:"truncate",children:[" ",Ve," ",R.hint.replace(/\n/g," ")]})]},R.value)}),ut.size>0&&jsx(Box,{children:jsxs(Text,{color:e.dim,children:[" ","\u2514"," ",ut.size," selected"]})})]}),jsxs(Box,{marginTop:0,children:[jsxs(Text,{color:e.ghost,children:[" ",_.type==="select"?"\u2191\u2193 select Enter confirm":_.type==="multiselect"?"\u2191\u2193 move Space toggle Enter confirm":_.type==="textarea"?`Enter newline ${Er}+Enter confirm \u2190\u2191\u2192\u2193 navigate`:De?"\u2191\u2193 browse Enter select \u2191 back to input":_.suggestions?"\u2190\u2192 move Enter confirm \u2193 browse templates":"\u2190\u2192 move Enter confirm",x&&(_.type==="text"||_.type==="textarea")?` ${Er}+V paste image`:""," Esc ",y>0?"back":"cancel"]}),T&&jsxs(Text,{color:e.amber,children:[" ",T]})]})]})}var ii=io.memo(function({agents:n,selected:o,msgCounts:r,colorMap:l,maxHeight:f,onConfirm:x,onCancel:T}){let [b,y]=useState(0),[C,I]=useState(()=>new Set(o));useMemo(()=>C.size===0||C.size===n.length,[C.size,n.length]);let S=Math.max(3,f-5),H=useMemo(()=>{if(n.length<=S)return 0;let P=Math.floor(S/2),j=n.length-S;return Math.min(j,Math.max(0,b-P))},[b,n.length,S]),V=n.slice(H,H+S);useInput((P,j)=>{if(j.upArrow){y(O=>O>0?O-1:n.length-1);return}if(j.downArrow){y(O=>O<n.length-1?O+1:0);return}if(P===" "){let O=n[b];if(!O)return;I(L=>{let N=new Set(L);return N.has(O.id)?N.delete(O.id):N.add(O.id),N});return}if(P==="a"||P==="A"){I(O=>new Set);return}if(j.return){x(new Set(C));return}if(j.escape){T();return}});let F=C.size===0?n.length:C.size;return jsxs(Box,{flexDirection:"column",borderStyle:"round",borderColor:e.amber,paddingX:1,children:[jsxs(Box,{gap:1,children:[jsx(Text,{color:e.amber,bold:true,children:" \u25C8 Agent Filter"}),jsxs(Text,{color:e.dim,children:[ge," ",F,"/",n.length," selected"]})]}),jsx(Text,{color:e.ghost,children:Ve.repeat(36)}),V.map((P,j)=>{let L=j+H===b,N=C.size===0||C.has(P.id),E=l.get(P.id)??e.silver,W=r.get(P.id)??0;return jsxs(Box,{gap:0,children:[jsx(Text,{color:L?e.amber:e.ghost,children:L?" \u25B8 ":" "}),jsx(Text,{color:N?e.green:e.ghost,children:N?"[\u2713]":"[ ]"}),jsxs(Text,{color:L?E:N?e.silver:e.dim,bold:L,children:[" ",P.name]}),W>0&&jsxs(Text,{color:e.dim,children:[" ",ge,W]})]},P.id)}),n.length>S&&jsxs(Text,{color:e.ghost,children:[" ",H>0?"\u2191":" "," ",H+S<n.length?"\u2193":" "," ",b+1,"/",n.length]}),jsx(Text,{color:e.ghost,children:Ve.repeat(36)}),jsxs(Text,{color:e.dim,children:[" Space toggle"," ",ge," ","a all"," ",ge," ","Enter confirm"," ",ge," ","Esc cancel"]})]})});var tc={system:"\u2666",lifecycle:"\u25B6",output:"\u2502",tool:"\u2699",result:"\u2190",error:"\u2715",file:"\u270E",info:"\u2502"},nc={system:"System",lifecycle:"Lifecycle",output:"Output",tool:"Tool calls",result:"Results",error:"Errors",file:"Files",info:"Info"},oc={system:e.purple,lifecycle:e.cyan,output:e.white,tool:e.blue,result:e.green,error:e.red,file:e.purple,info:e.silver},wt=["system","lifecycle","output","tool","result","error","file","info"],ci=[{key:"1",label:"all",types:wt},{key:"2",label:"text",types:["output"]},{key:"3",label:"tools",types:["tool","result","file"]},{key:"4",label:"errors",types:["error"]},{key:"5",label:"events",types:["lifecycle","system"]}],di=io.memo(function({selected:n,typeCounts:o,onConfirm:r,onCancel:l}){let[f,x]=useState(0),[T,b]=useState(()=>new Set(n)),y=useMemo(()=>T.size===wt.length||wt.every(I=>T.has(I)),[T]);useInput((I,$)=>{if($.upArrow){x(S=>S>0?S-1:wt.length-1);return}if($.downArrow){x(S=>S<wt.length-1?S+1:0);return}if(I===" "){let S=wt[f];if(!S)return;b(H=>{let V=new Set(H);return V.has(S)?V.delete(S):V.add(S),V});return}if(I==="a"||I==="A"){b(S=>S.size===wt.length?new Set:new Set(wt));return}for(let S of ci)if(I===S.key){b(new Set(S.types));return}if($.return){let S=T.size===0?new Set(wt):new Set(T);r(S);return}if($.escape){l();return}});let C=y?wt.length:T.size;return jsxs(Box,{flexDirection:"column",borderStyle:"round",borderColor:e.amber,paddingX:1,children:[jsxs(Box,{gap:1,children:[jsx(Text,{color:e.amber,bold:true,children:" \u25C8 Type Filter"}),jsxs(Text,{color:e.dim,children:[ge," ",C,"/",wt.length," selected"]})]}),jsx(Text,{color:e.ghost,children:Ve.repeat(36)}),wt.map((I,$)=>{let S=$===f,H=T.has(I),V=o[I]??0,F=oc[I];return jsxs(Box,{gap:0,children:[jsx(Text,{color:S?e.amber:e.ghost,children:S?" \u25B8 ":" "}),jsx(Text,{color:H?e.green:e.ghost,children:H?"[\u2713]":"[ ]"}),jsxs(Text,{color:S?F:e.dim,children:[" ",tc[I]," "]}),jsx(Text,{color:S?F:H?e.silver:e.dim,bold:S,children:nc[I]}),V>0&&jsxs(Text,{color:e.dim,children:[" ",ge,V]})]},I)}),jsx(Text,{color:e.ghost,children:Ve.repeat(36)}),jsxs(Box,{gap:0,children:[jsx(Text,{color:e.dim,children:" "}),ci.map((I,$)=>jsxs(io.Fragment,{children:[$>0&&jsxs(Text,{color:e.ghost,children:[" ",ge," "]}),jsx(Text,{color:e.amberDim,children:I.key}),jsxs(Text,{color:e.dim,children:["=",I.label]})]},I.key))]}),jsxs(Text,{color:e.dim,children:[" Space toggle"," ",ge," ","a all"," ",ge," ","Enter confirm"," ",ge," ","Esc cancel"]})]})});var zo="\u256D",Vo="\u256E",Ho="\u2570",jo="\u256F",Ie="\u2502";function on({children:t,cw:n}){return jsxs(Text,{children:[jsx(Text,{color:e.ghost,children:Ie}),jsxs(Text,{children:[" ",t.padEnd(n)," "]}),jsx(Text,{color:e.ghost,children:Ie})]})}function Wo({cw:t}){return jsx(on,{cw:t,children:""})}function ui({width:t,height:n}){let o=Math.min(t-4,50),r=o-6,l=be(o-2);return jsxs(Box,{flexDirection:"column",paddingX:2,marginTop:1,children:[jsxs(Text,{color:e.ghost,children:[zo,l,Vo]}),jsx(on,{cw:r,children:""}),jsxs(Text,{children:[jsxs(Text,{color:e.ghost,children:[Ie," "]}),jsx(Text,{color:e.amber,children:Ht}),jsx(Text,{color:e.white,bold:true,children:" Welcome to Orch"}),jsx(Text,{children:" ".repeat(Math.max(0,r-15-2))}),jsx(Text,{children:" "}),jsx(Text,{color:e.ghost,children:Ie})]}),jsx(on,{cw:r,children:""}),jsxs(Text,{children:[jsxs(Text,{color:e.ghost,children:[Ie," "]}),jsx(Text,{color:e.silver,children:"Press N to create your first task".padEnd(r)}),jsx(Text,{children:" "}),jsx(Text,{color:e.ghost,children:Ie})]}),jsx(on,{cw:r,children:""}),jsxs(Text,{children:[jsxs(Text,{color:e.ghost,children:[Ie," "]}),jsx(Text,{color:e.amber,children:"N"}),jsx(Text,{color:e.gray,children:" new task"}),jsx(Text,{children:" ".repeat(Math.max(0,r-1-1-8))}),jsx(Text,{children:" "}),jsx(Text,{color:e.ghost,children:Ie})]}),jsx(on,{cw:r,children:""}),jsxs(Text,{color:e.ghost,children:[Ho,l,jo]})]})}function gi({step:t,width:n}){let o=Math.min(n-4,50),r=o-6,l=be(o-2),f,x=null;if(t==="task_created")f="Press R to run task",x={key:"R",label:"run task"};else if(t==="run_started")f="Agent is running your task...";else return null;return jsxs(Box,{flexDirection:"column",paddingX:2,marginTop:1,children:[jsxs(Text,{color:e.ghost,children:[zo,l,Vo]}),jsxs(Text,{children:[jsxs(Text,{color:e.ghost,children:[Ie," "]}),jsx(Text,{color:e.amber,children:Ht}),jsxs(Text,{color:e.silver,children:[" ",f.padEnd(x?r-2-x.key.length-1-x.label.length-2:r-2)]}),x&&jsxs(Fragment,{children:[jsxs(Text,{color:e.amber,children:[" ",x.key]}),jsxs(Text,{color:e.gray,children:[" ",x.label]})]}),jsx(Text,{children:" "}),jsx(Text,{color:e.ghost,children:Ie})]}),jsxs(Text,{color:e.ghost,children:[Ho,l,jo]})]})}function mi({width:t}){let n=Math.min(t-4,50),o=n-6,r=be(n-2);return jsxs(Box,{flexDirection:"column",paddingX:2,marginTop:1,children:[jsxs(Text,{color:e.ghost,children:[zo,r,Vo]}),jsx(on,{cw:o,children:""}),jsxs(Text,{children:[jsxs(Text,{color:e.ghost,children:[Ie," "]}),jsx(Text,{color:e.green,bold:true,children:"First task completed!"}),jsx(Text,{children:" ".repeat(Math.max(0,o-21))}),jsx(Text,{children:" "}),jsx(Text,{color:e.ghost,children:Ie})]}),jsx(on,{cw:o,children:""}),jsxs(Text,{children:[jsxs(Text,{color:e.ghost,children:[Ie," "]}),jsx(Text,{color:e.silver,children:"Type / to see all commands".padEnd(o)}),jsx(Text,{children:" "}),jsx(Text,{color:e.ghost,children:Ie})]}),jsx(on,{cw:o,children:""}),jsxs(Text,{color:e.ghost,children:[Ho,r,jo]})]})}function Uo({count:t,config:n,width:o}){if(t>=3)return null;let r=Math.min((o??44)-4,50),l=r-6,f=be(r-2),x=jsxs(Text,{color:e.ghost,children:[zo,f,Vo]}),T=jsxs(Text,{color:e.ghost,children:[Ho,f,jo]});if(t>0){let y=n.hints[0],C=y?` ${y.key} ${y.label}`:"";return jsxs(Box,{flexDirection:"column",paddingX:2,marginTop:1,children:[x,jsxs(Text,{children:[jsxs(Text,{color:e.ghost,children:[Ie," "]}),jsx(Text,{color:e.amber,children:Ht}),jsxs(Text,{color:e.silver,children:[" ",n.nudge.padEnd(l-2-C.length)]}),y&&jsxs(Fragment,{children:[jsxs(Text,{color:e.amber,children:[" ",y.key]}),jsxs(Text,{color:e.gray,children:[" ",y.label]})]}),jsx(Text,{children:" "}),jsx(Text,{color:e.ghost,children:Ie})]}),T]})}let b=n.hints.reduce((y,C,I)=>y+C.key.length+1+C.label.length+(I>0?3:0),0);return jsxs(Box,{flexDirection:"column",paddingX:2,marginTop:1,children:[x,jsx(Wo,{cw:l}),jsxs(Text,{children:[jsxs(Text,{color:e.ghost,children:[Ie," "]}),jsx(Text,{color:e.amber,children:Ht}),jsxs(Text,{color:e.white,bold:true,children:[" ",n.title]}),jsx(Text,{children:" ".repeat(Math.max(0,l-n.title.length-2))}),jsx(Text,{children:" "}),jsx(Text,{color:e.ghost,children:Ie})]}),jsx(Wo,{cw:l}),n.description.map((y,C)=>jsxs(Text,{children:[jsxs(Text,{color:e.ghost,children:[Ie," "]}),jsx(Text,{color:e.silver,children:y.padEnd(l)}),jsx(Text,{children:" "}),jsx(Text,{color:e.ghost,children:Ie})]},C)),jsx(Wo,{cw:l}),jsxs(Text,{children:[jsxs(Text,{color:e.ghost,children:[Ie," "]}),n.hints.map((y,C)=>jsxs(io.Fragment,{children:[C>0&&jsx(Text,{color:e.ghost,children:" "}),jsx(Text,{color:e.amber,children:y.key}),jsxs(Text,{color:e.gray,children:[" ",y.label]})]},C)),jsx(Text,{children:" ".repeat(Math.max(0,l-b))}),jsx(Text,{children:" "}),jsx(Text,{color:e.ghost,children:Ie})]}),jsx(Wo,{cw:l}),T]})}var sc=2,xi=360,ic={done:4e3,failed:8e3,review:6e3},ac={done:"\u2713",failed:"\u2715",review:Qt},lc={done:e.green,failed:e.red,review:e.blue},cc={done:e.successBg,failed:e.errorBg,review:e.infoBg};function dc(t){let n=t.agentName??"Agent";switch(t.type){case "done":return `Task completed by ${n}`;case "failed":return "Task failed \u2014 press Enter for details";case "review":return "Task ready for review \u2014 press A to approve"}}var uc=io.memo(function({toast:n,onDismiss:o}){let[r,l]=useState(true),[f,x]=useState(false);useEffect(()=>{let S=setTimeout(()=>l(false),xi);return ()=>clearTimeout(S)},[]),useEffect(()=>{let S=ic[n.type],H=setTimeout(()=>x(true),S),V=setTimeout(()=>o(n.id),S+xi);return ()=>{clearTimeout(H),clearTimeout(V);}},[n.id,n.type,o]);let T=r||f,b=ac[n.type],y=lc[n.type],C=cc[n.type],I=dc(n),$=n.title.length>40?n.title.slice(0,39)+"\u2026":n.title;return jsx(Box,{children:jsxs(Text,{backgroundColor:C,children:[jsxs(Text,{color:T?e.dim:y,children:[" ",b," "]}),jsx(Text,{color:T?e.dim:e.white,bold:!T,children:$}),jsxs(Text,{color:T?e.dim:e.silver,children:[" ",I," "]})]})})}),yi=io.memo(function({toasts:n,onDismiss:o}){let r=n.slice(0,sc);return r.length===0?null:jsx(Box,{flexDirection:"column",children:r.map(l=>jsx(uc,{toast:l,onDismiss:o},l.id))})});var fc="\u256D",pc="\u256E",hc="\u2570",xc="\u256F",ct="\u2502",Nr=[{key:"\u2191\u2193/j/k",label:"Navigate"},{key:"Tab/\u2190\u2192",label:"Switch tabs"},{key:"Enter",label:"Detail view"},{key:"G",label:"Goals tab"},{key:"T",label:"Tasks tab"},{key:"A",label:"Agents tab"},{key:"L",label:"Logs tab"}],Dr=[{key:"N",label:"New item"},{key:"E",label:"Edit"},{key:"D",label:"Delete"},{key:"R",label:"Run task"},{key:"S",label:"Show / Stop"},{key:"C",label:"Cancel"},{key:"A",label:"Approve"},{key:"X",label:"Reject"},{key:"U",label:"Autonomous"},{key:"Z",label:"Undo delete"}],Fr=[{key:"/",label:"Command mode"},{key:"/task add",label:"Create task"},{key:"/run",label:"Execute"},{key:"/watch",label:"Auto-dispatch"},{key:"/config",label:"Settings"},{key:"/help",label:"Help"},{key:"/quit",label:"Exit"}],Dn=10,Xt=22;function Gr(t){let n=Math.max(0,Math.floor((Xt-t.length-2)/2)),o=Math.max(0,Xt-n-t.length-2);return be(n)+" "+t+" "+be(o)}var wi=io.memo(function({width:n,height:o}){let r=Xt*3+3+3+2,l=r+2,f=be(l-2),x="KEYBOARD SHORTCUTS",T=Math.max(0,Math.floor((r-x.length)/2)),b=Math.max(0,r-T-x.length),y="Press any key to dismiss",C=Math.max(0,Math.floor((r-y.length)/2)),I=Math.max(0,r-C-y.length),$=Math.max(Nr.length,Dr.length,Fr.length),S=$+10,H=Math.max(0,Math.floor((o-S)/2)),V=[];for(let L=0;L<$;L++){let N=L<Nr.length?Nr[L]:null,E=L<Dr.length?Dr[L]:null,W=L<Fr.length?Fr[L]:null;V.push(jsxs(Text,{children:[jsx(Text,{color:e.amber,children:ct}),jsx(Text,{children:" "}),N?jsxs(Fragment,{children:[jsx(Text,{color:e.amber,bold:true,children:N.key.padEnd(Dn)}),jsx(Text,{color:e.silver,children:N.label.padEnd(Xt-Dn)})]}):jsx(Text,{children:" ".repeat(Xt)}),jsxs(Text,{color:e.dim,children:[" ",ct," "]}),E?jsxs(Fragment,{children:[jsx(Text,{color:e.amber,bold:true,children:E.key.padEnd(Dn)}),jsx(Text,{color:e.silver,children:E.label.padEnd(Xt-Dn)})]}):jsx(Text,{children:" ".repeat(Xt)}),jsxs(Text,{color:e.dim,children:[" ",ct," "]}),W?jsxs(Fragment,{children:[jsx(Text,{color:e.amber,bold:true,children:W.key.padEnd(Dn)}),jsx(Text,{color:e.silver,children:W.label.padEnd(Xt-Dn)})]}):jsx(Text,{children:" ".repeat(Xt)}),jsx(Text,{children:" "}),jsx(Text,{color:e.amber,children:ct})]},`r${L}`));}let F=L=>jsxs(Text,{children:[jsx(Text,{color:e.amber,children:ct}),jsx(Text,{children:" ".repeat(r)}),jsx(Text,{color:e.amber,children:ct})]},L),P=Gr("NAVIGATION"),j=Gr("ACTIONS"),O=Gr("COMMANDS");return jsxs(Box,{flexDirection:"column",paddingX:Math.max(0,Math.floor((n-l)/2)),marginTop:H,children:[jsxs(Text,{color:e.amber,children:[fc,f,pc]}),F("e1"),jsxs(Text,{children:[jsx(Text,{color:e.amber,children:ct}),jsx(Text,{children:" ".repeat(T)}),jsx(Text,{color:e.amber,bold:true,children:x}),jsx(Text,{children:" ".repeat(b)}),jsx(Text,{color:e.amber,children:ct})]}),F("e2"),jsxs(Text,{children:[jsx(Text,{color:e.amber,children:ct}),jsx(Text,{children:" "}),jsx(Text,{color:e.dim,children:P}),jsxs(Text,{color:e.dim,children:[" ",ct," "]}),jsx(Text,{color:e.dim,children:j}),jsxs(Text,{color:e.dim,children:[" ",ct," "]}),jsx(Text,{color:e.dim,children:O}),jsx(Text,{children:" "}),jsx(Text,{color:e.amber,children:ct})]}),F("e3"),V,F("e4"),jsxs(Text,{children:[jsx(Text,{color:e.amber,children:ct}),jsx(Text,{children:" ".repeat(C)}),jsx(Text,{color:e.dim,children:y}),jsx(Text,{children:" ".repeat(I)}),jsx(Text,{color:e.amber,children:ct})]}),F("e5"),jsxs(Text,{color:e.amber,children:[hc,f,xc]})]})});var Ci=[{value:"claude-opus-4-6",label:"Claude Opus 4.6",hint:"most capable"},{value:"claude-sonnet-4-6",label:"Claude Sonnet 4.6",hint:"fast, balanced"},{value:"claude-haiku-4-6",label:"Claude Haiku 4.6",hint:"fastest, cheapest"},{value:"claude-sonnet-4-5-20250929",label:"Claude Sonnet 4.5",hint:"extended thinking"},{value:"claude-haiku-4-5-20251001",label:"Claude Haiku 4.5",hint:"legacy"}],Ii=[{value:"gpt-5.3-codex",label:"GPT-5.3 Codex",hint:"default, balanced"},{value:"gpt-5.4",label:"GPT-5.4",hint:"latest"},{value:"gpt-5",label:"GPT-5",hint:"capable"},{value:"gpt-5.3-codex-spark",label:"GPT-5.3 Codex Spark",hint:"fast"},{value:"o3",label:"o3",hint:"reasoning"},{value:"o4-mini",label:"o4-mini",hint:"fast reasoning"},{value:"gpt-5-mini",label:"GPT-5 Mini",hint:"light"},{value:"gpt-5-nano",label:"GPT-5 Nano",hint:"cheapest"},{value:"codex-mini-latest",label:"Codex Mini",hint:"legacy"}],Mi=[{value:"auto",label:"Auto",hint:"let Cursor decide"},{value:"composer-1.5",label:"Composer 1.5",hint:"latest agent"},{value:"composer-1",label:"Composer 1",hint:"stable agent"},{value:"gpt-5.3-codex",label:"GPT-5.3 Codex",hint:"OpenAI"},{value:"claude-sonnet-4-6",label:"Claude Sonnet 4.6",hint:"Anthropic"}],vi=[{value:"",label:"Default",hint:"use model configured in opencode"},{value:"openrouter/anthropic/claude-sonnet-4.6",label:"Claude Sonnet 4.6",hint:"fast, balanced"},{value:"openrouter/anthropic/claude-opus-4.6",label:"Claude Opus 4.6",hint:"most capable"},{value:"openrouter/google/gemini-2.5-pro",label:"Gemini 2.5 Pro",hint:"Google"},{value:"openrouter/google/gemini-2.5-flash",label:"Gemini 2.5 Flash",hint:"Google, fast"},{value:"openrouter/deepseek/deepseek-v3.2",label:"DeepSeek V3.2",hint:"open-source"},{value:"openrouter/deepseek/deepseek-r1:free",label:"DeepSeek R1",hint:"reasoning, free"},{value:"opencode/big-pickle",label:"Big Pickle",hint:"opencode native"}],_i=[{value:"",label:"Default",hint:"use shell adapter default"}],Ri=[{value:"",label:"Default",hint:"no override \u2014 use model default"},{value:"high",label:"High",hint:"deepest reasoning, best quality, slowest"},{value:"medium",label:"Medium",hint:"balanced speed and quality"},{value:"low",label:"Low",hint:"fastest responses, minimal reasoning"}],Ai=new Set(["claude"]),bc=[{value:"claude",label:"Claude",hint:"Claude Code CLI"},{value:"opencode",label:"OpenCode",hint:"OpenCode \u2014 multi-provider"},{value:"codex",label:"Codex",hint:"OpenAI Codex CLI"},{value:"cursor",label:"Cursor",hint:"Cursor Agent CLI"},{value:"shell",label:"Shell",hint:"custom shell command"}],$i=[{value:"1",label:"P1 Critical",hint:"urgent, do first"},{value:"2",label:"P2 High",hint:"important"},{value:"3",label:"P3 Medium",hint:"default priority"},{value:"4",label:"P4 Low",hint:"nice to have"}],Si=60;function Bi(t){return t.filter(n=>n.status!=="disabled").map(n=>{let o=(n.role??"").split(`
11
- `)[0].trim(),r=o.length>Si?o.slice(0,Si-1)+"\u2026":o,l=r?`[${n.adapter}] ${r}`:n.adapter;return {value:n.id,label:n.name,hint:l}})}function Ko(t,n="Auto-assign",o="orchestrator picks the best agent"){return [{value:"",label:n,hint:o},...Bi(t)]}var zr=[{value:"",label:"Skip",hint:"no role description"},{value:"Full-stack developer",label:"Full-stack developer",hint:"general purpose"},{value:"Frontend developer",label:"Frontend developer",hint:"React, CSS, UI"},{value:"Backend developer",label:"Backend developer",hint:"APIs, databases, services"},{value:"DevOps engineer",label:"DevOps engineer",hint:"CI/CD, infra, deploys"},{value:"QA / Test engineer",label:"QA / Test engineer",hint:"testing, quality"},{value:"Code reviewer",label:"Code reviewer",hint:"review PRs, find bugs"},{value:"Technical writer",label:"Technical writer",hint:"docs, READMEs"},{value:"__custom__",label:"Custom...",hint:"type your own"}];function Ei(t){return [{value:"",label:"None",hint:"no team"},...(t??[]).filter(n=>n.status==="active").map(n=>({value:n.id,label:n.name,hint:`${n.members.length} members`}))]}function Oi(){return [{id:"shop_template",label:"Agent Shop \u2014 choose a template",type:"select",options:a$2.map(t=>({value:t.key,label:t.name,hint:t.description}))}]}function Vr(t,n,o){let r=a$3(o,n.tier);return t.map(l=>{switch(l.id){case "name":return {...l,defaultValue:n.name};case "adapter":return {...l,defaultValue:o};case "model":return {...l,defaultValue:r};case "role":return {...l,defaultValue:"__custom__"};case "role_custom":return {...l,defaultValue:n.role,skip:void 0};case "skills":{let f=o==="claude"?n.skills:n.skills.filter(x=>!a$4(x));return {...l,defaultValue:f.join(", ")}}case "approval_policy":return {...l,defaultValue:n.approval_policy};default:return l}})}function Yo(t,n){let o=Ei(n);return [{id:"name",label:"Agent name",type:"text",placeholder:"e.g. alpha, frontend-bot, reviewer",required:true,validate:r=>r.trim()?t?.some(l=>l.name===r.trim())?"Agent with this name already exists":null:"Name is required",suggestions:a$2.map(r=>({value:r.key,label:r.name,hint:r.description}))},{id:"adapter",label:"Provider",type:"select",options:bc},{id:"model",label:"Model",type:"select",getOptions:r=>r.adapter==="opencode"?vi:r.adapter==="codex"?Ii:r.adapter==="cursor"?Mi:r.adapter==="shell"?_i:Ci},{id:"effort",label:"Reasoning effort",type:"select",options:Ri,skip:r=>!Ai.has(r.adapter??"")},{id:"role",label:"Role / specialization",type:"select",options:zr},{id:"role_custom",label:"Describe the role",type:"textarea",placeholder:"e.g. Specialist in React and TypeScript",skip:r=>r.role!=="__custom__"},{id:"skills",label:"Skills (comma-separated)",type:"text",placeholder:"e.g. feature-dev:feature-dev, testing-suite:generate-tests"},{id:"approval_policy",label:"Approval policy",type:"text",skip:()=>true},{id:"team",label:"Join team",type:"select",options:o,skip:()=>o.length<=1}]}function Li(t,n="claude"){let o=t.role==="__custom__"?t.role_custom||void 0:t.role||void 0,r=t.skills?t.skills.split(",").map(x=>x.trim()).filter(Boolean):void 0,l=t.approval_policy||"auto",f=t.effort||void 0;return {name:t.name,adapter:t.adapter||n,role:o,model:t.model||void 0,effort:f,approval_policy:l,skills:r,team_id:t.team||void 0}}function Pi(t,n){let o=Bi(t);return [{id:"name",label:"Team name",type:"text",placeholder:"e.g. frontend, backend, qa",required:true,validate:r=>r.trim()?n?.some(l=>l.name===r.trim())?"Team with this name already exists":null:"Name is required"},{id:"lead",label:"Team lead",type:"select",options:o},{id:"members",label:"Team members",type:"multiselect",getOptions:r=>o.filter(l=>l.value!==r.lead),skip:r=>!o.some(l=>l.value!==r.lead)},{id:"description",label:"Description",type:"textarea",placeholder:"Optional team purpose..."}]}function Ni(t){let n=t.members?t.members.split(",").filter(Boolean):[];return {name:t.name,lead_agent_id:t.lead,member_agent_ids:n.length>0?n:void 0,description:t.description||void 0}}function Di(t){let n=Ko(t);return [{id:"title",label:"Task title",type:"text",placeholder:"What needs to be done?",required:true,validate:o=>o.trim()?null:"Title is required"},{id:"priority",label:"Priority",type:"select",options:$i,defaultValue:"3",validate:o=>{let r=Number(o);return !Number.isInteger(r)||r<1||r>4?"Priority must be 1-4":null}},{id:"assignee",label:"Assignee",type:"select",options:n,skip:()=>n.length<=1},{id:"description",label:"Description",type:"textarea",placeholder:"Optional details, context, acceptance criteria..."}]}function Fi(t){return {title:t.title,priority:t.priority?parseInt(t.priority,10):void 0,assignee:t.assignee||void 0,description:t.description||void 0}}function Gi(t,n){let o=Ko(n,"None / Auto","remove assignee");return [{id:"title",label:"Task title",type:"text",defaultValue:t.title,required:true,validate:r=>r.trim()?null:"Title is required"},{id:"priority",label:"Priority",type:"select",options:$i,defaultValue:String(t.priority),validate:r=>{let l=Number(r);return !Number.isInteger(l)||l<1||l>4?"Priority must be 1-4":null}},{id:"assignee",label:"Assignee",type:"select",options:o,defaultValue:t.assignee??"",skip:()=>o.length<=1},{id:"description",label:"Description",type:"textarea",defaultValue:t.description||"",placeholder:"Optional details..."}]}function Wi(t){return {title:t.title,priority:t.priority?parseInt(t.priority,10):void 0,assignee:t.assignee||void 0,description:t.description??""}}function zi(t,n,o){let r=zr.find(b=>b.value===t.role),l=r?t.role:t.role?"__custom__":"",f=t.adapter==="opencode"?vi:t.adapter==="codex"?Ii:t.adapter==="cursor"?Mi:t.adapter==="shell"?_i:Ci,x=Ei(o),T=o?.find(b=>b.members.some(y=>y.agent_id===t.id))?.id;return [{id:"name",label:"Agent name",type:"text",defaultValue:t.name,required:true,validate:b=>b.trim()?n?.some(y=>y.id!==t.id&&y.name===b.trim())?"Agent with this name already exists":null:"Name is required"},{id:"model",label:"Model",type:"select",options:f,defaultValue:t.config.model??""},{id:"effort",label:"Reasoning effort",type:"select",options:Ri,defaultValue:t.config.effort??"",skip:()=>!Ai.has(t.adapter)},{id:"role",label:"Role / specialization",type:"select",options:zr,defaultValue:l},{id:"role_custom",label:"Describe the role",type:"textarea",defaultValue:t.role&&!r?t.role:"",placeholder:"e.g. Specialist in React and TypeScript",skip:b=>b.role!=="__custom__"},{id:"team",label:"Team",type:"select",options:x,defaultValue:T??"",skip:()=>x.length<=1}]}var Tc=[{value:"1",label:"1 agent",hint:"~0.5 GB RAM, 1 subprocess"},{value:"2",label:"2 agents",hint:"~1 GB RAM, 2 subprocesses"},{value:"3",label:"3 agents",hint:"~1.5 GB RAM, 3 subprocesses"},{value:"4",label:"4 agents",hint:"~2 GB RAM, 4 subprocesses"},{value:"6",label:"6 agents",hint:"~3 GB RAM, 6 subprocesses"},{value:"8",label:"8 agents",hint:"~4 GB RAM, 8 subprocesses"},{value:"10",label:"10 agents",hint:"~5 GB RAM, 10 subprocesses"}],yc=[{value:"all",label:"All",hint:"show everything"},{value:"text",label:"Text",hint:"agent output only"},{value:"tools",label:"Tools",hint:"tool calls, results, files"},{value:"errors",label:"Errors",hint:"errors only"},{value:"events",label:"Events",hint:"lifecycle, system events"}],ki=[{value:"true",label:"On"},{value:"false",label:"Off"}];function Vi(t,n,o){let r=o??{toast:true,bell:false};return [{id:"activity_filter",label:"Activity filter preset",type:"select",options:yc,defaultValue:t},{id:"max_concurrent",label:"Max concurrent agents",type:"select",options:Tc,defaultValue:String(n)},{id:"notifications_toast",label:"Toast notifications",type:"select",options:ki,defaultValue:String(r.toast)},{id:"notifications_bell",label:"Bell on completion",type:"select",options:ki,defaultValue:String(r.bell)}]}function Hi(t){let n=t.role==="__custom__"?t.role_custom||void 0:t.role||void 0,o=t.effort||void 0;return {name:t.name,role:n,model:t.model||void 0,effort:o,team_id:t.team||void 0}}function Zo(t){let n=Ko(t,"Any agent","auto-assign to autonomous agents");return [{id:"title",label:"Goal title",type:"text",placeholder:'e.g. "Implement OAuth2 login with Google and GitHub"',description:"Be specific \u2014 agents work better with clear, measurable objectives",required:true,validate:o=>o.trim()?null:"Title is required"},{id:"assignee",label:"Assignee",type:"select",description:"Assigned agent gets autonomous mode \u2014 it will plan and execute without prompts",options:n,skip:()=>n.length<=1},{id:"description",label:"Description",type:"textarea",placeholder:"Success criteria, constraints, technical context...",description:'Context matters \u2014 include tech stack, constraints, and what "done" looks like'}]}function ji(t){return {title:t.title,assignee:t.assignee||void 0,description:t.description||void 0}}function Ui(t,n){let o=Ko(n,"Any agent","auto-assign");return [{id:"title",label:"Goal title",type:"text",defaultValue:t.title,description:"Be specific \u2014 agents work better with clear, measurable objectives",required:true,validate:r=>r.trim()?null:"Title is required"},{id:"assignee",label:"Assignee",type:"select",description:"Assigned agent gets autonomous mode \u2014 it will plan and execute without prompts",options:o,defaultValue:t.assignee??"",skip:()=>o.length<=1},{id:"description",label:"Description",type:"textarea",defaultValue:t.description||"",placeholder:"Success criteria, constraints, technical context...",description:'Context matters \u2014 include tech stack, constraints, and what "done" looks like'}]}function Xi(t){return {title:t.title,assignee:t.assignee||void 0,description:t.description??""}}var qi=10,Ki=500,nr=2048,bn=500,Yi=5,Hr=new Set(["todo","failed","cancelled"]),Cc={title:"Goals",description:["Define what your team should achieve.","The orchestrator breaks goals into tasks","and assigns them to agents automatically."],hints:[{key:"N",label:"new goal"},{key:"/",label:"commands"}],nudge:"Add more goals to keep your team focused."},Ic={title:"Tasks",description:["Units of work dispatched to agents.","Create them manually or let goals","generate them automatically."],hints:[{key:"N",label:"new task"},{key:"W",label:"start orchestrator"}],nudge:"Add more tasks to keep agents busy."},Mc={title:"Agents",description:["AI workers that execute your tasks.","Each agent uses an adapter (claude, codex,","cursor, shell) and has its own role."],hints:[{key:"N",label:"new agent"},{key:"W",label:"start orchestrator"}],nudge:"Add more agents to increase parallelism."},Zi=5e3,Qi=0;function lg(){Qi=0;}var ea=/^\[[\w_]+\]$/;function ta(t){return ea.test(t)?{msgType:"lifecycle",color:e.dim}:t.startsWith("\u2699")?{msgType:"tool",color:e.dim}:t.startsWith("\u2190")?{msgType:"result",color:e.dim}:t.startsWith("\u2713")?{msgType:"lifecycle",color:e.dim}:t.startsWith("\u23F3")?{msgType:"info",color:e.silver}:{msgType:"output",color:e.silver}}var Xr=["#5faf87","#5fafd7","#af87ff","#d7af00","#5fd7d7","#d787af","#afaf5f","#d7875f"],vc=" ".repeat(9),or={system:"\u2666",lifecycle:"\u25B6",output:"\u2502",tool:"\u2699",result:"\u2190",error:"\u2715",file:"\u270E",info:"\u2502"},er=["system","lifecycle","output","tool","result","error","file","info"],Fn=[{label:"all",types:er},{label:"text",types:["output"]},{label:"tools",types:["tool","result","file"]},{label:"errors",types:["error"]},{label:"events",types:["lifecycle","system"]}];function jr(t){let o=(Fn.findIndex(r=>r.types.length===t.size&&r.types.every(l=>t.has(l)))+1)%Fn.length;return Fn[o]}function Ur(t,n){if(t.length!==n.length)return true;for(let o=0;o<t.length;o++)if(t[o].id!==n[o].id||t[o].updated_at!==n[o].updated_at)return true;return false}function cg({projectName:t,tasks:n,agents:o=[],state:r,onRunTask:l,onCreateTask:f,onCancelTask:x,onRetryTask:T,onAssignTask:b$1,onRunAll:y,onDisableAgent:C,onEnableAgent:I,onSubscribeEvents:$,onRefreshTasks:S,onRefreshAgents:H,onRefreshState:V,onLoadHistory:F,onAddAgent:P,onDeleteAgent:j,onApproveTask:O,onRejectTask:L,onDeleteTask:N,onUpdateTask:E,onUpdateAgent:W,onForceStopAgent:z,onCreateTeam:X,onListTeams:_,onJoinTeam:le,onLeaveTeam:Ee,onDisbandTeam:Ft,onSetTeamLead:dt,onStartWatch:Ae,onStopWatch:Ke,onToggleAutonomous:ut,onRefreshGoals:pt,onCreateGoal:De,onUpdateGoal:Ye,onUpdateGoalStatus:gt,onDeleteGoal:Ze,onGetGoalProgress:rn,onCompleteOnboarding:Ce,initialWatchActive:ht,observerMode:xt,watchError:qt,messageBatchMs:mt=process.env.VITEST?0:80,initialActivityFilter:kt="all",onSaveActivityFilter:Ue,initialMaxConcurrent:uo=a.scheduling.max_concurrent_agents,onSaveMaxConcurrent:Gn,initialNotifications:Rt,onSaveNotifications:Gt,version:Wt,latestVersion:zt,onCheckUpdate:sn,onBackgroundInstall:an,defaultAdapter:nt="claude"}){let{exit:Wn}=useApp(),{stdout:At}=useStdout(),[Kt,ln]=useState(zt),zn=useRef(sn);useEffect(()=>{if(zt||!zn.current)return;let i=setTimeout(()=>{zn.current?.().then(p=>{p&&ln(p);}).catch(()=>{});},5e3);return ()=>clearTimeout(i)},[zt]);let[R,M]=useState(false),k=useRef(false);useEffect(()=>{!Kt||!an||k.current||R||(k.current=true,an(Kt).then(i=>{i&&M(true);}).catch(()=>{}));},[Kt,an,R]);let[B,Z]=useState({w:At?.columns??80,h:At?.rows??24});useEffect(()=>{if(!At)return;let i=()=>Z({w:At.columns,h:At.rows});return At.on("resize",i),()=>{At.off("resize",i);}},[At]);let K=B.w,ye=B.h,[ne,pe]=useState(n),[Q,Yt]=useState(o),[ve,rr]=useState(r),[go,sr]=useState(ht??!!r.pid),[Vn,qr]=useState([]),[aa,Kr]=useState(void 0),[Zt,mo]=useState(()=>r.onboardingCompleted||(r.stats?.total_tasks_completed??0)>0?"dismissed":Object.keys(r.running??{}).length>0?"run_started":n.length>0?"task_created":"welcome");useEffect(()=>{if(Zt!=="completed")return;let i=setTimeout(()=>{mo("dismissed"),Ce?.().catch(()=>{});},5e3);return ()=>clearTimeout(i)},[Zt,Ce]);let[A,Tn]=useState("tasks"),[fo,Hn]=useState(0),[ir,Yr]=useState(0),[ar,Zr]=useState(0),[$e,jn]=useState(false),[ze,Jr]=useState([]),[Fe,Oe]=useState("none"),[cn,Ct]=useState(""),[bt,Je]=useState(null),[dn,Un]=useState([]),[$t,lr]=useState(false),[Qr,la]=useState(()=>new Set),[yn,cr]=useState(false),[Xn,dr]=useState(false),[es,ts]=useState(()=>new Set(er)),[qn,ur]=useState(-1),[ca,Kn]=useState(0),[wn,gr]=useState(()=>{let i=Fn.find(p=>p.label===kt);return new Set(i?.types??er)}),po=useMemo(()=>Fn.find(p=>p.types.length===wn.size&&p.types.every(s=>wn.has(s)))?.label??"all",[wn]),mr=useMemo(()=>wn.size>=er.length?ze:ze.filter(i=>wn.has(i.msgType??"info")),[ze,wn]),[ns,da]=useState(uo),[ho,ua]=useState(Rt??{toast:true,bell:false}),[ga,os]=useState([]),ma=useRef(0),[fr,rs]=useState(),ss=useRef(A);ss.current=A;let is=useRef(ne);is.current=ne;let as=useRef(Q);as.current=Q;let xo=useRef(ho);xo.current=ho;let bo=useCallback((i,p)=>{if(!xo.current.toast)return;let s=is.current.find(h=>h.id===p),d=s?.title??p,g=s?.assignee?as.current.find(h=>h.id===s.assignee):void 0;os(h=>{let u=[...h,{id:`toast_${ma.current++}`,type:i,title:d,agentName:g?.name,ts:Date.now()}];return u.length>Yi?u.slice(u.length-Yi):u}),xo.current.bell&&(i==="failed"||i==="review")&&process.stdout.write("\x07");},[]),fa=useCallback(i=>{os(p=>p.filter(s=>s.id!==i));},[]),To=io.useRef(new No).current,[pa,Sn]=useState(0),[ls,cs]=useState(false),[Yn,ha]=useState(false),[xa,pr]=useState(0),[ba,hr]=useState(0),[xr,kn]=useState(0),[yo,br]=useState(false),[Ta,Zn]=useState(0),[wo,Jt]=useState(0),[Vt,ds]=useState([]),[Cn,Tr]=useState([]),In=useRef(Vt);In.current=Vt;let us=useRef(0),Y=useCallback(async i=>{us.current=Date.now();let[p,s,d,g,h]=await Promise.all([S?.()??Promise.resolve(ne),H?.()??Promise.resolve(Q),V?.()??Promise.resolve(ve),i?.includeTeams?_?.()??Promise.resolve(In.current):Promise.resolve(null),pt?.()??Promise.resolve(Vn)]);pe(u=>Ur(u,p)?p:u),Yt(u=>Ur(u,s)?s:u),rr(d),g!==null&&ds(g),qr(u=>Ur(u,h)?h:u),ht&&sr(!!d.pid);},[S,H,V,_,pt,ht]),Mn=useMemo(()=>{let i=new Map;for(let p of Vn)i.set(p.id,p);return i},[Vn]),Le=useMemo(()=>{let i=[...ne].sort((h,u)=>(oo[h.status]??9)-(oo[u.status]??9));if(!Yn)return i;let p=[],s=[],d=[],g=new Map;for(let h of i)h.goalId&&Mn.has(h.goalId)?(g.has(h.goalId)||(d.push(h.goalId),g.set(h.goalId,[])),g.get(h.goalId).push(h)):s.push(h);for(let h of d)p.push(...g.get(h));return [...p,...s]},[ne,Yn,Mn]),Bt=ls?Le:Le.slice(0,qi),vn=Le.length-Bt.length,U=Le[fo],Jn=useMemo(()=>{let i=new Map;for(let p of ne)i.set(p.id,p.title);return i},[ne]),un=useMemo(()=>{let i=new Map;for(let p of Q)i.set(p.id,p.name);return i},[Q]),ya=useMemo(()=>{let i=new Map;for(let p of ne)if(p.goalId){let s=i.get(p.goalId);s||(s=[],i.set(p.goalId,s)),s.push(p);}return i},[ne]),So=useMemo(()=>{let i=new Map;for(let p=0;p<Q.length;p++)i.set(Q[p].id,Xr[p%Xr.length]);return i},[Q]),gs=useMemo(()=>{let i=new Map;for(let p of ze)p.agentId&&i.set(p.agentId,(i.get(p.agentId)??0)+1);return i},[ze]),wa=useMemo(()=>{let i={};for(let p of ze){let s=p.msgType??"info";i[s]=(i[s]??0)+1;}return i},[ze]),{agentTeamMap:_n,activeTeamCount:Qn,teamLeadSet:Sa}=useMemo(()=>{let i=new Map,p=new Set,s=0;for(let d of Vt)if(d.status==="active"){s++,p.add(d.lead_agent_id);for(let g of d.members)i.set(g.agent_id,d.name);}return {agentTeamMap:i,activeTeamCount:s,teamLeadSet:p}},[Vt]),Ge=useMemo(()=>{let i=[...Q];return i.sort((p,s)=>{let d=_n.get(p.id),g=_n.get(s.id);return d&&!g?-1:!d&&g?1:d&&g&&d!==g?d.localeCompare(g):(Rr[p.status]??9)-(Rr[s.status]??9)}),i},[Q,_n]),ee=Ge[ir],ft=useMemo(()=>[...Vn].sort((i,p)=>(c[i.status]??9)-(c[p.status]??9)),[Vn]),re=ft[ar],ka=useMemo(()=>re?ne.filter(i=>i.goalId===re.id):[],[re,ne]),yr=useRef(rn);yr.current=rn,useEffect(()=>{if(!re||!yr.current){Kr(void 0);return}let i=false;return yr.current(re.id).then(p=>{i||Kr(p);}).catch(()=>{}),()=>{i=true;}},[re?.id]);let gn=useRef(new Map),ko=useRef(new Map);useEffect(()=>{for(let[i,p]of Object.entries(ve.running))gn.current.set(p.run_id,p.agent_id),ko.current.set(p.run_id,i);if(gn.current.size>Ki){let i=gn.current.size-Ki,p=0;for(let s of gn.current.keys()){if(p++>=i)break;gn.current.delete(s),ko.current.delete(s);}}},[ve.running]);let mn=useRef([]),eo=useRef(null),wr=useCallback(()=>{if(eo.current=null,mn.current.length===0)return;let i=mn.current;mn.current=[],Jr(p=>{if(i.length>=bn)return i.slice(-bn);let s=bn-i.length;return (p.length>s?p.slice(-s):p).concat(i)});},[]);useEffect(()=>()=>{eo.current&&clearTimeout(eo.current);},[]);let a=useCallback((i,p,s)=>{let d=new Date,g=d.toLocaleTimeString("en-US",{hour12:false,hour:"2-digit",minute:"2-digit",second:"2-digit"}),h=s?.detail&&s.detail.length>nr?s.detail.slice(0,nr)+"\u2026[truncated]":s?.detail;mn.current.push({text:i,color:p,time:g,ts:d.getTime(),...s,detail:h}),mn.current.length>bn&&(mn.current=mn.current.slice(-bn)),mt===0?wr():eo.current||(eo.current=setTimeout(wr,mt));},[wr]);useEffect(()=>{xt?a("Observer mode: watching external orchestrator via disk polling.",e.amber):qt&&a(`Watch mode failed: ${qt}. Tasks will not auto-dispatch.`,e.red);},[]),useEffect(()=>{let i=xt?3e3:5e3,p=setInterval(()=>{Date.now()-us.current>=i&&Y().catch(()=>{});},i);return ()=>clearInterval(p)},[xt,Y]);let Rn=useCallback((i,p,s,d)=>{let g={key:++Qi,entityType:i,entityId:p,entityName:s,expiresAt:Date.now()+Zi,needsForceStop:d?.needsForceStop};Tr(h=>[...h,g]),a(`\u2717 "${s}" will be deleted in ${Math.round(Zi/1e3)}s \u2014 press Z to undo`,e.yellow);},[a]),Ca=useCallback(()=>{Tr(i=>{if(i.length===0)return i;let p=i[i.length-1];return a(`\u21B6 Undo: "${p.entityName}" restored`,e.green),i.slice(0,-1)});},[a]),ms=useCallback(async i=>{try{i.entityType==="task"&&N?await N(i.entityId):i.entityType==="agent"?(i.needsForceStop&&z&&await z(i.entityId),j&&await j(i.entityId)):i.entityType==="goal"&&Ze&&await Ze(i.entityId),a(`\u2713 Deleted "${i.entityName}"`,e.green),Y();}catch(p){a(`Failed to delete "${i.entityName}": ${p instanceof Error?p.message:String(p)}`,e.red);}},[N,j,Ze,z,a,Y]),fs=useRef(ms);fs.current=ms,useEffect(()=>{if(Cn.length===0)return;let i=setInterval(()=>{let p=Date.now(),s=[];Tr(d=>{let g=d.filter(h=>h.expiresAt<=p?(s.push(h),false):true);return s.length>0?g:d});for(let d of s)fs.current(d);},1e3);return ()=>clearInterval(i)},[Cn.length>0]),useEffect(()=>{if(!F)return;let i=p=>{let s=new Date(p.timestamp).toLocaleTimeString("en-US",{hour12:false,hour:"2-digit",minute:"2-digit",second:"2-digit"}),d=typeof p.data=="string"?p.data:JSON.stringify(p.data),g,h=e.silver,u="output";if(p.type==="error")g=typeof p.data=="string"?p.data:JSON.stringify(p.data),g=g.slice(0,200),h=e.red,u="error";else if(p.type==="file_changed")g=String(p.data),h=e.purple,u="file";else if(p.type==="done")g="Completed",h=e.green,u="lifecycle";else if(p.type==="tool_call")g=`\u2699 ${p.data?.name??"tool"}()`,h=e.cyan,u="tool";else {let{summary:w}=ia(d);if(!w)return null;g=w;let J=ta(g);u=J.msgType,h=J.color;}return {text:g,color:h,time:s,ts:new Date(p.timestamp).getTime(),agentId:p.agentId,taskId:p.taskId,msgType:u}};F(p=>{if(p.length===0)return;let s=p.map(i).filter(d=>d!==null);Jr(d=>{let g=[...s,...d];return g.length>bn?g.slice(-bn):g});}).catch(p=>{process.stderr.write(`[TUI] onLoadHistory error: ${p instanceof Error?p.stack??p.message:String(p)}
12
- `);});},[]),useEffect(()=>{_?.().then(ds).catch(()=>{}),pt?.().then(qr).catch(()=>{});},[]);let Co=useCallback(()=>{Je({title:"NEW AGENT",steps:Yo(Q,In.current),kind:"agent"}),Oe("wizard");},[Q]),ps=useCallback(()=>{Je({title:"AGENT SHOP",steps:Oi(),kind:"agent_shop"}),Oe("wizard");},[]),Io=useCallback(()=>{Un([]),Je({title:"NEW TASK",steps:Di(Q),kind:"task"}),Oe("wizard");},[Q]),Ia=useCallback(async()=>{try{let{detectClipboardType:i,getClipboardImage:p}=await import('./clipboard-service-AJTJG2DJ.js'),s=await i();if(s!=="image")return a(s==="text"?"Clipboard has text, not image":"Clipboard is empty",e.dim),s;let d=await p();if(!d)return a("Failed to read clipboard image",e.red),"empty";let{mkdtemp:g,writeFile:h}=await import('fs/promises'),{tmpdir:u}=await import('os'),{join:w}=await import('path'),J=await g(w(u(),"orch-paste-")),Ot=w(J,`clipboard-${Date.now()}.${d.ext}`);return await h(Ot,d.data),Un(fn=>[...fn,Ot]),a(`\u{1F4CE} Image attached (${Math.round(d.data.length/1024)}KB)`,e.green),"image"}catch{return a("Clipboard paste failed",e.red),"empty"}},[a]),Ma=useCallback(i=>{Je({title:"EDIT TASK",steps:Gi(i,Q),kind:"edit_task",targetId:i.id}),Oe("wizard");},[Q]),hs=useCallback(()=>{Je({title:"NEW TEAM",steps:Pi(Q,Vt),kind:"team"}),Oe("wizard");},[Q]),va=useCallback(i=>{Je({title:"EDIT AGENT",steps:zi(i,Q,Vt),kind:"edit_agent",targetId:i.id}),Oe("wizard");},[Vt]),xs=useCallback(()=>{Je({title:"SETTINGS",steps:Vi(po,ns,ho),kind:"config"}),Oe("wizard");},[po,ns]),_a=useCallback(i=>{Oe("none");let p=bt?.kind,s=bt?.targetId;if(Je(null),p==="agent_shop"){let d=i.shop_template,g=d?b(d):void 0;if(g){let h=Yo(Q,In.current),u=Vr(h,g,nt);Je({title:`NEW AGENT \u2014 ${g.name}`,steps:u,kind:"agent_from_shop"}),Oe("wizard");}else a("No template selected",e.yellow);return}if((p==="agent"||p==="agent_from_shop")&&P){let d=Li(i,nt);a(`Creating agent "${d.name}"...`,e.amber),P(d.name,d.adapter,{model:d.model,effort:d.effort,role:d.role,approval_policy:d.approval_policy,skills:d.skills}).then(g=>{a(`\u2713 Created agent "${g.name}" (${g.id}, ${g.adapter})`,e.green),d.team_id&&le?le(d.team_id,g.id).then(h=>{a(`\u2713 Joined team "${h.name}"`,e.green),Y({includeTeams:true});},h=>a(`Failed to join team: ${h instanceof Error?h.message:String(h)}`,e.red)):Y();},g=>a(`Failed: ${g instanceof Error?g.message:String(g)}`,e.red));}else if(p==="team"&&X){let d=Ni(i);a(`Creating team "${d.name}"...`,e.amber),X(d).then(g=>{a(`\u2713 Created team "${g.name}" (${g.id}, ${g.members.length} members)`,e.green),Y({includeTeams:true});},g=>a(`Failed: ${g instanceof Error?g.message:String(g)}`,e.red));}else if(p==="task"&&f){let d=Fi(i),g=dn.length>0?[...dn]:void 0;Un([]),a(`Creating "${d.title}"...`,e.amber),f(d.title,{priority:d.priority,description:d.description,attachments:g}).then(h=>{a(`\u2713 Created "${h.title}" (${h.id})${g?` \u{1F4CE}${g.length}`:""}`,e.green),d.assignee&&b$1&&b$1(h.id,d.assignee).catch(()=>{}),Y();},h=>a(`Failed: ${h instanceof Error?h.message:String(h)}`,e.red));}else if(p==="edit_task"&&s&&E){let d=Wi(i),g=dn.length>0?[...dn]:void 0;Un([]),a("Updating task...",e.amber),E(s,{...d,attachments:g}).then(h=>{a(`\u2713 Updated "${h.title}"${g?` \u{1F4CE}${g.length}`:""}`,e.green),d.assignee&&b$1&&b$1(s,d.assignee).catch(()=>{}),Y();},h=>a(`Failed: ${h instanceof Error?h.message:String(h)}`,e.red));}else if(p==="edit_agent"&&s&&W){let d=Hi(i),g=d.team_id??"",h=Vt.find(u=>u.members.some(w=>w.agent_id===s))?.id??"";a("Updating agent...",e.amber),W(s,{name:d.name,role:d.role,model:d.model,effort:d.effort}).then(u=>{a(`\u2713 Updated agent "${u.name}"`,e.green);let w=[];h&&h!==g&&Ee&&w.push(Ee(h,s).then(J=>a(`\u2713 Left team "${J.name}"`,e.green),J=>a(`Failed to leave team: ${J instanceof Error?J.message:String(J)}`,e.red))),g&&g!==h&&le&&w.push(le(g,s).then(J=>a(`\u2713 Joined team "${J.name}"`,e.green),J=>a(`Failed to join team: ${J instanceof Error?J.message:String(J)}`,e.red))),Promise.all(w).then(()=>Y({includeTeams:w.length>0}));},u=>a(`Failed: ${u instanceof Error?u.message:String(u)}`,e.red));}else if(p==="config"){if(i.activity_filter){let u=Fn.find(w=>w.label===i.activity_filter);u&&(gr(new Set(u.types)),Ue?.(u.label));}if(i.max_concurrent){let u=parseInt(i.max_concurrent,10);u>0&&(da(u),Gn?.(u));}let d=i.notifications_toast==="true",g=i.notifications_bell==="true",h={toast:d,bell:g};ua(h),Gt?.(h),a("Settings saved",e.green);}else if(p==="goal"&&De){let d=ji(i);a(`Creating goal "${d.title}"...`,e.amber),De(d).then(g=>{a(`\u2713 Created goal "${g.title}" (${g.id})`,e.green),Y();},g=>a(`Failed: ${g instanceof Error?g.message:String(g)}`,e.red));}else if(p==="edit_goal"&&s&&Ye){let d=Xi(i);a("Updating goal...",e.amber),Ye(s,d).then(g=>{a(`\u2713 Updated goal "${g.title}"`,e.green),Y();},g=>a(`Failed: ${g instanceof Error?g.message:String(g)}`,e.red));}},[bt,P,f,X,le,Ee,b$1,E,W,ut,De,Ye,a,Y,Ue,Gn,ho,Gt,Vt,dn]),Ra=useCallback(()=>{Oe("none"),Je(null),Un([]);},[]),Aa=useCallback(i=>{let p=b(i);if(!p)return;let s=Yo(Q,In.current),d=Vr(s,p,nt);Je({title:`NEW AGENT \u2014 ${p.name}`,steps:d,kind:"agent_from_shop"}),Oe("wizard");},[]);useEffect(()=>{if(!$)return;let i=null,p=()=>{i||(i=setTimeout(()=>{i=null,Y().catch(()=>{});},150));},s=$(d=>{if(d.type==="agent:started"&&(gn.current.set(d.runId,d.agentId),ko.current.set(d.runId,d.taskId)),Uc(d,a,gn.current,ko.current),d.type==="task:created"?mo(g=>g==="welcome"?"task_created":g):d.type==="agent:started"?mo(g=>g==="task_created"?"run_started":g):d.type==="task:status_changed"&&d.to==="done"&&mo(g=>g==="run_started"?"completed":g),d.type==="task:status_changed"&&(d.to==="done"?bo("done",d.taskId):d.to==="failed"?bo("failed",d.taskId):d.to==="review"&&bo("review",d.taskId),xo.current.toast&&ss.current!=="tasks")){let g=d.to==="done"?e.green:d.to==="failed"?e.red:d.to==="review"?e.blue:void 0;g&&rs({tab:"tasks",color:g});}(d.type==="task:status_changed"||d.type==="task:created"||d.type==="task:assigned"||d.type==="agent:started"||d.type==="agent:completed"||d.type==="run:retry"||d.type==="goal:created"||d.type==="goal:status_changed"||d.type==="goal:updated"||d.type==="goal:deleted")&&p();});return ()=>{s(),i&&clearTimeout(i);}},[$,a,Y,bo]);let Sr=xt?"observing":go?"watching":"idle",$a=ve.started_at?g(ve.started_at):void 0,bs=ve.stats.total_tokens.total,Ts=useMemo(()=>{let i={running:0,retrying:0,review:0,todo:0,done:0,failed:0,cancelled:0};for(let p of ne)p.status==="in_progress"?i.running++:p.status==="retrying"?i.retrying++:p.status==="review"?i.review++:p.status==="todo"?i.todo++:p.status==="done"?i.done++:p.status==="failed"?i.failed++:p.status==="cancelled"&&i.cancelled++;return {...i,teams:Qn}},[ne,Qn]);Ts.running;let Ba=useMemo(()=>({input:ve.stats.total_tokens.input??0,output:ve.stats.total_tokens.output??0,reasoning:ve.stats.total_tokens.reasoning??0,total:bs,cache_read:ve.stats.total_tokens.cache_read??0,cache_write:ve.stats.total_tokens.cache_write??0}),[ve.stats.total_tokens,bs]),It=Math.max(4,ye-9),Ea=_n.size,Oa=Q.length>Ea,La=Qn>0?Qn+(Oa?1:0):0,Pa=useMemo(()=>{if(!Yn||Mn.size===0)return 0;let i=0,p=new Set,s=false;for(let d of Bt)d.goalId&&Mn.has(d.goalId)?p.has(d.goalId)||(p.add(d.goalId),i++):s=true;return s&&i++,i},[Yn,Mn,Bt]),Na=A==="goals"?ft.length+1:A==="tasks"?Bt.length+1+(vn>0?1:0)+Pa:A==="agents"?Q.length+1+La:0,Da=Math.min(Na+1,Math.ceil(It*.5)),Fa=A==="logs"?It:Math.max(2,Math.min(Da,It-4)),Se,Et;if(A==="logs")Se=It,Et=0;else if(yo)Se=0,Et=Math.max(1,It);else {let i=Math.max(3,Math.min(Fa+xr,It-4));Se=i,Et=Math.max(1,It-i);}let _e=Math.max(10,K-2),Mt=useMemo(()=>Fe==="command"?Js(cn):[],[Fe,cn]),An=It-4-3;useEffect(()=>{xr>An&&kn(An),xr<-An&&kn(-An);},[It]),useEffect(()=>{Sn(i=>Math.min(i,Math.max(0,Bt.length-Se)));},[Bt.length,Se]),useEffect(()=>{pr(i=>Math.min(i,Math.max(0,Ge.length-Se)));},[Ge.length,Se]),useEffect(()=>{hr(i=>Math.min(i,Math.max(0,ft.length-Se)));},[ft.length,Se]);let Ga=useCallback(i=>{let s=i.trim().replace(/^\//,"").split(/\s+/),d=s[0]?.toLowerCase();if(!d)return;let g=h=>h instanceof Error?h.message:String(h);switch(d){case "cancel":{if(!U){a("No task selected",e.yellow);return}if(!x)return;a(`Cancelling "${U.title}"...`,e.amber),x(U.id).then(()=>{a(`\u2713 Cancelled "${U.title}"`,e.green),Y();},h=>a(`Failed: ${g(h)}`,e.red));return}case "retry":{if(!U){a("No task selected",e.yellow);return}if(!T)return;a(`Retrying "${U.title}"...`,e.amber),T(U.id).then(()=>{a(`\u2713 Retried "${U.title}"`,e.green),Y();},h=>a(`Failed: ${g(h)}`,e.red));return}case "assign":{if(!U){a("No task selected",e.yellow);return}if(!b$1||!s[1]){a("Usage: assign <agent>",e.yellow);return}a(`Assigning "${U.title}" to ${s[1]}...`,e.amber),b$1(U.id,s[1]).then(()=>{a(`\u2713 Assigned "${U.title}" to ${s[1]}`,e.green),Y();},h=>a(`Failed: ${g(h)}`,e.red));return}case "task":{let h=s[1]?.toLowerCase();if(h==="add"){let u=s.slice(2).join(" ");if(!u){Io();return}if(!f){a("Create not available",e.yellow);return}a(`Creating "${u}"...`,e.amber),f(u).then(w=>{a(`\u2713 Created "${w.title}" (${w.id})`,e.green),Y();},w=>a(`Failed: ${g(w)}`,e.red));}else if(h==="list"){let u=Le.map(w=>` ${w.id} ${w.status.padEnd(11)} ${w.title}`);if(u.length===0)a("No tasks",e.dim);else for(let w of u)a(w,e.cyan);}else if(h==="show"){let u=s[2]?Le.find(w=>w.id===s[2]):U;if(!u){a("No task selected or id given",e.yellow);return}a(`${u.id} ${u.status} P${u.priority} "${u.title}"`,e.cyan),u.assignee&&a(` agent: ${u.assignee}`,e.dim),u.description&&a(` ${u.description.slice(0,100)}`,e.dim);}else if(h==="cancel"){let u=s[2]?Le.find(w=>w.id===s[2]):U;if(!u){a("No task selected or id given",e.yellow);return}if(!x)return;a(`Cancelling "${u.title}"...`,e.amber),x(u.id).then(()=>{a(`\u2713 Cancelled "${u.title}"`,e.green),Y();},w=>a(`Failed: ${g(w)}`,e.red));}else if(h==="retry"){let u=s[2]?Le.find(w=>w.id===s[2]):U;if(!u){a("No task selected or id given",e.yellow);return}if(!T)return;a(`Retrying "${u.title}"...`,e.amber),T(u.id).then(()=>{a(`\u2713 Retried "${u.title}"`,e.green),Y();},w=>a(`Failed: ${g(w)}`,e.red));}else if(h==="assign"){let u=s[2]?Le.find(Ot=>Ot.id===s[2]):void 0,w=u??U,J=u?s[3]:s[2];if(!w){a("No task selected or id given",e.yellow);return}if(!J){a("Usage: /task assign [id] <agent>",e.yellow);return}if(!b$1)return;a(`Assigning "${w.title}" to ${J}...`,e.amber),b$1(w.id,J).then(()=>{a(`\u2713 Assigned "${w.title}" to ${J}`,e.green),Y();},Ot=>a(`Failed: ${g(Ot)}`,e.red));}else if(h==="approve"){let u=s[2]?Le.find(w=>w.id===s[2]):U;if(!u){a("No task selected or id given",e.yellow);return}if(u.status!=="review"){a(`Cannot approve \u2014 status is ${u.status}`,e.yellow);return}if(!O)return;a(`Approving "${u.title}"...`,e.amber),O(u.id).then(()=>{a(`\u2713 Approved "${u.title}"`,e.green),Y();},w=>a(`Failed: ${g(w)}`,e.red));}else if(h==="reject"){let u=s[2]?Le.find(J=>J.id===s[2]):U;if(!u){a("No task selected or id given",e.yellow);return}if(u.status!=="review"){a(`Cannot reject \u2014 status is ${u.status}`,e.yellow);return}if(!L)return;let w=s.slice(s[2]&&Le.find(J=>J.id===s[2])?3:2).join(" ").trim()||void 0;a(`Rejecting "${u.title}"${w?" with feedback":""}...`,e.amber),L(u.id,w).then(()=>{a(`\u2713 Rejected "${u.title}" \u2192 todo`,e.green),Y();},J=>a(`Failed: ${g(J)}`,e.red));}else if(h==="delete"){let u=s[2]?Le.find(w=>w.id===s[2]):U;if(!u){a("No task selected or id given",e.yellow);return}if(u.status==="in_progress"){a("Cannot delete \u2014 task is running",e.yellow);return}if(!N)return;Rn("task",u.id,u.title);}else a("Usage: /task add|list|show|cancel|retry|assign|approve|reject|delete",e.yellow);return}case "agent":{let h=s[1]?.toLowerCase();if(h==="add"){let u=s[2];if(!u){Co();return}if(!P){a("Agent creation not available",e.yellow);return}let w=s[3];a(`Creating agent "${u}"...`,e.amber),P(u,w).then(J=>{a(`\u2713 Created agent "${J.name}" (${J.id}, ${J.adapter})`,e.green),Y();},J=>a(`Failed: ${g(J)}`,e.red));}else if(h==="list"){let u=Ge.map(w=>` ${w.id} ${w.status.padEnd(8)} ${w.name} (${w.adapter})`);if(u.length===0)a("No agents",e.dim);else for(let w of u)a(w,e.cyan);}else if(h==="disable"){let u=s[2]?Ge.find(w=>w.id===s[2]||w.name===s[2]):ee;if(!u){a("No agent selected or id given",e.yellow);return}if(!C)return;a(`Disabling ${u.name}...`,e.amber),C(u.id).then(()=>{a(`\u2713 Disabled ${u.name}`,e.green),Y();},w=>a(`Failed: ${g(w)}`,e.red));}else if(h==="enable"){let u=s[2]?Ge.find(w=>w.id===s[2]||w.name===s[2]):ee;if(!u){a("No agent selected or id given",e.yellow);return}if(!I)return;a(`Enabling ${u.name}...`,e.amber),I(u.id).then(()=>{a(`\u2713 Enabled ${u.name}`,e.green),Y();},w=>a(`Failed: ${g(w)}`,e.red));}else if(h==="delete"||h==="remove"){let u=s[2]?Ge.find(w=>w.id===s[2]||w.name===s[2]):ee;if(!u){a("No agent selected or id given",e.yellow);return}if(u.status==="running"){a("Cannot delete \u2014 agent is running",e.yellow);return}if(!j){a("Agent deletion not available",e.yellow);return}Rn("agent",u.id,u.name);}else if(h==="autonomous"||h==="auto"){let u=s[2]?Ge.find(w=>w.id===s[2]||w.name===s[2]):ee;if(!u){a("No agent selected or id given",e.yellow);return}if(!ut){a("Autonomous toggle not available",e.yellow);return}u.autonomous?(a(`Disabling autonomous mode for "${u.name}"...`,e.amber),ut(u.id,false).then(()=>{a(`${pn} ${u.name} autonomous OFF`,e.cyan),Y();},w=>a(`Failed: ${g(w)}`,e.red))):(a(`Enabling autonomous mode for "${u.name}"...`,e.amber),ut(u.id,true).then(()=>{a(`${pn} ${u.name} autonomous ON`,e.cyan),Y();},w=>a(`Failed: ${g(w)}`,e.red)));}else h==="shop"?ps():a("Usage: /agent add|list|disable|enable|delete|autonomous|shop",e.yellow);return}case "team":{let h=s[1]?.toLowerCase();if(h==="create"||h==="add")hs();else if(h==="list"){let u=In.current;if(u.length===0)a("No teams",e.dim);else for(let w of u)a(` ${w.id} ${w.status.padEnd(8)} ${w.name} (${w.members.length} members)`,e.cyan);}else if(h==="join"){if(!le){a("Join not available",e.yellow);return}let u=s[2],w=s[3]??ee?.id;if(!u||!w){a("Usage: /team join <teamId> [agentId]",e.yellow);return}a(`Joining team ${u}...`,e.amber),le(u,w).then(J=>{a(`\u2713 Agent joined team "${J.name}"`,e.green),Y({includeTeams:true});},J=>a(`Failed: ${g(J)}`,e.red));}else if(h==="leave"){if(!Ee){a("Leave not available",e.yellow);return}let u=s[2],w=s[3]??ee?.id;if(!u||!w){a("Usage: /team leave <teamId> [agentId]",e.yellow);return}a(`Leaving team ${u}...`,e.amber),Ee(u,w).then(J=>{a(`\u2713 Agent left team "${J.name}"`,e.green),Y({includeTeams:true});},J=>a(`Failed: ${g(J)}`,e.red));}else if(h==="disband"){if(!Ft){a("Disband not available",e.yellow);return}let u=s[2];if(!u){a("Usage: /team disband <teamId>",e.yellow);return}a(`Disbanding team ${u}...`,e.amber),Ft(u).then(()=>{a("\u2713 Team disbanded",e.green),Y({includeTeams:true});},w=>a(`Failed: ${g(w)}`,e.red));}else if(h==="set-lead"){if(!dt){a("Set-lead not available",e.yellow);return}let u=s[2],w=s[3];if(!u||!w){a("Usage: /team set-lead <teamId> <agentId>",e.yellow);return}a(`Setting lead for team ${u}...`,e.amber),dt(u,w).then(J=>{a(`\u2713 New lead for team "${J.name}"`,e.green),Y({includeTeams:true});},J=>a(`Failed: ${g(J)}`,e.red));}else a("Usage: /team create|list|join|leave|disband|set-lead",e.yellow);return}case "goal":{let h=s[1]?.toLowerCase();if(h==="add"||h==="create"){let u=s.slice(2).join(" ").trim();if(!u){let w=Zo(Q);Je({title:"New Goal",steps:w,kind:"goal"}),Oe("wizard");return}if(!De){a("Goal creation not available",e.yellow);return}a(`Creating goal "${u}"...`,e.amber),De({title:u}).then(w=>{a(`\u2713 Created goal "${w.title}" (${w.id})`,e.green),Y();},w=>a(`Failed: ${g(w)}`,e.red));}else if(h==="list"){let u=ft.map(w=>` ${w.id} ${w.status.padEnd(8)} ${w.title}`);if(u.length===0)a("No goals",e.dim);else for(let w of u)a(w,e.cyan);}else if(h==="show"){let u=s[2]?ft.find(w=>w.id===s[2]):re;if(!u){a("No goal selected or id given",e.yellow);return}a(`${u.id} ${u.status} "${u.title}"`,e.cyan),u.description&&a(` ${u.description.slice(0,100)}`,e.dim);}else if(h==="status"){let u=s[2]?ft.find(fn=>fn.id===s[2]):void 0,w=u??re;if(!w){a("No goal selected or id given",e.yellow);return}let J=s[u?3:2];if(!J||!a$1.includes(J)){a("Usage: /goal status [id] <active|paused|achieved|abandoned>",e.yellow);return}let Ot=J;if(!gt){a("Status update not available",e.yellow);return}a(`Updating goal status to ${Ot}...`,e.amber),gt(w.id,Ot).then(fn=>{a(`\u2713 Goal "${fn.title}" \u2192 ${Ot}`,e.green),Y();},fn=>a(`Failed: ${g(fn)}`,e.red));}else if(h==="delete"){let u=s[2]?ft.find(w=>w.id===s[2]):re;if(!u){a("No goal selected or id given",e.yellow);return}if(!Ze){a("Goal deletion not available",e.yellow);return}Rn("goal",u.id,u.title);}else a("Usage: /goal add|list|show|status|delete",e.yellow);return}case "run":{let h=s[1]??U?.id;if(!h){a("No task selected or id given",e.yellow);return}if(!l){a("Run not available",e.yellow);return}let u=Le.find(w=>w.id===h);if(u&&!Hr.has(u.status)){a(`Cannot run \u2014 status is ${u.status}`,e.yellow);return}a(`Running ${h}...`,e.amber),l(h).then(()=>{a(`\u2713 Dispatched ${h}`,e.green),Y();},w=>a(`Failed: ${g(w)}`,e.red));return}case "run-all":{if(!y){a("Run-all not available",e.yellow);return}a("Running all todo tasks...",e.amber),y().then(()=>{a("\u2713 Dispatched all todo tasks",e.green),Y();},h=>a(`Failed: ${g(h)}`,e.red));return}case "watch":{if(go){a("Watch mode already active",e.yellow);return}if(!Ae){a("Watch not available",e.yellow);return}a("Starting watch mode...",e.amber),Ae().then(()=>{sr(true),a("\u2713 Watch mode started",e.green);},h=>a(`Failed: ${g(h)}`,e.red));return}case "pause":{if(!go){a("Watch mode not active",e.yellow);return}if(!Ke){a("Pause not available",e.yellow);return}a("Pausing watch mode...",e.amber),Ke().then(()=>{sr(false),a("\u2713 Watch mode paused",e.green);},h=>a(`Failed: ${g(h)}`,e.red));return}case "config":{s[1]?.toLowerCase()==="activity-filter"?gr(u=>{let w=jr(u);return Ue?.(w.label),a(`Activity filter: ${w.label}`,e.amber),new Set(w.types)}):xs();return}case "status":{let h=ne.filter(u=>u.status==="in_progress").length;a(`${Sr} ${h} running ${ne.length} tasks ${Ge.length} agents`,e.cyan);return}case "help":{for(let[h,u]of Object.entries(hn)){let w=u.sub?" "+u.sub.join("|"):u.args?" "+u.args:"";a(` /${h}${w} \u2014 ${u.help}`,e.silver);}return}case "quit":{Wn();return}case "disable":{if(!ee){a("No agent selected",e.yellow);return}if(!C)return;a(`Disabling ${ee.name}...`,e.amber),C(ee.id).then(()=>{a(`\u2713 Disabled ${ee.name}`,e.green),Y();},h=>a(`Failed: ${g(h)}`,e.red));return}case "enable":{if(!ee){a("No agent selected",e.yellow);return}if(!I)return;a(`Enabling ${ee.name}...`,e.amber),I(ee.id).then(()=>{a(`\u2713 Enabled ${ee.name}`,e.green),Y();},h=>a(`Failed: ${g(h)}`,e.red));return}default:a(`Unknown: ${d}. Type /help for commands`,e.yellow);}},[U,ee,Le,Ge,ne,Sr,go,x,T,b$1,y,l,f,C,I,P,O,L,N,le,Ee,Ft,dt,Ae,Ke,a,Wn,Y,Io,Co,hs,xs]);useInput((i,p)=>{if(!($t&&(lr(false),i==="?"||p.escape||i==="\x1BOP"))&&!yn){if((p.ctrl||p.meta)&&i==="s"&&Fe==="wizard"&&bt?.kind==="agent"){ps();return}if(Fe!=="none"){if(p.escape){Oe("none"),Ct(""),To.reset();return}if(p.return){let s=cn.trim();if(!s)return;if(Fe==="new_task"){if(!f)return;Oe("none"),Ct(""),a(`Creating "${s}"...`,e.amber),f(s).then(d=>{a(`\u2713 Created "${d.title}" (${d.id})`,e.green),Y();},d=>a(`Failed to create: ${d instanceof Error?d.message:String(d)}`,e.red));}else if(Fe==="command"){let d=s;if(Mt.length>0&&Mt[wo]){let g=Mt[wo],h=g.cmd.replace(/\s+\[.*\]$/,"");if((h.startsWith(s)||s==="/")&&(d=h),g.subs&&!h.includes(" ")){Ct(h+" "),Jt(0);return}}Oe("none"),Ct(""),Jt(0),To.push(d),Ga(d);}return}if(p.tab&&Fe==="command"){if(Mt.length>0){let s=Mt[wo];if(s){let d=s.cmd.replace(/\s+\[.*\]$/,"");Ct(d+(s.subs?" ":"")),Jt(0);}}else {let s=$r(cn);s&&Ct(d=>d+s);}return}if(p.upArrow&&Fe==="command"){if(Mt.length>0)Jt(s=>Math.max(0,s-1));else {let s=To.prev();s!==null&&Ct(s);}return}if(p.downArrow&&Fe==="command"){if(Mt.length>0)Jt(s=>Math.min(Mt.length-1,s+1));else {let s=To.next();Ct(s??"");}return}if(p.backspace||p.delete){Ct(s=>s.slice(0,-1)),Jt(0);return}i&&!p.ctrl&&!p.meta&&(Ct(s=>s+i),Jt(0));return}if(i.toLowerCase()==="q"){Wn();return}if(p.escape){if($e){jn(false),Zn(0);return}if(A==="logs"&&qn>=0){ur(-1),Kn(0);return}return}if((i==="+"||i==="=")&&A!=="logs"){yo?(br(false),kn(-Math.floor(It/2))):kn(s=>Math.max(-An,s-3));return}if(i==="-"&&A!=="logs"){yo?(br(false),kn(Math.floor(It/2))):kn(s=>Math.min(An,s+3));return}if(i==="M"&&A!=="logs"){br(s=>!s);return}if(i==="?"){lr(true);return}if(i==="\x1BOP"){lr(true);return}if(i==="/"&&!$e){Oe("command"),Ct("/"),Jt(0);return}if((i==="a"||i==="A")&&A==="logs"&&!$e&&!yn&&!Xn){cr(true);return}if(i==="f"&&A==="logs"&&!$e&&!yn&&!Xn){dr(true);return}if(i==="F"&&A==="logs"&&!$e&&!yn&&!Xn){ts(s=>new Set(jr(s).types));return}if((i==="z"||i==="Z")&&Cn.length>0){Ca();return}if((i==="f"||i==="F")&&(A==="tasks"||A==="agents"||A==="goals")&&!$e){gr(s=>{let d=jr(s);return Ue?.(d.label),new Set(d.types)});return}if((i==="n"||i==="N")&&A==="tasks"&&!$e&&f){Io();return}if((i==="n"||i==="N")&&A==="agents"&&!$e&&P){Co();return}if((i==="n"||i==="N")&&A==="goals"&&!$e&&De){let s=Zo(Q);Je({title:"New Goal",steps:s,kind:"goal"}),Oe("wizard");return}if((i==="e"||i==="E")&&A==="goals"&&re&&Ye){let s=Ui(re,Q);Je({title:`Edit Goal: ${re.title}`,steps:s,kind:"edit_goal",targetId:re.id}),Oe("wizard");return}if((i==="d"||i==="D")&&A==="goals"&&re&&Ze){Rn("goal",re.id,re.title);return}if((i==="c"||i==="C")&&A==="goals"&&re&&gt){(re.status==="active"||re.status==="paused")&&(a(`Marking goal "${re.title}" as achieved (pending tasks will be cancelled)...`,e.amber),gt(re.id,"achieved",{force:true}).then(()=>{a(`\u2713 Goal "${re.title}" achieved`,e.green),Y();},s=>a(`Failed: ${s instanceof Error?s.message:String(s)}`,e.red)));return}if((i==="x"||i==="X")&&A==="goals"&&re&&gt){(re.status==="active"||re.status==="paused")&&(a(`Abandoning goal "${re.title}"...`,e.amber),gt(re.id,"abandoned").then(()=>{a(`\u2713 Goal "${re.title}" abandoned`,e.dim),Y();},s=>a(`Failed: ${s instanceof Error?s.message:String(s)}`,e.red)));return}if((i==="p"||i==="P")&&A==="goals"&&re&&gt){let s=re.status==="paused"?"active":"paused";(re.status==="active"||re.status==="paused")&&gt(re.id,s).then(()=>{a(`Goal "${re.title}" ${s}`,e.cyan),Y();},d=>a(`Failed: ${d instanceof Error?d.message:String(d)}`,e.red));return}if((i==="a"||i==="A")&&A==="tasks"&&U?.status==="review"&&O){a(`Approving "${U.title}"...`,e.amber),O(U.id).then(()=>{a(`\u2713 Approved "${U.title}"`,e.green),Y();},s=>a(`Failed: ${s instanceof Error?s.message:String(s)}`,e.red));return}if((i==="x"||i==="X")&&A==="tasks"&&U?.status==="review"&&L){a(`Rejecting "${U.title}"...`,e.amber),L(U.id).then(()=>{a(`\u2713 Rejected "${U.title}" \u2192 todo`,e.green),Y();},s=>a(`Failed: ${s instanceof Error?s.message:String(s)}`,e.red));return}if((i==="c"||i==="C")&&A==="tasks"&&U&&x){if(U.status==="done"||U.status==="failed"||U.status==="cancelled"){a(`Cannot cancel \u2014 status is ${U.status}`,e.yellow);return}a(`Cancelling "${U.title}"...`,e.amber),x(U.id).then(()=>{a(`\u2713 Cancelled "${U.title}"`,e.green),Y();},s=>a(`Failed: ${s instanceof Error?s.message:String(s)}`,e.red));return}if((i==="e"||i==="E")&&A==="tasks"&&U&&E){Ma(U);return}if((i==="e"||i==="E")&&A==="agents"&&ee&&W){va(ee);return}if((i==="s"||i==="S")&&A==="tasks"){cs(s=>!s),Hn(0),Sn(0);return}if((i==="g"||i==="G")&&A==="tasks"&&!$e){ha(s=>!s),Hn(0),Sn(0);return}if((i==="s"||i==="S")&&A==="agents"&&ee&&z){if(!Object.values(ve.running).some(d=>d.agent_id===ee.id)&&ee.status!=="running"){a(`Agent "${ee.name}" is not running`,e.yellow);return}a(`Force-stopping agent "${ee.name}"...`,e.amber),z(ee.id).then(()=>{a(`\u2713 Stopped agent "${ee.name}"`,e.green),Y();},d=>a(`Failed: ${d instanceof Error?d.message:String(d)}`,e.red));return}if((i==="d"||i==="D")&&A==="tasks"&&U&&U.status!=="in_progress"&&N){Rn("task",U.id,U.title);return}if((i==="d"||i==="D")&&A==="agents"&&ee&&j){let s=Object.values(ve.running).some(d=>d.agent_id===ee.id);if(s&&!z){a(`Cannot delete \u2014 agent "${ee.name}" is running. Press S to stop first.`,e.yellow);return}Rn("agent",ee.id,ee.name,{needsForceStop:s});return}if((i==="u"||i==="U")&&A==="agents"&&ee&&ut){let s=!ee.autonomous;a(`${s?"Enabling":"Disabling"} autonomous mode for "${ee.name}"...`,e.amber),ut(ee.id,s).then(()=>{a(`${pn} ${ee.name} autonomous ${s?"ON":"OFF"}`,e.cyan),Y();},d=>a(`Failed: ${d instanceof Error?d.message:String(d)}`,e.red));return}if(!$e){if(i==="g"||i==="G"){Tn("goals");return}if(i==="t"||i==="T"){Tn("tasks");return}if(i==="a"||i==="A"){Tn("agents");return}if(i==="l"||i==="L"){Tn("logs");return}}if(!$e){let s=Oo.map(g=>g.id),d=s.indexOf(A);if(p.tab||p.rightArrow){Tn(s[(d+1)%s.length]);return}if(p.leftArrow){Tn(s[(d+s.length-1)%s.length]);return}}if(p.return){let s=vn>0?Bt.length:-1;if(A==="tasks"&&fo===s){cs(g=>!g),Hn(0),Sn(0);return}let d=Bt.length+(vn>0?1:0);if(A==="tasks"&&fo===d&&f){Io();return}if(A==="goals"&&ar===ft.length&&De){let g=Zo(Q);Je({title:"New Goal",steps:g,kind:"goal"}),Oe("wizard");return}if(A==="agents"&&ir===Ge.length&&P){Co();return}if(A==="goals"&&re){jn(g=>!g),Zn(0);return}if(A==="tasks"&&U){jn(g=>!g);return}if(A==="agents"&&ee){jn(g=>!g);return}if(A==="logs"&&qn>=0){jn(g=>!g);return}}if((i==="r"||i==="R")&&A==="tasks"&&U&&l){if(!Hr.has(U.status)){a(`Cannot run "${U.title}" \u2014 status is ${U.status}`,e.yellow);return}a(`Running "${U.title}"...`,e.green),l(U.id).then(()=>{a(`Dispatched "${U.title}"`,e.green),Y();},s=>a(`Failed to run: ${s instanceof Error?s.message:String(s)}`,e.red));return}if(p.upArrow||i==="k"){if(A==="goals"&&$e){Zn(s=>Math.max(0,s-1));return}A==="goals"?Zr(s=>{let d=Math.max(0,s-1);return hr(g=>d<g?d:g),d}):A==="tasks"?Hn(s=>{let d=Math.max(0,s-1);return Sn(g=>d<g?d:g),d}):A==="agents"?Yr(s=>{let d=Math.max(0,s-1);return pr(g=>d<g?d:g),d}):A==="logs"&&ur(s=>{if(s===-1){let g=ze.length-1;return Kn(Math.max(0,g-Se+2)),Math.max(0,g)}let d=Math.max(0,s-1);return Kn(g=>d<g?d:g),d});}if(p.downArrow||i==="j"){if(A==="goals"&&$e){Zn(s=>s+1);return}if(A==="goals"){let s=ft.length+(De?1:0)-1;Zr(d=>{let g=Math.min(Math.max(0,s),d+1);return hr(h=>g>=h+Se?g-Se+1:h),g});}else if(A==="tasks"){let s=Bt.length+(f?1:0)+(vn>0?1:0)-1;Hn(d=>{let g=Math.min(Math.max(0,s),d+1);return Sn(h=>g>=h+Se?g-Se+1:h),g});}else if(A==="agents"){let s=Ge.length+(P?1:0)-1;Yr(d=>{let g=Math.min(Math.max(0,s),d+1);return pr(h=>g>=h+Se?g-Se+1:h),g});}else A==="logs"&&ur(s=>{if(s===-1)return -1;let d=ze.length-1;if(s>=d)return Kn(0),-1;let g=s+1;return Kn(h=>g>=h+Se-1?g-Se+2:h),g});}}});let ot=Fe!=="none",ys=qn>=0?ze[qn]:void 0,Mo=yo?"+/- exit max":"+/- resize \u2502 M max",ws=!ot&&$e&&A==="tasks"&&U,Ss=!ot&&$e&&A==="agents"&&ee,ks=!ot&&$e&&A==="goals"&&re,Wa=!ot&&$e&&A==="logs"&&ys,kr=U?.id,za=useMemo(()=>kr?ze.filter(i=>i.taskId===kr):[],[ze,kr]),Va=!ot&&A==="tasks"&&U&&Hr.has(U.status)&&!!l,Ha=!ot&&!$e&&(A==="goals"&&!!De||A==="tasks"&&!!f||A==="agents"&&!!P),ja=!ot&&A==="tasks"&&U?.status==="review"&&!!O,Ua=!ot&&A==="tasks"&&U?.status==="review"&&!!L,Xa=ee?Object.values(ve.running).some(i=>i.agent_id===ee.id):false,qa=!ot&&(A==="goals"&&re&&!!Ze||A==="tasks"&&U&&U.status!=="in_progress"&&!!N||A==="agents"&&ee&&!!j),Ka=!ot&&!$e&&(A==="goals"&&!!re&&!!Ye||A==="tasks"&&!!U&&!!E||A==="agents"&&!!ee&&!!W),Ya=!ot&&A==="agents"&&ee&&(Xa||ee.status==="running")&&!!z,Za=!ot&&A==="agents"&&!!ee&&!!ut,Ja=!ot&&A==="goals"&&!!re&&(re.status==="active"||re.status==="paused")&&!!gt,Qa=!ot&&Cn.length>0,Cs=Fe==="command"&&Mt.length>0,Is=bt?.kind==="task"||bt?.kind==="edit_task";return jsxs(Box,{flexDirection:"column",width:K,height:ye,children:[jsx(Zs,{projectName:t,activeView:A,mode:Sr,stats:Ts,tokens:Ba,uptime:$a,width:K,version:Wt,latestVersion:Kt,updateInstalled:R,taskBadge:vn>0?Le.length:void 0,flashTab:fr?.tab,flashColor:fr?.color,onFlashComplete:fr?()=>rs(void 0):void 0}),jsx(Box,{height:1}),$t&&jsx(wi,{width:K,height:ye-7}),!$t&&Zt==="welcome"&&A==="tasks"&&jsx(ui,{width:K,height:ye}),!$t&&A==="goals"&&jsx(Ac,{goals:ft,selectedIndex:ar,scrollOffset:ba,height:Se,width:_e,showAddRow:!!De,agentNameMap:un,tasksByGoalMap:ya}),!$t&&Zt!=="welcome"&&A==="tasks"&&jsx(Bc,{tasks:Bt,selectedIndex:fo,scrollOffset:pa,height:Se,width:_e,showAddRow:!!f,agentNameMap:un,hiddenCount:vn,goalMap:Mn,groupByGoal:Yn}),!$t&&A==="tasks"&&(Zt==="task_created"||Zt==="run_started")&&jsx(gi,{step:Zt,width:K}),!$t&&A==="tasks"&&Zt==="completed"&&jsx(mi,{width:K}),!$t&&A==="agents"&&jsx(Ec,{agents:Ge,selectedIndex:ir,scrollOffset:xa,height:Se,width:_e,state:ve,taskTitleMap:Jn,showAddRow:!!P,agentTeamMap:_n,teamLeadSet:Sa,activeTeamCount:Qn}),!$t&&A==="logs"&&jsxs(Fragment,{children:[jsx(Lc,{messages:ze,height:yn||Xn?Math.max(3,Se-16):Se,agents:Ge,logAgentFilter:Qr,logTypeFilter:es,selectedIndex:qn,scrollOffset:ca,agentNameMap:un,agentColorMap:So,agentMsgCounts:gs,taskTitleMap:Jn,width:_e}),yn&&jsx(Box,{paddingX:2,children:jsx(ii,{agents:Ge,selected:Qr,msgCounts:gs,colorMap:So,maxHeight:Math.min(Se-4,18),onConfirm:i=>{la(i),cr(false);},onCancel:()=>cr(false)})}),Xn&&jsx(Box,{paddingX:2,children:jsx(di,{selected:es,typeCounts:wa,onConfirm:i=>{ts(i),dr(false);},onCancel:()=>dr(false)})})]}),jsx(Box,{height:1}),$t?null:Fe==="wizard"&&bt?jsx(oi,{title:bt.title,steps:bt.steps,onComplete:_a,onCancel:Ra,width:_e,height:Et,onPasteImage:Is?Ia:void 0,onSuggestionSelected:bt.kind==="agent"?Aa:void 0,footerExtra:dn.length>0&&Is?`\u{1F4CE}${dn.length}`:void 0},`${bt.kind}-${bt.title}`):Cs?jsxs(Fragment,{children:[jsx(Jo,{label:"COMMANDS",width:_e}),jsx(Rc,{suggestions:Mt,selectedIndex:wo,height:Math.min(Mt.length,Et),width:_e})]}):Fe==="new_task"?jsxs(Fragment,{children:[jsx(Vc,{mode:Fe,width:_e}),jsx(Hc,{mode:Fe,value:cn,width:_e})]}):ws?jsxs(Fragment,{children:[jsx(Dc,{task:U,width:_e,resizeHint:Mo}),jsx(qs,{task:U,height:Et,width:_e,taskLogs:za,agentNameMap:un,taskTitleMap:Jn})]}):ks?jsxs(Fragment,{children:[jsx(Jo,{label:`GOAL: ${re.title}`,width:_e,suffixLen:Mo.length+2,suffix:jsxs(Text,{color:e.dim,children:[" ",Mo," "]})}),jsx($c,{goal:re,height:Et,width:_e,agentNameMap:un,tasks:ka,progressReport:aa,scrollOffset:Ta,onClampScroll:Zn})]}):Ss?jsxs(Fragment,{children:[jsx(Fc,{agent:ee,width:_e,resizeHint:Mo}),jsx(Gc,{agent:ee,height:Et,state:ve,taskTitleMap:Jn,teamName:_n.get(ee.id)})]}):Wa?jsxs(Fragment,{children:[jsx(Jo,{label:"LOG",width:_e}),jsx(Nc,{message:ys,height:Et,width:_e,agents:Ge,agentNameMap:un,agentColorMap:So,taskTitleMap:Jn})]}):ze.length>0&&A!=="logs"?jsxs(Fragment,{children:[(()=>{let i=` F:${po.toUpperCase()} \u2502 ${mr.length}/${ze.length}`;return jsx(Jo,{label:"ACTIVITY",width:_e,suffixLen:i.length,suffix:jsxs(Fragment,{children:[jsx(Text,{color:e.dim,children:" F:"}),jsx(Text,{color:e.amber,children:po.toUpperCase()}),jsxs(Text,{color:e.ghost,children:[" ","\u2502"," ",mr.length,"/",ze.length]})]})})})(),jsx(Pc,{messages:mr,height:Math.max(1,Et-1),width:_e,agents:Ge,agentNameMap:un,agentColorMap:So})]}):A==="goals"?jsx(Uo,{count:ft.length,config:Cc,width:_e}):A==="tasks"?jsx(Uo,{count:Le.length,config:Ic,width:_e}):A==="agents"?jsx(Uo,{count:Ge.length,config:Mc,width:_e}):null,jsx(Box,{flexGrow:1}),jsx(yi,{toasts:ga,onDismiss:fa}),Cn.length>0&&jsx(_c,{deletions:Cn,width:K}),jsx(Qs,{mode:Fe==="command"?"command":"navigate",value:Fe==="command"?cn:"",completion:Fe==="command"?$r(cn):null,activeView:A,canRun:!!Va,canNew:!!Ha,canApprove:!!ja,canReject:!!Ua,canCancel:A==="tasks"&&!!U&&U.status==="in_progress"&&!!x,canDelete:!!qa,canUndo:!!Qa,canEdit:!!Ka,canForceStop:!!Ya,canToggleAuto:!!Za,autoActive:ee?.autonomous,canPause:!!Ja,isPaused:re?.status==="paused",canToggleShowAll:A==="tasks"&&Le.length>qi,showAllActive:ls,hasDetail:!!(ws||Ss||ks),itemCount:A==="goals"?ft.length:A==="tasks"?Le.length:A==="agents"?Q.length:ze.length,itemLabel:A==="goals"?"goals":A==="tasks"?"tasks":A==="agents"?"agents":"events",width:K,hasSuggestions:Cs,onboardingCompleted:r.onboardingCompleted})]})}var _c=io.memo(function({deletions:n,width:o}){let[,r]=useState(0);useEffect(()=>{let f=setInterval(()=>r(x=>x+1),1e3);return ()=>clearInterval(f)},[]);let l=Date.now();return jsx(Box,{flexDirection:"column",width:o,children:n.map(f=>{let x=Math.max(0,Math.ceil((f.expiresAt-l)/1e3)),T=Math.max(0,o-4),b=f.entityType==="task"?"Task":f.entityType==="agent"?"Agent":"Goal",y=Math.max(10,T-b.length-30),C=f.entityName.length>y?f.entityName.slice(0,y-1)+"\u2026":f.entityName;return jsx(Box,{paddingX:2,children:jsxs(Text,{color:e.yellow,children:["\u2717 ",jsx(Text,{bold:true,children:b}),` "${C}" \u2014 `,jsxs(Text,{color:e.amber,bold:true,children:[x,"s"]}),jsx(Text,{color:e.dim,children:" \u2502 "}),jsx(Text,{color:e.gray,bold:true,children:"Z"}),jsx(Text,{color:e.dim,children:" undo"})]})},f.key)})})});function Rc({suggestions:t,selectedIndex:n,height:o,width:r}){let l=o,f=0;n>=l&&(f=n-l+1);let x=t.slice(f,f+l);return jsx(Box,{flexDirection:"column",paddingX:2,children:x.map((T,b)=>{let y=b+f,C=y===n,I=C?"\u25B6":" ",$=Math.min(20,Math.max(14,...t.map(P=>P.cmd.length+1))),S=T.cmd.padEnd($),H=T.subs?` ${T.subs}`:"",V=Math.max(4,r-$-H.length-8),F=T.desc.length>V?T.desc.slice(0,V-1)+"\u2026":T.desc;return jsxs(Text,{wrap:"truncate",children:[jsx(Text,{color:C?e.amber:e.ghost,children:` ${I} `}),jsx(Text,{color:C?e.white:e.silver,bold:C,children:S}),jsx(Text,{color:e.dim,children:F}),H&&jsx(Text,{color:e.ghost,children:H})]},y)})})}function Ac({goals:t,selectedIndex:n,scrollOffset:o=0,height:r,width:l,showAddRow:f,agentNameMap:x,tasksByGoalMap:T}){let b=t.length,y=t.slice(o,o+r),C=f&&b>=o&&b<o+r;return jsxs(Box,{flexDirection:"column",height:r,children:[y.map((I,$)=>jsx(Box,{paddingX:2,children:jsx(Xs,{goal:I,selected:$+o===n,width:l-2,agentNameMap:x,tasksByGoal:T?.get(I.id)})},I.id)),C&&jsx(Box,{paddingX:2,children:jsxs(Text,{color:n===b?e.amber:e.ghost,children:[n===b?" \u25B8 ":" ",jsx(Text,{color:n===b?e.amber:e.dim,children:"+ add goal..."})]})},"__add__")]})}function $c({goal:t,height:n,width:o,agentNameMap:r,tasks:l,progressReport:f,scrollOffset:x=0,onClampScroll:T}){let y=io.useMemo(()=>{let V=l??[],F=t.assignee?r?.get(t.assignee)??t.assignee:"\u2014",P=Math.max(20,o-6),j=(z,X)=>{if(z.length<=X)return [z];let _=[];for(let le=0;le<z.length;le+=X)_.push(z.slice(le,le+X));return _},O=_r(f)?.split(`
13
- `).flatMap(z=>j(z,P))??[],L=_r(t.description)?.split(`
14
- `).flatMap(z=>j(z,P))??[],N=Bs[t.status]??e.dim,E=new Map;for(let z of V)E.set(z.status,(E.get(z.status)??0)+1);let W=[];if(W.push({key:"row-status",node:jsxs(Box,{children:[jsxs(Box,{width:24,children:[jsx(Text,{color:e.dim,children:" status "}),jsx(Text,{color:N,bold:true,children:t.status})]}),jsxs(Box,{children:[jsx(Text,{color:e.dim,children:" assignee "}),jsx(Text,{color:t.assignee?e.green:e.dim,children:F})]})]})}),W.push({key:"row-id",node:jsxs(Box,{children:[jsxs(Box,{width:24,children:[jsx(Text,{color:e.dim,children:" id "}),jsx(Text,{color:e.dim,children:t.id})]}),jsxs(Box,{children:[jsx(Text,{color:e.dim,children:" created "}),jsx(Text,{children:t.created_at.slice(0,10)})]})]})}),t.updated_at&&t.updated_at!==t.created_at&&W.push({key:"row-updated",node:jsxs(Box,{children:[jsx(Box,{width:24,children:jsxs(Text,{color:e.dim,children:[" "," "]})}),jsxs(Box,{children:[jsx(Text,{color:e.dim,children:" Updated "}),jsx(Text,{children:t.updated_at.slice(0,10)})]})]})}),V.length>0){let z=[];for(let[X,_]of E)z.push(`${_} ${X}`);W.push({key:"row-tasks-summary",node:jsxs(Box,{children:[jsxs(Box,{width:24,children:[jsx(Text,{color:e.dim,children:" tasks "}),jsx(Text,{color:e.cyan,children:V.length})]}),jsxs(Box,{children:[jsx(Text,{color:e.dim,children:" "}),jsx(Text,{color:e.dim,children:z.join(" \xB7 ")})]})]})});}if(L.length>0){W.push({key:"desc-gap",node:jsx(Text,{children:" "})});for(let z=0;z<L.length;z++)W.push({key:`desc-${z}`,node:jsxs(Text,{color:e.silver,wrap:"truncate",children:[" ",L[z]]})});}else W.push({key:"desc-gap",node:jsx(Text,{children:" "})}),W.push({key:"desc-empty",node:jsx(Text,{color:e.dim,children:" No description."})});if(O.length>0){W.push({key:"prog-gap",node:jsx(Text,{children:" "})}),W.push({key:"prog-div",node:jsx(Pn,{label:"progress",width:o})});for(let z=0;z<O.length;z++)W.push({key:`prog-${z}`,node:jsxs(Text,{color:e.white,wrap:"truncate",children:[" ",O[z]]})});}if(V.length>0){W.push({key:"tasks-gap",node:jsx(Text,{children:" "})}),W.push({key:"tasks-div",node:jsx(Pn,{label:`tasks (${V.length})`,width:o})});for(let z of V){let X=Ao[z.status]??e.dim;W.push({key:`task-${z.id}`,node:jsxs(Text,{color:e.silver,wrap:"truncate",children:[" ",jsx(Text,{color:X,children:z.status.padEnd(12)}),z.title.slice(0,Math.max(10,o-22))]})});}}return W},[t,l,f,o,r]),C=Math.max(0,y.length-n),I=Math.min(x,C);io.useEffect(()=>{T&&I!==x&&T(I);},[I,x,T]);let $=y.length>n&&I<C,S=$?n-1:n,H=y.slice(I,I+S);return jsxs(Box,{flexDirection:"column",height:n,paddingX:2,children:[H.map(V=>jsx(Box,{children:V.node},V.key)),$&&jsxs(Text,{color:e.ghost,children:[" ","\u2193"," ",y.length-I-S," more ","\u2014"," ","\u2191","\u2193"," to scroll"]})]})}function Bc({tasks:t,selectedIndex:n,scrollOffset:o=0,height:r,width:l,showAddRow:f,agentNameMap:x,hiddenCount:T=0,goalMap:b,groupByGoal:y=false}){let C=T>0,I=C?t.length:-1,$=t.length+(C?1:0),S=t.slice(o,o+r),H=C&&I>=o&&I<o+r,V=f&&$>=o&&$<o+r,F=useMemo(()=>{if(!y||!b||b.size===0)return null;let N=new Map;for(let E of t)if(E.goalId&&b.has(E.goalId)){let W=N.get(E.goalId)??{total:0,done:0};W.total++,E.status==="done"&&W.done++,N.set(E.goalId,W);}return N},[t,y,b]),P=y&&b?t.filter(N=>!N.goalId||!b.has(N.goalId)).length:0,j=y&&b&&b.size>0&&F&&F.size>0,O=[],L=o>0?t[o-1]?.goalId??null:void 0;for(let N=0;N<S.length&&O.length<r;N++){let E=S[N],W=E.goalId&&b?.has(E.goalId)?E.goalId:null;if(j){if(W&&W!==L){let z=b.get(W),X=F.get(W)??{total:0,done:0};if(O.push(jsx(Ds,{goalTitle:z.title,taskCount:X.total,doneCount:X.done,width:l},`gh_${W}`)),O.length>=r)break}if(!W&&L!==null&&L!==void 0&&(O.push(jsx(Fs,{taskCount:P,width:l},"__ungrouped__")),O.length>=r))break}L=W,O.push(jsx(Box,{paddingX:2,children:jsx(Eo,{task:E,selected:N+o===n,width:l-2,agentNameMap:x,goalMap:b})},E.id));}return H&&O.length<r&&O.push(jsx(Box,{paddingX:2,children:jsxs(Text,{color:n===I?e.amber:e.ghost,children:[n===I?" \u25B8 ":" ",jsxs(Text,{color:n===I?e.amber:e.dim,children:["\u25BC"," Show all (",T," more) \u2014 press ",jsx(Text,{bold:true,color:e.gray,children:"S"})]})]})},"__show_all__")),V&&O.length<r&&O.push(jsx(Box,{paddingX:2,children:jsxs(Text,{color:n===$?e.amber:e.ghost,children:[n===$?" \u25B8 ":" ",jsx(Text,{color:n===$?e.amber:e.dim,children:"+ add task..."})]})},"__add__")),jsx(Box,{flexDirection:"column",height:r,children:O})}function Ec({agents:t,selectedIndex:n,scrollOffset:o=0,height:r,width:l,state:f,taskTitleMap:x,showAddRow:T,agentTeamMap:b,teamLeadSet:y,activeTeamCount:C}){let I=new Map;for(let E of Object.values(f.running))I.set(E.agent_id,E);let $=new Map;if(C&&C>0)for(let E of t){let W=b?.get(E.id);W&&$.set(W,($.get(W)??0)+1);}let S=t.length,H=t.slice(o,o+r),V=T&&S>=o&&S<o+r,F=C!=null&&C>0,P=new Map;if(F&&y&&b){for(let E of t)if(y.has(E.id)){let W=b.get(E.id);W&&P.set(W,E.name);}}let j=0;for(let E of $.values())j+=E;let O=t.length-j,L=[],N=o>0?b?.get(t[o-1]?.id??""):void 0;for(let E=0;E<H.length&&L.length<r;E++){let W=H[E],z=b?.get(W.id);if(F&&z&&z!==N&&(L.push(jsx(Vs,{teamName:z,memberCount:$.get(z)??0,leadName:P.get(z),width:l},`ts-${z}`)),L.length>=r)||F&&!z&&N&&(L.push(jsx(Hs,{memberCount:O,width:l},"ts-unassigned")),L.length>=r))break;N=z,L.push(jsx(Box,{paddingX:2,children:jsx(zs,{agent:W,selected:E+o===n,width:l-2,runningEntry:I.get(W.id),currentTaskTitle:W.current_task?x.get(W.current_task):void 0,teamName:z,isLead:y?.has(W.id)})},W.id));}return V&&L.length<r&&L.push(jsx(Box,{paddingX:2,children:jsxs(Text,{color:n===S?e.amber:e.ghost,children:[n===S?" \u25B8 ":" ",jsx(Text,{color:n===S?e.amber:e.dim,children:"+ add agent..."})]})},"__add__")),jsx(Box,{flexDirection:"column",height:r,children:L})}function na(t=5e3){let[n,o]=useState(Date.now());return useEffect(()=>{let r=setInterval(()=>o(Date.now()),t);return ()=>clearInterval(r)},[t]),n}function oa(t,n){let o=Math.max(0,n-t);return o<3e3?"now":o<6e4?`${Math.floor(o/1e3)}s`:o<36e5?`${Math.floor(o/6e4)}m`:`${Math.floor(o/36e5)}h`}function Oc(t){if(t==="error")return e.errorBg}function ra(t,n){switch(t){case "output":return e.white;case "tool":return e.dim;case "result":return e.dim;case "file":return e.gray;case "error":return e.red;case "lifecycle":return e.dim;case "system":return e.dim;default:return n}}function Lc({messages:t,height:n,agents:o,logAgentFilter:r,logTypeFilter:l,selectedIndex:f,scrollOffset:x,agentNameMap:T,agentColorMap:b,agentMsgCounts:y,taskTitleMap:C,width:I}){let $=na(),S=useMemo(()=>t.filter(X=>{if(r.size>0&&X.agentId&&!r.has(X.agentId))return false;let _=X.msgType??"info";return l.has(_)}),[t,r,l]);useMemo(()=>{let X={};for(let _ of t){let le=_.msgType??"info";X[le]=(X[le]??0)+1;}return X},[t]);let V=l.size>=8?"all":l.size===1&&l.has("output")?"text":l.size===1&&l.has("error")?"errors":l.has("tool")&&!l.has("output")?"tools":l.has("lifecycle")&&!l.has("output")?"events":`${l.size} types`,F=r.size>0,P=n-2,j=f===-1?S.slice(-P):S.slice(x,x+P),O=f===-1?-1:f-x,L=Math.min(10,Math.max(6,...o.map(X=>X.name.length))),N=11+L,E=X=>{if(X===0)return true;let _=j[X],le=j[X-1];return _.agentId!==le.agentId?true:_.agentId?_.ts-le.ts>3e4:false},W=Math.max(4,Math.floor((I-20)/Math.max(1,o.length))-1),z=Math.min(W,10);return jsxs(Box,{flexDirection:"column",paddingX:1,children:[jsxs(Box,{gap:0,justifyContent:"space-between",width:I,children:[jsxs(Box,{gap:0,children:[f===-1?jsxs(Box,{gap:0,children:[jsx(Text,{backgroundColor:e.successBg,color:e.green,children:" "}),jsx(Text,{backgroundColor:e.successBg,color:e.green,children:jsx(jt,{color:e.green})}),jsx(Text,{backgroundColor:e.successBg,color:e.green,children:" LIVE "})]}):jsxs(Text,{backgroundColor:e.warnBg,color:e.amber,children:[" \u2191\u2193 ",f+1,"/",S.length," "]}),jsxs(Text,{color:e.dim,children:[" ",S.length," events"]}),V!=="all"&&jsxs(Text,{color:e.amber,children:[" f:",V]}),F&&jsxs(Text,{color:e.cyan,children:[" ",r.size,"/",o.length," agents"]})]}),jsxs(Box,{gap:0,children:[jsx(Text,{color:e.amber,bold:true,children:"a"}),jsx(Text,{color:e.dim,children:" filter "}),jsx(Text,{color:e.amber,bold:true,children:"f"}),jsx(Text,{color:e.dim,children:" type "}),jsx(Text,{color:e.amber,bold:true,children:"F"}),jsx(Text,{color:e.dim,children:" cycle"})]})]}),jsx(Box,{gap:0,children:o.map(X=>{let _=b.get(X.id)??Xr[0],le=r.size===0||r.has(X.id),Ee=X.name.length>z?X.name.slice(0,z-1)+"\u2026":X.name;return jsxs(Text,{color:le?_:e.ghost,bold:le,children:[" ",Ee]},X.id)})}),j.length===0?jsxs(Box,{flexDirection:"column",paddingX:2,paddingTop:1,children:[jsx(Text,{color:e.dim,children:t.length===0?" \u256D\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256E":"No events for current filter."}),t.length===0&&jsxs(Fragment,{children:[jsx(Text,{color:e.dim,children:" \u2502 \u2502"}),jsxs(Text,{color:e.dim,children:[" \u2502 ",jsx(Text,{color:e.ghost,children:"\u25C7"}),jsx(Text,{color:e.gray,children:" Waiting for activity "}),"\u2502"]}),jsxs(Text,{color:e.dim,children:[" \u2502 ",jsx(Text,{color:e.ghost,children:"\u2502"}),jsx(Text,{color:e.dim,children:" Run tasks or start "}),"\u2502"]}),jsxs(Text,{color:e.dim,children:[" \u2502 ",jsx(Text,{color:e.ghost,children:"\u2502"}),jsx(Text,{color:e.dim,children:" the orchestrator "}),"\u2502"]}),jsxs(Text,{color:e.dim,children:[" \u2502 ",jsx(Text,{color:e.ghost,children:"\u25C7"}),jsx(Text,{color:e.dim,children:" "}),"\u2502"]}),jsx(Text,{color:e.dim,children:" \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256F"})]})]}):j.map((X,_)=>{let le=_===O,Ee=X.msgType??"info",Ft=or[Ee]??"\u2502",dt=X.agentId?T.get(X.agentId)??X.agentId.slice(0,8):void 0,Ae=X.agentId?b.get(X.agentId):void 0,Ke=E(_),pt=(_>0?j[_-1]:void 0)?.agentId===X.agentId&&!!X.agentId,De=!pt&&!!dt,Ye=pt&&!!dt,gt=ra(Ee,X.color),Ze=le?e.infoBg:Ee==="error"?e.errorBg:void 0,rn=X.taskId?C.get(X.taskId):void 0,Ce=oa(X.ts,$),ht=rn&&I>80?`#${rn.slice(0,20)}`:"",xt=ht?ht.length+3:0,qt=Math.max(10,I-2-N-xt),mt=rt(X.text,qt);return jsxs(Box,{backgroundColor:Ze,children:[jsx(Text,{color:Ae??e.ghost,children:Ke&&De?"\u250C":Ye?"\u2502":" "}),jsx(Text,{color:le?e.amber:void 0,children:le?"\u25B8":" "}),jsx(Box,{width:5,children:jsx(Text,{color:Ce==="now"?e.green:le?e.silver:e.ghost,children:Ce.padStart(4)})}),jsx(Box,{width:L+1,children:De?jsxs(Text,{color:Ae,bold:true,children:[" ",dt.slice(0,L).padEnd(L)]}):Ye?jsxs(Text,{color:Ae??e.ghost,children:[" ","\xB7".padEnd(L)]}):jsxs(Text,{color:e.ghost,children:[" "," ".padEnd(L)]})}),jsxs(Text,{color:Ee==="error"?e.red:Ae??e.dim,children:[" ",Ft," "]}),jsx(Text,{color:le?e.white:gt,bold:le||Ee==="lifecycle",children:mt}),ht&&jsxs(Text,{color:e.ghost,children:[" ",jsx(Text,{color:e.dim,backgroundColor:e.void,children:` ${ht} `})]})]},_)})]})}function Pc({messages:t,height:n,width:o,agents:r,agentNameMap:l,agentColorMap:f}){let x=na(),T=t.slice(-n),b=Math.max(10,o-2-17),y=Math.max(0,n-T.length),C=0,I=[];for(let $=0;$<T.length;$++)$>0&&T[$].agentId!==T[$-1].agentId&&C++,I.push(C);return jsxs(Box,{flexDirection:"column",paddingX:1,children:[y>0&&jsx(Box,{height:y}),T.map(($,S)=>{let H=$.agentId?l.get($.agentId)??$.agentId.slice(0,8):void 0,V=$.agentId?f.get($.agentId):void 0,F=$.msgType??"info",P=or[F]??"\u2502",j=ra(F,$.color),L=(S>0?T[S-1]:void 0)?.agentId===$.agentId&&!!$.agentId,N=(I[S]&1)===1,E=Oc(F)??(N?"#1a1a1a":void 0),W=oa($.ts,x),z=rt($.text,b);return jsxs(Box,{backgroundColor:E,children:[jsx(Text,{color:V??e.ghost,children:!L&&H?"\u258D":L?"\u258F":" "}),jsx(Box,{width:5,children:jsx(Text,{color:L?e.ghost:W==="now"?e.green:e.dim,children:L?" ":W.padStart(4)})}),jsx(Box,{width:9,children:H&&!L?jsxs(Text,{color:V,bold:true,children:[" ",H.slice(0,8)]}):jsx(Text,{color:e.ghost,children:vc})}),jsxs(Text,{color:F==="error"?e.red:L?e.ghost:V??e.dim,children:[P," "]}),jsx(Text,{color:j,children:z})]},S)})]})}function Nc({message:t,height:n,width:o,agents:r,agentNameMap:l,agentColorMap:f,taskTitleMap:x}){let T=t.detail??t.text,b=t.msgType??"info",y=t.agentId?l.get(t.agentId)??t.agentId.slice(0,8):void 0,C=t.agentId?f.get(t.agentId):e.dim,I=t.taskId?x.get(t.taskId):void 0,$,S=false;try{let P=JSON.parse(T);$=JSON.stringify(P,null,2),S=!0;}catch{$=T;}let H=Math.max(4,o-6),V=Math.max(1,n-4),F=$.split(`
15
- `).slice(0,V);return jsxs(Box,{flexDirection:"column",paddingX:1,children:[jsx(Box,{children:jsxs(Text,{color:e.ghost,children:["\u256D",be(H+2),"\u256E"]})}),jsxs(Box,{children:[jsx(Text,{color:e.ghost,children:"\u2502 "}),jsx(Text,{color:e.dim,children:t.time}),jsx(Text,{color:e.ghost,children:" \u2502 "}),y&&jsx(Text,{color:C,bold:true,children:y}),y&&jsx(Text,{color:e.ghost,children:" \u2502 "}),jsxs(Text,{color:or[b]?b==="error"?e.red:e.dim:e.dim,children:[or[b]??"\u2502"," ",b]}),I&&jsxs(Fragment,{children:[jsx(Text,{color:e.ghost,children:" \u2502 "}),jsxs(Text,{color:e.dim,children:["#",I.slice(0,30)]})]})]}),jsxs(Box,{children:[jsx(Text,{color:e.ghost,children:"\u2502 "}),jsx(Text,{color:t.color,bold:true,wrap:"truncate",children:t.text.slice(0,H)})]}),jsx(Box,{children:jsxs(Text,{color:e.ghost,children:["\u251C",be(H+2),"\u2524"]})}),F.map((P,j)=>jsxs(Box,{children:[jsx(Text,{color:e.ghost,children:"\u2502 "}),S&&jsxs(Text,{color:e.ghost,children:[String(j+1).padStart(3)," "]}),jsx(Text,{wrap:"truncate",color:S&&P.includes('"')?e.cyan:S&&/^\s*[}\]]/.test(P)?e.ghost:P.startsWith("error")||P.startsWith("Error")?e.red:e.silver,children:P.slice(0,S?H-4:H)})]},j)),jsx(Box,{children:jsxs(Text,{color:e.ghost,children:["\u2570",be(H+2),"\u256F"]})})]})}function Jo({label:t,width:n,suffix:o,suffixLen:r=0}){let l=` ${t} `,f=3,x=f+l.length+2;if(!o){let y=Math.max(0,n-x);return jsxs(Box,{paddingX:1,children:[jsx(Text,{color:e.ghost,children:He(f)}),jsx(Text,{backgroundColor:"#1a1a22",color:e.dim,bold:true,children:l}),jsx(Text,{color:e.ghost,children:He(y)})]})}let T=2,b=Math.max(0,n-x-T-r);return jsxs(Box,{paddingX:1,children:[jsx(Text,{color:e.ghost,children:He(f)}),jsx(Text,{backgroundColor:"#1a1a22",color:e.dim,bold:true,children:l}),jsx(Text,{color:e.ghost,children:He(T)}),o,jsx(Text,{color:e.ghost,children:He(b)})]})}function Dc({task:t,width:n,resizeHint:o}){let r=" DETAIL ",l=o?` ${o} `:"",f=n-r.length-l.length-10,x=t.title.length>f?t.title.slice(0,f-3)+"...":t.title,T=Math.max(0,n-3-r.length-x.length-l.length-4);return jsxs(Box,{paddingX:1,children:[jsx(Text,{color:e.ghost,children:He(3)}),jsx(Text,{backgroundColor:"#2d1f0a",color:e.amber,bold:true,children:r}),jsxs(Text,{color:e.ghost,children:[Ro," "]}),jsx(Text,{color:e.white,bold:true,children:x}),jsxs(Text,{color:e.ghost,children:[" ",He(Math.max(0,T))]}),l?jsx(Text,{color:e.dim,children:l}):null]})}function Fc({agent:t,width:n,resizeHint:o}){let r=" AGENT ",l=o?` ${o} `:"",f=n-r.length-l.length-10,x=t.name.length>f?t.name.slice(0,f-3)+"...":t.name,T=Math.max(0,n-3-r.length-x.length-l.length-4);return jsxs(Box,{paddingX:1,children:[jsx(Text,{color:e.ghost,children:He(3)}),jsx(Text,{backgroundColor:"#0f2d1f",color:e.green,bold:true,children:r}),jsxs(Text,{color:e.ghost,children:[Ro," "]}),jsx(Text,{color:e.green,bold:true,children:x}),jsxs(Text,{color:e.ghost,children:[" ",He(Math.max(0,T))]}),l?jsx(Text,{color:e.dim,children:l}):null]})}function Gc({agent:t,height:n$1,state:o,taskTitleMap:r,teamName:l}){let f=Wc[t.status]??e.dim;Object.values(o.running).find(y=>y.agent_id===t.id);let T=t.current_task?r.get(t.current_task):void 0,b=24;return jsxs(Box,{flexDirection:"column",paddingX:2,children:[jsxs(Box,{children:[jsxs(Box,{width:b,children:[jsx(Text,{color:e.dim,children:" status "}),jsx(Text,{color:f,children:t.status})]}),jsxs(Box,{children:[jsx(Text,{color:e.dim,children:" adapter "}),jsx(Text,{color:e.cyan,children:t.adapter})]})]}),jsxs(Box,{children:[jsxs(Box,{width:b,children:[jsx(Text,{color:e.dim,children:" model "}),jsx(Text,{children:t.config.model??"\u2014"})]}),jsxs(Box,{children:[jsx(Text,{color:e.dim,children:" task "}),jsx(Text,{color:T?e.white:e.dim,children:T??"\u2014"})]})]}),jsxs(Box,{children:[jsxs(Box,{width:b,children:[jsx(Text,{color:e.dim,children:" runs "}),jsx(Text,{children:t.stats.total_runs}),jsx(Text,{color:e.dim,children:" ("}),jsx(Text,{color:e.green,children:t.stats.tasks_completed}),jsx(Text,{color:e.dim,children:"/"}),jsx(Text,{color:t.stats.tasks_failed>0?e.red:e.dim,children:t.stats.tasks_failed}),jsx(Text,{color:e.dim,children:")"})]}),jsxs(Box,{children:[jsx(Text,{color:e.dim,children:" team "}),jsx(Text,{color:l?e.amber:e.dim,children:l??"\u2014"})]})]}),t.autonomous&&jsx(Box,{children:jsxs(Box,{width:b,children:[jsx(Text,{color:e.dim,children:" auto "}),jsxs(Text,{color:e.cyan,children:[pn," ON"]})]})}),t.config.skills&&t.config.skills.length>0&&jsxs(Box,{children:[jsx(Text,{color:e.dim,children:" skills "}),jsx(Text,{color:e.cyan,wrap:"truncate",children:rt(t.config.skills.join(", "),500)})]}),t.last_error&&(()=>{let y=t.last_error.kind,C=n[y],I=!C||y==="unknown",$=t.last_error.timestamp,S=$?g($)+" ago":"";return jsxs(Fragment,{children:[jsx(Text,{children:" "}),jsxs(Box,{flexDirection:"column",borderStyle:"single",borderColor:e.red,paddingX:1,children:[jsxs(Text,{color:e.red,bold:true,children:["\u26A0"," \u041E\u0448\u0438\u0431\u043A\u0430"]}),C&&jsx(Text,{color:e.white,children:C.message}),C&&jsx(Text,{color:e.cyan,children:C.fix}),C?.doctorHint&&jsx(Text,{color:e.yellow,children:"\u0414\u0438\u0430\u0433\u043D\u043E\u0441\u0442\u0438\u043A\u0430: orch doctor"}),I&&t.last_error.message&&jsx(Text,{color:e.dim,children:rt(t.last_error.message,120)}),S&&jsx(Text,{color:e.dim,children:S})]})]})})(),jsx(Text,{children:" "}),t.role?t.role.split(`
16
- `).slice(0,Math.max(1,n$1-(t.last_error?10:4))).map((y,C)=>jsxs(Text,{color:e.silver,wrap:"truncate",children:[" ",rt(y,500)]},C)):jsx(Text,{color:e.dim,children:" No role description."})]})}var Wc={idle:e.dim,running:e.green,error:e.red,disabled:e.ghost},zc="\u2588";function Vc({mode:t,width:n}){let r=` ${t==="command"?"COMMAND":"NEW TASK"} `,l=Math.max(0,n-3-r.length-2);return jsxs(Box,{paddingX:1,children:[jsx(Text,{color:e.ghost,children:He(3)}),jsx(Text,{backgroundColor:"#2d1f0a",color:e.amber,bold:true,children:r}),jsx(Text,{color:e.ghost,children:He(l)})]})}function Hc({mode:t,value:n,width:o}){let r=t==="command"?"/":"\u25B8",l=Math.max(10,o-8),f=n.length>l?n.slice(-l):n;return jsxs(Box,{paddingX:2,children:[jsxs(Text,{color:e.amber,children:[r," "]}),jsx(Text,{color:e.white,children:f}),jsx(Text,{color:e.amber,children:zc})]})}function sa(t,n){if(!n||typeof n!="object")return "";let o=n;if(o.file_path&&typeof o.file_path=="string")return o.file_path.split("/").slice(-2).join("/");if(o.command&&typeof o.command=="string")return o.command.slice(0,60);if(o.pattern&&typeof o.pattern=="string")return `"${o.pattern.slice(0,40)}"`;if(o.glob&&typeof o.glob=="string")return o.glob.slice(0,40);let r=JSON.stringify(o);return r.length>80?r.slice(0,77)+"...":r}function Qo(t,n=200){if(typeof t=="string")return t.slice(0,n);if(!Array.isArray(t))return null;let o=[],r=0;for(let l of t){if(r>=n)break;if(l?.type==="text"&&typeof l.text=="string"){let f=l.text.split(`
17
- `).find(x=>x.trim().length>0)??"";o.push(f.slice(0,n-r)),r+=f.length;}else if(l?.type==="tool_use"){let f=sa(l.name??"tool",l.input),x=`\u2699 ${l.name??"tool"}(${f})`;o.push(x),r+=x.length;}else if(l?.type==="tool_result")o.push("\u2190 (result)"),r+=10;else if(l?.type==="thinking"&&typeof l.thinking=="string"){let f=l.thinking.slice(0,60).split(`
18
- `)[0]??"";o.push(`\u{1F4AD} ${f}`),r+=f.length+3;}}return o.length>0?o.join(" "):null}function Ji(t){if(typeof t=="string"){let o=t.split(`
19
- `).length,r=t.split(`
20
- `).find(l=>l.trim().length>0)??"";return o>3?`${r.slice(0,80)}... (${o} lines)`:r.slice(0,120)}if(!Array.isArray(t))return "(result)";let n=[];for(let o of t)if(o?.type==="tool_result"){o.tool_use_id?o.tool_use_id.slice(0,8):"";let l=o.is_error,f=typeof o.content=="string"?o.content:"",x=f.split(`
21
- `).length;l?n.push(`\u2715 error: ${f.slice(0,60)}`):x>3?n.push(`\u2713 ${x} lines`):n.push(`\u2713 ${f.slice(0,80)}`);}else o?.type==="text"&&typeof o.text=="string"&&n.push(o.text.split(`
22
- `)[0]?.slice(0,80)??"");return n.join(" ")||"(result)"}function ia(t){let n=()=>t.length>nr?t.slice(0,nr)+"\u2026":t;if(ea.test(t.trim()))return {summary:t.trim(),detail:n()};try{let o=JSON.parse(t);if(o.type==="message"&&o.role==="assistant"){let r=Qo(o.content);return r?{summary:r.slice(0,200),detail:n()}:{summary:null,detail:""}}if(o.type==="assistant"||o.role==="assistant"){let r=o.message?.content??o.content,l=Qo(r);return l?{summary:l.slice(0,200),detail:n()}:{summary:null,detail:""}}if(o.type==="user"||o.role==="user"){let r=o.message?.content??o.content;return {summary:`\u2190 ${Ji(r).slice(0,180)}`,detail:n()}}if(o.type==="tool_use"||typeof o.name=="string"&&"input"in o){let r=o.name??"tool",l=sa(r,o.input);return {summary:`\u2699 ${r}(${l})`,detail:n()}}if(o.type==="tool_result")return {summary:`\u2190 ${Ji(o.content).slice(0,180)}`,detail:n()};if(o.type==="result"){let r=typeof o.result=="string"?o.result:null;return {summary:r?`\u2713 ${r.slice(0,180)}`:"\u2713 Agent finished",detail:n()}}if(o.type==="rate_limit_event")return {summary:`\u23F3 Rate limited (${o.rate_limit_info?.rateLimitType??"unknown"})`,detail:n()};if(o.subtype){if(o.message){let r=o.message.content??o.message,l=Qo(r);if(l)return {summary:l.slice(0,200),detail:n()}}return {summary:`[${o.subtype}]`,detail:n()}}if(o.content){let r=Qo(o.content);if(r)return {summary:r.slice(0,200),detail:n()}}return o.type?{summary:`[${o.type}]`,detail:n()}:{summary:t.slice(0,150),detail:n()}}catch{return {summary:jc(t),detail:n()}}}function jc(t){let n=t.match(/"subtype"\s*:\s*"([^"]+)"/);if(n)return `[${n[1]}]`;let o=t.match(/"type"\s*:\s*"([^"]+)"/),r=t.match(/"role"\s*:\s*"([^"]+)"/),l=o?.[1],f=r?.[1];if(!l&&!f)return t.slice(0,200);if(l==="assistant"||l==="message"||f==="assistant"){let x=t.match(/"text"\s*:\s*"((?:[^"\\]|\\.)*)"/);if(x)try{return JSON.parse(`"${x[1]}"`).slice(0,200)}catch{}return "\u{1F4AC} (assistant)"}if(l==="user"||l==="tool_result"||f==="user")return "\u2190 (tool result)";if(l==="tool_use")return `\u2699 ${t.match(/"name"\s*:\s*"([^"]+)"/)?.[1]??"tool"}()`;if(l==="result"){let x=t.match(/"result"\s*:\s*"((?:[^"\\]|\\.)*)"/);if(x)try{return `\u2713 ${JSON.parse(`"${x[1]}"`).slice(0,180)}`}catch{}return "\u2713 Agent finished"}return l==="rate_limit_event"?"\u23F3 Rate limited":`[${l??f}]`}function Uc(t,n,o,r){let l=f=>r?.get(f);switch(t.type){case "agent:started":n("Started task",e.green,{agentId:t.agentId,taskId:t.taskId,msgType:"lifecycle"});break;case "agent:output":{let{summary:f,detail:x}=ia(t.data);if(f){let T=ta(f);n(f,T.color,{agentId:t.agentId,taskId:l(t.runId),detail:x,msgType:T.msgType});}break}case "agent:file_changed":n(`${t.path}`,e.purple,{agentId:t.agentId,taskId:l(t.runId),msgType:"file"});break;case "agent:completed":n(t.success?"Completed successfully":"Failed",t.success?e.green:e.red,{agentId:t.agentId,taskId:l(t.runId),msgType:"lifecycle"});break;case "agent:error":n(`${t.error.slice(0,150)}`,e.red,{agentId:t.agentId,taskId:l(t.runId),detail:t.error,msgType:"error"});break;case "task:status_changed":n(`${t.from} \u2192 ${t.to}`,e.cyan,{taskId:t.taskId,msgType:"system"});break;case "task:assigned":n(`Assigned \u2192 ${t.agentId}`,e.cyan,{taskId:t.taskId,msgType:"system"});break;case "task:created":n(`Created: ${t.task.title}`,e.amber,{taskId:t.task.id,msgType:"system"});break;case "run:retry":n(`Retry #${t.attempt} (${Math.round(t.delay_ms/1e3)}s delay)`,e.yellow,{agentId:o?.get(t.runId),taskId:l(t.runId),msgType:"lifecycle"});break;case "orchestrator:tick":(t.running>0||t.queued>0)&&n(`${t.running} running \xB7 ${t.queued} queued`,e.ghost,{msgType:"system"});break;case "orchestrator:stall_detected":n("Stall detected",e.yellow,{agentId:o?.get(t.runId),taskId:l(t.runId),msgType:"error"});break;case "task:cascade_failed":n(`Cascade failed (dep: ${t.failedDependencyId})`,e.red,{taskId:t.taskId,detail:t.reason,msgType:"error"});break}}export{cg as App,lg as _resetPendingDeletionSeq};