agent-afk 3.0.0 → 3.1.0

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 +1 -1
  2. package/package.json +1 -1
package/dist/cli.mjs CHANGED
@@ -1977,7 +1977,7 @@ _ended: ${new Date().toISOString()}_
1977
1977
  `)}function I_(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 Iy(e,t,n){let r=[];n&&n.trim().length>0&&r.push({type:"text",text:n}),e&&r.push({type:"text",text:e});for(let o of t)r.push({type:"image",source:{type:"base64",media_type:o.mediaType,data:o.bytes.toString("base64")}});return r}async function _y(e,t,n,r,o="summary",s,i,a){let l=hy(e.text,e.attachments);r.setInFlight(!0);let c="",d=!1,u,p=!1,f=!1,g=!1,h,w=!1,y=[],k=new Map,S=e.text.startsWith("/")?e.text.split(/[\s:]/)[0]?.slice(1):void 0,A=new rn({out:dr(),thinkingMode:o,...S?{activeSkillName:S}:{},onCancel:()=>{t.interrupt().catch(I=>{Ie()&&console.error(" "+m.error("session.interrupt() failed:"),I)})},...i?{onBackground:()=>{w=!0}}:{},...a?.history?{history:a.history}:{},...a?.autocompleteState?{autocompleteState:a.autocompleteState}:{}}),T=async()=>{if(!f){f=!0;try{await A.dispose()}catch{}}};try{console.log(),await A.arm();let I=A.getCompositor();if(s&&I){let R=I;s.fn=E=>R.commitAbove(E)}r.setActiveCompositor?.(I),r.rearmStatus?.();let v=e.attachments.length===0?e.text:Iy(e.text,e.attachments),x=t.sendMessageStream(v);if(await Wn(A.sink,async()=>{for await(let R of x){if(w&&i){let E=S??e.text.slice(0,40),$=i.register(E),_=Vs($,i);Xs(x,c,l,$,i,_,n,r.onTurnComplete,t.abortSignal),await T(),console.log(m.dim(` \u2192 backgrounded as ${$.id}: ${$.label}`)),r.setInFlight(!1),r.rearmStatus?.();return}if(R.type==="chunk"&&R.chunk.type==="content"?(c+=R.chunk.content,d=!0):R.type==="message"&&!d&&(c=R.message.content),R.type==="chunk"&&R.chunk.type==="tool_use_detail"){let E=R.chunk,$={toolName:E.toolName,toolUseId:E.toolUseId,input:E.toolInput};k.set(E.toolUseId,$),y.push($)}else if(R.type==="chunk"&&R.chunk.type==="tool_result"){let E=R.chunk,$=k.get(E.toolUseId);$&&($.result=E.content,$.isError=E.isError,k.delete(E.toolUseId))}if(R.type==="paused"){await T(),console.log(ju({reason:R.reason,...R.resetsAt!==void 0?{resetsAt:R.resetsAt}:{},...R.accountId!==void 0?{accountId:R.accountId}:{}}));continue}if(R.type==="resumed"){let E=R.hotSwapped&&R.accountId?`\u25B6 Resumed on ${R.accountId}`:"\u25B6 Resumed";console.log(m.success(E));continue}if(R.type==="error"){await T(),jn(Nn(R.error)),p=!0;continue}A.process(R),R.type==="done"&&(g=!0,h=R.metadata)}}),!f){let R=A.getCompositor();if(R)try{let{text:E,queued:$}=R.getBuffer();$&&E.length>0&&(u=E)}catch{}}if(await T(),g){Hs(n,l,c,h,y),r.onTurnComplete&&await r.onTurnComplete(l,c).catch(()=>{}),d&&console.log(`
