agent-afk 2.26.2 → 2.26.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.mjs +9 -7
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -17,10 +17,12 @@ var Qh=Object.defineProperty;var ey=(e=>typeof require<"u"?require:typeof Proxy<
|
|
|
17
17
|
`))}return c.join(`
|
|
18
18
|
`)+`
|
|
19
19
|
`}case"space":return`
|
|
20
|
-
`;case"hr":return p.dim("\u2500".repeat(40))
|
|
20
|
+
`;case"hr":return p.dim("\u2500".repeat(40))+`
|
|
21
|
+
`;case"blockquote":{let l=a,c=l.tokens?s(l.tokens):l.text,d=p.dim(" \u2502 "),m=r?Math.max(1,r-4):void 0,f=[];for(let g of c.split(`
|
|
21
22
|
`)){let b=m?te(g,m):g;for(let S of b.split(`
|
|
22
|
-
`))f.push(d+S)}return f.join(`
|
|
23
|
-
`)
|
|
23
|
+
`))f.push(S?d+S:"")}return f.join(`
|
|
24
|
+
`)+`
|
|
25
|
+
`}case"table":{let l=a,c=v=>v.tokens?o(v.tokens):v.text,d=l.header.map(c),u=l.rows.map(v=>v.map(c)),m=d.length,f=new Array(m).fill(0);for(let v=0;v<m;v++){let E=gi(d[v]??"");for(let I of u)E=Math.max(E,gi(I[v]??""));f[v]=E}let g=r??Number.POSITIVE_INFINITY,b=3*m+1,S=g>=b+m?1:0,h=Math.max(m*S,g-b),k=f.reduce((v,E)=>v+E,0);if(Number.isFinite(g)&&k>h){let v=f.slice(),E=v.reduce((I,R)=>I+Math.max(0,R-S),0);if(E>0){let I=k-h,R=Math.min(1,I/E);for(let O=0;O<v.length;O++){let F=Math.max(0,v[O]-S);v[O]=Math.max(S,v[O]-Math.round(F*R))}}for(let I=0;I<v.length;I++)f[I]=v[I]??f[I]??0}let T=l.align,A=(v,E,I)=>p.dim(v+f.map(R=>"\u2500".repeat(R+2)).join(E)+I),w=(v,E)=>E<=0?[""]:te(v,E).split(`
|
|
24
26
|
`).map(R=>ie(R,E)),C=(v,E=!1)=>{let I=v.map((F,_)=>w(E?p.bold(F):F,f[_]??0)),R=Math.max(1,...I.map(F=>F.length)),O=[];for(let F=0;F<R;F++)O.push(p.dim("\u2502")+I.map((_,M)=>" "+Ay(_[F]??"",f[M]??0,T[M]??null)+" ").join(p.dim("\u2502"))+p.dim("\u2502"));return O},x=[A("\u250C","\u252C","\u2510")];x.push(...C(d,!0)),x.push(A("\u251C","\u253C","\u2524"));for(let v=0;v<u.length;v++)x.push(...C(u[v])),v<u.length-1&&x.push(A("\u251C","\u253C","\u2524"));return x.push(A("\u2514","\u2534","\u2518")),x.join(`
|
|
25
27
|
`)+`
|
|
26
28
|
`}default:return a.raw}}).join("")}return s(n)}var hi=class{useColors;constructor(t=!0){this.useColors=t&&!!Qr.level}formatMarkdown(t){return this.useColors?et(t):t}formatError(t,n){let r=p.error("\u2717 Error: ")+t;return n&&n.message&&(r+=`
|
|
@@ -1863,11 +1865,11 @@ ${a}
|
|
|
1863
1865
|
`)){let i=te(s,r);for(let a of i.split(`
|
|
1864
1866
|
`))o.push(t+n+a)}return o}function Hm(e){return gt.has(e.toolName)?e.toolName+"::"+e.toolInput:e.toolName}function nE(e){return gt.has(e)?Um:jm}function Gm(e){return e.map((t,n)=>({sibling:t,connector:n===e.length-1?"\u2514 ":"\u251C "}))}function zm(e,t){if(e.length<=t)return e;let n=e.slice(0,t),r=e.slice(t),o=oE(r);return[...n,{kind:"overflow",count:r.length,text:o}]}function rE(e,t){return t?[...e,{kind:"resultSummary",summary:t}]:e}function qm(e){if(e.length===0)return[];let t=new Map;for(let o of e){let s=Hm(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=Hm(o),i=t.get(s);i.length>=nE(o.toolName)?r.has(s)||(n.push({kind:"group",toolName:o.toolName,label:gt.has(o.toolName)?o.toolInput:"",entries:i}),r.add(s)):n.push(o)}return n}function Ym(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 Bt(e.toolName+e.label)+p.dim(` \xD7${t} \u2014 ${s}`)}function oE(e){let t=new Map,n=0;for(let o of e)o.kind==="group"?(t.set(o.toolName,(t.get(o.toolName)??0)+o.entries.length),n+=o.entries.length):(t.set(o.toolName,(t.get(o.toolName)??0)+1),n+=1);if(n===0)return"";let r=[];for(let[o,s]of t)r.push(`${s} ${o}`);return`\u2026 +${n} (${r.join(", ")})`}function $a(e,t,n,r,o=ee()){let s=" ".repeat(n+1),i=e.filter(u=>u.kind==="text"),a=e.filter(u=>u.kind==="tool"),l=qm(a),c=zm(l,ws),d=Gm(c);for(let{sibling:u,connector:m}of d){let f=p.dim(m);if(u.kind==="overflow")r.push(Fe(s+f+p.dim(u.text),o));else if(u.kind==="group")r.push(Fe(s+f+Ym(u),o));else if(u.kind==="resultSummary")r.push(Fe(s+f+p.dim(u.summary),o));else{let g=u,b=t.get(g.toolUseId);gt.has(g.toolName)&&b&&b.length>0?(r.push(Fe(s+f+g.prefix,o)),$a(b,t,n+1,r,o),g.thinkingTail&&r.push(s+" "+p.thinking("\u2307 "+g.thinkingTail))):g.result?r.push(Fe(s+f+g.prefix+p.dim(" \u2014 ")+jn(g.result.isError)+" "+sn(g.result,void 0,60,g.toolName),o)):(r.push(Fe(s+f+g.prefix,o)),g.thinkingTail?r.push(s+" "+p.thinking("\u2307 "+g.thinkingTail)):r.push(Fe(s+" "+p.dim(Bm(g.toolName)),o)))}}for(let u of i)r.push(...Km(u.text,s))}function Vm(e,t,n,r,o,s=ee()){let i=" ".repeat(n+1),a=[],l=e.filter(g=>g.kind==="text"),c=e.filter(g=>g.kind==="tool"),d=qm(c),u=zm(d,ws),m=rE(u,o),f=Gm(m);for(let{sibling:g,connector:b}of f){let S=p.dim(b);if(g.kind==="overflow")a.push(Fe(i+S+p.dim(g.text),s));else if(g.kind==="resultSummary")a.push(Fe(i+S+p.dim(g.summary),s));else if(g.kind==="group")a.push(Fe(i+S+Ym(g),s));else{let h=g,k=t.get(h.toolUseId);gt.has(h.toolName)&&k&&k.length>0?(a.push(Fe(i+S+h.prefix,s)),a.push(...Vm(k,t,n+1,r,void 0,s))):h.result?a.push(Fe(i+S+h.prefix+p.dim(" \u2014 ")+jn(h.result.isError)+" "+sn(h.result,r,60,h.toolName),s)):a.push(Fe(i+S+h.prefix,s))}}for(let g of l)a.push(...Km(g.text,i));return a}function Oa(e,t,n,r){let o=t.filter(d=>d.kind==="tool"),i=o.filter(d=>d.result).reduce((d,u)=>d+(u.result.lineCount??0),0),a=[];o.length>ws&&(a.push(`${o.length} tools`),i>0&&a.push(`${i} lines`));let l=a.length>0?" "+e.prefix+p.dim(" \u2014 "+a.join(" \xB7 ")):" "+e.prefix,c=Vm(t,n,1,r,e.agentResultSummary);return[l,...c].join(`
|
|
1865
1867
|
`)}function Da(e,t,n){let r=[];for(let o of t){let s=e.get(o);if(s.length===1){let i=s[0];i.result?r.push(" "+i.prefix+p.dim(" \u2014 ")+jn(i.result.isError)+" "+sn(i.result,n,60,i.toolName)):r.push(" "+i.prefix)}else r.push(sE(o,s,n))}return r}function sE(e,t,n){let{color:r,glyph:o}=Dn(e),s=t.map(d=>Ma(d.toolInput).trim()),i=r(o+" ")+r.bold(e)+p.dim(` \xD7${t.length}`)+" "+p.toolArg(s.join(", ")),a=t.filter(d=>d.result),l=a.filter(d=>d.result.isError);if(l.length>0){let d=a.length-l.length,m=a.filter(g=>!g.result.isError).map(g=>g.result.lineCount).filter(g=>g!==void 0).reduce((g,b)=>g+b,0),f=[];return m>0&&f.push(`${m} lines`),d>0&&f.push(`${d} ok`),f.push(p.error(`${l.length} error${l.length>1?"s":""}`))," "+i+p.dim(" \u2014 ")+f.join(p.dim(", "))}let c=a.map(d=>d.result?.lineCount).filter(d=>d!==void 0);if(c.length===a.length&&c.length>0){if(c.every(m=>m===c[0]))return" "+i+p.dim(` \u2014 ${c[0]} lines each`);let u=c.reduce((m,f)=>m+f,0);return" "+i+p.dim(` \u2014 ${u} lines total`)}if(a.length>0){let d=a.map(u=>sn(u.result,n,60,u.toolName));return" "+i+p.dim(" \u2014 ")+d.join(p.dim(", "))}return" "+i}var Jm=6,Ir=class{entries=new Map;order=[];agentIdStack=[];addStart(t,n,r){let o=Bt(n+r),s=this.agentIdStack.at(-1)??void 0,i={kind:"tool",toolUseId:t,toolName:n,toolInput:r,prefix:o,...s!==void 0?{agentContext:s}:{}};this.entries.set(t,i),this.order.push(t),wr.has(n)&&this.agentIdStack.push(t)}addStartWithAgentContext(t,n,r,o,s){let i=this.entries.get(t);if(i?.kind==="tool"){i.toolInput=r,i.prefix=Bt(n+r,s),o!==void 0&&(i.agentContext=o);return}let a=Bt(n+r,s),l={kind:"tool",toolUseId:t,toolName:n,toolInput:r,prefix:a,...o!==void 0?{agentContext:o}:{}};this.entries.set(t,l),this.order.push(t)}mergeAgentLabel(t,n,r){let o=this.entries.get(t);if(o?.kind!=="tool"||!wr.has(o.toolName)||o.toolName==="Agent")return!1;let s=`(${n})`;return o.toolName="Agent",o.toolInput=s,o.prefix=Bt("Agent"+s,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()}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=[];for(let i of this.order){let a=this.entries.get(i);!a||a.kind!=="tool"||a.agentContext||r.push(a)}let o=r,s=0;if(r.length>Jm){let i=r.filter(d=>!d.result),a=r.filter(d=>d.result),l=Math.max(0,Jm-i.length),c=new Set(a.slice(-l));s=a.length-c.size,o=r.filter(d=>!d.result||c.has(d))}for(let i of o){let a=t.get(i.toolUseId);gt.has(i.toolName)&&a&&a.length>0?(n.push(" "+i.prefix),$a(a,t,1,n),i.thinkingTail&&n.push(" "+p.thinking("\u2307 "+i.thinkingTail))):i.result?n.push(" "+i.prefix+p.dim(" \u2014 ")+jn(i.result.isError)+" "+sn(i.result,void 0,60,i.toolName)):(n.push(" "+i.prefix+p.dim(" \u2026")),i.thinkingTail&&n.push(" "+p.thinking("\u2307 "+i.thinkingTail)))}return s>0&&n.push(" "+p.dim(`\u2026 +${s} done`)),n.join(`
|
|
1866
|
-
`)}flushSource(t,n){let r=this.entries.get(t);if(!r||r.kind!=="tool")return[];let o=new Set([t]),s=[t];for(;s.length>0;){let c=s.shift();for(let[d,u]of this.entries){if(o.has(d))continue;(u.kind==="tool",u.agentContext)===c&&(o.add(d),u.kind==="tool"&&s.push(d))}}let i=new Map;for(let c of this.order){if(!o.has(c))continue;let d=this.entries.get(c);if(!d)continue;let u=(d.kind==="tool",d.agentContext);if(!u)continue;let m=i.get(u);m||(m=[],i.set(u,m)),m.push(d)}let a=i.get(r.toolUseId)??[],l=[Oa(r,a,i,n)];for(let c of o)this.entries.delete(c);return this.order=this.order.filter(c=>!o.has(c)),l}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);gt.has(l.toolName)&&c&&c.length>0?(o.push(...Da(s,i,t)),s.clear(),i.length=0,o.push(Oa(l,c,n,t))):(s.has(l.toolName)||(s.set(l.toolName,[]),i.push(l.toolName)),s.get(l.toolName).push(l))}return o.push(...Da(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 Bn=class{buffer="";startedAt=null;hasEmitted=!1;push(t){this.hasEmitted||(this.buffer+=t,this.startedAt||(this.startedAt=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&&Ae()&&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=Date.now()-this.startedAt,n=t<1e3?`${t}ms`:`${(t/1e3).toFixed(1)}s`,r=Math.ceil(this.buffer.length/4);return` ${p.thinking("\u25C6 thought for "+n+" \xB7 "+r+" tok")}`}inlineSummary(){if(!this.startedAt||!this.hasBufferedContent())return null;let t=Date.now()-this.startedAt,n=t<1e3?`${t}ms`:`${(t/1e3).toFixed(1)}s`,r=Math.ceil(this.buffer.length/4);return`thought ${n} \xB7 ${r} tok`}};var Fa="__main__";function Zm(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 Mr(e,t){return{type:"tool_result",toolUseId:"synthetic",content:e,isError:t}}function Qm(e){let t=["Done"],n=[];e.stats.toolUses&&n.push(`${e.stats.toolUses} tool${e.stats.toolUses===1?"":"s"}`),e.stats.tokens&&n.push(`${H(e.stats.tokens)} tok`);let r=e.responseMetadata?.durationMs;if(typeof r=="number"&&n.push(re(r)),n.length===0){let s=Date.now()-e.startedAt;s>0&&n.push(re(s))}let o=e.thinkingLane?.inlineSummary();return o&&n.push(o),n.length>0&&t.push(`(${n.join(" \xB7 ")})`),t.join(" ")}var Ss=class{out;throttleMs;indent;buffer="";committed="";throttleTimer=null;logUpdate=null;isTTY;flushing=!1;compositor;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}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/[#*_\-\`>\[\|~]/.test(t)}findBlockBoundary(t){let n=t.indexOf(`
|
|
1868
|
+
`)}flushSource(t,n){let r=this.entries.get(t);if(!r||r.kind!=="tool")return[];let o=new Set([t]),s=[t];for(;s.length>0;){let c=s.shift();for(let[d,u]of this.entries){if(o.has(d))continue;(u.kind==="tool",u.agentContext)===c&&(o.add(d),u.kind==="tool"&&s.push(d))}}let i=new Map;for(let c of this.order){if(!o.has(c))continue;let d=this.entries.get(c);if(!d)continue;let u=(d.kind==="tool",d.agentContext);if(!u)continue;let m=i.get(u);m||(m=[],i.set(u,m)),m.push(d)}let a=i.get(r.toolUseId)??[],l=[Oa(r,a,i,n)];for(let c of o)this.entries.delete(c);return this.order=this.order.filter(c=>!o.has(c)),l}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);gt.has(l.toolName)&&c&&c.length>0?(o.push(...Da(s,i,t)),s.clear(),i.length=0,o.push(Oa(l,c,n,t))):(s.has(l.toolName)||(s.set(l.toolName,[]),i.push(l.toolName)),s.get(l.toolName).push(l))}return o.push(...Da(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 Bn=class{buffer="";startedAt=null;hasEmitted=!1;push(t){this.hasEmitted||(this.buffer+=t,this.startedAt||(this.startedAt=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&&Ae()&&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=Date.now()-this.startedAt,n=t<1e3?`${t}ms`:`${(t/1e3).toFixed(1)}s`,r=Math.ceil(this.buffer.length/4);return` ${p.thinking("\u25C6 thought for "+n+" \xB7 "+r+" tok")}`}inlineSummary(){if(!this.startedAt||!this.hasBufferedContent())return null;let t=Date.now()-this.startedAt,n=t<1e3?`${t}ms`:`${(t/1e3).toFixed(1)}s`,r=Math.ceil(this.buffer.length/4);return`thought ${n} \xB7 ${r} tok`}};var Fa="__main__";function Zm(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 Mr(e,t){return{type:"tool_result",toolUseId:"synthetic",content:e,isError:t}}function Qm(e){let t=["Done"],n=[];e.stats.toolUses&&n.push(`${e.stats.toolUses} tool${e.stats.toolUses===1?"":"s"}`),e.stats.tokens&&n.push(`${H(e.stats.tokens)} tok`);let r=e.responseMetadata?.durationMs;if(typeof r=="number"&&n.push(re(r)),n.length===0){let s=Date.now()-e.startedAt;s>0&&n.push(re(s))}let o=e.thinkingLane?.inlineSummary();return o&&n.push(o),n.length>0&&t.push(`(${n.join(" \xB7 ")})`),t.join(" ")}var Ss=class{out;throttleMs;indent;buffer="";committed="";throttleTimer=null;logUpdate=null;isTTY;flushing=!1;compositor;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}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(`
|
|
1867
1869
|
|
|
1868
|
-
`);if(n!==-1)return n+2;let r=t.match(/\n[ \t]
|
|
1870
|
+
`);if(n!==-1&&!this.isInOpenCodeFence(t.slice(0,n)))return n+2;let r=t.match(/\n[ \t]*(?:```|~~~)[ \t]*\n/);return r&&r.index!==void 0?r.index+r[0].length:-1}applyIndent(t){return t.split(`
|
|
1869
1871
|
`).map(n=>n?this.indent+n:"").join(`
|
|
1870
|
-
`)}isInOpenCodeFence(t){
|
|
1872
|
+
`)}isInOpenCodeFence(t){let n=(t.match(/^```[^\n]*$/gm)??[]).length,r=(t.match(/^~~~[^\n]*$/gm)??[]).length;return n%2===1||r%2===1}commitBlock(t){if(!t.trim())return;let n=this.hasMarkdownContent(t),r=this.indent.length,o=Math.max(1,ee()-2),s=Math.max(1,o-r),i;n?i=et(t,{maxWidth:s}):i=te(t,s);let a=te(i,s),c=this.applyIndent(a).replace(/\n+$/,"");this.compositor&&this.compositor.commitAbove(c+`
|
|
1871
1873
|
`),this.committed?this.committed+=`
|
|
1872
1874
|
|
|
1873
1875
|
`+c:this.committed+=c}scheduleRepaint(){this.isTTY&&(this.flushing||(this.throttleTimer&&clearTimeout(this.throttleTimer),this.throttleTimer=setTimeout(()=>{this.throttleTimer=null,this.repaint()},this.throttleMs)))}async repaint(){if(this.flushing||!this.isTTY||!this.buffer.trim())return;let t,n=this.indent.length,r=Math.max(1,ee()-2),o=Math.max(1,r-n);this.isInOpenCodeFence(this.buffer)?t=`
|
|
@@ -1970,7 +1972,7 @@ _ended: ${new Date().toISOString()}_
|
|
|
1970
1972
|
`)}function BA(e){let t=[],n=(r,o)=>{o&&o.trim().length>0&&t.push({label:r,value:o.trim()})};switch(e.kind){case"done":n("done",e.whatWasDone),n("evidence",e.evidence),n("deferred",e.deferred);break;case"blocked":n("blocks",e.whatBlocks),n("unblock",e.unblockCondition),n("progress",e.alreadyDone);break;case"asking":n("question",e.question),n("resolves",e.assumption),n("after",e.followup);break;case"interrupted":n("was doing",e.whatWasInProgress),n("saved at",e.stateLocation),n("resume",e.resumeRequires);break}return t}function WA(e,t){let n=[];e&&n.push({type:"text",text:e});for(let r of t)n.push({type:"image",source:{type:"base64",media_type:r.mediaType,data:r.bytes.toString("base64")}});return n}async function Rg(e,t,n,r,o="summary",s,i){let a=dg(e.text,e.attachments);r.setInFlight(!0);let l="",c=!1,d,u=!1,m=!1,f=!1,g,b=!1,S=[],h=new Map,k=e.text.startsWith("/")?e.text.split(/[\s:]/)[0]?.slice(1):void 0,T=new Wt({out:Wn(),thinkingMode:o,...k?{activeSkillName:k}:{},onCancel:()=>{t.interrupt().catch(w=>{Ae()&&console.error(" "+p.error("session.interrupt() failed:"),w)})},...i?{onBackground:()=>{b=!0}}:{}}),A=async()=>{if(!m){m=!0;try{await T.dispose()}catch{}}};try{console.log(),await T.arm();let w=T.getCompositor();if(s&&w){let v=w;s.fn=E=>v.commitAbove(E)}r.setActiveCompositor?.(w),r.rearmStatus?.();let C=e.attachments.length===0?e.text:WA(e.text,e.attachments),x=t.sendMessageStream(C);if(await Sn(T.sink,async()=>{for await(let v of x){if(b&&i){let E=k??e.text.slice(0,40),I=i.register(E),R=us(I,i);ds(x,l,a,I,i,R,n,r.onTurnComplete,t.abortSignal),await A(),console.log(p.dim(` \u2192 backgrounded as ${I.id}: ${I.label}`)),r.setInFlight(!1),r.rearmStatus?.();return}if(v.type==="chunk"&&v.chunk.type==="content"?(l+=v.chunk.content,c=!0):v.type==="message"&&!c&&(l=v.message.content),v.type==="chunk"&&v.chunk.type==="tool_use_detail"){let E=v.chunk,I={toolName:E.toolName,toolUseId:E.toolUseId,input:E.toolInput};h.set(E.toolUseId,I),S.push(I)}else if(v.type==="chunk"&&v.chunk.type==="tool_result"){let E=v.chunk,I=h.get(E.toolUseId);I&&(I.result=E.content,I.isError=E.isError,h.delete(E.toolUseId))}if(v.type==="paused"){await A(),console.log(fc({reason:v.reason,...v.resetsAt!==void 0?{resetsAt:v.resetsAt}:{},...v.accountId!==void 0?{accountId:v.accountId}:{}}));continue}if(v.type==="resumed"){let E=v.hotSwapped&&v.accountId?`\u25B6 Resumed on ${v.accountId}`:"\u25B6 Resumed";console.log(p.success(E));continue}if(v.type==="error"){await A(),bn(yn(v.error)),u=!0;continue}T.process(v),v.type==="done"&&(f=!0,g=v.metadata)}}),!m){let v=T.getCompositor();if(v)try{let{text:E,queued:I}=v.getBuffer();I&&E.length>0&&(d=E)}catch{}}if(await A(),f){os(n,a,l,g,S),r.onTurnComplete&&await r.onTurnComplete(a,l).catch(()=>{}),c&&console.log(`
|
|
1971
1973
|
`);let v=Ag(l);if(v&&(console.log(Pg(v)),console.log(),r.onTerminalState))try{r.onTerminalState(v)}catch{}if(HA(g,n),r.onAfterTurn){let E=r.onAfterTurn();E instanceof Promise&&await E.catch(()=>{})}}}catch(w){await A(),u||bn(yn(w))}finally{await A(),s&&(s.fn=w=>console.log(w)),r.setActiveCompositor?.(null),r.setInFlight(!1),r.rearmStatus?.()}return d}function HA(e,t){if(!e)return;let n=[];e.durationMs&&n.push(re(e.durationMs)),e.totalCostUsd!==void 0&&n.push(Oe(e.totalCostUsd));let r=Number(e.usage?.input_tokens??0),o=Number(e.usage?.output_tokens??0);r+o>0&&n.push(H(r+o)+" tok"),n.length>0&&console.log(p.dim(" \u25E6 "+n.join(" \xB7 ")));let s=wa(t);if(s>.5){let i=s>.8?p.error:p.warning;console.log(i(` context ${Math.round(s*100)}% used of ${H(nt(t.model))}`))}console.log()}function _g(e={}){let t=e.load??as,n=e.onResize??(i=>xt.subscribe(i)),r="",o,s=n(()=>{r=""});return{renderIfChanged(i){let a=i??"unbound",l=t(a),c=pm(l);return a===o&&c===r?[]:(o=a,r=c,c===""?[]:ls(l))},invalidate(){r=""},dispose(){try{s()}catch{}}}}var il={done:{glyph:"\u2713",color:p.success,label:"done"},blocked:{glyph:"\u2298",color:p.error,label:"blocked"},asking:{glyph:"?",color:p.warning,label:"asking"},interrupted:{glyph:"\u23F8",color:p.info,label:"interrupted"}};function Ig(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=p.dim(" ledger "),o=p.dim(" \xB7 "),s=n.map(d=>{let u=il[d];return u.color(`${u.glyph} ${u.label}`)}),i=p.dim(` (${n.length} turn${n.length===1?"":"s"})`),a=r+s.join(o)+i,l=Math.max(20,ee()-2);if(U(a)<=l)return a;let c=r+n.map(d=>il[d].color(il[d].glyph)).join(p.dim(" "))+i;return ie(c,l)}}}var Mg=["\u25D0","\u25D1","\u25D2","\u25D3"],Ks=class{stream;manager;throttleMs;started=!1;lastRepaint=0;spinnerIndex=0;spinnerInterval=null;resizeUnsub=null;updateHandler=null;rowCount=0;onRowCountChange;constructor(t,n={}){this.manager=t,this.stream=n.stream??process.stdout,this.throttleMs=n.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.resizeUnsub=xt.subscribe(()=>this.repaint()),this.spinnerInterval=setInterval(()=>{this.spinnerIndex=(this.spinnerIndex+1)%Mg.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.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(),n=t.length;if(n!==this.rowCount&&(this.rowCount>0&&this.clearRows(),this.rowCount=n,this.onRowCountChange?.(n)),n===0)return;let o=(this.stream.rows??24)-n;this.stream.write("\x1B[s");for(let s=0;s<t.length;s++){let i=t[s],a=o+s;this.stream.write(`\x1B[${a};1H`),this.stream.write("\x1B[2K"),this.stream.write(this.formatTaskLine(i))}this.stream.write("\x1B[u")}clearRows(){if(!this.stream.isTTY)return;let n=(this.stream.rows??24)-this.rowCount;this.stream.write("\x1B[s");for(let r=0;r<this.rowCount;r++)this.stream.write(`\x1B[${n+r};1H`),this.stream.write("\x1B[2K");this.stream.write("\x1B[u")}formatTaskLine(t){let n=Math.max(4,(this.stream.columns??80)-2),r=p.brand(Mg[this.spinnerIndex]),o=p.dim(t.id),s=p.bold(t.label),i=[r,o,s];t.progressDescription&&i.push(p.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(`${H(t.stats.tokens)} tok`);let l=Date.now()-t.startedAt;return a.push(re(l)),a.length>0&&i.push(p.dim(a.join(" \xB7 "))),ie(" "+i.join(" "),n)}};function $g(e,t){let n=p.brand("afk")+p.dim(` (${e})`),r=t?p.warning(" \u25CF plan"):"";return n+r+p.dim(" \u203A ")}async function Og(e,t,n,r){let o=null,s=[];e.session.waitForInitialization().then(async g=>{Ae()&&(o=is(g)),await Cf(e.session),Ae()&&(s=Ef())}).catch(()=>{});let i=await Cg(),a,l=_g(),c=Ig(),d=new cs;Tm(d),Rm(d),Im(d);let u=new Ks(d);u.setRowCountChangeHandler(g=>{e.statusLine.setExtraRows(g)}),u.start();let m=50,f=[];d.on("complete",g=>{f.length>=m&&f.shift(),f.push(g)});try{for(;;){if(o&&(e.replRenderer.writeLine(o),e.replRenderer.writeLine(""),o=null),s.length>0){for(let w of s)e.replRenderer.writeLine(w);e.replRenderer.writeLine(""),s=[]}for(;f.length>0;){let w=f.shift(),C=w.status==="succeeded"?"\u2713":"\u2717",x=[];if(w.resultText){let E=w.resultText.trim().split(`
|
|
1972
1974
|
`)[0]?.slice(0,80)??"";E&&x.push(E)}w.error&&x.push(w.error.message);let v=[w.stats.toolUses>0?`${w.stats.toolUses} tools`:"",w.stats.tokens>0?`${Math.round(w.stats.tokens/1e3)}k tok`:"",w.stats.durationMs>0?`${Math.round(w.stats.durationMs/1e3)}s`:""].filter(Boolean).join(" \xB7 ");v&&x.push(v),e.replRenderer.writeLine(Et({kind:w.status==="succeeded"?"checkpoint":"diagnosis",title:`${C} ${w.id} ${w.label}`,body:x})),e.replRenderer.writeLine("")}let g=l.renderIfChanged(e.stats.sessionId);if(g.length>0){for(let w of g)e.replRenderer.writeLine(w);e.replRenderer.writeLine("")}let b=c.render();b&&e.replRenderer.writeLine(b);let S,h;if(a!==void 0){let w=a;a=void 0;let C=$g(e.stats.model,e.stats.planMode),x=_r({buffer:w,promptText:C,isTTY:!!process.stdout.isTTY});e.replRenderer.writeLine(x),S=w.trim(),h=[]}else{let w=await vg({rl:e.rl,promptFn:()=>$g(e.stats.model,e.stats.planMode),onSigint:r,statusLine:e.statusLine,compositor:n.activeCompositor??void 0,history:i,onShiftTab:()=>{let C=e.slashCtx;C.stats.planMode&&C.stats.pendingPlanExit?(C.stats.pendingPlanExit=!1,ht(C,!1,{closureSummarySkipped:!0}).catch(()=>{})):ht(C).catch(()=>{}),e.statusLine.rearm()}});S=w.text.trim(),h=w.attachments}if(!S&&h.length===0)continue;let k=!1;if(S.startsWith("/")){let w=await Xp(S,e.slashCtx);if(w.handled){if(w.result==="exit"){e.rl.close();return}if((S==="/clear"||S.startsWith("/clear "))&&(await t.rotateOnClear(),e.replRenderer.writeLine(p.dim(` transcript: ${t.path()}`)),c.reset()),w.result!==null&&typeof w.result=="object"&&"kind"in w.result&&w.result.kind==="submit"){a=w.result.message,e.statusLine.rearm();continue}e.statusLine.rearm();continue}k=!0}i.push(S);let T=S;if(k){let w=ka(S);if(w){let C=w.name.replace(/^\//,"").split(":").pop()??"";if(C&&Wa(C)){let x={skillName:C,rawArgs:w.args,source:"plugin",capabilities:{compose:!0,subagents:!0}},v=e.session.sessionId,E=Or(v),I=await $r(x,{cwd:process.cwd(),artifactDir:E},R=>{Ae()&&e.replRenderer.writeLine(p.warning(`\u26A0 preflight(${C}) failed: `)+(R instanceof Error?R.message:String(R)))});T=Ka(I?.manifestBlock,S)}}}let A;if(e.firstTurnHook&&e.stats.totalTurns===0){let w=e.firstTurnHook;e.firstTurnHook=void 0,A=Promise.resolve().then(()=>w(S)).catch(C=>{console.warn(p.warning("\u26A0 ")+"first-turn hook failed: "+(C instanceof Error?C.message:String(C)))})}a=await Rg({text:T,attachments:h},e.session,e.stats,{setInFlight(w){n.turnInFlight=w},async onTurnComplete(w,C){await t.appendTurn(w,C)},async onAfterTurn(){await e.contextSampler.onTurn(e.stats.totalTurns),await rm(e.slashCtx),e.statusLine.rearm()},rearmStatus:()=>e.statusLine.rearm(),onTerminalState:w=>c.push(w),setActiveCompositor:w=>{n.activeCompositor=w,e.replRenderer.setCompositor(w)}},e.options.thinkingUi,e.completionWriter,d),A!==void 0&&await A}}finally{u.stop(),l.dispose()}}import{promises as GA}from"node:fs";import{dirname as zA,join as qA}from"node:path";import{randomBytes as YA}from"node:crypto";import KA from"@anthropic-ai/sdk";import{randomUUID as Dg}from"node:crypto";async function Fg(e){let{token:t,model:n,system:r,user:o,maxTokens:s=64,signal:i,clientFactory:a}=e;if(!t)throw new Error("oneShotCompletion: token required");let l=ro(t),c=rr(t,l),d=a?a(c):new KA(c),u=Dg(),m=Dg(),f=Zt(l,u,m),g={};Object.keys(f).length>0&&(g.headers=f),i&&(g.signal=i);let b=await d.messages.create({model:n,max_tokens:s,system:r,messages:[{role:"user",content:o}]},Object.keys(g).length>0?g:void 0),S=[];for(let k of b.content)k.type==="text"&&S.push(k.text);let h=S.join("").trim();return h.length===0&&console.warn("oneShotCompletion: response contained no text blocks \u2014 returning empty string"),h}var VA=["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(`
|
|
1973
|
-
`),Lg=/^[a-z0-9]+(-[a-z0-9]+){1,3}$/,al=30,JA=1024,XA=8e3,ZA="haiku";async function QA(e,t){let n=e.trim();if(n.length===0||n.startsWith("/"))return null;let r=rP(n,JA),o=new AbortController,s=setTimeout(()=>o.abort(),t.timeoutMs??XA),i=t.signal?oP([t.signal,o.signal]):o.signal,a;try{t.slugGenerator?a=await t.slugGenerator(r,i):a=await Fg({token:t.token,model:t.model??ZA,system:VA,user:r,maxTokens:32,signal:i})}catch{return null}finally{clearTimeout(s)}let l=eP(a);if(l===null)return null;let c=zA(t.worktreePath);return await tP(l,c)}function eP(e){let t=e.trim().toLowerCase();if(t.length===0)return null;if(Lg.test(t)&&t.length<=al)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>al)break;o=i}return Lg.test(o)?o:null}async function tP(e,t){if(!await nP(qA(t,e)))return e;let n=YA(2).toString("hex");return`${e.split("-").slice(0,3).join("-").slice(0,al-5)}-${n}`}async function nP(e){try{return await GA.access(e),!0}catch{return!1}}function rP(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 oP(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 Ng(e){let t=await QA(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}:{}});if(t===null)return{status:"skipped",reason:"slug generation returned null"};let r=await(e.renameFn??Dp)(e.handle,t,e.branchPrefix!==void 0?{branchPrefix:e.branchPrefix}:void 0);return r.ok?(e.session&&e.session.setCwd(r.newPath),{status:"renamed",oldPath:r.oldPath,newPath:r.newPath,oldBranch:r.oldBranch,newBranch:r.newBranch}):(r.partial==="branch"&&e.session&&e.session.setCwd(e.handle.path),{status:"failed",reason:r.reason,...r.partial!==void 0?{partial:r.partial}:{}})}import{spawn as Ug}from"child_process";import{existsSync as cP,mkdirSync as uP,readFileSync as jg,unlinkSync as dP,writeFileSync as pP}from"fs";import{get as mP}from"https";import{join as Bg}from"path";import{readFileSync as sP}from"fs";import{dirname as iP,join as aP}from"path";import{fileURLToPath as lP}from"url";function fn(){try{return"2.26.
|
|
1975
|
+
`),Lg=/^[a-z0-9]+(-[a-z0-9]+){1,3}$/,al=30,JA=1024,XA=8e3,ZA="haiku";async function QA(e,t){let n=e.trim();if(n.length===0||n.startsWith("/"))return null;let r=rP(n,JA),o=new AbortController,s=setTimeout(()=>o.abort(),t.timeoutMs??XA),i=t.signal?oP([t.signal,o.signal]):o.signal,a;try{t.slugGenerator?a=await t.slugGenerator(r,i):a=await Fg({token:t.token,model:t.model??ZA,system:VA,user:r,maxTokens:32,signal:i})}catch{return null}finally{clearTimeout(s)}let l=eP(a);if(l===null)return null;let c=zA(t.worktreePath);return await tP(l,c)}function eP(e){let t=e.trim().toLowerCase();if(t.length===0)return null;if(Lg.test(t)&&t.length<=al)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>al)break;o=i}return Lg.test(o)?o:null}async function tP(e,t){if(!await nP(qA(t,e)))return e;let n=YA(2).toString("hex");return`${e.split("-").slice(0,3).join("-").slice(0,al-5)}-${n}`}async function nP(e){try{return await GA.access(e),!0}catch{return!1}}function rP(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 oP(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 Ng(e){let t=await QA(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}:{}});if(t===null)return{status:"skipped",reason:"slug generation returned null"};let r=await(e.renameFn??Dp)(e.handle,t,e.branchPrefix!==void 0?{branchPrefix:e.branchPrefix}:void 0);return r.ok?(e.session&&e.session.setCwd(r.newPath),{status:"renamed",oldPath:r.oldPath,newPath:r.newPath,oldBranch:r.oldBranch,newBranch:r.newBranch}):(r.partial==="branch"&&e.session&&e.session.setCwd(e.handle.path),{status:"failed",reason:r.reason,...r.partial!==void 0?{partial:r.partial}:{}})}import{spawn as Ug}from"child_process";import{existsSync as cP,mkdirSync as uP,readFileSync as jg,unlinkSync as dP,writeFileSync as pP}from"fs";import{get as mP}from"https";import{join as Bg}from"path";import{readFileSync as sP}from"fs";import{dirname as iP,join as aP}from"path";import{fileURLToPath as lP}from"url";function fn(){try{return"2.26.3"}catch{}try{let e=iP(lP(import.meta.url));for(let t of["../../package.json","../package.json"])try{let n=JSON.parse(sP(aP(e,t),"utf-8"));if(typeof n.version=="string")return n.version}catch{}}catch{}return"0.0.0-unknown"}var fP=64*1024,gP=1440*60*1e3,hP="update-check.json",yP="pending-update.json";function Wg(){return Bg(qr(),hP)}function ll(){return Bg(qr(),yP)}function Hg(){let e=qr();cP(e)||uP(e,{recursive:!0})}function bP(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 kP(){try{let e=jg(Wg(),"utf-8"),t=JSON.parse(e);if(typeof t.latestVersion=="string"&&typeof t.checkedAt=="number")return t}catch{}return null}function wP(){try{Hg();let e=`
|
|
1974
1976
|
const https = require('https');
|
|
1975
1977
|
const fs = require('fs');
|
|
1976
1978
|
const url = 'https://registry.npmjs.org/agent-afk/latest';
|