agent-afk 3.89.0 → 3.89.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/cli.mjs +8 -8
  2. package/package.json +1 -1
package/dist/cli.mjs CHANGED
@@ -1714,10 +1714,10 @@ ${u}`}function Xp(e,t){let n=yv[t.status];e.out.line(` ${n} ${p.bold(t.jobId)}
1714
1714
 
1715
1715
  `),t&&(n=n.replace(/^\n+/,"").replace(/\n+$/,"")),n}function _U(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function nm(e,t){let n=_U(t),r=new RegExp(`<${n}>`,"g"),o=r.test(e);r.lastIndex=0;let s=new RegExp(`(\\n|^)[ \\t]*<${n}>[ \\t]*\\n?`,"gm"),i=new RegExp(`(\\n|^)[ \\t]*</${n}>[ \\t]*\\n?`,"gm"),a=new RegExp(`</${n}>`,"g"),l=!1,c=e;return c=c.replace(s,(u,d)=>(l=!0,d)),c=c.replace(i,(u,d)=>(l=!0,d)),c=c.replace(r,()=>(l=!0,"")),c=c.replace(a,()=>(l=!0,"")),c=c.replace(/^[ \t]+$/gm,""),c=c.replace(/\n{3,}/g,`
1716
1716
 
1717
- `),l&&(c=c.replace(/^\n+/,"").replace(/\n+$/,"")),{text:c,found:o}}K();K();K();import CU from"wrap-ansi";var _v="\x1B[?2026h",Cv="\x1B[?2026l",li=(e,t)=>`\x1B[${e};${t}H`,rm="\x1B[2K",IU="\x1B[?25l",Iv="\x1B[?25h",zl=class{stream;previousTopRow=0;previousLineCount=0;previousRawLineCount=0;constructor(t){this.stream=t}get topRow(){return this.previousTopRow}render(t,n){let r=Math.max(1,n),o=this.stream.columns??80,s=this.stream.isTTY===!0,i=t.endsWith(`
1717
+ `),l&&(c=c.replace(/^\n+/,"").replace(/\n+$/,"")),{text:c,found:o}}K();K();K();import CU from"wrap-ansi";var _v="\x1B[?2026h",Cv="\x1B[?2026l",li=(e,t)=>`\x1B[${e};${t}H`,rm="\x1B[2K",IU="\x1B[?25l",Iv="\x1B[?25h",zl=class e{stream;previousTopRow=0;previousLineCount=0;previousRawLineCount=0;constructor(t){this.stream=t}get topRow(){return this.previousTopRow}static wrapToPhysicalLines(t,n){let r=t.endsWith(`
1718
1718
  `)?t:`${t}
1719
- `,l=CU(i,o,{trim:!1,hard:!0,wordWrap:!1}).split(`
1720
- `);for(;l.length>0&&l[l.length-1]==="";)l.pop();let c=Math.max(1,l.length),u=this.previousRawLineCount>c?[...Array(this.previousRawLineCount-c).fill(""),...l]:l,d=u.length,m=Math.max(1,r-d+1),f="";if(s&&(f+=_v),this.previousLineCount>0)for(let g=0;g<this.previousLineCount;g++){let h=this.previousTopRow+g;f+=li(h,1)+rm}for(let g=0;g<d;g++){let h=m+g;f+=li(h,1)+rm+(u[g]??"")}if(f+=li(m+d-1,1),s&&(f+=Cv),this.stream.isTTY)try{this.stream.write(IU)}catch{}try{this.stream.write(f)}catch{try{this.stream.isTTY&&this.stream.write(Iv)}catch{}}if(T.NODE_ENV!=="production"&&d<c)throw new Error(`CupFrameRenderer invariant violation: lineCount (${d}) < rawLineCount (${c}). previousLineCount must cover at least previousRawLineCount \u2014 padded footprint must be \u2265 raw content size; see PR #557.`);this.previousTopRow=m,this.previousLineCount=d,this.previousRawLineCount=c}resetGeometry(){this.previousTopRow=0,this.previousLineCount=0,this.previousRawLineCount=0}clear(t=0){if(this.previousLineCount===0)return;let n="",r=this.stream.isTTY===!0;r&&(n+=_v);for(let o=0;o<this.previousLineCount;o++){let s=this.previousTopRow+o;n+=li(s,1)+rm}n+=li(Math.max(1,(this.stream.rows??24)-1-t),1),r&&(n+=Cv);try{this.stream.write(n)}catch{}this.previousTopRow=0,this.previousLineCount=0,this.previousRawLineCount=0}done(){if(this.previousTopRow=0,this.previousLineCount=0,this.previousRawLineCount=0,this.stream.isTTY)try{this.stream.write(Iv)}catch{}}};import ci from"string-width";function kr(e){let{buffer:t,promptText:n,isTTY:r,attachmentSummary:o}=e,s=o&&o.length>0?o:null;if(!r){let g=n+t;return s!==null?`${g} ${s}`:g}let i=e.terminalWidth??X(),a=t.includes(`
1719
+ `,s=CU(r,n,{trim:!1,hard:!0,wordWrap:!1}).split(`
1720
+ `);for(;s.length>0&&s[s.length-1]==="";)s.pop();return s}measure(t,n){let r=this.stream.columns??80,o=Math.max(1,e.wrapToPhysicalLines(t,r).length),s=Math.max(1,n);return{topRow:Math.max(1,s-o+1),lineCount:o}}render(t,n){let r=Math.max(1,n),o=this.stream.columns??80,s=this.stream.isTTY===!0,i=e.wrapToPhysicalLines(t,o),a=Math.max(1,i.length),l=this.previousRawLineCount>a?[...Array(this.previousRawLineCount-a).fill(""),...i]:i,c=l.length,u=Math.max(1,r-c+1),d="";if(s&&(d+=_v),this.previousLineCount>0)for(let m=0;m<this.previousLineCount;m++){let f=this.previousTopRow+m;d+=li(f,1)+rm}for(let m=0;m<c;m++){let f=u+m;d+=li(f,1)+rm+(l[m]??"")}if(d+=li(u+c-1,1),s&&(d+=Cv),this.stream.isTTY)try{this.stream.write(IU)}catch{}try{this.stream.write(d)}catch{try{this.stream.isTTY&&this.stream.write(Iv)}catch{}}if(T.NODE_ENV!=="production"&&c<a)throw new Error(`CupFrameRenderer invariant violation: lineCount (${c}) < rawLineCount (${a}). previousLineCount must cover at least previousRawLineCount \u2014 padded footprint must be \u2265 raw content size; see PR #557.`);this.previousTopRow=u,this.previousLineCount=c,this.previousRawLineCount=a}resetGeometry(){this.previousTopRow=0,this.previousLineCount=0,this.previousRawLineCount=0}clear(t=0){if(this.previousLineCount===0)return;let n="",r=this.stream.isTTY===!0;r&&(n+=_v);for(let o=0;o<this.previousLineCount;o++){let s=this.previousTopRow+o;n+=li(s,1)+rm}n+=li(Math.max(1,(this.stream.rows??24)-1-t),1),r&&(n+=Cv);try{this.stream.write(n)}catch{}this.previousTopRow=0,this.previousLineCount=0,this.previousRawLineCount=0}done(){if(this.previousTopRow=0,this.previousLineCount=0,this.previousRawLineCount=0,this.stream.isTTY)try{this.stream.write(Iv)}catch{}}};import ci from"string-width";function kr(e){let{buffer:t,promptText:n,isTTY:r,attachmentSummary:o}=e,s=o&&o.length>0?o:null;if(!r){let g=n+t;return s!==null?`${g} ${s}`:g}let i=e.terminalWidth??X(),a=t.includes(`
1721
1721
  `),l=ci(Ae(t)),c=l>=i-2,u;if(!a&&!c){let g=Math.max(0,i-l);u=" ".repeat(g)+t}else u=An({kind:"user",body:t});if(s===null)return u;let d=ci(s),m=Math.max(0,i-d),f=" ".repeat(m)+p.dim(s);return u+`
1722
1722
  `+f}function om(e,t,n){let r=n||80,o=e.split(`
1723
1723
  `),s=0;for(let i=0;i<o.length;i++){let a=Ae(o[i]),l=(i===0?t:0)+ci(a);s+=Math.max(1,Math.ceil(l/r))}return Math.max(0,s-1)}function Hn(e,t,n,r){let o=r||80,s=e.split(`
@@ -1750,11 +1750,11 @@ ${u}`}function Xp(e,t){let n=yv[t.status];e.out.line(` ${n} ${p.bold(t.jobId)}
1750
1750
  `)),!0;if(e.pasting)return e.input=U.insert(e.input,`
1751
1751
  `),e.queued=!1,!0;let s=e.autocompleteState;if(s?.dropdownOpen){let i=s.trigger?.kind,a=e.applyDropdownSelection();if(i!=="slash"||!a)return!0}if(e.input.buffer.length===0&&e.attachments.length===0)return!0;if(e.inputMode==="idle"&&e.onSubmit){let i=e.input.buffer,a=mi(e,i),l=[...e.attachments],c=e.onSubmit;return e.queued=!1,e.input=U.seed(""),e.attachments=[],e.pasteRegistry.clear(),e.autocompleteState?.reset(),e.repaint(),c(a===i?{text:a,attachments:l}:{text:a,displayText:i,attachments:l}),!0}return e.queued||(e.queued=!0,e.repaint()),!0}function mj(e,t){if(t?.name!=="backspace")return!1;if(t?.meta){let o=U.deleteWordBackward(e.input);return o!==e.input&&(e.history?.resetRecall(),e.applyEdit(o)),!0}let n=am(e,"backward");if(n)return e.history?.resetRecall(),e.applyEdit(n),!0;let r=U.backspace(e.input);return r!==e.input?(e.history?.resetRecall(),e.applyEdit(r)):e.queued?(e.queued=!1,e.repaint()):e.attachments.length>0&&(e.attachments.pop(),e.repaint()),!0}function fj(e,t){if(t?.ctrl&&t?.name==="a")return e.applyEdit(U.moveLineStart(e.input)),!0;if(t?.ctrl&&t?.name==="e")return e.applyEdit(U.moveLineEnd(e.input)),!0;if((t?.meta||t?.ctrl)&&t?.name==="left")return e.applyEdit(U.moveWordBackward(e.input)),!0;if((t?.meta||t?.ctrl)&&t?.name==="right")return e.applyEdit(U.moveWordForward(e.input)),!0;if(t?.meta&&t?.name==="b")return e.applyEdit(U.moveWordBackward(e.input)),!0;if(t?.meta&&t?.name==="f")return e.applyEdit(U.moveWordForward(e.input)),!0;if(t?.ctrl&&t?.name==="w"){let n=U.deleteWordBackward(e.input);return n!==e.input&&(e.history?.resetRecall(),e.applyEdit(n)),!0}if(t?.ctrl&&t?.name==="u"){let n=U.deleteToLineStart(e.input);return n!==e.input&&(e.history?.resetRecall(),e.applyEdit(n)),!0}if(t?.ctrl&&t?.name==="k"){let n=U.deleteToLineEnd(e.input);return n!==e.input&&(e.history?.resetRecall(),e.applyEdit(n)),!0}if(t?.name==="left")return e.applyEdit(U.moveLeft(e.input)),!0;if(t?.name==="right")return e.input.cursor===e.input.buffer.length&&e.activeGhost!==null&&!e.autocompleteState?.dropdownOpen?e.applyGhostAccept():e.applyEdit(U.moveRight(e.input)),!0;if(t?.name==="home")return e.applyEdit(U.moveHome(e.input)),!0;if(t?.name==="end")return e.applyEdit(U.moveEnd(e.input)),!0;if(t?.name==="delete"){if(t?.meta){let r=U.deleteWordForward(e.input);return r!==e.input&&(e.history?.resetRecall(),e.applyEdit(r)),!0}let n=am(e,"forward");return n?(e.history?.resetRecall(),e.applyEdit(n),!0):(e.history?.resetRecall(),e.applyEdit(U.deleteForward(e.input)),!0)}return!1}function gj(e,t){return t?.ctrl&&t?.name==="b"?(e.inputMode==="idle"||e.backgrounded||(e.backgrounded=!0,e.onBackground&&e.onBackground()),!0):!1}function hj(e,t){return t?.name==="tab"&&t?.shift?(e.onShiftTab&&e.onShiftTab(),!0):t?.name==="tab"?(e.applyDropdownSelection()||e.applyGhostAccept(),!0):!1}function yj(e,t,n){let r=["tab","pageup","pagedown"];if(n?.name&&r.includes(n.name)||n?.ctrl||n?.meta)return;let o=typeof t=="string"&&t.length===1&&t>=" "?t:typeof n?.sequence=="string"&&n.sequence.length===1&&n.sequence>=" "?n.sequence:null;o!==null&&(e.history?.resetRecall(),e.applyEdit(U.insert(e.input,o)))}var Zo=class{stdout;stdin;onCancel;onSoftStop;softStopped=!1;onBackground;onShiftTab;promptTextFn;history;autocompleteState;formatInputBuffer;scrollRegion;anchorRow;declaredAnchorRow;onSubmit;attachments=[];pasting=!1;pasteStartBufferLen=0;pasteStartCursor=0;pasteRegistry=new Map;clipboardInFlight=!1;clipboardFailureMsg=null;inputMode="streaming";pickerController=null;pickerSavedMode="streaming";armed=!1;suspended=!1;canceled=!1;backgrounded=!1;wasRaw=!1;stdinClaim=null;logUpdate=null;overlay="";input=U.seed("");queued=!1;handleKeypress=null;resizeUnsub=null;resizeImmediateUnsub=null;spinnerController;committing=!1;hasCommitted=!1;committedBand=[];committedBandTopRow=0;committedBandBottomRow=0;lastKnownRows=0;pendingResizeErase=null;commitInFlight=!1;debugCompositor=!!T.AFK_DEBUG_COMPOSITOR;ghostEngine;ghostGetContext;activeGhost=null;debugLog(t,n={}){if(!this.debugCompositor)return;let r=process.hrtime.bigint(),o=Object.entries(n).map(([s,i])=>{let a=typeof i=="string"?JSON.stringify(i.length>60?i.slice(0,57)+"...":i):String(i);return`${s}=${a}`}).join(" ");process.stderr.write(`[compositor] t=${r} ${t}${o?" "+o:""}
1752
1752
  `)}constructor(t){this.stdout=t.stdout,this.stdin=t.stdin,this.onCancel=t.onCancel,this.onSoftStop=t.onSoftStop,this.onBackground=t.onBackground,this.onShiftTab=t.onShiftTab;let n=t.promptText;if(typeof n=="function")this.promptTextFn=n;else if(typeof n=="string")this.promptTextFn=()=>n;else{let r=" "+p.dim("\u23AF")+" ";this.promptTextFn=()=>r}this.history=t.history,this.autocompleteState=t.autocompleteState,this.formatInputBuffer=t.formatInputBuffer,this.scrollRegion=t.scrollRegion,this.spinnerController=new ql({captureMode:t.captureMode??!1,onTick:()=>this.repaint()}),this.onSubmit=t.onSubmit,this.anchorRow=t.anchorRow,this.declaredAnchorRow=t.anchorRow,this.ghostEngine=t.suggest?.engine,this.ghostGetContext=t.suggest?.getContext}isArmed(){return this.armed}setAnchorRow(t){this.anchorRow=t,this.declaredAnchorRow=t}suspendInput(){if(!(!this.armed||this.suspended)){if(this.logUpdate)try{this.logUpdate.clear(this.scrollRegion?.getExtraRows()??0),this.logUpdate.done()}catch{}this.handleKeypress&&this.stdin.removeListener("keypress",this.handleKeypress);try{this.stdin.setRawMode(!1)}catch{}this.suspended=!0}}resumeInput(){if(!(!this.armed||!this.suspended)){try{this.stdin.setRawMode(!0)}catch{}this.handleKeypress&&this.stdin.on("keypress",this.handleKeypress),this.suspended=!1,this.repaint()}}setOnSubmit(t){this.onSubmit=t??void 0}setOnCancel(t){this.onCancel=t??void 0}getOnCancel(){return this.onCancel}setOnSoftStop(t){this.onSoftStop=t??void 0}setOnBackground(t){this.onBackground=t??void 0}setOnShiftTab(t){this.onShiftTab=t??void 0}enterPickerMode(t){if(this.pickerController)throw new Error("enterPickerMode: a picker is already active; call exitPickerMode first");this.pickerSavedMode=this.inputMode,this.pickerController=t,this.inputMode="picker",this.autocompleteState?.reset(),this.repaint()}exitPickerMode(){this.pickerController&&(this.pickerController=null,this.inputMode=this.pickerSavedMode,this.repaint())}repaintPicker(){this.pickerController&&this.repaint()}setInputMode(t){let n=this.inputMode;if(this.inputMode=t,n==="idle"&&t==="streaming"){this.canceled=!1,this.backgrounded=!1,this.softStopped=!1,this.autocompleteState?.reset(),this.repaint();return}if(t==="idle"&&this.softStopped){this.queued=!1,this.softStopped=!1,this.repaint();return}if(t==="idle"&&this.queued&&this.onSubmit){let r=this.input.buffer,o=mi(this,r),s=[...this.attachments],i=this.onSubmit;this.queued=!1,this.input=U.seed(""),this.attachments=[],this.pasteRegistry.clear(),this.repaint(),i(o===r?{text:o,attachments:s}:{text:o,displayText:r,attachments:s});return}n!==t&&this.repaint()}getInputMode(){return this.inputMode}async arm(){if(this.armed)throw new Error("TerminalCompositor: arm() called while already armed");if(!(!this.stdout.isTTY||!this.stdin.isTTY)){this.anchorRow=this.declaredAnchorRow,this.logUpdate||(this.logUpdate=new zl(this.stdout)),this.wasRaw=this.stdin.isRaw??!1;try{this.stdin.setRawMode(!0)}catch{this.logUpdate=null,this.wasRaw=!1;return}try{this.stdout.write("\x1B[?2004h")}catch{}this.stdin.resume(),yr(this.stdin),this.stdinClaim=pi("TerminalCompositor.arm"),this.handleKeypress=(t,n)=>this.dispatchKey(t,n),this.stdin.on("keypress",this.handleKeypress),this.armed=!0,this.canceled=!1,this.resizeUnsub=$e.subscribe(()=>{this.armed&&this.repaint()}),this.resizeImmediateUnsub=$e.subscribeImmediate(()=>{if(!this.armed)return;let t=this.stdout.rows??24;if(this.lastKnownRows>0&&t>this.lastKnownRows){let n=this.scrollRegion?.getExtraRows()??0,r=this.logUpdate?.topRow??0,o=this.committedBand.length>0?this.committedBandTopRow:0,s=[r,o].filter(l=>l>0),i=s.length>0?Math.min(...s):0,a=Math.max(1,this.lastKnownRows-1-n);i>0&&i<=a&&(this.pendingResizeErase={top:i,bottom:a})}else this.pendingResizeErase=null;this.logUpdate?.resetGeometry?.()}),this.repaint()}}disarm(){if(this.spinnerController.dispose(),!this.armed){this.resetState();return}if(this.handleKeypress&&(this.stdin.removeListener("keypress",this.handleKeypress),this.handleKeypress=null),this.resizeUnsub&&(this.resizeUnsub(),this.resizeUnsub=null),this.resizeImmediateUnsub&&(this.resizeImmediateUnsub(),this.resizeImmediateUnsub=null),this.logUpdate)try{this.logUpdate.clear(this.scrollRegion?.getExtraRows()??0),this.logUpdate.done()}catch{}if(this.stdout.isTTY&&this.stdin.isTTY){try{this.stdout.write("\x1B[?2004l")}catch{}try{this.stdin.setRawMode(this.wasRaw)}catch{}}this.stdinClaim&&(this.stdinClaim.release(),this.stdinClaim=null),this.armed=!1,this.resetState(),this.ghostEngine?.dispose()}setOverlay(t){t!==this.overlay&&(this.debugLog("setOverlay",{framesLen:t.length,anchorRow:this.anchorRow??null}),this.overlay=t,this.repaint())}setSpinner(t){this.stdout.isTTY&&this.spinnerController.set(t)}commitAbove(t){aT(this,t)}clearCommittedBand(){hi(this)}flushResizeGhostErase(){lT(this)}resetCommittedBand(){cT(this)}repositionCommittedBand(t,n,r){uT(this,t,n,r)}getBuffer(){return{text:mi(this,this.input.buffer),queued:this.queued}}getAttachments(){return[...this.attachments]}renderInputLine(){return oT(this)}updateAutocomplete(){Xl(this)}updateGhost(){eT(this)}renderDropdownRows(){return sT(this)}renderHintRow(){return iT(this)}repaint(){if(!this.armed||!this.logUpdate||this.committing||this.suspended)return;if(this.flushResizeGhostErase(),this.lastKnownRows=this.stdout.rows??24,this.inputMode==="picker"&&this.pickerController){this.repaintPickerFrame();return}let t=this.renderInputLine(),n=this.overlay?this.overlay.split(`
1753
- `):[],r=this.spinnerController.renderSpinnerRow(),o=this.spinnerController.renderTipRow(this.stdout.columns??80),s=null;this.attachments.length>0?s=ui(this.attachments):this.clipboardFailureMsg!==null&&(s=p.dim(this.clipboardFailureMsg),this.clipboardFailureMsg=null);let i=this.renderDropdownRows(),a=this.renderHintRow(),l=!!r||!!o||!!s,c=l||n.length>0,u=this.scrollRegion?.getExtraRows()??0,d=Math.max(1,(this.stdout.rows??24)-1-u),m=c?1:0,f=(r?1:0)+(o?1:0)+(s?1:0)+m+i.length+(a!==null?1:0)+1,g=Math.max(0,d-f),h=n.length>g?n.slice(-g):n,b=l||h.length>0,y=[];y.push(...h),r&&y.push(r),o&&y.push(o),s&&y.push(s),b&&y.push(""),y.push(...i),a!==null&&y.push(a),y.push(t);let w=Math.max(1,(this.stdout.rows??24)-1-u),S=y.length,x=Math.max(1,w-S+1);this.preserveRowsBeforeFrameRender(x);let k=this.logUpdate.topRow??0;this.logUpdate.render(y.join(`
1754
- `),w),this.repositionCommittedBand(x,k,w)}preserveRowsBeforeFrameRender(t){let n=this.logUpdate?.topRow??0;if(!(this.anchorRow!==void 0&&this.anchorRow>1)){let a=this.hasCommitted&&n>1&&t<n,l=this.committedBand.length;if(!a||l===0)return;let c=Math.max(0,t-1),u=l-c;if(u<=0)return;let d="";for(let m=Math.max(1,this.committedBandTopRow);m<=this.committedBandBottomRow;m++)d+=`\x1B[${m};1H\x1B[2K`;for(let m=0;m<l;m++)d+=`\x1B[${1+m};1H\x1B[2K${this.committedBand[m]??""}`;try{this.stdout.write(d)}catch{}this.evictRowsToScrollback(u),this.committedBand=this.committedBand.slice(u),this.committedBandTopRow=1,this.committedBandBottomRow=c;return}let o=this.hasCommitted&&n>1?Math.max(0,n-t):0,s=t<this.anchorRow?this.anchorRow-t:0,i=Math.max(o,s);if(i>0&&(this.evictRowsToScrollback(i),this.anchorRow!==void 0&&this.anchorRow>1&&(this.anchorRow=Math.max(1,this.anchorRow-i)),this.committedBand.length>0)){this.committedBandTopRow-=i,this.committedBandBottomRow-=i;let a=Math.max(this.anchorRow??1,1);if(this.committedBandTopRow<a){let l=a-this.committedBandTopRow;this.committedBand=this.committedBand.slice(l),this.committedBandTopRow=a}(this.committedBand.length===0||this.committedBandBottomRow<a)&&this.clearCommittedBand()}}evictRowsToScrollback(t){if(t<=0)return;this.debugLog("evict:enter",{rows:t,anchorRow:this.anchorRow??null});let r=`\x1B[${Math.max(1,this.stdout.rows??24)};1H${`
1753
+ `):[],r=this.spinnerController.renderSpinnerRow(),o=this.spinnerController.renderTipRow(this.stdout.columns??80),s=null;this.attachments.length>0?s=ui(this.attachments):this.clipboardFailureMsg!==null&&(s=p.dim(this.clipboardFailureMsg),this.clipboardFailureMsg=null);let i=this.renderDropdownRows(),a=this.renderHintRow(),l=!!r||!!o||!!s,c=l||n.length>0,u=this.scrollRegion?.getExtraRows()??0,d=Math.max(1,(this.stdout.rows??24)-1-u),m=c?1:0,f=(r?1:0)+(o?1:0)+(s?1:0)+m+i.length+(a!==null?1:0)+1,g=Math.max(0,d-f),h=n.length>g?n.slice(-g):n,b=l||h.length>0,y=[];y.push(...h),r&&y.push(r),o&&y.push(o),s&&y.push(s),b&&y.push(""),y.push(...i),a!==null&&y.push(a),y.push(t);let w=Math.max(1,(this.stdout.rows??24)-1-u),S=y.join(`
1754
+ `),x=this.logUpdate.measure?this.logUpdate.measure(S,w).topRow:Math.max(1,w-y.length+1);this.preserveRowsBeforeFrameRender(x);let k=this.logUpdate.topRow??0;this.logUpdate.render(S,w),this.repositionCommittedBand(x,k,w)}preserveRowsBeforeFrameRender(t){let n=this.logUpdate?.topRow??0;if(!(this.anchorRow!==void 0&&this.anchorRow>1)){let a=this.hasCommitted&&n>1&&t<n,l=this.committedBand.length;if(!a||l===0)return;let c=Math.max(0,t-1),u=l-c;if(u<=0)return;let d="";for(let m=Math.max(1,this.committedBandTopRow);m<=this.committedBandBottomRow;m++)d+=`\x1B[${m};1H\x1B[2K`;for(let m=0;m<l;m++)d+=`\x1B[${1+m};1H\x1B[2K${this.committedBand[m]??""}`;try{this.stdout.write(d)}catch{}this.evictRowsToScrollback(u),this.committedBand=this.committedBand.slice(u),this.committedBandTopRow=1,this.committedBandBottomRow=c;return}let o=this.hasCommitted&&n>1?Math.max(0,n-t):0,s=t<this.anchorRow?this.anchorRow-t:0,i=Math.max(o,s);if(i>0&&(this.evictRowsToScrollback(i),this.anchorRow!==void 0&&this.anchorRow>1&&(this.anchorRow=Math.max(1,this.anchorRow-i)),this.committedBand.length>0)){this.committedBandTopRow-=i,this.committedBandBottomRow-=i;let a=Math.max(this.anchorRow??1,1);if(this.committedBandTopRow<a){let l=a-this.committedBandTopRow;this.committedBand=this.committedBand.slice(l),this.committedBandTopRow=a}(this.committedBand.length===0||this.committedBandBottomRow<a)&&this.clearCommittedBand()}}evictRowsToScrollback(t){if(t<=0)return;this.debugLog("evict:enter",{rows:t,anchorRow:this.anchorRow??null});let r=`\x1B[${Math.max(1,this.stdout.rows??24)};1H${`
1755
1755
  `.repeat(t)}`,o=()=>{try{this.stdout.write(r)}catch(s){this.debugLog("evict:error",{msg:s?.message??String(s)})}};this.scrollRegion!==void 0?this.scrollRegion.withFullScrollRegion(o):o()}repaintPickerFrame(){if(!this.logUpdate||!this.pickerController)return;let t=[...this.pickerController.renderRows()],n=this.overlay?this.overlay.split(`
1756
- `):[],r=this.spinnerController.renderSpinnerRow(),o=this.spinnerController.renderTipRow(this.stdout.columns??80),s=null;this.attachments.length>0?s=ui(this.attachments):this.clipboardFailureMsg!==null&&(s=p.dim(this.clipboardFailureMsg),this.clipboardFailureMsg=null);let i=!!r||!!o||!!s,a=i||n.length>0,l=this.scrollRegion?.getExtraRows()??0,c=Math.max(1,(this.stdout.rows??24)-1-l),u=a?1:0,d=(r?1:0)+(o?1:0)+(s?1:0)+u+t.length,m=Math.max(0,c-d),f=n.length>m?n.slice(-m):n,g=i||f.length>0,h=[];if(h.push(...f),r&&h.push(r),o&&h.push(o),s&&h.push(s),g&&h.push(""),h.push(...t),h.length===0)return;let b=Math.max(1,(this.stdout.rows??24)-1-l),y=h.length,w=Math.max(1,b-y+1);this.preserveRowsBeforeFrameRender(w);let S=this.logUpdate.topRow??0;this.logUpdate.render(h.join(`
1757
- `),b),this.repositionCommittedBand(w,S,b)}resetState(){this.overlay="",this.input=U.seed(""),this.queued=!1,this.canceled=!1,this.backgrounded=!1,this.softStopped=!1,this.activeGhost=null,this.anchorRow=void 0,this.hasCommitted=!1,this.clearCommittedBand(),this.commitInFlight=!1,this.pendingResizeErase=null,this.lastKnownRows=0,this.pickerController=null,this.inputMode="streaming",this.attachments=[],this.pasting=!1,this.pasteStartBufferLen=0,this.pasteStartCursor=0,this.pasteRegistry.clear(),this.clipboardFailureMsg=null,this.autocompleteState?.reset(),this.resizeUnsub&&(this.resizeUnsub(),this.resizeUnsub=null),this.resizeImmediateUnsub&&(this.resizeImmediateUnsub(),this.resizeImmediateUnsub=null)}applyEdit(t){return t===this.input?!1:(this.input=t,this.queued=!1,this.pasting||(this.updateAutocomplete(),this.updateGhost(),this.repaint()),!0)}applyDropdownSelection(){return tT(this)}applyGhostAccept(){return nT(this)}dispatchKey(t,n){gT(this,t,n)}};import wj from"chalk";var Sj=/(?<=\s|^)(\/[A-Za-z][\w:-]*)(?=\s|$)/g,kj=/(?<=\s|^)(@[~\w./-]*)(?=\s|$)/g,vj=/\[Pasted text #[0-9a-f]+ \+\d+ (?:lines|chars)\]/g,hT={mint:p.mint};function Tj(e){let t=hT[e];if(t)return t;let n=e.lastIndexOf(":");if(n>=0){let r=e.slice(n+1),o=hT[r];if(o)return o}return null}function Kn(e,t){return wj.level===0?e:e.replace(Sj,o=>{let s=o.slice(1);return t.has(s)?(Tj(s)??p.brand)(o):p.meta(o)}).replace(kj,o=>p.fileRef(o)).replace(vj,o=>p.meta(o))}K();var yT=/[\x00-\x1F\x7F-\x9F]/g;function Ke(e){return Ae(e).replace(yT," ").replace(/ {2,}/g," ").trim()}function um(e){return Ae(e).replace(yT," ")}function yi(e){let t=/[a-z][a-z0-9+.-]*:\/\/[^\s<>\"`]+/gi,n="",r=0;for(let o of e.matchAll(t)){let s=o[0]??"",i=o.index??r;n+=bT(e.slice(r,i)),n+=s,r=i+s.length}return n+=bT(e.slice(r)),n}function bT(e){return e.replace(/\/(?:[^/\s,)]+\/){2,}([^/\s,)]+)/g,"$1")}function xj(e){let t=/^(\s*[("]?\s*)cd\s+\S+\s+&&\s+(?!cd\s)(.+)$/.exec(e);return t?(t[1]??"")+(t[2]??""):e}var wT=60;function dm(e,t){let n=e.trim().replace(/^\((.*)\)$/s,"$1"),r;try{r=JSON.parse(n)}catch{return e}if(!r||typeof r!="object")return e;let o=r;for(let s of t){let i=o[s];if(typeof i=="string"&&i.length>0){let a=Ke(i);if(a.length===0)continue;return`(${a.length>wT?se(a,wT,"\u2026"):a})`}}return e}function ST(e,t){if(e==="bash"||e==="Bash")return xj(t);if(e==="compose"||e==="Compose"){let n=t.trim().replace(/^\((.*)\)$/s,"$1");try{let r=JSON.parse(n);if(r&&typeof r=="object"){let o=Array.isArray(r.nodes)?r.nodes.length:void 0,s=Array.isArray(r.edges)?r.edges.length:0;if(o!==void 0){let i=`${o} node${o===1?"":"s"}`,a=s>0?`, ${s} edge${s===1?"":"s"}`:"";return`(${i}${a})`}}}catch{}}return e==="agent"||e==="Agent"?dm(t,["id_prefix","prompt"]):e==="Task"?dm(t,["description","prompt"]):e==="skill"||e==="Skill"?dm(t,["name","arguments"]):e==="ask_question"?Ej(t):t}function Ej(e){let t=e.trim().replace(/^\((.*)\)$/s,"$1");try{let n=JSON.parse(t);if(!n||typeof n!="object")return e;let r=n,o=typeof r.type=="string"?r.type:"text";if(o==="choice"||o==="multi_choice"){let s=r.choices,i=Array.isArray(s)?s.length:0;return i>0?`(${o}: ${i} option${i===1?"":"s"})`:`(${o})`}return`(${o})`}catch{return e}}function Rj(e){return e.replace(/[\r\n]+/g," ")}var Aj={"(":")","{":"}","[":"]"};function kT(e,t,n="\u2026"){let r=e.charAt(0),o=Aj[r];return!(o&&e.endsWith(o)&&e.length>=2)||z(e)<=t?se(e,t,n):t<3?t>=2?r+o:se(e,t,n):se(e,t-1,n)+o}function fn(e,t){let n=/^([A-Za-z_][A-Za-z0-9_]*)(.*)$/s.exec(e);if(n){let r=n[1],o=yi(ST(r,n[2]??"")),s=On(r),{color:i,glyph:a}=Bo(r),l=qd(s),c=l?` [${l}]`:"";if(t!==void 0){let d=(a+" ").length+r.length+c.length,m=Math.max(1,t-d);o=kT(o,m)}o=Rj(o);let u=i(a+" ")+i.bold(r)+p.toolArg(o);return l?u+p.dim(c):u}return p.chrome("\u25CF ")+p.toolArg(e)}K();var vT=8,ec=30;function _j(){let e=T.AFK_DIFF_LINES;if(e===void 0)return ec;let t=e.trim();if(!/^\d+$/.test(t))return ec;let n=Number.parseInt(t,10);return Number.isFinite(n)?n:ec}function Cj(){let e=T.AFK_SHOW_DIFFS;if(e===void 0)return!1;let t=e.trim().toLowerCase();return t==="0"||t==="false"||t==="no"||t==="off"}function Ij(e){let t=p.diffAdd(`+${e.addedLines}`),n=p.diffRemove(`-${e.removedLines}`),r=e.hunks.length,o=p.dim(`across ${r} hunk${r===1?"":"s"}`);return`${t} ${n} ${o}`}var Pj=/[\x00-\x08\x0B-\x1F\x7F-\x9F]/g;function Mj(e){let t=Ae(e.text).replace(Pj,"");return e.kind==="+"?p.diffAdd("+ "+t):e.kind==="-"?p.diffRemove("- "+t):p.dim(" "+t)}var mm=new WeakMap;function gn(e,t,n){if(Cj())return[];if(e.hunks.length===0)return[];let r=t==="overlay"?vT:_j(),o=t+"|"+n+"|"+r,s=mm.get(e);if(s!==void 0){let f=s.get(o);if(f!==void 0)return f}let i=[];i.push(n+Ij(e));let a=[];for(let f of e.hunks){let g=`@@ -${f.oldStart},${f.oldLines} +${f.newStart},${f.newLines} @@`;a.push({kind:"header",text:p.diffHunk(g)});for(let h of f.lines)a.push({kind:"body",text:Mj(h)})}if(r===0){for(let f of a)i.push(n+f.text);return pm(e,o,i),i}let l=0;for(let f of a)f.kind==="body"&&l++;if(l<=r){for(let f of a)i.push(n+f.text);return pm(e,o,i),i}let c=0;for(let f of a)f.kind==="header"?i.push(n+f.text):c<r&&(i.push(n+f.text),c++);let u=l-r,d=`line${u===1?"":"s"}`,m=t==="flush"?" (set AFK_DIFF_LINES=0 to expand)":"";return i.push(n+p.dim(`\u2026 +${u} more diff ${d}${m}`)),pm(e,o,i),i}function pm(e,t,n){let r=mm.get(e);r===void 0&&(r=new Map,mm.set(e,r)),r.set(t,n)}var Oj=p.success("\u2713"),$j=p.error("\u2717");function Gn(e){return e?$j:Oj}var bi=3,TT=2,xT=3;function ET(e){switch(On(e)){case"read":return"Reading\u2026";case"write":return"Writing\u2026";case"web":return"Fetching\u2026";case"shell":return"Running\u2026";default:return"Running\u2026"}}function Dj(e,t){return e?e==="grep"||e==="Grep"?t===1?"match":"matches":e==="glob"||e==="Glob"?t===1?"path":"paths":t===1?"line":"lines":t===1?"line":"lines"}function hn(e,t,n=60,r){let o=e.isError?p.error:p.dim,s=t??T.HOME??"___NOHOME___";if(e.display!==void 0&&!e.isError)return o(e.display);if(e.persistedPath){let a=e.persistedPath.startsWith(s)?"~"+e.persistedPath.slice(s.length):e.persistedPath;return o(`saved \u2192 ${a}`)}if(e.lineCount!==void 0&&e.lineCount>1)return o(`${e.lineCount} ${Dj(r,e.lineCount)}`);let i=e.content.length>n?e.content.slice(0,n-3)+"\u2026":e.content;return o(Ke(i))}K();function wi(e,t){if(e.length<=t)return e;let n=e.slice(0,t),r=e.slice(t),o=AT(r);return[...n,{kind:"overflow",count:r.length,text:o}]}function Lj(e,t){return t<=1||e.endsWith("s")||/(sh|ch|x|z)$/i.test(e)?e:e+"s"}var Fj=5,RT=60;function AT(e){let t=new Map,n=0;for(let s of e)s.kind==="group"?(t.set(s.toolName,(t.get(s.toolName)??0)+s.entries.length),n+=s.entries.length):(t.set(s.toolName,(t.get(s.toolName)??0)+1),n+=1);if(n===0)return"";if(e.length>0&&e.every(s=>De.has(s.toolName))&&new Set(e.map(s=>s.toolName)).size===1){let s=[],i=!1;for(let a of e){let c=(a.kind==="group"?a.label:a.toolInput).trim();if(!c.startsWith("(")||!c.endsWith(")")){i=!0;break}let u=c.slice(1,-1),d=Ke(u);if(!d){i=!0;break}let m=d.length>RT?d.slice(0,RT-1)+"\u2026":d,f=a.kind==="group"?a.entries.length:1;s.push({display:m,entries:f})}if(!i&&s.length>0){let a=s.slice(0,Fj),l=a.map(({display:m,entries:f})=>f>1?`${m} \xD7${f}`:m),c=a.reduce((m,f)=>m+f.entries,0),u=n-c,d=l.join(", ")+(u>0?` (+${u})`:"");return`\u2026 +${n} more: ${d}`}}let o=[];for(let[s,i]of t)o.push(`${i} ${Lj(s,i)}`);return`\u2026 +${n} (${o.join(", ")})`}function tc(e,t=At()){return e.map((n,r)=>({sibling:n,connector:r===e.length-1?t.lastConnector:t.midConnector}))}function fm(e,t){return t?[...e,{kind:"resultSummary",summary:t}]:e}function gm(e){if(e.length===0)return[];let t=new Map;for(let o of e){let s=_T(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=_T(o),i=t.get(s);i.length>=Nj(o.toolName)?r.has(s)||(n.push({kind:"group",toolName:o.toolName,label:De.has(o.toolName)?o.toolInput:"",entries:i}),r.add(s)):n.push(o)}return n}function hm(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 fn(e.toolName+e.label)+p.dim(` \xD7${t} \u2014 ${s}`)}function _T(e){return De.has(e.toolName)?e.toolName+"::"+e.toolInput:e.toolName}function Nj(e){return De.has(e)?TT:xT}function CT(e,t,n,r){return e>0||t?Qo([...n,!0],r):Qo(n,r)}function IT(e,t){return!De.has(e.toolName)||e.headerEmitted!==!0?!1:(t.get(e.toolUseId)??[]).every(r=>r.kind==="tool"&&IT(r,t))}function nc(e,t,n,r=X(),o=[],s=At(),i){let a=Qo(o,s),l=Si(a,s),c=e.filter(h=>h.kind==="text"),u=e.filter(h=>h.kind==="tool").filter(h=>!IT(h,t)),d=gm(u),m=wi(d,bi),f=tc(m,s);for(let{sibling:h,connector:b}of f){let y=p.dim(b),w=b===s.lastConnector;if(h.kind==="overflow")n.push(ke(l+y+p.dim(h.text),r));else if(h.kind==="group")n.push(ke(l+y+hm(h),r));else if(h.kind==="resultSummary")n.push(ke(l+y+p.dim(h.summary),r));else{let S=h,x=t.get(S.toolUseId);if(De.has(S.toolName)&&x&&x.length>0){S.headerEmitted?n.push(ke(l+y,r)):n.push(ke(l+y+S.prefix,r));let k=i??w;if(nc(x,t,n,r,[...o,k],s,w),S.thinkingTail){let E=Si(Qo([...o,k],s),s);n.push(ke(E+p.thinking("\u2307 "+Ke(S.thinkingTail)),r))}}else if(!(De.has(S.toolName)&&S.headerEmitted))if(S.result){if(n.push(ke(l+y+S.prefix+p.dim(" \u2014 ")+Gn(S.result.isError)+" "+hn(S.result,void 0,60,S.toolName),r)),S.diff&&!S.result.isError){let k=l+(w?s.spineClosed:p.dim(s.spine))+" ";for(let E of gn(S.diff,"overlay",k))n.push(ke(E,r))}}else{n.push(ke(l+y+S.prefix,r));let k=l+(w?s.spineClosed:p.dim(s.spine))+" ";S.thinkingTail?n.push(ke(k+p.thinking("\u2307 "+Ke(S.thinkingTail)),r)):n.push(ke(k+p.dim(ET(S.toolName)),r))}}}let g=CT(u.length,!1,o,s);for(let h of c)for(let b of ym(h.text,g,s))n.push(ke(b,r))}function ki(e,t,n,r,o=X(),s=[],i=At(),a){let l=Qo(s,i),c=Si(l,i),u=[],d=e.filter(w=>w.kind==="text"),m=e.filter(w=>w.kind==="tool"),f=gm(m),g=wi(f,bi),h=fm(g,r),b=tc(h,i);for(let{sibling:w,connector:S}of b){let x=p.dim(S),k=S===i.lastConnector;if(w.kind==="overflow")u.push(ke(c+x+p.dim(w.text),o));else if(w.kind==="resultSummary")u.push(ke(c+x+p.dim(w.summary),o));else if(w.kind==="group")u.push(ke(c+x+hm(w),o));else{let E=w,R=t.get(E.toolUseId);if(De.has(E.toolName)&&R&&R.length>0){if(E.headerEmitted){let P=E.toolInput?`${E.toolName} ${Ke(E.toolInput)}`:E.toolName;u.push(ke(c+x+p.dim("\u21B3 "+P),o))}else u.push(ke(c+x+E.prefix,o));let A=a??k;u.push(...ki(R,t,n,void 0,o,[...s,A],i,k))}else if(E.result){if(u.push(ke(c+x+E.prefix+p.dim(" \u2014 ")+Gn(E.result.isError)+" "+hn(E.result,n,60,E.toolName),o)),E.diff&&!E.result.isError){let A=c+(k?i.spineClosed:p.dim(i.spine))+" ";for(let P of gn(E.diff,"flush",A))u.push(ke(P,o))}}else u.push(ke(c+x+E.prefix,o))}}let y=CT(m.length,r!=null,s,i);for(let w of d)for(let S of ym(w.text,y,i))u.push(ke(S,o));return u}function vi(e,t,n,r,o=[]){let s=At(),i=t.filter(h=>h.kind==="tool"),l=i.filter(h=>h.result).reduce((h,b)=>h+(b.result.lineCount??0),0),c=[];i.length>bi&&(c.push(`${i.length} tools`),l>0&&c.push(`${l} lines`));let u=p.dim(s.spine.repeat(o.length)),d=o,m=p.dim(s.turnRoot),f=c.length>0?u+m+e.prefix+p.dim(" \u2014 "+c.join(" \xB7 ")):u+m+e.prefix,g=ki(t,n,r,e.agentResultSummary,X(),d,s);return[f,...g].join(`
1756
+ `):[],r=this.spinnerController.renderSpinnerRow(),o=this.spinnerController.renderTipRow(this.stdout.columns??80),s=null;this.attachments.length>0?s=ui(this.attachments):this.clipboardFailureMsg!==null&&(s=p.dim(this.clipboardFailureMsg),this.clipboardFailureMsg=null);let i=!!r||!!o||!!s,a=i||n.length>0,l=this.scrollRegion?.getExtraRows()??0,c=Math.max(1,(this.stdout.rows??24)-1-l),u=a?1:0,d=(r?1:0)+(o?1:0)+(s?1:0)+u+t.length,m=Math.max(0,c-d),f=n.length>m?n.slice(-m):n,g=i||f.length>0,h=[];if(h.push(...f),r&&h.push(r),o&&h.push(o),s&&h.push(s),g&&h.push(""),h.push(...t),h.length===0)return;let b=Math.max(1,(this.stdout.rows??24)-1-l),y=h.join(`
1757
+ `),w=this.logUpdate.measure?this.logUpdate.measure(y,b).topRow:Math.max(1,b-h.length+1);this.preserveRowsBeforeFrameRender(w);let S=this.logUpdate.topRow??0;this.logUpdate.render(y,b),this.repositionCommittedBand(w,S,b)}resetState(){this.overlay="",this.input=U.seed(""),this.queued=!1,this.canceled=!1,this.backgrounded=!1,this.softStopped=!1,this.activeGhost=null,this.anchorRow=void 0,this.hasCommitted=!1,this.clearCommittedBand(),this.commitInFlight=!1,this.pendingResizeErase=null,this.lastKnownRows=0,this.pickerController=null,this.inputMode="streaming",this.attachments=[],this.pasting=!1,this.pasteStartBufferLen=0,this.pasteStartCursor=0,this.pasteRegistry.clear(),this.clipboardFailureMsg=null,this.autocompleteState?.reset(),this.resizeUnsub&&(this.resizeUnsub(),this.resizeUnsub=null),this.resizeImmediateUnsub&&(this.resizeImmediateUnsub(),this.resizeImmediateUnsub=null)}applyEdit(t){return t===this.input?!1:(this.input=t,this.queued=!1,this.pasting||(this.updateAutocomplete(),this.updateGhost(),this.repaint()),!0)}applyDropdownSelection(){return tT(this)}applyGhostAccept(){return nT(this)}dispatchKey(t,n){gT(this,t,n)}};import wj from"chalk";var Sj=/(?<=\s|^)(\/[A-Za-z][\w:-]*)(?=\s|$)/g,kj=/(?<=\s|^)(@[~\w./-]*)(?=\s|$)/g,vj=/\[Pasted text #[0-9a-f]+ \+\d+ (?:lines|chars)\]/g,hT={mint:p.mint};function Tj(e){let t=hT[e];if(t)return t;let n=e.lastIndexOf(":");if(n>=0){let r=e.slice(n+1),o=hT[r];if(o)return o}return null}function Kn(e,t){return wj.level===0?e:e.replace(Sj,o=>{let s=o.slice(1);return t.has(s)?(Tj(s)??p.brand)(o):p.meta(o)}).replace(kj,o=>p.fileRef(o)).replace(vj,o=>p.meta(o))}K();var yT=/[\x00-\x1F\x7F-\x9F]/g;function Ke(e){return Ae(e).replace(yT," ").replace(/ {2,}/g," ").trim()}function um(e){return Ae(e).replace(yT," ")}function yi(e){let t=/[a-z][a-z0-9+.-]*:\/\/[^\s<>\"`]+/gi,n="",r=0;for(let o of e.matchAll(t)){let s=o[0]??"",i=o.index??r;n+=bT(e.slice(r,i)),n+=s,r=i+s.length}return n+=bT(e.slice(r)),n}function bT(e){return e.replace(/\/(?:[^/\s,)]+\/){2,}([^/\s,)]+)/g,"$1")}function xj(e){let t=/^(\s*[("]?\s*)cd\s+\S+\s+&&\s+(?!cd\s)(.+)$/.exec(e);return t?(t[1]??"")+(t[2]??""):e}var wT=60;function dm(e,t){let n=e.trim().replace(/^\((.*)\)$/s,"$1"),r;try{r=JSON.parse(n)}catch{return e}if(!r||typeof r!="object")return e;let o=r;for(let s of t){let i=o[s];if(typeof i=="string"&&i.length>0){let a=Ke(i);if(a.length===0)continue;return`(${a.length>wT?se(a,wT,"\u2026"):a})`}}return e}function ST(e,t){if(e==="bash"||e==="Bash")return xj(t);if(e==="compose"||e==="Compose"){let n=t.trim().replace(/^\((.*)\)$/s,"$1");try{let r=JSON.parse(n);if(r&&typeof r=="object"){let o=Array.isArray(r.nodes)?r.nodes.length:void 0,s=Array.isArray(r.edges)?r.edges.length:0;if(o!==void 0){let i=`${o} node${o===1?"":"s"}`,a=s>0?`, ${s} edge${s===1?"":"s"}`:"";return`(${i}${a})`}}}catch{}}return e==="agent"||e==="Agent"?dm(t,["id_prefix","prompt"]):e==="Task"?dm(t,["description","prompt"]):e==="skill"||e==="Skill"?dm(t,["name","arguments"]):e==="ask_question"?Ej(t):t}function Ej(e){let t=e.trim().replace(/^\((.*)\)$/s,"$1");try{let n=JSON.parse(t);if(!n||typeof n!="object")return e;let r=n,o=typeof r.type=="string"?r.type:"text";if(o==="choice"||o==="multi_choice"){let s=r.choices,i=Array.isArray(s)?s.length:0;return i>0?`(${o}: ${i} option${i===1?"":"s"})`:`(${o})`}return`(${o})`}catch{return e}}function Rj(e){return e.replace(/[\r\n]+/g," ")}var Aj={"(":")","{":"}","[":"]"};function kT(e,t,n="\u2026"){let r=e.charAt(0),o=Aj[r];return!(o&&e.endsWith(o)&&e.length>=2)||z(e)<=t?se(e,t,n):t<3?t>=2?r+o:se(e,t,n):se(e,t-1,n)+o}function fn(e,t){let n=/^([A-Za-z_][A-Za-z0-9_]*)(.*)$/s.exec(e);if(n){let r=n[1],o=yi(ST(r,n[2]??"")),s=On(r),{color:i,glyph:a}=Bo(r),l=qd(s),c=l?` [${l}]`:"";if(t!==void 0){let d=(a+" ").length+r.length+c.length,m=Math.max(1,t-d);o=kT(o,m)}o=Rj(o);let u=i(a+" ")+i.bold(r)+p.toolArg(o);return l?u+p.dim(c):u}return p.chrome("\u25CF ")+p.toolArg(e)}K();var vT=8,ec=30;function _j(){let e=T.AFK_DIFF_LINES;if(e===void 0)return ec;let t=e.trim();if(!/^\d+$/.test(t))return ec;let n=Number.parseInt(t,10);return Number.isFinite(n)?n:ec}function Cj(){let e=T.AFK_SHOW_DIFFS;if(e===void 0)return!1;let t=e.trim().toLowerCase();return t==="0"||t==="false"||t==="no"||t==="off"}function Ij(e){let t=p.diffAdd(`+${e.addedLines}`),n=p.diffRemove(`-${e.removedLines}`),r=e.hunks.length,o=p.dim(`across ${r} hunk${r===1?"":"s"}`);return`${t} ${n} ${o}`}var Pj=/[\x00-\x08\x0B-\x1F\x7F-\x9F]/g;function Mj(e){let t=Ae(e.text).replace(Pj,"");return e.kind==="+"?p.diffAdd("+ "+t):e.kind==="-"?p.diffRemove("- "+t):p.dim(" "+t)}var mm=new WeakMap;function gn(e,t,n){if(Cj())return[];if(e.hunks.length===0)return[];let r=t==="overlay"?vT:_j(),o=t+"|"+n+"|"+r,s=mm.get(e);if(s!==void 0){let f=s.get(o);if(f!==void 0)return f}let i=[];i.push(n+Ij(e));let a=[];for(let f of e.hunks){let g=`@@ -${f.oldStart},${f.oldLines} +${f.newStart},${f.newLines} @@`;a.push({kind:"header",text:p.diffHunk(g)});for(let h of f.lines)a.push({kind:"body",text:Mj(h)})}if(r===0){for(let f of a)i.push(n+f.text);return pm(e,o,i),i}let l=0;for(let f of a)f.kind==="body"&&l++;if(l<=r){for(let f of a)i.push(n+f.text);return pm(e,o,i),i}let c=0;for(let f of a)f.kind==="header"?i.push(n+f.text):c<r&&(i.push(n+f.text),c++);let u=l-r,d=`line${u===1?"":"s"}`,m=t==="flush"?" (set AFK_DIFF_LINES=0 to expand)":"";return i.push(n+p.dim(`\u2026 +${u} more diff ${d}${m}`)),pm(e,o,i),i}function pm(e,t,n){let r=mm.get(e);r===void 0&&(r=new Map,mm.set(e,r)),r.set(t,n)}var Oj=p.success("\u2713"),$j=p.error("\u2717");function Gn(e){return e?$j:Oj}var bi=3,TT=2,xT=3;function ET(e){switch(On(e)){case"read":return"Reading\u2026";case"write":return"Writing\u2026";case"web":return"Fetching\u2026";case"shell":return"Running\u2026";default:return"Running\u2026"}}function Dj(e,t){return e?e==="grep"||e==="Grep"?t===1?"match":"matches":e==="glob"||e==="Glob"?t===1?"path":"paths":t===1?"line":"lines":t===1?"line":"lines"}function hn(e,t,n=60,r){let o=e.isError?p.error:p.dim,s=t??T.HOME??"___NOHOME___";if(e.display!==void 0&&!e.isError)return o(e.display);if(e.persistedPath){let a=e.persistedPath.startsWith(s)?"~"+e.persistedPath.slice(s.length):e.persistedPath;return o(`saved \u2192 ${a}`)}if(e.lineCount!==void 0&&e.lineCount>1)return o(`${e.lineCount} ${Dj(r,e.lineCount)}`);let i=e.content.length>n?e.content.slice(0,n-3)+"\u2026":e.content;return o(Ke(i))}K();function wi(e,t){if(e.length<=t)return e;let n=e.slice(0,t),r=e.slice(t),o=AT(r);return[...n,{kind:"overflow",count:r.length,text:o}]}function Lj(e,t){return t<=1||e.endsWith("s")||/(sh|ch|x|z)$/i.test(e)?e:e+"s"}var Fj=5,RT=60;function AT(e){let t=new Map,n=0;for(let s of e)s.kind==="group"?(t.set(s.toolName,(t.get(s.toolName)??0)+s.entries.length),n+=s.entries.length):(t.set(s.toolName,(t.get(s.toolName)??0)+1),n+=1);if(n===0)return"";if(e.length>0&&e.every(s=>De.has(s.toolName))&&new Set(e.map(s=>s.toolName)).size===1){let s=[],i=!1;for(let a of e){let c=(a.kind==="group"?a.label:a.toolInput).trim();if(!c.startsWith("(")||!c.endsWith(")")){i=!0;break}let u=c.slice(1,-1),d=Ke(u);if(!d){i=!0;break}let m=d.length>RT?d.slice(0,RT-1)+"\u2026":d,f=a.kind==="group"?a.entries.length:1;s.push({display:m,entries:f})}if(!i&&s.length>0){let a=s.slice(0,Fj),l=a.map(({display:m,entries:f})=>f>1?`${m} \xD7${f}`:m),c=a.reduce((m,f)=>m+f.entries,0),u=n-c,d=l.join(", ")+(u>0?` (+${u})`:"");return`\u2026 +${n} more: ${d}`}}let o=[];for(let[s,i]of t)o.push(`${i} ${Lj(s,i)}`);return`\u2026 +${n} (${o.join(", ")})`}function tc(e,t=At()){return e.map((n,r)=>({sibling:n,connector:r===e.length-1?t.lastConnector:t.midConnector}))}function fm(e,t){return t?[...e,{kind:"resultSummary",summary:t}]:e}function gm(e){if(e.length===0)return[];let t=new Map;for(let o of e){let s=_T(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=_T(o),i=t.get(s);i.length>=Nj(o.toolName)?r.has(s)||(n.push({kind:"group",toolName:o.toolName,label:De.has(o.toolName)?o.toolInput:"",entries:i}),r.add(s)):n.push(o)}return n}function hm(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 fn(e.toolName+e.label)+p.dim(` \xD7${t} \u2014 ${s}`)}function _T(e){return De.has(e.toolName)?e.toolName+"::"+e.toolInput:e.toolName}function Nj(e){return De.has(e)?TT:xT}function CT(e,t,n,r){return e>0||t?Qo([...n,!0],r):Qo(n,r)}function IT(e,t){return!De.has(e.toolName)||e.headerEmitted!==!0?!1:(t.get(e.toolUseId)??[]).every(r=>r.kind==="tool"&&IT(r,t))}function nc(e,t,n,r=X(),o=[],s=At(),i){let a=Qo(o,s),l=Si(a,s),c=e.filter(h=>h.kind==="text"),u=e.filter(h=>h.kind==="tool").filter(h=>!IT(h,t)),d=gm(u),m=wi(d,bi),f=tc(m,s);for(let{sibling:h,connector:b}of f){let y=p.dim(b),w=b===s.lastConnector;if(h.kind==="overflow")n.push(ke(l+y+p.dim(h.text),r));else if(h.kind==="group")n.push(ke(l+y+hm(h),r));else if(h.kind==="resultSummary")n.push(ke(l+y+p.dim(h.summary),r));else{let S=h,x=t.get(S.toolUseId);if(De.has(S.toolName)&&x&&x.length>0){S.headerEmitted?n.push(ke(l+y,r)):n.push(ke(l+y+S.prefix,r));let k=i??w;if(nc(x,t,n,r,[...o,k],s,w),S.thinkingTail){let E=Si(Qo([...o,k],s),s);n.push(ke(E+p.thinking("\u2307 "+Ke(S.thinkingTail)),r))}}else if(!(De.has(S.toolName)&&S.headerEmitted))if(S.result){if(n.push(ke(l+y+S.prefix+p.dim(" \u2014 ")+Gn(S.result.isError)+" "+hn(S.result,void 0,60,S.toolName),r)),S.diff&&!S.result.isError){let k=l+(w?s.spineClosed:p.dim(s.spine))+" ";for(let E of gn(S.diff,"overlay",k))n.push(ke(E,r))}}else{n.push(ke(l+y+S.prefix,r));let k=l+(w?s.spineClosed:p.dim(s.spine))+" ";S.thinkingTail?n.push(ke(k+p.thinking("\u2307 "+Ke(S.thinkingTail)),r)):n.push(ke(k+p.dim(ET(S.toolName)),r))}}}let g=CT(u.length,!1,o,s);for(let h of c)for(let b of ym(h.text,g,s))n.push(ke(b,r))}function ki(e,t,n,r,o=X(),s=[],i=At(),a){let l=Qo(s,i),c=Si(l,i),u=[],d=e.filter(w=>w.kind==="text"),m=e.filter(w=>w.kind==="tool"),f=gm(m),g=wi(f,bi),h=fm(g,r),b=tc(h,i);for(let{sibling:w,connector:S}of b){let x=p.dim(S),k=S===i.lastConnector;if(w.kind==="overflow")u.push(ke(c+x+p.dim(w.text),o));else if(w.kind==="resultSummary")u.push(ke(c+x+p.dim(w.summary),o));else if(w.kind==="group")u.push(ke(c+x+hm(w),o));else{let E=w,R=t.get(E.toolUseId);if(De.has(E.toolName)&&R&&R.length>0){if(E.headerEmitted){let P=E.toolInput?`${E.toolName} ${Ke(E.toolInput)}`:E.toolName;u.push(ke(c+x+p.dim("\u21B3 "+P),o))}else u.push(ke(c+x+E.prefix,o));let A=a??k;u.push(...ki(R,t,n,void 0,o,[...s,A],i,k))}else if(E.result){if(u.push(ke(c+x+E.prefix+p.dim(" \u2014 ")+Gn(E.result.isError)+" "+hn(E.result,n,60,E.toolName),o)),E.diff&&!E.result.isError){let A=c+(k?i.spineClosed:p.dim(i.spine))+" ";for(let P of gn(E.diff,"flush",A))u.push(ke(P,o))}}else u.push(ke(c+x+E.prefix,o))}}let y=CT(m.length,r!=null,s,i);for(let w of d)for(let S of ym(w.text,y,i))u.push(ke(S,o));return u}function vi(e,t,n,r,o=[]){let s=At(),i=t.filter(h=>h.kind==="tool"),l=i.filter(h=>h.result).reduce((h,b)=>h+(b.result.lineCount??0),0),c=[];i.length>bi&&(c.push(`${i.length} tools`),l>0&&c.push(`${l} lines`));let u=p.dim(s.spine.repeat(o.length)),d=o,m=p.dim(s.turnRoot),f=c.length>0?u+m+e.prefix+p.dim(" \u2014 "+c.join(" \xB7 ")):u+m+e.prefix,g=ki(t,n,r,e.agentResultSummary,X(),d,s);return[f,...g].join(`
1758
1758
  `)}function bm(e,t=[]){let n=At(),r=p.dim(n.spine.repeat(t.length)),o=p.dim(n.turnRoot);return r+o+e.prefix}function Ti(e,t,n,r,o=[]){let s=At(),i=o;return ki(t,n,r,e.agentResultSummary,X(),i,s)}function es(e,t,n){let r=[],o=X();for(let s of t){let i=e.get(s);if(i.length===1){let a=i[0];if(a.result){if(r.push(" "+a.prefix+p.dim(" \u2014 ")+Gn(a.result.isError)+" "+hn(a.result,n,60,a.toolName)),a.diff&&!a.result.isError)for(let l of gn(a.diff,"flush"," "))r.push(ke(l,o))}else r.push(" "+a.prefix)}else{r.push(PT(s,i,n));let a=i.filter(c=>c.diff&&c.result&&!c.result.isError),l=a.length>1;for(let c of a){if(l){let u=Ke(yi(c.toolInput).trim()||c.toolInput.trim());r.push(" "+p.dim(`\u2500\u2500 ${u} \u2500\u2500`))}for(let u of gn(c.diff,"flush"," "))r.push(ke(u,o))}}}return r}function PT(e,t,n){let{color:r,glyph:o}=Bo(e),s=t.map(u=>Ke(yi(u.toolInput).trim())),i=r(o+" ")+r.bold(e)+p.dim(` \xD7${t.length}`)+" "+p.toolArg(s.join(", ")),a=t.filter(u=>u.result),l=a.filter(u=>u.result.isError);if(l.length>0){let u=a.length-l.length,m=a.filter(g=>!g.result.isError).map(g=>g.result.lineCount).filter(g=>g!==void 0).reduce((g,h)=>g+h,0),f=[];return m>0&&f.push(`${m} lines`),u>0&&f.push(`${u} ok`),f.push(p.error(`${l.length} error${l.length>1?"s":""}`))," "+i+p.dim(" \u2014 ")+f.join(p.dim(", "))}let c=a.map(u=>u.result?.lineCount).filter(u=>u!==void 0);if(c.length===a.length&&c.length>0){if(c.every(m=>m===c[0]))return" "+i+p.dim(` \u2014 ${c[0]} lines each`);let d=c.reduce((m,f)=>m+f,0);return" "+i+p.dim(` \u2014 ${d} lines total`)}if(a.length>0){let u=a.map(d=>hn(d.result,n,60,d.toolName));return" "+i+p.dim(" \u2014 ")+u.join(p.dim(", "))}return" "+i}function ke(e,t){return se(e,t)}var wm=Object.freeze({spine:"\u2502 ",spineClosed:" ",lead:" ",turnRoot:"\u25C9 ",midConnector:"\u251C\u2500 ",lastConnector:"\u2570\u2500 ",textPrefix:"\u2502 "}),Bj=Object.freeze({spine:"| ",spineClosed:" ",lead:" ",turnRoot:"o ",midConnector:"+- ",lastConnector:"\\- ",textPrefix:"| "}),Kue=wm.midConnector,Gue=wm.lastConnector;function At(){let e=T.AGENT_AFK_ASCII;return e&&/^(1|true|yes)$/i.test(e)?Bj:wm}function Qo(e,t){let n="";for(let r of e)n+=r?t.spineClosed:t.spine;return n+=t.spine,n}function Si(e,t){let n="";for(let r=0;r<e.length;r+=2){let o=e.slice(r,r+2);n+=o===t.spine?p.dim(o):o}return n}function ym(e,t,n){if(!e||!e.trim())return[];let r=p.dim(n.textPrefix),o=Math.max(1,X()-t.length-2-2),s=Si(t,n),i=[];for(let a of e.split(`
1759
1759
  `)){let l=um(a),c=le(l,o);for(let u of c.split(`
1760
1760
  `))i.push(s+r+u)}return i}var MT=6,xi=class{entries=new Map;order=[];agentIdStack=[];addStart(t,n,r){let o=Ae(r),s=fn(n+o),i=this.agentIdStack.at(-1)??void 0,a={kind:"tool",toolUseId:t,toolName:n,toolInput:o,prefix:s,...i!==void 0?{agentContext:i}:{}};this.entries.set(t,a),this.order.push(t),bo.has(n)&&this.agentIdStack.push(t)}addStartWithAgentContext(t,n,r,o,s){let i=Ae(r),a=this.entries.get(t);if(a?.kind==="tool"){a.toolInput=i,a.prefix=fn(n+i,s),o!==void 0&&(a.agentContext=o);return}let l=fn(n+i,s),c={kind:"tool",toolUseId:t,toolName:n,toolInput:i,prefix:l,...o!==void 0?{agentContext:o}:{}};this.entries.set(t,c),this.order.push(t)}mergeAgentLabel(t,n,r){let o=this.entries.get(t);if(o?.kind!=="tool"||!bo.has(o.toolName)||o.toolName==="Agent")return!1;let i=`(${Ae(n)})`;return o.toolName="Agent",o.toolInput=i,o.prefix=fn("Agent"+i,r),!0}setAgentContext(t,n){let r=this.entries.get(t);r?.kind==="tool"&&(n===void 0?delete r.agentContext:r.agentContext=n)}setAgentResultSummary(t,n){let r=this.entries.get(t);r?.kind==="tool"&&(r.agentResultSummary=n)}setThinkingTail(t,n){let r=this.entries.get(t);r?.kind==="tool"&&(n===void 0?delete r.thinkingTail:r.thinkingTail=n)}addResult(t,n){let r=this.entries.get(t);r?.kind==="tool"&&(r.result=n),this.agentIdStack.at(-1)===t&&this.agentIdStack.pop()}addDiff(t,n){let r=this.entries.get(t);r?.kind==="tool"&&(r.diff=n)}upsertTextChild(t,n,r){let o=this.entries.get(t);if(o?.kind==="text"){o.text=r,o.agentContext=n;return}let s={kind:"text",toolUseId:t,text:r,agentContext:n};this.entries.set(t,s),this.order.push(t)}removeTextChildrenUnder(t){let n=[];for(let[r,o]of this.entries)o.kind==="text"&&o.agentContext===t&&n.push(r);for(let r of n)this.entries.delete(r);if(n.length>0){let r=new Set(n);this.order=this.order.filter(o=>!r.has(o))}}hasPending(){return this.entries.size>0}hasEntry(t){return this.entries.get(t)?.kind==="tool"}getOverlay(){let t=this.buildChildMap(),n=[],r=At(),o=X(),s=d=>se(d,o),i=[];for(let d of this.order){let m=this.entries.get(d);!m||m.kind!=="tool"||m.agentContext||i.push(m)}let a=i,l=0;if(i.length>MT){let d=i.filter(h=>!h.result),m=i.filter(h=>h.result),f=Math.max(0,MT-d.length),g=new Set(m.slice(-f));l=m.length-g.size,a=i.filter(h=>!h.result||g.has(h))}let u=a.some(d=>De.has(d.toolName))?p.dim(r.turnRoot):" ";for(let d of a){let m=t.get(d.toolUseId);if(De.has(d.toolName)&&m&&m.length>0)d.headerEmitted?n.push(s(p.dim(r.turnRoot))):n.push(s(p.dim(r.turnRoot)+d.prefix)),nc(m,t,n,o,void 0,r),d.thinkingTail&&n.push(s(p.dim(r.spine)+p.thinking("\u2307 "+Ke(d.thinkingTail))));else if(!(De.has(d.toolName)&&d.headerEmitted))if(De.has(d.toolName))d.result?n.push(s(p.dim(r.turnRoot)+d.prefix+p.dim(" \u2014 ")+Gn(d.result.isError)+" "+hn(d.result,void 0,60,d.toolName))):n.push(s(p.dim(r.turnRoot)+d.prefix+p.dim(" \u2026"))),d.thinkingTail&&n.push(s(p.dim(r.spine)+p.thinking("\u2307 "+Ke(d.thinkingTail))));else if(d.result){if(n.push(s(u+d.prefix+p.dim(" \u2014 ")+Gn(d.result.isError)+" "+hn(d.result,void 0,60,d.toolName))),d.diff&&!d.result.isError)for(let f of gn(d.diff,"overlay"," "))n.push(s(f))}else n.push(s(u+d.prefix+p.dim(" \u2026"))),d.thinkingTail&&n.push(s(p.dim(r.spine)+p.thinking("\u2307 "+Ke(d.thinkingTail))))}return l>0&&n.push(s(" "+p.dim(`\u2026 +${l} done`))),n.join(`
@@ -1905,7 +1905,7 @@ ${x}`})}return{fileBlocks:a,warnings:l}}async function tR(e,t,n,r,o="summary",s,
1905
1905
  `))!==-1;){let u=n.slice(0,c);n=n.slice(c+1),this.opts.writeLine(u)}},s={command:t,mode:"foreground",onChunk:c=>{r||(n+=c.toString("utf8"),o())}},i=this.opts.getCwd();i!==void 0&&(s.cwd=i);let{job:a,handle:l}=this.registry.start(s);this.activeFgJobId=a.id;try{let c=await l.promise;r=!0,n.length>0&&(this.opts.writeLine(n),n=""),this.opts.writeLine(SG(a,c)),this.queueInjection({command:t,mode:"foreground",result:c})}finally{this.activeFgJobId=null}}startBackground(t){let n={command:t,mode:"background"},r=this.opts.getCwd();r!==void 0&&(n.cwd=r);let{job:o}=this.registry.start(n);this.opts.writeLine(p.dim(` [${o.id}] background: `)+t)}queueInjection(t){this.pendingInjections.push(t),this.pendingInjections.length>e.MAX_PENDING_INJECTIONS&&this.pendingInjections.shift()}};function vG(e,t){if(e!==void 0){let n=e.toLowerCase();return!(n==="0"||n==="false"||n==="off"||n==="no")}return typeof t=="boolean"?t:!0}async function TG(e,t){if(e.firstTurnHook&&e.stats.totalTurns===0){let n=e.firstTurnHook;e.firstTurnHook=void 0;try{await n(t)}catch(r){e.completionWriter.fn(p.warning("\u26A0 ")+"first-turn hook failed: "+(r instanceof Error?r.message:String(r)))}}}function Vc(e,t){let n=p.brand("afk")+p.dim(` (${e})`),r=t?p.warning(" \u25CF plan"):"";return n+r+p.dim(" \u203A ")}async function cR(e,t,n,r){let o=null,s=[];e.session.current.waitForInitialization().then(async S=>{je()&&(o=_l(S)),await vc(e.session.current),je()&&(s=Qx())}).catch(()=>{});let i=await WE(),a=new qc({rl:e.rl,history:i,statusLine:e.statusLine}),l,c,u,d,m,f,g,h=!1,b=!1,y=Qv({onError:S=>J("[afk suggest] Tier-2 completion failed:",S)}),w=vG(T.AFK_SUGGEST_GHOST,e.suggestGhostConfig);try{await a.armCompositor({promptFn:()=>Vc(e.stats.model,e.stats.planMode),onCancel:r,onShiftTab:()=>{let _=e.slashCtx;_.stats.planMode&&_.stats.pendingPlanExit?(_.stats.pendingPlanExit=!1,Rt(_,!1,{closureSummarySkipped:!0}).catch(()=>{})):Rt(_).catch(()=>{}),e.statusLine.rearm()},scrollRegion:e.statusLine,...e.preArmAnchorRow!==void 0?{anchorRow:e.preArmAnchorRow}:{},...w?{suggest:{engine:y,getContext:()=>({model:e.stats.model,apiKey:e.suggestApiKey,baseUrl:e.suggestBaseUrl,cwd:e.stats.cwd??process.cwd(),getHistory:()=>{let _=a.history;return _.getEntries?[..._.getEntries()]:[]},getDropdownTopCandidate:_=>{let L=a.autocompleteState.candidates[0];return L&&L.value.startsWith(_)&&L.value.length>_.length?L.value:null},getTranscriptTail:()=>"",getRecentCommands:()=>[],llmEnabled:()=>/^(1|true|yes|on)$/i.test(T.AFK_SUGGEST_ENABLED??"")})}}:{}});let S=a.getCompositor();Nt.install(xl({readLine:_=>a.readLine({promptFn:()=>_}).then(I=>I.text),writer:{line:(_="")=>{let I=a.getCompositor();I?I.commitAbove(_):process.stdout.write(_+`
1906
1906
  `)}},pendingCount:()=>Nt.pendingCount(),...S?{pickFromList:_=>JE(S,_),readTextOverlay:_=>YE(S,_)}:{}})),e.replRenderer.setCompositor(a.getCompositor()),e.slashCtx.getCompositor=()=>a.getCompositor();let x=a.getCompositor();if(x){let _=I=>x.commitAbove(I);e.completionWriter.fn=_,e.completionWriter.idleFn=_}e.slashCtx.setSoftStopHandler=_=>a.setSoftStopHandler(_),e.inputSurfaceRef&&(e.inputSurfaceRef.current=a),c=nR(),g=rR(),e.clearVerdictLedger=()=>g?.reset(),u=new Dl,mv(u),vv(u),Ev(u),Tv(e.backgroundRegistry);let k=0,E=0,R=1,A=()=>e.statusLine.setExtraRows(R+k+E);g.setRowCountChangeHandler(_=>{E=_,A(),d?.redraw(),m?.redraw()}),d=new Jc(u,e.backgroundRegistry,{getAdjacentRows:()=>E}),d.setRowCountChangeHandler(_=>{k=_,A()}),m=new oc({getExtraRows:()=>e.statusLine.getExtraRows()}),m.setRowCountChangeHandler(_=>{A()}),e.statusLine.setAfterScrollRestore(()=>{g?.repaint(),d?.redraw(),m?.redraw()}),d.start(),m.start(),g.start({stream:process.stdout});let P=50,F=[];for(u.on("complete",_=>{F.length>=P&&F.shift(),F.push(_)}),f=new Yc({writeLine:_=>e.replRenderer.writeLine(_),getCwd:()=>e.stats.cwd}),Sv(f),n.tryAbortShellForeground=()=>f.abortActiveForeground();;){if(o&&(e.replRenderer.writeLine(o),e.replRenderer.writeLine(""),o=null),s.length>0){for(let O of s)e.replRenderer.writeLine(O);e.replRenderer.writeLine(""),s=[]}for(;F.length>0;){let O=F.shift(),M=O.status==="succeeded"?"\u2713":"\u2717",C=[];if(O.resultText){let q=O.resultText.trim().split(`
1907
1907
  `)[0]?.slice(0,80)??"";q&&C.push(q)}O.error&&C.push(O.error.message);let Y=[O.stats.toolUses>0?`${O.stats.toolUses} tools`:"",O.stats.tokens>0?`${Math.round(O.stats.tokens/1e3)}k tok`:"",O.stats.durationMs>0?`${Math.round(O.stats.durationMs/1e3)}s`:""].filter(Boolean).join(" \xB7 ");Y&&C.push(Y),e.replRenderer.writeLine(An({kind:O.status==="succeeded"?"checkpoint":"diagnosis",title:`${M} ${O.id} ${O.label}`,body:C})),e.replRenderer.writeLine("")}let _=f.drainNotifications();for(let{job:O,result:M}of _){let C=M.errorReason===void 0?"\u2713":"\u2717",Y=M.errorReason==="abort"?"killed":M.errorReason==="timeout"?"timed out":M.errorReason==="signal-killed"?"killed by signal":`exit ${M.exitCode??0}`,q=Math.max(0,Math.round(M.durationMs/100)/10);e.replRenderer.writeLine(p.dim(` ${C} [${O.id}] ${Y} \xB7 ${q}s \xB7 `)+O.command)}let I=c.renderIfChanged(e.stats.sessionId);if(I.length>0){for(let O of I)e.replRenderer.writeLine(O);e.replRenderer.writeLine("")}let L,j;if(l!==void 0){let O=l;l=void 0;let M=Vc(e.stats.model,e.stats.planMode),C=kr({buffer:O.text,promptText:M,isTTY:!!process.stdout.isTTY,attachmentSummary:Vo([...O.attachments])});e.replRenderer.writeLine(C),L=O.text.trim(),j=O.attachments}else{let O=await a.readLine({promptFn:()=>Vc(e.stats.model,e.stats.planMode),onSigint:r,onShiftTab:()=>{let M=e.slashCtx;M.stats.planMode&&M.stats.pendingPlanExit?(M.stats.pendingPlanExit=!1,Rt(M,!1,{closureSummarySkipped:!0}).catch(()=>{})):Rt(M).catch(()=>{}),e.statusLine.rearm()}});L=O.text.trim(),j=O.attachments}if(!L&&j.length===0)continue;if(L.startsWith("!")){let O=/^(0|false|off|no)$/i.test(T.AFK_SHELL_PASSTHROUGH??"");if(e.options.shellPassthrough!==!1&&!O&&(h||(h=!0,e.replRenderer.writeLine(p.dim(" \u2139 ! prefix shells out. Pass --no-shell-passthrough (or set AFK_SHELL_PASSTHROUGH=0) to send ! text to the model instead."))),await f.dispatch(L))){e.statusLine.rearm();continue}}let N=!1;if(L.startsWith("/")){let O=await _k(L,e.slashCtx,j);if(O.handled){if(O.result==="exit"){e.rl.close();return}if((L==="/clear"||L.startsWith("/clear "))&&(await t.rotateOnClear(),e.replRenderer.writeLine(p.dim(` transcript: ${t.path()}`)),g.reset()),O.result!==null&&typeof O.result=="object"&&"kind"in O.result&&O.result.kind==="submit"){l={text:O.result.message,attachments:j??[]},e.statusLine.rearm();continue}e.statusLine.rearm();continue}N=!0}i.push(L),await TG(e,L);let G=L;if(N){let O=Fp(L);if(O){let M=O.name.replace(/^\//,"").split(":").pop()??"";if(M&&Hm(M)){let C={skillName:M,rawArgs:O.args,source:"plugin",capabilities:{compose:!0,subagents:!0}},Y=e.session.current.sessionId,q=Pr(Y),V=Date.now();J(`[afk trace] preflight.start commandName=${M}`);let Q=!1,B=await Ir(C,{cwd:e.stats.cwd??process.cwd(),artifactDir:q},we=>{je()&&e.replRenderer.writeLine(p.warning(`\u26A0 preflight(${M}) failed: `)+(we instanceof Error?we.message:String(we)))});Q=B!==null,J(`[afk trace] preflight.end commandName=${M} durationMs=${Date.now()-V} success=${Q}`),G=Km(B?.manifestBlock,L)}}}let D=f.drainInjections();D.length>0&&(G=D+G),await tR({text:G,attachments:j},e.session.current,e.stats,{setInFlight(O){n.turnInFlight=O},async onTurnComplete(O,M){if(await t.appendTurn(O,M),e.stats.sessionId)try{Wt(e.stats)}catch(C){b||(b=!0,e.replRenderer.writeLine(p.warning("\u26A0 ")+"session autosave failed \u2014 this conversation may not be resumable: "+(C instanceof Error?C.message:String(C))))}},async onAfterTurn(){await e.contextSampler.onTurn(e.stats.totalTurns),await Hk(e.slashCtx),e.statusLine.rearm(),m?.repaint("observing")},rearmStatus:()=>e.statusLine.rearm(),onTerminalState:O=>g?.push(O),setActiveCompositor:O=>{n.activeCompositor=O},setInterruptNotifier:O=>{n.notifyInterrupting=O},scrollRegion:e.statusLine,getCompositor:()=>a.getCompositor(),setBackgroundHandler:O=>a.setBackgroundHandler(O),setSoftStopHandler:O=>a.setSoftStopHandler(O),async onContextProgress(){await e.contextSampler.refresh(),e.statusLine.repaint(Sr(e.stats,e.contextSampler))},...m?{onStageChange:O=>m.repaint(O)}:{}},e.options.thinkingUi,e.completionWriter,u,a.toRunTurnRefs(Vc(e.stats.model,e.stats.planMode)))}}finally{if(u!==void 0)for(let x of u.running())u.cancel(x.id);n.tryAbortShellForeground=null,f?.drainOnExit(),m?.stop(),d?.stop(),g?.stop(),c?.dispose();let S=x=>console.log(x);e.completionWriter.fn=S,e.completionWriter.idleFn=S,await a.dispose(),e.inputSurfaceRef&&(e.inputSurfaceRef.current=null)}}import{execFile as xG}from"node:child_process";import{dirname as EG,isAbsolute as RG,resolve as AG}from"node:path";import{promisify as _G}from"node:util";var uR=_G(xG),CG=3e3,IG=new Set(["empty","orphaned-dir","orphaned-registration","dead-owner"]);async function PG(){let t=(await uR("git",["rev-parse","--git-common-dir"])).stdout.trim();if(!t)throw new Error("Not in a git repository.");let n=RG(t)?t:AG(process.cwd(),t);return EG(n)}async function dR(e){if(e?.disabled)return{ran:!1,removedCount:0,skippedReason:"disabled"};let t;try{t=await PG()}catch{return{ran:!1,removedCount:0,skippedReason:"not-in-repo"}}let n,r=new Promise(o=>{n=setTimeout(()=>o("timeout"),CG)});try{let o=qt({execFile:uR,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=>IG.has(c.verdict)&&i.removed.includes(c.path)).length}}catch{return{ran:!1,removedCount:0,skippedReason:"error"}}finally{n&&clearTimeout(n)}}import{promises as MG}from"node:fs";import{dirname as OG,join as fR}from"node:path";import{randomBytes as $G}from"node:crypto";var DG=["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(`
1908
- `),pR=/^[a-z0-9]+(-[a-z0-9]+){1,3}$/,bf=30,LG=1024,FG=8e3,NG="haiku";async function BG(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=WG(n,LG),o=new AbortController,s=setTimeout(()=>o.abort(),t.timeoutMs??FG),i=t.signal?KG([t.signal,o.signal]):o.signal,a;try{t.slugGenerator?a=await t.slugGenerator(r,i):a=await io({token:t.token,model:t.model??NG,system:DG,user:r,maxTokens:32,signal:i})}catch(d){let m=d instanceof Error?d.message:String(d);return t.onSkip?.("slug-generator-error",m.slice(0,200)),null}finally{clearTimeout(s)}let l=UG(a);if(l===null)return t.onSkip?.("invalid-slug-output",a.slice(0,60)),null;let c=OG(t.worktreePath);return await jG(l,c)}function UG(e){let t=e.trim().toLowerCase();if(t.length===0)return null;if(pR.test(t)&&t.length<=bf)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>bf)break;o=i}return pR.test(o)?o:null}async function jG(e,t){if(!await HG(fR(t,e)))return e;let n=$G(2).toString("hex");return`${e.split("-").slice(0,3).join("-").slice(0,bf-5)}-${n}`}async function HG(e){try{return await MG.access(e),!0}catch{return!1}}function WG(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 KG(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 gR(e){let t,n,r=fR(e.deferred.repoRoot,".afk-worktrees","unnamed"),o=await BG(e.message,{token:e.token,...e.model!==void 0?{model:e.model}:{},...e.timeoutMs!==void 0?{timeoutMs:e.timeoutMs}:{},worktreePath:r,...e.signal!==void 0?{signal:e.signal}:{},...e.slugGenerator!==void 0?{slugGenerator:e.slugGenerator}:{},onSkip:(a,l)=>{t=a,n=l}}),s=t??"unknown",i=n;if(o!==null){let l=`${Xa(e.branchPrefix)}${o}`;try{let c=await e.deferred.create(l);return mR(e.session,c.path),{status:"created",path:c.path,branch:c.branch,slug:o}}catch(c){s="create-failed",i=(c instanceof Error?c.message:String(c)).slice(0,200)}}try{let a=await e.deferred.create(!0);return mR(e.session,a.path),{status:"created-fallback",path:a.path,branch:a.branch,reason:s,...i!==void 0?{detail:i}:{}}}catch(a){return{status:"failed",reason:a instanceof Error?a.message:String(a)}}}function mR(e,t){e&&e.setCwd(t),GG(t)}function GG(e){try{process.chdir(e)}catch{}}W();import{spawn as hR}from"child_process";import{existsSync as VG,mkdirSync as XG,readFileSync as yR,unlinkSync as ZG,writeFileSync as QG}from"fs";import{get as e2}from"https";import{join as bR}from"path";import{readFileSync as zG}from"fs";import{dirname as qG,join as JG}from"path";import{fileURLToPath as YG}from"url";function wn(){try{return"3.89.0"}catch{}try{let e=qG(YG(import.meta.url));for(let t of["../../package.json","../package.json"])try{let n=JSON.parse(zG(JG(e,t),"utf-8"));if(typeof n.version=="string")return n.version}catch{}}catch{}return"0.0.0-unknown"}K();var t2=64*1024,n2=1440*60*1e3,r2="update-check.json",o2="pending-update.json";function wR(){return bR(ta(),r2)}function wf(){return bR(ta(),o2)}function SR(){let e=ta();VG(e)||XG(e,{recursive:!0})}function s2(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 i2(){try{let e=yR(wR(),"utf-8"),t=JSON.parse(e);if(typeof t.latestVersion=="string"&&typeof t.checkedAt=="number")return t}catch{}return null}function a2(){try{SR();let e=`
1908
+ `),pR=/^[a-z0-9]+(-[a-z0-9]+){1,3}$/,bf=30,LG=1024,FG=8e3,NG="haiku";async function BG(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=WG(n,LG),o=new AbortController,s=setTimeout(()=>o.abort(),t.timeoutMs??FG),i=t.signal?KG([t.signal,o.signal]):o.signal,a;try{t.slugGenerator?a=await t.slugGenerator(r,i):a=await io({token:t.token,model:t.model??NG,system:DG,user:r,maxTokens:32,signal:i})}catch(d){let m=d instanceof Error?d.message:String(d);return t.onSkip?.("slug-generator-error",m.slice(0,200)),null}finally{clearTimeout(s)}let l=UG(a);if(l===null)return t.onSkip?.("invalid-slug-output",a.slice(0,60)),null;let c=OG(t.worktreePath);return await jG(l,c)}function UG(e){let t=e.trim().toLowerCase();if(t.length===0)return null;if(pR.test(t)&&t.length<=bf)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>bf)break;o=i}return pR.test(o)?o:null}async function jG(e,t){if(!await HG(fR(t,e)))return e;let n=$G(2).toString("hex");return`${e.split("-").slice(0,3).join("-").slice(0,bf-5)}-${n}`}async function HG(e){try{return await MG.access(e),!0}catch{return!1}}function WG(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 KG(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 gR(e){let t,n,r=fR(e.deferred.repoRoot,".afk-worktrees","unnamed"),o=await BG(e.message,{token:e.token,...e.model!==void 0?{model:e.model}:{},...e.timeoutMs!==void 0?{timeoutMs:e.timeoutMs}:{},worktreePath:r,...e.signal!==void 0?{signal:e.signal}:{},...e.slugGenerator!==void 0?{slugGenerator:e.slugGenerator}:{},onSkip:(a,l)=>{t=a,n=l}}),s=t??"unknown",i=n;if(o!==null){let l=`${Xa(e.branchPrefix)}${o}`;try{let c=await e.deferred.create(l);return mR(e.session,c.path),{status:"created",path:c.path,branch:c.branch,slug:o}}catch(c){s="create-failed",i=(c instanceof Error?c.message:String(c)).slice(0,200)}}try{let a=await e.deferred.create(!0);return mR(e.session,a.path),{status:"created-fallback",path:a.path,branch:a.branch,reason:s,...i!==void 0?{detail:i}:{}}}catch(a){return{status:"failed",reason:a instanceof Error?a.message:String(a)}}}function mR(e,t){e&&e.setCwd(t),GG(t)}function GG(e){try{process.chdir(e)}catch{}}W();import{spawn as hR}from"child_process";import{existsSync as VG,mkdirSync as XG,readFileSync as yR,unlinkSync as ZG,writeFileSync as QG}from"fs";import{get as e2}from"https";import{join as bR}from"path";import{readFileSync as zG}from"fs";import{dirname as qG,join as JG}from"path";import{fileURLToPath as YG}from"url";function wn(){try{return"3.89.1"}catch{}try{let e=qG(YG(import.meta.url));for(let t of["../../package.json","../package.json"])try{let n=JSON.parse(zG(JG(e,t),"utf-8"));if(typeof n.version=="string")return n.version}catch{}}catch{}return"0.0.0-unknown"}K();var t2=64*1024,n2=1440*60*1e3,r2="update-check.json",o2="pending-update.json";function wR(){return bR(ta(),r2)}function wf(){return bR(ta(),o2)}function SR(){let e=ta();VG(e)||XG(e,{recursive:!0})}function s2(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 i2(){try{let e=yR(wR(),"utf-8"),t=JSON.parse(e);if(typeof t.latestVersion=="string"&&typeof t.checkedAt=="number")return t}catch{}return null}function a2(){try{SR();let e=`
1909
1909
  const https = require('https');
1910
1910
  const fs = require('fs');
1911
1911
  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.89.0",
3
+ "version": "3.89.1",
4
4
  "description": "Local-first control plane for long-running AI agent work — delegation, traces, resumable sessions, verification, and notifications.",
5
5
  "main": "dist/index.mjs",
6
6
  "type": "module",