agent-afk 3.13.1 → 3.13.2

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
@@ -2030,7 +2030,7 @@ _ended: ${new Date().toISOString()}_
2030
2030
  `)}function F$(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 Uk(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 jk(e,t,n,r,o="summary",s,i,a){let l=xk(e.text,e.attachments);r.setInFlight(!0);let c="",d=!1,u,m=!1,f=!1,g=!1,h,y=!1,b=[],w=new Map,E=e.text.startsWith("/")?e.text.split(/[\s:]/)[0]?.slice(1):void 0,x=new At({out:Cr(),thinkingMode:o,...E?{activeSkillName:E}:{},onCancel:()=>{t.interrupt().catch(_=>{Ne()&&console.error(" "+p.error("session.interrupt() failed:"),_)})},...i?{onBackground:()=>{y=!0}}:{},...a?.history?{history:a.history}:{},...a?.autocompleteState?{autocompleteState:a.autocompleteState}:{},...r.scrollRegion?{scrollRegion:r.scrollRegion}:{}}),S=async()=>{if(!f){f=!0;try{await x.dispose()}catch{}}};try{console.log(),await x.arm();let _=x.getCompositor();if(s&&_){let C=_;s.fn=R=>C.commitAbove(R)}r.setActiveCompositor?.(_),r.rearmStatus?.();let v=e.attachments.length===0?e.text:Uk(e.text,e.attachments),A=t.sendMessageStream(v);if(await en(x.sink,async()=>{for await(let C of A){if(y&&i){let R=E??e.text.slice(0,40),$=i.register(R),I=Oi($,i);$i(A,c,l,$,i,I,n,r.onTurnComplete,t.abortSignal),await S(),console.log(p.dim(` \u2192 backgrounded as ${$.id}: ${$.label}`)),r.setInFlight(!1),r.rearmStatus?.();return}if(C.type==="chunk"&&C.chunk.type==="content"?(c+=C.chunk.content,d=!0):C.type==="message"&&!d&&(c=C.message.content),C.type==="chunk"&&C.chunk.type==="tool_use_detail"){let R=C.chunk,$={toolName:R.toolName,toolUseId:R.toolUseId,input:R.toolInput};w.set(R.toolUseId,$),b.push($)}else if(C.type==="chunk"&&C.chunk.type==="tool_result"){let R=C.chunk,$=w.get(R.toolUseId);$&&($.result=R.content,$.isError=R.isError,w.delete(R.toolUseId))}if(C.type==="paused"){await S(),console.log(cp({reason:C.reason,...C.resetsAt!==void 0?{resetsAt:C.resetsAt}:{},...C.accountId!==void 0?{accountId:C.accountId}:{}}));continue}if(C.type==="resumed"){let R=C.hotSwapped&&C.accountId?`\u25B6 Resumed on ${C.accountId}`:"\u25B6 Resumed";console.log(p.success(R));continue}if(C.type==="error"){await S(),tr(er(C.error)),m=!0;continue}x.process(C),C.type==="done"&&(g=!0,h=C.metadata)}}),!f){let C=x.getCompositor();if(C)try{let{text:R,queued:$}=C.getBuffer();$&&R.length>0&&(u=R)}catch{}}if(await S(),g){Ti(n,l,c,h,b),r.onTurnComplete&&await r.onTurnComplete(l,c).catch(()=>{}),d&&console.log(`
