agent-afk 3.40.0 → 3.40.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/cli.mjs +3 -3
  2. package/package.json +1 -1
package/dist/cli.mjs CHANGED
@@ -2022,8 +2022,8 @@ ${u}`}function ed(e,t){let n=Vb[t.status];e.out.line(` ${n} ${m.bold(t.jobId)}
2022
2022
  `));return}if(this.pasting){this.input=W.insert(this.input,`
2023
2023
  `),this.queued=!1;return}let c=this.autocompleteState;if(c?.dropdownOpen){let u=c.trigger?.kind,d=this.applyDropdownSelection();if(u!=="slash"||!d)return}if(this.input.buffer.length===0&&this.attachments.length===0)return;if(this.inputMode==="idle"&&this.onSubmit){let u=this.input.buffer,d=[...this.attachments],p=this.onSubmit;this.queued=!1,this.input=W.seed(""),this.attachments=[],this.autocompleteState?.reset(),this.repaint(),p({text:u,attachments:d});return}this.queued||(this.queued=!0,this.repaint());return}if(n?.name==="backspace"){if(n?.meta){let l=W.deleteWordBackward(this.input);l!==this.input&&(this.history?.resetRecall(),this.applyEdit(l));return}let a=W.backspace(this.input);a!==this.input?(this.history?.resetRecall(),this.applyEdit(a)):this.queued?(this.queued=!1,this.repaint()):this.attachments.length>0&&(this.attachments.pop(),this.repaint());return}if(n?.ctrl&&n?.name==="a"){this.applyEdit(W.moveLineStart(this.input));return}if(n?.ctrl&&n?.name==="e"){this.applyEdit(W.moveLineEnd(this.input));return}if((n?.meta||n?.ctrl)&&n?.name==="left"){this.applyEdit(W.moveWordBackward(this.input));return}if((n?.meta||n?.ctrl)&&n?.name==="right"){this.applyEdit(W.moveWordForward(this.input));return}if(n?.meta&&n?.name==="b"){this.applyEdit(W.moveWordBackward(this.input));return}if(n?.meta&&n?.name==="f"){this.applyEdit(W.moveWordForward(this.input));return}if(n?.ctrl&&n?.name==="w"){let a=W.deleteWordBackward(this.input);a!==this.input&&(this.history?.resetRecall(),this.applyEdit(a));return}if(n?.ctrl&&n?.name==="u"){let a=W.deleteToLineStart(this.input);a!==this.input&&(this.history?.resetRecall(),this.applyEdit(a));return}if(n?.ctrl&&n?.name==="k"){let a=W.deleteToLineEnd(this.input);a!==this.input&&(this.history?.resetRecall(),this.applyEdit(a));return}if(n?.name==="left"){this.applyEdit(W.moveLeft(this.input));return}if(n?.name==="right"){this.applyEdit(W.moveRight(this.input));return}if(n?.name==="home"){this.applyEdit(W.moveHome(this.input));return}if(n?.name==="end"){this.applyEdit(W.moveEnd(this.input));return}if(n?.name==="delete"){if(n?.meta){let a=W.deleteWordForward(this.input);a!==this.input&&(this.history?.resetRecall(),this.applyEdit(a));return}this.history?.resetRecall(),this.applyEdit(W.deleteForward(this.input));return}if(n?.ctrl&&n?.name==="b"){if(this.inputMode==="idle"||this.backgrounded)return;this.backgrounded=!0,this.onBackground&&this.onBackground();return}if(n?.name==="tab"&&n?.shift){this.onShiftTab&&this.onShiftTab();return}if(n?.name==="tab"){this.applyDropdownSelection();return}let s=["tab","pageup","pagedown"];if(n?.name&&s.includes(n.name)||n?.ctrl||n?.meta)return;let i=typeof t=="string"&&t.length===1&&t>=" "?t:typeof n?.sequence=="string"&&n.sequence.length===1&&n.sequence>=" "?n.sequence:null;i!==null&&(this.history?.resetRecall(),this.applyEdit(W.insert(this.input,i)))}};import Q$ from"chalk";var Z$=/(?<=\s|^)(\/[A-Za-z][\w:-]*)(?=\s|$)/g,eO=/(?<=\s|^)(@[\w./-]*)(?=\s|$)/g;function Tn(e,t){return Q$.level===0?e:e.replace(Z$,r=>{let o=r.slice(1);return t.has(o)?m.brand(r):m.meta(r)}).replace(eO,r=>m.fileRef(r))}q();var tO=m.success("\u2713"),nO=m.error("\u2717");function Zr(e){return e?nO:tO}var Oa=3,Rw=2,Aw=3;function Cw(e){switch(qn(e)){case"read":return"Reading\u2026";case"write":return"Writing\u2026";case"web":return"Fetching\u2026";case"shell":return"Running\u2026";default:return"Running\u2026"}}function Da(e){return e.replace(/\/(?:[^/\s,)]+\/){2,}([^/\s,)]+)/g,"$1")}function rO(e){let t=/^(\s*[("]?\s*)cd\s+\S+\s+&&\s+(?!cd\s)(.+)$/.exec(e);return t?(t[1]??"")+(t[2]??""):e}var xw=60;function dd(e,t){let n=e.trim().replace(/^\((.*)\)$/s,"$1"),r;try{r=JSON.parse(n)}catch{return e}if(!r||typeof r!="object")return e;let o=r;for(let s of t){let i=o[s];if(typeof i=="string"&&i.length>0){let a=ht(i);if(a.length===0)continue;return`(${a.length>xw?le(a,xw,"\u2026"):a})`}}return e}function oO(e,t){if(e==="bash"||e==="Bash")return rO(t);if(e==="compose"||e==="Compose"){let n=t.trim().replace(/^\((.*)\)$/s,"$1");try{let r=JSON.parse(n);if(r&&typeof r=="object"){let o=Array.isArray(r.nodes)?r.nodes.length:void 0,s=Array.isArray(r.edges)?r.edges.length:0;if(o!==void 0){let i=`${o} node${o===1?"":"s"}`,a=s>0?`, ${s} edge${s===1?"":"s"}`:"";return`(${i}${a})`}}}catch{}}return e==="agent"||e==="Agent"?dd(t,["id_prefix","prompt"]):e==="Task"?dd(t,["description","prompt"]):e==="skill"||e==="Skill"?dd(t,["name","arguments"]):t}function sO(e){return e.replace(/[\r\n]+/g," ")}var iO={"(":")","{":"}","[":"]"};function aO(e,t,n="\u2026"){let r=e.charAt(0),o=iO[r];return!(o&&e.endsWith(o)&&e.length>=2)||H(e)<=t?le(e,t,n):t<3?t>=2?r+o:le(e,t,n):le(e,t-1,n)+o}function En(e,t){let n=/^([A-Za-z_][A-Za-z0-9_]*)(.*)$/s.exec(e);if(n){let r=n[1],o=Da(oO(r,n[2]??"")),s=qn(r),{color:i,glyph:a}=Gr(r),l=iu(s),c=l?` [${l}]`:"";if(t!==void 0){let d=(a+" ").length+r.length+c.length,p=Math.max(1,t-d);o=aO(o,p)}o=sO(o);let u=i(a+" ")+i.bold(r)+m.toolArg(o);return l?u+m.dim(c):u}return m.chrome("\u25CF ")+m.toolArg(e)}function lO(e,t){return e?e==="grep"||e==="Grep"?t===1?"match":"matches":e==="glob"||e==="Glob"?t===1?"path":"paths":t===1?"line":"lines":t===1?"line":"lines"}function nr(e,t,n=60,r){let o=e.isError?m.error:m.dim,s=t??E.HOME??"___NOHOME___";if(e.display!==void 0&&!e.isError)return o(e.display);if(e.persistedPath){let a=e.persistedPath.startsWith(s)?"~"+e.persistedPath.slice(s.length):e.persistedPath;return o(`saved \u2192 ${a}`)}if(e.lineCount!==void 0&&e.lineCount>1)return o(`${e.lineCount} ${lO(r,e.lineCount)}`);let i=e.content.length>n?e.content.slice(0,n-3)+"\u2026":e.content;return o(ht(i))}var cO=8,pd=30;function uO(){let e=E.AFK_DIFF_LINES;if(e===void 0)return pd;let t=e.trim();if(!/^\d+$/.test(t))return pd;let n=Number.parseInt(t,10);return Number.isFinite(n)?n:pd}function dO(){let e=E.AFK_SHOW_DIFFS;if(e===void 0)return!1;let t=e.trim().toLowerCase();return t==="0"||t==="false"||t==="no"||t==="off"}function pO(e){let t=m.diffAdd(`+${e.addedLines}`),n=m.diffRemove(`-${e.removedLines}`),r=e.hunks.length,o=m.dim(`across ${r} hunk${r===1?"":"s"}`);return`${t} ${n} ${o}`}var mO=/[\x00-\x08\x0B-\x1F\x7F-\x9F]/g,_w=/[\x00-\x1F\x7F-\x9F]/g;function ht(e){return Pe(e).replace(_w," ").replace(/ {2,}/g," ").trim()}function Iw(e){return Pe(e).replace(_w," ")}function fO(e){let t=Pe(e.text).replace(mO,"");return e.kind==="+"?m.diffAdd("+ "+t):e.kind==="-"?m.diffRemove("- "+t):m.dim(" "+t)}var fd=new WeakMap;function rr(e,t,n){if(dO())return[];if(e.hunks.length===0)return[];let r=t==="overlay"?cO:uO(),o=t+"|"+n+"|"+r,s=fd.get(e);if(s!==void 0){let f=s.get(o);if(f!==void 0)return f}let i=[];i.push(n+pO(e));let a=[];for(let f of e.hunks){let g=`@@ -${f.oldStart},${f.oldLines} +${f.newStart},${f.newLines} @@`;a.push({kind:"header",text:m.diffHunk(g)});for(let h of f.lines)a.push({kind:"body",text:fO(h)})}if(r===0){for(let f of a)i.push(n+f.text);return md(e,o,i),i}let l=0;for(let f of a)f.kind==="body"&&l++;if(l<=r){for(let f of a)i.push(n+f.text);return md(e,o,i),i}let c=0;for(let f of a)f.kind==="header"?i.push(n+f.text):c<r&&(i.push(n+f.text),c++);let u=l-r,d=`line${u===1?"":"s"}`,p=t==="flush"?" (set AFK_DIFF_LINES=0 to expand)":"";return i.push(n+m.dim(`\u2026 +${u} more diff ${d}${p}`)),md(e,o,i),i}function md(e,t,n){let r=fd.get(e);r===void 0&&(r=new Map,fd.set(e,r)),r.set(t,n)}q();function Me(e,t){return le(e,t)}var gd=Object.freeze({spine:"\u2502 ",spineClosed:" ",lead:" ",turnRoot:"\u25C9 ",midConnector:"\u251C\u2500 ",lastConnector:"\u2570\u2500 ",textPrefix:"\u2502 "}),gO=Object.freeze({spine:"| ",spineClosed:" ",lead:" ",turnRoot:"o ",midConnector:"+- ",lastConnector:"\\- ",textPrefix:"| "});function xn(){let e=E.AGENT_AFK_ASCII;return e&&/^(1|true|yes)$/i.test(e)?gO:gd}function La(e,t){let n="";for(let r of e)n+=r?t.spineClosed:t.spine;return n+=t.spine,n}function hd(e,t){let n="";for(let r=0;r<e.length;r+=2){let o=e.slice(r,r+2);n+=o===t.spine?m.dim(o):o}return n}function $w(e,t,n){if(!e||!e.trim())return[];let r=m.dim(n.textPrefix),o=Math.max(1,Y()-t.length-2-2),s=hd(t,n),i=[];for(let a of e.split(`
