@mk-co/neox-cli 2.0.52 → 2.0.54
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/main.js +4 -3
- package/package.json +1 -1
package/dist/cli/main.js
CHANGED
|
@@ -3687,7 +3687,8 @@ Read about how to prevent this error on https://github.com/vadimdemedes/ink/#isr
|
|
|
3687
3687
|
`)}findCursorHint(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n]??"";s.INVERSE_SGR_REGEX.lastIndex=0;let o=-1,i;for(;(i=s.INVERSE_SGR_REGEX.exec(r))!==null;)o=i.index;if(o>=0){let a=r.slice(0,o),l=_l(ks(a)),c=Math.max(0,t-1),u=uv?Math.min(l,c):l;return {lineIndex:n,column:u}}}return null}buildCursorMoveSequence(e,t,n){if(n<=0)return "";let r=n-1,o=Math.max(0,r-e),i="";return o>0&&(i+=`\x1B[${o}A`),i+="\r",t>0&&(i+=`\x1B[${t}C`),i}alignCursorToBottom(e){if(e<=0)return "";let t=Math.max(0,Math.min(this._lastCursorLine,e-1)),r=e-1-t;return r>0?`\x1B[${r}B`:r<0?`\x1B[${-r}A`:""}eraseOutput(e){if(e<=0)return;let t="";for(let n=0;n<e;n++)t+="\x1B[2K",n<e-1&&(t+="\x1B[1A");t+="\r",this.terminal.write(t);}handleResize(e){let t=this._lastWidth,n=this._lastOutput,r=this.calculateVisualLines(n,e);return process.env.NEOX_INK_DEBUG==="1"&&process.stderr.write(`[InlineRenderer.handleResize] width: ${t}\u2192${e}, lastLines=${this._lastVisualLines}, newLines=${r}
|
|
3688
3688
|
`),this._resizeLock=true,this._resizeLockTimer&&clearTimeout(this._resizeLockTimer),this._resizeLockTimer=setTimeout(()=>{this._resizeLock=false,this._resizeLockTimer=null,this.emit("resizeUnlock");},100),this._lastVisualLines=r,this._lastWidth=e,this._resizePending=true,r}render(e){let t=this.terminal.size.columns;process.env.NEOX_INK_DEBUG==="1"&&process.stderr.write(`[InlineRenderer.render] width=${t}, lastWidth=${this._lastWidth}, lastLines=${this._lastVisualLines}, resizePending=${this._resizePending}, content=${e.length} chars
|
|
3689
3689
|
`);let n=this.toVisualLines(e,t),r=n.length,o=this.findCursorHint(n,t);if(process.env.NEOX_INK_DEBUG==="1"&&process.stderr.write(`[InlineRenderer.render] \u{1F4DD} Writing ${r} visual lines
|
|
3690
|
-
`),!this._incremental||this._lastVisualLines===0||this._resizePending||this._lastWidth!==t){if(this._lastVisualLines>0){let
|
|
3690
|
+
`),!this._incremental||this._lastVisualLines===0||this._resizePending||this._lastWidth!==t){if(this._lastVisualLines>0){let a=this.alignCursorToBottom(this._lastVisualLines);a&&this.terminal.write(a),this.eraseOutput(this._lastVisualLines);}let i=e.endsWith(`
|
|
3691
|
+
`)?e.slice(0,-1):e;this.terminal.write(i),o&&r>0&&this.terminal.write(this.buildCursorMoveSequence(o.lineIndex,o.column,r));}else {let i=this._lastVisualLineContent,a=i.length,l=Math.max(a,r),c="";if(a>0){let u=Math.max(0,Math.min(this._lastCursorLine,a-1));u>0&&(c+=`\x1B[${u}A`),c+="\r";}for(let u=0;u<l;u++){u>0&&(c+=`
|
|
3691
3692
|
`),c+="\r";let d=i[u]??"",p=n[u]??"";d!==p&&(c+="\x1B[2K",c+=p);}if(r>0)if(o)c+=this.buildCursorMoveSequence(o.lineIndex,o.column,l);else {let u=l-r;u>0&&(c+=`\x1B[${u}A`),c+="\r";let d=n[r-1]??"";if(uv){let p=ks(d).replace(/[\u0000-\u001F\u007F]/g,""),g=_l(p),f=Math.max(0,t-1),y=Math.min(g,f);y>0&&(c+=`\x1B[${y}C`);}else {let p=_l(ks(d));p>0&&(c+=`\x1B[${p}C`);}}this.terminal.beginSyncUpdate(),this.terminal.write(c),this.terminal.endSyncUpdate();}this._lastOutput=e,this._lastVisualLines=r,this._lastVisualLineContent=n,this._lastCursorLine=r>0?o?Math.max(0,Math.min(o.lineIndex,r-1)):r-1:0,this._lastWidth=t,this._resizePending=false;}clear(){let e=this.alignCursorToBottom(this._lastVisualLines);e&&this.terminal.write(e),this.eraseOutput(this._lastVisualLines),this._lastOutput="",this._lastVisualLines=0,this._lastVisualLineContent=[],this._lastCursorLine=0;}resetState(){this._lastOutput="",this._lastVisualLines=0,this._lastVisualLineContent=[],this._lastCursorLine=0,this._lastWidth=this.terminal.size.columns,this._resizePending=false;}done(){this.terminal.showCursor(),this._lastOutput="",this._lastVisualLines=0,this._lastVisualLineContent=[],this._lastCursorLine=0;}};function em(s={}){return new yo(s)}var gv=()=>{},Bi=class{options;isScreenReaderEnabled;renderer;useAltScreen;isUnmounted;lastOutput;lastOutputHeight;container;rootNode;exitPromise;restoreConsole;unsubscribeResize;terminalAdapter;unsubscribeTerminalResize;_accumulatedStatic="";_lastFullOutput="";scrollUp=(e=3)=>{!this.useAltScreen||!(this.renderer instanceof En)||this.renderer.scrollUp(e)&&this.onRender();};scrollDown=(e=3)=>{!this.useAltScreen||!(this.renderer instanceof En)||this.renderer.scrollDown(e)&&this.onRender();};pageUp=()=>{!this.useAltScreen||!(this.renderer instanceof En)||this.renderer.pageUp()&&this.onRender();};pageDown=()=>{!this.useAltScreen||!(this.renderer instanceof En)||this.renderer.pageDown()&&this.onRender();};scrollToTop=()=>{!this.useAltScreen||!(this.renderer instanceof En)||this.renderer.scrollToTop()&&this.onRender();};scrollToBottom=()=>{!this.useAltScreen||!(this.renderer instanceof En)||this.renderer.scrollToBottom()&&this.onRender();};canScroll=()=>!this.useAltScreen||!(this.renderer instanceof En)?{up:false,down:false}:this.renderer.canScroll();setupMouseWheelHandler(){try{Ts().setMouseWheelCallback(t=>{t==="up"?this.scrollUp(3):this.scrollDown(3);}),at.env.NEOX_INK_DEBUG==="1"&&at.stderr.write(`[INK] \u{1F5B1}\uFE0F Mouse wheel handler installed via InputManager
|
|
3692
3693
|
`);}catch(e){at.env.NEOX_INK_DEBUG==="1"&&at.stderr.write(`[INK] \u26A0\uFE0F InputManager not ready, will retry: ${e}
|
|
3693
3694
|
`),setTimeout(()=>this.setupMouseWheelHandler(),100);}}constructor(e){if(MA(this),this.options=e,this.rootNode=Al("ink-root"),this.rootNode.onComputeLayout=this.calculateLayout,this.isScreenReaderEnabled=e.isScreenReaderEnabled??at.env.INK_SCREEN_READER==="true",this.terminalAdapter=Wr({stdout:e.stdout,stdin:e.stdin,resizePollInterval:void 0}),at.env.NEOX_INK_DEBUG==="1"){let i=this.terminalAdapter.capabilities;at.stderr.write(`[INK] \u{1F5A5}\uFE0F Terminal: ${i.terminalType}, syncUpdate=${i.synchronizedUpdate}, altScreen=${i.alternateScreen}, trueColor=${i.trueColor}
|
|
@@ -3700,7 +3701,7 @@ Read about how to prevent this error on https://github.com/vadimdemedes/ink/#isr
|
|
|
3700
3701
|
`),at.env.CLI_DEBUG==="1"&&o>100&&at.stderr.write(`[INK_RENDER] \u26A0\uFE0F Slow render: ${o.toFixed(1)}ms, outputHeight=${n}
|
|
3701
3702
|
`),this.options.onRender?.({renderTime:o});let i=r&&r!==`
|
|
3702
3703
|
`;if(this.options.debug){i&&this.options.stdout.write(r),t!==this.lastOutput&&(this.options.stdout.write(t),this.lastOutput=t,this.lastOutputHeight=n);return}if(bo){i&&this.options.stdout.write(r),this.lastOutput=t,this.lastOutputHeight=n;return}if(this.isScreenReaderEnabled){if(i){let c=this.lastOutputHeight>0?tt.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(c+r),this.lastOutputHeight=0;}if(t===this.lastOutput&&!i)return;let a=this.options.stdout.columns||80,l=this.wrapText(t,a);if(i)this.options.stdout.write(l);else {let c=this.lastOutputHeight>0?tt.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(c+l);}this.lastOutput=t,this.lastOutputHeight=l===""?0:l.split(`
|
|
3703
|
-
`).length;return}if(this.useAltScreen){let a=this.terminalAdapter.capabilities.synchronizedUpdate;i&&(this._accumulatedStatic+=r);let l=this._accumulatedStatic+t;l!==this._lastFullOutput&&(a&&this.terminalAdapter.beginSyncUpdate(),this.renderer.render(l),a&&this.terminalAdapter.endSyncUpdate(),this._lastFullOutput=l);}else i
|
|
3704
|
+
`).length;return}if(this.useAltScreen){let a=this.terminalAdapter.capabilities.synchronizedUpdate;i&&(this._accumulatedStatic+=r);let l=this._accumulatedStatic+t;l!==this._lastFullOutput&&(a&&this.terminalAdapter.beginSyncUpdate(),this.renderer.render(l),a&&this.terminalAdapter.endSyncUpdate(),this._lastFullOutput=l);}else if(i){let a=this.terminalAdapter.capabilities.synchronizedUpdate;a&&this.terminalAdapter.beginSyncUpdate(),this.renderer.clear(),this.options.stdout.write(r),this.renderer.render(t),a&&this.terminalAdapter.endSyncUpdate();}else t!==this.lastOutput&&this.renderer.render(t);this.lastOutput=t,this.lastOutputHeight=n,at.env.NEOX_INK_DEBUG==="1"&&at.stderr.write(`[INK_RENDER] \u2705 onRender completed
|
|
3704
3705
|
`);};render(e){let t=A.createElement(zr.Provider,{value:{isScreenReaderEnabled:this.isScreenReaderEnabled}},A.createElement(Oi,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount,onResize:this.handleResizeFromApp},e));Yn.updateContainerSync(t,this.container,null,gv),Yn.flushSyncWork();}writeToStdout(e){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(e+this.lastOutput);return}if(bo){this.options.stdout.write(e);return}this.renderer.clear(),this.options.stdout.write(e),this.renderer.render(this.lastOutput);}}writeToStderr(e){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(e),this.options.stdout.write(this.lastOutput);return}if(bo){this.options.stderr.write(e);return}this.renderer.clear(),this.options.stderr.write(e),this.renderer.render(this.lastOutput);}}unmount(e){if(!this.isUnmounted){this.calculateLayout(),this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize();try{Ts().setMouseWheelCallback(null);}catch{}typeof this.unsubscribeTerminalResize=="function"&&this.unsubscribeTerminalResize(),this.terminalAdapter.reset(),bo?this.options.stdout.write(this.lastOutput+`
|
|
3705
3706
|
`):!this.options.debug&&!this.useAltScreen&&this.renderer.done(),this.useAltScreen&&this.options.stdout.write(`
|
|
3706
3707
|
`),this.isUnmounted=true,Yn.updateContainerSync(null,this.container,null,gv),Yn.flushSyncWork(),uo.delete(this.options.stdout),e instanceof Error?this.rejectExitPromise(e):this.resolveExitPromise();}}async waitUntilExit(){return this.exitPromise||=new Promise((e,t)=>{this.resolveExitPromise=e,this.rejectExitPromise=t;}),this.exitPromise}clear(){!bo&&!this.options.debug&&this.renderer.clear();}wrapText(e,t){if(t<=0)return e;let n=e.split(`
|
|
@@ -3763,7 +3764,7 @@ Or: .neox/skills/<name>/SKILL.md`,selectToExecute:"Select skill to execute",buil
|
|
|
3763
3764
|
`,N-F-2)+1,Ae=z[$-1].length,ge=Math.min(F,Ae),_e=Y+ge;C(s.length-_e);}return}if(te.downArrow){if($===z.length-1)g(),C(0);else {s.lastIndexOf(`
|
|
3764
3765
|
`,N-1)+1;let Ae=s.indexOf(`
|
|
3765
3766
|
`,N)+1,ge=z[$+1].length,_e=Math.min(F,ge),he=Ae+_e;C(s.length-he);}return}if(te.leftArrow){C(Math.min(b+1,s.length));return}if(te.rightArrow){C(Math.max(b-1,0));return}if(te.home||te.ctrl&&X==="a"){C(s.length);return}if(te.end||te.ctrl&&X==="e"){C(0);return}if(te.backspace||te.delete){if(b===s.length){s.length===0&&a>0&&c&&c();return}let Y=N-1,Ae=s.slice(0,Y)+s.slice(Y+1);u(Ae);return}if(!te.ctrl&&!te.meta&&X){let Y=e$(X);if(!Y){process.env.CLI_DEBUG==="1"&&m.debug("INPUT_LINE","Dropped control/escape-only input chunk");return}let Ae=s.slice(0,N)+Y+s.slice(N);u(Ae);return}}}},{isActive:V});let Pe=!s,oe=()=>Pe?A.createElement(_,null,A.createElement(h,{color:"#9B8FD9",bold:true},"> "),A.createElement(h,{inverse:true}," "),A.createElement(h,{dimColor:true},e)):z.map((X,te)=>{let Y=te===$,Ae=z.slice(0,te).reduce((pe,J)=>pe+J.length+1,0);Ae+X.length;let _e=-1;Y&&(_e=N-Ae);let he=te===0?"> ":"\u2502 ",Se="#9B8FD9";if(t)return A.createElement(_,{key:te},A.createElement(h,{color:Se,bold:true},he),A.createElement(h,{dimColor:true},X));if(Y&&_e>=0){let pe=X.slice(0,_e),J=X[_e]||" ",fe=X.slice(_e+1);return A.createElement(_,{key:te},A.createElement(h,{color:Se,bold:true},he),A.createElement(h,null,pe,A.createElement(h,{inverse:true},J),fe))}return A.createElement(_,{key:te},A.createElement(h,{color:Se,bold:true},he),A.createElement(h,null,X))});return A.createElement(_,{flexDirection:"column"},q&&!t&&A.createElement(_,{marginBottom:0},A.createElement(h,{dimColor:true}," \u21B5 ",G().ui.shiftEnterNewline," \u2502 Enter ",G().ui.enterToSend," \u2502 ",ct(G().ui.lineCount,{count:z.length}))),A.createElement(_,{flexDirection:"column"},oe()))};var t$=({isRunning:s,statusText:e="",tokenStats:t,streamingTokens:n=0,streamingStartTime:r=null,provider:o,model:i,onContextMenuToggle:a,agentContextStats:l=[],runMode:c="single",networkStats:u,cooperateStats:d})=>{let{columns:p=80}=Qt(),g=l.filter(J=>J.agentId!=="Main"),f=g.some(J=>J.status==="running"||J.status==="waiting"),y=s||c==="single"&&f,[b,C]=useState(null),[T,S]=useState(0),[E,v]=useState(0),[I,D]=useState(0),[O,k]=useState(0);useEffect(()=>{y?(C(r||Date.now()),S(0)):!y&&(t?.output||0)===0&&(C(null),S(0));},[y,r,t?.output]),useEffect(()=>{if(!y||b===null)return;let J=setInterval(()=>{S(Math.floor((Date.now()-b)/1e3));},500);return ()=>clearInterval(J)},[y,b]),useEffect(()=>{if(!y||n===0){v(0);return}let J=Math.floor(n);if(E===J)return;let fe=J-E,K=Math.min(Math.abs(fe),20),re=fe/K,ve=setInterval(()=>{v(Be=>{let ce=Be+re;return Math.abs(ce-J)<1?J:ce});},50);return ()=>clearInterval(ve)},[n,y,E]),useEffect(()=>{let J=t?.output||0;if(I===J)return;let fe=J-I;if(Math.abs(fe)>100){D(J);return}let K=Math.max(Math.ceil(Math.abs(fe)/10),3),re=fe/K,ve=setInterval(()=>{D(Be=>{let ce=Be+re;return Math.abs(ce-J)<1?J:ce});},10);return ()=>clearInterval(ve)},[t?.output,I]),useEffect(()=>{if(!y){k(0);return}let fe=(e||"Thinking...").length,K=setInterval(()=>{k(re=>(re+1)%(fe+3));},80);return ()=>clearInterval(K)},[y,e]);let M=()=>{if(T<60)return `${T}s`;let J=Math.floor(T/60),fe=T%60;return `${J}m ${fe}s`},N=J=>J>=1e6?(J/1e6).toFixed(1)+"M":J>=1e3?(J/1e3).toFixed(1)+"K":J.toString(),x=t?.contextWindow||0,B=t?.tokensUsedForContext||t?.total||0,H=t?.pressure||0,W=Math.round(H*100),U=()=>H>.8?"red":H>.5?"yellow":"#B19CD9",z=J=>J.split("").map((K,re)=>{let se=re-O;return se>=0&&se<2?A.createElement(h,{key:re,color:"white",bold:true},K):se>=-1&&se<0?A.createElement(h,{key:re,color:"cyanBright"},K):A.createElement(h,{key:re,color:"cyan"},K)}),q=(J,fe)=>{if(!J||_l(J)<=fe)return J;let re=0,se=J.length,ve=J;for(;re<se;){let Be=Math.floor((re+se+1)/2),ce=J.slice(0,Be)+"...";_l(ce)<=fe?(ve=ce,re=Be):se=Be-1;}return ve},P=(J,fe)=>{if(!fe||_l(J)<=fe)return z(J);let K=q(J,fe);return A.createElement(h,{color:"cyan"},K)},F=(()=>{switch(c){case "single":return {icon:"\u25C6",label:"Single",color:"cyan"};case "assistant":return {icon:"\u25C8",label:"Assistant",color:"magenta"};case "cooperate":return {icon:"\u25C7",label:"Cooperate",color:"yellow"};case "network":return {icon:"\u25C9",label:"Network",color:"blue"};default:return {icon:"\u25C6",label:"Single",color:"cyan"}}})(),V=e&&(e.includes("Streaming:")||e.toLowerCase().includes("stream")),Z=e?.match(/Streaming:\s*(\w+)/),ae=Z?Z[1]:null,be=l.length>0,Pe=l.find(J=>J.agentId==="Main"),oe=g.find(J=>J.status==="running")||g.find(J=>J.status==="waiting"),X=g.filter(J=>J.status==="running");X.length>1?`${X.length} agents running: ${X.map(J=>`${J.agentLabel}\u2192${J.currentTask||"..."}`).join(", ")}`:oe?`${oe.agentLabel}: ${oe.currentTask||(oe.status==="waiting"?"Waiting...":"Running...")}`:null;let Y=()=>g.length===0?null:A.createElement(_,null,A.createElement(h,{dimColor:true}," \u2502 "),A.createElement(h,{color:"magenta"},g.length),A.createElement(h,{dimColor:true}," workers")),Ae=(J,fe)=>{let K=J.status||"idle",re=K==="running",ve=(ye=>{switch(ye?.toLowerCase()){case "scout":return "cyan";case "explore":return "cyan";case "worker":return "green";case "task":return "green";case "verifier":return "yellow";case "compressor":return "blue";case "coordinator":return "magenta";default:return "magenta"}})(J.workerRole),Be=J.workerRole?J.workerRole.charAt(0).toUpperCase()+J.workerRole.slice(1):J.agentLabel.replace(/-\d+$/,""),ce=p>140?48:p>110?32:20,L=J.workerTask||J.currentTask||"",ee=L.length>ce?L.slice(0,ce-3)+"...":L,me=J.toolUseCount||0,le=J.input+J.output,we=J.elapsedMs?Math.round(J.elapsedMs/1e3):0,We=re?A.createElement(si,{type:"dots"}):K==="waiting"?A.createElement(h,{color:"yellow"},"\u25D0"):K==="completed"?A.createElement(h,{color:"blue"},"\u2713"):K==="error"?A.createElement(h,{color:"red"},"\u2717"):A.createElement(h,{color:"gray"},"\u25CB");return A.createElement(_,{key:J.agentId,justifyContent:"space-between"},A.createElement(_,null,A.createElement(h,{dimColor:true}," ",fe?"\u2514\u2500 ":"\u251C\u2500 "),We,A.createElement(h,null," "),A.createElement(h,{color:ve,bold:true},Be),ee&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," ("),A.createElement(h,null,ee),A.createElement(h,{dimColor:true},")"))),A.createElement(_,null,me>0&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true},"\xB7 "),A.createElement(h,{color:"cyan"},me),A.createElement(h,{dimColor:true}," tools")),le>0&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," \xB7 "),A.createElement(h,{color:"#B19CD9"},N(le)),A.createElement(h,{dimColor:true}," tok")),we>0&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," \xB7 "),A.createElement(h,{color:"yellow"},we,"s"))))};if(c==="network"){let J=u?.teamSize||0,fe=u?.activeAgents||0,K=u?.currentPhase||"executing",re=u?.currentAgent,se=u?.totalInputTokens||t?.input||0,ve=u?.totalOutputTokens||t?.output||0,Be=u?.completedTasks,ce=u?.totalTasks,ee=(()=>{switch(K){case "analyzing":return {text:"Analyzing",color:"cyan"};case "bidding":return {text:"Bidding",color:"yellow"};case "negotiating":return {text:"Negotiating",color:"magenta"};case "executing":return {text:"Executing",color:"green"};case "reviewing":return {text:"Reviewing",color:"blue"};case "complete":return {text:"Complete",color:"green"};default:return {text:"Running",color:"cyan"}}})();return A.createElement(_,{justifyContent:"space-between"},A.createElement(_,null,A.createElement(h,{color:"blue"},"[N]"),A.createElement(h,{dimColor:true}," \u2502 "),A.createElement(h,{color:"blue"},J),A.createElement(h,{dimColor:true}," agents"),fe>0&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," ("),A.createElement(h,{color:"green"},fe),A.createElement(h,{dimColor:true}," active)")),A.createElement(h,{dimColor:true}," \u2502 "),s?A.createElement(_,null,A.createElement(si,{type:"dots"}),A.createElement(h,null," "),re?A.createElement(A.Fragment,null,z(re),A.createElement(h,{dimColor:true},": "),A.createElement(h,{color:ee.color},ee.text)):A.createElement(h,{color:ee.color},ee.text),T>0&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," ("),A.createElement(h,{color:"#B19CD9"},M()),A.createElement(h,{dimColor:true},")"))):A.createElement(_,null,ve>0?A.createElement(A.Fragment,null,A.createElement(h,{color:"green",bold:true},"\u25A0"),A.createElement(h,null," "),A.createElement(h,{color:"green"},"Complete!"),T>0&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," ("),A.createElement(h,{color:"#B19CD9"},M()),A.createElement(h,{dimColor:true},")"))):A.createElement(A.Fragment,null,A.createElement(h,{color:"#9B8FD9",bold:true},"\u25CF"),A.createElement(h,null," "),A.createElement(h,{color:"#9B8FD9"},"Ready")))),A.createElement(h,{dimColor:true}," \u2502 "),A.createElement(_,null,Be!==void 0&&ce!==void 0&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true},"tasks "),A.createElement(h,{color:"#B19CD9"},Be),A.createElement(h,{dimColor:true},"/"),A.createElement(h,{color:"#B19CD9"},ce),A.createElement(h,{dimColor:true}," \u2502 ")),s&&E>0&&A.createElement(A.Fragment,null,A.createElement(h,{color:"green"},"\u2193 ",Math.floor(E)),A.createElement(h,{dimColor:true}," \u2502 ")),A.createElement(h,{dimColor:true},"in "),A.createElement(h,{color:"#9B8FD9"},N(se)),A.createElement(h,{dimColor:true}," out "),A.createElement(h,{color:"#6FCF97"},N(ve))))}if(c==="cooperate"&&d){let{models:J,phase:fe,totalInputTokens:K,totalOutputTokens:re,ccbResult:se,dagProgress:ve}=d,ce=(()=>{switch(fe){case "analyzing":return {text:"Analyzing",color:"cyan"};case "ccb_review":return {text:"CCB Review",color:"yellow"};case "dag_planning":return {text:"Planning",color:"magenta"};case "executing":return {text:"Executing",color:"green"};case "complete":return {text:"Complete",color:"green"};default:return {text:"Running",color:"cyan"}}})(),L=()=>J.length===0?null:J.map((me,le)=>{let we=me.status==="running"?"green":me.status==="completed"?"blue":"gray";return A.createElement(A.Fragment,{key:le},le>0&&A.createElement(h,{dimColor:true},"/"),A.createElement(h,{color:we},me.shortName))}),ee=J.filter(me=>me.status==="completed").length;return A.createElement(_,{justifyContent:"space-between"},A.createElement(_,null,A.createElement(h,{color:"yellow"},"[C]"),A.createElement(h,{dimColor:true}," \u2502 "),s?A.createElement(_,null,A.createElement(si,{type:"dots"}),A.createElement(h,null," "),e?z(e):A.createElement(h,{color:ce.color},ce.text),T>0&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," ("),A.createElement(h,{color:"#B19CD9"},M()),A.createElement(h,{dimColor:true},")")),E>0&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," ~"),A.createElement(h,{color:"magenta"},Math.floor(E)),A.createElement(h,{dimColor:true}," tok"))):A.createElement(_,null,re>0?A.createElement(A.Fragment,null,A.createElement(h,{color:"green",bold:true},"\u25A0"),A.createElement(h,null," "),A.createElement(h,{color:"green"},"Complete!"),T>0&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," ("),A.createElement(h,{color:"#B19CD9"},M()),A.createElement(h,{dimColor:true},")"))):A.createElement(A.Fragment,null,A.createElement(h,{color:"#9B8FD9",bold:true},"\u25CF"),A.createElement(h,null," "),A.createElement(h,{color:"#9B8FD9"},"Ready")))),A.createElement(_,null,J.length>0&&A.createElement(A.Fragment,null,L(),A.createElement(h,{dimColor:true}," "),A.createElement(h,{color:"#B19CD9"},ee),A.createElement(h,{dimColor:true},"/"),A.createElement(h,{color:"#B19CD9"},J.length),A.createElement(h,{dimColor:true}," \u2502 ")),se&&A.createElement(A.Fragment,null,A.createElement(h,{color:se.approved?"green":"red"},se.approved?"\u2713":"\u2717"),A.createElement(h,{dimColor:true}," CCB "),A.createElement(h,{color:"#B19CD9"},se.approveCount),A.createElement(h,{dimColor:true},"/"),A.createElement(h,{color:"#B19CD9"},se.totalCount),A.createElement(h,{dimColor:true}," \u2502 ")),ve&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true},"DAG "),A.createElement(h,{color:"#B19CD9"},ve.completedNodes),A.createElement(h,{dimColor:true},"/"),A.createElement(h,{color:"#B19CD9"},ve.totalNodes),A.createElement(h,{dimColor:true}," \u2502 ")),A.createElement(h,{dimColor:true},"in "),A.createElement(h,{color:"cyan"},N(K||t?.input||0)),A.createElement(h,{dimColor:true}," out "),A.createElement(h,{color:"green"},N(re||t?.output||0))))}if((c==="assistant"||c==="cooperate")&&be){let J=Pe?.pressure||0,fe=Math.round(J*100),K=()=>J>.8?"red":J>.5?"yellow":"green",re=g.length>0,se=Pe?.agentLabel||"Main";return A.createElement(_,{flexDirection:"column"},A.createElement(_,{justifyContent:"space-between"},A.createElement(_,null,A.createElement(h,{color:F.color},F.icon),A.createElement(h,{dimColor:true}," \u2502 "),s?A.createElement(_,null,A.createElement(si,{type:"dots"}),A.createElement(h,null," "),A.createElement(h,{bold:true,color:"#9B8FD9"},"\u25CF"),A.createElement(h,null," "),V&&ae?A.createElement(A.Fragment,null,z(`Streaming: ${ae}`)):z(e||"Thinking..."),T>0&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," ("),A.createElement(h,{color:"#B19CD9"},M()),A.createElement(h,{dimColor:true},")"))):A.createElement(_,null,(Pe?.output||t?.output||0)>0?A.createElement(A.Fragment,null,A.createElement(h,{color:"green",bold:true},"\u25A0"),A.createElement(h,null," "),A.createElement(h,{color:"green"},"Complete!"),T>0&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," ("),A.createElement(h,{color:"#B19CD9"},M()),A.createElement(h,{dimColor:true},")"))):A.createElement(A.Fragment,null,A.createElement(h,{color:"cyan",bold:true},"\u25CF"),A.createElement(h,null," "),A.createElement(h,{color:"cyan"},"Ready")))),A.createElement(_,null,Pe?A.createElement(_,null,A.createElement(h,{dimColor:true}," \u2502 "),A.createElement(h,{dimColor:true},se,": "),A.createElement(h,{color:"cyan"},N(Pe.input)),A.createElement(h,{dimColor:true},"/"),A.createElement(h,{color:"green"},N(Pe.output)),(Pe.cacheCreationTokens||Pe.cacheReadTokens)&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," cache-w "),A.createElement(h,{color:"magenta"},N(Pe.cacheCreationTokens||0)),A.createElement(h,{dimColor:true}," cache-r "),A.createElement(h,{color:"blue"},N(Pe.cacheReadTokens||0))),A.createElement(h,{dimColor:true}," \u2502 "),A.createElement(h,{color:"#B19CD9"},N(Pe.tokensUsedForContext)),A.createElement(h,{dimColor:true},"/"),A.createElement(h,{color:"#B19CD9"},N(Pe.contextWindow)),A.createElement(h,{dimColor:true}," ("),A.createElement(h,{color:K()},fe,"%"),A.createElement(h,{dimColor:true},")"),Y()):A.createElement(_,null,A.createElement(h,{dimColor:true},"in "),A.createElement(h,{color:"cyan"},N(t?.input||0)),A.createElement(h,{dimColor:true}," out "),A.createElement(h,{color:"green"},N(t?.output||0)),Y()))),re&&g.map((ve,Be)=>Ae(ve,Be===g.length-1)))}let ge=c==="single"&&g.length>0,_e=p<100,he=p<80,pe=(()=>{if(he)return Math.max(10,p-40);let J=11;if(s&&T>0&&!he){let re=` (${M()})`;J+=_l(re);}let fe=_e?35:80,K=p-J-fe;return Math.max(15,K)})();return he?A.createElement(_,{flexDirection:"column"},A.createElement(_,null,s?A.createElement(A.Fragment,null,A.createElement(si,{type:"dots"}),A.createElement(h,null," "),A.createElement(h,{color:"cyan"},q(e||"Thinking...",p-5))):A.createElement(A.Fragment,null,A.createElement(h,{color:"green"},"\u2713"),A.createElement(h,null," "),A.createElement(h,{color:"green"},"Done"))),x>0&&A.createElement(_,null,A.createElement(h,{dimColor:true},"in "),A.createElement(h,{color:"cyan"},N(t?.input||0)),A.createElement(h,{dimColor:true}," out "),A.createElement(h,{color:"green"},N(t?.output||0)),A.createElement(h,{dimColor:true}," ctx "),A.createElement(h,{color:U()},W,"%"))):A.createElement(_,{flexDirection:"column",width:"100%"},A.createElement(_,{justifyContent:"space-between",width:"100%"},A.createElement(_,null,!_e&&A.createElement(A.Fragment,null,A.createElement(h,{color:F.color},F.icon),A.createElement(h,{dimColor:true}," \u2502 ")),y?A.createElement(_,null,A.createElement(si,{type:"dots"}),A.createElement(h,null," "),A.createElement(h,{bold:true,color:"#9B8FD9"},"\u25CF"),A.createElement(h,null," "),V&&ae?A.createElement(A.Fragment,null,P(`Streaming: ${ae}`,pe)):P(!s&&f?`Sub-agents running... (${g.length})`:e||"Thinking...",pe),T>0&&!_e&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," ("),A.createElement(h,{color:"yellow"},M()),p>=100&&A.createElement(h,{dimColor:true}," \u2022 esc"),E>0&&p>=120&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," \u2022 "),A.createElement(h,{color:"green"},"\u2193 ",Math.floor(E)," token")),A.createElement(h,{dimColor:true},")"))):A.createElement(_,null,(t?.output||0)>0?A.createElement(A.Fragment,null,A.createElement(h,{color:"#6FCF97",bold:true},"\u25A0"),A.createElement(h,null," "),A.createElement(h,{color:"#6FCF97"},"Complete!"),T>0&&!_e&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," ("),A.createElement(h,{color:"#B19CD9"},M()),A.createElement(h,{dimColor:true},")"))):A.createElement(A.Fragment,null,A.createElement(h,{color:"#9B8FD9",bold:true},"\u25CF"),A.createElement(h,null," "),A.createElement(h,{color:"#9B8FD9"},"Ready")))),A.createElement(_,null,x>0?A.createElement(_,null,A.createElement(h,{dimColor:true},"in "),A.createElement(h,{color:"#9B8FD9"},N(t?.input||0)),A.createElement(h,{dimColor:true}," out "),A.createElement(h,{color:"#6FCF97"},N(t?.output||0)),(t?.cacheCreationTokens||t?.cacheReadTokens)&&p>=120&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," c-w "),A.createElement(h,{color:"magenta"},N(t.cacheCreationTokens||0)),A.createElement(h,{dimColor:true}," c-r "),A.createElement(h,{color:"blue"},N(t.cacheReadTokens||0))),!_e&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," \u2502 ctx "),A.createElement(h,{color:"#B19CD9"},N(B)),A.createElement(h,{dimColor:true},"/"),A.createElement(h,{color:"#B19CD9"},N(x))),A.createElement(h,{dimColor:true}," ("),A.createElement(h,{color:U()},W,"%"),A.createElement(h,{dimColor:true},")")):A.createElement(h,{dimColor:true},"ctx: --"))),ge&&g.map((J,fe)=>Ae(J,fe===g.length-1)))},n$=(s,e)=>!s&&!e?true:!s||!e||s.length!==e.length?false:s.every((t,n)=>{let r=e[n];return t.agentId===r.agentId&&t.input===r.input&&t.output===r.output&&t.pressure===r.pressure&&t.tokensUsedForContext===r.tokensUsedForContext&&t.status===r.status&&t.currentTask===r.currentTask&&t.contextWindow===r.contextWindow&&t.cacheCreationTokens===r.cacheCreationTokens&&t.cacheReadTokens===r.cacheReadTokens}),lx=A.memo(t$,(s,e)=>s.isRunning===e.isRunning&&s.statusText===e.statusText&&s.streamingTokens===e.streamingTokens&&s.streamingStartTime===e.streamingStartTime&&s.tokenStats?.input===e.tokenStats?.input&&s.tokenStats?.output===e.tokenStats?.output&&s.tokenStats?.total===e.tokenStats?.total&&s.tokenStats?.pressure===e.tokenStats?.pressure&&s.tokenStats?.cacheCreationTokens===e.tokenStats?.cacheCreationTokens&&s.tokenStats?.cacheReadTokens===e.tokenStats?.cacheReadTokens&&s.runMode===e.runMode&&s.networkStats?.teamSize===e.networkStats?.teamSize&&s.networkStats?.activeAgents===e.networkStats?.activeAgents&&s.networkStats?.currentPhase===e.networkStats?.currentPhase&&s.networkStats?.currentAgent===e.networkStats?.currentAgent&&s.networkStats?.totalInputTokens===e.networkStats?.totalInputTokens&&s.networkStats?.totalOutputTokens===e.networkStats?.totalOutputTokens&&s.networkStats?.completedTasks===e.networkStats?.completedTasks&&s.networkStats?.totalTasks===e.networkStats?.totalTasks&&s.cooperateStats?.phase===e.cooperateStats?.phase&&s.cooperateStats?.totalInputTokens===e.cooperateStats?.totalInputTokens&&s.cooperateStats?.totalOutputTokens===e.cooperateStats?.totalOutputTokens&&s.cooperateStats?.ccbResult?.approved===e.cooperateStats?.ccbResult?.approved&&s.cooperateStats?.ccbResult?.approveCount===e.cooperateStats?.ccbResult?.approveCount&&s.cooperateStats?.dagProgress?.completedNodes===e.cooperateStats?.dagProgress?.completedNodes&&s.cooperateStats?.models?.length===e.cooperateStats?.models?.length&&n$(s.agentContextStats,e.agentContextStats));var cx=({isRunning:s,hasInput:e,customHints:t,menuActive:n=false,thinkingEnabled:r=true,accumulatedRunTime:o=0,provider:i,model:a,runMode:l="single",hasBgTasks:c=false})=>{let{columns:u=80}=Qt(),[d,p]=useState(o);useEffect(()=>{if(!s){p(o);return}p(o);let S=setInterval(()=>{p(E=>E+1);},1e3);return ()=>clearInterval(S)},[s,o]);let g=()=>{if(d<60)return `${d}s`;let S=Math.floor(d/60),E=d%60;if(S<60)return `${S}m ${E}s`;let v=Math.floor(S/60),I=S%60;return `${v}h ${I}m`},f=()=>{if(!i||!a)return "";let S=i,E=i.indexOf(" (");E>0&&(S=i.substring(0,E));let v=a.length>35?a.substring(0,32)+"...":a;return `${S}/${v}`},b=(()=>{switch(l){case "single":return {label:"SINGLE"};case "assistant":return {label:"ASSISTANT"};case "cooperate":return {label:"COOPERATE"};case "network":return {label:"NETWORK"};default:return {label:"SINGLE"}}})(),C=u<100,T=u<80;return t?A.createElement(_,{justifyContent:"space-between"},A.createElement(h,{color:ue.functional.warning},t)):n?null:T?A.createElement(_,{justifyContent:"space-between"},A.createElement(h,{color:ue.text.secondary},"? shortcuts"),A.createElement(_,null,d>0&&A.createElement(A.Fragment,null,A.createElement(h,{color:ue.brand.cyan},g()),A.createElement(h,{color:ue.text.dim}," \u2022 ")),A.createElement(h,{color:ue.brand.purple},b.label))):A.createElement(_,{justifyContent:"space-between"},A.createElement(_,null,c?A.createElement(h,{color:ue.brand.cyan},"tab \u21B9 tasks"):A.createElement(h,{color:ue.text.secondary},"? for shortcuts"),d>0&&A.createElement(A.Fragment,null,A.createElement(h,{color:ue.text.dim}," \u2022 "),A.createElement(h,{color:ue.brand.cyan},g()),!C&&A.createElement(h,{color:ue.text.dim}," session"))),A.createElement(_,null,!C&&A.createElement(A.Fragment,null,A.createElement(h,{color:ue.brand.purple,bold:true},"["),A.createElement(h,{color:ue.brand.purple},b.label),A.createElement(h,{color:ue.brand.purple,bold:true},"]"),A.createElement(h,{color:ue.text.dim}," \u2022 ")),f()&&!C&&A.createElement(A.Fragment,null,A.createElement(h,{color:ue.brand.magenta,bold:true},"["),A.createElement(h,{color:ue.brand.magenta},f()),A.createElement(h,{color:ue.brand.magenta,bold:true},"]"),A.createElement(h,{color:ue.text.dim}," \u2022 ")),r?A.createElement(h,{color:ue.brand.cyan},"Thinking on"):A.createElement(h,{color:ue.text.dim},"Thinking off")))};var ux=({attachments:s,onRemove:e})=>s.length===0?null:A.createElement(_,{flexDirection:"column",paddingLeft:2,marginBottom:1},A.createElement(h,{color:"magenta",dimColor:true},"Attachments:"),s.map((t,n)=>{let r=t.name||t.path?.split("/").pop()||"unknown",o=t.type?.startsWith("image/")||t.mediaType?.startsWith("image/")||r.match(/\.(png|jpg|jpeg|gif|webp)$/i);return A.createElement(_,{key:n},A.createElement(h,{color:"magenta"},o?"\u{1F4CE} \u{1F5BC}\uFE0F ":"\u{1F4CE} ",r),e&&A.createElement(h,{color:"gray",dimColor:true}," (press \u232B Backspace to remove)"))}));var dx=({planSteps:s,isRunning:e=false})=>{let t=s.find(r=>r.status==="pending");if(!t||!e)return null;let n=t.step.length>50?t.step.substring(0,47)+"...":t.step;return A.createElement(_,{paddingLeft:3},A.createElement(h,{dimColor:true},"\u2514\u2500 "),A.createElement(h,{color:"gray"},"\u25CB"),A.createElement(h,{dimColor:true}," Next: "),A.createElement(h,{color:"cyan"},n))};var px=({contextWindow:s,tokensUsed:e,systemTokens:t=0,userTokens:n=0,assistantTokens:r=0,toolCallTokens:o=0,toolResultTokens:i=0,compactionThreshold:a=.8,compressionMode:l="sync",agentContextStats:c=[],runMode:u="single",networkStats:d,onClose:p})=>{let g=D=>D>=1e6?`${(D/1e6).toFixed(1)}M`:D>=1e3?`${(D/1e3).toFixed(1)}k`:D.toString(),f=D=>D>.8?"red":D>.5?"yellow":"green",y=({color:D,label:O,tokens:k,total:M,indent:N=2})=>{let x=M>0?(k/M*100).toFixed(2):"0.00";return A.createElement(_,{marginLeft:N},A.createElement(h,{color:D},"\u25A0"),A.createElement(h,null," ",O,": "),A.createElement(h,{color:"yellow"},g(k)),A.createElement(h,{dimColor:true}," tokens (",x,"%)"))},b=({stat:D,indent:O=2})=>{let k=D.cacheCreationTokens||0,M=D.cacheReadTokens||0,N=D.contextWindow||2e5,x=D.tokensUsedForContext||0,B=N>0?x/N:0,H=Math.round(B*100);return A.createElement(_,{marginLeft:O,justifyContent:"space-between"},A.createElement(_,null,A.createElement(h,{color:"magenta"},D.agentLabel||D.agentId),D.status&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," "),A.createElement(h,{color:D.status==="running"?"green":D.status==="error"?"red":"gray"},D.status==="running"?"\u25CF":D.status==="completed"?"\u2713":D.status==="error"?"\u2717":"\u25CB"))),A.createElement(_,null,A.createElement(h,{dimColor:true},"in "),A.createElement(h,{color:"cyan"},g(D.input)),A.createElement(h,{dimColor:true}," out "),A.createElement(h,{color:"green"},g(D.output)),(k>0||M>0)&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," \u2502 cw "),A.createElement(h,{color:"blue"},g(k)),A.createElement(h,{dimColor:true}," cr "),A.createElement(h,{color:"blue"},g(M))),A.createElement(h,{dimColor:true}," \u2502 ctx "),A.createElement(h,{color:"yellow"},g(x)),A.createElement(h,{dimColor:true},"/"),A.createElement(h,{color:"yellow"},g(N)),A.createElement(h,{dimColor:true}," ("),A.createElement(h,{color:f(B)},H,"%"),A.createElement(h,{dimColor:true},")")))},C=({stat:D,indent:O=2})=>{let k=D.contextWindow>0?D.tokensUsedForContext/D.contextWindow:0,M=Math.round(k*100);return A.createElement(_,{marginLeft:O,justifyContent:"space-between"},A.createElement(_,null,A.createElement(h,{color:"magenta"},D.agentLabel||D.agentId),D.status&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," "),A.createElement(h,{color:D.status==="running"?"green":D.status==="error"?"red":"gray"},D.status==="running"?"\u25CF":D.status==="completed"?"\u2713":D.status==="error"?"\u2717":"\u25CB"))),A.createElement(_,null,A.createElement(h,{dimColor:true},"in "),A.createElement(h,{color:"cyan"},g(D.input)),A.createElement(h,{dimColor:true}," out "),A.createElement(h,{color:"green"},g(D.output)),A.createElement(h,{dimColor:true}," \u2502 "),A.createElement(h,{color:"yellow"},g(D.tokensUsedForContext)),A.createElement(h,{dimColor:true},"/"),A.createElement(h,{color:"yellow"},g(D.contextWindow)),A.createElement(h,{dimColor:true}," ("),A.createElement(h,{color:f(k)},M,"%"),A.createElement(h,{dimColor:true},")")))};if(u==="network"){let D=d?.teamSize||c.length||0,O=d?.activeAgents||0,k=d?.totalInputTokens||0,M=d?.totalOutputTokens||0,N=k+M,B=(H=>{switch(H){case "analyzing":return {text:"Analyzing",color:"cyan"};case "bidding":return {text:"Bidding",color:"yellow"};case "negotiating":return {text:"Negotiating",color:"magenta"};case "executing":return {text:"Executing",color:"green"};case "reviewing":return {text:"Reviewing",color:"blue"};case "complete":return {text:"Complete",color:"green"};default:return {text:"Idle",color:"gray"}}})(d?.currentPhase);return A.createElement(_,{flexDirection:"column",borderStyle:"round",borderColor:"blue",paddingX:2,paddingY:1},A.createElement(_,{justifyContent:"space-between",marginBottom:1},A.createElement(_,null,A.createElement(h,{color:"blue"},"[N]"),A.createElement(h,{bold:true,color:"blue"}," Network Context Overview")),A.createElement(h,{dimColor:true},"(press ESC to close)")),A.createElement(_,{flexDirection:"column",marginBottom:1},A.createElement(_,null,A.createElement(h,{dimColor:true},"Team Size: "),A.createElement(h,{color:"blue",bold:true},D),A.createElement(h,{dimColor:true}," agents"),O>0&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," ("),A.createElement(h,{color:"green"},O),A.createElement(h,{dimColor:true}," active)"))),A.createElement(_,null,A.createElement(h,{dimColor:true},"Current Phase: "),A.createElement(h,{color:B.color,bold:true},B.text),d?.currentAgent&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," - "),A.createElement(h,{color:"cyan"},d.currentAgent))),d?.completedTasks!==void 0&&d?.totalTasks!==void 0&&A.createElement(_,null,A.createElement(h,{dimColor:true},"Tasks: "),A.createElement(h,{color:"yellow"},d.completedTasks),A.createElement(h,{dimColor:true},"/"),A.createElement(h,{color:"yellow"},d.totalTasks),A.createElement(h,{dimColor:true}," completed"))),A.createElement(_,{flexDirection:"column",marginBottom:1},A.createElement(h,{bold:true,dimColor:true},"Total Token Usage:"),A.createElement(_,{marginLeft:2},A.createElement(h,{dimColor:true},"Input: "),A.createElement(h,{color:"cyan"},g(k)),A.createElement(h,{dimColor:true}," \u2502 Output: "),A.createElement(h,{color:"green"},g(M)),A.createElement(h,{dimColor:true}," \u2502 Total: "),A.createElement(h,{color:"yellow"},g(N)))),c.length>0&&A.createElement(_,{flexDirection:"column"},A.createElement(h,{bold:true,dimColor:true},"Agent Context Details:"),c.map(H=>A.createElement(b,{key:H.agentId,stat:H})),A.createElement(_,{marginTop:1,marginLeft:2},A.createElement(h,{dimColor:true},"Total Tokens: "),A.createElement(h,{color:"yellow"},g(c.reduce((H,W)=>H+W.input+W.output,0))),A.createElement(h,{dimColor:true}," across "),A.createElement(h,{color:"cyan"},c.length),A.createElement(h,{dimColor:true}," agents"))),c.length===0&&A.createElement(_,{marginTop:1},A.createElement(h,{dimColor:true,italic:true},"Agent context details not available yet.")))}if((u==="assistant"||u==="cooperate")&&c.length>0){let D=c.find(W=>W.agentId==="Main"),O=c.filter(W=>W.agentId!=="Main"&&W.agentId!=="supervisor"),k=c.reduce((W,U)=>W+U.tokensUsedForContext,0),M=c.reduce((W,U)=>W+U.input,0),N=c.reduce((W,U)=>W+U.output,0),x=u==="assistant"?"[A]":"[C]",B=u==="assistant"?"Assistant":"Cooperate",H=u==="assistant"?"magenta":"yellow";return A.createElement(_,{flexDirection:"column",borderStyle:"round",borderColor:H,paddingX:2,paddingY:1},A.createElement(_,{justifyContent:"space-between",marginBottom:1},A.createElement(_,null,A.createElement(h,{color:H},x),A.createElement(h,{bold:true,color:H}," ",B," Context Overview")),A.createElement(h,{dimColor:true},"(press ESC to close)")),A.createElement(_,{flexDirection:"column",marginBottom:1},A.createElement(_,null,A.createElement(h,{dimColor:true},"Total Agents: "),A.createElement(h,{color:H,bold:true},c.length),O.length>0&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," (1 Main + "),A.createElement(h,{color:"cyan"},O.length),A.createElement(h,{dimColor:true}," Workers)"))),A.createElement(_,null,A.createElement(h,{dimColor:true},"Total Tokens: "),A.createElement(h,{color:"cyan"},g(M)),A.createElement(h,{dimColor:true}," in / "),A.createElement(h,{color:"green"},g(N)),A.createElement(h,{dimColor:true}," out"))),D&&A.createElement(_,{flexDirection:"column",marginBottom:1},A.createElement(h,{bold:true,dimColor:true},"Main Agent:"),A.createElement(C,{stat:D})),O.length>0&&A.createElement(_,{flexDirection:"column"},A.createElement(h,{bold:true,dimColor:true},"Worker Agents (",O.length,"):"),O.map(W=>A.createElement(C,{key:W.agentId,stat:W}))),A.createElement(_,{marginTop:1},A.createElement(h,{dimColor:true},"Combined Context: "),A.createElement(h,{color:"yellow"},g(k)),A.createElement(h,{dimColor:true}," tokens")))}let T=s-e,S=s>0?e/s:0,E=Math.floor(s*a),v=Math.max(0,E-e),I=Math.round(S*100);return A.createElement(_,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:2,paddingY:1},A.createElement(_,{justifyContent:"space-between",marginBottom:1},A.createElement(h,{bold:true,color:"cyan"},"Context Window Details"),A.createElement(h,{dimColor:true},"(press ESC to close)")),A.createElement(_,{flexDirection:"column",marginBottom:1},A.createElement(_,null,A.createElement(h,{dimColor:true},"Total: "),A.createElement(h,{color:"yellow"},g(e)),A.createElement(h,{dimColor:true}," / "),A.createElement(h,{color:"yellow"},g(s)),A.createElement(h,{dimColor:true}," tokens ("),A.createElement(h,{color:f(S),bold:true},I,"%"),A.createElement(h,{dimColor:true},")")),A.createElement(_,null,A.createElement(h,{dimColor:true},"Remaining: "),A.createElement(h,{color:"green"},g(T)),A.createElement(h,{dimColor:true}," tokens"))),A.createElement(_,{flexDirection:"column",marginBottom:1},A.createElement(_,null,A.createElement(h,{dimColor:true},"Compression: "),A.createElement(h,{color:l==="sync"?"green":"yellow"},l==="sync"?"Sync LLM":"Async LLM"),A.createElement(h,{dimColor:true}," ("),A.createElement(h,{color:"cyan"},Math.round(a*100),"%"),A.createElement(h,{dimColor:true}," threshold)"))),v>0?A.createElement(_,{marginBottom:1},A.createElement(h,{dimColor:true},"Compaction in: "),A.createElement(h,{color:"cyan"},g(v)),A.createElement(h,{dimColor:true}," tokens")):A.createElement(_,{marginBottom:1},A.createElement(h,{color:"red",bold:true},"\u26A0\uFE0F Compaction threshold reached!")),A.createElement(_,{flexDirection:"column"},A.createElement(h,{bold:true,dimColor:true},"Context Breakdown:"),A.createElement(y,{color:"magenta",label:"System",tokens:t,total:e}),A.createElement(y,{color:"cyan",label:"User",tokens:n,total:e}),A.createElement(y,{color:"green",label:"Assistant",tokens:r,total:e}),A.createElement(y,{color:"blue",label:"Tool Calls",tokens:o,total:e}),A.createElement(y,{color:"yellow",label:"Tool Results",tokens:i,total:e}),A.createElement(_,{marginTop:1,marginLeft:2},A.createElement(h,{dimColor:true},"Usage: "),A.createElement(h,{color:f(S)},"\u2588".repeat(Math.floor(S*20))),A.createElement(h,{dimColor:true},"\u2591".repeat(20-Math.floor(S*20))))))};function fx(){let s=G(),e=s.slashMenu.categories,t=s.slashMenu.commands;return [{name:"/help",description:t.help,category:e.basic},{name:"/clear",description:t.clear,category:e.basic},{name:"/exit",description:t.exit,category:e.basic},{name:"/mode",description:t.mode,category:e.mode,hasSubMenu:true},{name:"/run",description:t.run,category:e.mode,hasSubMenu:true},{name:"/runconfig",description:t.runconfig,category:e.mode,hasSubMenu:true},{name:"/thinking",description:t.thinking,category:e.mode,hasSubMenu:true},{name:"/approval",description:t.approval,category:e.mode,hasSubMenu:true},{name:"/sandbox",description:t.sandbox,category:e.mode,hasSubMenu:true},{name:"/provider",description:t.provider,category:e.ai,hasSubMenu:true},{name:"/model",description:t.model,category:e.ai,hasSubMenu:true},{name:"/sessions",description:t.sessions,category:e.session},{name:"/session",description:t.session,category:e.session,hasSubMenu:true},{name:"/session-new",description:t.sessionNew,category:e.session},{name:"/session-info",description:t.sessionInfo,category:e.session},{name:"/checkpoint",description:t.checkpoint,category:e.session},{name:"/checkpoints",description:t.checkpoints,category:e.session},{name:"/rollback",description:t.rollback,category:e.session,hasSubMenu:true},{name:"/undo",description:t.undo,category:e.session},{name:"/compact",description:t.compact,category:e.session},{name:"/ps",description:t.ps,category:e.process},{name:"/kill",description:t.kill,category:e.process,hasSubMenu:true},{name:"/skills",description:t.skills,category:e.skills},{name:"/workspace",description:t.workspace,category:e.tools,hasSubMenu:true},{name:"/websearch",description:t.websearch,category:e.tools,hasSubMenu:true},{name:"/mcp",description:t.mcp,category:e.tools,hasSubMenu:true},{name:"/context",description:t.context,category:e.tools,hasSubMenu:true},{name:"/memory",description:t.memory,category:e.tools,hasSubMenu:true},{name:"/remote",description:t.remote,category:e.tools,hasSubMenu:true},{name:"/index",description:t.index,category:e.tools,hasSubMenu:true},{name:"/stats",description:t.tokenStats,category:e.stats},{name:"/cost",description:t.costStats,category:e.stats},{name:"/language",description:t.language,category:e.config,hasSubMenu:true},{name:"/config-clear",description:t.configClear,category:e.config},{name:"/config-reset",description:t.configReset,category:e.config},{name:"/notify",description:t.notify,category:e.config,hasSubMenu:true},{name:"/tts",description:t.tts,category:e.config,hasSubMenu:true},{name:"/experimental",description:t.experimental,category:e.config,hasSubMenu:true},{name:"/update",description:t.update,category:e.config}]}fx();var o$=({isVisible:s,filter:e="",onSelect:t,onCancel:n})=>{let[r,o]=useState(0),[i,a]=useState(0),l=10,c=fx(),u=G(),d=e&&e!=="/"?c.filter(f=>f.name.toLowerCase().includes(e.toLowerCase())||f.description.toLowerCase().includes(e.toLowerCase())):c;useEffect(()=>{o(0),a(0);},[e]),useEffect(()=>{r<i?a(r):r>=i+l&&a(r-l+1);},[r]),ft((f,y)=>{if(s){if(y.escape){n();return}if(y.upArrow){o(b=>b>0?b-1:d.length-1);return}if(y.downArrow){o(b=>b<d.length-1?b+1:0);return}if(y.pageUp||y.ctrl&&f==="u"){o(b=>Math.max(0,b-l));return}if(y.pageDown||y.ctrl&&f==="d"){o(b=>Math.min(d.length-1,b+l));return}if(y.return){d.length>0&&t(d[r].name);return}if(y.tab){d.length>0&&t(d[r].name+" ");return}}},{isActive:s});let p=d.slice(i,i+l),g=A.useMemo(()=>p.map((f,y)=>{let C=i+y===r;return A.createElement(_,{key:f.name},A.createElement(h,{color:C?ue.brand.purple:ue.text.dim},C?"\u276F ":" "),A.createElement(h,{color:C?ue.brand.purple:void 0,bold:C},"\u25CF ",f.name),A.createElement(h,{color:C?ue.brand.magenta:ue.text.secondary}," ","- ",f.description))}),[p,i,r]);return !s||d.length===0?null:A.createElement(_,{flexDirection:"column",paddingLeft:0},A.createElement(h,{color:ue.brand.purple,bold:true},u.slashMenu.title),A.createElement(h,{color:ue.text.secondary},u.common.selectHint),i>0&&A.createElement(h,{color:ue.text.dim}," \u2191 ..."),g,i+l<d.length&&A.createElement(h,{color:ue.text.dim}," \u2193 ..."),A.createElement(h,{color:ue.border.primary},"\u2500".repeat(40)),A.createElement(h,{color:ue.text.secondary},ct(u.slashMenu.commandCount,{count:d.length})," \xB7 ",Math.floor(i/l)+1,"/",Math.ceil(d.length/l)))},hx=A.memo(o$);var c$=({tasks:s,selectedIndex:e,onKill:t,onToggleExpand:n})=>{let{columns:r=80}=Qt(),[o,i]=useState(Date.now()),a=s.some(p=>p.status==="running");if(useEffect(()=>{if(!a)return;let p=setInterval(()=>i(Date.now()),1e3);return ()=>clearInterval(p)},[a]),s.length===0)return null;let l=p=>{let g=Math.floor((o-p)/1e3);if(g<60)return `${g}s`;let f=Math.floor(g/60),y=g%60;return `${f}m${y}s`},c=(p,g)=>p.length<=g?p:p.slice(0,g-3)+"...",u=Math.max(20,r-45),d=(p,g)=>{let f=g===e,y=g===s.length-1,b=p.status==="running"?A.createElement(si,{type:"dots"}):p.status==="done"?A.createElement(h,{color:"green"},"\u2713"):p.status==="error"?A.createElement(h,{color:"red"},"\u2717"):A.createElement(h,{color:"yellow"},"\u2298"),C=p.status==="running"?"cyan":p.status==="done"?"green":p.status==="error"?"red":"yellow",T=p.status==="done"?`exit ${p.exitCode??0}`:p.status;return A.createElement(_,{key:p.id,flexDirection:"column"},A.createElement(_,null,A.createElement(h,{dimColor:true},y?"\u2514 ":"\u251C "),A.createElement(h,{color:f?"white":void 0,bold:f},f?"\u25B8 ":" "),b,A.createElement(h,{dimColor:true}," #",p.id," "),A.createElement(h,{color:f?"white":"cyan",bold:f},c(p.command,u)),A.createElement(h,{dimColor:true}," "),A.createElement(h,{color:C},T),A.createElement(h,{dimColor:true}," "),A.createElement(h,{color:"yellow"},l(p.startTime))),p.expanded&&p.output.length>0&&A.createElement(_,{flexDirection:"column",marginLeft:6},p.output.slice(-5).map((S,E)=>A.createElement(h,{key:E,dimColor:true},S))))};return A.createElement(_,{flexDirection:"column",marginTop:0},A.createElement(_,null,A.createElement(h,{color:ue.brand.purple},"\u250C "),A.createElement(h,{color:ue.brand.purple,bold:true},"Background Tasks"),A.createElement(h,{dimColor:true}," (",s.length,")"),A.createElement(h,{dimColor:true},"\u2500".repeat(Math.max(0,r-25-String(s.length).length)))),s.map((p,g)=>d(p,g)))},yx=A.memo(c$);ne();var u$=({inputValue:s,isRunning:e,statusText:t="",tokenStats:n,streamingTokens:r=0,streamingStartTime:o=null,accumulatedRunTime:i=0,provider:a,model:l,customHints:c,attachments:u=[],multiline:d=false,completions:p=[],menuActive:g=false,promptActive:f=false,promptMessage:y,promptHint:b,promptOnCancel:C,thinkingEnabled:T=true,contextMenuActive:S=false,compressionMode:E="sync",compactionThreshold:v=.85,agentContextStats:I=[],runMode:D="single",networkStats:O,cooperateStats:k,currentPlanSteps:M=[],onInputChange:N,onSubmit:x,onInterrupt:B,onExit:H,onHistoryUp:W,onHistoryDown:U,onTabComplete:z,onRemoveAttachment:q,onContextMenuToggle:P,onAgentContextScreenToggle:$,onPasteImage:F,onShowInterruptInput:V,backgroundTasks:Z=[],bgSelectedIndex:ae=-1,onBgKill:be,onBgRemove:Pe,onBgNavigate:oe,onBgToggleExpand:X})=>{let{columns:te}=Qt(),[Y,Ae]=A.useState(false);A.useEffect(()=>{Z.length===0&&Y&&Ae(false);},[Z.length,Y]),A.useEffect(()=>{s&&Y&&Ae(false);},[s,Y]);let ge=s==="/"||s.startsWith("/")&&!s.includes(" "),_e=A.useCallback(J=>{J.endsWith(" ")?N(J.trim()):(N(""),setTimeout(()=>{x(J);},0));},[N,x]),he=A.useCallback(()=>{N("");},[N]),Se=A.useRef(0),pe=1200;return ft((J,fe)=>{if(process.env.CLI_DEBUG==="1"&&m.debug("INK_INPUT","BottomBar useInput",{key:fe,input:J,menuActive:g,promptActive:f,isRunning:e,inputValue:s.substring(0,20)}),!g){if(e&&J==="i"&&!fe.ctrl&&!fe.meta&&V){m.debug("INK_INPUT",'Interrupt input triggered with "i" key'),V();return}if(fe.ctrl&&J==="g"&&$){$();return}if(fe.ctrl&&J==="z"){process.env.CLI_DEBUG==="1"&&m.debug("INK_INPUT","Ctrl+Z blocked (prevents suspension)");return}if(fe.tab&&Z.length>0&&!e&&!ge){Ae(K=>!K);return}if(Y&&Z.length>0){if(fe.upArrow){oe?.("up");return}if(fe.downArrow){oe?.("down");return}if(fe.return&&ae>=0){X?.();return}}if(fe.escape){let K=!J||J==="\x1B"||J==="";if(m.info("INK_INPUT",`ESC detected: isRealEscape=${K}, input=${JSON.stringify(J)}, isRunning=${e}`),!K){m.debug("INK_INPUT","Ignoring escape sequence (not real ESC key)");return}if(S&&P){P();return}if(f&&C){C(),N("");return}if(Y&&Z.length>0&&ae>=0&&ae<Z.length){let re=Z[ae];re.status==="running"?be?.(re.id):Pe?.(re.id);return}if(Y){Ae(false);return}e?(m.info("INK_INPUT","\u{1F6D1} User pressed ESC to interrupt task"),B()):s&&N("");return}if(fe.ctrl&&J==="c"){let K=Date.now(),re=K-Se.current<=pe;if(Se.current=K,process.env.CLI_DEBUG==="1"&&m.debug("INK_INPUT","Ctrl+C pressed",{isRunning:e,isSecondPress:re}),re){m.info("INK_INPUT","\u26A0\uFE0F Ctrl+C double-press - force exiting"),H();return}if(e){B();return}m.info("INK_INPUT","\u26A0\uFE0F Ctrl+C pressed - exiting"),H();}}},{isActive:true}),A.createElement(_,{flexDirection:"column"},f&&y&&A.createElement(_,{paddingX:2,paddingY:1},A.createElement(h,{color:"cyan",bold:true},y)),f&&b&&A.createElement(_,{paddingX:2,paddingBottom:1},A.createElement(h,{dimColor:true},b)),!f&&!g&&A.createElement(_,{marginTop:1,width:"100%"},A.createElement(lx,{isRunning:e,statusText:t,tokenStats:n,streamingTokens:r,streamingStartTime:o,provider:a,model:l,onContextMenuToggle:P,agentContextStats:I,runMode:D,networkStats:O,cooperateStats:k})),!f&&!g&&A.createElement(dx,{planSteps:M,isRunning:e}),u.length>0&&A.createElement(ux,{attachments:u,onRemove:q}),!g&&A.createElement(_,{flexDirection:"column"},A.createElement(h,{color:"#9370db"},"\u2500".repeat(te)),A.createElement(ax,{value:s,placeholder:f?b||"Type your answer...":e?"Enter to interrupt and send...":"Type a message...",disabled:g,multiline:d,completions:[],menuActive:g,slashMenuActive:ge,imageCount:u.length,onChange:N,onSubmit:J=>x(J??s),onHistoryUp:W,onHistoryDown:U,onTabComplete:z,onPasteImage:F,onRemoveLastAttachment:q?()=>q(u.length-1):void 0}),A.createElement(h,{color:"#9370db"},"\u2500".repeat(te))),ge&&!g&&!e&&A.createElement(hx,{isVisible:true,filter:s,onSelect:_e,onCancel:he}),!f&&A.createElement(cx,{isRunning:e,hasInput:s.length>0,customHints:c,menuActive:g,thinkingEnabled:T,accumulatedRunTime:i,provider:a,model:l,runMode:D,hasBgTasks:Z.length>0}),Z.length>0&&A.createElement(yx,{tasks:Z,selectedIndex:Y?ae:-1,onKill:be,onToggleExpand:X}),S&&n?.contextWindow&&P&&A.createElement(px,{contextWindow:n.contextWindow,tokensUsed:n.tokensUsedForContext||n.total,systemTokens:n.systemTokens,userTokens:n.userTokens,assistantTokens:n.assistantTokens,toolCallTokens:n.toolCallTokens,toolResultTokens:n.toolResultTokens,compressionMode:E,compactionThreshold:v,agentContextStats:I,runMode:D,networkStats:O,onClose:P}))},bx=A.memo(u$);var bu="__type_something__",Pf="__chat_about__",vx="__separator__",Mf=({message:s,choices:e,initialIndex:t=0,hint:n,header:r,maxVisible:o=12,allowTextInput:i=false,onSelect:a,onCancel:l,onExit:c})=>{let{columns:u=80,rows:d=24}=Qt(),[p,g]=useState(false),[f,y]=useState(""),b=useMemo(()=>i?[...e,{label:"",value:vx,isSeparator:true},{label:"Type something.",value:bu},{label:"Chat about this",value:Pf}]:e,[e,i]),C=P=>P?P.isSeparator||P.value===""||P.value===vx:false,T=P=>C(b[P]),S=useMemo(()=>{let P=b.findIndex($=>C($));return b[0]?.value==="__back__"&&P>0&&P<=4?P+1:0},[b]),E=useMemo(()=>{let P=Math.max(5,Math.min(10,d-14));return Math.max(5,Math.min(o,P))},[o,d]),v=b.slice(S),I=Math.min(v.length,E),D=(P,$)=>{let F=P;for(let V=0;V<b.length;V++)if(F+=$,F<0&&(F=b.length-1),F>=b.length&&(F=0),!T(F))return F;return P},O=()=>{for(let P=0;P<b.length;P++)if(!T(P))return P;return 0},[k,M]=useState(()=>T(t)?O():t),[N,x]=useState(0),[B,H]=useState(false);useEffect(()=>{T(t)?M(O()):M(t);},[t,b]),useEffect(()=>{let P=setTimeout(()=>H(true),200);return ()=>clearTimeout(P)},[]),useEffect(()=>{if(I<=0){N!==0&&x(0);return}let P=Math.max(0,v.length-I);if(N>P){x(P);return}if(k<S)return;let $=k-S;$<N?x($):$>=N+I&&x($-I+1);},[k,S,v.length,I,N]),ft((P,$)=>{if(p){if($.escape){g(false),y("");return}if($.return&&f.trim()){process.nextTick(()=>a(f.trim()));return}if($.backspace||$.delete){y(F=>F.slice(0,-1));return}P&&!$.ctrl&&!$.meta&&y(F=>F+P);}},{isActive:p}),ft((P,$)=>{if(!p){if($.ctrl&&P==="c"&&c){process.nextTick(()=>c());return}if($.escape&&l){process.nextTick(()=>l());return}if($.upArrow){M(F=>D(F,-1));return}if($.downArrow){M(F=>D(F,1));return}if($.return){if(T(k)||!B)return;let F=b[k].value;if(F===bu){g(true);return}process.nextTick(()=>a(F));}}},{isActive:!p});let W=N>0,U=N+I<v.length,z=P=>{let $=0;for(let F=0;F<=P;F++)!T(F)&&b[F].value!==bu&&b[F].value!==Pf&&$++;return $},q=(P,$)=>{let F=$===k;if(C(P))return A.createElement(_,{key:`sep-${$}`,marginTop:1},A.createElement(h,{dimColor:true},"\u2500".repeat(Math.min(u,120))));let V=F?"\u276F":" ",ae=P.value===bu||P.value===Pf?null:z($),be=ae!==null?" ":" ";return A.createElement(_,{key:`${P.value}-${$}`,flexDirection:"column"},A.createElement(_,null,A.createElement(h,{color:F?"cyan":void 0},V," "),ae!==null&&A.createElement(h,{color:F?"cyan":"white",bold:F},ae,". "),A.createElement(h,{color:F?"cyan":"white",bold:F},P.label)),P.description&&A.createElement(_,null,A.createElement(h,{dimColor:true},be,P.description)))};return p?A.createElement(_,{flexDirection:"column"},r&&A.createElement(_,null,A.createElement(h,{color:"green",bold:true},"\u2610 ",r)),A.createElement(h,null," "),s&&A.createElement(_,null,A.createElement(h,{bold:true},s)),A.createElement(h,null," "),A.createElement(_,null,A.createElement(h,{color:"cyan",bold:true},"\u276F "),A.createElement(h,null,f),A.createElement(h,{color:"cyan"},"\u2588")),A.createElement(h,null," "),A.createElement(_,null,A.createElement(h,{dimColor:true},"Enter to submit \xB7 Esc to go back"))):A.createElement(_,{flexDirection:"column"},r&&A.createElement(_,null,A.createElement(h,{color:"green",bold:true},"\u2610 ",r)),r&&A.createElement(h,null," "),s&&A.createElement(_,null,A.createElement(h,{bold:true},s)),A.createElement(h,null," "),b.slice(0,S).map((P,$)=>q(P,$)),W&&A.createElement(_,null,A.createElement(h,{dimColor:true}," \u2191 ...")),v.slice(N,N+I).map((P,$)=>{let F=S+N+$;return q(P,F)}),U&&A.createElement(_,null,A.createElement(h,{dimColor:true}," \u2193 ...")),A.createElement(h,null," "),A.createElement(_,null,A.createElement(h,{dimColor:true},n||"Enter to select \xB7 \u2191/\u2193 to navigate \xB7 Esc to cancel")))};var wx=({onSubmit:s,onCancel:e})=>{let[t,n]=useState(""),[r,o]=useState(0),i=t.length-r;ft((u,d)=>{if(d.escape){e();return}if(d.return){let p=t.trim();p&&s(p);return}if(d.backspace||d.delete){if(r===t.length)return;let p=i-1,g=t.slice(0,p)+t.slice(p+1);n(g);return}if(d.leftArrow){o(Math.min(r+1,t.length));return}if(d.rightArrow){o(Math.max(r-1,0));return}if(d.home||d.ctrl&&u==="a"){o(t.length);return}if(d.end||d.ctrl&&u==="e"){o(0);return}if(!d.ctrl&&!d.meta&&u){let p=t.slice(0,i)+u+t.slice(i);n(p);return}},{isActive:true});let a=t.slice(0,i),l=t[i]||" ",c=t.slice(i+1);return A.createElement(_,{flexDirection:"column",borderStyle:"double",borderColor:"yellow",paddingX:2,paddingY:1,width:"80%"},A.createElement(_,{marginBottom:1,justifyContent:"center"},A.createElement(h,{bold:true,color:"yellow"},"\u2728 ",G().ui.interruptMessage," - ",G().ui.willSendNextRequest)),A.createElement(_,{flexDirection:"column"},A.createElement(h,{dimColor:true},G().ui.enterYourMessage,":"),A.createElement(_,{marginTop:1},A.createElement(h,{color:"green",bold:true},"\u276F "),t?A.createElement(h,null,a,A.createElement(h,{inverse:true},l),c):A.createElement(_,null,A.createElement(h,{inverse:true}," "),A.createElement(h,{dimColor:true},G().ui.typeMessage)))),A.createElement(_,{marginTop:1,justifyContent:"space-between"},A.createElement(h,{dimColor:true},"Enter: ",G().ui.enterToConfirm),A.createElement(h,{dimColor:true},"ESC: ",G().common.cancel)))};var oi=s=>s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:String(s),d$=s=>{switch(s){case "running":return {icon:"\u25CF",color:"green"};case "waiting":return {icon:"\u25D0",color:"yellow"};case "completed":return {icon:"\u2713",color:"blue"};case "error":return {icon:"\u2717",color:"red"};default:return {icon:"\u25CB",color:"gray"}}},Tx=({agentContextStats:s,onClose:e})=>{let{columns:t}=Qt();ft((r,o)=>{(o.escape||r==="q")&&e();},{isActive:true});let n=[...s].sort((r,o)=>r.agentId==="Main"?-1:o.agentId==="Main"?1:r.agentLabel.localeCompare(o.agentLabel));return A.createElement(_,{flexDirection:"column",width:"100%"},A.createElement(_,{justifyContent:"space-between"},A.createElement(h,{bold:true,color:"cyan"},"Agent Context Overview"),A.createElement(h,{dimColor:true},"ESC to close")),A.createElement(h,{color:"gray"},"\u2500".repeat(Math.max(t,10))),n.length===0?A.createElement(h,{dimColor:true},"No agent context stats available."):n.map(r=>{let o=r.contextWindow||0,i=r.tokensUsedForContext||0,a=o>0?i/o:0,l=Math.round(a*100),{icon:c,color:u}=d$(r.status),d=r.currentTask?r.currentTask.length>40?`${r.currentTask.slice(0,37)}...`:r.currentTask:"";return A.createElement(_,{key:r.agentId,justifyContent:"space-between",marginTop:1},A.createElement(_,null,A.createElement(h,{color:"magenta"},r.agentLabel),A.createElement(h,{dimColor:true}," "),A.createElement(h,{color:u},c),d&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," "),A.createElement(h,{dimColor:true},d))),A.createElement(_,null,A.createElement(h,{dimColor:true},"in "),A.createElement(h,{color:"cyan"},oi(r.input)),A.createElement(h,{dimColor:true}," out "),A.createElement(h,{color:"green"},oi(r.output)),(r.cacheCreationTokens||r.cacheReadTokens)&&A.createElement(A.Fragment,null,A.createElement(h,{dimColor:true}," cache-w "),A.createElement(h,{color:"magenta"},oi(r.cacheCreationTokens||0)),A.createElement(h,{dimColor:true}," cache-r "),A.createElement(h,{color:"blue"},oi(r.cacheReadTokens||0))),A.createElement(h,{dimColor:true}," \u2502 context "),A.createElement(h,{color:"yellow"},oi(i)),A.createElement(h,{dimColor:true},"/"),A.createElement(h,{color:"yellow"},oi(o)),A.createElement(h,{dimColor:true}," ("),A.createElement(h,{color:a>.8?"red":a>.5?"yellow":"green"},l,"%"),A.createElement(h,{dimColor:true},")")))}),A.createElement(h,{color:"gray"},"\u2500".repeat(Math.max(t,10))),A.createElement(h,{dimColor:true},"Tip: Press Q or ESC to return"))};var xx=({messages:s})=>s.length===0?null:A.createElement(_,{flexDirection:"column",marginBottom:1},A.createElement(_,null,A.createElement(h,{color:"magenta",bold:true},"\u250C\u2500 "),A.createElement(h,{color:"magenta",bold:true},"Queued (",s.length,")"),A.createElement(h,{color:"magenta",bold:true}," \u2500")),s.map((e,t)=>A.createElement(_,{key:e.id,paddingLeft:1},A.createElement(h,{color:"gray"},"\u2502 "),A.createElement(h,{color:"cyan",bold:true},"> "),A.createElement(h,{color:"white"},e.text.length>70?e.text.substring(0,67)+"...":e.text))),A.createElement(_,null,A.createElement(h,{color:"magenta",bold:true},"\u2514\u2500"),A.createElement(h,{dimColor:true}," Press "),A.createElement(h,{color:"yellow"},"\u2191"),A.createElement(h,{dimColor:true}," to edit queued messages")));var Sx=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],p$=A.memo(({agent:s})=>{let[e,t]=A.useState(0);A.useEffect(()=>{if(s.status!=="running")return;let a=setInterval(()=>t(l=>(l+1)%Sx.length),200);return ()=>clearInterval(a)},[s.status]);let n=s.status==="completed"?"\u2713":s.status==="error"?"\u2717":Sx[e],r=s.status==="completed"?"green":s.status==="error"?"red":"yellow",o=s.status==="completed"?"done":s.status==="error"?"err":s.elapsed>0?`${s.elapsed}s`:"..",i=s.toolCount>0?` ${s.toolCount}t`:"";return A.createElement(h,null,A.createElement(h,{color:r},n),A.createElement(h,{bold:true}," ",s.role),A.createElement(h,{dimColor:true},"(",o,i,")"))}),kx=A.memo(({agents:s})=>s.length===0?null:A.createElement(_,{flexDirection:"row",flexWrap:"wrap"},A.createElement(h,{dimColor:true}," "),s.map((e,t)=>A.createElement(_,{key:e.id,flexDirection:"row"},t>0&&A.createElement(h,{dimColor:true}," \u2502 "),A.createElement(p$,{agent:e})))));vu();ne();var v$=[".png",".jpg",".jpeg",".gif",".webp",".bmp",".svg"],C$=s=>{let e=new WeakSet;try{return JSON.stringify(s,(t,n)=>{if(typeof n=="bigint")return n.toString();if(n instanceof Error)return {name:n.name,message:n.message,stack:n.stack};if(typeof n=="function")return "[Function]";if(typeof n=="object"&&n!==null){if(e.has(n))return "[Circular]";e.add(n);}return n})}catch{try{return String(s)}catch{return "[Unserializable]"}}};function w$(s){if(!s)return false;let e=s.trim(),t=e.toLowerCase(),n=v$.some(o=>t.endsWith(o)),r=e.startsWith("/")||e.startsWith("./")||e.startsWith("~/")||e.includes("/")&&n;return n&&r}var _x=({staticEntries:s=[],pendingEntries:e=[],isRunning:t,statusText:n="",tokenStats:r,streamingTokens:o=0,streamingStartTime:i=null,accumulatedRunTime:a=0,version:l=ai,provider:c="OpenAI",model:u="gpt-4",workDir:d=process.cwd(),showHeader:p=true,thinkingEnabled:g=true,selectMenuOptions:f=null,textPromptOptions:y=null,contextMenuActive:b=false,agentContextScreenActive:C=false,compressionMode:T="sync",compactionThreshold:S=.85,agentContextStats:E=[],runMode:v="single",networkStats:I,cooperateStats:D,commandOutput:O=[],attachedImages:k=[],interruptInputActive:M=false,queuedMessages:N=[],currentPlanSteps:x=[],sidebarAgents:B=[],backgroundTasks:H=[],bgSelectedIndex:W=-1,onBgKill:U,onBgRemove:z,onBgNavigate:q,onBgToggleExpand:P,getCompletions:$,onStaticRendered:F,onSubmit:V,onInterrupt:Z,onExit:ae,onContextMenuToggle:be,onAgentContextScreenToggle:Pe,onClearCommandOutput:oe,onAttachImage:X,onClearImages:te,onInterruptInputSubmit:Y,onInterruptInputCancel:Ae,onShowInterruptInput:ge,onScrollUp:_e,onScrollDown:he,onPageUp:Se,onPageDown:pe,onScrollToTop:J,onScrollToBottom:fe})=>{let[K,re]=useState(""),[se,ve]=useState([]),[Be,ce]=useState(-1),[L,ee]=useState(null),[me,le]=useState(true),we=useMemo(()=>!$||!K.startsWith("/")?[]:$(K),[K,$]),We=useContext(po);useEffect(()=>{if(!We?.internal_eventEmitter||!X)return;let ie=$e=>{de("CLI_APP",`\u{1F4CE} Received image-paste event from vendor Ink: ${$e.name}`),X($e);};return We.internal_eventEmitter.on("image-paste",ie),()=>{We.internal_eventEmitter.off("image-paste",ie);}},[We,X]),useEffect(()=>{y?.defaultValue&&re(y.defaultValue);},[y?.defaultValue]),ft((ie,$e)=>{if($e.escape){if(C)return;L?ee(null):O.length>0&&oe&&oe();}$e.pageUp&&Se&&Se(),$e.pageDown&&pe&&pe(),$e.upArrow&&$e.ctrl&&_e&&_e(),$e.downArrow&&$e.ctrl&&he&&he(),$e.ctrl&&ie==="a"&&$e.shift&&J&&J(),$e.ctrl&&ie==="z"&&$e.shift&&fe&&fe(),$e.ctrl&&ie==="o"&&le(it=>!it);},{isActive:!f&&!L});let ye=e.filter(ie=>ie.type!=="thinking"&&ie.type!=="reasoning"),Ne=ie=>{if(!ie)return false;let{content:$e}=ie;return typeof $e=="string"?$e.trim().length>0:Array.isArray($e)?$e.some(it=>{if(!it||typeof it!="object"||!("type"in it))return false;switch(it.type){case "text":return typeof it.text=="string"&&it.text.trim().length>0;case "image_url":return true;case "tool_use":return true;case "tool_result":return it.content!==null&&it.content!==void 0&&String(it.content).trim().length>0;case "thinking":return typeof it.thinking=="string"&&it.thinking.trim().length>0;case "redacted_thinking":return typeof it.data=="string"&&it.data.trim().length>0;default:return true}}):false},ot=ie=>{if(ie.message){let db=Ne(ie.message);if(ie.type==="user"&&!db&&process.env.CLI_DEBUG==="1"){let GI=C$(ie.message.content).slice(0,100);de("APP",`User message filtered out! entry.id=${ie.id}, message.role=${ie.message.role}, content=${GI}`);}return db}let $e=typeof ie.text=="string"&&ie.text.trim().length>0,it=ie.type==="plan"&&!!ie.planSteps&&ie.planSteps.length>0,ao=(ie.type==="pipeline_node_start"||ie.type==="pipeline_node_complete"||ie.type==="pipeline_node_fail"||ie.type==="pipeline_node_retry")&&(ie.pipelineNode||ie.pipelineNodeRetry),FI=(ie.type==="network_node_start"||ie.type==="network_node_complete"||ie.type==="network_node_fail")&&ie.networkNode,UI=(ie.type==="ccb_review"||ie.type==="ccb_agent_review"||ie.type==="ccb_retry"||ie.type==="ccb_failed")&&!!(ie.ccbReview||ie.ccbAgentReview||ie.ccbRetry||ie.ccbFailed),jI=ie.type==="pipeline_dag"&&!!ie.pipelineDAG;return !!($e||it||ao||FI||UI||jI)},Ht=useMemo(()=>ye.filter(ot),[ye]),Fr=useMemo(()=>{let ie=s.filter(ot);return process.env.CLI_DEBUG==="1"&&de("APP",`visibleStaticEntries: staticEntries=${s.length}, visible=${ie.length}, types=${ie.map($e=>$e.type).join(",")}`),ie},[s]),br=A.useCallback((ie,$e)=>ie,[]),Sl=useMemo(()=>{let ie=[];return p&&ie.push(A.createElement(OT,{key:"static-header",version:l,provider:c,model:u,workDir:d})),Fr.forEach(($e,it)=>{ie.push(A.createElement(_,{key:`static-entry-${$e.id}`,flexDirection:"column",marginTop:it>0?1:0},A.createElement(If,{entry:$e,thinkingCollapsed:me})));}),ie},[p,l,c,u,d,Fr]);if(useEffect(()=>{!p&&s.length===0||F?.();},[p,s.length,F]),C)return A.createElement(Tx,{agentContextStats:E,onClose:()=>Pe?.()});let Ai=ie=>{if(y){if(!ie.trim()&&!y.allowEmpty)return;y.onSubmit(ie),re("");return}let $e=k.length>0,it=ie.trim().length>0;(it||$e)&&(it&&ve([...se,ie]),ce(-1),re(""),V(ie,$e?k:void 0));},Cs=()=>{if(se.length===0)return;let ie=Be+1;ie<se.length&&(ce(ie),re(se[se.length-1-ie]));},Ur=()=>{if(Be<=0){ce(-1),re("");return}let ie=Be-1;ce(ie),re(se[se.length-1-ie]);},OI=ie=>{if(!$)return null;let $e=$(ie);if($e.length===0)return null;if($e.length===1)return $e[0];let it=$e.map(ao=>({label:ao,value:ao,description:void 0}));return ee({message:"Select completion:",choices:it,initialIndex:0,onSelect:ao=>{re(ao),ee(null);},onCancel:()=>{ee(null);}}),null},BI=v==="assistant";return A.createElement(_,{flexDirection:"column",width:"100%"},A.createElement(Kl,{items:Sl},br),A.createElement(_,{flexDirection:"column",width:"100%"},Ht.map((ie,$e)=>A.createElement(_,{key:`pending-wrapper-${ie.id}`,flexDirection:"column",marginTop:1},A.createElement(If,{entry:ie,thinkingCollapsed:me}))),!me&&(()=>{let ie=[...e].reverse().find($e=>($e.type==="thinking"||$e.type==="reasoning")&&$e.text);return ie?A.createElement(_,{flexDirection:"column",marginTop:1},A.createElement(h,{color:"cyan",bold:true},"\u25CF Thinking (latest, ctrl+o to collapse)"),A.createElement(_,{key:`thinking-expanded-${ie.id}`,flexDirection:"column",marginTop:1},A.createElement(gu,{content:ie.text,collapsed:false,type:ie.type,timestamp:ie.timestamp,sourceLabel:ie.sourceLabel}))):null})()),A.createElement(h,null,`
|
|
3766
|
-
`),BI&&A.createElement(kx,{agents:B}),M&&Y&&Ae?A.createElement(_,{flexShrink:0,flexDirection:"column"},A.createElement(wx,{onSubmit:Y,onCancel:Ae})):A.createElement(_,{flexShrink:0,flexDirection:"column"},N.length>0&&A.createElement(xx,{messages:N}),A.createElement(bx,{inputValue:K,isRunning:t,statusText:n,tokenStats:r,streamingTokens:o,streamingStartTime:i,accumulatedRunTime:a,provider:c,model:u,menuActive:!!f||!!L,promptActive:!!y,promptMessage:y?.message,promptHint:y?.hint,promptOnCancel:y?.onCancel,thinkingEnabled:g,contextMenuActive:b,compressionMode:T,compactionThreshold:S,agentContextStats:E,runMode:v,networkStats:I,cooperateStats:D,currentPlanSteps:x,attachments:k,completions:we,onInputChange:ie=>{if(X&&w$(ie)){X(ie.trim());return}re(ie);},onSubmit:Ai,onInterrupt:Z,onExit:ae,onHistoryUp:Cs,onHistoryDown:Ur,onTabComplete:OI,onContextMenuToggle:be,onAgentContextScreenToggle:Pe,onRemoveAttachment:te?ie=>{te();}:void 0,onPasteImage:X,onShowInterruptInput:ge,backgroundTasks:H,bgSelectedIndex:W,onBgKill:U,onBgRemove:z,onBgNavigate:q,onBgToggleExpand:P}),f&&A.createElement(Mf,{message:f.message,choices:f.choices,initialIndex:f.initialIndex,hint:f.hint,header:f.header,allowTextInput:f.allowTextInput,onSelect:f.onSelect,onCancel:f.onCancel,onExit:ae}),L&&A.createElement(Mf,{message:L.message,choices:L.choices,initialIndex:L.initialIndex,hint:L.hint,onSelect:L.onSelect,onCancel:L.onCancel,onExit:ae}),O.length>0&&A.createElement(_,{flexDirection:"column",paddingX:2,paddingY:1,borderStyle:"round",borderColor:"gray"},O.map((ie,$e)=>A.createElement(h,{key:$e},ie)))))};ne();qr();var wu=class s{appInstance=null;messages=[];staticEntries=[];nextEntryId=1;isRunning=false;statusText="";tokenStats={input:0,output:0,total:0,contextWindow:void 0,tokensUsedForContext:0,pressure:0};version="";provider="";model="";workDir="";showHeader=true;thinkingEnabled=true;callbacks;forceUpdate=null;selectMenuOptions=null;textPromptOptions=null;contextMenuActive=false;agentContextScreenActive=false;commandOutput=[];getCompletions;memoryLogTimer=null;ttyWriteGuardActive=false;allowTTYWriteDepth=0;originalStdoutWrite=null;originalStderrWrite=null;inkStdout=null;altScreenEnabled=false;attachedImages=[];pendingEntries=[];getPendingMessages=null;interruptInputActive=false;runMode="single";streamingTokens=0;streamingStartTime=null;accumulatedRunTime=0;runningStartTime=null;compressionMode="sync";compactionThreshold=.85;agentContextStats=new Map;networkStats=null;cooperateStats=null;currentPlanSteps=[];backgroundTasks=[];bgNextId=1;bgSelectedIndex=-1;sidebarAgents=[];static MAX_QUEUED_STATIC=50;constructor(e){this.callbacks=e;}addBackgroundTask(e,t){let n=this.bgNextId++;return this.backgroundTasks=[...this.backgroundTasks,{id:n,command:e,pid:t,status:"running",startTime:Date.now(),output:[]}],this.bgSelectedIndex<0&&(this.bgSelectedIndex=0),this.forceUpdate?.(),m.info("BG_TASK",`Added background task #${n}: ${e} (pid=${t})`),n}updateBackgroundTask(e,t){this.backgroundTasks=this.backgroundTasks.map(n=>{if(n.id!==e)return n;let r={...n};return t.status&&(r.status=t.status),t.exitCode!==void 0&&(r.exitCode=t.exitCode),t.outputLine&&(r.output=[...n.output.slice(-19),t.outputLine]),r}),this.forceUpdate?.();}removeBackgroundTask(e){this.backgroundTasks.findIndex(n=>n.id===e)<0||(this.backgroundTasks=this.backgroundTasks.filter(n=>n.id!==e),this.backgroundTasks.length===0?this.bgSelectedIndex=-1:this.bgSelectedIndex>=this.backgroundTasks.length&&(this.bgSelectedIndex=this.backgroundTasks.length-1),this.forceUpdate?.());}killBackgroundTask(e){let t=this.backgroundTasks.find(n=>n.id===e);if(!(!t||t.status!=="running")){try{process.kill(t.pid,"SIGTERM"),m.info("BG_TASK",`Killed background task #${e} (pid=${t.pid})`);}catch(n){m.warn("BG_TASK",`Failed to kill pid ${t.pid}: ${n}`);}this.updateBackgroundTask(e,{status:"killed"});}}bgMoveSelection(e){this.backgroundTasks.length!==0&&(e==="up"?this.bgSelectedIndex=Math.max(0,this.bgSelectedIndex-1):this.bgSelectedIndex=Math.min(this.backgroundTasks.length-1,this.bgSelectedIndex+1),this.forceUpdate?.());}bgToggleExpand(){if(this.bgSelectedIndex<0||this.bgSelectedIndex>=this.backgroundTasks.length)return;let e=this.backgroundTasks[this.bgSelectedIndex];this.backgroundTasks=this.backgroundTasks.map(t=>t.id===e.id?{...t,expanded:!t.expanded}:t),this.forceUpdate?.();}getBackgroundTasks(){return this.backgroundTasks}getBgSelectedIndex(){return this.bgSelectedIndex}hasActiveBackgroundTasks(){return this.backgroundTasks.length>0}updateBackgroundTaskByPid(e,t){let n=this.backgroundTasks.find(r=>r.pid===e);n&&this.updateBackgroundTask(n.id,t);}setCompletionFunction(e){this.getCompletions=e;}start(){m.info("INK","Starting Ink runtime"),this.startMemorySampler();let e=()=>{let[,a]=useState(0);return useLayoutEffect(()=>(this.forceUpdate=()=>{let l=Date.now();m.debug("RUNTIME",`>>> forceUpdate called, staticEntries=${this.staticEntries.length}, pendingEntries=${this.pendingEntries.length}`),a(u=>u+1);let c=Date.now()-l;c>50&&m.warn("RUNTIME",`\u26A0\uFE0F forceUpdate slow: setCounter took ${c}ms`);},()=>{this.forceUpdate=null;}),[]),A.createElement(_x,{staticEntries:this.staticEntries,pendingEntries:this.pendingEntries,isRunning:this.isRunning,statusText:this.statusText,tokenStats:this.tokenStats,streamingTokens:this.streamingTokens,streamingStartTime:this.streamingStartTime,accumulatedRunTime:this.accumulatedRunTime,compressionMode:this.compressionMode,compactionThreshold:this.compactionThreshold,agentContextStats:this.getAgentContextStats(),runMode:this.runMode,networkStats:this.networkStats||void 0,cooperateStats:this.cooperateStats||void 0,currentPlanSteps:this.currentPlanSteps,sidebarAgents:this.getSidebarAgents(),version:this.version,provider:this.provider,model:this.model,workDir:this.workDir,showHeader:this.showHeader,thinkingEnabled:this.thinkingEnabled,selectMenuOptions:this.selectMenuOptions,textPromptOptions:this.textPromptOptions,contextMenuActive:this.contextMenuActive,agentContextScreenActive:this.agentContextScreenActive,commandOutput:this.commandOutput,attachedImages:this.attachedImages,interruptInputActive:this.interruptInputActive,queuedMessages:this.getQueuedMessagesForDisplay(),backgroundTasks:this.backgroundTasks,bgSelectedIndex:this.bgSelectedIndex,onBgKill:l=>this.killBackgroundTask(l),onBgRemove:l=>this.removeBackgroundTask(l),onBgNavigate:l=>this.bgMoveSelection(l),onBgToggleExpand:()=>this.bgToggleExpand(),getCompletions:this.getCompletions,onStaticRendered:void 0,onSubmit:(l,c)=>{let u=c||this.attachedImages;this.attachedImages=[],this.callbacks.onSubmit(l,u);},onInterrupt:this.callbacks.onInterrupt,onExit:this.callbacks.onExit,onContextMenuToggle:()=>{this.contextMenuActive=!this.contextMenuActive,this.forceUpdate?.();},onAgentContextScreenToggle:()=>{this.agentContextScreenActive=!this.agentContextScreenActive,this.forceUpdate?.();},onClearCommandOutput:()=>{this.clearCommandOutput();},onAttachImage:l=>{this.attachImage(l);},onClearImages:()=>{this.clearAttachedImages();},onInterruptInputSubmit:l=>{this.handleInterruptInputSubmit(l);},onInterruptInputCancel:()=>{this.hideInterruptInput();},onShowInterruptInput:()=>{this.showInterruptInput();},onScrollUp:()=>this.appInstance?.scrollUp?.(),onScrollDown:()=>this.appInstance?.scrollDown?.(),onPageUp:()=>this.appInstance?.pageUp?.(),onPageDown:()=>this.appInstance?.pageDown?.(),onScrollToTop:()=>this.appInstance?.scrollToTop?.(),onScrollToBottom:()=>this.appInstance?.scrollToBottom?.()})},t=ht(),n=Hl(),r=t||n;t&&m.info("INK","WSL detected, disabling incremental rendering for compatibility"),n&&m.info("INK","Windows detected, disabling incremental rendering for compatibility");let o=process.env.NEOX_ALT_SCREEN;this.altScreenEnabled=o==="1"||o==="true"||n;let i=this.installTTYWriteGuard();this.appInstance=vo(A.createElement(e,null),{stdout:i,stdin:process.stdin,exitOnCtrlC:false,patchConsole:false,incrementalRendering:!r,useAltScreen:this.altScreenEnabled}),m.info("INK",`Renderer mode: ${this.altScreenEnabled?"alt-screen":"inline"}`),t&&setTimeout(()=>{this.forceUpdate&&(m.debug("INK","WSL startup render nudge"),this.forceUpdate());},0);try{process.stdout.isTTY&&!process.stdout.destroyed&&(this.writeDirectStdout("\x1B[?2004h"),m.info("INK","Bracketed paste mode enabled for image paste detection"));}catch(a){m.warn("INK","Failed to enable bracketed paste mode",{error:a});}if(this.altScreenEnabled)try{process.stdout.isTTY&&!process.stdout.destroyed&&(this.writeDirectStdout("\x1B[?1000h"),this.writeDirectStdout("\x1B[?1002h"),this.writeDirectStdout("\x1B[?1006h"),m.info("INK","Mouse SGR mode enabled for wheel scrolling"));}catch(a){m.warn("INK","Failed to enable mouse mode",{error:a});}try{m.debug("TTY_STATE","\u{1F6E1}\uFE0F [INK] Re-registering SIGTSTP ignore handler after Ink starts"),process.removeAllListeners("SIGTSTP"),process.on("SIGTSTP","ignore"),m.debug("TTY_STATE","\u2705 [INK] SIGTSTP handler re-registered (Ctrl+Z ignored)"),process.env.CLI_DEBUG==="1"&&m.debug("INK","SIGTSTP handler registered (Ctrl+Z ignored)");}catch{m.debug("TTY_STATE","\u26A0\uFE0F [INK] SIGTSTP not supported on this platform"),process.env.CLI_DEBUG==="1"&&m.debug("INK","SIGTSTP not supported on this platform");}m.info("INK","Ink runtime started");}stop(){try{process.stdout.isTTY&&!process.stdout.destroyed&&(this.writeDirectStdout("\x1B[?2004l"),m.debug("INK","Bracketed paste mode disabled"));}catch(e){m.debug("INK","Failed to disable bracketed paste mode (ignored)",{error:e});}if(this.altScreenEnabled)try{process.stdout.isTTY&&!process.stdout.destroyed&&(this.writeDirectStdout("\x1B[?1006l"),this.writeDirectStdout("\x1B[?1002l"),this.writeDirectStdout("\x1B[?1000l"),m.debug("INK","Mouse mode disabled"));}catch(e){m.debug("INK","Failed to disable mouse mode (ignored)",{error:e});}this.appInstance&&(this.appInstance.unmount(),this.appInstance=null,m.info("INK","Ink runtime stopped")),this.restoreTTYWriteGuard(),this.stopMemorySampler(),this.altScreenEnabled=false;}installTTYWriteGuard(){if(this.ttyWriteGuardActive)return this.inkStdout??process.stdout;this.originalStdoutWrite=process.stdout.write.bind(process.stdout),this.originalStderrWrite=process.stderr.write.bind(process.stderr);let e=t=>(n,r,o)=>{if(typeof r=="function"&&(o=r,r=void 0),this.allowTTYWriteDepth>0){let i=t==="stdout"?this.originalStdoutWrite:this.originalStderrWrite;if(i)return i(n,r,o)}return this.handleSuppressedWrite(t,n),typeof o=="function"&&o(),true};return process.stdout.write=e("stdout"),process.stderr.write=e("stderr"),this.inkStdout=this.createInkStdoutProxy(),this.ttyWriteGuardActive=true,m.info("INK","TTY output guard enabled"),this.inkStdout}restoreTTYWriteGuard(){this.ttyWriteGuardActive&&(this.originalStdoutWrite&&(process.stdout.write=this.originalStdoutWrite),this.originalStderrWrite&&(process.stderr.write=this.originalStderrWrite),this.ttyWriteGuardActive=false,this.inkStdout=null,m.info("INK","TTY output guard disabled"));}createInkStdoutProxy(){let e=process.stdout,t=this.originalStdoutWrite||e.write.bind(e);return new Proxy(e,{get:(n,r,o)=>{if(r==="write")return (a,l,c)=>this.withDirectTTYWrite(()=>t(a,l,c));let i=Reflect.get(n,r,o);return typeof i=="function"?i.bind(n):i}})}withDirectTTYWrite(e){this.allowTTYWriteDepth+=1;try{return e()}finally{this.allowTTYWriteDepth=Math.max(0,this.allowTTYWriteDepth-1);}}writeDirectStdout(e){let t=this.originalStdoutWrite||process.stdout.write.bind(process.stdout);this.withDirectTTYWrite(()=>{t(e);});}handleSuppressedWrite(e,t){if(t==null)return;let n="";if(typeof t=="string")n=t;else if(Buffer.isBuffer(t))n=t.toString("utf8");else try{n=String(t);}catch{return}if(!n||n.trim().length===0)return;let r=n.length>2e3?`${n.slice(0,2e3)}...`:n;m.warn("TTY_SUPPRESS",`[${e}] ${r}`);}addMessage(e){this.messages=[...this.messages.slice(-4),e],this.forceUpdate?.();}addEntry(e){let t={...e,id:this.nextEntryId++,timestamp:new Date};if(e.type==="user"){let n=!!e.message,r=e.message?.content;m.debug("INK_RUNTIME",`[addEntry] user entry id=${t.id}, hasMessage=${n}, contentType=${typeof r}, isArray=${Array.isArray(r)}`);}return this.staticEntries.length>=s.MAX_QUEUED_STATIC&&(m.warn("INK_RUNTIME",`Static queue reached limit (${this.staticEntries.length}). Forcing immediate render to prevent OOM.`),this.forceUpdate?.(),setImmediate(()=>{this.clearStaticEntries();})),this.staticEntries=[...this.staticEntries,t],m.debug("INK_RUNTIME",`Queued static entry ${t.id}. Pending static: ${this.staticEntries.length}, type: ${e.type}, forceUpdate: ${!!this.forceUpdate}`),this.forceUpdate?this.forceUpdate():setImmediate(()=>{this.forceUpdate?.();}),t.id}updateEntry(e,t){let n=this.staticEntries.findIndex(o=>o.id===e);if(n>=0){this.staticEntries=this.staticEntries.map((o,i)=>i===n?{...o,...t}:o),this.forceUpdate?.();return}let r=this.pendingEntries.findIndex(o=>o.id===e);r>=0&&(this.pendingEntries=this.pendingEntries.map((o,i)=>i===r?{...o,...t}:o),this.forceUpdate?.());}getEntry(e){return this.staticEntries.find(t=>t.id===e)||this.pendingEntries.find(t=>t.id===e)}addPendingEntry(e){let t={...e,id:this.nextEntryId++,timestamp:new Date};if(this.pendingEntries.length>=10){m.warn("INK_RUNTIME",`Too many pending entries (${this.pendingEntries.length}). Auto-committing oldest.`);let r=this.pendingEntries[0];this.staticEntries=[...this.staticEntries,r],this.pendingEntries=this.pendingEntries.slice(1);}return this.pendingEntries=[...this.pendingEntries,t],m.debug("INK_RUNTIME",`Added pending entry ${t.id}. Pending: ${this.pendingEntries.length}`),this.forceUpdate?.(),t.id}updatePendingEntry(e,t){let n=this.pendingEntries.findIndex(r=>r.id===e);n>=0&&(this.pendingEntries=this.pendingEntries.map((r,o)=>o===n?{...r,...t}:r),this.forceUpdate?.());}updatePendingEntryByKey(e,t){let n=this.pendingEntries.findIndex(r=>r.entryKey===e);if(n>=0)this.pendingEntries=this.pendingEntries.map((r,o)=>o===n?{...r,...t,entryKey:e,timestamp:new Date}:r);else {let r={...t,entryKey:e,id:this.nextEntryId++,timestamp:new Date};this.pendingEntries=[...this.pendingEntries,r];}this.forceUpdate?.();}commitPendingEntryByKey(e){let t=this.pendingEntries.findIndex(n=>n.entryKey===e);if(t>=0){let n=this.pendingEntries[t];return this.pendingEntries=this.pendingEntries.filter((r,o)=>o!==t),this.staticEntries=[...this.staticEntries,{...n,isStreaming:false,isComplete:true}],m.debug("INK_RUNTIME",`Committed entry by key ${e}. Static: ${this.staticEntries.length}, Pending: ${this.pendingEntries.length}`),this.forceUpdate?.(),true}return false}commitPendingEntry(e){let t=this.pendingEntries.findIndex(n=>n.id===e);if(t>=0){let n=this.pendingEntries[t];this.pendingEntries=this.pendingEntries.filter((r,o)=>o!==t),this.staticEntries=[...this.staticEntries,n],m.debug("INK_RUNTIME",`Committed entry ${e}. Static: ${this.staticEntries.length}, Pending: ${this.pendingEntries.length}`),this.forceUpdate?.();}else m.warn("INK_RUNTIME",`Cannot commit entry ${e} - not found in pending entries`);}clearPendingEntries(){this.pendingEntries.length>0&&(this.pendingEntries=[],this.forceUpdate?.());}commitAllPendingEntries(){if(this.pendingEntries.length>0){let e=this.pendingEntries.map(t=>({...t,isStreaming:false,isComplete:true}));this.staticEntries=[...this.staticEntries,...e],this.pendingEntries=[],m.debug("INK_RUNTIME",`Committed ${e.length} pending entries on run complete`),this.forceUpdate?.();}}updateStreamingStats(e){this.streamingTokens=e,this.streamingStartTime||(this.streamingStartTime=Date.now()),this.forceUpdate?.();}resetStreamingStats(){this.streamingTokens=0,this.streamingStartTime=null;}getAccumulatedRunTime(){if(this.isRunning&&this.runningStartTime!==null){let e=Math.floor((Date.now()-this.runningStartTime)/1e3);return this.accumulatedRunTime+e}return this.accumulatedRunTime}resetAccumulatedRunTime(){this.accumulatedRunTime=0,this.runningStartTime=null,this.forceUpdate?.();}setCompressionMode(e){this.compressionMode!==e&&(this.compressionMode=e,this.forceUpdate?.());}setCompactionThreshold(e){this.compactionThreshold!==e&&(this.compactionThreshold=e,this.forceUpdate?.());}updateAgentContext(e,t){this.agentContextStats.set(e,t),this.forceUpdate?.();}clearAgentContext(e){this.agentContextStats.has(e)&&(this.agentContextStats.delete(e),this.forceUpdate?.());}clearAllAgentContexts(){this.agentContextStats.size>0&&(this.agentContextStats.clear(),this.forceUpdate?.());}getAgentContextStats(){return Array.from(this.agentContextStats.values()).sort((t,n)=>t.agentId==="supervisor"?-1:n.agentId==="supervisor"?1:t.agentId.localeCompare(n.agentId))}updateLastMessage(e){if(this.messages.length===0)return;let t=this.messages[this.messages.length-1];if(typeof t.content=="string")t.content=e;else if(Array.isArray(t.content)){let n=t.content.find(r=>r.type==="text");n&&"text"in n&&(n.text=e);}this.forceUpdate?.();}getLastMessageText(){if(this.messages.length===0)return "";let e=this.messages[this.messages.length-1];if(typeof e.content=="string")return e.content;if(Array.isArray(e.content)){let t=e.content.find(n=>n.type==="text");if(t&&"text"in t)return t.text||""}return ""}setRunning(e){if(this.isRunning!==e){if(e)this.runningStartTime=Date.now();else if(this.runningStartTime!==null){let t=Math.floor((Date.now()-this.runningStartTime)/1e3);this.accumulatedRunTime+=t,this.runningStartTime=null;}this.isRunning=e,this.forceUpdate?.();}}triggerForceUpdate(){this.forceUpdate?.();}setStatusText(e){this.statusText!==e&&(this.statusText=e,this.forceUpdate?.());}setTokenStats(e){m.info("DEBUG_CTX",`InkRuntime.setTokenStats: received contextWindow=${e.contextWindow}, current=${this.tokenStats.contextWindow}`);let t=e.contextWindow!==void 0?e.contextWindow:this.tokenStats.contextWindow;(this.tokenStats.input!==e.input||this.tokenStats.output!==e.output||this.tokenStats.total!==e.total||this.tokenStats.contextWindow!==t||this.tokenStats.tokensUsedForContext!==e.tokensUsedForContext||this.tokenStats.pressure!==e.pressure||this.tokenStats.toolTokens!==e.toolTokens||this.tokenStats.messageTokens!==e.messageTokens||this.tokenStats.systemTokens!==e.systemTokens||this.tokenStats.userTokens!==e.userTokens||this.tokenStats.assistantTokens!==e.assistantTokens||this.tokenStats.toolCallTokens!==e.toolCallTokens||this.tokenStats.toolResultTokens!==e.toolResultTokens||this.tokenStats.cacheCreationTokens!==e.cacheCreationTokens||this.tokenStats.cacheReadTokens!==e.cacheReadTokens)&&(this.tokenStats={...e,contextWindow:t,tokensUsedForContext:e.tokensUsedForContext??this.tokenStats.tokensUsedForContext,pressure:e.pressure??this.tokenStats.pressure},m.info("DEBUG_CTX",`InkRuntime.setTokenStats: after update contextWindow=${this.tokenStats.contextWindow}`),this.forceUpdate?.());}clearMessages(){m.warn("INK_RUNTIME",`clearMessages called! This will clear pending/static queues. Messages: ${this.messages.length}`),this.messages=[],this.staticEntries=[],this.pendingEntries=[],this.forceUpdate?.();}setCommandOutput(e){m.debug("INK_RUNTIME","Set command output",{lineCount:e.length}),this.commandOutput=e,this.forceUpdate?.();}clearCommandOutput(){m.debug("INK_RUNTIME","Clear command output"),this.commandOutput=[],this.forceUpdate?.();}attachImage(e){let t;if(typeof e=="string")if(e.startsWith("data:")){let r=e.match(/^data:([^;]+);base64,(.+)$/);if(r){let o=`image_${Date.now()}.png`;t={mediaType:r[1],data:r[2],name:o};}else {m.error("INK_RUNTIME","Invalid data URL format",{imageData:e});return}}else {let r=e.split("/").pop()||e;t={path:e,name:r};}else t=e;if(this.attachedImages.some(r=>r.path&&t.path&&r.path===t.path||r.data&&t.data&&r.data===t.data)){m.debug("INK_RUNTIME","Image already attached");return}this.attachedImages.push(t),m.info("INK_RUNTIME",`\u{1F4CE} Attached image #${this.attachedImages.length}: ${t.name||"unnamed"}`),this.forceUpdate?.();}clearAttachedImages(){this.attachedImages.length>0&&(m.debug("INK_RUNTIME",`Cleared ${this.attachedImages.length} attached images`),this.attachedImages=[],this.forceUpdate?.());}getAttachedImages(){return [...this.attachedImages]}showInterruptInput(){m.debug("INK_RUNTIME","Show interrupt input"),this.interruptInputActive=true,this.forceUpdate?.();}hideInterruptInput(){m.debug("INK_RUNTIME","Hide interrupt input"),this.interruptInputActive=false,this.forceUpdate?.();}handleInterruptInputSubmit(e){m.debug("INK_RUNTIME","Handle interrupt input submit",{text:e.substring(0,50)}),this.hideInterruptInput(),this.callbacks.onSubmit(e);}setGetPendingMessages(e){this.getPendingMessages=e;}getQueuedMessagesForDisplay(){return this.getPendingMessages?this.getPendingMessages().map((e,t)=>({id:t+1,text:e.text,timestamp:e.timestamp})):[]}hasQueuedMessages(){return this.getPendingMessages?this.getPendingMessages().length>0:false}addAgentSpawnEntry(e,t,n,r){return this.addEntry({type:"agent_spawn",agentId:e,agentIndex:t,agentStatus:"running",agentTask:n,agentModel:r,text:n})}addAgentProgressEntry(e,t,n,r){return this.addEntry({type:"agent_progress",agentId:e,agentIndex:t,agentStatus:"running",agentProgress:n,text:r})}addAgentCompleteEntry(e,t,n){return this.addEntry({type:"agent_complete",agentId:e,agentIndex:t,agentStatus:"completed",text:n})}addAgentErrorEntry(e,t,n){return this.addEntry({type:"agent_error",agentId:e,agentIndex:t,agentStatus:"error",agentError:n,text:n})}setVersion(e){this.version=e,this.forceUpdate?.();}setProvider(e){this.provider=e,this.forceUpdate?.();}setModel(e){this.model=e,this.forceUpdate?.();}setRunMode(e){this.runMode=e,e!=="network"&&(this.networkStats=null),this.forceUpdate?.();}upsertSidebarAgent(e){let t=this.sidebarAgents.find(n=>n.id===e.id);t?(t.role=e.role,t.task=e.task,t.status=e.status,e.toolCount!==void 0&&(t.toolCount=e.toolCount),e.tokens!==void 0&&(t.tokens=e.tokens),t.elapsed=Math.round((Date.now()-t.startTime)/1e3)):this.sidebarAgents.push({id:e.id,role:e.role,task:e.task,status:e.status,toolCount:e.toolCount??0,tokens:e.tokens??0,elapsed:0,startTime:Date.now()}),this.forceUpdate?.();}removeSidebarAgent(e){this.sidebarAgents=this.sidebarAgents.filter(t=>t.id!==e),this.forceUpdate?.();}clearSidebarAgents(){this.sidebarAgents=[],this.forceUpdate?.();}getSidebarAgents(){let e=Date.now();for(let t of this.sidebarAgents)t.status==="running"&&(t.elapsed=Math.round((e-t.startTime)/1e3));return this.sidebarAgents}updateNetworkStats(e){this.networkStats||(this.networkStats={teamSize:0,activeAgents:0,totalInputTokens:0,totalOutputTokens:0}),Object.assign(this.networkStats,e),this.forceUpdate?.();}clearNetworkStats(){this.networkStats=null,this.forceUpdate?.();}getNetworkStats(){return this.networkStats}updateCooperateStats(e){this.cooperateStats||(this.cooperateStats={models:[],totalInputTokens:0,totalOutputTokens:0}),Object.assign(this.cooperateStats,e),this.forceUpdate?.();}clearCooperateStats(){this.cooperateStats=null,this.forceUpdate?.();}getCooperateStats(){return this.cooperateStats}setPlanSteps(e){this.currentPlanSteps=e,this.forceUpdate?.();}getPlanSteps(){return this.currentPlanSteps}clearPlanSteps(){this.currentPlanSteps=[],this.forceUpdate?.();}setWorkDir(e){this.workDir=e,this.forceUpdate?.();}setShowHeader(e){this.showHeader=e,this.forceUpdate?.();}setThinkingEnabled(e){this.thinkingEnabled!==e&&(this.thinkingEnabled=e,this.forceUpdate?.());}showSelectMenu(e){if(m.debug("INK_RUNTIME","Show select menu",{options:e}),process.stdin.isTTY&&!process.stdin.destroyed){let t=process.stdin.isPaused?.()||false;process.stdin.isRaw||false;if(t){process.env.CLI_DEBUG==="1"&&m.debug("INK_RUNTIME",`showSelectMenu: Resuming stdin (wasPaused=${t})`);try{process.stdin.resume(),m.info("INK_RUNTIME","\u2713 Stdin resumed for SelectMenu");}catch(r){m.error("INK_RUNTIME","Failed to resume stdin for SelectMenu",{error:r});}}}this.selectMenuOptions=e,this.forceUpdate?.();}hideSelectMenu(){if(m.debug("INK_RUNTIME","Hide select menu"),this.selectMenuOptions){let e=this.selectMenuOptions.choices.length+5;process.stdout.write(S$.eraseLines(e));}this.selectMenuOptions=null,this.forceUpdate?.(),process.nextTick(()=>{this.forceUpdate?.();});}isSelectMenuActive(){return this.selectMenuOptions!==null}updateSelectMenuIndex(e){if(!this.selectMenuOptions)return;let t=Math.max(0,this.selectMenuOptions.choices.length-1),n=Math.max(0,Math.min(e,t));this.selectMenuOptions={...this.selectMenuOptions,initialIndex:n},this.forceUpdate?.();}showTextPrompt(e){if(m.debug("INK_RUNTIME","Show text prompt",{options:e}),process.stdin.isTTY&&!process.stdin.destroyed){let t=process.stdin.isPaused?.()||false;if(t){process.env.CLI_DEBUG==="1"&&m.debug("INK_RUNTIME",`showTextPrompt: Resuming stdin (wasPaused=${t})`);try{process.stdin.resume(),m.info("INK_RUNTIME","\u2713 Stdin resumed for TextPrompt");}catch(n){m.error("INK_RUNTIME","Failed to resume stdin for TextPrompt",{error:n});}}}this.textPromptOptions=e,this.forceUpdate?.();}hideTextPrompt(){m.debug("INK_RUNTIME","Hide text prompt"),this.textPromptOptions=null,this.forceUpdate?.();}showContextMenu(){m.debug("INK_RUNTIME","Show context menu"),this.contextMenuActive=true,this.forceUpdate?.();}hideContextMenu(){m.debug("INK_RUNTIME","Hide context menu"),this.contextMenuActive=false,this.forceUpdate?.();}getContextMenuActive(){return this.contextMenuActive}clearStaticEntries(){if(this.staticEntries.length===0)return;let e=this.staticEntries.length;m.debug("INK_RUNTIME",`Clearing ${e} static entries from memory`),this.staticEntries=[],global.gc&&e>10&&(m.debug("INK_RUNTIME","Triggering manual GC after clearing entries"),setImmediate(()=>{global.gc&&global.gc();}));}startMemorySampler(){this.memoryLogTimer||process.env.INK_MEM!=="1"||(this.memoryLogTimer=setInterval(()=>{let e=process.memoryUsage(),t=n=>Math.round(n/1024/1024*10)/10;m.info("INK_MEM","usage",{rssMB:t(e.rss),heapUsedMB:t(e.heapUsed),heapTotalMB:t(e.heapTotal),externalMB:t(e.external),arrayBuffersMB:t(e.arrayBuffers??0),pendingEntries:this.pendingEntries.length,queuedStatic:this.staticEntries.length,isRunning:this.isRunning});},1e4));}stopMemorySampler(){this.memoryLogTimer&&(clearInterval(this.memoryLogTimer),this.memoryLogTimer=null);}};ne();ja();var A$=s=>{let e=new WeakSet;try{return JSON.stringify(s,(t,n)=>{if(typeof n=="bigint")return n.toString();if(n instanceof Error)return {name:n.name,message:n.message,stack:n.stack};if(typeof n=="function")return "[Function]";if(typeof n=="object"&&n!==null){if(e.has(n))return "[Circular]";e.add(n);}return n})}catch{try{return String(s)}catch{return "[Unserializable]"}}},ku=class{runtime;config;callbacks;currentThinkingText="";lastMessageRole=null;lastEntryId=null;tokenStats={inputTokens:0,outputTokens:0,totalTokens:0};memory;streamingTextPendingId=null;streamingReasoningPendingId=null;streamingTextBuffer="";streamingReasoningBuffer="";streamingReasoningType="thinking";streamingReasoningSourceLabel=void 0;streamingToolChars=0;hasInferredThinkingStatus=false;toolLogIdByToolId=new Map;toolLogDetailsByToolId=new Map;toolLogNameByToolId=new Map;toolLogOutputByToolId=new Map;toolLogSourceLabelByToolId=new Map;streamingSourceLabel=null;streamingSourceType=null;agentBuffers=new Map;activeAgentId=null;constructor(e){this.config=e,this.memory=e.memory,this.runtime=new wu({onSubmit:(t,n)=>{this.callbacks?.onSubmit&&this.callbacks.onSubmit(t,n);},onInterrupt:()=>{this.callbacks?.onInterrupt&&this.callbacks.onInterrupt();},onExit:()=>{this.callbacks?.onExit&&this.callbacks.onExit();}}),e.getPendingMessages&&this.runtime.setGetPendingMessages(e.getPendingMessages);}start(e){this.callbacks=e,this.runtime.setVersion(this.config.version),this.runtime.setProvider(this.config.provider),this.runtime.setModel(this.config.model),this.runtime.setWorkDir(this.config.workDir),this.config.getCompletions&&this.runtime.setCompletionFunction(this.config.getCompletions),this.runtime.start(),m.info("INK_ADAPTER","Ink UI started");}stop(){this.runtime.stop(),this.callbacks=void 0,m.info("INK_ADAPTER","Ink UI stopped");}addUserMessage(e,t,n){let r=[{type:"text",text:e}];if(t&&t.length>0)for(let i of t)r.push({type:"image_url",image_url:{url:`file://${i.path}`}});let o={role:"user",content:r};this.lastEntryId=this.runtime.addEntry({type:"user",message:o,sourceLabel:n==="remote"?"Android":void 0}),this.lastMessageRole="user";}addAssistantMessage(e=""){if(e===""){this.lastMessageRole="assistant";return}let t={role:"assistant",content:[{type:"text",text:e}]};this.lastEntryId=this.runtime.addEntry({type:"assistant",message:t,isStreaming:false}),this.lastMessageRole="assistant";}addSupervisorMessage(e){let t={role:"user",content:[{type:"text",text:e}]};this.lastEntryId=this.runtime.addEntry({type:"supervisor",message:t}),this.lastMessageRole="user";}startSupervisorStreaming(){this.startAgentStreaming("Supervisor"),this.streamingSourceLabel="Supervisor",this.streamingSourceType="supervisor";}startExecutorStreaming(e){let t=e||"Executor";this.startAgentStreaming(t);}getStreamingSourceType(){return this.streamingSourceType}startAgentStreaming(e){this.agentBuffers.has(e)||this.agentBuffers.set(e,""),this.activeAgentId=e,this.lastMessageRole="assistant",m.debug("INK_ADAPTER",`Started agent streaming for ${e}`);}startWorkerStreaming(e){this.startAgentStreaming(e);}addWorkerTextDelta(e,t){this.streamText(t,e);}completeWorkerStreaming(e){this.completeTextStreaming(e);}addWorkerInfo(e,t,n,r="info"){let i=`${`[${e}]`} ${t}`,a=r==="error"?"warning":r;this.addInfo(i,n,a);}streamText(e,t){let n=Date.now(),r=t||this.activeAgentId||"default";m.debug("INK_ADAPTER",`streamText: ${e.length} chars to ${r}`,{snippet:e.substring(0,30),bufferExists:this.agentBuffers.has(r)});let o=Date.now()-n;o>10&&m.warn("INK_ADAPTER",`\u26A0\uFE0F streamText slow: ${o}ms for ${e.length} chars`);let i=this.agentBuffers.get(r)||"";this.agentBuffers.set(r,i+e);}addTextDelta(e,t){m.debug("INK_ADAPTER",`addTextDelta called: ${e.length} chars, agentId=${t||"default"}`,{delta:e.substring(0,50)}),this.streamText(e,t);}addAgentTextDelta(e,t,n){m.debug("INK_ADAPTER",`addAgentTextDelta: ${e.length} chars, agentId=${t}`,{delta:e.substring(0,50)}),this.agentBuffers.has(t)||this.agentBuffers.set(t,"");let r=this.agentBuffers.get(t)||"";this.agentBuffers.set(t,r+e);let i={role:"assistant",content:[{type:"text",text:this.agentBuffers.get(t)||""}]};this.runtime.updatePendingEntryByKey(t,{type:"assistant",message:i,isStreaming:true,isComplete:false,sourceLabel:n||t});}bufferAgentTextOnly(e,t){this.agentBuffers.has(t)||this.agentBuffers.set(t,"");let n=this.agentBuffers.get(t)||"";this.agentBuffers.set(t,n+e);}flushAgentBuffer(e){let t=this.agentBuffers.get(e)||"";return this.agentBuffers.delete(e),t}commitPendingEntryByKey(e){return this.agentBuffers.has(e)&&this.agentBuffers.delete(e),this.runtime.commitPendingEntryByKey(e)}addToolCall(e,t){let n={role:"assistant",content:[{type:"tool_use",id:`tool_${Math.floor(Date.now())}`,name:e,input:t}]};this.runtime.addMessage(n),this.lastMessageRole="tool_call";}addToolCallEntry(e,t,n){m.debug("INK_ADAPTER","Add tool call entry",{toolName:e,sourceLabel:n?.sourceLabel});let r=`entry_${Date.now()}_${Math.random().toString(36).slice(2,6)}`;this.startToolCallWithId(r,e,t,n);}addToolResult(e,t=false){let n={role:"user",content:[{type:"tool_result",tool_use_id:`tool_${Math.floor(Date.now())}`,content:e,is_error:t}]};this.runtime.addMessage(n),this.lastMessageRole="tool_result";}addEntry(e){return m.debug("INK_ADAPTER",`AddEntry: ${e.type}`,{text:e.text}),this.runtime.addEntry(e)}addInfo(e,t,n="info",r){m.info("INK_ADAPTER",`Info: ${e}`,t?{details:t}:void 0);let o=n==="warning"||e.includes("\u26A0")||e.includes("\u23F3")||e.includes("\u23F1\uFE0F")||e.includes("\u{1F504}");this.runtime.addEntry({type:o?"warning":"info",text:e,details:t,sourceLabel:r});}addError(e,t){let n=typeof t=="string"?t:t?.details,r=typeof t=="object"?t?.sourceLabel:void 0;m.error("INK_ADAPTER",e,n?{details:n}:void 0),this.runtime.addEntry({type:"error",text:e,details:n,sourceLabel:r});}addWarning(e,t,n){m.warn("INK_ADAPTER",e,t?{details:t}:void 0),this.runtime.addEntry({type:"warning",text:e,details:t,sourceLabel:n?.sourceLabel});}addCompacting(e,t){m.info("INK_ADAPTER",`Compacting: ${e}`,t?{details:t}:void 0),this.runtime.addEntry({type:"compacting",text:e,details:t});}updateStatus(e,t){if(t==="tool_call"&&e.includes("Streaming:")){let n=e.match(/\((\d+) chars\)/);if(n){let r=parseInt(n[1],10);this.streamingToolChars=r,this.runtime.updateStreamingStats(r);}}else t!=="tool_call"&&(this.streamingToolChars=0);t==="compacting"||t==="thinking"||t==="tool_call"?this.runtime.setRunning(true):(t==="complete"||t==="error")&&this.runtime.setRunning(false),this.runtime.setStatusText(e);}setRunning(e){this.runtime.setRunning(e);}startSessionTimer(){}getAccumulatedRunTime(){return this.runtime.getAccumulatedRunTime()}resetAccumulatedRunTime(){this.runtime.resetAccumulatedRunTime();}setCompressionMode(e){this.runtime.setCompressionMode(e);}setCompactionThreshold(e){this.runtime.setCompactionThreshold(e/100);}updateTokenStats(e,t){this.tokenStats.inputTokens=e,this.tokenStats.outputTokens=t,this.tokenStats.totalTokens=e+t,this.runtime.setTokenStats({input:e,output:t,total:e+t});}updateAgentContext(e,t){this.runtime.updateAgentContext(e,t);}clearAgentContext(e){this.runtime.clearAgentContext(e);}clearAllAgentContexts(){this.runtime.clearAllAgentContexts();}getTokenStats(){return {...this.tokenStats}}setTokenStats(e,t,n){m.info("DEBUG_CTX",`InkUIAdapter.setTokenStats: input=${e}, output=${t}, extras.contextWindow=${n?.contextWindow}`),this.tokenStats={inputTokens:e,outputTokens:t,totalTokens:e+t,...n};let r=n?.anthropicCacheCreationTokens||n?.openaiCachedTokens||n?.cacheCreationTokens,o=n?.anthropicCacheReadTokens||n?.cacheReadTokens,i=n?.contextWindow||0,a=n?.tokensUsedForContext||e+t+(o||0),l=i>0?a/i:0;m.info("DEBUG_CTX",`InkUIAdapter.setTokenStats: passing to runtime contextWindow=${n?.contextWindow}, calculated contextWindow=${i}`),this.runtime.setTokenStats({input:e,output:t,total:e+t,contextWindow:n?.contextWindow,tokensUsedForContext:n?.tokensUsedForContext,pressure:l,systemTokens:n?.systemTokens,userTokens:n?.userTokens,assistantTokens:n?.assistantTokens,toolCallTokens:n?.toolCallTokens,toolResultTokens:n?.toolResultTokens,toolTokens:n?.toolTokens,messageTokens:n?.messageTokens,cacheCreationTokens:r,cacheReadTokens:o});}startThinking(){this.streamingReasoningBuffer="",this.streamingReasoningType="thinking",this.hasInferredThinkingStatus=false,this.updateStatus(Su(),"thinking");}streamThinking(e,t="thinking",n){if(this.streamingReasoningBuffer+=e,n&&(this.streamingReasoningSourceLabel=n),!this.hasInferredThinkingStatus&&this.streamingReasoningBuffer.length>30){let r=Px(this.streamingReasoningBuffer);r&&(this.updateStatus(r,"thinking"),this.hasInferredThinkingStatus=true);}this.streamingReasoningPendingId?this.runtime.updatePendingEntry(this.streamingReasoningPendingId,{text:this.streamingReasoningBuffer}):(this.streamingReasoningType=t,this.streamingReasoningPendingId=this.runtime.addPendingEntry({type:t,text:this.streamingReasoningBuffer,isStreaming:true}));}endThinking(){if(!this.streamingReasoningPendingId){this.updateStatus("","info");return}try{this.streamingReasoningBuffer&&this.streamingReasoningBuffer.trim().length>0?(this.runtime.updatePendingEntry(this.streamingReasoningPendingId,{isStreaming:!1,isComplete:!0,sourceLabel:this.streamingReasoningSourceLabel}),this.runtime.commitPendingEntry(this.streamingReasoningPendingId),m.debug("INK_ADAPTER",`Committed reasoning entry (${this.streamingReasoningBuffer.length} chars)`)):m.debug("INK_ADAPTER","Discarding empty reasoning entry (no content)");}catch(e){m.warn("INK_ADAPTER","Failed to commit reasoning entry",{error:e});}finally{this.streamingReasoningPendingId=null,this.streamingReasoningBuffer="",this.streamingReasoningSourceLabel=void 0,this.runtime.resetStreamingStats(),this.updateStatus("","info");}}startTaskTimer(){this.runtime.setRunning(true);}stopTaskTimer(){this.runtime.setRunning(false);}setStreamingTokens(e){this.runtime.updateStreamingStats(e);}clear(){this.runtime.clearMessages(),this.lastMessageRole=null;}resetStreamingState(){this.agentBuffers.clear(),this.activeAgentId=null,this.streamingTextBuffer="",this.streamingTextPendingId=null,this.streamingReasoningBuffer="",this.streamingReasoningPendingId=null,this.currentThinkingText="",this.streamingToolChars=0,this.runtime.clearPendingEntries(),this.runtime.resetStreamingStats(),this.runtime.setStatusText(""),m.debug("INK_ADAPTER","Reset streaming state (cleared all pending entries and buffers)");}finalizeStreamingState(){let e=Array.from(this.agentBuffers.keys());if(e.length>0)for(let t of e)this.completeTextStreaming(t);else this.completeTextStreaming();this.completeReasoningStreaming();}startReasoningStreaming(){this.startThinking();}streamReasoningText(e){this.streamThinking(e);}addReasoningDelta(e,t){this.streamThinking(e,"reasoning",t);}completeReasoningStreaming(e){e&&(this.streamingReasoningSourceLabel=e),this.endThinking();}addThinking(e){}completeTextStreaming(e){let t=e||this.activeAgentId||"default",n=this.agentBuffers.get(t)||"";if(!(n&&n.trim().length>0)){m.debug("INK_ADAPTER",`Complete text streaming (${t}) - no text to commit`),this.agentBuffers.delete(t),this.runtime.commitPendingEntryByKey(t),(t==="default"||t===this.activeAgentId)&&(this.streamingTextPendingId=null,this.streamingSourceLabel=null,this.streamingSourceType=null,this.runtime.resetStreamingStats());return}try{if(this.runtime.commitPendingEntryByKey(t))m.debug("INK_ADAPTER",`Complete text streaming (${t}) - committed pending entry ${n.length} chars`);else {let i={role:"assistant",content:[{type:"text",text:n}]};this.runtime.addEntry({type:"assistant",message:i,isStreaming:!1,isComplete:!0,sourceLabel:t==="default"?void 0:t}),m.debug("INK_ADAPTER",`Complete text streaming (${t}) - created static entry from buffer ${n.length} chars`);}}catch(o){m.warn("INK_ADAPTER","Failed to commit text entry",{error:o});}finally{this.agentBuffers.delete(t),(t==="default"||t===this.activeAgentId)&&(this.streamingTextPendingId=null,this.streamingSourceLabel=null,this.streamingSourceType=null,this.lastMessageRole="assistant",this.runtime.resetStreamingStats()),this.activeAgentId===t&&(this.activeAgentId=null);}}printCommandOutput(e){m.debug("INK_ADAPTER",`Command output: ${e}`);}setCommandOutputLines(e){m.debug("INK_ADAPTER",`Set command output lines: ${e.length}`),this.runtime.setCommandOutput(e);}clearCommandOutputLines(){m.debug("INK_ADAPTER","Clear command output lines"),this.runtime.clearCommandOutput();}startToolCallWithId(e,t,n,r){m.debug("INK_ADAPTER",`Start tool call: ${t}`,{toolId:e,args:n});let o=r?.sourceLabel,i=t,a=n;t==="call_tool"&&n?.name&&(i=n.name,a=n.args||{});let l=this.buildToolCallDetails(a,r),d={readfile:"readfile",Read:"readfile",read_file:"readfile",smart_read:"readfile",read:"readfile",search:"search",Grep:"search",grep:"search",search_files:"search_files",Glob:"search_files",glob:"search_files",find_files:"search_files",show_tree:"show_tree",smart_tree:"show_tree",list_directory:"show_tree",ls:"show_tree",file_update:"file_update",Edit:"file_update",edit_file:"file_update",Write:"file_update",write_file:"file_update",delete_file:"file_update",rename_file:"file_update",apply_patch:"file_update",create_directory:"file_update",command_exec:"command_exec",Bash:"command_exec",bash:"command_exec",shell:"command_exec",execute_command:"command_exec",execute_shell:"command_exec",code_exec:"code_exec",execute_python:"code_exec",execute_javascript:"code_exec",web_search:"web_search",WebSearch:"web_search",web_fetch:"web_fetch",WebFetch:"web_fetch",browser_debug:"browser_debug",debug_in_browser:"browser_debug",git_status:"git_status",git_diff:"git_diff",git_log:"git_log",git_commit:"git_commit",git_blame:"git_diff",git_branch:"git_running",git_branch_list:"git_running",TodoWrite:"todo",TodoRead:"todo",Task:"task",NotebookEdit:"notebook",NotebookRead:"notebook",AskUserQuestion:"ask_user",ask_user:"ask_user",run_tests:"command_exec",run_lint:"command_exec",run_format:"command_exec",build_index:"search",search_symbol:"search",get_definitions:"search",get_references:"search",index_stats:"search",analyze_code:"search"}[i]||"tool_call",p=this.buildToolSummaryText(d,i,a),g=this.runtime.addPendingEntry({type:d,text:p,details:l,entryKey:e,isStreaming:true,sourceLabel:o});this.toolLogIdByToolId.set(e,g),this.toolLogDetailsByToolId.set(e,l||""),this.toolLogNameByToolId.set(e,i),o&&this.toolLogSourceLabelByToolId.set(e,o);let f=xu(i,a);this.updateStatus(f,"tool_call");}updateToolCallOutput(e,t,n){m.debug("INK_ADAPTER",`Update tool output: ${e}`,{output:t});let r=this.toolLogIdByToolId.get(e);if(!r)return;let o=this.toolLogDetailsByToolId.get(e)||"",i=this.formatToolOutput(t,n?.truncated);i&&this.toolLogOutputByToolId.set(e,i);let a=this.mergeToolDetails(o,i);this.runtime.updateEntry(r,{details:a,isStreaming:true});}completeToolCall(e,t){m.debug("INK_ADAPTER",`Complete tool call: ${e}`);let n=this.toolLogIdByToolId.get(e);if(!n){t?.result&&this.addToolResult(t.result,t.isError||false);return}let r=this.toolLogSourceLabelByToolId.get(e),o=this.toolLogNameByToolId.get(e)||"",i=this.isGitResultTool(o),a=t?.summary||t?.error||"",l=this.toolLogOutputByToolId.get(e)||"",c=(a||l||"").replace(/\r\n?/g,`
|
|
3767
|
+
`),BI&&A.createElement(kx,{agents:B}),M&&Y&&Ae?A.createElement(_,{flexShrink:0,flexDirection:"column"},A.createElement(wx,{onSubmit:Y,onCancel:Ae})):A.createElement(_,{flexShrink:0,flexDirection:"column"},N.length>0&&A.createElement(xx,{messages:N}),A.createElement(bx,{inputValue:K,isRunning:t,statusText:n,tokenStats:r,streamingTokens:o,streamingStartTime:i,accumulatedRunTime:a,provider:c,model:u,menuActive:!!f||!!L,promptActive:!!y,promptMessage:y?.message,promptHint:y?.hint,promptOnCancel:y?.onCancel,thinkingEnabled:g,contextMenuActive:b,compressionMode:T,compactionThreshold:S,agentContextStats:E,runMode:v,networkStats:I,cooperateStats:D,currentPlanSteps:x,attachments:k,completions:we,onInputChange:ie=>{if(X&&w$(ie)){X(ie.trim());return}re(ie);},onSubmit:Ai,onInterrupt:Z,onExit:ae,onHistoryUp:Cs,onHistoryDown:Ur,onTabComplete:OI,onContextMenuToggle:be,onAgentContextScreenToggle:Pe,onRemoveAttachment:te?ie=>{te();}:void 0,onPasteImage:X,onShowInterruptInput:ge,backgroundTasks:H,bgSelectedIndex:W,onBgKill:U,onBgRemove:z,onBgNavigate:q,onBgToggleExpand:P}),f&&A.createElement(Mf,{message:f.message,choices:f.choices,initialIndex:f.initialIndex,hint:f.hint,header:f.header,allowTextInput:f.allowTextInput,onSelect:f.onSelect,onCancel:f.onCancel,onExit:ae}),L&&A.createElement(Mf,{message:L.message,choices:L.choices,initialIndex:L.initialIndex,hint:L.hint,onSelect:L.onSelect,onCancel:L.onCancel,onExit:ae}),O.length>0&&A.createElement(_,{flexDirection:"column",paddingX:2,paddingY:1,borderStyle:"round",borderColor:"gray"},O.map((ie,$e)=>A.createElement(h,{key:$e},ie)))))};ne();qr();var wu=class s{appInstance=null;messages=[];staticEntries=[];nextEntryId=1;isRunning=false;statusText="";tokenStats={input:0,output:0,total:0,contextWindow:void 0,tokensUsedForContext:0,pressure:0};version="";provider="";model="";workDir="";showHeader=true;thinkingEnabled=true;callbacks;forceUpdate=null;selectMenuOptions=null;textPromptOptions=null;contextMenuActive=false;agentContextScreenActive=false;commandOutput=[];getCompletions;memoryLogTimer=null;ttyWriteGuardActive=false;allowTTYWriteDepth=0;originalStdoutWrite=null;originalStderrWrite=null;inkStdout=null;altScreenEnabled=false;attachedImages=[];pendingEntries=[];getPendingMessages=null;interruptInputActive=false;runMode="single";streamingTokens=0;streamingStartTime=null;accumulatedRunTime=0;runningStartTime=null;compressionMode="sync";compactionThreshold=.85;agentContextStats=new Map;networkStats=null;cooperateStats=null;currentPlanSteps=[];backgroundTasks=[];bgNextId=1;bgSelectedIndex=-1;sidebarAgents=[];static MAX_QUEUED_STATIC=50;constructor(e){this.callbacks=e;}addBackgroundTask(e,t){let n=this.bgNextId++;return this.backgroundTasks=[...this.backgroundTasks,{id:n,command:e,pid:t,status:"running",startTime:Date.now(),output:[]}],this.bgSelectedIndex<0&&(this.bgSelectedIndex=0),this.forceUpdate?.(),m.info("BG_TASK",`Added background task #${n}: ${e} (pid=${t})`),n}updateBackgroundTask(e,t){this.backgroundTasks=this.backgroundTasks.map(n=>{if(n.id!==e)return n;let r={...n};return t.status&&(r.status=t.status),t.exitCode!==void 0&&(r.exitCode=t.exitCode),t.outputLine&&(r.output=[...n.output.slice(-19),t.outputLine]),r}),this.forceUpdate?.();}removeBackgroundTask(e){this.backgroundTasks.findIndex(n=>n.id===e)<0||(this.backgroundTasks=this.backgroundTasks.filter(n=>n.id!==e),this.backgroundTasks.length===0?this.bgSelectedIndex=-1:this.bgSelectedIndex>=this.backgroundTasks.length&&(this.bgSelectedIndex=this.backgroundTasks.length-1),this.forceUpdate?.());}killBackgroundTask(e){let t=this.backgroundTasks.find(n=>n.id===e);if(!(!t||t.status!=="running")){try{process.kill(t.pid,"SIGTERM"),m.info("BG_TASK",`Killed background task #${e} (pid=${t.pid})`);}catch(n){m.warn("BG_TASK",`Failed to kill pid ${t.pid}: ${n}`);}this.updateBackgroundTask(e,{status:"killed"});}}bgMoveSelection(e){this.backgroundTasks.length!==0&&(e==="up"?this.bgSelectedIndex=Math.max(0,this.bgSelectedIndex-1):this.bgSelectedIndex=Math.min(this.backgroundTasks.length-1,this.bgSelectedIndex+1),this.forceUpdate?.());}bgToggleExpand(){if(this.bgSelectedIndex<0||this.bgSelectedIndex>=this.backgroundTasks.length)return;let e=this.backgroundTasks[this.bgSelectedIndex];this.backgroundTasks=this.backgroundTasks.map(t=>t.id===e.id?{...t,expanded:!t.expanded}:t),this.forceUpdate?.();}getBackgroundTasks(){return this.backgroundTasks}getBgSelectedIndex(){return this.bgSelectedIndex}hasActiveBackgroundTasks(){return this.backgroundTasks.length>0}updateBackgroundTaskByPid(e,t){let n=this.backgroundTasks.find(r=>r.pid===e);n&&this.updateBackgroundTask(n.id,t);}setCompletionFunction(e){this.getCompletions=e;}start(){m.info("INK","Starting Ink runtime"),this.startMemorySampler();let e=()=>{let[,a]=useState(0);return useLayoutEffect(()=>(this.forceUpdate=()=>{let l=Date.now();m.debug("RUNTIME",`>>> forceUpdate called, staticEntries=${this.staticEntries.length}, pendingEntries=${this.pendingEntries.length}`),a(u=>u+1);let c=Date.now()-l;c>50&&m.warn("RUNTIME",`\u26A0\uFE0F forceUpdate slow: setCounter took ${c}ms`);},()=>{this.forceUpdate=null;}),[]),A.createElement(_x,{staticEntries:this.staticEntries,pendingEntries:this.pendingEntries,isRunning:this.isRunning,statusText:this.statusText,tokenStats:this.tokenStats,streamingTokens:this.streamingTokens,streamingStartTime:this.streamingStartTime,accumulatedRunTime:this.accumulatedRunTime,compressionMode:this.compressionMode,compactionThreshold:this.compactionThreshold,agentContextStats:this.getAgentContextStats(),runMode:this.runMode,networkStats:this.networkStats||void 0,cooperateStats:this.cooperateStats||void 0,currentPlanSteps:this.currentPlanSteps,sidebarAgents:this.getSidebarAgents(),version:this.version,provider:this.provider,model:this.model,workDir:this.workDir,showHeader:this.showHeader,thinkingEnabled:this.thinkingEnabled,selectMenuOptions:this.selectMenuOptions,textPromptOptions:this.textPromptOptions,contextMenuActive:this.contextMenuActive,agentContextScreenActive:this.agentContextScreenActive,commandOutput:this.commandOutput,attachedImages:this.attachedImages,interruptInputActive:this.interruptInputActive,queuedMessages:this.getQueuedMessagesForDisplay(),backgroundTasks:this.backgroundTasks,bgSelectedIndex:this.bgSelectedIndex,onBgKill:l=>this.killBackgroundTask(l),onBgRemove:l=>this.removeBackgroundTask(l),onBgNavigate:l=>this.bgMoveSelection(l),onBgToggleExpand:()=>this.bgToggleExpand(),getCompletions:this.getCompletions,onStaticRendered:void 0,onSubmit:(l,c)=>{let u=c||this.attachedImages;this.attachedImages=[],this.callbacks.onSubmit(l,u);},onInterrupt:this.callbacks.onInterrupt,onExit:this.callbacks.onExit,onContextMenuToggle:()=>{this.contextMenuActive=!this.contextMenuActive,this.forceUpdate?.();},onAgentContextScreenToggle:()=>{this.agentContextScreenActive=!this.agentContextScreenActive,this.forceUpdate?.();},onClearCommandOutput:()=>{this.clearCommandOutput();},onAttachImage:l=>{this.attachImage(l);},onClearImages:()=>{this.clearAttachedImages();},onInterruptInputSubmit:l=>{this.handleInterruptInputSubmit(l);},onInterruptInputCancel:()=>{this.hideInterruptInput();},onShowInterruptInput:()=>{this.showInterruptInput();},onScrollUp:()=>this.appInstance?.scrollUp?.(),onScrollDown:()=>this.appInstance?.scrollDown?.(),onPageUp:()=>this.appInstance?.pageUp?.(),onPageDown:()=>this.appInstance?.pageDown?.(),onScrollToTop:()=>this.appInstance?.scrollToTop?.(),onScrollToBottom:()=>this.appInstance?.scrollToBottom?.()})},t=ht(),n=Hl(),r=t||n;t&&m.info("INK","WSL detected, disabling incremental rendering for compatibility"),n&&m.info("INK","Windows detected, disabling incremental rendering for compatibility");let o=process.env.NEOX_ALT_SCREEN;this.altScreenEnabled=o==="1"||o==="true";let i=this.installTTYWriteGuard();this.appInstance=vo(A.createElement(e,null),{stdout:i,stdin:process.stdin,exitOnCtrlC:false,patchConsole:false,incrementalRendering:!r,useAltScreen:this.altScreenEnabled}),m.info("INK",`Renderer mode: ${this.altScreenEnabled?"alt-screen":"inline"}`),t&&setTimeout(()=>{this.forceUpdate&&(m.debug("INK","WSL startup render nudge"),this.forceUpdate());},0);try{process.stdout.isTTY&&!process.stdout.destroyed&&(this.writeDirectStdout("\x1B[?2004h"),m.info("INK","Bracketed paste mode enabled for image paste detection"));}catch(a){m.warn("INK","Failed to enable bracketed paste mode",{error:a});}if(this.altScreenEnabled)try{process.stdout.isTTY&&!process.stdout.destroyed&&(this.writeDirectStdout("\x1B[?1000h"),this.writeDirectStdout("\x1B[?1002h"),this.writeDirectStdout("\x1B[?1006h"),m.info("INK","Mouse SGR mode enabled for wheel scrolling"));}catch(a){m.warn("INK","Failed to enable mouse mode",{error:a});}try{m.debug("TTY_STATE","\u{1F6E1}\uFE0F [INK] Re-registering SIGTSTP ignore handler after Ink starts"),process.removeAllListeners("SIGTSTP"),process.on("SIGTSTP","ignore"),m.debug("TTY_STATE","\u2705 [INK] SIGTSTP handler re-registered (Ctrl+Z ignored)"),process.env.CLI_DEBUG==="1"&&m.debug("INK","SIGTSTP handler registered (Ctrl+Z ignored)");}catch{m.debug("TTY_STATE","\u26A0\uFE0F [INK] SIGTSTP not supported on this platform"),process.env.CLI_DEBUG==="1"&&m.debug("INK","SIGTSTP not supported on this platform");}m.info("INK","Ink runtime started");}stop(){try{process.stdout.isTTY&&!process.stdout.destroyed&&(this.writeDirectStdout("\x1B[?2004l"),m.debug("INK","Bracketed paste mode disabled"));}catch(e){m.debug("INK","Failed to disable bracketed paste mode (ignored)",{error:e});}if(this.altScreenEnabled)try{process.stdout.isTTY&&!process.stdout.destroyed&&(this.writeDirectStdout("\x1B[?1006l"),this.writeDirectStdout("\x1B[?1002l"),this.writeDirectStdout("\x1B[?1000l"),m.debug("INK","Mouse mode disabled"));}catch(e){m.debug("INK","Failed to disable mouse mode (ignored)",{error:e});}this.appInstance&&(this.appInstance.unmount(),this.appInstance=null,m.info("INK","Ink runtime stopped")),this.restoreTTYWriteGuard(),this.stopMemorySampler(),this.altScreenEnabled=false;}installTTYWriteGuard(){if(this.ttyWriteGuardActive)return this.inkStdout??process.stdout;this.originalStdoutWrite=process.stdout.write.bind(process.stdout),this.originalStderrWrite=process.stderr.write.bind(process.stderr);let e=t=>(n,r,o)=>{if(typeof r=="function"&&(o=r,r=void 0),this.allowTTYWriteDepth>0){let i=t==="stdout"?this.originalStdoutWrite:this.originalStderrWrite;if(i)return i(n,r,o)}return this.handleSuppressedWrite(t,n),typeof o=="function"&&o(),true};return process.stdout.write=e("stdout"),process.stderr.write=e("stderr"),this.inkStdout=this.createInkStdoutProxy(),this.ttyWriteGuardActive=true,m.info("INK","TTY output guard enabled"),this.inkStdout}restoreTTYWriteGuard(){this.ttyWriteGuardActive&&(this.originalStdoutWrite&&(process.stdout.write=this.originalStdoutWrite),this.originalStderrWrite&&(process.stderr.write=this.originalStderrWrite),this.ttyWriteGuardActive=false,this.inkStdout=null,m.info("INK","TTY output guard disabled"));}createInkStdoutProxy(){let e=process.stdout,t=this.originalStdoutWrite||e.write.bind(e);return new Proxy(e,{get:(n,r,o)=>{if(r==="write")return (a,l,c)=>this.withDirectTTYWrite(()=>t(a,l,c));let i=Reflect.get(n,r,o);return typeof i=="function"?i.bind(n):i}})}withDirectTTYWrite(e){this.allowTTYWriteDepth+=1;try{return e()}finally{this.allowTTYWriteDepth=Math.max(0,this.allowTTYWriteDepth-1);}}writeDirectStdout(e){let t=this.originalStdoutWrite||process.stdout.write.bind(process.stdout);this.withDirectTTYWrite(()=>{t(e);});}handleSuppressedWrite(e,t){if(t==null)return;let n="";if(typeof t=="string")n=t;else if(Buffer.isBuffer(t))n=t.toString("utf8");else try{n=String(t);}catch{return}if(!n||n.trim().length===0)return;let r=n.length>2e3?`${n.slice(0,2e3)}...`:n;m.warn("TTY_SUPPRESS",`[${e}] ${r}`);}addMessage(e){this.messages=[...this.messages.slice(-4),e],this.forceUpdate?.();}addEntry(e){let t={...e,id:this.nextEntryId++,timestamp:new Date};if(e.type==="user"){let n=!!e.message,r=e.message?.content;m.debug("INK_RUNTIME",`[addEntry] user entry id=${t.id}, hasMessage=${n}, contentType=${typeof r}, isArray=${Array.isArray(r)}`);}return this.staticEntries.length>=s.MAX_QUEUED_STATIC&&(m.warn("INK_RUNTIME",`Static queue reached limit (${this.staticEntries.length}). Forcing immediate render to prevent OOM.`),this.forceUpdate?.(),setImmediate(()=>{this.clearStaticEntries();})),this.staticEntries=[...this.staticEntries,t],m.debug("INK_RUNTIME",`Queued static entry ${t.id}. Pending static: ${this.staticEntries.length}, type: ${e.type}, forceUpdate: ${!!this.forceUpdate}`),this.forceUpdate?this.forceUpdate():setImmediate(()=>{this.forceUpdate?.();}),t.id}updateEntry(e,t){let n=this.staticEntries.findIndex(o=>o.id===e);if(n>=0){this.staticEntries=this.staticEntries.map((o,i)=>i===n?{...o,...t}:o),this.forceUpdate?.();return}let r=this.pendingEntries.findIndex(o=>o.id===e);r>=0&&(this.pendingEntries=this.pendingEntries.map((o,i)=>i===r?{...o,...t}:o),this.forceUpdate?.());}getEntry(e){return this.staticEntries.find(t=>t.id===e)||this.pendingEntries.find(t=>t.id===e)}addPendingEntry(e){let t={...e,id:this.nextEntryId++,timestamp:new Date};if(this.pendingEntries.length>=10){m.warn("INK_RUNTIME",`Too many pending entries (${this.pendingEntries.length}). Auto-committing oldest.`);let r=this.pendingEntries[0];this.staticEntries=[...this.staticEntries,r],this.pendingEntries=this.pendingEntries.slice(1);}return this.pendingEntries=[...this.pendingEntries,t],m.debug("INK_RUNTIME",`Added pending entry ${t.id}. Pending: ${this.pendingEntries.length}`),this.forceUpdate?.(),t.id}updatePendingEntry(e,t){let n=this.pendingEntries.findIndex(r=>r.id===e);n>=0&&(this.pendingEntries=this.pendingEntries.map((r,o)=>o===n?{...r,...t}:r),this.forceUpdate?.());}updatePendingEntryByKey(e,t){let n=this.pendingEntries.findIndex(r=>r.entryKey===e);if(n>=0)this.pendingEntries=this.pendingEntries.map((r,o)=>o===n?{...r,...t,entryKey:e,timestamp:new Date}:r);else {let r={...t,entryKey:e,id:this.nextEntryId++,timestamp:new Date};this.pendingEntries=[...this.pendingEntries,r];}this.forceUpdate?.();}commitPendingEntryByKey(e){let t=this.pendingEntries.findIndex(n=>n.entryKey===e);if(t>=0){let n=this.pendingEntries[t];return this.pendingEntries=this.pendingEntries.filter((r,o)=>o!==t),this.staticEntries=[...this.staticEntries,{...n,isStreaming:false,isComplete:true}],m.debug("INK_RUNTIME",`Committed entry by key ${e}. Static: ${this.staticEntries.length}, Pending: ${this.pendingEntries.length}`),this.forceUpdate?.(),true}return false}commitPendingEntry(e){let t=this.pendingEntries.findIndex(n=>n.id===e);if(t>=0){let n=this.pendingEntries[t];this.pendingEntries=this.pendingEntries.filter((r,o)=>o!==t),this.staticEntries=[...this.staticEntries,n],m.debug("INK_RUNTIME",`Committed entry ${e}. Static: ${this.staticEntries.length}, Pending: ${this.pendingEntries.length}`),this.forceUpdate?.();}else m.warn("INK_RUNTIME",`Cannot commit entry ${e} - not found in pending entries`);}clearPendingEntries(){this.pendingEntries.length>0&&(this.pendingEntries=[],this.forceUpdate?.());}commitAllPendingEntries(){if(this.pendingEntries.length>0){let e=this.pendingEntries.map(t=>({...t,isStreaming:false,isComplete:true}));this.staticEntries=[...this.staticEntries,...e],this.pendingEntries=[],m.debug("INK_RUNTIME",`Committed ${e.length} pending entries on run complete`),this.forceUpdate?.();}}updateStreamingStats(e){this.streamingTokens=e,this.streamingStartTime||(this.streamingStartTime=Date.now()),this.forceUpdate?.();}resetStreamingStats(){this.streamingTokens=0,this.streamingStartTime=null;}getAccumulatedRunTime(){if(this.isRunning&&this.runningStartTime!==null){let e=Math.floor((Date.now()-this.runningStartTime)/1e3);return this.accumulatedRunTime+e}return this.accumulatedRunTime}resetAccumulatedRunTime(){this.accumulatedRunTime=0,this.runningStartTime=null,this.forceUpdate?.();}setCompressionMode(e){this.compressionMode!==e&&(this.compressionMode=e,this.forceUpdate?.());}setCompactionThreshold(e){this.compactionThreshold!==e&&(this.compactionThreshold=e,this.forceUpdate?.());}updateAgentContext(e,t){this.agentContextStats.set(e,t),this.forceUpdate?.();}clearAgentContext(e){this.agentContextStats.has(e)&&(this.agentContextStats.delete(e),this.forceUpdate?.());}clearAllAgentContexts(){this.agentContextStats.size>0&&(this.agentContextStats.clear(),this.forceUpdate?.());}getAgentContextStats(){return Array.from(this.agentContextStats.values()).sort((t,n)=>t.agentId==="supervisor"?-1:n.agentId==="supervisor"?1:t.agentId.localeCompare(n.agentId))}updateLastMessage(e){if(this.messages.length===0)return;let t=this.messages[this.messages.length-1];if(typeof t.content=="string")t.content=e;else if(Array.isArray(t.content)){let n=t.content.find(r=>r.type==="text");n&&"text"in n&&(n.text=e);}this.forceUpdate?.();}getLastMessageText(){if(this.messages.length===0)return "";let e=this.messages[this.messages.length-1];if(typeof e.content=="string")return e.content;if(Array.isArray(e.content)){let t=e.content.find(n=>n.type==="text");if(t&&"text"in t)return t.text||""}return ""}setRunning(e){if(this.isRunning!==e){if(e)this.runningStartTime=Date.now();else if(this.runningStartTime!==null){let t=Math.floor((Date.now()-this.runningStartTime)/1e3);this.accumulatedRunTime+=t,this.runningStartTime=null;}this.isRunning=e,this.forceUpdate?.();}}triggerForceUpdate(){this.forceUpdate?.();}setStatusText(e){this.statusText!==e&&(this.statusText=e,this.forceUpdate?.());}setTokenStats(e){m.info("DEBUG_CTX",`InkRuntime.setTokenStats: received contextWindow=${e.contextWindow}, current=${this.tokenStats.contextWindow}`);let t=e.contextWindow!==void 0?e.contextWindow:this.tokenStats.contextWindow;(this.tokenStats.input!==e.input||this.tokenStats.output!==e.output||this.tokenStats.total!==e.total||this.tokenStats.contextWindow!==t||this.tokenStats.tokensUsedForContext!==e.tokensUsedForContext||this.tokenStats.pressure!==e.pressure||this.tokenStats.toolTokens!==e.toolTokens||this.tokenStats.messageTokens!==e.messageTokens||this.tokenStats.systemTokens!==e.systemTokens||this.tokenStats.userTokens!==e.userTokens||this.tokenStats.assistantTokens!==e.assistantTokens||this.tokenStats.toolCallTokens!==e.toolCallTokens||this.tokenStats.toolResultTokens!==e.toolResultTokens||this.tokenStats.cacheCreationTokens!==e.cacheCreationTokens||this.tokenStats.cacheReadTokens!==e.cacheReadTokens)&&(this.tokenStats={...e,contextWindow:t,tokensUsedForContext:e.tokensUsedForContext??this.tokenStats.tokensUsedForContext,pressure:e.pressure??this.tokenStats.pressure},m.info("DEBUG_CTX",`InkRuntime.setTokenStats: after update contextWindow=${this.tokenStats.contextWindow}`),this.forceUpdate?.());}clearMessages(){m.warn("INK_RUNTIME",`clearMessages called! This will clear pending/static queues. Messages: ${this.messages.length}`),this.messages=[],this.staticEntries=[],this.pendingEntries=[],this.forceUpdate?.();}setCommandOutput(e){m.debug("INK_RUNTIME","Set command output",{lineCount:e.length}),this.commandOutput=e,this.forceUpdate?.();}clearCommandOutput(){m.debug("INK_RUNTIME","Clear command output"),this.commandOutput=[],this.forceUpdate?.();}attachImage(e){let t;if(typeof e=="string")if(e.startsWith("data:")){let r=e.match(/^data:([^;]+);base64,(.+)$/);if(r){let o=`image_${Date.now()}.png`;t={mediaType:r[1],data:r[2],name:o};}else {m.error("INK_RUNTIME","Invalid data URL format",{imageData:e});return}}else {let r=e.split("/").pop()||e;t={path:e,name:r};}else t=e;if(this.attachedImages.some(r=>r.path&&t.path&&r.path===t.path||r.data&&t.data&&r.data===t.data)){m.debug("INK_RUNTIME","Image already attached");return}this.attachedImages.push(t),m.info("INK_RUNTIME",`\u{1F4CE} Attached image #${this.attachedImages.length}: ${t.name||"unnamed"}`),this.forceUpdate?.();}clearAttachedImages(){this.attachedImages.length>0&&(m.debug("INK_RUNTIME",`Cleared ${this.attachedImages.length} attached images`),this.attachedImages=[],this.forceUpdate?.());}getAttachedImages(){return [...this.attachedImages]}showInterruptInput(){m.debug("INK_RUNTIME","Show interrupt input"),this.interruptInputActive=true,this.forceUpdate?.();}hideInterruptInput(){m.debug("INK_RUNTIME","Hide interrupt input"),this.interruptInputActive=false,this.forceUpdate?.();}handleInterruptInputSubmit(e){m.debug("INK_RUNTIME","Handle interrupt input submit",{text:e.substring(0,50)}),this.hideInterruptInput(),this.callbacks.onSubmit(e);}setGetPendingMessages(e){this.getPendingMessages=e;}getQueuedMessagesForDisplay(){return this.getPendingMessages?this.getPendingMessages().map((e,t)=>({id:t+1,text:e.text,timestamp:e.timestamp})):[]}hasQueuedMessages(){return this.getPendingMessages?this.getPendingMessages().length>0:false}addAgentSpawnEntry(e,t,n,r){return this.addEntry({type:"agent_spawn",agentId:e,agentIndex:t,agentStatus:"running",agentTask:n,agentModel:r,text:n})}addAgentProgressEntry(e,t,n,r){return this.addEntry({type:"agent_progress",agentId:e,agentIndex:t,agentStatus:"running",agentProgress:n,text:r})}addAgentCompleteEntry(e,t,n){return this.addEntry({type:"agent_complete",agentId:e,agentIndex:t,agentStatus:"completed",text:n})}addAgentErrorEntry(e,t,n){return this.addEntry({type:"agent_error",agentId:e,agentIndex:t,agentStatus:"error",agentError:n,text:n})}setVersion(e){this.version=e,this.forceUpdate?.();}setProvider(e){this.provider=e,this.forceUpdate?.();}setModel(e){this.model=e,this.forceUpdate?.();}setRunMode(e){this.runMode=e,e!=="network"&&(this.networkStats=null),this.forceUpdate?.();}upsertSidebarAgent(e){let t=this.sidebarAgents.find(n=>n.id===e.id);t?(t.role=e.role,t.task=e.task,t.status=e.status,e.toolCount!==void 0&&(t.toolCount=e.toolCount),e.tokens!==void 0&&(t.tokens=e.tokens),t.elapsed=Math.round((Date.now()-t.startTime)/1e3)):this.sidebarAgents.push({id:e.id,role:e.role,task:e.task,status:e.status,toolCount:e.toolCount??0,tokens:e.tokens??0,elapsed:0,startTime:Date.now()}),this.forceUpdate?.();}removeSidebarAgent(e){this.sidebarAgents=this.sidebarAgents.filter(t=>t.id!==e),this.forceUpdate?.();}clearSidebarAgents(){this.sidebarAgents=[],this.forceUpdate?.();}getSidebarAgents(){let e=Date.now();for(let t of this.sidebarAgents)t.status==="running"&&(t.elapsed=Math.round((e-t.startTime)/1e3));return this.sidebarAgents}updateNetworkStats(e){this.networkStats||(this.networkStats={teamSize:0,activeAgents:0,totalInputTokens:0,totalOutputTokens:0}),Object.assign(this.networkStats,e),this.forceUpdate?.();}clearNetworkStats(){this.networkStats=null,this.forceUpdate?.();}getNetworkStats(){return this.networkStats}updateCooperateStats(e){this.cooperateStats||(this.cooperateStats={models:[],totalInputTokens:0,totalOutputTokens:0}),Object.assign(this.cooperateStats,e),this.forceUpdate?.();}clearCooperateStats(){this.cooperateStats=null,this.forceUpdate?.();}getCooperateStats(){return this.cooperateStats}setPlanSteps(e){this.currentPlanSteps=e,this.forceUpdate?.();}getPlanSteps(){return this.currentPlanSteps}clearPlanSteps(){this.currentPlanSteps=[],this.forceUpdate?.();}setWorkDir(e){this.workDir=e,this.forceUpdate?.();}setShowHeader(e){this.showHeader=e,this.forceUpdate?.();}setThinkingEnabled(e){this.thinkingEnabled!==e&&(this.thinkingEnabled=e,this.forceUpdate?.());}showSelectMenu(e){if(m.debug("INK_RUNTIME","Show select menu",{options:e}),process.stdin.isTTY&&!process.stdin.destroyed){let t=process.stdin.isPaused?.()||false;process.stdin.isRaw||false;if(t){process.env.CLI_DEBUG==="1"&&m.debug("INK_RUNTIME",`showSelectMenu: Resuming stdin (wasPaused=${t})`);try{process.stdin.resume(),m.info("INK_RUNTIME","\u2713 Stdin resumed for SelectMenu");}catch(r){m.error("INK_RUNTIME","Failed to resume stdin for SelectMenu",{error:r});}}}this.selectMenuOptions=e,this.forceUpdate?.();}hideSelectMenu(){if(m.debug("INK_RUNTIME","Hide select menu"),this.selectMenuOptions){let e=this.selectMenuOptions.choices.length+5;process.stdout.write(S$.eraseLines(e));}this.selectMenuOptions=null,this.forceUpdate?.(),process.nextTick(()=>{this.forceUpdate?.();});}isSelectMenuActive(){return this.selectMenuOptions!==null}updateSelectMenuIndex(e){if(!this.selectMenuOptions)return;let t=Math.max(0,this.selectMenuOptions.choices.length-1),n=Math.max(0,Math.min(e,t));this.selectMenuOptions={...this.selectMenuOptions,initialIndex:n},this.forceUpdate?.();}showTextPrompt(e){if(m.debug("INK_RUNTIME","Show text prompt",{options:e}),process.stdin.isTTY&&!process.stdin.destroyed){let t=process.stdin.isPaused?.()||false;if(t){process.env.CLI_DEBUG==="1"&&m.debug("INK_RUNTIME",`showTextPrompt: Resuming stdin (wasPaused=${t})`);try{process.stdin.resume(),m.info("INK_RUNTIME","\u2713 Stdin resumed for TextPrompt");}catch(n){m.error("INK_RUNTIME","Failed to resume stdin for TextPrompt",{error:n});}}}this.textPromptOptions=e,this.forceUpdate?.();}hideTextPrompt(){m.debug("INK_RUNTIME","Hide text prompt"),this.textPromptOptions=null,this.forceUpdate?.();}showContextMenu(){m.debug("INK_RUNTIME","Show context menu"),this.contextMenuActive=true,this.forceUpdate?.();}hideContextMenu(){m.debug("INK_RUNTIME","Hide context menu"),this.contextMenuActive=false,this.forceUpdate?.();}getContextMenuActive(){return this.contextMenuActive}clearStaticEntries(){if(this.staticEntries.length===0)return;let e=this.staticEntries.length;m.debug("INK_RUNTIME",`Clearing ${e} static entries from memory`),this.staticEntries=[],global.gc&&e>10&&(m.debug("INK_RUNTIME","Triggering manual GC after clearing entries"),setImmediate(()=>{global.gc&&global.gc();}));}startMemorySampler(){this.memoryLogTimer||process.env.INK_MEM!=="1"||(this.memoryLogTimer=setInterval(()=>{let e=process.memoryUsage(),t=n=>Math.round(n/1024/1024*10)/10;m.info("INK_MEM","usage",{rssMB:t(e.rss),heapUsedMB:t(e.heapUsed),heapTotalMB:t(e.heapTotal),externalMB:t(e.external),arrayBuffersMB:t(e.arrayBuffers??0),pendingEntries:this.pendingEntries.length,queuedStatic:this.staticEntries.length,isRunning:this.isRunning});},1e4));}stopMemorySampler(){this.memoryLogTimer&&(clearInterval(this.memoryLogTimer),this.memoryLogTimer=null);}};ne();ja();var A$=s=>{let e=new WeakSet;try{return JSON.stringify(s,(t,n)=>{if(typeof n=="bigint")return n.toString();if(n instanceof Error)return {name:n.name,message:n.message,stack:n.stack};if(typeof n=="function")return "[Function]";if(typeof n=="object"&&n!==null){if(e.has(n))return "[Circular]";e.add(n);}return n})}catch{try{return String(s)}catch{return "[Unserializable]"}}},ku=class{runtime;config;callbacks;currentThinkingText="";lastMessageRole=null;lastEntryId=null;tokenStats={inputTokens:0,outputTokens:0,totalTokens:0};memory;streamingTextPendingId=null;streamingReasoningPendingId=null;streamingTextBuffer="";streamingReasoningBuffer="";streamingReasoningType="thinking";streamingReasoningSourceLabel=void 0;streamingToolChars=0;hasInferredThinkingStatus=false;toolLogIdByToolId=new Map;toolLogDetailsByToolId=new Map;toolLogNameByToolId=new Map;toolLogOutputByToolId=new Map;toolLogSourceLabelByToolId=new Map;streamingSourceLabel=null;streamingSourceType=null;agentBuffers=new Map;activeAgentId=null;constructor(e){this.config=e,this.memory=e.memory,this.runtime=new wu({onSubmit:(t,n)=>{this.callbacks?.onSubmit&&this.callbacks.onSubmit(t,n);},onInterrupt:()=>{this.callbacks?.onInterrupt&&this.callbacks.onInterrupt();},onExit:()=>{this.callbacks?.onExit&&this.callbacks.onExit();}}),e.getPendingMessages&&this.runtime.setGetPendingMessages(e.getPendingMessages);}start(e){this.callbacks=e,this.runtime.setVersion(this.config.version),this.runtime.setProvider(this.config.provider),this.runtime.setModel(this.config.model),this.runtime.setWorkDir(this.config.workDir),this.config.getCompletions&&this.runtime.setCompletionFunction(this.config.getCompletions),this.runtime.start(),m.info("INK_ADAPTER","Ink UI started");}stop(){this.runtime.stop(),this.callbacks=void 0,m.info("INK_ADAPTER","Ink UI stopped");}addUserMessage(e,t,n){let r=[{type:"text",text:e}];if(t&&t.length>0)for(let i of t)r.push({type:"image_url",image_url:{url:`file://${i.path}`}});let o={role:"user",content:r};this.lastEntryId=this.runtime.addEntry({type:"user",message:o,sourceLabel:n==="remote"?"Android":void 0}),this.lastMessageRole="user";}addAssistantMessage(e=""){if(e===""){this.lastMessageRole="assistant";return}let t={role:"assistant",content:[{type:"text",text:e}]};this.lastEntryId=this.runtime.addEntry({type:"assistant",message:t,isStreaming:false}),this.lastMessageRole="assistant";}addSupervisorMessage(e){let t={role:"user",content:[{type:"text",text:e}]};this.lastEntryId=this.runtime.addEntry({type:"supervisor",message:t}),this.lastMessageRole="user";}startSupervisorStreaming(){this.startAgentStreaming("Supervisor"),this.streamingSourceLabel="Supervisor",this.streamingSourceType="supervisor";}startExecutorStreaming(e){let t=e||"Executor";this.startAgentStreaming(t);}getStreamingSourceType(){return this.streamingSourceType}startAgentStreaming(e){this.agentBuffers.has(e)||this.agentBuffers.set(e,""),this.activeAgentId=e,this.lastMessageRole="assistant",m.debug("INK_ADAPTER",`Started agent streaming for ${e}`);}startWorkerStreaming(e){this.startAgentStreaming(e);}addWorkerTextDelta(e,t){this.streamText(t,e);}completeWorkerStreaming(e){this.completeTextStreaming(e);}addWorkerInfo(e,t,n,r="info"){let i=`${`[${e}]`} ${t}`,a=r==="error"?"warning":r;this.addInfo(i,n,a);}streamText(e,t){let n=Date.now(),r=t||this.activeAgentId||"default";m.debug("INK_ADAPTER",`streamText: ${e.length} chars to ${r}`,{snippet:e.substring(0,30),bufferExists:this.agentBuffers.has(r)});let o=Date.now()-n;o>10&&m.warn("INK_ADAPTER",`\u26A0\uFE0F streamText slow: ${o}ms for ${e.length} chars`);let i=this.agentBuffers.get(r)||"";this.agentBuffers.set(r,i+e);}addTextDelta(e,t){m.debug("INK_ADAPTER",`addTextDelta called: ${e.length} chars, agentId=${t||"default"}`,{delta:e.substring(0,50)}),this.streamText(e,t);}addAgentTextDelta(e,t,n){m.debug("INK_ADAPTER",`addAgentTextDelta: ${e.length} chars, agentId=${t}`,{delta:e.substring(0,50)}),this.agentBuffers.has(t)||this.agentBuffers.set(t,"");let r=this.agentBuffers.get(t)||"";this.agentBuffers.set(t,r+e);let i={role:"assistant",content:[{type:"text",text:this.agentBuffers.get(t)||""}]};this.runtime.updatePendingEntryByKey(t,{type:"assistant",message:i,isStreaming:true,isComplete:false,sourceLabel:n||t});}bufferAgentTextOnly(e,t){this.agentBuffers.has(t)||this.agentBuffers.set(t,"");let n=this.agentBuffers.get(t)||"";this.agentBuffers.set(t,n+e);}flushAgentBuffer(e){let t=this.agentBuffers.get(e)||"";return this.agentBuffers.delete(e),t}commitPendingEntryByKey(e){return this.agentBuffers.has(e)&&this.agentBuffers.delete(e),this.runtime.commitPendingEntryByKey(e)}addToolCall(e,t){let n={role:"assistant",content:[{type:"tool_use",id:`tool_${Math.floor(Date.now())}`,name:e,input:t}]};this.runtime.addMessage(n),this.lastMessageRole="tool_call";}addToolCallEntry(e,t,n){m.debug("INK_ADAPTER","Add tool call entry",{toolName:e,sourceLabel:n?.sourceLabel});let r=`entry_${Date.now()}_${Math.random().toString(36).slice(2,6)}`;this.startToolCallWithId(r,e,t,n);}addToolResult(e,t=false){let n={role:"user",content:[{type:"tool_result",tool_use_id:`tool_${Math.floor(Date.now())}`,content:e,is_error:t}]};this.runtime.addMessage(n),this.lastMessageRole="tool_result";}addEntry(e){return m.debug("INK_ADAPTER",`AddEntry: ${e.type}`,{text:e.text}),this.runtime.addEntry(e)}addInfo(e,t,n="info",r){m.info("INK_ADAPTER",`Info: ${e}`,t?{details:t}:void 0);let o=n==="warning"||e.includes("\u26A0")||e.includes("\u23F3")||e.includes("\u23F1\uFE0F")||e.includes("\u{1F504}");this.runtime.addEntry({type:o?"warning":"info",text:e,details:t,sourceLabel:r});}addError(e,t){let n=typeof t=="string"?t:t?.details,r=typeof t=="object"?t?.sourceLabel:void 0;m.error("INK_ADAPTER",e,n?{details:n}:void 0),this.runtime.addEntry({type:"error",text:e,details:n,sourceLabel:r});}addWarning(e,t,n){m.warn("INK_ADAPTER",e,t?{details:t}:void 0),this.runtime.addEntry({type:"warning",text:e,details:t,sourceLabel:n?.sourceLabel});}addCompacting(e,t){m.info("INK_ADAPTER",`Compacting: ${e}`,t?{details:t}:void 0),this.runtime.addEntry({type:"compacting",text:e,details:t});}updateStatus(e,t){if(t==="tool_call"&&e.includes("Streaming:")){let n=e.match(/\((\d+) chars\)/);if(n){let r=parseInt(n[1],10);this.streamingToolChars=r,this.runtime.updateStreamingStats(r);}}else t!=="tool_call"&&(this.streamingToolChars=0);t==="compacting"||t==="thinking"||t==="tool_call"?this.runtime.setRunning(true):(t==="complete"||t==="error")&&this.runtime.setRunning(false),this.runtime.setStatusText(e);}setRunning(e){this.runtime.setRunning(e);}startSessionTimer(){}getAccumulatedRunTime(){return this.runtime.getAccumulatedRunTime()}resetAccumulatedRunTime(){this.runtime.resetAccumulatedRunTime();}setCompressionMode(e){this.runtime.setCompressionMode(e);}setCompactionThreshold(e){this.runtime.setCompactionThreshold(e/100);}updateTokenStats(e,t){this.tokenStats.inputTokens=e,this.tokenStats.outputTokens=t,this.tokenStats.totalTokens=e+t,this.runtime.setTokenStats({input:e,output:t,total:e+t});}updateAgentContext(e,t){this.runtime.updateAgentContext(e,t);}clearAgentContext(e){this.runtime.clearAgentContext(e);}clearAllAgentContexts(){this.runtime.clearAllAgentContexts();}getTokenStats(){return {...this.tokenStats}}setTokenStats(e,t,n){m.info("DEBUG_CTX",`InkUIAdapter.setTokenStats: input=${e}, output=${t}, extras.contextWindow=${n?.contextWindow}`),this.tokenStats={inputTokens:e,outputTokens:t,totalTokens:e+t,...n};let r=n?.anthropicCacheCreationTokens||n?.openaiCachedTokens||n?.cacheCreationTokens,o=n?.anthropicCacheReadTokens||n?.cacheReadTokens,i=n?.contextWindow||0,a=n?.tokensUsedForContext||e+t+(o||0),l=i>0?a/i:0;m.info("DEBUG_CTX",`InkUIAdapter.setTokenStats: passing to runtime contextWindow=${n?.contextWindow}, calculated contextWindow=${i}`),this.runtime.setTokenStats({input:e,output:t,total:e+t,contextWindow:n?.contextWindow,tokensUsedForContext:n?.tokensUsedForContext,pressure:l,systemTokens:n?.systemTokens,userTokens:n?.userTokens,assistantTokens:n?.assistantTokens,toolCallTokens:n?.toolCallTokens,toolResultTokens:n?.toolResultTokens,toolTokens:n?.toolTokens,messageTokens:n?.messageTokens,cacheCreationTokens:r,cacheReadTokens:o});}startThinking(){this.streamingReasoningBuffer="",this.streamingReasoningType="thinking",this.hasInferredThinkingStatus=false,this.updateStatus(Su(),"thinking");}streamThinking(e,t="thinking",n){if(this.streamingReasoningBuffer+=e,n&&(this.streamingReasoningSourceLabel=n),!this.hasInferredThinkingStatus&&this.streamingReasoningBuffer.length>30){let r=Px(this.streamingReasoningBuffer);r&&(this.updateStatus(r,"thinking"),this.hasInferredThinkingStatus=true);}this.streamingReasoningPendingId?this.runtime.updatePendingEntry(this.streamingReasoningPendingId,{text:this.streamingReasoningBuffer}):(this.streamingReasoningType=t,this.streamingReasoningPendingId=this.runtime.addPendingEntry({type:t,text:this.streamingReasoningBuffer,isStreaming:true}));}endThinking(){if(!this.streamingReasoningPendingId){this.updateStatus("","info");return}try{this.streamingReasoningBuffer&&this.streamingReasoningBuffer.trim().length>0?(this.runtime.updatePendingEntry(this.streamingReasoningPendingId,{isStreaming:!1,isComplete:!0,sourceLabel:this.streamingReasoningSourceLabel}),this.runtime.commitPendingEntry(this.streamingReasoningPendingId),m.debug("INK_ADAPTER",`Committed reasoning entry (${this.streamingReasoningBuffer.length} chars)`)):m.debug("INK_ADAPTER","Discarding empty reasoning entry (no content)");}catch(e){m.warn("INK_ADAPTER","Failed to commit reasoning entry",{error:e});}finally{this.streamingReasoningPendingId=null,this.streamingReasoningBuffer="",this.streamingReasoningSourceLabel=void 0,this.runtime.resetStreamingStats(),this.updateStatus("","info");}}startTaskTimer(){this.runtime.setRunning(true);}stopTaskTimer(){this.runtime.setRunning(false);}setStreamingTokens(e){this.runtime.updateStreamingStats(e);}clear(){this.runtime.clearMessages(),this.lastMessageRole=null;}resetStreamingState(){this.agentBuffers.clear(),this.activeAgentId=null,this.streamingTextBuffer="",this.streamingTextPendingId=null,this.streamingReasoningBuffer="",this.streamingReasoningPendingId=null,this.currentThinkingText="",this.streamingToolChars=0,this.runtime.clearPendingEntries(),this.runtime.resetStreamingStats(),this.runtime.setStatusText(""),m.debug("INK_ADAPTER","Reset streaming state (cleared all pending entries and buffers)");}finalizeStreamingState(){let e=Array.from(this.agentBuffers.keys());if(e.length>0)for(let t of e)this.completeTextStreaming(t);else this.completeTextStreaming();this.completeReasoningStreaming();}startReasoningStreaming(){this.startThinking();}streamReasoningText(e){this.streamThinking(e);}addReasoningDelta(e,t){this.streamThinking(e,"reasoning",t);}completeReasoningStreaming(e){e&&(this.streamingReasoningSourceLabel=e),this.endThinking();}addThinking(e){}completeTextStreaming(e){let t=e||this.activeAgentId||"default",n=this.agentBuffers.get(t)||"";if(!(n&&n.trim().length>0)){m.debug("INK_ADAPTER",`Complete text streaming (${t}) - no text to commit`),this.agentBuffers.delete(t),this.runtime.commitPendingEntryByKey(t),(t==="default"||t===this.activeAgentId)&&(this.streamingTextPendingId=null,this.streamingSourceLabel=null,this.streamingSourceType=null,this.runtime.resetStreamingStats());return}try{if(this.runtime.commitPendingEntryByKey(t))m.debug("INK_ADAPTER",`Complete text streaming (${t}) - committed pending entry ${n.length} chars`);else {let i={role:"assistant",content:[{type:"text",text:n}]};this.runtime.addEntry({type:"assistant",message:i,isStreaming:!1,isComplete:!0,sourceLabel:t==="default"?void 0:t}),m.debug("INK_ADAPTER",`Complete text streaming (${t}) - created static entry from buffer ${n.length} chars`);}}catch(o){m.warn("INK_ADAPTER","Failed to commit text entry",{error:o});}finally{this.agentBuffers.delete(t),(t==="default"||t===this.activeAgentId)&&(this.streamingTextPendingId=null,this.streamingSourceLabel=null,this.streamingSourceType=null,this.lastMessageRole="assistant",this.runtime.resetStreamingStats()),this.activeAgentId===t&&(this.activeAgentId=null);}}printCommandOutput(e){m.debug("INK_ADAPTER",`Command output: ${e}`);}setCommandOutputLines(e){m.debug("INK_ADAPTER",`Set command output lines: ${e.length}`),this.runtime.setCommandOutput(e);}clearCommandOutputLines(){m.debug("INK_ADAPTER","Clear command output lines"),this.runtime.clearCommandOutput();}startToolCallWithId(e,t,n,r){m.debug("INK_ADAPTER",`Start tool call: ${t}`,{toolId:e,args:n});let o=r?.sourceLabel,i=t,a=n;t==="call_tool"&&n?.name&&(i=n.name,a=n.args||{});let l=this.buildToolCallDetails(a,r),d={readfile:"readfile",Read:"readfile",read_file:"readfile",smart_read:"readfile",read:"readfile",search:"search",Grep:"search",grep:"search",search_files:"search_files",Glob:"search_files",glob:"search_files",find_files:"search_files",show_tree:"show_tree",smart_tree:"show_tree",list_directory:"show_tree",ls:"show_tree",file_update:"file_update",Edit:"file_update",edit_file:"file_update",Write:"file_update",write_file:"file_update",delete_file:"file_update",rename_file:"file_update",apply_patch:"file_update",create_directory:"file_update",command_exec:"command_exec",Bash:"command_exec",bash:"command_exec",shell:"command_exec",execute_command:"command_exec",execute_shell:"command_exec",code_exec:"code_exec",execute_python:"code_exec",execute_javascript:"code_exec",web_search:"web_search",WebSearch:"web_search",web_fetch:"web_fetch",WebFetch:"web_fetch",browser_debug:"browser_debug",debug_in_browser:"browser_debug",git_status:"git_status",git_diff:"git_diff",git_log:"git_log",git_commit:"git_commit",git_blame:"git_diff",git_branch:"git_running",git_branch_list:"git_running",TodoWrite:"todo",TodoRead:"todo",Task:"task",NotebookEdit:"notebook",NotebookRead:"notebook",AskUserQuestion:"ask_user",ask_user:"ask_user",run_tests:"command_exec",run_lint:"command_exec",run_format:"command_exec",build_index:"search",search_symbol:"search",get_definitions:"search",get_references:"search",index_stats:"search",analyze_code:"search"}[i]||"tool_call",p=this.buildToolSummaryText(d,i,a),g=this.runtime.addPendingEntry({type:d,text:p,details:l,entryKey:e,isStreaming:true,sourceLabel:o});this.toolLogIdByToolId.set(e,g),this.toolLogDetailsByToolId.set(e,l||""),this.toolLogNameByToolId.set(e,i),o&&this.toolLogSourceLabelByToolId.set(e,o);let f=xu(i,a);this.updateStatus(f,"tool_call");}updateToolCallOutput(e,t,n){m.debug("INK_ADAPTER",`Update tool output: ${e}`,{output:t});let r=this.toolLogIdByToolId.get(e);if(!r)return;let o=this.toolLogDetailsByToolId.get(e)||"",i=this.formatToolOutput(t,n?.truncated);i&&this.toolLogOutputByToolId.set(e,i);let a=this.mergeToolDetails(o,i);this.runtime.updateEntry(r,{details:a,isStreaming:true});}completeToolCall(e,t){m.debug("INK_ADAPTER",`Complete tool call: ${e}`);let n=this.toolLogIdByToolId.get(e);if(!n){t?.result&&this.addToolResult(t.result,t.isError||false);return}let r=this.toolLogSourceLabelByToolId.get(e),o=this.toolLogNameByToolId.get(e)||"",i=this.isGitResultTool(o),a=t?.summary||t?.error||"",l=this.toolLogOutputByToolId.get(e)||"",c=(a||l||"").replace(/\r\n?/g,`
|
|
3767
3768
|
`).trim(),u=c.split(`
|
|
3768
3769
|
`).find(f=>f.trim())||"",d=u.length>200?u.slice(0,197)+"\u2026":u,p={isStreaming:false,isComplete:true,sourceLabel:r};d&&(p.text=d);let g=this.formatToolCompletionDetails(c,o);if(g&&(p.details=g),i){let f=this.formatGitToolDetails(a,l);f&&(p.details=f);}t?.success||(p.type="tool_error"),this.runtime.updateEntry(n,p),this.runtime.commitPendingEntry(n),this.toolLogIdByToolId.delete(e),this.toolLogDetailsByToolId.delete(e),this.toolLogNameByToolId.delete(e),this.toolLogOutputByToolId.delete(e),this.toolLogSourceLabelByToolId.delete(e);}updateTaskTokens(e,t=false){m.debug("INK_ADAPTER",`Update task tokens: ${e}`,{isActual:t}),!t&&this.runtime.updateStreamingStats(e);}addToolError(e,t){m.error("INK_ADAPTER",`Tool error: ${e}`,{error:t}),this.addToolResult(t,true);}printCommandOutputLines(e){e.forEach(t=>this.printCommandOutput(t));}resetTokenStats(){this.tokenStats={inputTokens:0,outputTokens:0,totalTokens:0},this.runtime.setTokenStats({input:0,output:0,total:0});}pause(){m.debug("INK_ADAPTER","Pause UI");}resume(){m.debug("INK_ADAPTER","Resume UI");}refreshUI(){m.debug("INK_ADAPTER","Refresh UI");}forceUpdate(){m.debug("INK_ADAPTER","Force UI update"),this.runtime.triggerForceUpdate();}setPlanSteps(e){m.debug("INK_ADAPTER",`Set plan steps: ${e.length} items`),this.runtime.setPlanSteps(e);}getPlanSteps(){return this.runtime.getPlanSteps()}clearPlanSteps(){m.debug("INK_ADAPTER","Clear plan steps"),this.runtime.clearPlanSteps();}commitAllPendingEntries(){m.debug("INK_ADAPTER","Commit all pending entries"),this.runtime.commitAllPendingEntries();}updateProvider(e,t){this.config.provider=e,this.config.model=t,this.runtime.setProvider(e),this.runtime.setModel(t);}updateWorkDir(e){this.config.workDir=e,this.runtime.setWorkDir(e);}setThinkingEnabled(e){this.runtime.setThinkingEnabled(e);}setRunMode(e){this.runtime.setRunMode(e);}updateNetworkStats(e){this.runtime.updateNetworkStats(e);}clearNetworkStats(){this.runtime.clearNetworkStats();}updateCooperateStats(e){this.runtime.updateCooperateStats(e);}clearCooperateStats(){this.runtime.clearCooperateStats();}addBackgroundTask(e,t){return this.runtime.addBackgroundTask(e,t)}updateBackgroundTask(e,t){this.runtime.updateBackgroundTask(e,t);}removeBackgroundTask(e){this.runtime.removeBackgroundTask(e);}updateBackgroundTaskByPid(e,t){this.runtime.updateBackgroundTaskByPid(e,t);}showContextMenu(){return new Promise(e=>{this.runtime.showContextMenu();let t=setInterval(()=>{this.runtime.getContextMenuActive()||(clearInterval(t),e());},100);})}async promptText(e){return new Promise(t=>{this.runtime.showTextPrompt({message:e.message,defaultValue:e.defaultValue??e.initial,hint:e.hint,allowEmpty:e.allowEmpty??false,onSubmit:n=>{this.runtime.hideTextPrompt(),t(n);},onCancel:()=>{this.runtime.hideTextPrompt(),t(null);}});})}async promptSelect(e){return new Promise(t=>{this.runtime.hideSelectMenu();let n=e.choices.map(o=>({label:o.title,value:o.value,description:o.description})),r=e.initial||0;if(e.initialValue){let o=e.choices.findIndex(i=>i.value===e.initialValue);o>=0&&(r=o);}setTimeout(()=>{this.runtime.showSelectMenu({message:e.message,choices:n,initialIndex:r,hint:e.hint,header:e.header,allowTextInput:e.allowTextInput,onSelect:o=>{this.runtime.hideSelectMenu(),setTimeout(()=>t(o),100);},onCancel:()=>{this.runtime.hideSelectMenu(),setTimeout(()=>t(null),100);}});},100);})}handleSelectBack(){return m.debug("INK_ADAPTER","Handle select back"),this.runtime.isSelectMenuActive()?(this.runtime.hideSelectMenu(),true):false}addWebSearchResult(e){if(e.status==="searching"){m.debug("INK_ADAPTER","Skip web search start (waiting for completion)");return}m.debug("INK_ADAPTER","Add web search result",{options:e});let t=e.query||"query",n=e.results?`Found ${e.results.length} results`:void 0;this.runtime.addEntry({type:"web_search",text:t,details:n,sourceLabel:e.sourceLabel});}addWebFetchResult(e){if(e.status==="fetching"){m.debug("INK_ADAPTER","Skip web fetch start (waiting for completion)");return}m.debug("INK_ADAPTER","Add web fetch result",{options:e});let t=e.url||"URL",n=e.contentLength?`${(e.contentLength/1024).toFixed(1)}KB`:e.contentPreview?`${e.contentPreview.length} chars`:void 0;this.runtime.addEntry({type:"web_fetch",text:t,details:n,sourceLabel:e.sourceLabel});}addReadFileResult(e){if(e.status==="reading"){m.debug("INK_ADAPTER","Skip read file start (waiting for completion)");return}m.debug("INK_ADAPTER","Add read file result",{options:e});let t=e.filePath||"file",n=e.totalLines?`${t} \u2014 ${e.totalLines} lines read`:t,r=[];e.totalLines&&r.push(`${e.totalLines} lines`),e.fileSize&&r.push(e.fileSize);let o=r.length>0?r.join(", "):void 0;this.runtime.addEntry({type:"readfile",text:n,details:o,sourceLabel:e.sourceLabel});}addSearchResult(e){if(e.status==="searching"){m.debug("INK_ADAPTER","Skip search start (waiting for completion)");return}m.debug("INK_ADAPTER","Add search result",{options:e});let t=[];if(e.pattern&&t.push(`pattern="${e.pattern}"`),e.filePath){let i=e.filePath==="."?".":e.filePath;t.push(`path="${i}"`);}e.mode&&t.push(`mode="${e.mode}"`),e.strategy&&t.push(`engine="${e.strategy}"`),e.status==="completed"?e.matchCount!==void 0&&t.push(`matches=${e.matchCount}`):e.status==="error"&&t.push("\u274C ERROR");let n=t.join(", "),r=[];if(e.command){let i=this.simplifyRipgrepCommand(e.command);r.push(`$ ${i}`),r.push("");}e.status==="error"&&e.error?r.push(this.parseErrorMessage(e.error)):e.details&&r.push(e.details);let o=r.length>0?r.join(`
|
|
3769
3770
|
`):void 0;this.runtime.addEntry({type:"search",text:n,details:o,sourceLabel:e.sourceLabel});}addSearchFilesResult(e){if(e.status==="searching"){m.debug("INK_ADAPTER","Skip search files start (waiting for completion)");return}m.debug("INK_ADAPTER","Add search files result",{options:e});let t=[];e.pattern&&t.push(`pattern="${e.pattern}"`),e.path&&t.push(`path="${e.path}"`),e.fileCount!==void 0&&t.push(`files=${e.fileCount}`);let n=t.length>0?t.join(", "):"Glob";this.runtime.addEntry({type:"search_files",text:n,sourceLabel:e.sourceLabel});}addShowTreeResult(e){if(e.status==="loading"){m.debug("INK_ADAPTER","Skip show tree start (waiting for completion)");return}m.debug("INK_ADAPTER","Add show tree result",{options:e});let n=[`path="${e.path||"."}"`];if(e.mode&&n.push(`mode="${e.mode}"`),e.maxDepth!==void 0&&e.maxDepth!==null&&n.push(`depth=${e.maxDepth}`),e.status==="completed"&&e.totalChars){let a=(e.totalChars/1024).toFixed(1);n.push(`${a}KB`);}else e.status==="error"&&n.push("\u274C ERROR");let r=n.join(", "),o=this.formatSmartTreeDetails(e.content),i;if(e.status==="error"&&e.error)i=`Error: ${e.error}`;else if(o)i=o;else if(e.content){let a=e.content.replace(/\r\n?/g,`
|