2031
2031
  `);let C=Fk(c);if(C&&(console.log(Nk(C)),console.log(),r.onTerminalState))try{r.onTerminalState(C)}catch{}if(N$(h,n),r.onAfterTurn){let R=r.onAfterTurn();R instanceof Promise&&await R.catch(()=>{})}}}catch(_){await S(),m||tr(er(_))}finally{await S(),s&&(s.fn=_=>console.log(_)),r.setActiveCompositor?.(null),r.setInFlight(!1),r.rearmStatus?.()}return u}function N$(e,t){if(!e)return;let n=[];e.durationMs&&n.push(oe(e.durationMs)),e.totalCostUsd!==void 0&&n.push(De(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(p.dim(" \u25E6 "+n.join(" \xB7 ")));let s=Pc(t),i=Ve(t.model);if(s>=1){let a=Math.round((s-1)*i),l=Math.round(i/1e3);console.log(p.error(` context OVER ${l}k tok by ~${Q(a)} tok \u2014 model output may be silently truncated`))}else if(s>.5){let a=s>.8?p.error:p.warning;console.log(a(` context ${Math.round(s*100)}% used of ${Q(i)}`))}console.log()}function Bk(e={}){let t=e.load??Pi,n=e.onResize??(i=>tt.subscribe(i)),r="",o,s=n(()=>{r=""});return{renderIfChanged(i){let a=i??"unbound",l=t(a),c=qh(l);return a===o&&c===r?[]:(o=a,r=c,c===""?[]:Ii(l))},invalidate(){r=""},dispose(){try{s()}catch{}}}}var Lu={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.meta,label:"interrupted"}};function Wk(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=Lu[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,te()-2);if(H(a)<=l)return a;let c=r+n.map(d=>Lu[d].color(Lu[d].glyph)).join(p.dim(" "))+i;return de(c,l)}}}var Fu=["\u25D0","\u25D1","\u25D2","\u25D3"],$a=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=tt.subscribe(()=>this.repaint()),this.spinnerInterval=setInterval(()=>{this.spinnerIndex=(this.spinnerIndex+1)%Fu.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=p.brand(Fu[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(`${Q(t.stats.tokens)} tok`);let l=Date.now()-t.startedAt;return a.push(oe(l)),a.length>0&&i.push(p.dim(a.join(" \xB7 "))),de(" "+i.join(" "),n)}formatJobLine(t){let n=Math.max(4,(this.stream.columns??80)-2),r=p.brand(Fu[this.spinnerIndex]),o=p.dim(t.jobId),s=p.bold(t.label||t.jobId),i=[r,o,s],a=Date.now()-t.startedAt;return i.push(p.dim(oe(a))),de(" "+i.join(" "),n)}};function Hk(e,t){let n=p.brand("afk")+p.dim(` (${e})`),r=t?p.warning(" \u25CF plan"):"";return n+r+p.dim(" \u203A ")}async function Kk(e,t,n,r){let o=null,s=[];e.session.current.waitForInitialization().then(async h=>{Ne()&&(o=Ai(h)),await oa(e.session.current),Ne()&&(s=_b())}).catch(()=>{});let i=await Lk(),a=Ia(),l,c=Bk(),d=Wk();e.clearVerdictLedger=()=>d.reset();let u=new Mi;ry(u),cy(u),py(u),uy(e.backgroundRegistry);let m=new $a(u,e.backgroundRegistry);m.setRowCountChangeHandler(h=>{e.statusLine.setExtraRows(h)}),m.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(),A=v.status==="succeeded"?"\u2713":"\u2717",C=[];if(v.resultText){let $=v.resultText.trim().split(`