2024
2024
  `)){let l=Iw(a),c=ie(l,o);for(let u of c.split(`
2025
- `))i.push(s+r+u)}return i}function Pw(e){return tt.has(e.toolName)?e.toolName+"::"+e.toolInput:e.toolName}function hO(e){return tt.has(e)?Rw:Aw}var _Q=gd.midConnector,IQ=gd.lastConnector;function Ow(e,t=xn()){return e.map((n,r)=>({sibling:n,connector:r===e.length-1?t.lastConnector:t.midConnector}))}function Dw(e,t){if(e.length<=t)return e;let n=e.slice(0,t),r=e.slice(t),o=kO(r);return[...n,{kind:"overflow",count:r.length,text:o}]}function yO(e,t){return t?[...e,{kind:"resultSummary",summary:t}]:e}function Lw(e){if(e.length===0)return[];let t=new Map;for(let o of e){let s=Pw(o),i=t.get(s);i||(i=[],t.set(s,i)),i.push(o)}let n=[],r=new Set;for(let o of e){let s=Pw(o),i=t.get(s);i.length>=hO(o.toolName)?r.has(s)||(n.push({kind:"group",toolName:o.toolName,label:tt.has(o.toolName)?o.toolInput:"",entries:i}),r.add(s)):n.push(o)}return n}function Fw(e){let t=e.entries.length,n=e.entries.filter(a=>a.result),r=n.filter(a=>a.result.isError),o=n.length,s;if(r.length>0){let a=o-r.length,l=[];a>0&&l.push(`${a} ok`),l.push(`${r.length} error${r.length===1?"":"s"}`),s=l.join(", ")}else o===t?s=`${t} done`:o===0?s=`${t} running`:s=`${o}/${t} done`;return En(e.toolName+e.label)+m.dim(` \xD7${t} \u2014 ${s}`)}function bO(e,t){return t<=1||e.endsWith("s")||/(sh|ch|x|z)$/i.test(e)?e:e+"s"}var wO=5,Mw=60;function kO(e){let t=new Map,n=0;for(let s of e)s.kind==="group"?(t.set(s.toolName,(t.get(s.toolName)??0)+s.entries.length),n+=s.entries.length):(t.set(s.toolName,(t.get(s.toolName)??0)+1),n+=1);if(n===0)return"";if(e.length>0&&e.every(s=>tt.has(s.toolName))&&new Set(e.map(s=>s.toolName)).size===1){let s=[],i=!1;for(let a of e){let c=(a.kind==="group"?a.label:a.toolInput).trim();if(!c.startsWith("(")||!c.endsWith(")")){i=!0;break}let u=c.slice(1,-1),d=ht(u);if(!d){i=!0;break}let p=d.length>Mw?d.slice(0,Mw-1)+"\u2026":d,f=a.kind==="group"?a.entries.length:1;s.push({display:p,entries:f})}if(!i&&s.length>0){let a=s.slice(0,wO),l=a.map(({display:p,entries:f})=>f>1?`${p} \xD7${f}`:p),c=a.reduce((p,f)=>p+f.entries,0),u=n-c,d=l.join(", ")+(u>0?` (+${u})`:"");return`\u2026 +${n} more: ${d}`}}let o=[];for(let[s,i]of t)o.push(`${i} ${bO(s,i)}`);return`\u2026 +${n} (${o.join(", ")})`}function yd(e,t,n,r=Y(),o=[],s=xn()){let i=La(o,s),a=hd(i,s),l=e.filter(g=>g.kind==="text"),c=e.filter(g=>g.kind==="tool"),u=Lw(c),d=Dw(u,Oa),p=Ow(d,s);for(let{sibling:g,connector:h}of p){let b=m.dim(h),y=h===s.lastConnector;if(g.kind==="overflow")n.push(Me(a+b+m.dim(g.text),r));else if(g.kind==="group")n.push(Me(a+b+Fw(g),r));else if(g.kind==="resultSummary")n.push(Me(a+b+m.dim(g.summary),r));else{let w=g,v=t.get(w.toolUseId);if(tt.has(w.toolName)&&v&&v.length>0)w.headerEmitted?n.push(Me(a+b,r)):n.push(Me(a+b+w.prefix,r)),yd(v,t,n,r,[...o,y],s),w.thinkingTail&&n.push(Me(a+s.spineClosed+m.thinking("\u2307 "+ht(w.thinkingTail)),r));else if(w.result){if(n.push(Me(a+b+w.prefix+m.dim(" \u2014 ")+Zr(w.result.isError)+" "+nr(w.result,void 0,60,w.toolName),r)),w.diff&&!w.result.isError){let x=a+(y?s.spineClosed:m.dim(s.spine))+" ";for(let S of rr(w.diff,"overlay",x))n.push(S)}}else{n.push(Me(a+b+w.prefix,r));let x=a+(y?s.spineClosed:m.dim(s.spine))+" ";w.thinkingTail?n.push(Me(x+m.thinking("\u2307 "+ht(w.thinkingTail)),r)):n.push(Me(x+m.dim(Cw(w.toolName)),r))}}}let f=c.length>0?La([...o,!0],s):i;for(let g of l)for(let h of $w(g.text,f,s))n.push(Me(h,r))}function bd(e,t,n,r,o=Y(),s=[],i=xn()){let a=La(s,i),l=hd(a,i),c=[],u=e.filter(y=>y.kind==="text"),d=e.filter(y=>y.kind==="tool"),p=Lw(d),f=Dw(p,Oa),g=yO(f,r),h=Ow(g,i);for(let{sibling:y,connector:w}of h){let v=m.dim(w),x=w===i.lastConnector;if(y.kind==="overflow")c.push(Me(l+v+m.dim(y.text),o));else if(y.kind==="resultSummary")c.push(Me(l+v+m.dim(y.summary),o));else if(y.kind==="group")c.push(Me(l+v+Fw(y),o));else{let S=y,T=t.get(S.toolUseId);if(tt.has(S.toolName)&&T&&T.length>0){if(S.headerEmitted){let A=S.toolInput?`${S.toolName} ${ht(S.toolInput)}`:S.toolName;c.push(Me(l+v+m.dim("\u21B3 "+A),o))}else c.push(Me(l+v+S.prefix,o));c.push(...bd(T,t,n,void 0,o,[...s,x],i))}else if(S.result){if(c.push(Me(l+v+S.prefix+m.dim(" \u2014 ")+Zr(S.result.isError)+" "+nr(S.result,n,60,S.toolName),o)),S.diff&&!S.result.isError){let A=l+(x?i.spineClosed:m.dim(i.spine))+" ";for(let R of rr(S.diff,"flush",A))c.push(R)}}else c.push(Me(l+v+S.prefix,o))}}let b=d.length>0||r!=null?La([...s,!0],i):a;for(let y of u)for(let w of $w(y.text,b,i))c.push(Me(w,o));return c}function Fa(e,t,n,r,o=0){let s=xn(),i=t.filter(h=>h.kind==="tool"),l=i.filter(h=>h.result).reduce((h,b)=>h+(b.result.lineCount??0),0),c=[];i.length>Oa&&(c.push(`${i.length} tools`),l>0&&c.push(`${l} lines`));let u=m.dim(s.spine.repeat(o)),d=Array.from({length:o},()=>!1),p=m.dim(s.turnRoot),f=c.length>0?u+p+e.prefix+m.dim(" \u2014 "+c.join(" \xB7 ")):u+p+e.prefix,g=bd(t,n,r,e.agentResultSummary,Y(),d,s);return[f,...g].join(`
2026
- `)}function Nw(e,t=0){let n=xn(),r=m.dim(n.spine.repeat(t)),o=m.dim(n.turnRoot);return r+o+e.prefix}function Na(e,t,n,r,o=0){let s=xn(),i=Array.from({length:o},()=>!1);return bd(t,n,r,e.agentResultSummary,Y(),i,s)}function ds(e,t,n){let r=[];for(let o of t){let s=e.get(o);if(s.length===1){let i=s[0];if(i.result){if(r.push(" "+i.prefix+m.dim(" \u2014 ")+Zr(i.result.isError)+" "+nr(i.result,n,60,i.toolName)),i.diff&&!i.result.isError)for(let a of rr(i.diff,"flush"," "))r.push(a)}else r.push(" "+i.prefix)}else{r.push(SO(o,s,n));let i=s.filter(l=>l.diff&&l.result&&!l.result.isError),a=i.length>1;for(let l of i){if(a){let c=ht(Da(l.toolInput).trim()||l.toolInput.trim());r.push(" "+m.dim(`\u2500\u2500 ${c} \u2500\u2500`))}for(let c of rr(l.diff,"flush"," "))r.push(c)}}}return r}function SO(e,t,n){let{color:r,glyph:o}=Gr(e),s=t.map(u=>ht(Da(u.toolInput).trim())),i=r(o+" ")+r.bold(e)+m.dim(` \xD7${t.length}`)+" "+m.toolArg(s.join(", ")),a=t.filter(u=>u.result),l=a.filter(u=>u.result.isError);if(l.length>0){let u=a.length-l.length,p=a.filter(g=>!g.result.isError).map(g=>g.result.lineCount).filter(g=>g!==void 0).reduce((g,h)=>g+h,0),f=[];return p>0&&f.push(`${p} lines`),u>0&&f.push(`${u} ok`),f.push(m.error(`${l.length} error${l.length>1?"s":""}`))," "+i+m.dim(" \u2014 ")+f.join(m.dim(", "))}let c=a.map(u=>u.result?.lineCount).filter(u=>u!==void 0);if(c.length===a.length&&c.length>0){if(c.every(p=>p===c[0]))return" "+i+m.dim(` \u2014 ${c[0]} lines each`);let d=c.reduce((p,f)=>p+f,0);return" "+i+m.dim(` \u2014 ${d} lines total`)}if(a.length>0){let u=a.map(d=>nr(d.result,n,60,d.toolName));return" "+i+m.dim(" \u2014 ")+u.join(m.dim(", "))}return" "+i}var Uw=6,ps=class{entries=new Map;order=[];agentIdStack=[];addStart(t,n,r){let o=Pe(r),s=En(n+o),i=this.agentIdStack.at(-1)??void 0,a={kind:"tool",toolUseId:t,toolName:n,toolInput:o,prefix:s,...i!==void 0?{agentContext:i}:{}};this.entries.set(t,a),this.order.push(t),Rr.has(n)&&this.agentIdStack.push(t)}addStartWithAgentContext(t,n,r,o,s){let i=Pe(r),a=this.entries.get(t);if(a?.kind==="tool"){a.toolInput=i,a.prefix=En(n+i,s),o!==void 0&&(a.agentContext=o);return}let l=En(n+i,s),c={kind:"tool",toolUseId:t,toolName:n,toolInput:i,prefix:l,...o!==void 0?{agentContext:o}:{}};this.entries.set(t,c),this.order.push(t)}mergeAgentLabel(t,n,r){let o=this.entries.get(t);if(o?.kind!=="tool"||!Rr.has(o.toolName)||o.toolName==="Agent")return!1;let i=`(${Pe(n)})`;return o.toolName="Agent",o.toolInput=i,o.prefix=En("Agent"+i,r),!0}setAgentContext(t,n){let r=this.entries.get(t);r?.kind==="tool"&&(n===void 0?delete r.agentContext:r.agentContext=n)}setAgentResultSummary(t,n){let r=this.entries.get(t);r?.kind==="tool"&&(r.agentResultSummary=n)}setThinkingTail(t,n){let r=this.entries.get(t);r?.kind==="tool"&&(n===void 0?delete r.thinkingTail:r.thinkingTail=n)}addResult(t,n){let r=this.entries.get(t);r?.kind==="tool"&&(r.result=n),this.agentIdStack.at(-1)===t&&this.agentIdStack.pop()}addDiff(t,n){let r=this.entries.get(t);r?.kind==="tool"&&(r.diff=n)}upsertTextChild(t,n,r){let o=this.entries.get(t);if(o?.kind==="text"){o.text=r,o.agentContext=n;return}let s={kind:"text",toolUseId:t,text:r,agentContext:n};this.entries.set(t,s),this.order.push(t)}removeTextChildrenUnder(t){let n=[];for(let[r,o]of this.entries)o.kind==="text"&&o.agentContext===t&&n.push(r);for(let r of n)this.entries.delete(r);if(n.length>0){let r=new Set(n);this.order=this.order.filter(o=>!r.has(o))}}hasPending(){return this.entries.size>0}hasEntry(t){return this.entries.get(t)?.kind==="tool"}getOverlay(){let t=this.buildChildMap(),n=[],r=xn(),o=Y(),s=c=>le(c,o),i=[];for(let c of this.order){let u=this.entries.get(c);!u||u.kind!=="tool"||u.agentContext||i.push(u)}let a=i,l=0;if(i.length>Uw){let c=i.filter(f=>!f.result),u=i.filter(f=>f.result),d=Math.max(0,Uw-c.length),p=new Set(u.slice(-d));l=u.length-p.size,a=i.filter(f=>!f.result||p.has(f))}for(let c of a){let u=t.get(c.toolUseId);if(tt.has(c.toolName)&&u&&u.length>0)c.headerEmitted?n.push(s(m.dim(r.turnRoot))):n.push(s(m.dim(r.turnRoot)+c.prefix)),yd(u,t,n,o,void 0,r),c.thinkingTail&&n.push(s(m.dim(r.spine)+r.spineClosed+m.thinking("\u2307 "+ht(c.thinkingTail))));else if(!(tt.has(c.toolName)&&c.headerEmitted))if(c.result){if(n.push(s(" "+c.prefix+m.dim(" \u2014 ")+Zr(c.result.isError)+" "+nr(c.result,void 0,60,c.toolName))),c.diff&&!c.result.isError)for(let d of rr(c.diff,"overlay"," "))n.push(s(d))}else n.push(s(" "+c.prefix+m.dim(" \u2026"))),c.thinkingTail&&n.push(s(m.dim(r.spine)+r.spineClosed+m.thinking("\u2307 "+ht(c.thinkingTail))))}return l>0&&n.push(s(" "+m.dim(`\u2026 +${l} done`))),n.join(`
2025
+ `))i.push(s+r+u)}return i}function Pw(e){return tt.has(e.toolName)?e.toolName+"::"+e.toolInput:e.toolName}function hO(e){return tt.has(e)?Rw:Aw}var _Q=gd.midConnector,IQ=gd.lastConnector;function Ow(e,t=xn()){return e.map((n,r)=>({sibling:n,connector:r===e.length-1?t.lastConnector:t.midConnector}))}function Dw(e,t){if(e.length<=t)return e;let n=e.slice(0,t),r=e.slice(t),o=kO(r);return[...n,{kind:"overflow",count:r.length,text:o}]}function yO(e,t){return t?[...e,{kind:"resultSummary",summary:t}]:e}function Lw(e){if(e.length===0)return[];let t=new Map;for(let o of e){let s=Pw(o),i=t.get(s);i||(i=[],t.set(s,i)),i.push(o)}let n=[],r=new Set;for(let o of e){let s=Pw(o),i=t.get(s);i.length>=hO(o.toolName)?r.has(s)||(n.push({kind:"group",toolName:o.toolName,label:tt.has(o.toolName)?o.toolInput:"",entries:i}),r.add(s)):n.push(o)}return n}function Fw(e){let t=e.entries.length,n=e.entries.filter(a=>a.result),r=n.filter(a=>a.result.isError),o=n.length,s;if(r.length>0){let a=o-r.length,l=[];a>0&&l.push(`${a} ok`),l.push(`${r.length} error${r.length===1?"":"s"}`),s=l.join(", ")}else o===t?s=`${t} done`:o===0?s=`${t} running`:s=`${o}/${t} done`;return En(e.toolName+e.label)+m.dim(` \xD7${t} \u2014 ${s}`)}function bO(e,t){return t<=1||e.endsWith("s")||/(sh|ch|x|z)$/i.test(e)?e:e+"s"}var wO=5,Mw=60;function kO(e){let t=new Map,n=0;for(let s of e)s.kind==="group"?(t.set(s.toolName,(t.get(s.toolName)??0)+s.entries.length),n+=s.entries.length):(t.set(s.toolName,(t.get(s.toolName)??0)+1),n+=1);if(n===0)return"";if(e.length>0&&e.every(s=>tt.has(s.toolName))&&new Set(e.map(s=>s.toolName)).size===1){let s=[],i=!1;for(let a of e){let c=(a.kind==="group"?a.label:a.toolInput).trim();if(!c.startsWith("(")||!c.endsWith(")")){i=!0;break}let u=c.slice(1,-1),d=ht(u);if(!d){i=!0;break}let p=d.length>Mw?d.slice(0,Mw-1)+"\u2026":d,f=a.kind==="group"?a.entries.length:1;s.push({display:p,entries:f})}if(!i&&s.length>0){let a=s.slice(0,wO),l=a.map(({display:p,entries:f})=>f>1?`${p} \xD7${f}`:p),c=a.reduce((p,f)=>p+f.entries,0),u=n-c,d=l.join(", ")+(u>0?` (+${u})`:"");return`\u2026 +${n} more: ${d}`}}let o=[];for(let[s,i]of t)o.push(`${i} ${bO(s,i)}`);return`\u2026 +${n} (${o.join(", ")})`}function yd(e,t,n,r=Y(),o=[],s=xn()){let i=La(o,s),a=hd(i,s),l=e.filter(g=>g.kind==="text"),c=e.filter(g=>g.kind==="tool"),u=Lw(c),d=Dw(u,Oa),p=Ow(d,s);for(let{sibling:g,connector:h}of p){let b=m.dim(h),y=h===s.lastConnector;if(g.kind==="overflow")n.push(Me(a+b+m.dim(g.text),r));else if(g.kind==="group")n.push(Me(a+b+Fw(g),r));else if(g.kind==="resultSummary")n.push(Me(a+b+m.dim(g.summary),r));else{let w=g,v=t.get(w.toolUseId);if(tt.has(w.toolName)&&v&&v.length>0)w.headerEmitted?n.push(Me(a+b,r)):n.push(Me(a+b+w.prefix,r)),yd(v,t,n,r,[...o,y],s),w.thinkingTail&&n.push(Me(a+m.thinking("\u2307 "+ht(w.thinkingTail)),r));else if(w.result){if(n.push(Me(a+b+w.prefix+m.dim(" \u2014 ")+Zr(w.result.isError)+" "+nr(w.result,void 0,60,w.toolName),r)),w.diff&&!w.result.isError){let x=a+(y?s.spineClosed:m.dim(s.spine))+" ";for(let S of rr(w.diff,"overlay",x))n.push(S)}}else{n.push(Me(a+b+w.prefix,r));let x=a+(y?s.spineClosed:m.dim(s.spine))+" ";w.thinkingTail?n.push(Me(x+m.thinking("\u2307 "+ht(w.thinkingTail)),r)):n.push(Me(x+m.dim(Cw(w.toolName)),r))}}}let f=c.length>0?La([...o,!0],s):i;for(let g of l)for(let h of $w(g.text,f,s))n.push(Me(h,r))}function bd(e,t,n,r,o=Y(),s=[],i=xn()){let a=La(s,i),l=hd(a,i),c=[],u=e.filter(y=>y.kind==="text"),d=e.filter(y=>y.kind==="tool"),p=Lw(d),f=Dw(p,Oa),g=yO(f,r),h=Ow(g,i);for(let{sibling:y,connector:w}of h){let v=m.dim(w),x=w===i.lastConnector;if(y.kind==="overflow")c.push(Me(l+v+m.dim(y.text),o));else if(y.kind==="resultSummary")c.push(Me(l+v+m.dim(y.summary),o));else if(y.kind==="group")c.push(Me(l+v+Fw(y),o));else{let S=y,T=t.get(S.toolUseId);if(tt.has(S.toolName)&&T&&T.length>0){if(S.headerEmitted){let A=S.toolInput?`${S.toolName} ${ht(S.toolInput)}`:S.toolName;c.push(Me(l+v+m.dim("\u21B3 "+A),o))}else c.push(Me(l+v+S.prefix,o));c.push(...bd(T,t,n,void 0,o,[...s,x],i))}else if(S.result){if(c.push(Me(l+v+S.prefix+m.dim(" \u2014 ")+Zr(S.result.isError)+" "+nr(S.result,n,60,S.toolName),o)),S.diff&&!S.result.isError){let A=l+(x?i.spineClosed:m.dim(i.spine))+" ";for(let R of rr(S.diff,"flush",A))c.push(R)}}else c.push(Me(l+v+S.prefix,o))}}let b=d.length>0||r!=null?La([...s,!0],i):a;for(let y of u)for(let w of $w(y.text,b,i))c.push(Me(w,o));return c}function Fa(e,t,n,r,o=0){let s=xn(),i=t.filter(h=>h.kind==="tool"),l=i.filter(h=>h.result).reduce((h,b)=>h+(b.result.lineCount??0),0),c=[];i.length>Oa&&(c.push(`${i.length} tools`),l>0&&c.push(`${l} lines`));let u=m.dim(s.spine.repeat(o)),d=Array.from({length:o},()=>!1),p=m.dim(s.turnRoot),f=c.length>0?u+p+e.prefix+m.dim(" \u2014 "+c.join(" \xB7 ")):u+p+e.prefix,g=bd(t,n,r,e.agentResultSummary,Y(),d,s);return[f,...g].join(`
2026
+ `)}function Nw(e,t=0){let n=xn(),r=m.dim(n.spine.repeat(t)),o=m.dim(n.turnRoot);return r+o+e.prefix}function Na(e,t,n,r,o=0){let s=xn(),i=Array.from({length:o},()=>!1);return bd(t,n,r,e.agentResultSummary,Y(),i,s)}function ds(e,t,n){let r=[];for(let o of t){let s=e.get(o);if(s.length===1){let i=s[0];if(i.result){if(r.push(" "+i.prefix+m.dim(" \u2014 ")+Zr(i.result.isError)+" "+nr(i.result,n,60,i.toolName)),i.diff&&!i.result.isError)for(let a of rr(i.diff,"flush"," "))r.push(a)}else r.push(" "+i.prefix)}else{r.push(SO(o,s,n));let i=s.filter(l=>l.diff&&l.result&&!l.result.isError),a=i.length>1;for(let l of i){if(a){let c=ht(Da(l.toolInput).trim()||l.toolInput.trim());r.push(" "+m.dim(`\u2500\u2500 ${c} \u2500\u2500`))}for(let c of rr(l.diff,"flush"," "))r.push(c)}}}return r}function SO(e,t,n){let{color:r,glyph:o}=Gr(e),s=t.map(u=>ht(Da(u.toolInput).trim())),i=r(o+" ")+r.bold(e)+m.dim(` \xD7${t.length}`)+" "+m.toolArg(s.join(", ")),a=t.filter(u=>u.result),l=a.filter(u=>u.result.isError);if(l.length>0){let u=a.length-l.length,p=a.filter(g=>!g.result.isError).map(g=>g.result.lineCount).filter(g=>g!==void 0).reduce((g,h)=>g+h,0),f=[];return p>0&&f.push(`${p} lines`),u>0&&f.push(`${u} ok`),f.push(m.error(`${l.length} error${l.length>1?"s":""}`))," "+i+m.dim(" \u2014 ")+f.join(m.dim(", "))}let c=a.map(u=>u.result?.lineCount).filter(u=>u!==void 0);if(c.length===a.length&&c.length>0){if(c.every(p=>p===c[0]))return" "+i+m.dim(` \u2014 ${c[0]} lines each`);let d=c.reduce((p,f)=>p+f,0);return" "+i+m.dim(` \u2014 ${d} lines total`)}if(a.length>0){let u=a.map(d=>nr(d.result,n,60,d.toolName));return" "+i+m.dim(" \u2014 ")+u.join(m.dim(", "))}return" "+i}var Uw=6,ps=class{entries=new Map;order=[];agentIdStack=[];addStart(t,n,r){let o=Pe(r),s=En(n+o),i=this.agentIdStack.at(-1)??void 0,a={kind:"tool",toolUseId:t,toolName:n,toolInput:o,prefix:s,...i!==void 0?{agentContext:i}:{}};this.entries.set(t,a),this.order.push(t),Rr.has(n)&&this.agentIdStack.push(t)}addStartWithAgentContext(t,n,r,o,s){let i=Pe(r),a=this.entries.get(t);if(a?.kind==="tool"){a.toolInput=i,a.prefix=En(n+i,s),o!==void 0&&(a.agentContext=o);return}let l=En(n+i,s),c={kind:"tool",toolUseId:t,toolName:n,toolInput:i,prefix:l,...o!==void 0?{agentContext:o}:{}};this.entries.set(t,c),this.order.push(t)}mergeAgentLabel(t,n,r){let o=this.entries.get(t);if(o?.kind!=="tool"||!Rr.has(o.toolName)||o.toolName==="Agent")return!1;let i=`(${Pe(n)})`;return o.toolName="Agent",o.toolInput=i,o.prefix=En("Agent"+i,r),!0}setAgentContext(t,n){let r=this.entries.get(t);r?.kind==="tool"&&(n===void 0?delete r.agentContext:r.agentContext=n)}setAgentResultSummary(t,n){let r=this.entries.get(t);r?.kind==="tool"&&(r.agentResultSummary=n)}setThinkingTail(t,n){let r=this.entries.get(t);r?.kind==="tool"&&(n===void 0?delete r.thinkingTail:r.thinkingTail=n)}addResult(t,n){let r=this.entries.get(t);r?.kind==="tool"&&(r.result=n),this.agentIdStack.at(-1)===t&&this.agentIdStack.pop()}addDiff(t,n){let r=this.entries.get(t);r?.kind==="tool"&&(r.diff=n)}upsertTextChild(t,n,r){let o=this.entries.get(t);if(o?.kind==="text"){o.text=r,o.agentContext=n;return}let s={kind:"text",toolUseId:t,text:r,agentContext:n};this.entries.set(t,s),this.order.push(t)}removeTextChildrenUnder(t){let n=[];for(let[r,o]of this.entries)o.kind==="text"&&o.agentContext===t&&n.push(r);for(let r of n)this.entries.delete(r);if(n.length>0){let r=new Set(n);this.order=this.order.filter(o=>!r.has(o))}}hasPending(){return this.entries.size>0}hasEntry(t){return this.entries.get(t)?.kind==="tool"}getOverlay(){let t=this.buildChildMap(),n=[],r=xn(),o=Y(),s=c=>le(c,o),i=[];for(let c of this.order){let u=this.entries.get(c);!u||u.kind!=="tool"||u.agentContext||i.push(u)}let a=i,l=0;if(i.length>Uw){let c=i.filter(f=>!f.result),u=i.filter(f=>f.result),d=Math.max(0,Uw-c.length),p=new Set(u.slice(-d));l=u.length-p.size,a=i.filter(f=>!f.result||p.has(f))}for(let c of a){let u=t.get(c.toolUseId);if(tt.has(c.toolName)&&u&&u.length>0)c.headerEmitted?n.push(s(m.dim(r.turnRoot))):n.push(s(m.dim(r.turnRoot)+c.prefix)),yd(u,t,n,o,void 0,r),c.thinkingTail&&n.push(s(m.dim(r.spine)+m.thinking("\u2307 "+ht(c.thinkingTail))));else if(!(tt.has(c.toolName)&&c.headerEmitted))if(c.result){if(n.push(s(" "+c.prefix+m.dim(" \u2014 ")+Zr(c.result.isError)+" "+nr(c.result,void 0,60,c.toolName))),c.diff&&!c.result.isError)for(let d of rr(c.diff,"overlay"," "))n.push(s(d))}else n.push(s(" "+c.prefix+m.dim(" \u2026"))),c.thinkingTail&&n.push(s(m.dim(r.spine)+m.thinking("\u2307 "+ht(c.thinkingTail))))}return l>0&&n.push(s(" "+m.dim(`\u2026 +${l} done`))),n.join(`
2027
2027
  `)}ancestorDepthOf(t){let n=new Set([t]),r=0,o=t,s=32;for(;o!==void 0&&r<s;){let i=this.entries.get(o);if(!i||i.kind!=="tool")break;let a=i.agentContext;if(a===void 0||n.has(a))break;n.add(a);let l=this.entries.get(a);if(!l||l.kind!=="tool")break;r+=1,o=a}return r}flushSource(t,n){let r=this.entries.get(t);if(!r||r.kind!=="tool")return[];let o=this.ancestorDepthOf(t),s=[];{let p=[],f=new Set([t]),g=r.agentContext;for(;g!==void 0&&!f.has(g);){f.add(g);let h=this.entries.get(g);if(!h||h.kind!=="tool")break;p.push({entry:h,depth:this.ancestorDepthOf(h.toolUseId)}),g=h.agentContext}p.reverse();for(let{entry:h,depth:b}of p)h.headerEmitted||(s.push(Nw(h,b)),h.headerEmitted=!0)}let i=new Set([t]),a=[t];for(;a.length>0;){let p=a.shift();for(let[f,g]of this.entries){if(i.has(f))continue;(g.kind==="tool",g.agentContext)===p&&(i.add(f),g.kind==="tool"&&a.push(f))}}let l=new Map;for(let p of this.order){if(!i.has(p))continue;let f=this.entries.get(p);if(!f)continue;let g=(f.kind==="tool",f.agentContext);if(!g)continue;let h=l.get(g);h||(h=[],l.set(g,h)),h.push(f)}let c=l.get(r.toolUseId)??[],u=r.headerEmitted?Na(r,c,l,n,o).join(`