1978
1978
  `);let R=Cy(c);if(R&&(console.log(Py(R)),console.log(),r.onTerminalState))try{r.onTerminalState(R)}catch{}if(__(h,n),r.onAfterTurn){let E=r.onAfterTurn();E instanceof Promise&&await E.catch(()=>{})}}}catch(I){await T(),p||jn(Nn(I))}finally{await T(),s&&(s.fn=I=>console.log(I)),r.setActiveCompositor?.(null),r.setInFlight(!1),r.rearmStatus?.()}return u}function __(e,t){if(!e)return;let n=[];e.durationMs&&n.push(te(e.durationMs)),e.totalCostUsd!==void 0&&n.push(Ce(e.totalCostUsd));let r=Number(e.usage?.input_tokens??0),o=Number(e.usage?.output_tokens??0);r+o>0&&n.push(q(r+o)+" tok"),n.length>0&&console.log(m.dim(" \u25E6 "+n.join(" \xB7 ")));let s=_l(t);if(s>.5){let i=s>.8?m.error:m.warning;console.log(i(` context ${Math.round(s*100)}% used of ${q(Je(t.model))}`))}console.log()}function My(e={}){let t=e.load??zs,n=e.onResize??(i=>Ot.subscribe(i)),r="",o,s=n(()=>{r=""});return{renderIfChanged(i){let a=i??"unbound",l=t(a),c=ig(l);return a===o&&c===r?[]:(o=a,r=c,c===""?[]:Js(l))},invalidate(){r=""},dispose(){try{s()}catch{}}}}var Tc={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 $y(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(d=>{let u=Tc[d];return u.color(`${u.glyph} ${u.label}`)}),i=m.dim(` (${n.length} turn${n.length===1?"":"s"})`),a=r+s.join(o)+i,l=Math.max(20,ee()-2);if(B(a)<=l)return a;let c=r+n.map(d=>Tc[d].color(Tc[d].glyph)).join(m.dim(" "))+i;return ce(c,l)}}}var Oy=["\u25D0","\u25D1","\u25D2","\u25D3"],ji=class{stream;manager;registry;throttleMs;started=!1;lastRepaint=0;spinnerIndex=0;spinnerInterval=null;resizeUnsub=null;updateHandler=null;registryStartedHandler=null;registrySettledHandler=null;subagentRunningCount=0;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.subagentRunningCount++,this.scheduleRepaint()},this.registrySettledHandler=t=>{this.subagentRunningCount=Math.max(0,this.subagentRunningCount-1),this.scheduleRepaint()},this.registry.on("started",this.registryStartedHandler),this.registry.on("settled",this.registrySettledHandler)),this.resizeUnsub=Ot.subscribe(()=>this.repaint()),this.spinnerInterval=setInterval(()=>{this.spinnerIndex=(this.spinnerIndex+1)%Oy.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(),n=t.length+this.subagentRunningCount;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=m.brand(Oy[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(`${q(t.stats.tokens)} tok`);let l=Date.now()-t.startedAt;return a.push(te(l)),a.length>0&&i.push(m.dim(a.join(" \xB7 "))),ce(" "+i.join(" "),n)}};function Dy(e,t){let n=m.brand("afk")+m.dim(` (${e})`),r=t?m.warning(" \u25CF plan"):"";return n+r+m.dim(" \u203A ")}async function Ly(e,t,n,r){let o=null,s=[];e.session.current.waitForInitialization().then(async h=>{Ie()&&(o=qs(h)),await yi(e.session.current),Ie()&&(s=Mh())}).catch(()=>{});let i=await Ay(),a=Li(),l,c=My(),d=$y();e.clearVerdictLedger=()=>d.reset();let u=new Ys;yg(u),vg(u),Eg(u),Tg(e.backgroundRegistry);let p=new ji(u,e.backgroundRegistry);p.setRowCountChangeHandler(h=>{e.statusLine.setExtraRows(h)}),p.start();let f=50,g=[];u.on("complete",h=>{g.length>=f&&g.shift(),g.push(h)});try{for(;;){if(o&&(e.replRenderer.writeLine(o),e.replRenderer.writeLine(""),o=null),s.length>0){for(let v of s)e.replRenderer.writeLine(v);e.replRenderer.writeLine(""),s=[]}for(;g.length>0;){let v=g.shift(),x=v.status==="succeeded"?"\u2713":"\u2717",R=[];if(v.resultText){let $=v.resultText.trim().split(`