2032
2032
  `)[0]?.slice(0,80)??"";$&&C.push($)}v.error&&C.push(v.error.message);let R=[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 ");R&&C.push(R),e.replRenderer.writeLine(Yt({kind:v.status==="succeeded"?"checkpoint":"diagnosis",title:`${A} ${v.id} ${v.label}`,body:C})),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 y=d.render();y&&e.replRenderer.writeLine(y);let b,w;if(l!==void 0){let v=l;l=void 0;let A=Hk(e.stats.model,e.stats.planMode),C=$o({buffer:v.text,promptText:A,isTTY:!!process.stdout.isTTY,attachmentSummary:Ca([...v.attachments])});e.replRenderer.writeLine(C),b=v.text.trim(),w=v.attachments}else{let v=await Mk({rl:e.rl,promptFn:()=>Hk(e.stats.model,e.stats.planMode),onSigint:r,statusLine:e.statusLine,compositor:n.activeCompositor??void 0,history:i,autocompleteState:a,onShiftTab:()=>{let A=e.slashCtx;A.stats.planMode&&A.stats.pendingPlanExit?(A.stats.pendingPlanExit=!1,Ft(A,!1,{closureSummarySkipped:!0}).catch(()=>{})):Ft(A).catch(()=>{}),e.statusLine.rearm()}});b=v.text.trim(),w=v.attachments}if(!b&&w.length===0)continue;let E=!1;if(b.startsWith("/")){let v=await Th(b,e.slashCtx,w);if(v.handled){if(v.result==="exit"){e.rl.close();return}if((b==="/clear"||b.startsWith("/clear "))&&(await t.rotateOnClear(),e.replRenderer.writeLine(p.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:w??[]},e.statusLine.rearm();continue}e.statusLine.rearm();continue}E=!0}i.push(b);let x=b;if(E){let v=Cc(b);if(v){let A=v.name.replace(/^\//,"").split(":").pop()??"";if(A&&uu(A)){let C={skillName:A,rawArgs:v.args,source:"plugin",capabilities:{compose:!0,subagents:!0}},R=e.session.current.sessionId,$=jo(R),I=Date.now();q(`[afk trace] preflight.start commandName=${A}`);let D=!1,O=await Uo(C,{cwd:e.stats.cwd??process.cwd(),artifactDir:$},F=>{Ne()&&e.replRenderer.writeLine(p.warning(`\u26A0 preflight(${A}) failed: `)+(F instanceof Error?F.message:String(F)))});D=O!==null,q(`[afk trace] preflight.end commandName=${A} durationMs=${Date.now()-I} success=${D}`),x=mu(O?.manifestBlock,b)}}}let S;if(e.firstTurnHook&&e.stats.totalTurns===0){let v=e.firstTurnHook;e.firstTurnHook=void 0,S=Promise.resolve().then(()=>v(b)).catch(A=>{e.completionWriter.fn(p.warning("\u26A0 ")+"first-turn hook failed: "+(A instanceof Error?A.message:String(A)))})}let _=await jk({text:x,attachments:w},e.session.current,e.stats,{setInFlight(v){n.turnInFlight=v},async onTurnComplete(v,A){await t.appendTurn(v,A)},async onAfterTurn(){await e.contextSampler.onTurn(e.stats.totalTurns),await Fh(e.slashCtx),e.statusLine.rearm()},rearmStatus:()=>e.statusLine.rearm(),onTerminalState:v=>d.push(v),setActiveCompositor:v=>{n.activeCompositor=v,e.replRenderer.setCompositor(v)},scrollRegion:e.statusLine},e.options.thinkingUi,e.completionWriter,u,{history:i,autocompleteState:a});l=_!==void 0?{text:_,attachments:[]}:void 0,S!==void 0&&await S}}finally{for(let h of u.running())u.cancel(h.id);m.stop(),c.dispose()}}import{execFile as U$}from"node:child_process";import{dirname as j$,isAbsolute as B$,resolve as W$}from"node:path";import{promisify as H$}from"node:util";var Gk=H$(U$),K$=3e3,G$=new Set(["empty","orphaned-dir","orphaned-registration","dead-owner"]);async function q$(){let t=(await Gk("git",["rev-parse","--git-common-dir"])).stdout.trim();if(!t)throw new Error("Not in a git repository.");let n=B$(t)?t:W$(process.cwd(),t);return j$(n)}async function qk(e){if(e?.disabled)return{ran:!1,removedCount:0,skippedReason:"disabled"};let t;try{t=await q$()}catch{return{ran:!1,removedCount:0,skippedReason:"not-in-repo"}}let n,r=new Promise(o=>{n=setTimeout(()=>o("timeout"),K$)});try{let o=Rt({execFile:Gk,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=>G$.has(c.verdict)&&i.removed.includes(c.path)).length}}catch{return{ran:!1,removedCount:0,skippedReason:"error"}}finally{n&&clearTimeout(n)}}import{promises as z$}from"node:fs";import{dirname as J$,join as V$}from"node:path";import{randomBytes as Y$}from"node:crypto";var X$=["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(`
