agent-afk 3.33.0 → 3.35.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.
- package/dist/cli.mjs +1 -1
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -2128,7 +2128,7 @@ _ended: ${new Date().toISOString()}_
|
|
|
2128
2128
|
`)}function HF(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 TS(e,t,n){let r=[];return n&&n.trim().length>0&&r.push({type:"text",text:n}),e&&r.push({type:"text",text:e}),Ja(r,t),r}async function ES(e,t,n,r,o="summary",s,i,a){let l=dw(e.text,e.attachments);r.setInFlight(!0);let c="",u=!1,d=!1,p=!1,f=!1,g,h=!1,b=[],y=new Map,w=e.text.startsWith("/")?e.text.split(/[\s:]/)[0]?.slice(1):void 0,v=r.getCompositor?r.getCompositor():null,x=()=>new to({out:no(s),thinkingMode:o,...w?{activeSkillName:w}:{},onCancel:()=>{t.interrupt().catch(R=>{Ve()&&console.error(" "+m.error("session.interrupt() failed:"),R)})},...i?{onBackground:()=>{h=!0}}:{},...a?.history?{history:a.history}:{},...a?.autocompleteState?{autocompleteState:a.autocompleteState}:{},...a?.promptText!==void 0?{promptText:a.promptText}:{},...r.scrollRegion?{scrollRegion:r.scrollRegion}:{},...v?{compositor:v}:{}}),S=x(),T=async()=>{if(!p){p=!0;try{await S.dispose()}catch{}}},A=async()=>{await S.arm();let R=S.getCompositor();if(s&&R){let O=R;s.fn=C=>O.commitAbove(C)}r.setActiveCompositor?.(R),r.rearmStatus?.()};try{v?v.commitAbove(""):console.log(),await A(),i&&r.setBackgroundHandler&&r.setBackgroundHandler(()=>{h=!0});let R=e.attachments.length===0?e.text:TS(e.text,e.attachments),O=t.sendMessageStream(R);if(await Tr((I,P)=>{S.process(I,P)},async()=>{for await(let I of O){if(h&&i){let P=w??e.text.slice(0,40),D=i.register(P),F=ba(D,i);wa(O,c,l,D,i,F,n,r.onTurnComplete,t.abortSignal),await T(),(s??{fn:console.log}).fn(m.dim(` \u2192 backgrounded as ${D.id}: ${D.label}`)),r.setInFlight(!1),r.rearmStatus?.();return}if(I.type==="chunk"&&I.chunk.type==="content"?(c+=I.chunk.content,u=!0):I.type==="message"&&!u&&(c=I.message.content),I.type==="chunk"&&I.chunk.type==="tool_use_detail"){let P=I.chunk,D={toolName:P.toolName,toolUseId:P.toolUseId,input:P.toolInput};y.set(P.toolUseId,D),b.push(D)}else if(I.type==="chunk"&&I.chunk.type==="tool_result"){let P=I.chunk,D=y.get(P.toolUseId);D&&(D.result=P.content,D.isError=P.isError,y.delete(P.toolUseId))}if(I.type==="paused"){await T(),(s??{fn:console.log}).fn(Mm({reason:I.reason,...I.resetsAt!==void 0?{resetsAt:I.resetsAt}:{},...I.accountId!==void 0?{accountId:I.accountId}:{},...I.autoResume!==void 0?{autoResume:I.autoResume}:{}}));continue}if(I.type==="resumed"){let P=I.hotSwapped&&I.accountId?`\u25B6 Resumed on ${I.accountId}`:"\u25B6 Resumed";c="",u=!1,b.length=0,y.clear(),f=!1,g=void 0,d=!1,h=!1,S=x(),p=!1,await A(),(s??{fn:console.log}).fn(m.success(P));continue}if(I.type==="error"){await T(),kr(wr(I.error)),d=!0;continue}S.process(I),I.type==="done"&&(f=!0,g=I.metadata)}}),await T(),f){Jn(n,l,c,g,b),r.onTurnComplete&&await r.onTurnComplete(l,c).catch(()=>{});let I=D=>{s?s.fn(D):console.log(D)};(u||b.length>0)&&I(`
|
|
2129
2129
|
`);let P=SS(c);if(P&&(I(vS(P)),I(""),r.onTerminalState))try{r.onTerminalState(P)}catch{}if(KF(g,n,I),r.onAfterTurn){let D=r.onAfterTurn();D instanceof Promise&&await D.catch(()=>{})}}}catch(R){await T(),d||kr(wr(R))}finally{await T(),s&&(s.fn=R=>console.log(R)),r.setActiveCompositor?.(null),r.setBackgroundHandler?.(null),r.setInFlight(!1),r.rearmStatus?.()}}function KF(e,t,n=console.log){if(!e)return;let r=[];e.durationMs&&r.push(ie(e.durationMs)),e.totalCostUsd!==void 0&&r.push(Ke(e.totalCostUsd));let o=Number(e.usage?.input_tokens??0),s=Number(e.usage?.output_tokens??0);o+s>0&&r.push(Z(o+s)+" tok"),r.length>0&&n(m.dim(" \u25E6 "+r.join(" \xB7 ")));let i=Wu(t),a=nt(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 ~${Z(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 ${Z(a)}`))}n("")}function xS(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=Ab(l);return a===o&&c===r?[]:(o=a,r=c,c===""?[]:ha(l))},invalidate(){r=""},dispose(){try{s()}catch{}}}}var Jd={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 RS(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=Jd[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,ne()-2);if(q(a)<=l)return a;let c=r+n.map(u=>Jd[u].color(Jd[u].glyph)).join(m.dim(" "))+i;return ce(c,l)}}}var Vd=["\u25D0","\u25D1","\u25D2","\u25D3"],xl=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)%Vd.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(Vd[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(`${Z(t.stats.tokens)} tok`);let l=Date.now()-t.startedAt;return a.push(ie(l)),a.length>0&&i.push(m.dim(a.join(" \xB7 "))),ce(" "+i.join(" "),n)}formatJobLine(t){let n=Math.max(4,(this.stream.columns??80)-2),r=m.brand(Vd[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(ie(a))),ce(" "+i.join(" "),n)}};function Rl(e,t){let n=m.brand("afk")+m.dim(` (${e})`),r=t?m.warning(" \u25CF plan"):"";return n+r+m.dim(" \u203A ")}async function AS(e,t,n,r){let o=null,s=[];e.session.current.waitForInitialization().then(async p=>{Ve()&&(o=da(p)),await Xa(e.session.current),Ve()&&(s=wk())}).catch(()=>{});let i=await hS(),a=new El({rl:e.rl,history:i,statusLine:e.statusLine}),l,c,u,d;try{await a.armCompositor({promptFn:()=>Rl(e.stats.model,e.stats.planMode),onCancel:r,onShiftTab:()=>{let h=e.slashCtx;h.stats.planMode&&h.stats.pendingPlanExit?(h.stats.pendingPlanExit=!1,kt(h,!1,{closureSummarySkipped:!0}).catch(()=>{})):kt(h).catch(()=>{}),e.statusLine.rearm()},scrollRegion:e.statusLine}),e.replRenderer.setCompositor(a.getCompositor()),e.slashCtx.getCompositor=()=>a.getCompositor(),c=xS();let p=RS();e.clearVerdictLedger=()=>p.reset(),u=new ya,Nb(u),Kb(u),zb(u),Gb(e.backgroundRegistry),d=new xl(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(`
|
|
2130
2130
|
`)[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(tn({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=Rl(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:()=>Rl(e.stats.model,e.stats.planMode),onSigint:r,onShiftTab:()=>{let A=e.slashCtx;A.stats.planMode&&A.stats.pendingPlanExit?(A.stats.pendingPlanExit=!1,kt(A,!1,{closureSummarySkipped:!0}).catch(()=>{})):kt(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 ib(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=Bu(y);if(T){let A=T.name.replace(/^\//,"").split(":").pop()??"";if(A&&Ed(A)){let R={skillName:A,rawArgs:T.args,source:"plugin",capabilities:{compose:!0,subagents:!0}},O=e.session.current.sessionId,C=ms(O),I=Date.now();H(`[afk trace] preflight.start commandName=${A}`);let P=!1,D=await ps(R,{cwd:e.stats.cwd??process.cwd(),artifactDir:C},F=>{Ve()&&e.replRenderer.writeLine(m.warning(`\u26A0 preflight(${A}) failed: `)+(F instanceof Error?F.message:String(F)))});P=D!==null,H(`[afk trace] preflight.end commandName=${A} durationMs=${Date.now()-I} success=${P}`),x=Ad(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 ES({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 bb(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(Rl(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 GF}from"node:child_process";import{dirname as qF,isAbsolute as zF,resolve as JF}from"node:path";import{promisify as VF}from"node:util";var CS=VF(GF),YF=3e3,XF=new Set(["empty","orphaned-dir","orphaned-registration","dead-owner"]);async function QF(){let t=(await CS("git",["rev-parse","--git-common-dir"])).stdout.trim();if(!t)throw new Error("Not in a git repository.");let n=zF(t)?t:JF(process.cwd(),t);return qF(n)}async function _S(e){if(e?.disabled)return{ran:!1,removedCount:0,skippedReason:"disabled"};let t;try{t=await QF()}catch{return{ran:!1,removedCount:0,skippedReason:"not-in-repo"}}let n,r=new Promise(o=>{n=setTimeout(()=>o("timeout"),YF)});try{let o=Ot({execFile:CS,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=>XF.has(c.verdict)&&i.removed.includes(c.path)).length}}catch{return{ran:!1,removedCount:0,skippedReason:"error"}}finally{n&&clearTimeout(n)}}import{promises as ZF}from"node:fs";import{dirname as eN,join as tN}from"node:path";import{randomBytes as nN}from"node:crypto";var rN=["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(`
|
|
2131
|
-
`),IS=/^[a-z0-9]+(-[a-z0-9]+){1,3}$/,Yd=30,oN=1024,sN=8e3,iN="haiku";async function aN(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=dN(n,oN),o=new AbortController,s=setTimeout(()=>o.abort(),t.timeoutMs??sN),i=t.signal?pN([t.signal,o.signal]):o.signal,a;try{t.slugGenerator?a=await t.slugGenerator(r,i):a=await fl({token:t.token,model:t.model??iN,system:rN,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=lN(a);if(l===null)return t.onSkip?.("invalid-slug-output",a.slice(0,60)),null;let c=eN(t.worktreePath);return await cN(l,c)}function lN(e){let t=e.trim().toLowerCase();if(t.length===0)return null;if(IS.test(t)&&t.length<=Yd)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>Yd)break;o=i}return IS.test(o)?o:null}async function cN(e,t){if(!await uN(tN(t,e)))return e;let n=nN(2).toString("hex");return`${e.split("-").slice(0,3).join("-").slice(0,Yd-5)}-${n}`}async function uN(e){try{return await ZF.access(e),!0}catch{return!1}}function dN(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 pN(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 MS(e){let t,n,r=await aN(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??Zg)(e.handle,r,e.branchPrefix!==void 0?{branchPrefix:e.branchPrefix}:void 0);return s.ok?(e.session&&e.session.setCwd(s.newPath),PS(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),PS(e.handle.path)),{status:"failed",reason:s.reason,...s.partial!==void 0?{partial:s.partial}:{}})}function PS(e){try{process.chdir(e)}catch{}}N();import{spawn as $S}from"child_process";import{existsSync as yN,mkdirSync as bN,readFileSync as OS,unlinkSync as wN,writeFileSync as kN}from"fs";import{get as SN}from"https";import{join as DS}from"path";import{readFileSync as mN}from"fs";import{dirname as fN,join as gN}from"path";import{fileURLToPath as hN}from"url";function zt(){try{return"3.
|
|
2131
|
+
`),IS=/^[a-z0-9]+(-[a-z0-9]+){1,3}$/,Yd=30,oN=1024,sN=8e3,iN="haiku";async function aN(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=dN(n,oN),o=new AbortController,s=setTimeout(()=>o.abort(),t.timeoutMs??sN),i=t.signal?pN([t.signal,o.signal]):o.signal,a;try{t.slugGenerator?a=await t.slugGenerator(r,i):a=await fl({token:t.token,model:t.model??iN,system:rN,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=lN(a);if(l===null)return t.onSkip?.("invalid-slug-output",a.slice(0,60)),null;let c=eN(t.worktreePath);return await cN(l,c)}function lN(e){let t=e.trim().toLowerCase();if(t.length===0)return null;if(IS.test(t)&&t.length<=Yd)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>Yd)break;o=i}return IS.test(o)?o:null}async function cN(e,t){if(!await uN(tN(t,e)))return e;let n=nN(2).toString("hex");return`${e.split("-").slice(0,3).join("-").slice(0,Yd-5)}-${n}`}async function uN(e){try{return await ZF.access(e),!0}catch{return!1}}function dN(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 pN(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 MS(e){let t,n,r=await aN(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??Zg)(e.handle,r,e.branchPrefix!==void 0?{branchPrefix:e.branchPrefix}:void 0);return s.ok?(e.session&&e.session.setCwd(s.newPath),PS(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),PS(e.handle.path)),{status:"failed",reason:s.reason,...s.partial!==void 0?{partial:s.partial}:{}})}function PS(e){try{process.chdir(e)}catch{}}N();import{spawn as $S}from"child_process";import{existsSync as yN,mkdirSync as bN,readFileSync as OS,unlinkSync as wN,writeFileSync as kN}from"fs";import{get as SN}from"https";import{join as DS}from"path";import{readFileSync as mN}from"fs";import{dirname as fN,join as gN}from"path";import{fileURLToPath as hN}from"url";function zt(){try{return"3.35.0"}catch{}try{let e=fN(hN(import.meta.url));for(let t of["../../package.json","../package.json"])try{let n=JSON.parse(mN(gN(e,t),"utf-8"));if(typeof n.version=="string")return n.version}catch{}}catch{}return"0.0.0-unknown"}K();var vN=64*1024,TN=1440*60*1e3,EN="update-check.json",xN="pending-update.json";function LS(){return DS(Hs(),EN)}function Xd(){return DS(Hs(),xN)}function FS(){let e=Hs();yN(e)||bN(e,{recursive:!0})}function RN(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 AN(){try{let e=OS(LS(),"utf-8"),t=JSON.parse(e);if(typeof t.latestVersion=="string"&&typeof t.checkedAt=="number")return t}catch{}return null}function CN(){try{FS();let e=`
|
|
2132
2132
|
const https = require('https');
|
|
2133
2133
|
const fs = require('fs');
|
|
2134
2134
|
const url = 'https://registry.npmjs.org/agent-afk/latest';
|