1979
1979
  `)[0]?.slice(0,80)??"";$&&R.push($)}v.error&&R.push(v.error.message);let E=[v.stats.toolUses>0?`${v.stats.toolUses} tools`:"",v.stats.tokens>0?`${Math.round(v.stats.tokens/1e3)}k tok`:"",v.stats.durationMs>0?`${Math.round(v.stats.durationMs/1e3)}s`:""].filter(Boolean).join(" \xB7 ");E&&R.push(E),e.replRenderer.writeLine(Dt({kind:v.status==="succeeded"?"checkpoint":"diagnosis",title:`${x} ${v.id} ${v.label}`,body:R})),e.replRenderer.writeLine("")}let h=c.renderIfChanged(e.stats.sessionId);if(h.length>0){for(let v of h)e.replRenderer.writeLine(v);e.replRenderer.writeLine("")}let w=d.render();w&&e.replRenderer.writeLine(w);let y,k;if(l!==void 0){let v=l;l=void 0;let x=Dy(e.stats.model,e.stats.planMode),R=oo({buffer:v.text,promptText:x,isTTY:!!process.stdout.isTTY});e.replRenderer.writeLine(R),y=v.text.trim(),k=v.attachments}else{let v=await Ty({rl:e.rl,promptFn:()=>Dy(e.stats.model,e.stats.planMode),onSigint:r,statusLine:e.statusLine,compositor:n.activeCompositor??void 0,history:i,autocompleteState:a,onShiftTab:()=>{let x=e.slashCtx;x.stats.planMode&&x.stats.pendingPlanExit?(x.stats.pendingPlanExit=!1,xt(x,!1,{closureSummarySkipped:!0}).catch(()=>{})):xt(x).catch(()=>{}),e.statusLine.rearm()}});y=v.text.trim(),k=v.attachments}if(!y&&k.length===0)continue;let S=!1;if(y.startsWith("/")){let v=await Gf(y,e.slashCtx,k);if(v.handled){if(v.result==="exit"){e.rl.close();return}if((y==="/clear"||y.startsWith("/clear "))&&(await t.rotateOnClear(),e.replRenderer.writeLine(m.dim(` transcript: ${t.path()}`)),d.reset()),v.result!==null&&typeof v.result=="object"&&"kind"in v.result&&v.result.kind==="submit"){l={text:v.result.message,attachments:k??[]},e.statusLine.rearm();continue}e.statusLine.rearm();continue}S=!0}i.push(y);let A=y;if(S){let v=Il(y);if(v){let x=v.name.replace(/^\//,"").split(":").pop()??"";if(x&&oc(x)){let R={skillName:x,rawArgs:v.args,source:"plugin",capabilities:{compose:!0,subagents:!0}},E=e.session.current.sessionId,$=uo(E),_=await co(R,{cwd:process.cwd(),artifactDir:$},D=>{Ie()&&e.replRenderer.writeLine(m.warning(`\u26A0 preflight(${x}) failed: `)+(D instanceof Error?D.message:String(D)))});A=ic(_?.manifestBlock,y)}}}let T;if(e.firstTurnHook&&e.stats.totalTurns===0){let v=e.firstTurnHook;e.firstTurnHook=void 0,T=Promise.resolve().then(()=>v(y)).catch(x=>{e.completionWriter.fn(m.warning("\u26A0 ")+"first-turn hook failed: "+(x instanceof Error?x.message:String(x)))})}let I=await _y({text:A,attachments:k},e.session.current,e.stats,{setInFlight(v){n.turnInFlight=v},async onTurnComplete(v,x){await t.appendTurn(v,x)},async onAfterTurn(){await e.contextSampler.onTurn(e.stats.totalTurns),await Xf(e.slashCtx),e.statusLine.rearm()},rearmStatus:()=>e.statusLine.rearm(),onTerminalState:v=>d.push(v),setActiveCompositor:v=>{n.activeCompositor=v,e.replRenderer.setCompositor(v)}},e.options.thinkingUi,e.completionWriter,u,{history:i,autocompleteState:a});l=I!==void 0?{text:I,attachments:[]}:void 0,T!==void 0&&await T}}finally{for(let h of u.running())u.cancel(h.id);p.stop(),c.dispose()}}import{promises as $_}from"node:fs";import{dirname as O_,join as D_}from"node:path";import{randomBytes as L_}from"node:crypto";import M_ from"@anthropic-ai/sdk";import{randomUUID as Fy}from"node:crypto";async function Ny(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=No(t),c=Ir(t,l),d=a?a(c):new M_(c),u=Fy(),p=Fy(),f=yt(l,u,p),g={};Object.keys(f).length>0&&(g.headers=f),i&&(g.signal=i);let h=await d.messages.create({model:n,max_tokens:s,system:r,messages:[{role:"user",content:o}]},Object.keys(g).length>0?g:void 0),w=[];for(let k of h.content)k.type==="text"&&w.push(k.text);let y=w.join("").trim();return y.length===0&&console.warn("oneShotCompletion: response contained no text blocks \u2014 returning empty string"),y}var F_=["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(`