2033
- `),zk=/^[a-z0-9]+(-[a-z0-9]+){1,3}$/,Nu=30,Q$=1024,Z$=8e3,eD="haiku";async function tD(e,t){let n=e.trim();if(n.length===0||n.startsWith("/"))return null;let r=sD(n,Q$),o=new AbortController,s=setTimeout(()=>o.abort(),t.timeoutMs??Z$),i=t.signal?iD([t.signal,o.signal]):o.signal,a;try{t.slugGenerator?a=await t.slugGenerator(r,i):a=await wa({token:t.token,model:t.model??eD,system:X$,user:r,maxTokens:32,signal:i})}catch{return null}finally{clearTimeout(s)}let l=nD(a);if(l===null)return null;let c=J$(t.worktreePath);return await rD(l,c)}function nD(e){let t=e.trim().toLowerCase();if(t.length===0)return null;if(zk.test(t)&&t.length<=Nu)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>Nu)break;o=i}return zk.test(o)?o:null}async function rD(e,t){if(!await oD(V$(t,e)))return e;let n=Y$(2).toString("hex");return`${e.split("-").slice(0,3).join("-").slice(0,Nu-5)}-${n}`}async function oD(e){try{return await z$.access(e),!0}catch{return!1}}function sD(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 iD(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 Jk(e){let t=await tD(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??vf)(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}:{}})}N();import{spawn as Vk}from"child_process";import{existsSync as dD,mkdirSync as pD,readFileSync as Yk,unlinkSync as mD,writeFileSync as fD}from"fs";import{get as gD}from"https";import{join as Xk}from"path";import{readFileSync as aD}from"fs";import{dirname as lD,join as cD}from"path";import{fileURLToPath as uD}from"url";function Bt(){try{return"3.13.1"}catch{}try{let e=lD(uD(import.meta.url));for(let t of["../../package.json","../package.json"])try{let n=JSON.parse(aD(cD(e,t),"utf-8"));if(typeof n.version=="string")return n.version}catch{}}catch{}return"0.0.0-unknown"}K();var hD=64*1024,yD=1440*60*1e3,bD="update-check.json",kD="pending-update.json";function Qk(){return Xk(ls(),bD)}function Uu(){return Xk(ls(),kD)}function Zk(){let e=ls();dD(e)||pD(e,{recursive:!0})}function wD(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 SD(){try{let e=Yk(Qk(),"utf-8"),t=JSON.parse(e);if(typeof t.latestVersion=="string"&&typeof t.checkedAt=="number")return t}catch{}return null}function vD(){try{Zk();let e=`
2033
+ `),zk=/^[a-z0-9]+(-[a-z0-9]+){1,3}$/,Nu=30,Q$=1024,Z$=8e3,eD="haiku";async function tD(e,t){let n=e.trim();if(n.length===0||n.startsWith("/"))return null;let r=sD(n,Q$),o=new AbortController,s=setTimeout(()=>o.abort(),t.timeoutMs??Z$),i=t.signal?iD([t.signal,o.signal]):o.signal,a;try{t.slugGenerator?a=await t.slugGenerator(r,i):a=await wa({token:t.token,model:t.model??eD,system:X$,user:r,maxTokens:32,signal:i})}catch{return null}finally{clearTimeout(s)}let l=nD(a);if(l===null)return null;let c=J$(t.worktreePath);return await rD(l,c)}function nD(e){let t=e.trim().toLowerCase();if(t.length===0)return null;if(zk.test(t)&&t.length<=Nu)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>Nu)break;o=i}return zk.test(o)?o:null}async function rD(e,t){if(!await oD(V$(t,e)))return e;let n=Y$(2).toString("hex");return`${e.split("-").slice(0,3).join("-").slice(0,Nu-5)}-${n}`}async function oD(e){try{return await z$.access(e),!0}catch{return!1}}function sD(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 iD(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 Jk(e){let t=await tD(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??vf)(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}:{}})}N();import{spawn as Vk}from"child_process";import{existsSync as dD,mkdirSync as pD,readFileSync as Yk,unlinkSync as mD,writeFileSync as fD}from"fs";import{get as gD}from"https";import{join as Xk}from"path";import{readFileSync as aD}from"fs";import{dirname as lD,join as cD}from"path";import{fileURLToPath as uD}from"url";function Bt(){try{return"3.13.2"}catch{}try{let e=lD(uD(import.meta.url));for(let t of["../../package.json","../package.json"])try{let n=JSON.parse(aD(cD(e,t),"utf-8"));if(typeof n.version=="string")return n.version}catch{}}catch{}return"0.0.0-unknown"}K();var hD=64*1024,yD=1440*60*1e3,bD="update-check.json",kD="pending-update.json";function Qk(){return Xk(ls(),bD)}function Uu(){return Xk(ls(),kD)}function Zk(){let e=ls();dD(e)||pD(e,{recursive:!0})}function wD(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 SD(){try{let e=Yk(Qk(),"utf-8"),t=JSON.parse(e);if(typeof t.latestVersion=="string"&&typeof t.checkedAt=="number")return t}catch{}return null}function vD(){try{Zk();let e=`
2034
2034
  const https = require('https');
2035
2035
  const fs = require('fs');
2036
2036
  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.13.1",
3
+ "version": "3.13.2",
4
4
  "description": "CLI tool for interacting with AI agents via multiple interfaces",
5
5
  "main": "dist/index.mjs",
6
6
  "type": "module",