2028
2028
  `):Fa(r,c,l,n,o);for(let p of i)this.entries.delete(p);this.order=this.order.filter(p=>!i.has(p));let d=u===""?[]:[u];return[...s,...d]}flushCompletedRoots(t){if(this.entries.size===0)return[];let n=this.buildChildMap(),r=[];for(let c of this.order){let u=this.entries.get(c);!u||u.kind!=="tool"||u.agentContext||u.result!==void 0&&r.push(c)}if(r.length===0)return[];let o=[],s=new Map,i=[];for(let c of r){let u=this.entries.get(c);if(!u||u.kind!=="tool")continue;let d=n.get(u.toolUseId);if(tt.has(u.toolName))if(o.push(...ds(s,i,t)),s.clear(),i.length=0,u.headerEmitted){let p=Na(u,d??[],n,t,0);o.push(...p)}else o.push(Fa(u,d??[],n,t));else s.has(u.toolName)||(s.set(u.toolName,[]),i.push(u.toolName)),s.get(u.toolName).push(u)}o.push(...ds(s,i,t));let a=new Set(r),l=[...r];for(;l.length>0;){let c=l.shift();for(let[u,d]of this.entries){if(a.has(u))continue;(d.kind==="tool",d.agentContext)===c&&(a.add(u),d.kind==="tool"&&l.push(u))}}for(let c of a)this.entries.delete(c);return this.order=this.order.filter(c=>!a.has(c)),o}flush(t){if(this.entries.size===0)return[];let n=this.buildChildMap(),r=[];for(let a of this.order){let l=this.entries.get(a);!l||l.kind!=="tool"||l.agentContext||r.push(a)}let o=[],s=new Map,i=[];for(let a of r){let l=this.entries.get(a);if(!l||l.kind!=="tool")continue;let c=n.get(l.toolUseId);if(tt.has(l.toolName))if(o.push(...ds(s,i,t)),s.clear(),i.length=0,l.headerEmitted){let u=Na(l,c??[],n,t,0);o.push(...u)}else o.push(Fa(l,c??[],n,t));else s.has(l.toolName)||(s.set(l.toolName,[]),i.push(l.toolName)),s.get(l.toolName).push(l)}return o.push(...ds(s,i,t)),this.entries.clear(),this.order=[],this.agentIdStack=[],o}buildChildMap(){let t=new Map;for(let n of this.order){let r=this.entries.get(n);if(!r)continue;let o=(r.kind==="tool",r.agentContext);if(!o)continue;let s=t.get(o);s||(s=[],t.set(o,s)),s.push(r)}return t}};var eo=class{buffer="";startedAt=null;endedAt=null;hasEmitted=!1;push(t){this.hasEmitted||(this.buffer+=t,this.startedAt||(this.startedAt=Date.now()))}markEnded(){this.endedAt===null&&this.startedAt!==null&&(this.endedAt=Date.now())}isActive(){return!this.hasEmitted}hasBufferedContent(){return this.buffer.trim().length>0}peek(){return this.buffer}consume(){return this.hasEmitted=!0,this.buffer}collapse(){if(this.hasEmitted||!this.startedAt)return!this.startedAt&&!this.hasEmitted&&Je()&&console.error("[afk:thinking] collapse() short-circuited: no thinking chunks received this turn. Model may not support extended thinking, or API ignored the thinking parameter."),null;this.hasEmitted=!0;let t=this.endedAt??Date.now(),n=Math.max(0,t-this.startedAt),r=n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`,o=Math.ceil(this.buffer.length/4);return` ${m.thinking("\u25C6 thought for "+r+" \xB7 "+o+" tok")}`}inlineSummary(){if(!this.startedAt||!this.hasBufferedContent())return null;let t=this.endedAt??Date.now(),n=Math.max(0,t-this.startedAt),r=n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`,o=Math.ceil(this.buffer.length/4);return`thought ${r} \xB7 ${o} tok`}};var wd="__main__";function Bw(e){let t={startedAt:Date.now(),lastEventAt:Date.now(),stats:{tokens:0,toolUses:0},contentBuffer:"",done:!1,errored:!1,stalledTicks:0};return e!==void 0&&(t.agentType=e),t}function ms(e,t){return{type:"tool_result",toolUseId:"synthetic",content:e,isError:t}}function Ww(e){let t=["Done"],n=[];e.stats.toolUses&&n.push(`${e.stats.toolUses} tool${e.stats.toolUses===1?"":"s"}`),e.stats.tokens&&n.push(`${ee(e.stats.tokens)} tok`);let r=e.responseMetadata?.durationMs,o=Date.now()-e.startedAt;typeof r=="number"&&(n.push(re(r)),o>r*1.5&&o-r>=1e3&&n.push(`${re(o)} wall`)),n.length===0&&o>0&&n.push(re(o));let s=e.thinkingLane?.inlineSummary();return s&&n.push(s),n.length>0&&t.push(`(${n.join(" \xB7 ")})`),t.join(" ")}var Ua=class{out;throttleMs;indent;buffer="";committed="";throttleTimer=null;logUpdate=null;isTTY;flushing=!1;compositor;resizeUnsub=null;constructor(t){this.out=t?.out??process.stdout,this.throttleMs=t?.throttleMs??33,this.indent=t?.indent??" ",this.isTTY=this.out.isTTY??!1,this.compositor=t?.compositor??null,this.logUpdate=null,this.isTTY&&(this.resizeUnsub=je.subscribe(()=>this.scheduleRepaint()))}async initLogUpdate(){if(!(!this.isTTY||this.logUpdate!==null))try{let n=(await import("log-update")).default,r=(o=>{n(o)});r.clear=()=>n.clear(),this.logUpdate=r}catch{this.logUpdate=null}}hasMarkdownContent(t){return/[#*_\-\`>\[\|~]|\d+\.\s/.test(t)}findBlockBoundary(t){let n=t.indexOf(`
2029
2029
 
@@ -2144,7 +2144,7 @@ _ended: ${new Date().toISOString()}_
2144
2144
  `);let P=OS(c);if(P&&(I(DS(P)),I(""),r.onTerminalState))try{r.onTerminalState(P)}catch{}if(pN(g,n,I),r.onAfterTurn){let D=r.onAfterTurn();D instanceof Promise&&await D.catch(()=>{})}}}catch(R){await T(),d||kr(br(R))}finally{await T(),s&&(s.fn=R=>console.log(R)),r.setActiveCompositor?.(null),r.setBackgroundHandler?.(null),r.setInFlight(!1),r.rearmStatus?.()}}function pN(e,t,n=console.log){if(!e)return;let r=[];e.durationMs&&r.push(re(e.durationMs)),e.totalCostUsd!==void 0&&r.push(Oe(e.totalCostUsd));let o=Number(e.usage?.input_tokens??0),s=Number(e.usage?.output_tokens??0);o+s>0&&r.push(ee(o+s)+" tok"),r.length>0&&n(m.dim(" \u25E6 "+r.join(" \xB7 ")));let i=Ku(t),a=et(t.model);if(i>=1){let l=Math.round((i-1)*a),c=Math.round(a/1e3);console.log(m.error(` context OVER ${c}k tok by ~${ee(l)} tok \u2014 model output may be silently truncated`))}else if(i>.5){let l=i>.8?m.error:m.warning;n(l(` context ${Math.round(i*100)}% used of ${ee(a)}`))}n("")}function NS(e={}){let t=e.load??ga,n=e.onResize??(i=>je.subscribe(i)),r="",o,s=n(()=>{r=""});return{renderIfChanged(i){let a=i??"unbound",l=t(a),c=Ob(l);return a===o&&c===r?[]:(o=a,r=c,c===""?[]:ha(l))},invalidate(){r=""},dispose(){try{s()}catch{}}}}var ep={done:{glyph:"\u2713",color:m.success,label:"done"},blocked:{glyph:"\u2298",color:m.error,label:"blocked"},asking:{glyph:"?",color:m.warning,label:"asking"},interrupted:{glyph:"\u23F8",color:m.meta,label:"interrupted"}};function US(e={}){let t=Math.max(2,e.capacity??8),n=[];return{push(r){n.push(r.kind),n.length>t&&(n=n.slice(n.length-t))},reset(){n=[]},entries(){return n},render(){if(n.length===0)return null;let r=m.dim(" ledger "),o=m.dim(" \xB7 "),s=n.map(u=>{let d=ep[u];return d.color(`${d.glyph} ${d.label}`)}),i=m.dim(` (${n.length} turn${n.length===1?"":"s"})`),a=r+s.join(o)+i,l=Math.max(20,Y()-2);if(H(a)<=l)return a;let c=r+n.map(u=>ep[u].color(ep[u].glyph)).join(m.dim(" "))+i;return le(c,l)}}}var tp=["\u25D0","\u25D1","\u25D2","\u25D3"],Cl=class{stream;manager;registry;throttleMs;started=!1;lastRepaint=0;spinnerIndex=0;spinnerInterval=null;resizeUnsub=null;updateHandler=null;registryStartedHandler=null;registrySettledHandler=null;rowCount=0;onRowCountChange;constructor(t,n,r={}){this.manager=t,this.registry=n,this.stream=r.stream??process.stdout,this.throttleMs=r.throttleMs??200}setRowCountChangeHandler(t){this.onRowCountChange=t}start(){this.started||(this.started=!0,this.updateHandler=()=>this.scheduleRepaint(),this.manager.on("update",this.updateHandler),this.manager.on("complete",this.updateHandler),this.registry&&(this.registryStartedHandler=t=>{this.scheduleRepaint()},this.registrySettledHandler=t=>{this.scheduleRepaint()},this.registry.on("started",this.registryStartedHandler),this.registry.on("settled",this.registrySettledHandler)),this.resizeUnsub=je.subscribe(()=>this.repaint()),this.spinnerInterval=setInterval(()=>{this.spinnerIndex=(this.spinnerIndex+1)%tp.length,this.rowCount>0&&this.repaint()},Math.max(this.throttleMs,50)))}stop(){this.started&&(this.started=!1,this.updateHandler&&(this.manager.removeListener("update",this.updateHandler),this.manager.removeListener("complete",this.updateHandler),this.updateHandler=null),this.registry&&(this.registryStartedHandler&&(this.registry.off("started",this.registryStartedHandler),this.registryStartedHandler=null),this.registrySettledHandler&&(this.registry.off("settled",this.registrySettledHandler),this.registrySettledHandler=null)),this.resizeUnsub&&(this.resizeUnsub(),this.resizeUnsub=null),this.spinnerInterval&&(clearInterval(this.spinnerInterval),this.spinnerInterval=null),this.rowCount>0&&(this.clearRows(),this.rowCount=0,this.onRowCountChange?.(0)))}scheduleRepaint(){Date.now()-this.lastRepaint<this.throttleMs||this.repaint()}repaint(){if(!this.started||!this.stream.isTTY)return;this.lastRepaint=Date.now();let t=[...this.manager.running().map(s=>({kind:"turn",task:s})),...(this.registry?.list()??[]).filter(s=>s.status==="running").map(s=>({kind:"subagent",job:s}))],n=this.stream.rows??24,r=Math.max(0,Math.min(t.length,n-1));if(r!==this.rowCount&&(this.rowCount>0&&this.clearRows(),this.rowCount=r,this.onRowCountChange?.(r)),r===0)return;let o=Math.max(1,n-r);this.stream.write("\x1B[s");for(let s=0;s<r;s++){let i=t[s],a=o+s;this.stream.write(`\x1B[${a};1H`),this.stream.write("\x1B[2K"),this.stream.write(this.formatItemLine(i))}this.stream.write("\x1B[u")}clearRows(){if(!this.stream.isTTY)return;let t=this.stream.rows??24,n=Math.min(this.rowCount,t-1),r=Math.max(1,t-n);this.stream.write("\x1B[s");for(let o=0;o<n;o++)this.stream.write(`\x1B[${r+o};1H`),this.stream.write("\x1B[2K");this.stream.write("\x1B[u")}formatItemLine(t){return t.kind==="turn"?this.formatTaskLine(t.task):this.formatJobLine(t.job)}formatTaskLine(t){let n=Math.max(4,(this.stream.columns??80)-2),r=m.brand(tp[this.spinnerIndex]),o=m.dim(t.id),s=m.bold(t.label),i=[r,o,s];t.progressDescription&&i.push(m.dim(t.progressDescription));let a=[];t.stats.toolUses>0&&a.push(`${t.stats.toolUses} tool${t.stats.toolUses===1?"":"s"}`),t.stats.tokens>0&&a.push(`${ee(t.stats.tokens)} tok`);let l=Date.now()-t.startedAt;return a.push(re(l)),a.length>0&&i.push(m.dim(a.join(" \xB7 "))),le(" "+i.join(" "),n)}formatJobLine(t){let n=Math.max(4,(this.stream.columns??80)-2),r=m.brand(tp[this.spinnerIndex]),o=m.dim(t.jobId),s=m.bold(t.label||t.jobId),i=[r,o,s],a=Date.now()-t.startedAt;return i.push(m.dim(re(a))),le(" "+i.join(" "),n)}};function _l(e,t){let n=m.brand("afk")+m.dim(` (${e})`),r=t?m.warning(" \u25CF plan"):"";return n+r+m.dim(" \u203A ")}async function jS(e,t,n,r){let o=null,s=[];e.session.current.waitForInitialization().then(async p=>{Je()&&(o=da(p)),await Qa(e.session.current),Je()&&(s=Pk())}).catch(()=>{});let i=await CS(),a=new xl({rl:e.rl,history:i,statusLine:e.statusLine}),l,c,u,d;try{await a.armCompositor({promptFn:()=>_l(e.stats.model,e.stats.planMode),onCancel:r,onShiftTab:()=>{let h=e.slashCtx;h.stats.planMode&&h.stats.pendingPlanExit?(h.stats.pendingPlanExit=!1,Tt(h,!1,{closureSummarySkipped:!0}).catch(()=>{})):Tt(h).catch(()=>{}),e.statusLine.rearm()},scrollRegion:e.statusLine}),xr.install($S({readLine:h=>a.readLine({promptFn:()=>h}).then(b=>b.text),writer:{line:(h="")=>{let b=a.getCompositor();b?b.commitAbove(h):process.stdout.write(h+`
2145
2145
  `)}},pendingCount:()=>xr.pendingCount()})),e.replRenderer.setCompositor(a.getCompositor()),e.slashCtx.getCompositor=()=>a.getCompositor(),c=NS();let p=US();e.clearVerdictLedger=()=>p.reset(),u=new ya,Gb(u),Xb(u),ew(u),Qb(e.backgroundRegistry),d=new Cl(u,e.backgroundRegistry),d.setRowCountChangeHandler(h=>{e.statusLine.setExtraRows(h)}),d.start();let f=50,g=[];for(u.on("complete",h=>{g.length>=f&&g.shift(),g.push(h)});;){if(o&&(e.replRenderer.writeLine(o),e.replRenderer.writeLine(""),o=null),s.length>0){for(let T of s)e.replRenderer.writeLine(T);e.replRenderer.writeLine(""),s=[]}for(;g.length>0;){let T=g.shift(),A=T.status==="succeeded"?"\u2713":"\u2717",R=[];if(T.resultText){let C=T.resultText.trim().split(`
2146
2146
  `)[0]?.slice(0,80)??"";C&&R.push(C)}T.error&&R.push(T.error.message);let O=[T.stats.toolUses>0?`${T.stats.toolUses} tools`:"",T.stats.tokens>0?`${Math.round(T.stats.tokens/1e3)}k tok`:"",T.stats.durationMs>0?`${Math.round(T.stats.durationMs/1e3)}s`:""].filter(Boolean).join(" \xB7 ");O&&R.push(O),e.replRenderer.writeLine(nn({kind:T.status==="succeeded"?"checkpoint":"diagnosis",title:`${A} ${T.id} ${T.label}`,body:R})),e.replRenderer.writeLine("")}let h=c.renderIfChanged(e.stats.sessionId);if(h.length>0){for(let T of h)e.replRenderer.writeLine(T);e.replRenderer.writeLine("")}let b=p.render();b&&e.replRenderer.writeLine(b);let y,w;if(l!==void 0){let T=l;l=void 0;let A=_l(e.stats.model,e.stats.planMode),R=Xn({buffer:T.text,promptText:A,isTTY:!!process.stdout.isTTY,attachmentSummary:Xr([...T.attachments])});e.replRenderer.writeLine(R),y=T.text.trim(),w=T.attachments}else{let T=await a.readLine({promptFn:()=>_l(e.stats.model,e.stats.planMode),onSigint:r,onShiftTab:()=>{let A=e.slashCtx;A.stats.planMode&&A.stats.pendingPlanExit?(A.stats.pendingPlanExit=!1,Tt(A,!1,{closureSummarySkipped:!0}).catch(()=>{})):Tt(A).catch(()=>{}),e.statusLine.rearm()}});y=T.text.trim(),w=T.attachments}if(!y&&w.length===0)continue;let v=!1;if(y.startsWith("/")){let T=await mb(y,e.slashCtx,w);if(T.handled){if(T.result==="exit"){e.rl.close();return}if((y==="/clear"||y.startsWith("/clear "))&&(await t.rotateOnClear(),e.replRenderer.writeLine(m.dim(` transcript: ${t.path()}`)),p.reset()),T.result!==null&&typeof T.result=="object"&&"kind"in T.result&&T.result.kind==="submit"){l={text:T.result.message,attachments:w??[]},e.statusLine.rearm();continue}e.statusLine.rearm();continue}v=!0}i.push(y);let x=y;if(v){let T=Hu(y);if(T){let A=T.name.replace(/^\//,"").split(":").pop()??"";if(A&&Ad(A)){let R={skillName:A,rawArgs:T.args,source:"plugin",capabilities:{compose:!0,subagents:!0}},O=e.session.current.sessionId,C=gs(O),I=Date.now();G(`[afk trace] preflight.start commandName=${A}`);let P=!1,D=await fs(R,{cwd:e.stats.cwd??process.cwd(),artifactDir:C},F=>{Je()&&e.replRenderer.writeLine(m.warning(`\u26A0 preflight(${A}) failed: `)+(F instanceof Error?F.message:String(F)))});P=D!==null,G(`[afk trace] preflight.end commandName=${A} durationMs=${Date.now()-I} success=${P}`),x=Id(D?.manifestBlock,y)}}}let S;if(e.firstTurnHook&&e.stats.totalTurns===0){let T=e.firstTurnHook;e.firstTurnHook=void 0,S=Promise.resolve().then(()=>T(y)).catch(A=>{e.completionWriter.fn(m.warning("\u26A0 ")+"first-turn hook failed: "+(A instanceof Error?A.message:String(A)))})}await FS({text:x,attachments:w},e.session.current,e.stats,{setInFlight(T){n.turnInFlight=T},async onTurnComplete(T,A){await t.appendTurn(T,A)},async onAfterTurn(){await e.contextSampler.onTurn(e.stats.totalTurns),await xb(e.slashCtx),e.statusLine.rearm()},rearmStatus:()=>e.statusLine.rearm(),onTerminalState:T=>p.push(T),setActiveCompositor:T=>{n.activeCompositor=T},scrollRegion:e.statusLine,getCompositor:()=>a.getCompositor(),setBackgroundHandler:T=>a.setBackgroundHandler(T)},e.options.thinkingUi,e.completionWriter,u,a.toRunTurnRefs(_l(e.stats.model,e.stats.planMode))),S!==void 0&&await S}}finally{if(u!==void 0)for(let p of u.running())u.cancel(p.id);d?.stop(),c?.dispose(),await a.dispose()}}import{execFile as mN}from"node:child_process";import{dirname as fN,isAbsolute as gN,resolve as hN}from"node:path";import{promisify as yN}from"node:util";var BS=yN(mN),bN=3e3,wN=new Set(["empty","orphaned-dir","orphaned-registration","dead-owner"]);async function kN(){let t=(await BS("git",["rev-parse","--git-common-dir"])).stdout.trim();if(!t)throw new Error("Not in a git repository.");let n=gN(t)?t:hN(process.cwd(),t);return fN(n)}async function WS(e){if(e?.disabled)return{ran:!1,removedCount:0,skippedReason:"disabled"};let t;try{t=await kN()}catch{return{ran:!1,removedCount:0,skippedReason:"not-in-repo"}}let n,r=new Promise(o=>{n=setTimeout(()=>o("timeout"),bN)});try{let o=Dt({execFile:BS,repoRoot:t,dryRun:!1,scope:"interactive",bypassSoftLaunch:!0}),s=await Promise.race([o,r]);if(s==="timeout")return{ran:!1,removedCount:0,skippedReason:"timeout"};let i=s;return i.warnings.some(c=>c.toLowerCase().includes("contested"))?{ran:!1,removedCount:0,skippedReason:"lock-contested"}:{ran:!0,removedCount:i.candidates.filter(c=>wN.has(c.verdict)&&i.removed.includes(c.path)).length}}catch{return{ran:!1,removedCount:0,skippedReason:"error"}}finally{n&&clearTimeout(n)}}import{promises as SN}from"node:fs";import{dirname as vN,join as TN}from"node:path";import{randomBytes as EN}from"node:crypto";var xN=["Generate a 2-4 word kebab-case slug describing this work request.","Rules:","- ASCII lowercase letters and digits only, separated by single hyphens","- 2 to 4 hyphen-separated words","- Maximum 30 characters total","- No prefix, no quotes, no punctuation other than hyphens","- Output ONLY the slug \u2014 no explanation, no preamble","Examples: fix-cleanup-race, add-telegram-allowlist, refactor-prompt-loader, debug-flaky-test"].join(`
2147
- `),HS=/^[a-z0-9]+(-[a-z0-9]+){1,3}$/,np=30,RN=1024,AN=8e3,CN="haiku";async function _N(e,t){let n=e.trim();if(n.length===0)return t.onSkip?.("empty-message"),null;if(n.startsWith("/"))return t.onSkip?.("slash-command"),null;let r=$N(n,RN),o=new AbortController,s=setTimeout(()=>o.abort(),t.timeoutMs??AN),i=t.signal?ON([t.signal,o.signal]):o.signal,a;try{t.slugGenerator?a=await t.slugGenerator(r,i):a=await gl({token:t.token,model:t.model??CN,system:xN,user:r,maxTokens:32,signal:i})}catch(d){let p=d instanceof Error?d.message:String(d);return t.onSkip?.("slug-generator-error",p.slice(0,200)),null}finally{clearTimeout(s)}let l=IN(a);if(l===null)return t.onSkip?.("invalid-slug-output",a.slice(0,60)),null;let c=vN(t.worktreePath);return await PN(l,c)}function IN(e){let t=e.trim().toLowerCase();if(t.length===0)return null;if(HS.test(t)&&t.length<=np)return t;let n=t.replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"");if(n.length===0)return null;let r=n.split("-").filter(s=>s.length>0).slice(0,4);if(r.length<2)return null;let o=r[0];for(let s=1;s<r.length;s++){let i=`${o}-${r[s]}`;if(i.length>np)break;o=i}return HS.test(o)?o:null}async function PN(e,t){if(!await MN(TN(t,e)))return e;let n=EN(2).toString("hex");return`${e.split("-").slice(0,3).join("-").slice(0,np-5)}-${n}`}async function MN(e){try{return await SN.access(e),!0}catch{return!1}}function $N(e,t){let n=Buffer.from(e,"utf8");if(n.length<=t)return e;let r=t;for(;r>0&&n[r]!==void 0&&(n[r]&192)===128;)r--;return n.slice(0,r).toString("utf8")}function ON(e){let t=AbortSignal.any;if(typeof t=="function")return t.call(AbortSignal,e);let n=new AbortController;for(let r of e){if(r.aborted)return n.abort(r.reason),n.signal;r.addEventListener("abort",()=>n.abort(r.reason),{once:!0})}return n.signal}async function GS(e){let t,n,r=await _N(e.message,{token:e.token,...e.model!==void 0?{model:e.model}:{},...e.timeoutMs!==void 0?{timeoutMs:e.timeoutMs}:{},worktreePath:e.handle.path,...e.signal!==void 0?{signal:e.signal}:{},...e.slugGenerator!==void 0?{slugGenerator:e.slugGenerator}:{},onSkip:(i,a)=>{t=i,n=a}});if(r===null)return{status:"skipped",reason:t??"unknown",...n!==void 0?{detail:n}:{}};let s=await(e.renameFn??vh)(e.handle,r,e.branchPrefix!==void 0?{branchPrefix:e.branchPrefix}:void 0);return s.ok?(e.session&&e.session.setCwd(s.newPath),KS(s.newPath),{status:"renamed",oldPath:s.oldPath,newPath:s.newPath,oldBranch:s.oldBranch,newBranch:s.newBranch}):(s.partial==="branch"&&(e.session&&e.session.setCwd(e.handle.path),KS(e.handle.path)),{status:"failed",reason:s.reason,...s.partial!==void 0?{partial:s.partial}:{}})}function KS(e){try{process.chdir(e)}catch{}}N();import{spawn as qS}from"child_process";import{existsSync as UN,mkdirSync as jN,readFileSync as zS,unlinkSync as BN,writeFileSync as WN}from"fs";import{get as HN}from"https";import{join as JS}from"path";import{readFileSync as DN}from"fs";import{dirname as LN,join as FN}from"path";import{fileURLToPath as NN}from"url";function Jt(){try{return"3.40.0"}catch{}try{let e=LN(NN(import.meta.url));for(let t of["../../package.json","../package.json"])try{let n=JSON.parse(DN(FN(e,t),"utf-8"));if(typeof n.version=="string")return n.version}catch{}}catch{}return"0.0.0-unknown"}q();var KN=64*1024,GN=1440*60*1e3,qN="update-check.json",zN="pending-update.json";function VS(){return JS(Gs(),qN)}function rp(){return JS(Gs(),zN)}function YS(){let e=Gs();UN(e)||jN(e,{recursive:!0})}function JN(e,t){let n=e.split(".").map(Number),r=t.split(".").map(Number),o=Math.max(n.length,r.length);for(let s=0;s<o;s++){let i=n[s]??0,a=r[s]??0;if(a>i)return!0;if(a<i)return!1}return!1}function VN(){try{let e=zS(VS(),"utf-8"),t=JSON.parse(e);if(typeof t.latestVersion=="string"&&typeof t.checkedAt=="number")return t}catch{}return null}function YN(){try{YS();let e=`
2147
+ `),HS=/^[a-z0-9]+(-[a-z0-9]+){1,3}$/,np=30,RN=1024,AN=8e3,CN="haiku";async function _N(e,t){let n=e.trim();if(n.length===0)return t.onSkip?.("empty-message"),null;if(n.startsWith("/"))return t.onSkip?.("slash-command"),null;let r=$N(n,RN),o=new AbortController,s=setTimeout(()=>o.abort(),t.timeoutMs??AN),i=t.signal?ON([t.signal,o.signal]):o.signal,a;try{t.slugGenerator?a=await t.slugGenerator(r,i):a=await gl({token:t.token,model:t.model??CN,system:xN,user:r,maxTokens:32,signal:i})}catch(d){let p=d instanceof Error?d.message:String(d);return t.onSkip?.("slug-generator-error",p.slice(0,200)),null}finally{clearTimeout(s)}let l=IN(a);if(l===null)return t.onSkip?.("invalid-slug-output",a.slice(0,60)),null;let c=vN(t.worktreePath);return await PN(l,c)}function IN(e){let t=e.trim().toLowerCase();if(t.length===0)return null;if(HS.test(t)&&t.length<=np)return t;let n=t.replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"");if(n.length===0)return null;let r=n.split("-").filter(s=>s.length>0).slice(0,4);if(r.length<2)return null;let o=r[0];for(let s=1;s<r.length;s++){let i=`${o}-${r[s]}`;if(i.length>np)break;o=i}return HS.test(o)?o:null}async function PN(e,t){if(!await MN(TN(t,e)))return e;let n=EN(2).toString("hex");return`${e.split("-").slice(0,3).join("-").slice(0,np-5)}-${n}`}async function MN(e){try{return await SN.access(e),!0}catch{return!1}}function $N(e,t){let n=Buffer.from(e,"utf8");if(n.length<=t)return e;let r=t;for(;r>0&&n[r]!==void 0&&(n[r]&192)===128;)r--;return n.slice(0,r).toString("utf8")}function ON(e){let t=AbortSignal.any;if(typeof t=="function")return t.call(AbortSignal,e);let n=new AbortController;for(let r of e){if(r.aborted)return n.abort(r.reason),n.signal;r.addEventListener("abort",()=>n.abort(r.reason),{once:!0})}return n.signal}async function GS(e){let t,n,r=await _N(e.message,{token:e.token,...e.model!==void 0?{model:e.model}:{},...e.timeoutMs!==void 0?{timeoutMs:e.timeoutMs}:{},worktreePath:e.handle.path,...e.signal!==void 0?{signal:e.signal}:{},...e.slugGenerator!==void 0?{slugGenerator:e.slugGenerator}:{},onSkip:(i,a)=>{t=i,n=a}});if(r===null)return{status:"skipped",reason:t??"unknown",...n!==void 0?{detail:n}:{}};let s=await(e.renameFn??vh)(e.handle,r,e.branchPrefix!==void 0?{branchPrefix:e.branchPrefix}:void 0);return s.ok?(e.session&&e.session.setCwd(s.newPath),KS(s.newPath),{status:"renamed",oldPath:s.oldPath,newPath:s.newPath,oldBranch:s.oldBranch,newBranch:s.newBranch}):(s.partial==="branch"&&(e.session&&e.session.setCwd(e.handle.path),KS(e.handle.path)),{status:"failed",reason:s.reason,...s.partial!==void 0?{partial:s.partial}:{}})}function KS(e){try{process.chdir(e)}catch{}}N();import{spawn as qS}from"child_process";import{existsSync as UN,mkdirSync as jN,readFileSync as zS,unlinkSync as BN,writeFileSync as WN}from"fs";import{get as HN}from"https";import{join as JS}from"path";import{readFileSync as DN}from"fs";import{dirname as LN,join as FN}from"path";import{fileURLToPath as NN}from"url";function Jt(){try{return"3.40.1"}catch{}try{let e=LN(NN(import.meta.url));for(let t of["../../package.json","../package.json"])try{let n=JSON.parse(DN(FN(e,t),"utf-8"));if(typeof n.version=="string")return n.version}catch{}}catch{}return"0.0.0-unknown"}q();var KN=64*1024,GN=1440*60*1e3,qN="update-check.json",zN="pending-update.json";function VS(){return JS(Gs(),qN)}function rp(){return JS(Gs(),zN)}function YS(){let e=Gs();UN(e)||jN(e,{recursive:!0})}function JN(e,t){let n=e.split(".").map(Number),r=t.split(".").map(Number),o=Math.max(n.length,r.length);for(let s=0;s<o;s++){let i=n[s]??0,a=r[s]??0;if(a>i)return!0;if(a<i)return!1}return!1}function VN(){try{let e=zS(VS(),"utf-8"),t=JSON.parse(e);if(typeof t.latestVersion=="string"&&typeof t.checkedAt=="number")return t}catch{}return null}function YN(){try{YS();let e=`
2148
2148
  const https = require('https');
2149
2149
  const fs = require('fs');
2150
2150
  const url = 'https://registry.npmjs.org/agent-afk/latest';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-afk",
3
- "version": "3.40.0",
3
+ "version": "3.40.1",
4
4
  "description": "CLI tool for interacting with AI agents via multiple interfaces",
5
5
  "main": "dist/index.mjs",
6
6
  "type": "module",