1980
- `),jy=/^[a-z0-9]+(-[a-z0-9]+){1,3}$/,xc=30,N_=1024,j_=8e3,U_="haiku";async function B_(e,t){let n=e.trim();if(n.length===0||n.startsWith("/"))return null;let r=G_(n,N_),o=new AbortController,s=setTimeout(()=>o.abort(),t.timeoutMs??j_),i=t.signal?q_([t.signal,o.signal]):o.signal,a;try{t.slugGenerator?a=await t.slugGenerator(r,i):a=await Ny({token:t.token,model:t.model??U_,system:F_,user:r,maxTokens:32,signal:i})}catch{return null}finally{clearTimeout(s)}let l=W_(a);if(l===null)return null;let c=O_(t.worktreePath);return await H_(l,c)}function W_(e){let t=e.trim().toLowerCase();if(t.length===0)return null;if(jy.test(t)&&t.length<=xc)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>xc)break;o=i}return jy.test(o)?o:null}async function H_(e,t){if(!await K_(D_(t,e)))return e;let n=L_(2).toString("hex");return`${e.split("-").slice(0,3).join("-").slice(0,xc-5)}-${n}`}async function K_(e){try{return await $_.access(e),!0}catch{return!1}}function G_(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 q_(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 Uy(e){let t=await B_(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??Jp)(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 By}from"child_process";import{existsSync as X_,mkdirSync as Q_,readFileSync as Wy,unlinkSync as Z_,writeFileSync as e0}from"fs";import{get as t0}from"https";import{join as Hy}from"path";import{readFileSync as z_}from"fs";import{dirname as J_,join as Y_}from"path";import{fileURLToPath as V_}from"url";function Rt(){try{return"3.0.0"}catch{}try{let e=J_(V_(import.meta.url));for(let t of["../../package.json","../package.json"])try{let n=JSON.parse(z_(Y_(e,t),"utf-8"));if(typeof n.version=="string")return n.version}catch{}}catch{}return"0.0.0-unknown"}var n0=64*1024,r0=1440*60*1e3,o0="update-check.json",s0="pending-update.json";function Ky(){return Hy(Co(),o0)}function Ec(){return Hy(Co(),s0)}function Gy(){let e=Co();X_(e)||Q_(e,{recursive:!0})}function i0(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 a0(){try{let e=Wy(Ky(),"utf-8"),t=JSON.parse(e);if(typeof t.latestVersion=="string"&&typeof t.checkedAt=="number")return t}catch{}return null}function l0(){try{Gy();let e=`
1980
+ `),jy=/^[a-z0-9]+(-[a-z0-9]+){1,3}$/,xc=30,N_=1024,j_=8e3,U_="haiku";async function B_(e,t){let n=e.trim();if(n.length===0||n.startsWith("/"))return null;let r=G_(n,N_),o=new AbortController,s=setTimeout(()=>o.abort(),t.timeoutMs??j_),i=t.signal?q_([t.signal,o.signal]):o.signal,a;try{t.slugGenerator?a=await t.slugGenerator(r,i):a=await Ny({token:t.token,model:t.model??U_,system:F_,user:r,maxTokens:32,signal:i})}catch{return null}finally{clearTimeout(s)}let l=W_(a);if(l===null)return null;let c=O_(t.worktreePath);return await H_(l,c)}function W_(e){let t=e.trim().toLowerCase();if(t.length===0)return null;if(jy.test(t)&&t.length<=xc)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>xc)break;o=i}return jy.test(o)?o:null}async function H_(e,t){if(!await K_(D_(t,e)))return e;let n=L_(2).toString("hex");return`${e.split("-").slice(0,3).join("-").slice(0,xc-5)}-${n}`}async function K_(e){try{return await $_.access(e),!0}catch{return!1}}function G_(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 q_(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 Uy(e){let t=await B_(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??Jp)(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 By}from"child_process";import{existsSync as X_,mkdirSync as Q_,readFileSync as Wy,unlinkSync as Z_,writeFileSync as e0}from"fs";import{get as t0}from"https";import{join as Hy}from"path";import{readFileSync as z_}from"fs";import{dirname as J_,join as Y_}from"path";import{fileURLToPath as V_}from"url";function Rt(){try{return"3.1.0"}catch{}try{let e=J_(V_(import.meta.url));for(let t of["../../package.json","../package.json"])try{let n=JSON.parse(z_(Y_(e,t),"utf-8"));if(typeof n.version=="string")return n.version}catch{}}catch{}return"0.0.0-unknown"}var n0=64*1024,r0=1440*60*1e3,o0="update-check.json",s0="pending-update.json";function Ky(){return Hy(Co(),o0)}function Ec(){return Hy(Co(),s0)}function Gy(){let e=Co();X_(e)||Q_(e,{recursive:!0})}function i0(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 a0(){try{let e=Wy(Ky(),"utf-8"),t=JSON.parse(e);if(typeof t.latestVersion=="string"&&typeof t.checkedAt=="number")return t}catch{}return null}function l0(){try{Gy();let e=`
1981
1981
  const https = require('https');
1982
1982
  const fs = require('fs');
1983
1983
  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.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "CLI tool for interacting with AI agents via multiple interfaces",
5
5
  "main": "dist/index.mjs",
6
6
  "type": "module",