@kodax-ai/kodax 0.7.42 → 0.7.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/CHANGELOG.md +34 -6
  2. package/README.md +87 -56
  3. package/README_CN.md +46 -25
  4. package/dist/chunks/chunk-7G5PSL6C.js +830 -0
  5. package/dist/chunks/{chunk-IYJ5EPRV.js → chunk-IYSK7LUK.js} +1 -1
  6. package/dist/chunks/chunk-K75O2CAE.js +31 -0
  7. package/dist/chunks/chunk-UG4262JI.js +502 -0
  8. package/dist/chunks/chunk-VHKAJDQD.js +425 -0
  9. package/dist/chunks/chunk-YMRZBS4G.js +2 -0
  10. package/dist/chunks/compaction-config-3E57ABCT.js +2 -0
  11. package/dist/chunks/{construction-bootstrap-J2WOCYEK.js → construction-bootstrap-JR63KI5N.js} +4 -4
  12. package/dist/chunks/dist-KWHUKXEL.js +2 -0
  13. package/dist/chunks/dist-XANXEVTU.js +2 -0
  14. package/dist/chunks/utils-HQ2QCKJA.js +2 -0
  15. package/dist/index.d.ts +10 -10
  16. package/dist/index.js +2 -2
  17. package/dist/kodax_cli.js +1124 -1102
  18. package/dist/sdk-agent.d.ts +850 -48
  19. package/dist/sdk-agent.js +1 -1
  20. package/dist/sdk-coding.d.ts +701 -815
  21. package/dist/sdk-coding.js +1 -1
  22. package/dist/sdk-llm.d.ts +5 -3
  23. package/dist/sdk-llm.js +1 -1
  24. package/dist/sdk-mcp.d.ts +1 -1
  25. package/dist/sdk-mcp.js +1 -1
  26. package/dist/sdk-repl.d.ts +9 -8
  27. package/dist/sdk-repl.js +1 -1
  28. package/dist/sdk-session.d.ts +22 -10
  29. package/dist/sdk-session.js +1 -1
  30. package/dist/sdk-skills.js +1 -1
  31. package/dist/types-chunks/{cost-tracker.d-B6vMoLLF.d.ts → base.d-FUJahC0i.d.ts} +2 -110
  32. package/dist/types-chunks/{bash-prefix-extractor.d-CkhaqKkg.d.ts → bash-prefix-extractor.d-DMrGImMl.d.ts} +35 -136
  33. package/dist/types-chunks/cost-tracker.d-wRtyEW9d.d.ts +110 -0
  34. package/dist/types-chunks/{history-cleanup.d-DznrzEiU.d.ts → file-tracker.d-zaLZeNBK.d.ts} +314 -6
  35. package/dist/types-chunks/manager.d-87belpiS.d.ts +370 -0
  36. package/dist/types-chunks/{resolver.d-DX9au4NJ.d.ts → resolver.d-CA68_NeH.d.ts} +149 -5
  37. package/dist/types-chunks/{session-storage.d-Cci897iM.d.ts → storage.d-DPAEX7zS.d.ts} +49 -2
  38. package/dist/types-chunks/{instance-discovery.d-BsKnIwpg.d.ts → types.d-CKJtjo-6.d.ts} +139 -2
  39. package/dist/types-chunks/{storage.d-Bc5DoAwp.d.ts → utils.d-DkLZD_wa.d.ts} +24 -46
  40. package/package.json +7 -6
  41. package/dist/chunks/chunk-3RKBXWZS.js +0 -2
  42. package/dist/chunks/chunk-7JLYVWAF.js +0 -1033
  43. package/dist/chunks/chunk-CD3R5YBH.js +0 -16
  44. package/dist/chunks/chunk-DKXUY5F2.js +0 -209
  45. package/dist/chunks/chunk-HMYEQJGT.js +0 -31
  46. package/dist/chunks/chunk-KUX5LRPP.js +0 -2
  47. package/dist/chunks/chunk-OWSKU55I.js +0 -13
  48. package/dist/chunks/chunk-ZZ4KRK2B.js +0 -465
  49. package/dist/chunks/compaction-config-FIFFP4FT.js +0 -2
  50. package/dist/chunks/dist-2ZHWDXMQ.js +0 -2
  51. package/dist/chunks/dist-W4CJWLIH.js +0 -2
  52. package/dist/chunks/utils-A5MWDTWZ.js +0 -2
  53. package/dist/types-chunks/transport.d-DuyjG30t.d.ts +0 -180
@@ -1,465 +0,0 @@
1
- // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{A as gx,B as hx,C as yx,a as Z,c as Et,j as ki,k as Kn,l as Ri,m as ho,n as mx,o as px,p as Rl,q as em,r as El,s as tm,t as nm,u as rm,w as om,x as im,y as mr,z as yo}from"./chunk-KUX5LRPP.js";import{a as Ml}from"./chunk-IYJ5EPRV.js";import{n as xx,o as wx,p as Sx}from"./chunk-EVIDQWMF.js";import{$ as Xy,Aa as gn,Ca as Rt,Dc as ix,Ea as Ti,Ec as sx,Fa as Ci,Ga as Qy,Ha as bi,Ia as vi,Ja as Ii,Ka as vl,La as go,Ld as dx,Ma as Jy,Mb as Il,Na as Jf,Oa as ua,P as Vy,Pa as Zy,Pb as tx,Q as bl,Rb as nx,S as la,T as zy,Ta as fr,Tb as rx,c as Yf,d as ca,e as Hy,fb as ex,fe as fx,g as qf,ic as ox,id as da,ie as kl,qa as Yy,ra as Qf,sa as qy,td as ax,ud as cx,wd as Zf,xd as lx,ya as Si,yd as ux}from"./chunk-7JLYVWAF.js";import{Fa as Fy,Ka as Cl,Ma as Wy,ia as wi,ja as jn,k as mo,ma as Gn}from"./chunk-CD3R5YBH.js";import{$ as Xf,Q as Tl,Z as Ny,aa as By,j as uo,ka as fo,la as yi,ma as xi}from"./chunk-HMYEQJGT.js";import{B as Ky,g as Uy,h as jy,i as Gy,v as dr,w as po}from"./chunk-OWSKU55I.js";import{a as i,b as zf,c as CI}from"./chunk-V4WSBIXB.js";var dS=zf((xW,uS)=>{"use strict";uS.exports=i(function(t){return t.map(function(n){return n===""?"''":n&&typeof n=="object"?n.op.replace(/(.)/g,"\\$1"):/["\s\\]/.test(n)&&!/'/.test(n)?"'"+n.replace(/(['])/g,"\\$1")+"'":/["'\s]/.test(n)?'"'+n.replace(/(["\\$`!])/g,"\\$1")+'"':String(n).replace(/([A-Za-z]:)?([#!"$&'()*,:;<=>?@[\\\]^`{|}])/g,"$1\\$2")}).join(" ")},"quote")});var xS=zf((SW,yS)=>{"use strict";var hS="(?:"+["\\|\\|","\\&\\&",";;","\\|\\&","\\<\\(","\\<\\<\\<",">>",">\\&","<\\&","[&;()|<>]"].join("|")+")",fS=new RegExp("^"+hS+"$"),mS="|&;()<> \\t",tM='"((\\\\"|[^"])*?)"',nM="'((\\\\'|[^'])*?)'",rM=/^#$/,pS="'",gS='"',Jm="$",Eo="",oM=4294967296;for(Zm=0;Zm<4;Zm++)Eo+=(oM*Math.random()).toString(16);var Zm,iM=new RegExp("^"+Eo);function sM(e,t){for(var n=t.lastIndex,r=[],o;o=t.exec(e);)r.push(o),t.lastIndex===o.index&&(t.lastIndex+=1);return t.lastIndex=n,r}i(sM,"matchAll");function aM(e,t,n){var r=typeof e=="function"?e(n):e[n];return typeof r>"u"&&n!=""?r="":typeof r>"u"&&(r="$"),typeof r=="object"?t+Eo+JSON.stringify(r)+Eo:t+r}i(aM,"getVar");function cM(e,t,n){n||(n={});var r=n.escape||"\\",o="(\\"+r+`['"`+mS+`]|[^\\s'"`+mS+"])+",s=new RegExp(["("+hS+")","("+o+"|"+tM+"|"+nM+")+"].join("|"),"g"),a=sM(e,s);if(a.length===0)return[];t||(t={});var c=!1;return a.map(function(l){var u=l[0];if(!u||c)return;if(fS.test(u))return{op:u};var m=!1,p=!1,g="",h=!1,x;function C(){x+=1;var P,L,F=u.charAt(x);if(F==="{"){if(x+=1,u.charAt(x)==="}")throw new Error("Bad substitution: "+u.slice(x-2,x+1));if(P=u.indexOf("}",x),P<0)throw new Error("Bad substitution: "+u.slice(x));L=u.slice(x,P),x=P}else if(/[*@#?$!_-]/.test(F))L=F,x+=1;else{var O=u.slice(x);P=O.match(/[^\w\d_]/),P?(L=O.slice(0,P.index),x+=P.index-1):(L=O,x=u.length)}return aM(t,"",L)}for(i(C,"parseEnvVar"),x=0;x<u.length;x++){var w=u.charAt(x);if(h=h||!m&&(w==="*"||w==="?"),p)g+=w,p=!1;else if(m)w===m?m=!1:m==pS?g+=w:w===r?(x+=1,w=u.charAt(x),w===gS||w===r||w===Jm?g+=w:g+=r+w):w===Jm?g+=C():g+=w;else if(w===gS||w===pS)m=w;else{if(fS.test(w))return{op:u};if(rM.test(w)){c=!0;var b={comment:e.slice(l.index+x+1)};return g.length?[g,b]:[b]}else w===r?p=!0:w===Jm?g+=C():g+=w}}return h?{op:"glob",pattern:g}:g}).reduce(function(l,u){return typeof u>"u"?l:l.concat(u)},[])}i(cM,"parseInternal");yS.exports=i(function(t,n,r){var o=cM(t,n,r);return typeof n!="function"?o:o.reduce(function(s,a){if(typeof a=="object")return s.concat(a);var c=a.split(RegExp("("+Eo+".*?"+Eo+")","g"));return c.length===1?s.concat(c[0]):s.concat(c.filter(Boolean).map(function(l){return iM.test(l)?JSON.parse(l.split(Eo)[1]):l}))},[])},"parse")});var wS=zf(ep=>{"use strict";ep.quote=dS();ep.parse=xS()});import{spawnSync as bI}from"node:child_process";function Al(e){return e==="1"||e?.toLowerCase()==="true"}i(Al,"isTruthyEnv");function Tx(e){return e==="0"||e?.toLowerCase()==="false"}i(Tx,"isFalseyEnv");function Ei(e=process.env){return e.TERM_PROGRAM?.toLowerCase()==="vscode"||!!e.VSCODE_GIT_IPC_HANDLE||!!e.VSCODE_INJECTION}i(Ei,"isVsCodeTerminalHostEnv");function Mi(e={}){let t=e.env??process.env;return(e.platform??process.platform)==="win32"||!!t.WT_SESSION}i(Mi,"hasCursorUpViewportYankRisk");function vI(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}i(vI,"isSshSession");function fa(e={}){let t=e.env??process.env;return Al(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&vI(t)}i(fa,"isRemoteConptyHost");function Ai(e={}){let t=e.env??process.env;return Mi(e)||Ei(t)}i(Ai,"hasMainScreenRenderScrollRisk");function II(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}i(II,"isTmuxControlModeEnvHeuristic");var pr;function ma(e={}){if(typeof e.tmuxControlMode=="boolean")return e.tmuxControlMode;let t=e.env??process.env,n=e.platform??process.platform;if(n==="win32")return!1;if(II(t))return!0;if(!(t===process.env&&n===process.platform))return!1;if(pr!==void 0||(pr=!1,!t.TMUX)||t.TERM_PROGRAM&&t.TERM_PROGRAM!=="iTerm.app")return pr;try{let o=bI("tmux",["display-message","-p","#{client_control_mode}"],{encoding:"utf8",timeout:2e3});o.status===0&&(pr=o.stdout.trim()==="1")}catch{pr=!1}return pr}i(ma,"isTmuxControlMode");function sm(){pr=void 0}i(sm,"resetTmuxControlModeProbeForTesting");function xo(e={}){let t=e.env??process.env,n=e.isTTY??process.stdout.isTTY===!0,r=e.rawModeSupported??(process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function");return!n||!r||t.TERM==="dumb"||t.CI==="true"?"unsupported_control_host":ma(e)?"tmux_control_mode":Ei(t)?"xtermjs_host":fa(e)?"remote_conpty_host":Mi(e)?"degraded_vt":"native_vt"}i(xo,"detectTerminalRenderHost");var wo=xo;function _i(e={}){let t=e.env??process.env;if(Al(t.KODAX_FORCE_INK))return"legacy";let n=t.KODAX_TUI_RENDERER?.trim().toLowerCase();return n==="legacy"||n==="owned"||n==="auto"?n:"auto"}i(_i,"resolveConfiguredTuiRendererMode");function So(e={}){let t=_i(e);if(t==="legacy"||t==="owned")return t;let n=xo(e);return n==="unsupported_control_host"||n==="tmux_control_mode"?"legacy":"owned"}i(So,"resolveEffectiveTuiRendererMode");function _l(e={}){let t=e.env??process.env;if(Al(t.KODAX_FORCE_CLASSIC_REPL))return"classic";let n=_i({env:t});if(n==="legacy"||n==="owned")return"ink";let r=xo(e);return r==="unsupported_control_host"||r==="tmux_control_mode"?"classic":"ink"}i(_l,"resolveInteractiveSurfacePreference");var Cx={enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!0};function To(e,t="owned",n={}){let r=n.env??process.env;return Tx(r.KODAX_FULLSCREEN)?Cx:kI(e,t)}i(To,"resolveFullscreenPolicy");function kI(e,t){if(t==="legacy")switch(e){case"native_vt":return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!0,transcriptSpinnerAnimation:!0};case"xtermjs_host":case"degraded_vt":case"remote_conpty_host":return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1};default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}switch(e){case"native_vt":return{enabled:!0,promptShell:"virtual",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!0,transcriptSpinnerAnimation:!0};case"xtermjs_host":return{enabled:!0,promptShell:"virtual",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!0,transcriptSpinnerAnimation:!0};case"degraded_vt":return{enabled:!0,promptShell:"virtual",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!0,transcriptSpinnerAnimation:!0};case"remote_conpty_host":return Cx;default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}}i(kI,"buildFullscreenPolicy");function Pi(e,t={}){let n=t.rendererMode??"owned",r=To(e,n,{env:t.env}),o=e!=="unsupported_control_host"&&e!=="tmux_control_mode";return{profile:e,ownsViewportByDefault:r.enabled&&r.promptShell==="virtual",supportsMouseTracking:r.mouseWheel||r.mouseClicks,bufferingMode:r.streamingPreview?"live":"buffered-fallback",supportsFullscreenLayout:r.enabled,supportsOverlaySurface:r.enabled,supportsSelection:o,supportsCopyOnSelect:!1,supportsWheelHistory:r.mouseWheel,supportsViewportChrome:r.enabled,supportsSearchViewport:r.enabled,supportsStickyPrompt:r.enabled}}i(Pi,"getTerminalHostCapabilities");function Pl(e={}){return So(e)==="owned"}i(Pl,"isOwnedRendererPreferred");function $l(e={}){let t=e.env??process.env;return Al(t.KODAX_FORCE_CLASSIC_REPL)&&!Tx(t.KODAX_FORCE_CLASSIC_REPL)}i($l,"isClassicReplForced");var $i=class{static{i(this,"LRUCache")}capacity;cache;constructor(t){this.capacity=t,this.cache=new Map}get(t){if(!this.cache.has(t))return;let n=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,n),n}set(t,n){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.capacity){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(t,n)}has(t){return this.cache.has(t)}delete(t){return this.cache.delete(t)}clear(){this.cache.clear()}get size(){return this.cache.size}},am=1,cm=2,RI=1e3,bx;function Ll(){if(!(typeof Intl>"u"||typeof Intl.Segmenter!="function"))return bx??=new Intl.Segmenter("en",{granularity:"grapheme"}),bx}i(Ll,"getGraphemeSegmenter");function rn(e){if(!e)return 0;let t=Ll();if(t){let n=0;for(let r of t.segment(e))n++;return n}return[...e].length}i(rn,"getCodePointLength");function Vn(e){if(!e)return!1;let t=e.codePointAt(0);return t===void 0?!1:t>=19968&&t<=40959||t>=13312&&t<=19903||t>=63744&&t<=64255||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=44032&&t<=55215||t>=12288&&t<=12351||t>=65280&&t<=65519||t>=128512&&t<=128591||t>=127744&&t<=128511||t>=128640&&t<=128767||t>=127456&&t<=127487||t>=9728&&t<=9983||t>=9984&&t<=10175||t>=129280&&t<=129535||t>=129536&&t<=129647||t>=129648&&t<=129791}i(Vn,"isWideChar");function zn(e){if(!e)return 0;let t=0,n=Ll();if(n)for(let r of n.segment(e))t+=Vn(r.segment)?cm:am;else for(let r of e)t+=Vn(r)?cm:am;return t}i(zn,"getVisualWidth");function EI(e,t){if(!e||t<0)return"";let n=Ll();if(n){let o=0;for(let s of n.segment(e)){if(o===t)return s.segment;o++}return""}let r=[...e];return t>=r.length?"":r[t]}i(EI,"getCharAtCodePoint");function zt(e){if(!e)return[];let t=Ll();if(t){let n=[];for(let r of t.segment(e))n.push(r.segment);return n}return[...e]}i(zt,"splitByCodePoints");function MI(e,t,n){return zt(e).slice(t,n).join("")}i(MI,"sliceByCodePoints");function vx(e,t){let n=Math.max(0,t),r=zt(e),o=0,s=0;for(;o<r.length;){let a=Vn(r[o])?cm:am;if(s+a>n)break;s+=a,o++}return{before:r.slice(0,o).join(""),current:r[o]??"",after:r.slice(o+1).join("")}}i(vx,"splitAtVisualColumn");function pa(e,t,n=!1){if(!e||t<=0)return"";let r="\u2026",s=n?t-1:t,a="",c=0,l=zt(e);for(let u of l){let m=Vn(u)?2:1;if(c+m>s)break;a+=u,c+=m}return n&&a.length<e.length&&(a+=r),a}i(pa,"truncateByVisualWidth");var lm=new $i(RI);function um(e){let t=lm.get(e);if(t!==void 0)return t;let n=zn(e);return lm.set(e,n),n}i(um,"getVisualWidthCached");function Xt(e,t,n,r){let o=[],s=[],a=[];for(let c=0;c<e.length;c++){let l=e[c]||"";if(s[c]=[],l.length===0){o.push("");let p=o.length-1;s[c].push([p,0]),a.push([c,0]);continue}let u=0,m=zt(l);for(;u<m.length;){let p="",g=0,h=u,x=-1;for(let C=u;C<m.length;C++){let w=m[C],b=Vn(w)?2:1;if(g+b>t){x>=0&&C-u>0?(p=m.slice(u,x).join(""),g=m.slice(u,x).reduce((P,L)=>P+(Vn(L)?2:1),0),h=x):p.length===0&&b>t&&(p=w,g=b,h=C+1);break}p+=w,g+=b,h=C+1,w===" "&&(x=C+1)}if(p.length>0||o.length===0){let C=u,w=o.length;o.push(p),s[c].push([w,C]),a.push([c,C])}u=h}}return{visualLines:o,logicalToVisualMap:s,visualToLogicalMap:a}}i(Xt,"calculateVisualLayout");function dm(e,t){let{logicalToVisualMap:n,visualLines:r}=e;if(r.length===0)return[0,0];let[o,s]=t,a=n[o];if(!a||a.length===0)return[0,0];let c;for(let[h,x]of a)if(x<=s)c=[h,x];else break;let[l,u]=c??a[0],m=r[l]??"",p=Math.max(0,s-u),g=zn(MI(m,0,p));return[l,g]}i(dm,"calculateVisualCursorFromLayout");var fm={name:"dark",colors:{primary:"#01A4FF",secondary:"#8B5CF6",accent:"#F59E0B",text:"#CCCCCC",dim:"#666666",thinking:"#A3ADC2",success:"#19C37D",warning:"#FF9F43",error:"#FF5F56",info:"#01A4FF",hint:"#8B5CF6",background:"#0D0D0D",inputBackground:"#1A1A1A"},symbols:{prompt:">",success:"\u2713",error:"\u2717",warning:"!",spinner:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]}},Ix={name:"minimal",colors:{primary:"#01A4FF",secondary:"#8B5CF6",accent:"#F59E0B",text:"#CCCCCC",dim:"#666666",thinking:"#A3ADC2",success:"#19C37D",warning:"#FF9F43",error:"#FF5F56",info:"#01A4FF",hint:"#8B5CF6",background:"#0D0D0D",inputBackground:"#1A1A1A"},symbols:{prompt:"$",success:"+",error:"-",warning:"?",spinner:["-","\\","|","/"]}};var kx={dark:fm,minimal:Ix};function te(e="dark"){return kx[e]??fm}i(te,"getTheme");function lD(){return Object.keys(kx)}i(lD,"getThemeNames");import{jsx as Nt,jsxs as yn,Fragment as NE}from"react/jsx-runtime";import{useMemo as du}from"react";import{jsx as Yw}from"react/jsx-runtime";import{createContext as mE,useContext as ko,useEffect as zi,useMemo as Xw,useState as pE,useCallback as qw,useRef as ou}from"react";import{Stream as jR}from"node:stream";import{openSync as GR,writeSync as Dw}from"node:fs";import{performance as KR}from"node:perf_hooks";import{tmpdir as VR}from"node:os";import{join as zR}from"node:path";import mm,{forwardRef as PI,useContext as $I}from"react";import{createContext as AI}from"react";var Li=AI({isScreenReaderEnabled:!1});import{createContext as _I}from"react";var Ol=_I(void 0);var Rx=PI(({children:e,backgroundColor:t,"aria-label":n,"aria-hidden":r,"aria-role":o,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:l}=$I(Li),u=n?mm.createElement("ink-text",null,n):void 0;if(l&&r)return null;let m=mm.createElement("ink-box",{ref:c,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:0,flexShrink:1,...a,backgroundColor:t,overflowX:a.overflowX??a.overflow??"visible",overflowY:a.overflowY??a.overflow??"visible"},internal_accessibility:{role:o,state:s}},l&&u?u:e);return t?mm.createElement(Ol.Provider,{value:t},m):m});Rx.displayName="Box";var hn=Rx;import NI,{useContext as Ex}from"react";import Oi from"chalk";import Pr from"chalk";var LI=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,OI=/^ansi256\(\s?(\d+)\s?\)$/;function DI(e){return e in Pr}i(DI,"isNamedColor");function _n(e,t,n){if(!t)return e;if(DI(t)){let r=Pr;if(n==="foreground")return r[t]?.(e)??e;let o=`bg${t[0].toUpperCase()+t.slice(1)}`;return r[o]?.(e)??e}if(t.startsWith("#"))return n==="foreground"?Pr.hex(t)(e):Pr.bgHex(t)(e);if(t.startsWith("ansi256")){let r=OI.exec(t);if(!r)return e;let o=Number(r[1]);return n==="foreground"?Pr.ansi256(o)(e):Pr.bgAnsi256(o)(e)}if(t.startsWith("rgb")){let r=LI.exec(t);if(!r)return e;let o=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?Pr.rgb(o,s,a)(e):Pr.bgRgb(o,s,a)(e)}return e}i(_n,"colorize");function Yt({color:e,backgroundColor:t,dimColor:n=!1,bold:r=!1,italic:o=!1,underline:s=!1,strikethrough:a=!1,inverse:c=!1,wrap:l="wrap",children:u,"aria-label":m,"aria-hidden":p=!1}){let{isScreenReaderEnabled:g}=Ex(Li),h=Ex(Ol),x=g&&m?m:u;if(x==null)return null;let C=i(w=>{let b=w;n&&(b=Oi.dim(b)),e&&(b=_n(b,e,"foreground"));let P=t??h;return P&&(b=_n(b,P,"background")),r&&(b=Oi.bold(b)),o&&(b=Oi.italic(b)),s&&(b=Oi.underline(b)),a&&(b=Oi.strikethrough(b)),c&&(b=Oi.inverse(b)),b},"transform");return g&&p?null:NI.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:l},internal_transform:C},g&&m?m:u)}i(Yt,"Text");import BI,{useLayoutEffect as HI,useMemo as Mx,useState as FI}from"react";function pm({items:e,children:t,style:n}){let[r,o]=FI(0),s=Mx(()=>e.slice(r),[e,r]);HI(()=>{o(e.length)},[e.length]);let a=s.map((l,u)=>t(l,r+u)),c=Mx(()=>({position:"absolute",flexDirection:"column",...n}),[n]);return BI.createElement("ink-box",{internal_static:!0,style:c},a)}i(pm,"Static");import Vi from"node:process";import $w from"react";import{throttle as vR}from"es-toolkit/compat";import xr from"ansi-escapes";import Or from"is-in-ci";import IR from"auto-bind";import{onExit as kR}from"signal-exit";import RR from"patch-console";import{LegacyRoot as ER,ConcurrentRoot as MR}from"react-reconciler/constants.js";import AR from"yoga-layout";import _R from"wrap-ansi";import PR from"terminal-size";import WI from"node:process";var Dl=i(()=>WI.env.DEV==="true","isDev");import pk from"react-reconciler";import{DefaultEventPriority as gk,NoEventPriority as Kx}from"react-reconciler/constants.js";import*as $r from"scheduler";import Wx from"yoga-layout";import{createContext as hk}from"react";import nk from"yoga-layout";import UI from"widest-line";var Ax=new Map,jI=i(e=>{if(e.length===0)return{width:0,height:0};let t=Ax.get(e);if(t)return t;let n=UI(e),r=e.split(`
3
- `).length,o={width:n,height:r};return Ax.set(e,o),o},"measureText"),gm=jI;import GI from"wrap-ansi";import KI from"cli-truncate";var _x={},VI=i((e,t,n)=>{let r=e+String(t)+String(n),o=_x[r];if(o)return o;let s=e;if(n==="wrap"&&(s=GI(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=KI(e,t,{position:a})}return _x[r]=s,s},"wrapText"),Nl=VI;var zI=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),XI=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),YI=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),Lx=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),qI=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),Ox=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),Px=i((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!zI(c))break;n++}let r=e.slice(t,n),o=n;for(;n<e.length;){let c=e[n];if(!XI(c))break;n++}let s=e.slice(o,n),a=e[n];if(!(a===void 0||!YI(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),$x=i((e,t,n)=>{for(let r=t;r<e.length;r++){let o=e[r];if(n&&o==="\x07"||o==="\x9C")return r+1;if(o==="\x1B"){let s=e[r+1];if(s==="\x1B"){r++;continue}if(s==="\\")return r+2}}},"findControlStringTerminatorIndex"),QI=i((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!Lx(s))break;n++}let r=e.slice(t,n),o=e[n];if(!(o===void 0||!qI(o)))return{endIndex:n+1,intermediateString:r,finalCharacter:o}},"readEscapeSequence"),JI=i(e=>{switch(e){case"]":return{type:"osc",allowBellTerminator:!0};case"P":return{type:"dcs",allowBellTerminator:!1};case"^":return{type:"pm",allowBellTerminator:!1};case"_":return{type:"apc",allowBellTerminator:!1};case"X":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromEscapeIntroducer"),ZI=i(e=>{switch(e){case"\x9D":return{type:"osc",allowBellTerminator:!0};case"\x90":return{type:"dcs",allowBellTerminator:!1};case"\x9E":return{type:"pm",allowBellTerminator:!1};case"\x9F":return{type:"apc",allowBellTerminator:!1};case"\x98":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromC1Introducer"),hm=i(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(Ox(t))return!0;return!1},"hasAnsiControlCharacters"),Di=i((e,t,n,r)=>(r>n&&e.push({type:"text",value:t.slice(n,r)}),e.push({type:"invalid",value:t.slice(r)}),e),"malformedFromIndex"),Dx=i(e=>{if(!hm(e))return[{type:"text",value:e}];let t=[],n=0;for(let r=0;r<e.length;){let o=e[r];if(o===void 0)break;if(o==="\x1B"){let a=e[r+1];if(a===void 0)return Di(t,e,n,r);if(a==="["){let u=Px(e,r+2);if(u===void 0)return Di(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,u.endIndex),parameterString:u.parameterString,intermediateString:u.intermediateString,finalCharacter:u.finalCharacter}),r=u.endIndex,n=r;continue}let c=JI(a);if(c!==void 0){let u=$x(e,r+2,c.allowBellTerminator);if(u===void 0)return Di(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:c.type,value:e.slice(r,u)}),r=u,n=r;continue}let l=QI(e,r+1);if(l===void 0){if(Lx(a))return Di(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),r++,n=r;continue}r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"esc",value:e.slice(r,l.endIndex),intermediateString:l.intermediateString,finalCharacter:l.finalCharacter}),r=l.endIndex,n=r;continue}if(o==="\x9B"){let a=Px(e,r+1);if(a===void 0)return Di(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,a.endIndex),parameterString:a.parameterString,intermediateString:a.intermediateString,finalCharacter:a.finalCharacter}),r=a.endIndex,n=r;continue}let s=ZI(o);if(s!==void 0){let a=$x(e,r+1,s.allowBellTerminator);if(a===void 0)return Di(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:s.type,value:e.slice(r,a)}),r=a,n=r;continue}if(o==="\x9C"){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"st",value:o}),r++,n=r;continue}if(Ox(o)){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"c1",value:o}),r++,n=r;continue}r++}return n<e.length&&t.push({type:"text",value:e.slice(n)}),t},"tokenizeAnsi");var ek=/^[\d:;]*$/,tk=i(e=>{if(!hm(e))return e;let t="";for(let n of Dx(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&ek.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),Nx=tk;var Bx=i(e=>{let t="";for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r===void 0)continue;let o="";r.nodeName==="#text"?o=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(o=Bx(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o,n))),t+=o}return Nx(t)},"squashTextNodes"),ga=Bx;var Bl=i(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:nk.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(rk.bind(null,t)),t},"createNode"),Hl=i((e,t)=>{t.parentNode&&ha(t.parentNode,t),t.parentNode=e,e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount()),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Fl(e)},"appendChildNode"),ym=i((e,t,n)=>{t.parentNode&&ha(t.parentNode,t),t.parentNode=e;let r=e.childNodes.indexOf(n);r>=0?(e.childNodes.splice(r,0,t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,r)):(e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Fl(e)},"insertBeforeNode"),ha=i((e,t)=>{t.yogaNode&&t.parentNode?.yogaNode?.removeChild(t.yogaNode),t.parentNode=void 0;let n=e.childNodes.indexOf(t);n>=0&&e.childNodes.splice(n,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Fl(e)},"removeChildNode"),xm=i((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),wm=i((e,t)=>{e.style=t},"setStyle"),Hx=i(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return ya(t,e),t},"createTextNode"),rk=i(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:ga(e),r=gm(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let o=e.style?.textWrap??"wrap",s=Nl(n,t,o);return gm(s)},"measureTextNode"),Fx=i(e=>{if(e?.parentNode)return e.yogaNode??Fx(e.parentNode)},"findClosestYogaNode"),Fl=i(e=>{Fx(e)?.markDirty()},"markNodeAsDirty"),ya=i((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,Fl(e)},"setTextNodeValue");import he from"yoga-layout";var ik=i((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?he.POSITION_TYPE_ABSOLUTE:he.POSITION_TYPE_RELATIVE),"top"in t&&e.setPosition(he.EDGE_TOP,t.top??0),"bottom"in t&&e.setPosition(he.EDGE_BOTTOM,t.bottom??0),"left"in t&&e.setPosition(he.EDGE_LEFT,t.left??0),"right"in t&&e.setPosition(he.EDGE_RIGHT,t.right??0)},"applyPositionStyles"),sk=i((e,t)=>{"margin"in t&&e.setMargin(he.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(he.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(he.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(he.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(he.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(he.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(he.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),ak=i((e,t)=>{"padding"in t&&e.setPadding(he.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(he.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(he.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(he.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(he.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(he.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(he.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),ck=i((e,t)=>{"flexGrow"in t&&e.setFlexGrow(t.flexGrow??0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexWrap"in t&&(t.flexWrap==="nowrap"&&e.setFlexWrap(he.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(he.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(he.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(he.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(he.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(he.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(he.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(Number.NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(he.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(he.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(he.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(he.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(he.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(he.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(he.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(he.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(he.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(he.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(he.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(he.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(he.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(he.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),lk=i((e,t)=>{"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth(t.minWidth??0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight(t.minHeight??0))},"applyDimensionStyles"),uk=i((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?he.DISPLAY_FLEX:he.DISPLAY_NONE)},"applyDisplayStyles"),dk=i((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(he.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(he.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(he.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(he.EDGE_RIGHT,n)}},"applyBorderStyles"),fk=i((e,t)=>{"gap"in t&&e.setGap(he.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(he.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(he.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),mk=i((e,t={})=>{ik(e,t),sk(e,t),ak(e,t),ck(e,t),lk(e,t),uk(e,t),dk(e,t),fk(e,t)},"styles"),Sm=mk;if(Dl())try{await import("./devtools-EYGFOXEU.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
4
- The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
5
- but this failed as it was not installed. Debugging with React Devtools requires it.
6
-
7
- To install use this command:
8
-
9
- $ npm install --save-dev react-devtools-core
10
- `.trim()+`
11
- `);else throw e}var Ux=i((e,t)=>{if(e===t)return;if(!e)return t;let n={},r=!1;for(let o of Object.keys(e))(!t||!Object.hasOwn(t,o))&&(n[o]=void 0,r=!0);if(t)for(let o of Object.keys(t))t[o]!==e[o]&&(n[o]=t[o],r=!0);return r?n:void 0},"diff"),jx=i(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),Wl=Kx,Tm,Gx={name:void 0,version:void 0},gr=pk({getRootHostContext:i(()=>({isInsideText:!1}),"getRootHostContext"),prepareForCommit:i(()=>null,"prepareForCommit"),preparePortalMount:i(()=>null,"preparePortalMount"),clearContainer:i(()=>!1,"clearContainer"),resetAfterCommit(e){if(typeof e.onComputeLayout=="function"&&e.onComputeLayout(),e.isStaticDirty){e.isStaticDirty=!1,typeof e.onImmediateRender=="function"&&e.onImmediateRender();return}typeof e.onRender=="function"&&e.onRender()},getChildHostContext(e,t){let n=e.isInsideText,r=t==="ink-text"||t==="ink-virtual-text";return n===r?e:{isInsideText:r}},shouldSetTextContent:i(()=>!1,"shouldSetTextContent"),createInstance(e,t,n,r){if(r.isInsideText&&e==="ink-box")throw new Error("<Box> can\u2019t be nested inside <Text> component");let o=e==="ink-text"&&r.isInsideText?"ink-virtual-text":e,s=Bl(o);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){wm(s,c),s.yogaNode&&Sm(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_static"){Tm=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}xm(s,a,c)}return s},createTextInstance(e,t,n){if(!n.isInsideText)throw new Error(`Text string "${e}" must be rendered inside <Text> component`);return Hx(e)},resetTextContent(){},hideTextInstance(e){ya(e,"")},unhideTextInstance(e,t){ya(e,t)},getPublicInstance:i(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(Wx.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(Wx.DISPLAY_FLEX)},appendInitialChild:Hl,appendChild:Hl,insertBefore:ym,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:$r.unstable_scheduleCallback,cancelCallback:$r.unstable_cancelCallback,shouldYield:$r.unstable_shouldYield,now:$r.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:i(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:i(()=>null,"getInstanceFromScope"),appendChildToContainer:Hl,insertInContainerBefore:ym,removeChildFromContainer(e,t){ha(e,t),jx(t.yogaNode)},commitUpdate(e,t,n,r){Tm&&e.internal_static&&(Tm.isStaticDirty=!0);let o=Ux(n,r),s=Ux(n.style,r.style);if(!(!o&&!s)){if(o)for(let[a,c]of Object.entries(o)){if(a==="style"){wm(e,c);continue}if(a==="internal_transform"){e.internal_transform=c;continue}if(a==="internal_static"){e.internal_static=!0;continue}xm(e,a,c)}s&&e.yogaNode&&Sm(e.yogaNode,s)}},commitTextUpdate(e,t,n){ya(e,n)},removeChild(e,t){ha(e,t),jx(t.yogaNode)},setCurrentUpdatePriority(e){Wl=e},getCurrentUpdatePriority:i(()=>Wl,"getCurrentUpdatePriority"),resolveUpdatePriority(){return Wl!==Kx?Wl:gk},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:hk(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:Gx.name,rendererVersion:Gx.version});import Tk from"widest-line";import Ck from"indent-string";import Ni from"yoga-layout";import Ul from"yoga-layout";var yk=i(e=>e.getComputedWidth()-e.getComputedPadding(Ul.EDGE_LEFT)-e.getComputedPadding(Ul.EDGE_RIGHT)-e.getComputedBorder(Ul.EDGE_LEFT)-e.getComputedBorder(Ul.EDGE_RIGHT),"getMaxWidth"),Vx=yk;import xk from"cli-boxes";import jl from"chalk";var wk=i((e,t,n,r)=>{if(n.style.borderStyle){let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?xk[n.style.borderStyle]:n.style.borderStyle,c=n.style.borderTopColor??n.style.borderColor,l=n.style.borderBottomColor??n.style.borderColor,u=n.style.borderLeftColor??n.style.borderColor,m=n.style.borderRightColor??n.style.borderColor,p=n.style.borderTopDimColor??n.style.borderDimColor,g=n.style.borderBottomDimColor??n.style.borderDimColor,h=n.style.borderLeftDimColor??n.style.borderDimColor,x=n.style.borderRightDimColor??n.style.borderDimColor,C=n.style.borderTop!==!1,w=n.style.borderBottom!==!1,b=n.style.borderLeft!==!1,P=n.style.borderRight!==!1,L=o-(b?1:0)-(P?1:0),F=C?_n((b?a.topLeft:"")+a.top.repeat(L)+(P?a.topRight:""),c,"foreground"):void 0;C&&p&&(F=jl.dim(F));let O=s;C&&(O-=1),w&&(O-=1);let N=(_n(a.left,u,"foreground")+`
12
- `).repeat(O);h&&(N=jl.dim(N));let k=(_n(a.right,m,"foreground")+`
13
- `).repeat(O);x&&(k=jl.dim(k));let ae=w?_n((b?a.bottomLeft:"")+a.bottom.repeat(L)+(P?a.bottomRight:""),l,"foreground"):void 0;w&&g&&(ae=jl.dim(ae));let me=C?1:0;F&&r.write(e,t,F,{transformers:[]}),b&&r.write(e,t+me,N,{transformers:[]}),P&&r.write(e+o-1,t+me,k,{transformers:[]}),ae&&r.write(e,t+s-1,ae,{transformers:[]})}},"renderBorder"),zx=wk;var Sk=i((e,t,n,r)=>{if(!n.style.backgroundColor)return;let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=n.style.borderStyle&&n.style.borderLeft!==!1?1:0,c=n.style.borderStyle&&n.style.borderRight!==!1?1:0,l=n.style.borderStyle&&n.style.borderTop!==!1?1:0,u=n.style.borderStyle&&n.style.borderBottom!==!1?1:0,m=o-a-c,p=s-l-u;if(!(m>0&&p>0))return;let g=_n(" ".repeat(m),n.style.backgroundColor,"background");for(let h=0;h<p;h++)r.write(e+a,t+l+h,g,{transformers:[]})},"renderBackground"),Xx=Sk;var bk=i((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),o=n.getComputedTop();t=`
14
- `.repeat(o)+Ck(t,r)}return t},"applyPaddingToText"),Gl=i((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===Ni.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=ga(e);else if(e.nodeName==="ink-box"||e.nodeName==="ink-root"){let r=e.style.flexDirection==="row"||e.style.flexDirection==="row-reverse"?" ":`
15
- `;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>Gl(s,{parentRole:e.internal_accessibility?.role,skipStaticElements:t.skipStaticElements})).filter(Boolean).join(r)}if(e.internal_accessibility){let{role:r,state:o}=e.internal_accessibility;if(o){let a=Object.keys(o).filter(c=>o[c]).join(", ");a&&(n=`(${a}) ${n}`)}r&&r!==t.parentRole&&(n=`${r}: ${n}`)}return n},"renderNodeToScreenReaderOutput"),Yx=i((e,t,n)=>{let{offsetX:r=0,offsetY:o=0,transformers:s=[],skipStaticElements:a}=n;if(a&&e.internal_static)return;let{yogaNode:c}=e;if(c){if(c.getDisplay()===Ni.DISPLAY_NONE)return;let l=r+c.getComputedLeft(),u=o+c.getComputedTop(),m=s;if(typeof e.internal_transform=="function"&&(m=[e.internal_transform,...s]),e.nodeName==="ink-text"){let g=ga(e);if(g.length>0){let h=Tk(g),x=Vx(c);if(h>x){let C=e.style.textWrap??"wrap";g=Nl(g,x,C)}g=bk(e,g),t.write(l,u,g,{transformers:m})}return}let p=!1;if(e.nodeName==="ink-box"){Xx(l,u,e,t),zx(l,u,e,t);let g=e.style.overflowX==="hidden"||e.style.overflow==="hidden",h=e.style.overflowY==="hidden"||e.style.overflow==="hidden";if(g||h){let x=g?l+c.getComputedBorder(Ni.EDGE_LEFT):void 0,C=g?l+c.getComputedWidth()-c.getComputedBorder(Ni.EDGE_RIGHT):void 0,w=h?u+c.getComputedBorder(Ni.EDGE_TOP):void 0,b=h?u+c.getComputedHeight()-c.getComputedBorder(Ni.EDGE_BOTTOM):void 0;t.clip({x1:x,x2:C,y1:w,y2:b}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let g of e.childNodes)Yx(g,t,{offsetX:l,offsetY:u,transformers:m,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),Cm=Yx;import vk from"slice-ansi";import Ik from"string-width";import{styledCharsFromTokens as kk,styledCharsToString as Rk,tokenize as Ek}from"@alcalzone/ansi-tokenize";var bm=class{static{i(this,"OutputCaches")}widths=new Map;blockWidths=new Map;styledChars=new Map;getStyledChars(t){let n=this.styledChars.get(t);return n===void 0&&(n=kk(Ek(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=Ik(t),this.widths.set(t,n)),n}getWidestLine(t){let n=this.blockWidths.get(t);if(n===void 0){let r=0;for(let o of t.split(`
16
- `))r=Math.max(r,this.getStringWidth(o));n=r,this.blockWidths.set(t,n)}return n}},Bi=class{static{i(this,"Output")}width;height;operations=[];caches=new bm;constructor(t){let{width:n,height:r}=t;this.width=n,this.height=r}write(t,n,r,o){let{transformers:s}=o;r&&this.operations.push({type:"write",x:t,y:n,text:r,transformers:s})}clip(t){this.operations.push({type:"clip",clip:t})}unclip(){this.operations.push({type:"unclip"})}getGrid(){let t=[];for(let r=0;r<this.height;r++){let o=[];for(let s=0;s<this.width;s++)o.push({type:"char",value:" ",fullWidth:!1,styles:[]});t.push(o)}let n=[];for(let r of this.operations)if(r.type==="clip"&&n.push(r.clip),r.type==="unclip"&&n.pop(),r.type==="write"){let{text:o,transformers:s}=r,{x:a,y:c}=r,l=o.split(`
17
- `),u=n.at(-1);if(u){let p=typeof u?.x1=="number"&&typeof u?.x2=="number",g=typeof u?.y1=="number"&&typeof u?.y2=="number";if(p){let h=this.caches.getWidestLine(o);if(a+h<u.x1||a>u.x2)continue}if(g){let h=l.length;if(c+h<u.y1||c>u.y2)continue}if(p&&(l=l.map(h=>{let x=a<u.x1?u.x1-a:0,C=this.caches.getStringWidth(h),w=a+C>u.x2?u.x2-a:C;return vk(h,x,w)}),a<u.x1&&(a=u.x1)),g){let h=c<u.y1?u.y1-c:0,x=l.length,C=c+x>u.y2?u.y2-c:x;l=l.slice(h,C),c<u.y1&&(c=u.y1)}}let m=0;for(let[p,g]of l.entries()){let h=t[c+m];if(!h)continue;for(let w of s)g=w(g,p);let x=this.caches.getStyledChars(g),C=a;for(let w of x){h[C]=w;let b=Math.max(1,this.caches.getStringWidth(w.value));if(b>1)for(let P=1;P<b;P++)h[C+P]={type:"char",value:"",fullWidth:!1,styles:w.styles};C+=b}m++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let o=r.filter(s=>s!==void 0);return Rk(o).trimEnd()}).join(`
18
- `),height:t.length}}};var hr={Single:0,Wide:1,SpacerTail:2},Co={char:" ",width:hr.Single,style:"",hyperlink:void 0};function qx(e,t){if(e<0||t<0)throw new RangeError(`Screen dimensions must be non-negative (got width=${e}, height=${t})`);let n=new Array(e*t).fill(Co);return{width:e,height:t,cells:n}}i(qx,"createScreen");function Hi(e,t,n){if(!(t<0||n<0||t>=e.width||n>=e.height))return e.cells[n*e.width+t]}i(Hi,"cellAt");function Qx(e,t){if(e<0||t<0)throw new RangeError(`Screen dimensions must be non-negative (got width=${e}, height=${t})`);let n=new Array(e*t).fill(Co),r=!1;return{width:e,height:t,setCellAt(o,s,a){if(r)throw new Error("ScreenBuilder.setCellAt called after build()");if(o<0||s<0||o>=e||s>=t)throw new RangeError(`ScreenBuilder.setCellAt out of bounds: (${o}, ${s}) on ${e}x${t}`);n[s*e+o]=a},build(){if(r)throw new Error("ScreenBuilder.build called twice");return r=!0,{width:e,height:t,cells:n}}}}i(Qx,"createScreenBuilder");function*Kl(e,t){let n=Math.max(e.width,t.width),r=Math.max(e.height,t.height);for(let o=0;o<r;o++)for(let s=0;s<n;s++){let a=Hi(e,s,o),c=Hi(t,s,o);Mk(a,c)||(yield{x:s,y:o,prev:a,next:c})}}i(Kl,"diffEach");function Mk(e,t){return e===t?!0:e===void 0||t===void 0?!1:e.char===t.char&&e.width===t.width&&e.style===t.style&&e.hyperlink===t.hyperlink}i(Mk,"cellsEqual");var vm="\x1B]8;";function Ak(e){return e.endsWith("\x07")?e.slice(0,-1):e}i(Ak,"stripOsc8Terminator");function _k(e){if(!e.startsWith(vm))return;let t=e.slice(vm.length),n=t.indexOf(";");if(n<0)return;let r=t.slice(n+1),o=Ak(r);return o.length>0?o:void 0}i(_k,"parseOsc8Url");function Pk(e){if(e.value==="")return{char:"",width:hr.SpacerTail,style:"",hyperlink:void 0};let t="",n;for(let r of e.styles)if(r.code.startsWith(vm)){let o=_k(r.code);o!==void 0&&(n=o)}else t+=r.code;return{char:e.value,width:e.fullWidth?hr.Wide:hr.Single,style:t,hyperlink:n}}i(Pk,"styledCharToCell");function Jx(e){let t=e.getGrid(),n=e.width,r=e.height,o=Qx(n,r),s=Math.min(t.length,r);for(let a=0;a<s;a++){let c=t[a];if(!c)continue;let l=Math.min(c.length,n);for(let u=0;u<l;u++){let m=c[u];if(!m)continue;let p=Pk(m);p.char===Co.char&&p.width===Co.width&&p.style===Co.style&&p.hyperlink===Co.hyperlink||o.setCellAt(u,a,p)}}return o.build()}i(Jx,"outputToScreen");var $k=i((e,t,n)=>{if(e.yogaNode){if(t){let p=Gl(e,{skipStaticElements:!0}),g=p===""?0:p.split(`
19
- `).length,h="";return e.staticNode&&(h=Gl(e.staticNode,{skipStaticElements:!1})),{output:p,outputHeight:g,staticOutput:h?`${h}
20
- `:"",frame:void 0}}let r=new Bi({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});Cm(e,r,{skipStaticElements:!0});let o;e.staticNode?.yogaNode&&(o=new Bi({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),Cm(e.staticNode,o,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=Jx(r),l=n?.columns??e.yogaNode.getComputedWidth(),u=n?.rows??e.yogaNode.getComputedHeight(),m={screen:c,viewport:{width:l,height:u},cursor:{x:0,y:c.height,visible:!0}};return{output:s,outputHeight:a,staticOutput:o?`${o.get().output}
21
- `:"",frame:m}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),Zx=$k;function Xn(...e){if(e.length===0)return"\x1B[";if(e.length===1)return`\x1B[${e[0]}`;let t=e.slice(0,-1),n=e[e.length-1];return`\x1B[${t.join(";")}${n}`}i(Xn,"csi");function ew(e=1){return e===0?"":Xn(e,"A")}i(ew,"cursorUp");function Lk(e=1){return e===0?"":Xn(e,"B")}i(Lk,"cursorDown");function Ok(e=1){return e===0?"":Xn(e,"C")}i(Ok,"cursorForward");function Dk(e=1){return e===0?"":Xn(e,"D")}i(Dk,"cursorBack");function tw(e){return Xn(e,"G")}i(tw,"cursorTo");var Nk=Xn("G"),nw=Xn("H");function rw(e,t){let n="";return e<0?n+=Dk(-e):e>0&&(n+=Ok(e)),t<0?n+=ew(-t):t>0&&(n+=Lk(t)),n}i(rw,"cursorMove");var Bk=Xn(2,"K");function ow(e){if(e<=0)return"";let t="";for(let n=0;n<e;n++)t+=Bk,n<e-1&&(t+=ew(1));return t+=Nk,t}i(ow,"eraseLines");var qN=Xn("r"),Vl=Xn(0,"m");function iw(e){return`\x1B]${e.join(";")}\x07`}i(iw,"osc");function Hk(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return(t>>>0).toString(36)}i(Hk,"osc8Id");function xa(e,t){if(!e)return wa;let n={id:Hk(e),...t??{}},r=Object.entries(n).map(([o,s])=>`${o}=${s}`).join(":");return iw(["8",r,e])}i(xa,"link");var wa=iw(["8","",""]);function Im(e){let{screen:t}=e;if(t.width===0||t.height===0)return[];let n=[],r="",o;for(let s=0;s<t.height;s++){let a="";for(let c=0;c<t.width;c++){let l=Hi(t,c,s);!l||l.width===hr.SpacerTail||(l.hyperlink!==o&&(o!==void 0&&(a+=wa),l.hyperlink!==void 0&&(a+=xa(l.hyperlink)),o=l.hyperlink),l.style!==r&&(r!==""&&(a+=Vl),l.style!==""&&(a+=l.style),r=l.style),a+=l.char)}o!==void 0&&(a+=wa,o=void 0),r!==""&&(a+=Vl,r=""),n.push(a.trimEnd())}return[{type:"stdout",content:n.join(`
22
- `)}]}i(Im,"renderFullFrame");var Fk=Object.freeze([]),Wk=Object.freeze([]);function Fi(e,t){if(e===t)return{patches:Fk,current:e};let n=[];return e!==""&&n.push({type:"stdout",content:Vl}),t!==""&&n.push({type:"stdout",content:t}),{patches:n,current:t}}i(Fi,"transitionStyle");function zl(e,t){let n=Fi(e,t),r="";for(let o of n.patches)o.type==="stdout"&&(r+=o.content);return{str:r,current:n.current}}i(zl,"transitionStyleStr");function bo(e,t){if(e===t)return{patches:Wk,current:e};let n=[];return e!==void 0&&n.push({type:"stdout",content:wa}),t!==void 0&&n.push({type:"stdout",content:xa(t)}),{patches:n,current:t}}i(bo,"transitionHyperlink");function sw(e){let t=e.codePointAt(0);if(t===void 0)return!1;if(t>=129648&&t<=129791||t>=129792&&t<=130047)return!0;if(e.length>=2){for(let n=0;n<e.length;n++)if(e.charCodeAt(n)===65039)return!0}return!1}i(sw,"needsWidthCompensation");var Wi=class{static{i(this,"VirtualScreen")}viewportWidth;cursor;diff;_cursorMut;_diffMut=[];constructor(t,n){this.viewportWidth=n,this._cursorMut={x:t.x,y:t.y},this.cursor=this._cursorMut,this.diff=this._diffMut}txn(t){let[n,r]=t(this.cursor);for(let o of n)this._diffMut.push(o);this._cursorMut.x+=r.dx,this._cursorMut.y+=r.dy}},Lr={type:"carriageReturn"},Sa={type:"stdout",content:`
23
- `};function Xl(e,t,n){let r=t.width===hr.Wide?2:1,o=e.viewportWidth,s=!1;return e.txn(a=>{let c=a.x;if(r===2&&c<o){let m=t.char.length>2?o:o+1;if(c+2>=m)return[[],{dx:0,dy:0}]}let l=[];n.length>0&&l.push({type:"stdout",content:n});let u=r===2&&sw(t.char);return u&&c+1<o&&(l.push({type:"cursorTo",col:c+2}),l.push({type:"stdout",content:" "}),l.push({type:"cursorTo",col:c+1})),l.push({type:"stdout",content:t.char}),u&&l.push({type:"cursorTo",col:c+r+1}),s=!0,c>=o?[l,{dx:r-c,dy:1}]:[l,{dx:r,dy:0}]}),s}i(Xl,"writeCellWithStyleStr");function Ta(e,t,n){e.txn(r=>{let o=t-r.x,s=n-r.y;return r.x>=e.viewportWidth?[[Lr,{type:"cursorMove",x:t,y:s}],{dx:o,dy:s}]:s!==0?[[Lr,{type:"cursorMove",x:t,y:s}],{dx:o,dy:s}]:[[{type:"cursorMove",x:o,y:s}],{dx:o,dy:s}]})}i(Ta,"moveCursorTo");function Yl(e,t,n,r){let o="",s;for(let a=n;a<r;a++){if(e.cursor.y<a){let u=a-e.cursor.y;e.txn(m=>{let p=new Array(1+u);p[0]=Lr;for(let g=0;g<u;g++)p[1+g]=Sa;return[p,{dx:-m.x,dy:u}]})}for(let u=0;u<t.screen.width;u++){let m=Hi(t.screen,u,a);if(!m||m.width===hr.SpacerTail||m.char===" "&&m.style===""&&m.hyperlink===void 0)continue;Ta(e,u,a);let p=bo(s,m.hyperlink);for(let h of p.patches)e.txn(()=>[[h],{dx:0,dy:0}]);s=p.current;let g=zl(o,m.style);Xl(e,m,g.str)&&(o=g.current)}let c=Fi(o,"");for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);o=c.current;let l=bo(s,void 0);for(let u of l.patches)e.txn(()=>[[u],{dx:0,dy:0}]);s=l.current,e.txn(u=>[[Lr,Sa],{dx:-u.x,dy:1}])}if(o!==""||s!==void 0){let a=Fi(o,"");for(let l of a.patches)e.txn(()=>[[l],{dx:0,dy:0}]);let c=bo(s,void 0);for(let l of c.patches)e.txn(()=>[[l],{dx:0,dy:0}])}}i(Yl,"renderFrameSlice");function km(e,t){let n="";for(let r=0;r<e.width;r++){let o=Hi(e,r,t);n+=o?.char??" "}return n.trimEnd()}i(km,"readLine");function ql(e,t){let n=new Wi({x:0,y:0},e.viewport.width);Yl(n,e,0,e.screen.height);let r=[{type:"clearTerminal",reason:t}];for(let o of n.diff)r.push(o);return r}i(ql,"fullResetSequence_CAUSES_FLICKER");function Rm(e,t){let n=e.cursor.y>=e.screen.height,r=t.screen.height>e.screen.height,o=t.screen.height<e.screen.height,s=n&&e.screen.height>=e.viewport.height,a=t.screen.height<=e.viewport.height,c=s?1:0;return{viewportY:r?Math.max(0,e.screen.height-e.viewport.height+c):Math.max(e.screen.height,t.screen.height)-t.viewport.height+c,cursorAtBottom:n,growing:r,shrinking:o,prevHadScrollback:s,nextFitsViewport:a}}i(Rm,"computeViewportState");function aw(e,t,n){if(t.viewport.height<e.viewport.height||e.viewport.width!==0&&t.viewport.width!==e.viewport.width)return{reset:!0,reason:"resize"};let r=Rm(e,t);if(r.prevHadScrollback&&r.nextFitsViewport&&r.shrinking)return{reset:!0,reason:"offscreen"};if(e.screen.height>=e.viewport.height&&e.screen.height>0&&r.cursorAtBottom&&!r.growing){let s=e.screen.height-e.viewport.height+1;for(let a of Kl(e.screen,t.screen))if(a.y<s)return{reset:!0,reason:"offscreen",trigger:{y:a.y,prevLine:n(e.screen,a.y),nextLine:n(t.screen,a.y)}}}return r.shrinking&&e.screen.height-t.screen.height>e.viewport.height?{reset:!0,reason:"offscreen"}:{reset:!1}}i(aw,"shouldFullReset");function cw(e,t,n){return!!(t&&t.width===2||e&&e.width===2&&!t||t&&n&&!e)}i(cw,"shouldSkipDiff");var Ql=class{static{i(this,"LogUpdate")}options;constructor(t){this.options=t}render(t,n){if(!this.options.isTTY)return Im(n);let r=aw(t,n,km);return r.reset?ql(n,r.reason):Kk(t,n)}reset(){}};function Em(e,t){for(let n of t)e.txn(()=>[[n],{dx:0,dy:0}])}i(Em,"emitPatches");function lw(e,t,n){if(t!==""){let r=Fi(t,"");Em(e,r.patches)}if(n!==void 0){let r=bo(n,void 0);Em(e,r.patches)}return{style:"",hyperlink:void 0}}i(lw,"resetStyleAndHyperlink");function Uk(e,t,n){let r=t.screen.height-n.screen.height;e.txn(o=>[[{type:"clear",count:r},{type:"cursorMove",x:0,y:-1}],{dx:-o.x,dy:-r}])}i(Uk,"applyShrink");function jk(e,t,n,r){let o="",s,a=!1;for(let c of Kl(t.screen,n.screen)){let{x:l,y:u,prev:m,next:p}=c;if(r.growing&&u>=t.screen.height)continue;let g=!!(p&&p.char===" "&&p.style===""&&p.hyperlink===void 0);if(!cw(m,p,g)){if(u<r.viewportY){a=!0;break}if(Ta(e,l,u),p){let h=bo(s,p.hyperlink);Em(e,h.patches),s=h.current;let x=zl(o,p.style);Xl(e,p,x.str)&&(o=x.current)}else if(m){let h=lw(e,o,s);o=h.style,s=h.hyperlink,e.txn(()=>[[{type:"stdout",content:" "}],{dx:1,dy:0}])}}}return{currentStyle:o,currentHyperlink:s,needsFullReset:a}}i(jk,"diffPass");function Gk(e,t){t.cursor.y>=t.screen.height?e.txn(n=>{let r=t.cursor.y-n.y;if(r>0){let s=new Array(1+r);s[0]=Lr;for(let a=0;a<r;a++)s[1+a]=Sa;return[s,{dx:-n.x,dy:r}]}let o=t.cursor.y-n.y;return o!==0||n.x!==t.cursor.x?[[Lr,{type:"cursorMove",x:t.cursor.x,y:o}],{dx:t.cursor.x-n.x,dy:o}]:[[],{dx:0,dy:0}]}):Ta(e,t.cursor.x,t.cursor.y)}i(Gk,"restoreCursor");function Kk(e,t){let n=Rm(e,t),r=new Wi(e.cursor,t.viewport.width);n.shrinking&&Uk(r,e,t);let o=jk(r,e,t,n);return o.needsFullReset?ql(t,"offscreen"):(lw(r,o.currentStyle,o.currentHyperlink),n.growing&&Yl(r,t,e.screen.height,t.screen.height),Gk(r,t),r.diff)}i(Kk,"renderIncremental");var Vk="\x1B[?25l",zk="\x1B[?25h",Xk=`\x1B[2J${nw}`;function Yk(e){switch(e.type){case"stdout":return e.content;case"carriageReturn":return"\r";case"cursorHide":return Vk;case"cursorShow":return zk;case"cursorMove":return rw(e.x,e.y);case"cursorTo":return tw(e.col);case"clear":return ow(e.count);case"clearTerminal":return Xk;case"hyperlink":return xa(e.uri)}}i(Yk,"patchToBytes");function Jl(e,t){let n="";for(let r of t)n+=Yk(r);n.length>0&&e.write(n)}i(Jl,"applyDiff");function uw(e,t){if(t===void 0)return!1;let n=e.cellLogUpdate.render(e.prevFrame,t);return Jl(e.stdout,n),e.prevFrame=t,!0}i(uw,"applyCellFrame");function Ca(e,t){return{screen:qx(0,0),viewport:{width:t,height:e},cursor:{x:0,y:0,visible:!0}}}i(Ca,"emptyFrame");import qk from"is-in-ci";var Ui="\x1B[?2026h",vo="\x1B[?2026l";function ji(e){return"isTTY"in e&&e.isTTY===!0&&!qk}i(ji,"shouldSynchronize");var Qk=new WeakMap,dw=Qk;import{EventEmitter as yR}from"node:events";import xR from"node:process";import Io,{useState as _m,useRef as Gi,useCallback as mt,useMemo as Ki,useEffect as Mw}from"react";import wR from"cli-cursor";var Jk=i(e=>e>=48&&e<=63,"isCsiParameterByte"),Zk=i(e=>e>=32&&e<=47,"isCsiIntermediateByte"),mw=i(e=>e>=64&&e<=126,"isCsiFinalByte");function eR(e,t,n){let r=t+n+1,o=r;for(;o<e.length;o+=1){let s=e.codePointAt(o);if(s===void 0)return"pending";if(!(Jk(s)||Zk(s))&&!(s===91&&o===r))return mw(s)?{sequence:e.slice(t,o+1),nextIndex:o+1}:void 0}return"pending"}i(eR,"parseCsiSequence");function tR(e,t,n){let r=t+n+2;if(r>e.length)return"pending";let o=e.codePointAt(r-1);if(!(o===void 0||!mw(o)))return{sequence:e.slice(t,r),nextIndex:r}}i(tR,"parseSs3Sequence");function fw(e,t,n){let r=e[t+n];if(r===void 0)return"pending";if(r==="[")return eR(e,t,n);if(r==="O")return tR(e,t,n)}i(fw,"parseControlSequence");function nR(e,t){let n=e.codePointAt(t+1),r=n!==void 0&&n>65535?2:1,o=t+1+r;return{sequence:e.slice(t,o),nextIndex:o}}i(nR,"parseEscapedCodePoint");function rR(e){let t=[],n=0,r=i(o=>({events:t,pending:e.slice(o)}),"pendingFrom");for(;n<e.length;){let o=e.indexOf("\x1B",n);if(o===-1)return t.push(e.slice(n)),{events:t,pending:""};if(o>n&&t.push(e.slice(n,o)),o===e.length-1)return r(o);let s=fw(e,o,1);if(s==="pending")return r(o);if(s){t.push(s.sequence),n=s.nextIndex;continue}if(e[o+1]==="\x1B"){if(o+2>=e.length)return r(o);let l=fw(e,o,2);if(l==="pending")return r(o);if(l){t.push(l.sequence),n=l.nextIndex;continue}t.push(e.slice(o,o+2)),n=o+2;continue}let c=nR(e,o);t.push(c.sequence),n=c.nextIndex}return{events:t,pending:""}}i(rR,"parseKeypresses");function Zl(){let e="";return{push(t){let n=rR(e+t);return e=n.pending,n.events},hasPendingEscape(){return e.startsWith("\x1B")},flushPendingEscape(){if(!e.startsWith("\x1B"))return;let t=e;return e="",t},reset(){e=""}}}i(Zl,"createInputParser");import{createContext as oR}from"react";var pw=oR({exit(){}});pw.displayName="InternalAppContext";var gw=pw;import{EventEmitter as iR}from"node:events";import{createContext as sR}from"react";var aR={isTTY:!1,isRaw:!1,on(){},off(){},pause(){},resume(){},setRawMode(){}},hw=sR({stdin:aR,internal_eventEmitter:new iR,setRawMode(){},isRawModeSupported:!1,internal_exitOnCtrlC:!0});hw.displayName="InternalStdinContext";var yw=hw;import{createContext as cR}from"react";var lR={isTTY:!1,columns:80,rows:24,write(){return!0},on(){},off(){}},xw=cR({stdout:lR,write(){}});xw.displayName="InternalStdoutContext";var ww=xw;import{createContext as uR}from"react";var dR={isTTY:!1,write(){return!0},on(){},off(){}},Sw=uR({stderr:dR,write(){}});Sw.displayName="InternalStderrContext";var Tw=Sw;import{createContext as fR}from"react";var Cw=fR({activeId:void 0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){}});Cw.displayName="InternalFocusContext";var bw=Cw;import{createContext as mR}from"react";var vw=mR({setCursorPosition(){}});vw.displayName="InternalCursorContext";var Iw=vw;import gR,{PureComponent as hR}from"react";import*as eu from"node:fs";import{cwd as Ew}from"node:process";import xt from"react";import kw from"stack-utils";import pR from"code-excerpt";var Mm=i(e=>e?.replace(`file://${Ew()}/`,""),"cleanupPath"),Rw=new kw({cwd:Ew(),internals:kw.nodeInternals()});function Am({error:e}){let t=e.stack?e.stack.split(`
24
- `).slice(1):void 0,n=t?Rw.parseLine(t[0]):void 0,r=Mm(n?.file),o,s=0;if(r&&n?.line&&eu.existsSync(r)){let a=eu.readFileSync(r,"utf8");if(o=pR(a,n.line),o)for(let{line:c}of o)s=Math.max(s,String(c).length)}return xt.createElement(hn,{flexDirection:"column",padding:1},xt.createElement(hn,null,xt.createElement(Yt,{backgroundColor:"red",color:"white"}," ","ERROR"," "),xt.createElement(Yt,null," ",e.message)),n&&r&&xt.createElement(hn,{marginTop:1},xt.createElement(Yt,{dimColor:!0},r,":",n.line,":",n.column)),n&&o&&xt.createElement(hn,{marginTop:1,flexDirection:"column"},o.map(({line:a,value:c})=>xt.createElement(hn,{key:a},xt.createElement(hn,{width:s+1},xt.createElement(Yt,{dimColor:a!==n.line,backgroundColor:a===n.line?"red":void 0,color:a===n.line?"white":void 0,"aria-label":a===n.line?`Line ${a}, error`:`Line ${a}`},String(a).padStart(s," "),":")),xt.createElement(Yt,{key:a,backgroundColor:a===n.line?"red":void 0,color:a===n.line?"white":void 0}," "+c)))),e.stack&&xt.createElement(hn,{marginTop:1,flexDirection:"column"},e.stack.split(`
25
- `).slice(1).map(a=>{let c=Rw.parseLine(a);return c?xt.createElement(hn,{key:a},xt.createElement(Yt,{dimColor:!0},"- "),xt.createElement(Yt,{dimColor:!0,bold:!0},c.function),xt.createElement(Yt,{dimColor:!0,color:"gray","aria-label":`at ${Mm(c.file)??""} line ${c.line} column ${c.column}`}," ","(",Mm(c.file)??"",":",c.line,":",c.column,")")):xt.createElement(hn,{key:a},xt.createElement(Yt,{dimColor:!0},"- "),xt.createElement(Yt,{dimColor:!0,bold:!0},a,"\\t"," "))})))}i(Am,"ErrorOverview");var ba=class extends hR{static{i(this,"ErrorBoundary")}static displayName="InternalErrorBoundary";static getDerivedStateFromError(t){return{error:t}}state={error:void 0};componentDidCatch(t){this.props.onError(t)}render(){return this.state.error?gR.createElement(Am,{error:this.state.error}):this.props.children}};var SR=" ",TR="\x1B[Z",CR="\x1B";function Aw({children:e,stdin:t,stdout:n,stderr:r,writeToStdout:o,writeToStderr:s,exitOnCtrlC:a,onExit:c,setCursorPosition:l}){let[u,m]=_m(!0),[p,g]=_m(void 0),[,h]=_m([]),x=Gi(0),C=Gi(0),w=Gi(new yR);w.current.setMaxListeners(1/0);let b=Gi(void 0),P=Gi(Zl()),L=Gi(void 0),F=mt(()=>{L.current&&(clearImmediate(L.current),L.current=void 0)},[]),O=t.isTTY,N=mt(()=>{b.current&&(t.removeListener("readable",b.current),b.current=void 0)},[t]),k=mt(()=>{t.setRawMode(!1),N(),t.unref(),C.current=0,P.current.reset(),F()},[t,N,F]),ae=mt(ie=>{O&&C.current>0&&k(),c(ie)},[O,k,c]),me=mt(ie=>{if(ie===""&&a){ae();return}ie===CR&&g(A=>A&&void 0)},[a,ae]),W=mt(ie=>{me(ie),w.current.emit("input",ie)},[me]),X=mt(()=>{F(),L.current=setImmediate(()=>{L.current=void 0;let ie=P.current.flushPendingEscape();ie&&W(ie)})},[F,W]),v=mt(()=>{F();let ie;for(;(ie=t.read())!==null;){let A=P.current.push(ie);for(let _ of A)W(_)}P.current.hasPendingEscape()&&X()},[t,W,F,X]),M=mt(ie=>{if(!O)throw t===xR.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default.
26
- Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink.
27
- Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(t.setEncoding("utf8"),ie){C.current===0&&(t.ref(),t.setRawMode(!0),b.current=v,t.addListener("readable",v)),C.current++;return}C.current!==0&&--C.current===0&&k()},[O,t,v,k]),ne=mt((ie,A)=>{let _=ie.findIndex(U=>U.id===A);for(let U=_+1;U<ie.length;U++){let ee=ie[U];if(ee?.isActive)return ee.id}},[]),xe=mt((ie,A)=>{let _=ie.findIndex(U=>U.id===A);for(let U=_-1;U>=0;U--){let ee=ie[U];if(ee?.isActive)return ee.id}},[]),Re=mt(()=>{h(ie=>(g(A=>{let _=ie.find(ee=>ee.isActive)?.id;return ne(ie,A)??_}),ie))},[ne]),Se=mt(()=>{h(ie=>(g(A=>{let _=ie.findLast(ee=>ee.isActive)?.id;return xe(ie,A)??_}),ie))},[xe]);Mw(()=>{let ie=i(_=>{!u||x.current===0||(_===SR&&Re(),_===TR&&Se())},"handleTabNavigation");w.current.on("input",ie);let A=w.current;return()=>{A.off("input",ie)}},[u,Re,Se]);let le=mt(()=>{m(!0)},[]),Le=mt(()=>{m(!1)},[]),J=mt(ie=>{h(A=>(A.some(U=>U?.id===ie)&&g(ie),A))},[]),Y=mt((ie,{autoFocus:A})=>{h(_=>(x.current=_.length+1,[..._,{id:ie,isActive:!0}])),A&&g(_=>_??ie)},[]),q=mt(ie=>{g(A=>A===ie?void 0:A),h(A=>{let _=A.filter(U=>U.id!==ie);return x.current=_.length,_})},[]),Ge=mt(ie=>{h(A=>A.map(_=>_.id!==ie?_:{id:ie,isActive:!0}))},[]),Te=mt(ie=>{g(A=>A===ie?void 0:A),h(A=>A.map(_=>_.id!==ie?_:{id:ie,isActive:!1}))},[]);Mw(()=>()=>{wR.show(n),O&&C.current>0&&k()},[n,O,k]);let _e=Ki(()=>({exit:ae}),[ae]),Ee=Ki(()=>({stdin:t,setRawMode:M,isRawModeSupported:O,internal_exitOnCtrlC:a,internal_eventEmitter:w.current}),[t,M,O,a]),ft=Ki(()=>({stdout:n,write:o}),[n,o]),we=Ki(()=>({stderr:r,write:s}),[r,s]),Ze=Ki(()=>({setCursorPosition:l}),[l]),et=Ki(()=>({activeId:p,add:Y,remove:q,activate:Ge,deactivate:Te,enableFocus:le,disableFocus:Le,focusNext:Re,focusPrevious:Se,focus:J}),[p,Y,q,Ge,Te,le,Le,Re,Se,J]);return Io.createElement(gw.Provider,{value:_e},Io.createElement(yw.Provider,{value:Ee},Io.createElement(ww.Provider,{value:ft},Io.createElement(Tw.Provider,{value:we},Io.createElement(bw.Provider,{value:et},Io.createElement(Iw.Provider,{value:Ze},Io.createElement(ba,{onError:ae},e)))))))}i(Aw,"App");Aw.displayName="InternalApp";var _w=Aw;var bR={disambiguateEscapeCodes:1,reportEventTypes:2,reportAlternateKeys:4,reportAllKeysAsEscapeCodes:8,reportAssociatedText:16};function Pw(e){let t=0;for(let n of e)t|=bR[n];return t}i(Pw,"resolveFlags");var yr={shift:1,alt:2,ctrl:4,super:8,hyper:16,meta:32,capsLock:64,numLock:128};var tu=i(()=>{},"noop"),$R=27,LR=91,OR=63,DR=117,NR=48,BR=57,HR=i(e=>e>=NR&&e<=BR,"isDigitByte"),Lw=i((e,t)=>{if(e[t]!==$R||e[t+1]!==LR||e[t+2]!==OR)return;let n=t+3,r=n;for(;n<e.length&&HR(e[n]);)n++;if(n!==r){if(n===e.length)return{state:"partial"};if(e[n]===DR)return{state:"complete",endIndex:n}}},"matchKittyQueryResponse"),FR=i(e=>{for(let t=0;t<e.length;t++)if(Lw(e,t)?.state==="complete")return!0;return!1},"hasCompleteKittyQueryResponse"),WR=i(e=>{let t=[],n=0;for(;n<e.length;){let r=Lw(e,n);if(r?.state==="complete"){n=r.endIndex+1;continue}if(r?.state==="partial")break;t.push(e[n]),n++}return t},"stripKittyQueryResponsesAndTrailingPartial"),Pm=i(e=>e instanceof Error||Object.prototype.toString.call(e)==="[object Error]","isErrorInput"),UR=class{static{i(this,"Ink")}isConcurrent;options;cursorPosition;isScreenReaderEnabled;isUnmounted;isUnmounting;lastOutput;lastOutputToRender;lastOutputHeight;lastTerminalWidth;container;rootNode;fullStaticOutput;exitPromise;exitResult;beforeExitHandler;restoreConsole;unsubscribeResize;throttledOnRender;hasPendingThrottledRender=!1;kittyProtocolEnabled=!1;cancelKittyDetection;altScreenActive=!1;shellMode;mouseTrackingActive=!1;shellTransitionPhase=void 0;cursorHidden=!1;constructor(t){IR(this),this.options=t,this.rootNode=Bl("ink-root"),this.rootNode.onComputeLayout=this.calculateLayout,this.isScreenReaderEnabled=t.isScreenReaderEnabled??Vi.env.INK_SCREEN_READER==="true";let n=t.debug||this.isScreenReaderEnabled,r=t.maxFps??30,o=r>0?Math.max(1,Math.ceil(1e3/r)):0;if(n)this.rootNode.onRender=this.onRender,this.throttledOnRender=void 0;else{let a=vR(this.onRender,o,{leading:!0,trailing:!0});this.rootNode.onRender=()=>{this.hasPendingThrottledRender=!0,a()},this.throttledOnRender=a}this.rootNode.onImmediateRender=this.onRender,this.cellLogUpdate=new Ql({isTTY:!!t.stdout.isTTY}),this.prevFrame=Ca(t.stdout.rows??24,t.stdout.columns??80),this.cursorPosition=void 0,this.isUnmounted=!1,this.isUnmounting=!1,this.isConcurrent=t.concurrent??!1,this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.lastTerminalWidth=this.getTerminalWidth(),this.fullStaticOutput="",this.shellMode=t.shellMode??"virtual";let s=t.concurrent?MR:ER;this.container=gr.createContainer(this.rootNode,s,null,!1,null,"id",()=>{},()=>{},()=>{},()=>{}),this.unsubscribeExit=kR(this.unmount,{alwaysLast:!1}),Dl()&&gr.injectIntoDevTools(),t.patchConsole&&this.patchConsole(),Or||(t.stdout.on("resize",this.resized),this.unsubscribeResize=()=>{t.stdout.off("resize",this.resized)}),this.initKittyKeyboard()}getTerminalWidth=i(()=>this.options.stdout.columns?this.options.stdout.columns:PR()?.columns??80,"getTerminalWidth");resized=i(()=>{let t=this.getTerminalWidth();if(t<this.lastTerminalWidth){let n=this.lastOutputHeight>0?xr.eraseLines(this.lastOutputHeight):"";n.length>0&&this.options.stdout.write(n),this.lastOutput="",this.lastOutputToRender="",this.cellLogUpdate.reset(),this.prevFrame=Ca(this.options.stdout.rows??24,t)}this.calculateLayout(),this.onRender(),this.lastTerminalWidth=t},"resized");resolveExitPromise=i(()=>{},"resolveExitPromise");rejectExitPromise=i(()=>{},"rejectExitPromise");unsubscribeExit=i(()=>{},"unsubscribeExit");handleAppExit=i(t=>{if(!(this.isUnmounted||this.isUnmounting)){if(Pm(t)){this.unmount(t);return}this.exitResult=t,this.unmount()}},"handleAppExit");setCursorPosition=i(t=>{if(t===void 0){this.cursorPosition=void 0;return}let n=this.getTerminalWidth(),r=this.options.stdout.rows??24;if(n<=0||r<=0){this.cursorPosition=void 0;return}let o=Math.max(0,Math.min(t.x|0,n-1)),s=Math.max(0,Math.min(t.y|0,r-1));this.cursorPosition={x:o,y:s}},"setCursorPosition");resetOutputTracking=i(()=>{this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.cursorPosition=void 0,this.invalidateCellFrame()},"resetOutputTracking");usesVirtualShellOwnership=i((t={})=>t.altScreenActive??this.altScreenActive,"usesVirtualShellOwnership");beginShellTransition(t){this.shellTransitionPhase=t}setShellMode(t,n){let r=this.shellMode,o=this.mouseTrackingActive,s=this.usesVirtualShellOwnership(),a=n??!1;this.shellMode=t,this.mouseTrackingActive=a;let c=this.usesVirtualShellOwnership();(r!==t&&(s||c)||o!==a&&c)&&this.resetOutputTracking()}setAltScreenActive(t,n){let r=this.altScreenActive,o=this.mouseTrackingActive,s=this.usesVirtualShellOwnership(),a=n??!1;this.altScreenActive=t,this.mouseTrackingActive=a,this.shellTransitionPhase=void 0;let c=this.usesVirtualShellOwnership();(r!==t||o!==a&&(s||c))&&this.resetOutputTracking()}clearTextSelection(){}restoreLastOutput=i(()=>{if(this.prevFrame.screen.height===0)return;let t=Ca(this.options.stdout.rows??24,this.getTerminalWidth()),n=this.cellLogUpdate.render(t,this.prevFrame);Jl(this.options.stdout,n)},"restoreLastOutput");shouldRestoreManagedShellAfterExternalWrite=i(()=>this.altScreenActive,"shouldRestoreManagedShellAfterExternalWrite");calculateLayout=i(()=>{let t=this.getTerminalWidth();this.rootNode.yogaNode.setWidth(t),this.rootNode.yogaNode.calculateLayout(void 0,void 0,AR.DIRECTION_LTR)},"calculateLayout");onRender=i(()=>{if(this.hasPendingThrottledRender=!1,this.isUnmounted)return;!this.cursorHidden&&!Or&&!this.options.debug&&!this.isScreenReaderEnabled&&(this.options.stdout.write("\x1B[?25l"),this.cursorHidden=!0);let t=performance.now(),n={rows:this.options.stdout.rows??24,columns:this.getTerminalWidth()},{output:r,outputHeight:o,staticOutput:s,frame:a}=Zx(this.rootNode,this.isScreenReaderEnabled,n);this.options.onRender?.({renderTime:performance.now()-t});let c=s&&s!==`
28
- `;if(this.options.debug){c&&(this.fullStaticOutput+=s),this.options.stdout.write(this.fullStaticOutput+r);return}if(Or){c&&this.options.stdout.write(s),this.lastOutput=r,this.lastOutputToRender=r+`
29
- `,this.lastOutputHeight=o;return}if(this.isScreenReaderEnabled){let p=ji(this.options.stdout);if(p&&this.options.stdout.write(Ui),c){let x=this.lastOutputHeight>0?xr.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(x+s),this.lastOutputHeight=0}if(r===this.lastOutput&&!c){p&&this.options.stdout.write(vo);return}let g=this.getTerminalWidth(),h=_R(r,g,{trim:!1,hard:!0});if(c)this.options.stdout.write(h);else{let x=this.lastOutputHeight>0?xr.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(x+h)}this.lastOutput=r,this.lastOutputToRender=h,this.lastOutputHeight=h===""?0:h.split(`
30
- `).length,p&&this.options.stdout.write(vo);return}c&&(this.fullStaticOutput+=s);let l=this.altScreenActive,m=this.options.stdout.isTTY&&o>=this.options.stdout.rows&&l?r:r+`
31
- `;if(this.lastOutputHeight>=this.options.stdout.rows&&l){let p=ji(this.options.stdout);p&&this.options.stdout.write(Ui);let g=this.fullStaticOutput+m;if(this.altScreenActive){let h=this.lastOutputHeight>0?xr.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(h+g)}else this.options.stdout.write(xr.clearTerminal+this.fullStaticOutput+r);this.lastOutput=r,this.lastOutputToRender=this.altScreenActive?g:m,this.lastOutputHeight=o,this.invalidateCellFrame(),p&&this.options.stdout.write(vo);return}if(c){let p=ji(this.options.stdout);p&&this.options.stdout.write(Ui);let g=this.lastOutputHeight>0?xr.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(g+s),this.invalidateCellFrame(),this.applyCellFrame(a),p&&this.options.stdout.write(vo)}else this.applyCellFrame(a);this.lastOutput=r,this.lastOutputToRender=m,this.lastOutputHeight=o},"onRender");applyCellFrame=i(t=>{let n={cellLogUpdate:this.cellLogUpdate,prevFrame:this.prevFrame,stdout:this.options.stdout},r=uw(n,t);return this.prevFrame=n.prevFrame,r},"applyCellFrame");invalidateCellFrame=i(()=>{this.cellLogUpdate.reset(),this.prevFrame=Ca(this.options.stdout.rows??24,this.getTerminalWidth())},"invalidateCellFrame");render(t){let n=$w.createElement(Li.Provider,{value:{isScreenReaderEnabled:this.isScreenReaderEnabled}},$w.createElement(_w,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,exitOnCtrlC:this.options.exitOnCtrlC,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,setCursorPosition:this.setCursorPosition,onExit:this.handleAppExit},t));this.options.concurrent?gr.updateContainer(n,this.container,null,tu):(gr.updateContainerSync(n,this.container,null,tu),gr.flushSyncWork())}writeToStdout(t){if(this.isUnmounted)return;if(this.options.debug){this.options.stdout.write(t+this.fullStaticOutput+this.lastOutput);return}if(Or){this.options.stdout.write(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.options.stdout.write(t),this.invalidateCellFrame();return}let n=ji(this.options.stdout);n&&this.options.stdout.write(Ui);let r=this.lastOutputHeight>0?xr.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(r+t),this.restoreLastOutput(),n&&this.options.stdout.write(vo)}writeToStderr(t){if(this.isUnmounted)return;if(this.options.debug){this.options.stderr.write(t),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(Or){this.options.stderr.write(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.options.stderr.write(t),this.invalidateCellFrame();return}let n=ji(this.options.stdout);n&&this.options.stdout.write(Ui);let r=this.lastOutputHeight>0?xr.eraseLines(this.lastOutputHeight):"";r.length>0&&this.options.stdout.write(r),this.options.stderr.write(t),this.restoreLastOutput(),n&&this.options.stdout.write(vo)}unmount(t){if(this.isUnmounted||this.isUnmounting)return;this.isUnmounting=!0,this.beforeExitHandler&&(Vi.off("beforeExit",this.beforeExitHandler),this.beforeExitHandler=void 0);let n=this.options.stdout,r=!n.destroyed&&!n.writableEnded&&(n.writable??!0);if(i(u=>{typeof u.flush=="function"&&(r?u.flush():typeof u.cancel=="function"&&u.cancel())},"settleThrottle")(this.throttledOnRender??{}),r&&(!this.throttledOnRender||!this.hasPendingThrottledRender&&this.fullStaticOutput==="")&&(this.calculateLayout(),this.onRender()),this.isUnmounted=!0,this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),this.cancelKittyDetection&&this.cancelKittyDetection(),r){if(this.kittyProtocolEnabled)try{this.options.stdout.write("\x1B[<u")}catch{}Or&&this.options.stdout.write(this.lastOutput+`
32
- `)}this.kittyProtocolEnabled=!1,this.shellTransitionPhase=void 0,this.options.concurrent?gr.updateContainer(null,this.container,null,tu):(gr.updateContainerSync(null,this.container,null,tu),gr.flushSyncWork()),dw.delete(this.options.stdout);let{exitResult:s}=this,a=i(()=>{Pm(t)?this.rejectExitPromise(t):this.resolveExitPromise(s)},"resolveOrReject"),c=t!==void 0&&!Pm(t),l=n._writableState!==void 0||n.writableLength!==void 0;c?a():r&&l?this.options.stdout.write("",a):setImmediate(a)}async waitUntilExit(){return this.exitPromise||=new Promise((t,n)=>{this.resolveExitPromise=t,this.rejectExitPromise=n}),this.beforeExitHandler||(this.beforeExitHandler=()=>{this.unmount()},Vi.once("beforeExit",this.beforeExitHandler)),this.exitPromise}clear(){if(!Or&&!this.options.debug){let t=this.lastOutputHeight>0?xr.eraseLines(this.lastOutputHeight):"";t.length>0&&this.options.stdout.write(t),this.invalidateCellFrame()}}patchConsole(){this.options.debug||(this.restoreConsole=RR((t,n)=>{t==="stdout"&&this.writeToStdout(n),t==="stderr"&&(n.startsWith("The above error occurred")||this.writeToStderr(n))}))}initKittyKeyboard(){if(!this.options.kittyKeyboard)return;let t=this.options.kittyKeyboard,n=t.mode??"auto";if(n==="disabled"||!this.options.stdin.isTTY||!this.options.stdout.isTTY)return;let r=t.flags??["disambiguateEscapeCodes"];if(n==="enabled"){this.enableKittyProtocol(r);return}let o=Vi.env.TERM??"",s=Vi.env.TERM_PROGRAM??"",a="KITTY_WINDOW_ID"in Vi.env||o==="xterm-kitty"||s==="WezTerm"||s==="ghostty";!Or&&a&&this.confirmKittySupport(r)}confirmKittySupport(t){let{stdin:n,stdout:r}=this.options,o=[],s=i(()=>{this.cancelKittyDetection=void 0,clearTimeout(c),n.removeListener("data",a);let l=WR(o);o=[],l.length>0&&n.unshift(Buffer.from(l))},"cleanup"),a=i(l=>{let u=typeof l=="string"?Buffer.from(l):l;for(let m of u)o.push(m);FR(o)&&(s(),this.isUnmounted||this.enableKittyProtocol(t))},"onData");n.on("data",a);let c=setTimeout(s,200);this.cancelKittyDetection=s,r.write("\x1B[?u")}enableKittyProtocol(t){this.options.stdout.write(`\x1B[>${Pw(t)}u`),this.kittyProtocolEnabled=!0}},Ow=UR;var va=class{static{i(this,"KodaXRenderer")}engineInstance;isConcurrent;constructor(t){this.engineInstance=new Ow(t),this.isConcurrent=this.engineInstance.isConcurrent}render=i(t=>{this.engineInstance.render(t)},"render");unmount=i(t=>{this.engineInstance.unmount(t)},"unmount");waitUntilExit=i(()=>this.engineInstance.waitUntilExit(),"waitUntilExit");clear=i(()=>{this.engineInstance.clear()},"clear");setAltScreenActive=i((t,n)=>{this.engineInstance.setAltScreenActive?.(t,n)},"setAltScreenActive");setShellMode=i((t,n)=>{this.engineInstance.setShellMode?.(t,n)},"setShellMode");beginShellTransition=i(t=>{this.engineInstance.beginShellTransition?.(t)},"beginShellTransition");clearTextSelection=i(()=>{this.engineInstance.clearTextSelection?.()},"clearTextSelection")};var Dr=null;function Nw(){if(Dr===-1)return null;if(Dr!==null)return Dr;let e=process.env.KODAX_RENDER_TRACE;if(!e||e==="0"||e==="false")return Dr=-1,null;let t=e==="1"||e==="true"?zR(VR(),`kodax-render-trace-${process.pid}.log`):e;try{return Dr=GR(t,"a"),Dw(Dr,`=== KODAX render trace pid=${process.pid} ${new Date().toISOString()} platform=${process.platform} node=${process.version} ===
33
- `),Dr}catch{return Dr=-1,null}}i(Nw,"resolveTraceFd");function XR(e){let t=Nw();if(t!==null)try{Dw(t,e)}catch{}}i(XR,"traceLine");var nu=new WeakMap,YR={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},qR={isTTY:!1,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},QR={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function JR(e={}){return e instanceof jR?{stdout:e}:e}i(JR,"getOptions");function ZR(e,t,n){let r=nu.get(e);return r?r.isConcurrent!==n&&console.warn(`Warning: render() was called with concurrent: ${n}, but the existing renderer for this stdout uses concurrent: ${r.isConcurrent}. The concurrent option only takes effect on the first render. Call unmount() first if you need to change the rendering mode.`):(r=t(),nu.set(e,r)),r}i(ZR,"getInstance");function ru(e){return nu.get(e)}i(ru,"getRendererInstance");function $m(e,t){let n={stdout:YR,stdin:QR,stderr:qR,debug:!1,exitOnCtrlC:!0,patchConsole:!1,maxFps:30,concurrent:!1,...JR(t)};if(Nw()!==null){let s=n.stdout,a=s.write.bind(s),c=0,l=0;s.write=((g,...h)=>(c+=1,l+=typeof g=="string"?Buffer.byteLength(g,"utf8"):g?.length??0,a(g,...h)));let u=0,m=0,p=n.onRender;n.onRender=g=>{let h=KR.now(),x=u===0?0:h-u,C=s,w=C.columns??0,b=C.rows??0;return XR(`frame=${m} renderTime=${g.renderTime.toFixed(2)}ms interval=${x.toFixed(2)}ms writes=${c} bytes=${l} viewport=${w}x${b}
34
- `),c=0,l=0,u=h,m+=1,p?.(g)}}let o=ZR(n.stdout,()=>new va(n),n.concurrent??!1);return o.render(e),{rerender:o.render,unmount(){o.unmount()},waitUntilExit:o.waitUntilExit,cleanup:i(()=>{nu.delete(n.stdout)},"cleanup"),clear:o.clear}}i($m,"render");var Bw=hn,Hw=Yt,Fw=pm;import{Buffer as tE}from"node:buffer";var nE=/^(?:\x1b)([a-zA-Z0-9])$/,rE=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,Uw={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"},jw=[...Object.values(Uw),"backspace"],oE=i(e=>["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e),"isShiftKey"),iE=i(e=>["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e),"isCtrlKey"),Gw=/^\x1b\[(\d+)(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/,sE=/^\x1b\[(\d+);(\d+):(\d+)([A-Za-z~])$/,aE={A:"up",B:"down",C:"right",D:"left",E:"clear",F:"end",H:"home",P:"f1",Q:"f2",R:"f3",S:"f4"},cE={2:"insert",3:"delete",5:"pageup",6:"pagedown",7:"home",8:"end",11:"f1",12:"f2",13:"f3",14:"f4",15:"f5",17:"f6",18:"f7",19:"f8",20:"f9",21:"f10",23:"f11",24:"f12"},Ww={27:"escape",9:"tab",127:"delete",8:"backspace",57358:"capslock",57359:"scrolllock",57360:"numlock",57361:"printscreen",57362:"pause",57363:"menu",57376:"f13",57377:"f14",57378:"f15",57379:"f16",57380:"f17",57381:"f18",57382:"f19",57383:"f20",57384:"f21",57385:"f22",57386:"f23",57387:"f24"},Kw=i(e=>e>=0&&e<=1114111&&!(e>=55296&&e<=57343),"isValidCodepoint"),Lm=i(e=>Kw(e)?String.fromCodePoint(e):"?","safeFromCodePoint");function Vw(e){return e===3?"release":e===2?"repeat":"press"}i(Vw,"resolveEventType");function zw(e){return{ctrl:!!(e&yr.ctrl),shift:!!(e&yr.shift),meta:!!(e&yr.meta),option:!!(e&yr.alt),super:!!(e&yr.super),hyper:!!(e&yr.hyper),capsLock:!!(e&yr.capsLock),numLock:!!(e&yr.numLock)}}i(zw,"parseKittyModifiers");function lE(e){let t=Gw.exec(e);if(!t)return null;let n=Number.parseInt(t[1],10),r=t[2]?Math.max(0,Number.parseInt(t[2],10)-1):0,o=t[3]?Number.parseInt(t[3],10):1,s=t[4];if(!Kw(n))return null;let a;s&&(a=s.split(":").map(u=>Lm(Number.parseInt(u,10))).join(""));let c,l;return n===32?(c="space",l=!0):n===13?(c="return",l=!0):Ww[n]?(c=Ww[n],l=!1):n>=1&&n<=26?(c=String.fromCodePoint(n+96),l=!1):(c=Lm(n).toLowerCase(),l=!0),l&&!a&&(a=Lm(n)),{name:c,...zw(r),eventType:Vw(o),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:l,text:a}}i(lE,"parseKittyKeypress");function uE(e){let t=sE.exec(e);if(!t)return null;let n=Number.parseInt(t[1],10),r=Math.max(0,Number.parseInt(t[2],10)-1),o=Number.parseInt(t[3],10),s=t[4],a=s==="~"?cE[n]:aE[s];return a?{name:a,...zw(r),eventType:Vw(o),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:!1}:null}i(uE,"parseKittySpecialKey");var Om="\x1B[200~",dE="\x1B[201~";function fE(e){if(!e.startsWith(Om))return null;let t=e.indexOf(dE,Om.length);return t===-1?null:e.slice(Om.length,t)}i(fE,"extractBracketedPaste");function Dm(e=""){let t=e,n;if(tE.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t="\x1B"+String(t)):t=String(t):t!==void 0&&typeof t!="string"?t=String(t):t||(t=""),typeof t=="string"){let a=fE(t);if(a!==null)return{name:"paste",ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,isPaste:!0,isPrintable:!1,text:a}}let r=lE(t);if(r)return r;let o=uE(t);if(o)return o;if(Gw.test(t))return{name:"",ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,isKittyProtocol:!0,isPrintable:!1};let s={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t};if(s.sequence=s.sequence||t||s.name,t==="\r"||t==="\x1B\r")s.raw=void 0,s.name="return",s.option=t.length===2;else if(t===`
35
- `)s.name="enter";else if(t===" ")s.name="tab";else if(t==="\b"||t==="\x1B\b")s.name="backspace",s.meta=t.charAt(0)==="\x1B";else if(t==="\x7F"||t==="\x1B\x7F")s.name="delete",s.meta=t.charAt(0)==="\x1B";else if(t==="\x1B"||t==="\x1B\x1B")s.name="escape",s.meta=t.length===2;else if(t===" "||t==="\x1B ")s.name="space",s.meta=t.length===2;else if(t.length===1&&t<="")s.name=String.fromCharCode(t.charCodeAt(0)+97-1),s.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")s.name="number";else if(t.length===1&&t>="a"&&t<="z")s.name=t;else if(t.length===1&&t>="A"&&t<="Z")s.name=t.toLowerCase(),s.shift=!0;else if(n=nE.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(n[1]??"");else if(n=rE.exec(t)){let a=[...t];a[0]==="\x1B"&&a[1]==="\x1B"&&(s.option=!0);let c=[n[1],n[2],n[4],n[6]].filter(Boolean).join(""),l=Number(n[3]||n[5]||1)-1;s.ctrl=!!(l&4),s.meta=!!(l&10),s.shift=!!(l&1),s.code=c,s.name=Uw[c]??"",s.shift=oE(c)||s.shift,s.ctrl=iE(c)||s.ctrl}return s}i(Dm,"parseKeypress");var gE=50;function iu(e){return{columns:e?.columns??80,rows:e?.rows??24}}i(iu,"resolveTerminalSize");var Nr=mE(null),Nm={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")};var Qw={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function hE(e){for(let t of e)if(t.rawMode)return!0;return!1}i(hE,"hasRawModeSubscribers");function yE({stdin:e,setRawMode:t,isRawModeSupported:n}){let r=new Set,o,s=!1,a=i(m=>{for(let p of r)p.listener(m)},"handleData"),c=i(()=>{if(s){try{t(!1)}catch{}s=!1}},"disableRawModeIfOwned"),l=i(()=>{o?.off?.("data",a),o=void 0,c()},"detachInput"),u=i(()=>{if(o&&o!==e&&l(),!e||r.size===0){l();return}if(o!==e&&(e.on?.("data",a),o=e),!(n&&hE(r))){c();return}if(e.isRaw===!1&&!s)try{t(!0),s=!0}catch{s=!1}},"syncInputOwnership");return{subscribe(m,p={}){let g={listener:m,rawMode:p.rawMode!==!1};return r.add(g),u(),()=>{r.delete(g),u()}},dispose(){r.clear(),l()}}}i(yE,"createTerminalInputController");var xE=i(({children:e,runtime:t})=>{let[n,r]=pE(()=>t.terminalSize);zi(()=>{if(r(iu(t.stdout)),typeof t.stdout?.on!="function"||typeof t.stdout?.off!="function")return;let c=i(()=>{r(iu(t.stdout))},"handleResize");return t.stdout.on("resize",c),()=>{t.stdout.off?.("resize",c)}},[t.stdout]);let o=qw(c=>typeof t.stdout?.write!="function"?!1:(t.stdout.write(c),!0),[t.stdout]),s=Xw(()=>yE({stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported}),[t.stdin,t.isRawModeSupported,t.setRawMode]);zi(()=>()=>{s.dispose()},[s]);let a=Xw(()=>({stdout:t.stdout,stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported,exit:t.exit,terminalSize:n,isTTY:t.stdout?.isTTY===!0,writeRaw:o,subscribeInput:s.subscribe}),[s.subscribe,t.exit,t.isRawModeSupported,t.setRawMode,t.stdin,t.stdout,s.subscribe,n,o]);return Yw(Nr.Provider,{value:a,children:e})},"TuiRuntimeProvider");function wE(e){let t=e?.stdout??Nm,n=e?.stdin??Qw,r=i(s=>{typeof n?.setRawMode=="function"&&n.setRawMode(s)},"setRawMode"),o;return{stdout:t,stdin:n,setRawMode:r,isRawModeSupported:typeof n?.setRawMode=="function",exit:i(()=>{o?.()},"exit"),terminalSize:iu(t),isTTY:t?.isTTY===!0,writeRaw:i(s=>typeof t?.write!="function"?!1:(t.write(s),!0),"writeRaw"),subscribeInput:i(()=>()=>{},"subscribeInput"),attachExit(s){o=s}}}i(wE,"createRuntimeValue");function su(e,t){let n=wE(t),r=$m(Yw(xE,{runtime:n,children:e}),t);return n.attachExit(r.unmount),r}i(su,"render");var I=Bw,T=Hw,Xi=Fw;function SE(e){let t={upArrow:e.name==="up",downArrow:e.name==="down",leftArrow:e.name==="left",rightArrow:e.name==="right",pageDown:e.name==="pagedown",pageUp:e.name==="pageup",home:e.name==="home",end:e.name==="end",return:e.name==="return",escape:e.name==="escape",ctrl:e.ctrl,shift:e.shift,tab:e.name==="tab",backspace:e.name==="backspace",delete:e.name==="delete",meta:e.meta||e.name==="escape"||e.option===!0,super:e.super??!1,hyper:e.hyper??!1,capsLock:e.capsLock??!1,numLock:e.numLock??!1,eventType:e.eventType},n="";return e.isKittyProtocol?e.isPrintable?n=e.text??e.name:e.ctrl&&e.name.length===1&&(n=e.name):e.ctrl?n=e.name:n=e.sequence,!e.isKittyProtocol&&jw.includes(e.name)&&(n=""),n.startsWith("\x1B")&&(n=n.slice(1)),n.length===1&&typeof n[0]=="string"&&/[A-Z]/.test(n[0])&&(t.shift=!0),{input:n,key:t}}i(SE,"createCompatKeypress");function au(e,t={}){let{isActive:n=!0}=t,r=ou(e),o=ou(null),s=ou(null);zi(()=>{r.current=e},[e]),zi(()=>{if(!n){o.current=null,s.current&&(clearTimeout(s.current),s.current=null);return}return o.current=Zl(),()=>{o.current?.reset(),o.current=null,s.current&&(clearTimeout(s.current),s.current=null)}},[n]);let a=qw(c=>{let{input:l,key:u}=SE(Dm(c));l==="c"&&u.ctrl||r.current(l,u)},[]);ka(c=>{if(!n)return;s.current&&(clearTimeout(s.current),s.current=null);let l=o.current,u=typeof c=="string"?c:c.toString("utf8"),m=l?.push(u)??[u];for(let p of m)a(p);u.length>0&&(s.current=setTimeout(()=>{let p=o.current?.flushPendingEscape();p&&a(p)},gE))},{isActive:n,rawMode:!0})}i(au,"useInput");function Yn(){return{stdout:ko(Nr)?.stdout??Nm}}i(Yn,"useStdout");function Ia(){let e=ko(Nr),t=e?.stdin??Qw,n=e?.setRawMode??(r=>{typeof t?.setRawMode=="function"&&t.setRawMode(r)});return{stdin:t,setRawMode:n,isRawModeSupported:e?.isRawModeSupported??typeof t?.setRawMode=="function"}}i(Ia,"useStdin");function Br(){return{exit:ko(Nr)?.exit??(()=>{})}}i(Br,"useApp");function Yi(){return ko(Nr)?.stdout??Nm}i(Yi,"useTerminalOutput");function qi(){let e=Yi();return ko(Nr)?.terminalSize??iu(e)}i(qi,"useTerminalSize");function Qi(){let e=Yi();return ko(Nr)?.writeRaw??(n=>typeof e?.write!="function"?!1:(e.write(n),!0))}i(Qi,"useTerminalWrite");function ka(e,t={}){let{isActive:n=!0,rawMode:r=!0}=t,o=ko(Nr),{stdin:s,setRawMode:a,isRawModeSupported:c}=Ia(),l=ou(e);zi(()=>{l.current=e},[e]),zi(()=>{if(!n||!s)return;if(o)return o.subscribeInput(g=>{l.current(g)},{rawMode:r});let u=s,m=u.isRaw;r&&c&&m===!1&&a(!0);let p=i(g=>{l.current(g)},"handleData");return u.on?.("data",p),()=>{if(u.off?.("data",p),r&&c&&m===!1)try{a(!1)}catch{}}},[o,s,n,r,c,a])}i(ka,"useTerminalInput");import{jsx as kE}from"react/jsx-runtime";import{useInsertionEffect as RE,useMemo as EE}from"react";var TE="\x1B[?1049h",CE="\x1B[?1049l";var bE="\x1B[2J",vE="\x1B[?1000h\x1B[?1002h\x1B[?1006h",IE="\x1B[?1006l\x1B[?1002l\x1B[?1000l";function cu(e={}){let t=e.mouseTracking!==!1,n=e.clearOnEnter===!0;return TE+(n?bE:"")+"\x1B[H"+(t?vE:"")}i(cu,"buildAlternateScreenEnterSequence");function lu(e={}){return(e.mouseTracking!==!1?IE:"")+CE}i(lu,"buildAlternateScreenExitSequence");var Bm=i(({children:e,mouseTracking:t=!0,enabled:n=!0,clearOnEnter:r=!1})=>{let o=Yi(),{rows:s}=qi(),a=Qi(),c=EE(()=>n&&o.isTTY===!0,[n,o]);return RE(()=>{if(!c)return;let l=ru(o);if(l?.setShellMode?.("virtual",t),l?.beginShellTransition?.("enter-alt-screen"),!!a(cu({mouseTracking:t,clearOnEnter:r})))return l?.setAltScreenActive?.(!0,t),()=>{l?.beginShellTransition?.("exit-alt-screen"),l?.clearTextSelection?.(),l?.setAltScreenActive?.(!1),a(lu({mouseTracking:t}))}},[r,c,t,o,a]),kE(I,{flexDirection:"column",height:s,width:"100%",flexGrow:1,flexShrink:0,children:e})},"AlternateScreen");import{jsx as Hr,jsxs as tS}from"react/jsx-runtime";import{jsx as ME}from"react/jsx-runtime";import AE,{useEffect as Hm,useImperativeHandle as _E,useMemo as PE,useRef as Fm,useCallback as Wm,useState as $E}from"react";function Jw(e){let t={...e,scrollHeight:Math.max(0,Math.floor(e.scrollHeight)),viewportHeight:Math.max(0,Math.floor(e.viewportHeight)),pendingDelta:Math.floor(e.pendingDelta)};return{...t,scrollTop:Um(t,t.scrollTop)}}i(Jw,"normalizeScrollSnapshot");function Zw(e,t){return e.scrollTop===t.scrollTop&&e.scrollHeight===t.scrollHeight&&e.viewportHeight===t.viewportHeight&&e.pendingDelta===t.pendingDelta&&e.clampMin===t.clampMin&&e.clampMax===t.clampMax&&e.sticky===t.sticky}i(Zw,"areSnapshotsEqual");function LE(e,t){return e.start===t.start&&e.end===t.end&&e.scrollTop===t.scrollTop&&e.scrollHeight===t.scrollHeight&&e.viewportHeight===t.viewportHeight&&e.viewportTop===t.viewportTop&&e.pendingDelta===t.pendingDelta&&e.sticky===t.sticky}i(LE,"areWindowsEqual");function Um(e,t){let n=Math.max(0,e.scrollHeight-e.viewportHeight),r=e.clampMin??0,o=e.clampMax??n;return Math.max(r,Math.min(Math.floor(t),Math.min(n,o)))}i(Um,"clampScrollTop");function eS(e){let t=Math.max(0,e.viewportHeight),n=Um(e,e.scrollTop),r=Math.max(0,e.scrollHeight-n),o=Math.max(0,r-t);return{start:o,end:r,scrollTop:n,scrollHeight:e.scrollHeight,viewportHeight:t,viewportTop:o,pendingDelta:e.pendingDelta,sticky:e.sticky}}i(eS,"resolveScrollWindow");function OE(e){let t=Um(e,e.scrollTop);return Math.max(0,e.scrollHeight-e.viewportHeight-t)}i(OE,"resolveNativeScrollTop");var jm=i(({children:e,width:t,flexGrow:n=0,flexShrink:r=1,paddingTop:o=0,scrollTop:s=0,scrollHeight:a=0,viewportHeight:c=0,stickyScroll:l=!0,scrollRef:u,onScrollTopChange:m,onStickyChange:p,onWindowChange:g,renderWindow:h})=>{let x=Fm(null),C=Fm(new Set),w=Fm(Jw({scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,sticky:l})),[b,P]=$E(()=>eS(w.current)),L=Wm(()=>{for(let W of C.current)W()},[]),F=Wm((W,X=!0)=>{let v=w.current,M=Jw(W),ne=eS(M);return w.current=M,P(xe=>LE(xe,ne)?xe:ne),X&&!Zw(v,M)&&L(),{previous:v,snapshot:M,window:ne,changed:!Zw(v,M)}},[L]);Hm(()=>{let W=w.current,X={scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,clampMin:W.clampMin,clampMax:W.clampMax,sticky:l},v=F(X);v.previous.sticky!==l&&p?.(l),v.window.scrollTop!==s&&m?.(v.window.scrollTop)},[F,p,m,a,s,l,c]);let O=Wm(()=>{let W=x.current;if(!W)return;let X=typeof W.scrollHeight=="number"?Math.max(0,Math.floor(W.scrollHeight)):void 0,v=typeof W.scrollViewportHeight=="number"?Math.max(0,Math.floor(W.scrollViewportHeight)):void 0,M=typeof W.scrollViewportTop=="number"?Math.max(0,Math.floor(W.scrollViewportTop)):void 0;if(X===void 0||v===void 0||M===void 0)return;let ne=Math.max(0,X-v-M),xe=F({...w.current,scrollTop:ne,scrollHeight:X,viewportHeight:v});xe.changed&&xe.window.scrollTop!==xe.previous.scrollTop&&m?.(xe.window.scrollTop)},[F,m]);Hm(()=>{O()},[O]);let N=PE(()=>({scrollTo(W){let X=F({...w.current,scrollTop:W,pendingDelta:0,sticky:!1});X.previous.sticky!==!1&&p?.(!1),m?.(X.window.scrollTop)},scrollBy(W){let X=F({...w.current,scrollTop:w.current.scrollTop+W,pendingDelta:w.current.pendingDelta+Math.floor(W),sticky:!1});X.previous.sticky!==!1&&p?.(!1),m?.(X.window.scrollTop)},scrollToElement(W,X=0){let v=F({...w.current,scrollTop:W-X,pendingDelta:0,sticky:!1});v.previous.sticky!==!1&&p?.(!1),m?.(v.window.scrollTop)},scrollToBottom(){let W=F({...w.current,scrollTop:0,pendingDelta:0,sticky:!0});m?.(W.window.scrollTop),W.previous.sticky!==!0&&p?.(!0)},getScrollTop(){return w.current.scrollTop},getPendingDelta(){return w.current.pendingDelta},getScrollHeight(){return x.current?.scrollHeight??w.current.scrollHeight},getViewportHeight(){return x.current?.scrollViewportHeight??b.viewportHeight},getViewportTop(){return x.current?.scrollViewportTop??b.viewportTop},isSticky(){return w.current.sticky},subscribe(W){return C.current.add(W),()=>{C.current.delete(W)}},setClampBounds(W,X){let v=F({...w.current,clampMin:W,clampMax:X});v.window.scrollTop!==v.previous.scrollTop&&m?.(v.window.scrollTop)}}),[F,m,p]);_E(u,()=>N,[N]),Hm(()=>{g?.(b)},[g,b]);let k=h?h(b):e,ae=Math.max(0,c+o),me=OE(w.current);return AE.createElement("ink-box",{ref:x,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:n,flexShrink:r,width:t,height:ae,paddingTop:o,overflowX:"visible",overflowY:"scroll"},scrollTop:me,scrollHeight:w.current.scrollHeight,scrollViewportHeight:w.current.viewportHeight,scrollViewportTop:b.viewportTop,pendingScrollDelta:w.current.pendingDelta,virtualScrollWindowed:!!h,...w.current.clampMin!==void 0?{scrollClampMin:w.current.clampMin}:{},...w.current.clampMax!==void 0?{scrollClampMax:w.current.clampMax}:{},...l?{stickyScroll:!0}:{}},ME(I,{flexDirection:"column",flexGrow:1,flexShrink:0,width:"100%",children:k}))},"ScrollBox");var DE=80;function Ra(e){if(!(!e?.visible||!e.label))return e.hint?`${e.label}: ${e.hint}`:e.label}i(Ra,"resolveFullscreenChromeSlotText");function uu(e,t){if(!e)return 0;let n=Math.max(1,(typeof t=="number"?t:DE)-2);return Math.max(1,Xt(e.split(`
36
- `),n,0,0).visualLines.length)}i(uu,"measureFullscreenChromeSlotRows");var Gm=i(({top:e,topRows:t=0,scrollable:n,renderScrollableWindow:r,bottom:o,overlay:s,stickyHeader:a,jumpToLatest:c,width:l,scrollTop:u=0,scrollHeight:m=0,viewportHeight:p=0,stickyScroll:g=!0,scrollRef:h,onScrollTopChange:x,onStickyChange:C,onWindowChange:w})=>{let b=i((me,W)=>W?Hr(I,{paddingX:1,children:Hr(T,{dimColor:me?.tone!=="accent",children:W})}):null,"renderChromeSlot"),P=Ra(a),L=Ra(c),F=uu(P,l),O=b(a,P),N=s?null:b(c,L),k=Math.max(0,e?t:0),ae=Math.max(0,p-F-k);return tS(I,{flexDirection:"column",width:l,flexGrow:1,flexShrink:0,children:[e?Hr(I,{flexDirection:"column",flexShrink:0,children:e}):null,tS(I,{flexDirection:"column",flexGrow:1,overflowY:"hidden",children:[Hr(jm,{width:l,flexGrow:1,flexShrink:1,paddingTop:F,scrollTop:u,scrollHeight:m,viewportHeight:ae,stickyScroll:g,scrollRef:h,onScrollTopChange:x,onStickyChange:C,onWindowChange:w,renderWindow:r,children:n}),O?Hr(I,{position:"absolute",top:0,left:0,right:0,flexDirection:"column",children:O}):null,N?Hr(I,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:N}):null,s?Hr(I,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:s}):null]}),Hr(I,{flexDirection:"column",flexShrink:0,children:o})]})},"FullscreenLayout");import BE from"string-width";var HE=200;function FE(e){let t=Math.min(HE,Math.max(1,e));return"-".repeat(t)}i(FE,"generateDivider");function WE(){return qi().columns}i(WE,"useTerminalWidth");var Km=i(({lines:e,cursorRow:t,cursorCol:n,prompt:r=">",placeholder:o="Type your message...",focus:s=!0,terminalFocused:a=!0,isPasting:c=!1,editingMode:l="idle",theme:u="dark",width:m})=>{let p=du(()=>te(u),[u]),g=WE(),h=m??g,x=BE(r)+1,C=du(()=>{let N=Math.max(20,h-x);return Xt(e,N,t,n)},[e,h,t,n,x]),w=du(()=>{if(!C)return null;let[N,k]=dm(C,[t,n]);return{row:N,col:k}},[C,t,n]),b=FE(h),P=s&&a,L=c&&e.some(N=>N.length>0),F=C,O=w;return yn(I,{flexDirection:"column",width:m,children:[Nt(T,{dimColor:!0,children:b}),L?Nt(I,{children:Nt(T,{dimColor:!0,children:l==="pasting"?"Pasting input...":"Editing input..."})}):null,F.visualLines.length===0||F.visualLines.length===1&&F.visualLines[0]===""?yn(I,{children:[yn(T,{color:p.colors.primary,children:[r," "]}),P?yn(NE,{children:[Nt(T,{backgroundColor:p.colors.primary,color:"#000000",children:" "}),Nt(T,{dimColor:!0,children:o})]}):Nt(T,{dimColor:!0,children:o})]}):F.visualLines.map((N,k)=>{let ae=k===O.row,me=k===0?r:" ".repeat(x-1);if(ae&&P){let{before:W,current:X,after:v}=vx(N,O.col),M=X||" ";return yn(I,{children:[yn(T,{color:p.colors.primary,children:[me," "]}),Nt(T,{color:p.colors.text,children:W}),Nt(T,{backgroundColor:p.colors.primary,color:"#000000",children:M}),Nt(T,{color:p.colors.text,children:v})]},k)}return yn(I,{children:[yn(T,{color:p.colors.dim,children:[me," "]}),Nt(T,{color:p.colors.text,children:N})]},k)}),Nt(T,{dimColor:!0,children:b})]})},"TextInput"),UE=i(({value:e,cursorCol:t,prompt:n=">",placeholder:r,focus:o=!0,theme:s="dark"})=>{let a=du(()=>te(s),[s]);if(!e)return yn(I,{children:[yn(T,{color:a.colors.primary,children:[n," "]}),r&&Nt(T,{dimColor:!0,children:r}),o&&Nt(T,{backgroundColor:a.colors.primary,color:"#000000",children:" "})]});let c=zt(e),l=c.slice(0,t).join(""),u=c[t]??" ",m=c.slice(t+1).join("");return yn(I,{children:[yn(T,{color:a.colors.primary,children:[n," "]}),Nt(T,{color:a.colors.text,children:l}),Nt(T,{backgroundColor:a.colors.primary,color:"#000000",children:u}),Nt(T,{color:a.colors.text,children:m})]})},"SingleLineTextInput");var Vm={"[A":{name:"up"},"[B":{name:"down"},"[C":{name:"right"},"[D":{name:"left"},"[200~":{name:"paste_start"},"[201~":{name:"paste_end"},"[Z":{name:"tab",shift:!0},"[1;2A":{name:"up",shift:!0},"[1;2B":{name:"down",shift:!0},"[1;2C":{name:"right",shift:!0},"[1;2D":{name:"left",shift:!0},"[13;2u":{name:"return",shift:!0},"[13;3u":{name:"return",meta:!0},"[13;5u":{name:"return",ctrl:!0},"[H":{name:"home"},"[F":{name:"end"},"[1~":{name:"home"},"[4~":{name:"end"},"[7~":{name:"home"},"[8~":{name:"end"},"[2~":{name:"insert"},"[3~":{name:"delete"},"[5~":{name:"pageup"},"[6~":{name:"pagedown"},"[11~":{name:"f1"},"[12~":{name:"f2"},"[13~":{name:"f3"},"[14~":{name:"f4"},"[15~":{name:"f5"},"[17~":{name:"f6"},"[18~":{name:"f7"},"[19~":{name:"f8"},"[20~":{name:"f9"},"[21~":{name:"f10"},"[23~":{name:"f11"},"[24~":{name:"f12"},OP:{name:"f1"},OQ:{name:"f2"},OR:{name:"f3"},OS:{name:"f4"},OA:{name:"up"},OB:{name:"down"},OC:{name:"right"},OD:{name:"left"},OH:{name:"home"},OF:{name:"end"}},jE=/^\x1b\[([0-9]+);?([0-9]+)?([~A-Za-z])?/,GE=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/;function KE(e){switch(e&3){case 0:return"left";case 1:return"middle";case 2:return"right";default:return"unknown"}}i(KE,"parseMouseButton");function VE(e){return{shift:(e&1)!==0,alt:(e&2)!==0,ctrl:(e&4)!==0,meta:(e&8)!==0}}i(VE,"parseModifier");function fu(e,t=!1){let n={name:"",sequence:e,ctrl:!1,meta:!1,shift:!1,insertable:!1,isPasted:!1};if(!e||e.length===0)return n;let r=e.match(GE);if(r){let[,o,s,a,c]=r,l=Number(o),u=Number(s),m=Number(a),p=l&28;return n.shift=(p&4)!==0,n.meta=(p&8)!==0,n.ctrl=(p&16)!==0,l===64?(n.name="wheelup",n.mouse={action:"wheel",button:"wheelup",row:m,column:u},n):l===65?(n.name="wheeldown",n.mouse={action:"wheel",button:"wheeldown",row:m,column:u},n):(n.name="mouse",n.mouse={action:c==="m"?"release":(l&32)!==0?"drag":"press",button:KE(l),row:m,column:u},n)}if(e===`\r
37
- `)return n.name="newline",n;if(e==="\r")return n.name=t?"newline":"return",n;if(e===`
38
- `)return n.name="newline",n;if(e===" ")return n.name="tab",n;if(e==="\b"||e==="\x7F")return n.name="backspace",n;if(e==="\x1B\b"||e==="\x1B\x7F")return n.name="backspace",n.meta=!0,n;if(e==="\x1B\r"||e===`\x1B
39
- `)return n.name=e==="\x1B\r"?"return":"enter",n.shift=!0,n;if(e==="\x1B"||e==="\x1B\x1B")return n.name="escape",n.meta=e.length===2,n;if(e===" "||e==="\x1B ")return n.name="space",n.meta=e.length===2,n.insertable=!n.meta,n;if(e.length===1&&e.charCodeAt(0)<=26)return n.name=String.fromCharCode(e.charCodeAt(0)+96),n.ctrl=!0,n;if(e.length===1&&e>="0"&&e<="9"||e.length===1&&e>="a"&&e<="z")return n.name=e,n.insertable=!0,n;if(e.length===1&&e>="A"&&e<="Z")return n.name=e.toLowerCase(),n.shift=!0,n.insertable=!0,n;if(e.length===1&&e.charCodeAt(0)>=32)return n.name=e,n.insertable=!0,n;if(e.startsWith("\x1B")){let o=e.slice(1);if(o.length===1)return n.meta=!0,o>="a"&&o<="z"?(n.name=o,n.insertable=!0):o>="A"&&o<="Z"?(n.name=o.toLowerCase(),n.shift=!0,n.insertable=!0):o.charCodeAt(0)>=32&&(n.name=o,n.insertable=!0),n;let s=e.match(jE);if(s){let[,l,u,m]=s,p=m||"~",h=Vm[o];if(h)return Object.assign(n,h),n;let x="["+l+p+"]",C=Vm[x];if(C&&C.name){if(n.name=C.name,u){let w=parseInt(u,10)-1,b=VE(w);Object.assign(n,b)}return n}}let c=Vm[o];if(c)return Object.assign(n,c),n;if(e.startsWith("\x1B\x1B")){n.meta=!0;let l="\x1B"+e.slice(2),u=fu(l);return n.name=u.name,n}}return n}i(fu,"parseKeypress");var Ea=class{static{i(this,"KeypressParser")}buffer="";listeners=[];flushing=!1;inBracketedPaste=!1;pasteAccumulator="";onKeypress(t){return this.listeners.push(t),()=>{let n=this.listeners.indexOf(t);n>=0&&this.listeners.splice(n,1)}}feed(t,n=!1){let r=typeof t=="string"?t:t.toString("utf8");this.buffer+=r,this.flushing=n,this.processBuffer()}processBuffer(){for(;this.buffer.length>0;){let t=this.extractNextSequence();if(!t){if(this.flushing&&this.buffer.length>0){let s=this.buffer;this.buffer="";let a=fu(s,this.inBracketedPaste);this.emit(a)}break}let{sequence:n,remaining:r}=t;this.buffer=r;let o=fu(n,this.inBracketedPaste);if(o.name==="paste_start"){this.inBracketedPaste=!0,this.pasteAccumulator="";continue}if(o.name==="paste_end"){this.inBracketedPaste=!1,this.flushPasteAccumulator();continue}this.emit(o)}}flushPasteAccumulator(){if(this.pasteAccumulator.length===0)return;let t={name:"paste",sequence:this.pasteAccumulator,ctrl:!1,meta:!1,shift:!1,insertable:!0,isPasted:!0};this.pasteAccumulator="";for(let n of this.listeners)n(t)}extractNextSequence(){if(this.buffer.length===0)return null;let t=this.buffer[0];if(t!=="\x1B")return t==="\r"&&this.buffer.length>=2&&this.buffer[1]===`
40
- `?{sequence:this.buffer.slice(0,2),remaining:this.buffer.slice(2)}:{sequence:this.buffer[0],remaining:this.buffer.slice(1)};if(this.buffer.length===1)return this.flushing?{sequence:this.buffer,remaining:""}:null;let n=this.buffer[1];if(n!=="["&&n!=="O")return{sequence:this.buffer.slice(0,2),remaining:this.buffer.slice(2)};if(this.buffer.startsWith("\x1B[<")){let a=3;for(;a<this.buffer.length;){let c=this.buffer[a];if(!c)break;if(c>="0"&&c<="9"||c===";"||c==="<"){a++;continue}if(c==="M"||c==="m")return a++,{sequence:this.buffer.slice(0,a),remaining:this.buffer.slice(a)};break}return this.flushing?{sequence:this.buffer,remaining:""}:null}let r=2;for(;r<this.buffer.length;){let a=this.buffer[r];if(!a)break;if(a>="0"&&a<="9"||a===";"){r++;continue}if(a>="A"&&a<="Z"||a>="a"&&a<="z"||a==="~"){r++;break}break}let o=this.buffer[r-1];return o&&(o>="A"&&o<="Z"||o>="a"&&o<="z"||o==="~")?{sequence:this.buffer.slice(0,r),remaining:this.buffer.slice(r)}:this.flushing?{sequence:this.buffer.slice(0,r),remaining:this.buffer.slice(r)}:null}emit(t){if(this.inBracketedPaste){if(t.isPasted=!0,t.insertable){this.pasteAccumulator+=t.sequence;return}if(t.name==="newline"){this.pasteAccumulator+=`
41
- `;return}return}for(let n of this.listeners)n(t)}clear(){this.buffer=""}};function nS(e){return["up","down","left","right","home","end","insert","delete","pageup","pagedown","wheelup","wheeldown","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","tab","return","enter","backspace","escape"].includes(e.name)}i(nS,"isFunctionKey");function zE(e){return e.ctrl||e.meta||nS(e)?!1:e.sequence.length===1&&e.sequence.charCodeAt(0)>=32}i(zE,"isPrintable");function XE(e){let t=[];return e.ctrl&&t.push("Ctrl"),e.meta&&t.push("Alt"),e.shift&&t.push("Shift"),e.name?t.push(e.name.toUpperCase()):e.sequence&&t.push(e.sequence),t.join("+")}i(XE,"getKeyDisplayName");var on;(function(e){e.Idle="idle",e.Responding="responding",e.WaitingForConfirmation="waiting_for_confirmation"})(on||(on={}));var $;(function(e){e.Scheduled="scheduled",e.Validating="validating",e.AwaitingApproval="awaiting_approval",e.Executing="executing",e.Success="success",e.Error="error",e.Cancelled="cancelled"})($||($={}));var aW={[$.Scheduled]:"\u25CB",[$.Validating]:"\u25CC",[$.AwaitingApproval]:"?",[$.Executing]:"\u25CB",[$.Success]:"\u2713",[$.Error]:"\u2717",[$.Cancelled]:"-"},Bt;(function(e){e[e.Low=-100]="Low",e[e.Normal=0]="Normal",e[e.High=100]="High",e[e.Critical=200]="Critical"})(Bt||(Bt={}));var zm={streamingState:on.Idle,currentResponse:"",history:[],pendingToolCalls:[],sessionId:"",provider:"",model:"",isLoading:!1};import YE,{createContext as qE,useContext as QE,useEffect as rS,useCallback as JE,useRef as Xm}from"react";var ZE=50;function Ym(){let e=new Map,t=null,n=i(()=>(t===null&&(t=[...e.keys()].sort((r,o)=>o-r)),t),"getSortedPriorities");return{register(r,o){return e.has(r)||e.set(r,[]),e.get(r).push(o),t=null,()=>{let s=e.get(r);if(!s)return;let a=s.indexOf(o);a>=0&&s.splice(a,1),s.length===0&&e.delete(r),t=null}},dispatch(r){let o=n();for(let s of o){let a=e.get(s);if(a)for(let c=a.length-1;c>=0;c-=1){let l=a[c];if(l&&l(r)===!0)return!0}}return!1},size(){let r=0;for(let o of e.values())r+=o.length;return r}}}i(Ym,"createKeypressManager");var oS=qE(null);function mu({children:e,enabled:t=!0}){let{stdout:n}=Yn(),r=Xm(Ym()),o=Xm(null),s=Xm(null),a=JE(c=>{t&&r.current.dispatch(c)},[t]);return rS(()=>{if(!t)return;n?.write?.("\x1B[?2004h");let c=new Ea;o.current=c;let l=c.onKeypress(a);return()=>{s.current&&(clearTimeout(s.current),s.current=null),l(),o.current=null;try{n?.write?.("\x1B[?2004l")}catch{}}},[a,t,n]),ka(c=>{t&&(s.current&&clearTimeout(s.current),o.current?.feed(c),c.length!==0&&(s.current=setTimeout(()=>{o.current?.feed("",!0)},ZE)))},{isActive:t,rawMode:!0}),YE.createElement(oS.Provider,{value:r.current},e)}i(mu,"KeypressProvider");function qm(){let e=QE(oS);if(!e)throw new Error("useKeypressManager must be used within a KeypressProvider");return e}i(qm,"useKeypressManager");function sn(e,t,n=[]){let r=qm(),o=typeof e=="function",s,a,c;if(o){s=e;let l=t??{};c=l.isActive??!0;let u=l.priority;a=typeof u=="boolean"?u?Bt.High:Bt.Normal:u??Bt.Normal}else a=typeof e=="boolean"?e?Bt.High:Bt.Normal:e,s=t,c=!0;rS(()=>c?r.register(a,s):void 0,[r,a,c,...o?[]:n])}i(sn,"useKeypress");function xn(e){return t=>!(e.name!==void 0&&t.name!==e.name||e.ctrl!==void 0&&t.ctrl!==e.ctrl||e.meta!==void 0&&t.meta!==e.meta||e.shift!==void 0&&t.shift!==e.shift||e.sequence!==void 0&&t.sequence!==e.sequence||e.insertable!==void 0&&t.insertable!==e.insertable)}i(xn,"createKeyMatcher");var iS={isEnter:xn({name:"return"}),isEscape:xn({name:"escape"}),isCtrlC:xn({name:"c",ctrl:!0}),isCtrlD:xn({name:"d",ctrl:!0}),isUp:xn({name:"up"}),isDown:xn({name:"down"}),isLeft:xn({name:"left"}),isRight:xn({name:"right"}),isBackspace:xn({name:"backspace"}),isDelete:xn({name:"delete"}),isTab:xn({name:"tab"}),isShiftEnter:i(e=>e.name==="return"&&e.shift===!0,"isShiftEnter"),isCtrlEnter:i(e=>e.name==="return"&&e.ctrl===!0,"isCtrlEnter"),isInsertable:i(e=>e.insertable===!0&&!e.ctrl&&!e.meta,"isInsertable")};var Ma=["plan","accept-edits","auto","auto-in-project"];function qt(e){return e==="auto"||e==="auto-in-project"}i(qt,"isAutoMode");function Ji(e){switch(e){case"plan":return"Plan";case"accept-edits":return"Edits";case"auto":case"auto-in-project":return"Auto"}}i(Ji,"permissionModeDisplayName");var eM='[deprecated] permissionMode "auto-in-project" is now an alias for "auto" (FEATURE_092, v0.7.33). The alias will be removed in v0.7.38 \u2014 please update ~/.kodax/config.json to use "auto".';function pu(e=console.warn){let t=!1;return()=>{t||(t=!0,e(eM))}}i(pu,"createAutoInProjectDeprecationEmitter");var sS=nx(),wn=new Set(sS.filter(e=>e.sideEffect==="mutates-fs"&&e.requiredParams.includes("path")).map(e=>e.name)),aS=new Set(sS.filter(e=>e.sideEffect!=="readonly").map(e=>e.name)),cS=new Set(["npm install","npm i","npm uninstall","npm remove","npm update","npm ci","yarn add","yarn remove","yarn upgrade","pnpm add","pnpm remove","pnpm update","git clean","git reset","git checkout","git switch","git merge","git rebase","git cherry-pick","git revert","git commit","git push","git pull","rm","mv","cp","mkdir","rmdir","touch","chmod","chown","del","erase","rd","copy","move","ren","curl","wget","dd","tar","kill","pkill","killall"]),lS=new Set(["ls","cat","pwd","echo","whoami","date","which","whereis","tree","dir","type","get-childitem","get-content","select-string","get-location","where","grep","find","awk","sed","head","tail","less","more","wc","findstr","fc","git status","git diff","git log","git show","git branch","git remote","git ls-files","git rev-parse","git grep","git tag","git stash list","git describe","git config --get","node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc"]);function Ro(e){switch(e){case"plan":return new Set(["bash","write","edit","undo"]);case"accept-edits":return new Set(["bash"]);case"auto":case"auto-in-project":return new Set}}i(Ro,"computeConfirmTools");function Qm(e){return e!==void 0&&Ma.includes(e)}i(Qm,"isPermissionMode");function qn(e,t){return Qm(e)?e:t}i(qn,"normalizePermissionMode");import gu from"fs";import wt from"path";import _a from"os";var CS=CI(wS(),1);var SS=new Set(["/dev/null","nul","NUL"]);function tp(e){return SS.has(e)||SS.has(e.toLowerCase())}i(tp,"isNullDevice");function Aa(e){let t=e.trim();if(!t)return{statements:[],unparseable:!1};if(t.includes("`"))return{statements:[],unparseable:!0};let n;try{n=(0,CS.parse)(t)}catch{return{statements:[],unparseable:!0}}let r=[],o=[],s=[],a=[],c=null,l=!1,u=i(()=>{(s.length>0||a.length>0)&&(o.push({argv:s,redirections:a}),s=[],a=[])},"flushStage"),m=i(p=>{u(),o.length>0&&(r.push({precedingOp:c,stages:o}),o=[]),c=p},"flushStatement");for(let p=0;p<n.length;p+=1){let g=n[p];if(typeof g=="string"){s.push(g);continue}if("op"in g){let h=g.op;if(h==="&&"||h==="||"||h===";"){m(h);continue}if(h==="|"){u();continue}if(h==="&"){let x=n[p+1];if(x!==void 0&&typeof x!="string"&&"op"in x&&(x.op===">"||x.op===">>")){let C=n[p+2];if(typeof C!="string"){l=!0,p+=1;continue}a.push(TS(`&${x.op}`,C)),p+=2;continue}l=!0;continue}if(uM(h)){let x=null,C=s[s.length-1];C!==void 0&&/^[0-9]+$/.test(C)&&(x=C,s.pop());let w=n[p+1];if(typeof w!="string"){l=!0;continue}a.push(TS(x?`${x}${h}`:h,w)),p+=1;continue}if(h==="glob"){let x=g.pattern;typeof x=="string"?s.push(x):l=!0;continue}l=!0;continue}if("comment"in g)break;l=!0}return m(null),{statements:r,unparseable:l}}i(Aa,"parseBashCommand");var lM=new Set([">",">>","<","<<","<<<","&>","&>>"]),bS=/^([0-9]+|&)(>>?|<<?)$/;function uM(e){return lM.has(e)||bS.test(e)}i(uM,"isRedirectionOp");function TS(e,t){let n=null,r=e,o=bS.exec(e);return o&&(n=o[1],r=o[2]),{op:e,fd:n,append:r===">>"||e==="&>>",input:r==="<"||r==="<<"||e==="<<<",target:t}}i(TS,"parseRedirection");var dM=wt.join(".agent","plan_mode_doc.md"),hu=new Map,yu=null;function fM(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\s+/g," ").toLowerCase();for(let n of lS)if(t===n||t.startsWith(n+" ")){if(n==="sed"&&t.split(/\s+/).some(s=>s.startsWith("-i")||s==="--in-place"))return!1;if(n==="awk"){let o=t.split(/\s+/);if(o.includes("-f")||o.includes("--file"))return!1}if(["node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc","ruby","perl"].includes(n)){let o=t.split(/\s+/).slice(1);if(o.length>0&&!o.every(s=>/^(-v|--version|-h|--help)$/.test(s)))return!1}return!0}return!1}i(fM,"isSingleBashReadCommand");var mM=/^[a-zA-Z0-9]+$/;function pM(e){let t=e.trim();if(!t.endsWith("--help")||t.includes('"')||t.includes("'"))return!1;let n=!1;for(let r of t.split(/\s+/))if(r.startsWith("-"))if(r==="--help")n=!0;else return!1;else if(!mM.test(r))return!1;return n}i(pM,"isHelpCommand");function Pn(e){if(!e||!e.trim())return!1;if(pM(e))return!0;let t=e.trim().replace(/\\\r?\n/g," "),n=Aa(t);if(n.unparseable||n.statements.length===0)return!1;let r=n.statements.length>1||(n.statements[0]?.stages.length??0)>1;for(let o of n.statements){if(o.precedingOp!==null&&o.precedingOp!=="&&")return!1;for(let s of o.stages){for(let c of s.redirections)if(c.input||!tp(c.target))return!1;let a=s.argv.join(" ");if(a&&!(r&&s.argv[0]?.toLowerCase()==="cd"&&s.argv.length>=2)&&!fM(a))return!1}}return!0}i(Pn,"isBashReadCommand");function rp(e){let t=e.trim();return t?Pn(t)?null:"[Blocked] Direct !command execution only supports safe read-only commands. Use the bash tool for commands that write files, invoke shells, or require confirmation.":"[Shell: No command provided]"}i(rp,"getDirectShellBypassBlockReason");var IS=new Set(["remove-item","set-content","add-content","out-file","new-item","copy-item","move-item","rename-item","ni"]);function $n(e){if(!e||!e.trim())return!1;let t=Aa(e);if(t.unparseable)return!1;for(let n of t.statements)for(let r of n.stages){let o=r.argv.map(s=>s.toLowerCase());if(o.length>0){let s=o[0],a=o.length>=2?`${o[0]} ${o[1]}`:null;for(let c of cS)if(c===s||a!==null&&c===a)return!0}for(let s of o)if(IS.has(s))return!0;for(let s of r.redirections)if(!s.input&&!tp(s.target))return!0}return!1}i($n,"isBashWriteCommand");function op(e){let t=e.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\((.+)\)$/);return t?{tool:t[1].toLowerCase(),pattern:t[2]}:{tool:e.toLowerCase(),pattern:null}}i(op,"parseAllowedToolPattern");function gM(e,t){if(t==="*")return!1;if(t.endsWith(":*")){let n=t.slice(0,-2);return e.startsWith(n)}return e===t}i(gM,"matchesBashPatternLegacy");function hM(e,t){if(t==="*")return!1;if(t.endsWith(":*")){let n=t.slice(0,-2);return e===n}return e===t}i(hM,"matchesBashPatternByExtractedPrefix");async function Fr(e,t,n,r,o){if(e.toLowerCase()!=="bash")return!1;let s=t.command??"",a=[];for(let c of n){let l=op(c);if(l.tool==="bash"){if(l.pattern===null)return!0;a.push({pattern:l.pattern})}}if(a.length===0)return!1;if(r){let c;try{c=await r.extract(s,o)}catch{return!1}if(c.kind!=="prefix")return!1;for(let{pattern:l}of a)if(l&&hM(c.value,l))return!0;return!1}for(let{pattern:c}of a)if(c&&gM(s,c))return!0;return!1}i(Fr,"isToolCallAllowed");function wu(e,t,n){if(e.toLowerCase()!=="bash")return"";let r=t.command??"",o=r.split(" ");return o.length>1?`Bash(${o.slice(0,2).join(" ")}:*)`:`Bash(${r})`}i(wu,"generateSavePattern");function Qn(e,t){try{let n=wt.resolve(e),r=wt.resolve(t),o=wi(),s=wt.join(r,".kodax");return Zi(n,s)||Zi(n,o)?!0:!(Zi(n,r)||ES().some(c=>Zi(n,c)))}catch{return!1}}i(Qn,"isAlwaysConfirmPath");function vS(e){return!e||e.startsWith("-")?!1:/^\.\.?[/\\]/.test(e)||e.startsWith("~/")||e.startsWith("~\\")||/^[a-zA-Z]:[/\\]/.test(e)?!0:e.startsWith("/")&&e.length>1?!(process.platform==="win32"&&yM.test(e)):!!(e.startsWith(".")&&/[/\\]/.test(e))}i(vS,"looksLikePath");var yM=/^\/[A-Za-z][A-Za-z0-9]*(?::[A-Za-z0-9]+)?$/;function xM(e){let t=[],n=/["']([^"']+)["']/g,r;for(;(r=n.exec(e))!==null;)t.push(r[1]);let o=/(?:^|\s)(\.\.?\/[^\s]+|\.\.?\\[^\s]+|[a-zA-Z]:\\[^\s]+|~\/[^\s]+|\.[^\s]*[/\\][^\s]*)/g;for(;(r=o.exec(e))!==null;)t.push(r[1]);return t}i(xM,"legacyRegexPathScan");function Su(e){let t=new Set,n=Aa(e);if(!n.unparseable)for(let r of n.statements)for(let o of r.stages){for(let s of o.argv)vS(s)&&t.add(s);for(let s of o.redirections)vS(s.target)&&t.add(s.target)}for(let r of xM(e))t.add(r);return Array.from(t)}i(Su,"extractPathsFromCommand");function ip(e,t){let n=Su(e);for(let r of n)if(Qn(r,t))return!0;return!1}i(ip,"isCommandOnProtectedPath");function xu(e){let t=wt.normalize(e);return process.platform==="win32"?t.toLowerCase():t}i(xu,"normalizePathForComparison");function wM(e,t){return xu(e)===xu(t)}i(wM,"pathsEqual");function Zi(e,t){let n=xu(e),r=xu(t);return n===r||n.startsWith(r+wt.sep)}i(Zi,"isPathInsideDirectory");function Tu(e,t){try{let n=wt.resolve(t),r=wt.resolve(n,RS(kS(e)));return Zi(r,n)}catch{return!1}}i(Tu,"isPathInsideProject");function SM(e){let t=e.match(/[A-Za-z]:[\\/][^\s;|&<>(){}'"]+|\/[^\s;|&<>(){}'"]+/g);return t?t.filter(n=>!/^(?:\/dev\/|\/proc\/)/i.test(n)):[]}i(SM,"collectAbsolutePathCandidates");function sp(e){let t=wt.resolve(e),n=hu.get(t);if(n)return n;if(gu.existsSync(t)){let c=gu.realpathSync.native(t);return hu.set(t,c),c}let r=[],o=t;for(;!gu.existsSync(o);){let c=wt.dirname(o);if(c===o)return hu.set(t,t),t;r.unshift(wt.basename(o)),o=c}let s=gu.realpathSync.native(o),a=wt.join(s,...r);return hu.set(t,a),a}i(sp,"resolveExistingPathPrefix");function kS(e){return e==="~"?_a.homedir():e.startsWith(`~${wt.sep}`)||e.startsWith("~/")||e.startsWith("~\\")?wt.join(_a.homedir(),e.slice(2)):e}i(kS,"expandHomeDirectory");function RS(e){let t=_a.tmpdir(),n=[[/^%temp%/i,t],[/^%tmp%/i,t],[/^\$env:temp\b/i,t],[/^\$env:tmp\b/i,t],[/^\$tmpdir\b/i,t],[/^\$temp\b/i,t],[/^\$tmp\b/i,t]];for(let[r,o]of n)if(r.test(e))return e.replace(r,o);return e}i(RS,"expandSystemTempAlias");function TM(e,t){let n=wt.resolve(t??process.cwd()),r=RS(kS(e)),o=wt.isAbsolute(r)?wt.resolve(r):wt.resolve(n,r);return sp(o)}i(TM,"resolvePermissionPath");function ES(){if(yu)return yu;let e=new Set,t=[_a.tmpdir(),process.env.TEMP,process.env.TMP,process.env.TMPDIR].filter(n=>typeof n=="string"&&n.trim().length>0);for(let n of t)try{e.add(sp(n))}catch{}return yu=Array.from(e),yu}i(ES,"getSystemTempDirectories");function ap(e){let t=sp(e??process.cwd());return{projectPlanDoc:wt.join(t,dM),systemTempDirs:ES()}}i(ap,"getPlanModeAllowedWritablePaths");function np(e,t){let n=TM(e,t),{projectPlanDoc:r,systemTempDirs:o}=ap(t);return wM(n,r)?!0:o.some(s=>Zi(n,s))}i(np,"isPlanModeAllowedPath");function CM(e){let{projectPlanDoc:t,systemTempDirs:n}=ap(e),r=n[0]??_a.tmpdir();return`${t} or the system temp directory (${r})`}i(CM,"formatPlanModeAllowedLocations");var bM=new Set(["-a","--append","-i","--ignore-interrupts"]);function vM(e){let t=[];for(let n=1;n<e.argv.length;n+=1){let r=e.argv[n];bM.has(r)||r.startsWith("-")||t.push(r)}return t}i(vM,"collectTeeTargets");function IM(e){let t=[],n=1,r=!1;for(;n<e.argv.length;){let o=e.argv[n],s=o.toLowerCase();if(s==="-path"||s==="-literalpath"||s==="-destination"){let a=e.argv[n+1];if(a!==void 0&&!a.startsWith("-")){t.push(a),n+=2;continue}}!o.startsWith("-")&&!r&&(t.push(o),r=!0),n+=1}return t}i(IM,"collectPowerShellWriteTargets");function Mo(e){let t=new Set,n=i(o=>{let s=o?.trim();s&&t.add(s)},"pushTarget");for(let o of Su(e))n(o);let r=Aa(e);if(r.unparseable)return Array.from(t);for(let o of r.statements)for(let s of o.stages){for(let c of s.redirections)c.input||n(c.target);let a=s.argv[0]?.toLowerCase();if(a){if(a==="tee")for(let c of vM(s))n(c);else if(IS.has(a))for(let c of IM(s))n(c)}}return Array.from(t)}i(Mo,"collectBashWriteTargets");function cp(e,t){if(!$n(e))return{dangerous:!1};let n=new Set([...Mo(e),...SM(e)]);for(let r of n)if(!Tu(r,t))return{dangerous:!0,reason:`Command may modify file outside project: ${r}`};return{dangerous:!1}}i(cp,"getBashOutsideProjectWriteRisk");function wr(e,t,n){let r=CM(n);if(rx(e))return null;if(wn.has(e)){let o=typeof t.path=="string"?t.path:"";return o?np(o,n)?null:`[Blocked] Plan mode only allows file modifications in ${r}. Requested path: ${o}`:`[Blocked] Tool '${e}' is not allowed in plan mode unless it targets ${r}.`}if(e==="bash"){let o=t.command??"";if(!$n(o))return null;let s=Mo(o);if(s.length===0)return`[Blocked] Plan mode only allows bash write operations when every target is either ${r}. Could not determine a safe target from: ${o.slice(0,80)}${o.length>80?"...":""}`;let a=s.find(c=>!np(c,n));return a?`[Blocked] Plan mode only allows bash write operations in ${r}. Blocked target: ${a}`:null}return`[Blocked] Tool '${e}' has side effects and is not permitted in plan mode. Switch to accept-edits or auto mode to use it, or work within ${r}.`}i(wr,"getPlanModeBlockReason");import Wr from"node:path";import kM from"node:os";function es(e,t){try{let n=Wr.resolve(e),r=Wr.resolve(t);return n===r?!0:n.startsWith(r+Wr.sep)}catch{return!1}}i(es,"isPathUnder");function RM(){try{return wi()}catch{return}}i(RM,"safeGetAgentConfigHome");function MS(e,t){let n=RM();if(n&&es(e,n))return"user-kodax";let r=Wr.join(Wr.resolve(t),".kodax");if(es(e,r))return"project-kodax"}i(MS,"resolveProtectedZone");function EM(){let e=new Set;try{e.add(kM.tmpdir())}catch{}for(let t of["TEMP","TMP","TMPDIR"]){let n=process.env[t];n&&n.length>0&&e.add(n)}return Array.from(e)}i(EM,"getSystemTempDirs");var MM=new Set(["bash"]),Pa={toolNames:MM,collect(e,t){let n=typeof e.input.command=="string"?e.input.command:"";if(!n||!t)return[];let r=[],o=new Set,s=new Set,a=EM(),c=Wr.resolve(t);for(let l of Su(n)){let u;try{u=Wr.resolve(t,l)}catch{continue}let m=MS(u,t);if(m){o.has(u)||(o.add(u),r.push({kind:"protected_path",path:l,zone:m}));continue}if(Qn(l,t)){let p=a.some(h=>es(u,h)),g=es(u,c);!p&&!g&&!s.has(u)&&(s.add(u),r.push({kind:"outside_project",path:l}))}}for(let l of Mo(n)){let u;try{u=Wr.resolve(t,l)}catch{continue}MS(u,t)||es(u,c)||a.some(g=>es(u,g))||r.push({kind:"shell_redirect_outside",target:l})}return r}};function Oa(e){return e.type==="tool_summary"?{type:"event",text:e.text,icon:"tool"}:e}i(Oa,"seedToHistoryItem");var AM="[Thinking]",_M="[/Thinking]",PM="Untitled Session",AS=50,$M=60,PS="...",$S=["[Managed Task]","[Managed Task Protocol Retry]","Assigned native agent identity:","Tool policy:","Blocked tools:","Allowed shell patterns:","Dependency handoff artifacts:","Dependency summary preview:","Preferred agent:","Read structured bundle first:","Read human summary next:"],LS=[/(?:^|\n)You are the [^\n]+ role for a managed KodaX task\./,/(?:^|\n)Primary task:/,/(?:^|\n)Work intent:/,/(?:^|\n)Complexity:/,/(?:^|\n)Risk:/,/(?:^|\n)Harness:/,/(?:^|\n)Brainstorm required:/],LM=/(^|\r?\n)\[Thinking\]\r?\n([\s\S]*?)\r?\n\[\/Thinking\](?=\r?\n|$)/g;function OM(e){let t=-1;for(let n of $S){let r=e.indexOf(n);r>=0&&(t===-1||r<t)&&(t=r)}for(let n of LS){let r=n.exec(e);r&&r.index>=0&&(t===-1||r.index<t)&&(t=r.index)}return t}i(OM,"findControlPlaneCutIndex");function DM(e){return $S.some(t=>e.includes(t))||LS.some(t=>t.test(e))}i(DM,"hasControlPlaneSignal");function OS(e){let t=[];for(let n of e)n&&typeof n=="object"&&"type"in n&&n.type==="text"&&"text"in n&&t.push(String(n.text));return t}i(OS,"collectTextBlocks");function NM(e){return typeof e=="string"?e:Array.isArray(e)?OS(e).join(`
42
- `):""}i(NM,"extractAssistantTextOnly");function La(e,t,n){n.trim().length!==0&&e.push({type:t,text:n})}i(La,"pushSeed");function _S(e){return e.replace(/^\n+/,"").replace(/\n+$/,"")}i(_S,"stripLegacyTagBoundaryNewlines");function BM(e){let t=e.name,n=e.input;if(!n)return`\u26A1 ${t}`;let r=t==="bash"?$a(String(n.command??"")):t==="read"||t==="write"||t==="edit"?$a(String(n.file_path??n.path??"")):t==="grep"||t==="glob"?$a(String(n.pattern??"")):t==="web_search"||t==="web_fetch"?$a(String(n.query??n.url??"")):void 0;return r?`\u26A1 ${t}(${r})`:`\u26A1 ${t}`}i(BM,"formatToolUseSummary");function $a(e,t=60){let n=e.replace(/\s+/g," ").trim();return n.length>t?`${n.slice(0,t)}...`:n}i($a,"truncateToolHint");function HM(e){if(!e.includes(AM)||!e.includes(_M))return e.trim().length>0?[{type:"assistant",text:e}]:[];let t=[],n=0;for(let r of e.matchAll(LM)){let o=r.index??-1,s=r[1]??"",a=r[2]??"";if(o<0)continue;let c=o+s.length;La(t,"assistant",_S(e.slice(n,c))),La(t,"thinking",a),n=o+r[0].length}return La(t,"assistant",_S(e.slice(n))),t.length===0?e.trim().length>0?[{type:"assistant",text:e}]:[]:t}i(HM,"parseLegacyAssistantContent");function FM(e){if(typeof e=="string")return HM(e);if(!Array.isArray(e))return[];let t=[],n=[],r=i(()=>{n.length!==0&&(La(t,"assistant",n.join(`
43
- `)),n.length=0)},"flushAssistantBuffer");for(let o of e)if(!(!o||typeof o!="object"||!("type"in o)))switch(o.type){case"text":"text"in o&&n.push(String(o.text));break;case"thinking":r(),"thinking"in o&&La(t,"thinking",String(o.thinking));break;case"tool_use":if(r(),"name"in o){let s=BM(o);s&&t.push({type:"tool_summary",text:s})}break;case"tool_result":case"redacted_thinking":break;default:break}return r(),t}i(FM,"extractAssistantHistorySeeds");var WM=["You are the Scout role","You are the Generator role","You are the Planner role","You are the Evaluator role"],UM=/\r?\n?\`\`\`kodax[\w-]*[\s\S]*?\`\`\`\s*/g;function jM(e){return WM.some(t=>e.includes(t))}i(jM,"isManagedWorkerPrompt");function GM(e){return e.replace(UM,"").trim()}i(GM,"stripManagedProtocolBlocks");function Da(e){switch(e.role){case"assistant":return FM(e.content).map(n=>({...n,text:GM(n.text)})).filter(n=>n.text.length>0);case"user":{if(e._synthetic)return[];let t=Na(e.content);return t.trim().length===0||jM(t)?[]:[{type:"user",text:t}]}case"system":return[];default:return[]}}i(Da,"extractHistorySeedsFromMessage");function Na(e){return typeof e=="string"?e:Array.isArray(e)?OS(e).join(`
44
- `):""}i(Na,"extractTextContent");function KM(e){let t=e.replace(/\s+/g," ").trim();return t?t.length>AS?`${t.slice(0,AS)}${PS}`:t:PM}i(KM,"formatSessionTitle");function Ba(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.role!=="assistant")continue;let r=NM(n.content);if(r)return r}return""}i(Ba,"extractLastAssistantText");function DS(e,t,n,r){let o=[Ba(e),t.trim(),n?.trim()??"",r?.trim()??""];for(let s of o){let a=Ao(s);if(a)return a}return""}i(DS,"resolveCompletedAssistantText");function Ao(e){let t=e.trim();if(!t)return"";let n=OM(t);return n===0?"":(n>0?t.slice(0,n):t).trim()}i(Ao,"sanitizeUserFacingAssistantText");function NS(e){let t=e.trim();return t.length>0&&Ao(t).length===0&&DM(t)}i(NS,"isControlPlaneOnlyAssistantText");function ts(e){let t=e.find(r=>r.role==="user"),n=t?Na(t.content):"";return KM(n)}i(ts,"extractTitle");function VM(e,t=$M){let n=e.replace(/\n/g," "),r=n.length>t?PS:"";return n.slice(0,t)+r}i(VM,"formatMessagePreview");import d from"chalk";import Cu from"fs";import HS from"path";var bu=jn("config.json");function FS(){return HS.join(process.cwd(),".kodax","config.local.json")}i(FS,"getProjectConfigFile");function vu(e=process.env){let n=Ha(bu).autoMode??{},r=e.KODAX_AUTO_MODE_ENGINE?.trim(),o=r==="llm"||r==="rules"?r:void 0,s=n.engine==="llm"||n.engine==="rules"?n.engine:void 0,a=o??s??"llm",c=BS(n.classifierModel),l=BS(e.KODAX_AUTO_MODE_CLASSIFIER_MODEL),u=e.KODAX_AUTO_MODE_TIMEOUT_MS?.trim(),m=u!==void 0?Number(u):NaN,p=Number.isFinite(m)&&m>0?Math.floor(m):void 0,g=typeof n.timeoutMs=="number"&&n.timeoutMs>0?Math.floor(n.timeoutMs):void 0;return{engine:a,classifierModel:c,classifierModelEnv:l,timeoutMs:p??g}}i(vu,"loadAutoModeSettings");function BS(e){if(typeof e!="string")return;let t=e.trim();return t.length===0?void 0:t}i(BS,"nonEmptyString");function Ha(e){try{if(Cu.existsSync(e))return JSON.parse(Cu.readFileSync(e,"utf-8"))}catch{}return{}}i(Ha,"readJsonFile");function WS(e,t){Cu.mkdirSync(HS.dirname(e),{recursive:!0}),Cu.writeFileSync(e,JSON.stringify(t,null,2))}i(WS,"writeJsonFile");function Fa(e){let t=Ha(bu);WS(bu,{...t,permissionMode:e})}i(Fa,"savePermissionModeUser");function ns(){let e=Ha(bu),t=Ha(FS()),n=e.alwaysAllowTools??[],r=t.alwaysAllowTools??[];return[...new Set([...n,...r])]}i(ns,"loadAlwaysAllowTools");function Iu(e,t,n=!1){let r=wu(e,t,n);if(!r)return;let o=FS(),s=Ha(o),a=s.alwaysAllowTools??[];a.includes(r)||WS(o,{...s,alwaysAllowTools:[...a,r]})}i(Iu,"saveAlwaysAllowToolPattern");var rs=class{static{i(this,"CommandRegistry")}commands=new Map;aliases=new Map;register(t){let n=t.name.toLowerCase();if(this.commands.has(n))throw new Error(`Command "${t.name}" is already registered`);if(this.aliases.has(n)){let o=this.aliases.get(n);throw new Error(`Command "${t.name}" conflicts with existing alias for "${o}"`)}let r=new Set;for(let o of t.aliases??[]){let s=o.toLowerCase();if(s!==n){if(r.has(s))throw new Error(`Alias "${o}" is duplicated within command "${t.name}"`);if(this.commands.has(s))throw new Error(`Alias "${o}" conflicts with existing command "${s}"`);if(this.aliases.has(s)){let a=this.aliases.get(s);throw new Error(`Alias "${o}" is already registered for "${a}"`)}r.add(s)}}if(this.commands.set(n,{...t,source:t.source??"builtin"}),t.aliases)for(let o of t.aliases){let s=o.toLowerCase();s!==n&&this.aliases.set(s,n)}}unregister(t){let n=t.toLowerCase(),r=this.aliases.get(n)??n;if(!this.commands.has(r))return!1;let o=this.commands.get(r);if(o?.aliases)for(let s of o.aliases)this.aliases.delete(s.toLowerCase());return this.commands.delete(r),!0}get(t){let n=t.toLowerCase(),r=this.aliases.get(n)??n;return this.commands.get(r)}has(t){let n=t.toLowerCase(),r=this.aliases.get(n)??n;return this.commands.has(r)}getAll(t){let n=new Map;for(let[r,o]of this.commands)t&&o.source!==t||n.has(r)||n.set(r,{name:o.name,aliases:o.aliases,description:o.description,source:o.source??"builtin",usage:o.usage,priority:o.priority,location:o.location,path:o.path,userInvocable:o.userInvocable,disableModelInvocation:o.disableModelInvocation,allowedTools:o.allowedTools,context:o.context,agent:o.agent,argumentHint:o.argumentHint,model:o.model});return Array.from(n.values()).sort((r,o)=>r.name.localeCompare(o.name))}getBySource(t){return this.getAll(t)}getNames(){return Array.from(this.commands.keys()).sort()}clear(){this.commands.clear(),this.aliases.clear()}get size(){return this.commands.size}get aliasCount(){return this.aliases.size}},zM=new rs;import Sn from"chalk";import{Buffer as KS}from"node:buffer";import{spawn as XM}from"node:child_process";import US from"node:process";var _o="\x1B",YM="\x07",lp=`${_o}\\`;function jS(e,t){return e.SSH_CONNECTION?!1:t==="win32"||t==="darwin"||t==="linux"}i(jS,"shouldPreferNativeClipboard");function qM(e,t){let n=KS.from(e,"utf8").toString("base64"),r=t.TERM==="xterm-kitty"?lp:YM,o=`${_o}]52;c;${n}${r}`;return t.TMUX?`${_o}Ptmux;${o.replaceAll(_o,`${_o}${_o}`)}${lp}`:t.STY?`${_o}P${o}${lp}`:o}i(qM,"buildOscSequence");async function ku(e,t,n){return new Promise((r,o)=>{let s=XM(e,t,{stdio:["pipe","ignore","pipe"],windowsHide:!0}),a="";s.on("error",o),s.stderr?.on("data",c=>{a+=c.toString()}),s.on("close",c=>{if(c===0){r(!0);return}o(new Error(a.trim()||`${e} exited with code ${c??"unknown"}`))}),s.stdin?.write(n),s.stdin?.end()})}i(ku,"execClipboardCommand");function QM(e){let t="$stream = [Console]::OpenStandardInput(); $buffer = New-Object byte[] 8192; $memory = New-Object System.IO.MemoryStream; while (($read = $stream.Read($buffer, 0, $buffer.Length)) -gt 0) { $memory.Write($buffer, 0, $read) }; $text = [System.Text.Encoding]::UTF8.GetString($memory.ToArray()); Set-Clipboard -Value $text",n=KS.from(e,"utf8");return[["powershell",["-NoProfile","-NonInteractive","-Command",t],n],["pwsh",["-NoProfile","-NonInteractive","-Command",t],n],["cmd",["/c","chcp 65001 >nul & clip"],n]]}i(QM,"buildWindowsClipboardCandidates");async function GS(e,t,n){if(t.SSH_CONNECTION)return!1;switch(n){case"win32":{let r=QM(e);for(let[o,s,a]of r)try{if(await ku(o,s,a))return!0}catch{}return!1}case"darwin":return ku("pbcopy",[],e);case"linux":{let r=[["wl-copy",[]],["xclip",["-selection","clipboard"]],["xsel",["--clipboard","--input"]]];for(let[o,s]of r)try{if(await ku(o,s,e))return!0}catch{}return!1}default:return!1}}i(GS,"tryNativeClipboard");async function JM(e,t){if(!t.TMUX)return!1;let n=t.LC_TERMINAL==="iTerm2"?["load-buffer","-"]:["load-buffer","-w","-"];try{return await ku("tmux",n,e)}catch{return!1}}i(JM,"tryTmuxClipboard");async function Po(e,t={}){let n=t.env??US.env,r=t.platform??US.platform,o=e.trimEnd(),s=qM(o,n);if(!o)throw new Error("Nothing to copy.");if(jS(n,r))try{if(await GS(o,n,r))return{path:"native"}}catch{}if(await JM(o,n))return{path:"tmux-buffer"};if(t.terminalWrite?.(s))return{path:"osc52"};if(!jS(n,r))try{if(await GS(o,n,r))return{path:"native"}}catch{}throw new Error("Unable to access any clipboard path.")}i(Po,"copyTextToClipboard");var up={name:"copy",description:"Copy last assistant message to clipboard",usage:"/copy",handler:i(async(e,t)=>{let n=Ba(t.messages);if(!n){console.log(Sn.yellow(`
45
- No assistant message found to copy.`)),console.log(Sn.dim("The assistant needs to respond first before you can copy its message."));return}try{await Po(n);let r=n.length>50?n.slice(0,50)+"...":n;console.log(Sn.green(`
46
- Copied to clipboard!`)),console.log(Sn.dim(`Preview: ${r}`))}catch(r){let o=r instanceof Error?r.message:String(r);console.log(Sn.red(`
47
- Failed to copy to clipboard: ${o}`)),console.log(Sn.dim("You may need to check clipboard permissions or manually copy the message."))}},"handler"),detailedHelp:i(()=>{console.log(Sn.bold(`
48
- /copy - Copy Last Assistant Message
49
- `)),console.log("Usage:"),console.log(Sn.cyan(" /copy")+` - Copy the last assistant message to clipboard
50
- `),console.log("Description:"),console.log(" This command copies the most recent assistant response to your system clipboard."),console.log(` Useful for quickly sharing or saving AI responses.
51
- `),console.log("Examples:"),console.log(Sn.dim(" User: Explain how async/await works")),console.log(Sn.dim(" AI: [responds with explanation]")),console.log(Sn.cyan(" /copy")+Sn.dim(` - Copies the explanation to clipboard
52
- `)),console.log("Notes:"),console.log(" - Only copies assistant messages, not user messages"),console.log(" - Works with both plain text and formatted responses"),console.log(" - Requires clipboard permissions on some systems")},"detailedHelp")};import Kt from"chalk";var dp={name:"new",description:"Start a new conversation session",usage:"/new",handler:i(async(e,t,n)=>{if(t.messages.length===0){console.log(Kt.yellow(`
53
- Current session is already empty.`)),console.log(Kt.dim("You can start a new conversation directly."));return}if(n.confirm&&!await n.confirm("Start a new session? This will clear the current conversation history.")){console.log(Kt.dim(`
54
- Cancelled. Current session preserved.`));return}try{await n.saveSession(),console.log(Kt.dim(`
55
- [Previous session saved]`))}catch{console.log(Kt.yellow(`
56
- [Warning: Failed to save previous session]`))}n.startNewSession?.(),t.messages=[],n.clearHistory(),console.log(Kt.green(`
57
- \u2713 Started new session`)),console.log(Kt.dim("Conversation history cleared. Ready for a fresh start!"))},"handler"),detailedHelp:i(()=>{console.log(Kt.bold(`
58
- /new - Start New Session
59
- `)),console.log("Usage:"),console.log(Kt.cyan(" /new")+` - Clear current session and start fresh
60
- `),console.log("Description:"),console.log(" This command clears the current conversation history and starts a new session."),console.log(" It automatically saves the previous session before clearing."),console.log(` Useful for switching contexts or starting a new topic.
61
- `),console.log("Examples:"),console.log(Kt.dim(" User: Help me refactor the authentication module")),console.log(Kt.dim(" AI: [provides refactoring help]")),console.log(Kt.cyan(" /new")),console.log(Kt.dim(" \u2713 Started new session")),console.log(Kt.dim(" User: Now I need help with database optimization")),console.log(Kt.dim(` AI: [provides database help]
62
- `)),console.log("Notes:"),console.log(" \u2022 Automatically saves previous session before clearing"),console.log(" \u2022 Prompts for confirmation if there are messages in the current session"),console.log(" \u2022 Use /load to resume a previous session"),console.log(" \u2022 Use /sessions to see all saved sessions")},"detailedHelp")};function Eu(e){let t=e.match(/\r\n|\r|\n/g);return t?t.length:0}i(Eu,"getPastedTextRefNumLines");function ZM(e,t){return t===0?`[Pasted text #${e}]`:`[Pasted text #${e} +${t} lines]`}i(ZM,"formatPastedTextRef");function eA(e,t){return`[...Truncated text #${e} +${t} lines...]`}i(eA,"formatTruncatedTextRef");var tA=/\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;function nA(e){let t=[],n=new RegExp(tA.source,"g");for(let r of e.matchAll(n)){let o=Number.parseInt(r[2]??"0",10);!Number.isFinite(o)||o<=0||t.push({id:o,kind:r[1],match:r[0],index:r.index??0})}return t}i(nA,"parseReferences");function rA(e,t){let n=nA(e);if(n.length===0)return e;let r=i(s=>t instanceof Map?t.get(s):t[s],"getContent"),o=e;for(let s=n.length-1;s>=0;s--){let a=n[s];if(a.kind==="Image")continue;let c=r(a.id);!c||c.type!=="text"||(o=o.slice(0,a.index)+c.content+o.slice(a.index+a.match.length))}return o}i(rA,"expandPastedTextRefs");var oA=/\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]$/,iA=/^\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/;function sA(e,t){if(t>=e.length)return!0;let n=e[t];return!n||/\s/.test(n)}i(sA,"isAtWordBoundaryAfter");function aA(e,t){if(t===0)return!0;let n=e[t-1];return!n||/\s/.test(n)}i(aA,"isAtWordBoundaryBefore");function Mu(e,t){if(t<=0||!sA(e,t))return null;let r=e.slice(0,t).match(oA);if(!r)return null;let o=t-r[0].length,s=Number.parseInt(r[2]??"0",10);return!Number.isFinite(s)||s<=0?null:{start:o,end:t,id:s,kind:r[1]}}i(Mu,"findPlaceholderBeforeCursor");function Au(e,t){if(t>=e.length||!aA(e,t))return null;let r=e.slice(t).match(iA);if(!r)return null;let o=Number.parseInt(r[2]??"0",10);return!Number.isFinite(o)||o<=0?null:{start:t,end:t+r[0].length,id:o,kind:r[1]}}i(Au,"findPlaceholderAfterCursor");function VS(e){return e.length>800||Eu(e)>2}i(VS,"shouldReplacePasteWithPlaceholder");function zS(e,t){if(e.length<=1e4)return{truncatedText:e,placeholderContent:""};let n=Math.floor(1e3/2),r=Math.floor(1e3/2),o=e.slice(0,n),s=e.slice(-r),a=e.slice(n,-r),c=Eu(a),l=eA(t,c);return{truncatedText:o+l+s,placeholderContent:a}}i(zS,"maybeTruncateLongInput");var fp=class{static{i(this,"PasteStore")}contents=new Map;nextId=1;registerText(t){let n=this.nextId++,r=Eu(t);return this.contents.set(n,{id:n,type:"text",content:t}),{id:n,placeholder:ZM(n,r),numLines:r}}registerTruncatedText(t){let n=this.nextId++,r=Eu(t);return this.contents.set(n,{id:n,type:"text",content:t}),{id:n,numLines:r}}adopt(t){this.contents.set(t.id,t),t.id>=this.nextId&&(this.nextId=t.id+1)}peekNextId(){return this.nextId}get(t){return this.contents.get(t)}expand(t){return rA(t,this.contents)}snapshot(){return new Map(this.contents)}restore(t){this.contents.clear();for(let[n,r]of t)this.contents.set(n,r);for(let n of t.keys())n>=this.nextId&&(this.nextId=n+1)}reset(){this.contents.clear(),this.nextId=1}size(){return this.contents.size}export(){return Array.from(this.contents.values())}},Ru=null;function XS(){return Ru===null&&(Ru=new fp),Ru}i(XS,"getOrCreateModulePasteStore");function _u(){return Ru??void 0}i(_u,"getActivePasteStore");import{createHash as cA}from"node:crypto";import{mkdir as lA,readdir as uA,readFile as dA,stat as fA,unlink as mA,writeFile as pA}from"node:fs/promises";import*as mp from"node:path";var gA="paste-cache",hA=720*60*60*1e3;function pp(){return jn(gA)}i(pp,"getPasteCacheDir");function YS(e){return mp.join(pp(),`${e}.txt`)}i(YS,"getPastePath");function qS(e){return cA("sha256").update(e).digest("hex").slice(0,16)}i(qS,"hashPastedText");async function QS(e,t){try{let n=pp();return await lA(n,{recursive:!0}),await pA(YS(e),t,{encoding:"utf8",mode:384}),!0}catch{return!1}}i(QS,"storePastedText");async function Pu(e){try{return await dA(YS(e),{encoding:"utf8"})}catch{return null}}i(Pu,"retrievePastedText");async function JS(e=hA){let t=pp(),n=Date.now()-e,r=0,o=0,s;try{s=await uA(t)}catch{return{scanned:r,removed:o}}for(let a of s){if(!a.endsWith(".txt"))continue;r+=1;let c=mp.join(t,a);try{(await fA(c)).mtimeMs<n&&(await mA(c),o+=1)}catch{}}return{scanned:r,removed:o}}i(JS,"cleanupOldPastes");import*as Sp from"path";import*as ZS from"os";function yA(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}i(yA,"escapeRegExp");function xA(e,t){if(!e)return;let n=e.trim();if(!n.startsWith("/"))return;let r=new RegExp(`^/${yA(t)}(?:\\s+)?`,"i"),o=n.replace(r,"").trim();return o.length>0?o:void 0}i(xA,"deriveArgumentHintFromUsage");function gp(e,t="builtin"){return{...e,source:e.source??t,userInvocable:e.userInvocable??!0,disableModelInvocation:e.disableModelInvocation??!1,argumentHint:e.argumentHint??xA(e.usage,e.name)}}i(gp,"toCommandDefinition");function hp(e){for(let t of yp)try{let n=gp(t,"builtin");e.register(n)}catch(n){console.error(`Failed to register command "${t.name}":`,n)}}i(hp,"registerBuiltinCommands");import*as Sr from"fs";import*as $o from"path";function wA(e){if(Array.isArray(e))return e.map(t=>String(t).trim()).filter(t=>t.length>0);if(typeof e=="string")return e.split(",").map(t=>t.trim()).filter(t=>t.length>0)}i(wA,"normalizeAliases");function SA(e){if(e==="critical"||e==="high"||e==="medium"||e==="low")return e}i(SA,"normalizePriority");function TA(e){return{disableModelInvocation:e["disable-model-invocation"]===!0,userInvocable:e["user-invocable"]!==!1,allowedTools:jy(e["allowed-tools"]),context:e.context==="fork"?"fork":void 0,agent:typeof e.agent=="string"?e.agent:void 0,argumentHint:typeof e["argument-hint"]=="string"?e["argument-hint"]:void 0,model:typeof e.model=="string"?e.model:void 0,hooks:Gy(e.hooks),frontmatter:e}}i(TA,"buildExecutionMetadata");function CA(e,t){try{let n=Sr.readFileSync(e,"utf-8"),[r,o]=Uy(n),s=r??{},a=$o.basename(e,".md"),c=typeof s.name=="string"&&s.name.trim()?s.name.trim():a;if(!c||o.trim().length===0)return;let l=typeof s.description=="string"&&s.description.trim()?s.description.trim():`Custom command from ${t} level`;return{name:c,description:l,aliases:wA(s.aliases),priority:SA(s.priority),content:o.trim(),location:t,path:e,frontmatter:s,execution:TA(s)}}catch(n){console.error(`Error parsing command file ${e}:`,n);return}}i(CA,"parseCommandFile");function xp(e){let t=[],n=new Set;for(let r=0;r<e.length;r++){let o=e[r],s=typeof o=="string"?o:o.path,a=typeof o=="string"?r===0?"user":"project":o.location;if(!Sr.existsSync(s))continue;let c=$o.resolve(s);try{c=Sr.realpathSync.native?.(s)??Sr.realpathSync(s)}catch{c=$o.resolve(s)}if(!n.has(c)){n.add(c);try{let l=Sr.readdirSync(s);for(let u of l){if(!u.endsWith(".md"))continue;let m=$o.join(s,u),p=CA(m,a);p&&t.push(p)}}catch(l){console.error(`Error scanning directory ${s}:`,l)}}}return t}i(xp,"discoverCommands");function wp(e,t){for(let n of e)try{t.register({name:n.name,aliases:n.aliases,description:n.description,source:"extension",priority:n.priority,location:n.location,path:n.path,userInvocable:n.execution.userInvocable,disableModelInvocation:n.execution.disableModelInvocation,allowedTools:n.execution.allowedTools,context:n.execution.context,agent:n.execution.agent,argumentHint:n.execution.argumentHint,model:n.execution.model,hooks:n.execution.hooks,frontmatter:n.frontmatter,handler:i(async()=>({success:!0,invocation:{...n.execution,prompt:n.content,source:"prompt",displayName:n.name,path:n.path}}),"handler")})}catch(r){console.error(`Error registering command ${n.name}:`,r)}}i(wp,"registerDiscoveredCommands");function eT(e,t){hp(e);try{let n=ZS.homedir(),r=t??process.cwd(),o=xp([{path:Sp.join(r,".kodax","commands"),location:"project"},{path:jn("commands"),location:"user"},{path:Sp.join(n,".agents","commands"),location:"user"}]);wp(o,e)}catch(n){console.error("Failed to discover commands:",n)}}i(eT,"registerAllCommands");import{execFile as bA}from"child_process";import vA from"fs";import Tp from"path";import{promisify as IA}from"util";var kA=IA(bA);function Ur(e){if(!(!e||!e.trim()))return Tp.resolve(e).replace(/\\/g,"/")}i(Ur,"normalizePath");async function Wa(e,t){try{let{stdout:n}=await kA("git",t,{cwd:e,windowsHide:!0,maxBuffer:1048576}),r=n.trim();return r||void 0}catch{return}}i(Wa,"gitStdout");function RA(e){let t=Ur(e);if(t)return Tp.posix.basename(t)===".git"?Tp.posix.dirname(t):t}i(RA,"deriveCanonicalRepoRoot");async function os(e={}){let t=Ur(e.cwd??process.cwd())??process.cwd().replace(/\\/g,"/"),n=Ur(await Wa(t,["rev-parse","--show-toplevel"])),r=await Wa(n??t,["rev-parse","--path-format=absolute","--git-common-dir"])??await Wa(n??t,["rev-parse","--git-common-dir"]),o=await Wa(n??t,["branch","--show-current"])??await Wa(n??t,["rev-parse","--abbrev-ref","HEAD"]);return{canonicalRepoRoot:RA(r)??n,workspaceRoot:n,executionCwd:t,branch:o&&o!=="HEAD"?o:void 0,workspaceKind:e.workspaceKind??"detected"}}i(os,"inspectWorkspaceRuntime");function $u(e,t){return!e?.canonicalRepoRoot||!t?.canonicalRepoRoot?!1:Ur(e.canonicalRepoRoot)===Ur(t.canonicalRepoRoot)}i($u,"isSameCanonicalRepo");function tT(e){return!!(e?.workspaceRoot&&vA.existsSync(e.workspaceRoot))}i(tT,"workspaceExists");function Ua(e){let t=Ur(e.runtimeInfo?.workspaceRoot??e.gitRoot),n=Ur(e.runtimeInfo?.executionCwd??t),r=Ur(e.runtimeInfo?.canonicalRepoRoot??t);if(!(!t&&!n&&!r))return{canonicalRepoRoot:r,workspaceRoot:t,executionCwd:n,branch:e.runtimeInfo?.branch,workspaceKind:e.runtimeInfo?.workspaceKind??"detected"}}i(Ua,"resolveSessionRuntimeInfo");function Tn(e){if(!e?.workspaceRoot)return"No git workspace detected";let t=e.branch?` @ ${e.branch}`:"",n=e.workspaceKind??"detected";return`${e.workspaceRoot}${t} [${n}]`}i(Tn,"formatWorkspaceTruth");function EA(e){return{global:e.filter(t=>t.scope==="global").length,directory:e.filter(t=>t.scope==="directory").length,project:e.filter(t=>t.scope==="project").length}}i(EA,"summarizeAgentsFiles");function MA(e,t,n){if(!Number.isFinite(t)||t<=0||n<=0)return{...e,enabled:!0};let r=t/n*100,o=Math.max(1,Math.ceil(r)-1);return{...e,enabled:!0,triggerPercent:Math.min(e.triggerPercent,o)}}i(MA,"createManualCompactionConfig");function Cp(e){e.runtimeInfo?.workspaceRoot?console.log(d.dim(` Workspace unchanged: ${Tn(e.runtimeInfo)}`)):console.log(d.dim(" Workspace unchanged."))}i(Cp,"printWorkspaceUnchangedNote");var yp=[{name:"help",aliases:["h","?"],description:"Show all available commands",usage:"/help [command]",handler:i(async e=>{e.length>0?FA(e[0]):HA()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
63
- /help - Show Command Help
64
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /help ")+"Show all available commands"),console.log(d.dim(" /help <command> ")+"Show detailed help for a specific command"),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /help ")+"# List all commands"),console.log(d.dim(" /help mode ")+"# Detailed help for /mode"),console.log()},"detailedHelp")},{name:"exit",aliases:["quit","q","bye"],description:"Exit interactive mode",handler:i(async(e,t,n)=>{await n.saveSession(),console.log(d.green(`
65
- Session saved. Goodbye!`)),await n.exit()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
66
- /exit - Exit Interactive Mode
67
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /exit ")+"Save session and exit"),console.log(d.dim(" /quit, /q, /bye ")+"Aliases for /exit"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Saves the current conversation session and exits interactive mode.")),console.log(d.dim(" Sessions can be resumed later with /load or CLI -c option.")),console.log(d.dim(" Exiting never removes or mutates the current workspace.")),console.log()},"detailedHelp")},{name:"clear",description:"Clear conversation history",handler:i(async(e,t,n)=>{t.messages=[],t.contextTokenSnapshot=void 0,n.clearHistory(),console.log(d.yellow(`
68
- [Conversation cleared]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
69
- /clear - Clear Conversation History
70
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /clear ")+"Clear all messages in current session"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Removes all messages from the current conversation context.")),console.log(d.dim(" Useful for starting fresh while keeping the session.")),console.log(),console.log(d.yellow(" Warning: This action cannot be undone!")),console.log()},"detailedHelp")},{name:"cost",description:"Show session cost report",usage:"/cost",handler:i(async(e,t,n)=>{let r=n.getCostReport?.();if(!r){console.log(d.dim(`
71
- [No cost data available yet]`));return}console.log(d.cyan(`
72
- `+r))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
73
- /cost - Session Cost Report
74
- `)),console.log(d.bold("Description:")),console.log(d.dim(" Shows token usage and estimated cost for the current session,")),console.log(d.dim(" broken down by provider and AMA role.")),console.log()},"detailedHelp")},{name:"paste",description:"Inspect pasted text stored in the input buffer",usage:"/paste show <id> | /paste list",argumentHint:"show <id> | list",handler:i(async e=>{let t=e[0]?.toLowerCase();if(!t||t==="help"){console.log(d.cyan(`
75
- /paste - Inspect stored paste contents`)),console.log(d.dim(" /paste list - Show all pasted text ids in this session")),console.log(d.dim(" /paste show <id> - Print the full content of paste #<id>")),console.log();return}let n=_u();if(!n){console.log(d.yellow(`
76
- [No paste registry active]`)),console.log(d.dim(" The REPL composer is not mounted, or no paste has been captured yet."));return}if(t==="list"){let r=n.export();if(r.length===0){console.log(d.dim(`
77
- [No pasted content in this session yet]`));return}console.log(d.bold(`
78
- Pasted content in this session:
79
- `));for(let o of r){let s=o.content?.length??0,a=o.contentHash?` (hash ${o.contentHash.slice(0,8)})`:"";console.log(` ${d.cyan(`#${o.id}`)} ${o.type} ${s} chars${a}`)}console.log();return}if(t==="show"){let r=e[1],o=r?Number.parseInt(r,10):NaN;if(!Number.isFinite(o)||o<=0){console.log(d.yellow(`
80
- Usage: /paste show <id>`));return}let s=n.get(o);if(!s){console.log(d.dim(`
81
- [No paste registered with id #${o}]`));return}let a=s.content??"";if(!a&&s.contentHash){let c=await Pu(s.contentHash);c&&(a=c)}if(!a){console.log(d.yellow(`
82
- [Paste #${o} has no stored content (hash ${s.contentHash??"n/a"})]`));return}console.log(d.bold(`
83
- Pasted text #${o} (${a.length} chars):
84
- `)),console.log(a),console.log();return}console.log(d.yellow(`
85
- [Unknown /paste subcommand: ${t}]`)),console.log(d.dim(" Try /paste show <id> or /paste list"))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
86
- /paste - Inspect stored paste contents
87
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /paste list - Show all pasted text ids in this session")),console.log(d.dim(" /paste show <id> - Print the full content of paste #<id>")),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" When you paste more than ~800 chars into the input bar, KodaX")),console.log(d.dim(" replaces the pasted text with a `[Pasted text #N +K lines]` anchor")),console.log(d.dim(" to keep the UI responsive. The full content is preserved and sent")),console.log(d.dim(" to the LLM on submit. Use this command to see what was captured.")),console.log()},"detailedHelp")},{name:"compact",description:"Manually trigger context compaction",usage:"/compact [instructions]",handler:i(async(e,t,n,r)=>{try{let o=await Ml(t.gitRoot),s=r.provider,a=fo(s);if(!a){console.log(d.red(`
88
- [Provider not found: ${s}]`));return}let c=e.length>0?e.join(" "):void 0,l=o.contextWindow??a.getEffectiveContextWindow?.(r.model)??a.getContextWindow?.()??2e5,u=t.contextTokenSnapshot?.currentTokens??mo(t.messages),m=MA(o,u,l);console.log(d.dim(`
89
- [Compacting conversation...]`)),n.startCompacting?.();try{let p=await Zy(t.messages,m,a,l,c,void 0,u,ix,sx);if(!p.compacted){console.log(d.green(`
90
- [No compaction needed]`)),console.log(d.dim(`Current token usage: ${p.tokensBefore.toLocaleString()}
91
- `));return}t.messages=p.messages,t.contextTokenSnapshot={currentTokens:p.tokensAfter,baselineEstimatedTokens:p.tokensAfter,source:"estimate"},n.onCompactStats?.({tokensBefore:p.tokensBefore,tokensAfter:p.tokensAfter}),n.clearHistory?.(),await n.saveSession(),console.log(d.green(`
92
- [Compaction complete: ${Math.round(p.tokensBefore/1e3)}k -> ${Math.round(p.tokensAfter/1e3)}k tokens, ${Math.round((1-p.tokensAfter/p.tokensBefore)*100)}% reduced]`)),console.log()}finally{n.stopCompacting?.()}}catch(o){let s=o instanceof Error?o.message:String(o);console.log(d.red(`
93
- [Compaction failed: ${s}]
94
- `))}},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
95
- /compact - Manual Context Compaction
96
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /compact ")+"Compact conversation with default instructions"),console.log(d.dim(" /compact <text> ")+"Compact with custom instructions for the summary"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Manually triggers context compaction using LLM-generated summaries.")),console.log(d.dim(" Older messages are replaced with a structured summary, keeping recent context.")),console.log(d.dim(" /compact still works even if auto-compaction is disabled or the auto threshold is not reached.")),console.log(),console.log(d.bold("What it does:")),console.log(d.dim(" 1. Protects a recent slice of context from pruning/summary")),console.log(d.dim(" 2. Generates structured summary of older messages using LLM")),console.log(d.dim(" 3. Tracks files that were read/modified in the conversation")),console.log(d.dim(" 4. Replaces old messages with summary to save tokens")),console.log(),console.log(d.bold("Configuration:")),console.log(d.dim(" Config file: ~/.kodax/config.json")),console.log(d.dim(" Settings:")),console.log(d.dim(" - compaction.triggerPercent: Usage percentage that triggers compaction")),console.log(d.dim(" - compaction.enabled: Controls auto-compaction only; /compact always remains available")),console.log(d.dim(" - compaction.contextWindow: Optional token-window override")),console.log(d.dim(" - compaction.protectionPercent / rollingSummaryPercent / pruningThresholdTokens: Advanced tuning")),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /compact ")+"# Compact with default instructions"),console.log(d.dim(" /compact focus on auth logic ")+"# Emphasize authentication in summary"),console.log(),console.log(d.dim(" See also: /help status (shows token usage)")),console.log()},"detailedHelp")},{name:"reload",description:"Reload project rules and active extensions",handler:i(async(e,t,n,r)=>{console.log(d.cyan(`
97
- Reloading project rule files and runtime extensions...
98
- `));try{let o=await n.reloadAgentsFiles?.()??[],s=EA(o),a=fr(),c=a?is(a).loadedExtensions.length:0,l=a?is(a).failures.length:0,u=0,m=0;if(a){await a.reloadExtensions({continueOnError:!0});let p=is(a);u=c||p.loadedExtensions.length,m=Math.max(0,p.failures.length-l)}if(o.length===0&&u===0){console.log(d.yellow(`No project rule files or active extensions found.
99
- `)),console.log(d.dim(" Create AGENTS.md or CLAUDE.md in your project, or load extensions with --extension.")),console.log();return}console.log(d.green(`Rules reloaded successfully:
100
- `)),s.global>0&&console.log(d.dim(` - Global: ${s.global} file(s)`)),s.directory>0&&console.log(d.dim(` - Directory: ${s.directory} file(s)`)),s.project>0&&console.log(d.dim(` - Project: ${s.project} file(s)`)),u>0&&console.log(d.dim(` - Extensions: ${u} module(s)`)),m>0&&console.log(d.yellow(` - Failures: ${m} recorded (run /extensions for details)`)),console.log(d.dim(" Updated rules will apply to subsequent requests in this session.")),console.log();return}catch(o){console.log(d.red(`Failed to reload rules.
101
- `)),console.log(d.dim(` Error: ${o instanceof Error?o.message:String(o)}`)),console.log()}},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
102
- /reload - Reload Project Rules
103
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /reload ")+"Reload project rule files and active extensions"),console.log(),console.log(d.bold("Description:")),console.log(" Reloads project-level context rules from AGENTS.md, CLAUDE.md, and .kodax/AGENTS.md files."),console.log(" If a runtime extension host is active, it also hot-reloads loaded extensions."),console.log(),console.log(d.bold("Rule Priority:")),console.log(d.dim(" 1. Global: ")+"~/.kodax/AGENTS.md"),console.log(d.dim(" 2. Directory: ")+"AGENTS.md or CLAUDE.md from project root to current directory"),console.log(d.dim(" 3. Project: ")+".kodax/AGENTS.md at the project root"),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /reload ")+"# Reload and show loaded rules"),console.log()},"detailedHelp")},{name:"extensions",aliases:["ext"],description:"Show active extension runtime diagnostics",usage:"/extensions",handler:i(async()=>{let e=fr();if(!e){console.log(d.yellow(`
104
- [No active extension runtime]
105
- `));return}let t=is(e),n=t.tools.filter(r=>r.source.kind==="extension");if(console.log(d.bold(`
106
- Extension Runtime:
107
- `)),console.log(d.dim(` Loaded: ${t.loadedExtensions.length}`)),console.log(d.dim(` Capabilities: ${t.capabilityProviders.length}`)),console.log(d.dim(` Commands: ${t.commands.length}`)),console.log(d.dim(` Hooks: ${t.hooks.length}`)),console.log(d.dim(` Failures: ${t.failures.length}`)),console.log(d.dim(` Extension Tools: ${n.length}`)),t.defaults.activeTools!==void 0&&console.log(d.dim(` Active Tools: ${t.defaults.activeTools.join(", ")||"(none)"}`)),(t.defaults.modelSelection.provider||t.defaults.modelSelection.model)&&console.log(d.dim(` Model Override: ${t.defaults.modelSelection.provider??"(inherit)"} / ${t.defaults.modelSelection.model??"(inherit)"}`)),t.defaults.thinkingLevel&&console.log(d.dim(` Thinking: ${t.defaults.thinkingLevel}`)),console.log(),t.loadedExtensions.length>0){console.log(d.bold("Loaded Extensions:"));for(let r of t.loadedExtensions)console.log(d.dim(` - ${r.label} [${r.loadSource}] (${r.path})`));console.log()}if(t.commands.length>0){console.log(d.bold("Extension Commands:"));for(let r of t.commands){let o=r.aliases?.length?` [${r.aliases.join(", ")}]`:"";console.log(d.dim(` - /${r.name}${o} ${r.description}`))}console.log()}if(t.capabilityProviders.length>0){console.log(d.bold("Capability Providers:"));for(let r of t.capabilityProviders){let o=VA(r.metadata);console.log(d.dim(` - ${r.id} [${r.kinds.join(", ")}]${o?` ${o}`:""}`))}console.log()}if(n.length>0){console.log(d.bold("Extension Tools:"));for(let r of n){let o=r.shadowedSources.length>0?` overrides: ${r.shadowedSources.map(s=>s.label??s.id??s.kind).join(", ")}`:"";console.log(d.dim(` - ${r.name}${o}`))}console.log()}if(t.hooks.length>0){console.log(d.bold("Hook Participation:"));for(let r of t.hooks)console.log(d.dim(` - ${r.hook} [#${r.order}] ${r.source.label}`));console.log()}if(t.failures.length>0){console.log(d.bold("Recent Failures:"));for(let r of t.failures.slice(-10))console.log(d.dim(` - [${r.stage}] ${r.source.label}: ${r.target} -> ${r.message}`));console.log()}},"handler")},{name:"status",aliases:["info","ctx"],description:"Show current session status",handler:i(async(e,t,n,r)=>{await WA(t,r,e)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
108
- /status - Show Session Status
109
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /status ")+"Display current session information"),console.log(d.dim(" /status workspace ")+"Show deeper workspace/runtime details"),console.log(d.dim(" /info, /ctx ")+"Aliases for /status"),console.log(),console.log(d.bold("Displays:")),console.log(d.dim(" - Current mode (code/ask)")),console.log(d.dim(" - Session ID")),console.log(d.dim(" - Message count")),console.log(d.dim(" - Estimated token usage")),console.log(d.dim(" - Current workspace truth")),console.log(d.dim(" - Session timestamps")),console.log(d.dim(" - Repo-intelligence mode and active runtime summary")),console.log()},"detailedHelp")},{name:"mcp",description:"Show MCP server status or refresh catalogs",usage:"/mcp [status|refresh]",handler:i(async e=>{let t=fr();if(!t){console.log(d.yellow(`
110
- [No extension runtime active \u2014 MCP is not available]`));return}let r=is(t).capabilityProviders.find(c=>c.id==="mcp");if((e[0]?.toLowerCase()??"status")==="refresh"){console.log(d.dim(`
111
- Refreshing MCP catalogs...`));try{await t.refreshCapabilityProviders("mcp"),console.log(d.green("MCP catalogs refreshed."))}catch(c){console.log(d.red(`Refresh failed: ${c instanceof Error?c.message:String(c)}`))}return}if(console.log(d.cyan(`
112
- MCP Status
113
- `)),!r){console.log(d.yellow(" No MCP provider registered.")),console.log(d.dim(` Add mcpServers to ~/.kodax/config.json to enable MCP.
114
- `));return}let a=r.metadata?.servers??[];console.log(d.dim(` Servers: ${a.length}`)),console.log();for(let c of a){let l=c.status==="ready"?d.green:c.status==="error"?d.red:d.yellow;console.log(` ${d.bold(c.serverId)} ${l(c.status)} connect=${d.dim(c.connect)}`),c.cachedAt&&console.log(d.dim(` tools=${c.tools} resources=${c.resources} prompts=${c.prompts}`)),c.lastError&&console.log(d.red(` error: ${c.lastError}`))}console.log()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
115
- /mcp - MCP Server Management
116
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /mcp ")+"Show MCP server status"),console.log(d.dim(" /mcp status ")+"Same as /mcp"),console.log(d.dim(" /mcp refresh ")+"Force-refresh all MCP server catalogs"),console.log()},"detailedHelp")},{name:"repointel",aliases:["ri"],description:"Inspect or control the repo-intelligence premium runtime",usage:"/repointel [status|mode|trace|warm|endpoint|bin]",handler:i(async(e,t,n,r)=>{let o=e[0]?.toLowerCase()??"status";if(o==="status"){let s=await la({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace,probePremium:!0});sT(s);return}if(o==="warm"){let s=await zy({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace});BA(s);return}if(o==="mode"){if(e.length===1){console.log(d.dim(`
117
- Current repo-intelligence mode: ${d.cyan(r.repoIntelligenceMode??"auto")}`)),console.log(d.dim(`Usage: /repointel mode [auto|off|oss|premium-shared|premium-native]
118
- `));return}let s=LA(e[1]);if(!s){console.log(d.red(`
119
- [Invalid repo-intelligence mode: ${e[1]}]`)),console.log(d.dim(`Usage: /repointel mode [auto|off|oss|premium-shared|premium-native]
120
- `));return}let a=Lu({mode:s},{repoIntelligenceMode:s},n,r);Lo(`Repo intelligence mode: ${s}`,a);return}if(o==="trace"){let s=e[1]?.toLowerCase();if(!s){console.log(d.dim(`
121
- Current repo-intelligence trace: ${d.cyan(r.repoIntelligenceTrace?"on":"off")}`)),console.log(d.dim(`Usage: /repointel trace [on|off|toggle]
122
- `));return}let a=OA(s,r.repoIntelligenceTrace??!1);if(a===null){console.log(d.red(`
123
- [Invalid trace value: ${e[1]}]`)),console.log(d.dim(`Usage: /repointel trace [on|off|toggle]
124
- `));return}let c=Lu({trace:a},{repoIntelligenceTrace:a},n,r);Lo(`Repo intelligence trace: ${a?"on":"off"}`,c);return}if(o==="endpoint"){if(e.length===1){let c=await la({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace});console.log(d.dim(`
125
- Current repointel endpoint: ${d.cyan(c.endpoint)}`)),console.log(d.dim(`Usage: /repointel endpoint [http://host:port|default]
126
- `));return}let s=nT(e[1]),a=Lu({endpoint:s},{repointelEndpoint:s??void 0},n,r);Lo(`Repointel endpoint: ${s??"default"}`,a);return}if(o==="bin"){if(e.length===1){let c=await la({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace});console.log(d.dim(`
127
- Current repointel bin: ${d.cyan(c.bin)}`)),console.log(d.dim(`Usage: /repointel bin [<path-or-command>|default]
128
- `));return}let s=nT(e.slice(1).join(" ")),a=Lu({bin:s},{repointelBin:s??void 0},n,r);Lo(`Repointel bin: ${s??"default"}`,a);return}console.log(d.red(`
129
- [Unknown /repointel subcommand: ${e[0]}]`)),console.log(d.dim(`Usage: /repointel [status|mode|trace|warm|endpoint|bin]
130
- `))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
131
- /repointel - Repo-Intelligence Runtime Control
132
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /repointel ")+"Show current repo-intelligence and premium runtime status"),console.log(d.dim(" /repointel status ")+"Probe the local premium frontdoor and print detailed status"),console.log(d.dim(" /repointel mode auto ")+"Prefer premium-native when available, otherwise fall back to OSS"),console.log(d.dim(" /repointel mode off ")+"Strictly disable repo-intelligence working tools and auto lane for this session"),console.log(d.dim(" /repointel mode oss ")+"Force the OSS baseline only"),console.log(d.dim(" /repointel mode premium-shared ")+"Use premium without KodaX native auto lane"),console.log(d.dim(" /repointel mode premium-native ")+"Use the KodaX flagship premium path"),console.log(d.dim(" /repointel trace on|off|toggle ")+"Toggle repo-intelligence trace output"),console.log(d.dim(" /repointel endpoint http://127.0.0.1:47891")+"Override the local premium daemon endpoint"),console.log(d.dim(" /repointel endpoint default ")+"Clear the endpoint override and use the default"),console.log(d.dim(" /repointel bin repointel ")+"Use a PATH-visible repointel command"),console.log(d.dim(" /repointel bin <path> ")+"Use an explicit repointel launcher path"),console.log(d.dim(" /repointel bin default ")+"Clear the bin override and use the default command"),console.log(d.dim(" /repointel warm ")+"Try to start or warm the local premium daemon"),console.log(),console.log(d.bold("Notes:")),console.log(d.dim(" - /status now includes a compact repo-intelligence summary.")),console.log(d.dim(" - /repointel warm is operational: it can warm the premium runtime even when your current mode is oss/off.")),console.log(d.dim(" - If the local service cannot be started, KodaX will continue with the OSS baseline and this command will explain why.")),console.log()},"detailedHelp")},{name:"mode",description:"Show or switch permission mode (plan/accept-edits/auto)",usage:"/mode [plan|accept-edits|auto]",handler:i(async(e,t,n,r)=>{if(e.length===0){let s=qn(r.permissionMode,"accept-edits")??"accept-edits";console.log(d.dim(`
133
- Current mode: ${d.cyan(s)}`)),console.log(d.dim("Usage: /mode [plan|accept-edits|auto]"));return}let o=e[0];Ma.includes(o)?(r.permissionMode=o,n.setPermissionMode?.(o),Fa(o),console.log(d.cyan(`
134
- [Switched to ${o} mode] (saved)`))):console.log(d.red(`
135
- [Unknown mode: ${e[0]}. Use: plan | accept-edits | auto]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
136
- /mode - Switch Permission Mode
137
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /mode ")+"Show current permission mode"),console.log(d.dim(" /mode plan ")+"Read-only: blocks all modifications"),console.log(d.dim(" /mode accept-edits ")+"File edits auto, bash requires confirmation"),console.log(d.dim(" /mode auto ")+"LLM classifier reviews each tool call (FEATURE_092)"),console.log(d.dim(" /mode auto-in-project ")+d.gray("(deprecated alias for auto; will be removed in v0.7.38)")),console.log(),console.log(d.bold("Permission Levels:")),console.log(d.yellow(" plan ")+d.dim("- Read-only planning, no file/command modifications")),console.log(d.green(" accept-edits ")+d.dim("- File edits auto-approved, bash still requires confirmation")),console.log(d.green(" auto ")+d.dim("- LLM classifier (engine=llm, default) or rules engine reviews each call")),console.log(),console.log(d.bold("Notes:")),console.log(d.dim(" - .kodax/ directory and project-external paths always require confirmation")),console.log(d.dim(" - Mode is saved to ~/.kodax/config.json (user-level)")),console.log()},"detailedHelp")},{name:"auto-engine",description:"Show or set auto-mode classifier engine (llm | rules)",usage:"/auto-engine [llm|rules]",handler:i(async(e,t,n)=>{let r=n.getAutoModeStats?.();if(!r){console.log(d.yellow(`
138
- [auto-engine] not in auto mode \u2014 switch via /mode auto first`));return}if(e.length===0){console.log(d.dim(`
139
- Classifier engine: ${d.cyan(r.engine)}`)),console.log(d.dim(` consecutive denials: ${r.denials.consecutive}`)),console.log(d.dim(` cumulative denials: ${r.denials.cumulative}`)),console.log(d.dim(` breaker errors: ${r.breaker.timestamps.filter(s=>s>=Date.now()-600*1e3).length}`)),console.log(d.dim("Usage: /auto-engine [llm|rules]"));return}let o=e[0];if(o!=="llm"&&o!=="rules"){console.log(d.red(`
140
- [auto-engine] unknown engine "${e[0]}" \u2014 use llm or rules`));return}n.setAutoModeEngine?.(o),console.log(d.cyan(`
141
- [auto-engine] switched to ${o}`)),console.log(o==="rules"?d.dim(" every non-Tier-1 tool call now escalates to user confirmation"):d.dim(" classifier consultation resumed; threshold downgrades still apply"))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
142
- /auto-engine - Auto-Mode Classifier Engine Toggle
143
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /auto-engine ")+"Show current engine + denial/breaker counts"),console.log(d.dim(" /auto-engine llm ")+"Resume classifier consultation (default)"),console.log(d.dim(" /auto-engine rules ")+"Skip classifier; every non-Tier-1 call asks user"),console.log(),console.log(d.bold("Notes:")),console.log(d.dim(" - Only meaningful in auto mode (/mode auto).")),console.log(d.dim(" - The classifier may auto-downgrade to rules after 3 consecutive blocks,")),console.log(d.dim(" 20 cumulative blocks, or 5 errors in a 10-minute window. /auto-engine llm")),console.log(d.dim(" manually flips back to llm.")),console.log(d.dim(" - Override via env: KODAX_AUTO_MODE_ENGINE=rules.")),console.log()},"detailedHelp")},{name:"auto-denials",description:"Show auto-mode classifier denial tracker + circuit breaker stats",usage:"/auto-denials",handler:i(async(e,t,n)=>{let r=n.getAutoModeStats?.();if(!r){console.log(d.yellow(`
144
- [auto-denials] not in auto mode \u2014 switch via /mode auto first`));return}console.log(d.cyan(`
145
- [auto-mode classifier stats]`)),console.log(d.dim(` engine: ${d.cyan(r.engine)}`)),console.log(d.dim(" Denial tracker:")),console.log(d.dim(` consecutive blocks: ${r.denials.consecutive} / 3`)),console.log(d.dim(` cumulative blocks: ${r.denials.cumulative} / 20`)),console.log(d.dim(" Circuit breaker:")),console.log(d.dim(` errors in window: ${r.breaker.timestamps.filter(o=>o>=Date.now()-600*1e3).length} / 5 (10 min)`)),console.log(),r.engine==="rules"&&console.log(d.yellow(" \u21AA engine has downgraded to rules. /auto-engine llm to flip back.")),console.log()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
146
- /auto-denials - Auto-Mode Classifier Diagnostic Dump
147
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /auto-denials ")+"Print engine + tracker + breaker counters"),console.log(),console.log(d.bold("Thresholds (FEATURE_092):")),console.log(d.dim(" - 3 consecutive blocks \u2192 engine downgrade to rules")),console.log(d.dim(" - 20 cumulative blocks \u2192 engine downgrade to rules")),console.log(d.dim(" - 5 errors in 10-min \u2192 circuit breaker trips \u2192 engine downgrade")),console.log()},"detailedHelp")},{name:"save",description:"Save current session",handler:i(async(e,t,n)=>{await n.saveSession(),console.log(d.green(`
148
- [Session saved]`)),Cp(t)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
149
- /save - Save Current Session
150
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /save ")+"Save current conversation to session storage"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Manually saves the current conversation session.")),console.log(d.dim(" Sessions are auto-saved after each message, but you can")),console.log(d.dim(" use this to ensure the session is persisted.")),console.log(d.dim(" Saving updates session storage only; the current workspace stays untouched.")),console.log(),console.log(d.dim(" See also: /help load, /help sessions")),console.log()},"detailedHelp")},{name:"load",aliases:["resume"],description:"Load a session",usage:"/load <session-id>",handler:i(async(e,t,n)=>{if(e.length===0){console.log(d.red(`
151
- [Usage: /load <session-id>]`)),await n.listSessions();return}await n.loadSession(e[0])==="missing"&&console.log(d.red(`
152
- [Session not found: ${e[0]}]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
153
- /load - Load a Saved Session
154
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /load ")+"List available sessions"),console.log(d.dim(" /load <session-id> ")+"Load a specific session"),console.log(d.dim(" /resume <id> ")+"Alias for /load"),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /load ")+"# See all sessions"),console.log(d.dim(" /load 20260219_143052")+"# Load session by ID"),console.log(),console.log(d.bold("Workspace behavior:")),console.log(d.dim(" /load can resume sessions from sibling workspaces in the same canonical repo.")),console.log(d.dim(" If a saved workspace is unavailable, KodaX explains the fallback before loading.")),console.log(),console.log(d.dim(" See also: /help sessions, /help save")),console.log()},"detailedHelp")},{name:"tree",description:"Inspect or switch the current session tree",usage:"/tree [entry-id|label] | /tree label <entry-id|label> <name> | /tree unlabel <entry-id|label>",handler:i(async(e,t,n)=>{if(e.length===0){await n.printSessionTree?.();return}let r=e[0]?.trim().toLowerCase();if(r==="label"){if(e.length<3){console.log(d.red(`
155
- [Usage: /tree label <entry-id|label> <name>]`));return}await n.labelSessionBranch?.(e[1],e.slice(2).join(" "))||console.log(d.red(`
156
- [Tree entry not found: ${e[1]}]`));return}if(r==="unlabel"){if(e.length<2){console.log(d.red(`
157
- [Usage: /tree unlabel <entry-id|label>]`));return}await n.labelSessionBranch?.(e[1],void 0)||console.log(d.red(`
158
- [Tree entry not found: ${e[1]}]`));return}await n.switchSessionBranch?.(e[0])==="missing"&&console.log(d.red(`
159
- [Tree entry not found: ${e[0]}]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
160
- /tree - Inspect Session Lineage
161
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /tree ")+"Show the current session tree"),console.log(d.dim(" /tree <entry-id|label> ")+"Jump to a previous branch point"),console.log(d.dim(" /tree label <entry-id|label> <name>")+"Attach a lightweight checkpoint label"),console.log(d.dim(" /tree unlabel <entry-id|label> ")+"Clear an existing checkpoint label"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Session history is stored as a branchable tree. Use /tree to")),console.log(d.dim(" inspect the lineage, revisit an earlier branch safely, and add")),console.log(d.dim(" bookmark-style checkpoint labels without changing git state.")),console.log()},"detailedHelp")},{name:"fork",description:"Fork the current branch into a new session",usage:"/fork [entry-id|label]",handler:i(async(e,t,n)=>{await n.forkSession?.(e[0])==="failed"&&console.log(d.red(`
162
- [Unable to fork session${e[0]?` from ${e[0]}`:""}]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
163
- /fork - Export a Branch to a New Session
164
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /fork ")+"Fork from the active branch"),console.log(d.dim(" /fork <entry-id|label>")+"Fork from a selected tree node"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Creates a new session file from the selected branch so you can")),console.log(d.dim(" continue there without mutating the current session lineage.")),console.log()},"detailedHelp")},{name:"rewind",description:"Rewind the current session to a previous point",usage:"/rewind [entry-id|label]",handler:i(async(e,t,n)=>{await n.rewindSession?.(e[0])==="failed"&&console.log(d.red(`
165
- [Unable to rewind${e[0]?` to ${e[0]}`:" \u2014 no previous turn found"}]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
166
- /rewind - Rewind Session to a Previous Point
167
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /rewind ")+"Rewind to the previous user input"),console.log(d.dim(" /rewind <entry-id|label>")+"Rewind to a specific tree node"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Truncates the session after the target entry. Unlike /fork,")),console.log(d.dim(" this modifies the current session in place. The rewind event")),console.log(d.dim(" is recorded in the lineage for auditability.")),console.log(),console.log(d.yellow(" \u26A0 This is irreversible. Use /fork first to preserve a copy.")),console.log()},"detailedHelp")},{name:"sessions",aliases:["ls","list"],description:"List recent sessions",handler:i(async(e,t,n)=>{await n.listSessions()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
168
- /sessions - List Saved Sessions
169
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /sessions ")+"List all saved sessions"),console.log(d.dim(" /ls, /list ")+"Aliases for /sessions"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Shows recent conversation sessions with their IDs,")),console.log(d.dim(" message counts, titles, and workspace truth. Use /load <id> to resume.")),console.log(d.dim(" This keeps sibling worktree sessions inspectable without a persistent cockpit.")),console.log(),console.log(d.dim(" See also: /help load, /help delete")),console.log()},"detailedHelp")},{name:"history",aliases:["hist"],description:"Show conversation history",handler:i(async(e,t,n)=>{n.printHistory()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
170
- /history - Show Conversation History
171
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /history ")+"Display recent messages in current session"),console.log(d.dim(" /hist ")+"Alias for /history"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Shows the last 20 messages in the current conversation.")),console.log(d.dim(" Useful for reviewing what has been discussed.")),console.log()},"detailedHelp")},{name:"delete",aliases:["rm","del"],description:"Delete a session",usage:"/delete <session-id> or /delete all",handler:i(async(e,t,n)=>{if(e.length===0){console.log(d.red(`
172
- [Usage: /delete <session-id> or /delete all]`)),await n.listSessions?.();return}e[0]==="all"?(await n.deleteAllSessions?.(),console.log(d.green(`
173
- [All sessions deleted]`)),Cp(t)):(await n.deleteSession?.(e[0]),console.log(d.green(`
174
- [Session deleted: ${e[0]}]`)),Cp(t))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
175
- /delete - Delete Saved Sessions
176
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /delete ")+"Show usage (lists sessions)"),console.log(d.dim(" /delete <id> ")+"Delete a specific session"),console.log(d.dim(" /delete all ")+"Delete ALL sessions"),console.log(d.dim(" /rm, /del ")+"Aliases for /delete"),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /delete 20260219_143052")+" # Delete specific session"),console.log(d.dim(" /delete all ")+"# Delete all sessions"),console.log(),console.log(d.bold("Workspace behavior:")),console.log(d.dim(" Deletes saved session records only.")),console.log(d.dim(" Current workspaces and checkouts remain untouched.")),console.log(),console.log(d.yellow(" Warning: /delete all cannot be undone!")),console.log()},"detailedHelp")},{name:"model",aliases:["m"],description:"Show or switch provider/model",usage:"/model [<provider>[/<model>] | /<model>]",handler:i(async(e,t,n,r)=>{let o=om().providerModels;if(e.length===0){console.log(d.bold(`
177
- Available Providers:
178
- `));let c=rm(o);for(let l of c){let u=l.configured?d.green("[configured]"):d.red("[not configured]"),m=l.custom?d.yellow(" [custom]"):"",p=l.name===r.provider,g=p?d.cyan(" *"):"";console.log(` ${d.bold(l.name)}${g} ${u}${m}`),l.capabilityProfile.transport==="cli-bridge"&&console.log(d.yellow(` ! ${em(l.capabilityProfile)}`));let h=Ri(l.name,o),x=p?r.model:null;for(let C of h){let b=p&&(x===C||!x&&C===l.model)?d.cyan(">"):" ";console.log(` ${b} ${C}`)}console.log()}console.log(d.dim(`Current: provider=${r.provider}${r.model?`, model=${r.model}`:""}`)),console.log(d.dim("Usage:")),console.log(d.dim(" /model <provider> Switch provider")),console.log(d.dim(" /model <provider>/<model> Switch to specific model")),console.log(d.dim(` /model /<model> Switch model within current provider
179
- `));return}let s=(e[0]??"").trim();if(!s)return;if(s.startsWith("/")){let c=s.slice(1);if(!c){console.log(d.red(`
180
- [Missing model name after /]`));return}let l=Ri(r.provider,o);if(!l.includes(c)){console.log(d.red(`
181
- [Unknown model: ${c}]`)),console.log(d.dim(`Available models for ${r.provider}: ${l.join(", ")}
182
- `));return}mr({model:c}),n.switchProvider?.(r.provider,c),console.log(d.cyan(`
183
- [Switched to ${c}] (saved)`));return}if(s.includes("/")){let c=s.indexOf("/"),l=s.slice(0,c),u=s.slice(c+1);if(!u||!l){console.log(d.red(`
184
- [Invalid format. Use: /model <provider>/<model>]`));return}if(!yi(l)){console.log(d.red(`
185
- [Unknown provider: ${l}]`)),console.log(d.dim(`Available: ${xi().join(", ")}
186
- `));return}let m=Ri(l,o);if(!m.includes(u)){console.log(d.red(`
187
- [Unknown model: ${u}]`)),console.log(d.dim(`Available models for ${l}: ${m.join(", ")}
188
- `));return}mr({provider:l,model:u}),n.switchProvider?.(l,u),console.log(d.cyan(`
189
- [Switched to ${l}/${u}] (saved)`));return}let a=s;yi(a)?(mr({provider:a,model:void 0}),n.switchProvider?.(a),console.log(d.cyan(`
190
- [Switched to ${a}] (saved)`))):(console.log(d.red(`
191
- [Unknown provider: ${a}]`)),console.log(d.dim(`Available: ${xi().join(", ")}
192
- `)))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
193
- /model - Switch LLM Provider/Model
194
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /model ")+"List all providers with models"),console.log(d.dim(" /model <provider> ")+"Switch to a provider (default model)"),console.log(d.dim(" /model <provider>/<model> ")+"Switch to a specific model"),console.log(d.dim(" /model /<model> ")+"Switch model within current provider"),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /model ")+"# See available providers & models"),console.log(d.dim(" /model anthropic ")+"# Switch to Anthropic (default model)"),console.log(d.dim(" /model openai/gpt-5.4 ")+"# Switch to OpenAI GPT-5.4"),console.log(d.dim(" /model /claude-opus-4-6 ")+"# Switch to Opus within current provider"),console.log()},"detailedHelp")},{name:"provider",description:"Inspect provider semantics and policy constraints",usage:"/provider [<provider>[/<model>]]",handler:i(async(e,t,n,r)=>{let o=(e[0]??"").trim(),s=r.provider,a=r.model;if(o)if(o.includes("/")){let u=o.indexOf("/");s=o.slice(0,u).trim(),a=o.slice(u+1).trim()||void 0}else s=o,a=void 0;if(!yi(s)){console.log(d.red(`
195
- [Unknown provider: ${s}]`)),console.log(d.dim(`Available: ${xi().join(", ")}
196
- `));return}let c=px(s,a);if(!c){console.log(d.red(`
197
- [Provider details unavailable: ${s}]`)),console.log();return}let l=yx(s,a,r.reasoningMode);console.log(d.bold(`
198
- Provider Details:
199
- `)),console.log(d.dim(` Provider: ${d.cyan(c.provider)}${c.model?` / ${d.cyan(c.model)}`:""}`)),console.log(d.dim(` Source: ${gx(c.sourceKind)}`)),console.log(),console.log(d.bold("Capability Matrix:"));for(let u of hx(c))console.log(d.dim(` - ${u}`));if(console.log(),l.length>0){console.log(d.bold("Common Scenarios:"));for(let u of l){let m=u.decision.status==="block"?d.red:u.decision.status==="warn"?d.yellow:d.green;console.log(m(` - ${u.label}: ${u.decision.status.toUpperCase()}`)),console.log(d.dim(` ${u.decision.summary}`))}console.log()}},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
200
- /provider - Inspect Provider Semantics
201
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /provider ")+"Inspect the current provider/model"),console.log(d.dim(" /provider <provider> ")+"Inspect a provider using its default model"),console.log(d.dim(" /provider <provider>/<model> ")+"Inspect a specific provider/model pair"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Shows the provider capability matrix and common 029 policy outcomes.")),console.log(d.dim(" Use this to understand why long-running, harness, or evidence-heavy flows may warn or block.")),console.log()},"detailedHelp")},{name:"thinking",aliases:["think","t"],description:"Show or change reasoning mode (compat alias)",usage:"/thinking [on|off|auto|quick|balanced|deep]",handler:i(async(e,t,n,r)=>{if(e.length===0){let s=ho(r.provider,r.model),a=r.thinking?d.green("ON"):d.dim("OFF");console.log(d.dim(`
202
- Thinking: ${a}`)),console.log(d.dim(`Reasoning mode: ${d.cyan(r.reasoningMode)}`)),console.log(d.dim(`Effective control: ${d.cyan(tm(s))}`)),console.log(d.dim(`Actual execution: ${nm(r.reasoningMode,s)}`)),console.log(d.dim(`Usage: /thinking on|off|auto|quick|balanced|deep
203
- `));return}let o=e[0].toLowerCase();if(o==="on"||o==="off"||uo.includes(o)){let s=o==="on"?"auto":o==="off"?"off":o,a=rT(s,n,r);Lo(`Reasoning mode: ${s}`,a);return}console.log(d.red(`
204
- [Invalid value: ${e[0]}]`)),console.log(d.dim(`Usage: /thinking on|off|auto|quick|balanced|deep
205
- `))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
206
- /thinking - Legacy Alias for Reasoning Mode
207
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /thinking ")+"Show current reasoning status"),console.log(d.dim(" /thinking on ")+"Map to /reasoning auto"),console.log(d.dim(" /thinking off ")+"Map to /reasoning off"),console.log(d.dim(" /thinking auto ")+"Set reasoning mode to auto"),console.log(d.dim(" /thinking quick ")+"Set reasoning mode to quick"),console.log(d.dim(" /thinking balanced ")+"Set reasoning mode to balanced"),console.log(d.dim(" /thinking deep ")+"Set reasoning mode to deep"),console.log(d.dim(" /t ")+"Alias for /thinking"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Compatibility command for the new unified reasoning modes.")),console.log(d.dim(" Use /reasoning for the primary interface.")),console.log()},"detailedHelp")},{name:"reasoning",aliases:["reason"],description:"Show or set reasoning mode",usage:"/reasoning [off|auto|quick|balanced|deep]",handler:i(async(e,t,n,r)=>{if(e.length===0){let a=ho(r.provider,r.model);console.log(d.dim(`
208
- Reasoning mode: ${d.cyan(r.reasoningMode)}`)),console.log(d.dim(`Thinking compatibility: ${r.thinking?d.green("ON"):d.dim("OFF")}`)),console.log(d.dim(`Effective control: ${d.cyan(tm(a))}`)),console.log(d.dim(`Actual execution: ${nm(r.reasoningMode,a)}`)),console.log(d.dim(`Usage: /reasoning off|auto|quick|balanced|deep
209
- `));return}let o=e[0].toLowerCase();if(!uo.includes(o)){console.log(d.red(`
210
- [Invalid reasoning mode: ${e[0]}]`)),console.log(d.dim(`Usage: /reasoning off|auto|quick|balanced|deep
211
- `));return}let s=rT(o,n,r);Lo(`Reasoning mode: ${o}`,s)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
212
- /reasoning - Set Reasoning Mode
213
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /reasoning ")+"Show current reasoning mode"),console.log(d.dim(" /reasoning off ")+"Disable reasoning"),console.log(d.dim(" /reasoning auto ")+"Use semantic routing + adaptive depth"),console.log(d.dim(" /reasoning quick ")+"Low-depth reasoning"),console.log(d.dim(" /reasoning balanced ")+"Medium-depth reasoning"),console.log(d.dim(" /reasoning deep ")+"High-depth reasoning"),console.log(d.dim(" /reasoning:auto ")+"Inline form, equivalent to /reasoning auto"),console.log(d.dim(" /reason ")+"Alias for /reasoning"),console.log()},"detailedHelp")},{name:"agent-mode",aliases:["am"],description:"Show or set agent mode",usage:"/agent-mode [ama|sa|toggle]",handler:i(async(e,t,n,r)=>{if(e.length===0){console.log(d.dim(`
214
- Agent mode: ${d.cyan(r.agentMode.toUpperCase())}`)),console.log(d.dim(`Usage: /agent-mode [ama|sa|toggle]
215
- `));return}let o=e[0]?.toLowerCase(),s=o==="toggle"?r.agentMode==="ama"?"sa":"ama":o==="ama"||o==="sa"?o:void 0;if(!s){console.log(d.red(`
216
- [Invalid agent mode: ${e[0]}]`)),console.log(d.dim(`Usage: /agent-mode [ama|sa|toggle]
217
- `));return}let a=DA(s,n,r);Lo(`Agent mode: ${s.toUpperCase()}`,a)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
218
- /agent-mode - Adaptive Multi-Agent Mode Control
219
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /agent-mode ")+"Show current agent mode"),console.log(d.dim(" /agent-mode ama ")+"Enable adaptive multi-agent mode"),console.log(d.dim(" /agent-mode sa ")+"Force single-agent execution"),console.log(d.dim(" /agent-mode toggle ")+"Switch between AMA and SA"),console.log(d.dim(" /am ")+"Alias for /agent-mode"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" AMA keeps adaptive multi-agent harness selection enabled.")),console.log(d.dim(" SA keeps routing and task artifacts, but forces single-agent execution to save tokens.")),console.log()},"detailedHelp")},{name:"auto",aliases:["a"],description:"Quick switch to auto mode",handler:i(async(e,t,n,r)=>{r.permissionMode="auto",n.setPermissionMode?.("auto"),Fa("auto"),console.log(d.cyan(`
220
- [Switched to auto mode] (saved)`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
221
- /auto - Quick Switch to Auto Mode
222
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /auto ")+"Switch to auto mode"),console.log(d.dim(" /a ")+"Alias for /auto"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Equivalent to /mode auto.")),console.log(d.dim(" Auto-mode classifier evaluates each non-Tier-1 tool call;")),console.log(d.dim(" benign actions auto-approve, risky ones escalate to user confirm.")),console.log(),console.log(d.dim(" See also: /help mode, /auto-engine, /auto-denials")),console.log()},"detailedHelp")},{name:"skills",description:"(Deprecated) Use /skill instead",usage:"/skill",handler:i(async(e,t)=>{console.log(d.dim(`
223
- [/skills is deprecated. Use /skill instead]`)),await iT(e,t)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
224
- /skills - Deprecated
225
- `)),console.log(d.yellow("This command is deprecated. Use /skill instead.")),console.log(),console.log(d.dim(" /skill ")+"List all available skills"),console.log(d.dim(" /skill:<name> ")+"Invoke a skill"),console.log()},"detailedHelp")},{name:"skill",description:"Skill namespace - invoke skills with /skill:name",usage:"/skill[:name] [args]",handler:i(async(e,t,n,r)=>{await iT(e,t)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
226
- /skill - Skill Namespace
227
- `)),console.log(d.bold("Usage:")),console.log(d.dim(" /skill ")+"List all available skills"),console.log(d.dim(" /skill:<name> [args] ")+"Invoke a skill by name"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" This is the pi-mono style skill invocation format.")),console.log(d.dim(" Skills can also be triggered by natural language - just ask!")),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /skill ")+"# List all skills"),console.log(d.dim(" /skill:code-review src/ ")+"# Invoke code-review skill"),console.log(d.dim(" /skill:tdd auth ")+"# Invoke TDD skill"),console.log()},"detailedHelp")},up,dp],AA={General:["help","copy","exit","clear","compact","reload","extensions","status"],Permission:["mode","auto"],Session:["new","save","load","sessions","history","delete"],Settings:["model","provider","thinking","reasoning","agent-mode","plan","repointel"],Skills:["skill"]};function _A(e){let t=Ou();return e.map(n=>t.get(n)).filter(n=>n!==void 0).filter(n=>n.userInvocable!==!1)}i(_A,"getCommandsForCategory");function PA(e){return e!=="off"}i(PA,"reasoningModeToLegacyThinking");var $A=["auto","off","oss","premium-shared","premium-native"];function LA(e){return e&&$A.includes(e)?e:null}i(LA,"normalizeRepoIntelligenceMode");function nT(e){let t=e?.trim();return!t||t==="default"||t==="reset"||t==="clear"?null:t}i(nT,"normalizeRuntimeOverride");function OA(e,t){return e?e==="toggle"?!t:e==="on"||e==="true"||e==="1"?!0:e==="off"||e==="false"||e==="0"?!1:null:null}i(OA,"resolveToggleFlag");function bp(e){try{return mr(e),{saved:!0}}catch(t){return{saved:!1,error:t instanceof Error?t:new Error(String(t))}}}i(bp,"persistUserConfig");function Lo(e,t){if(t.saved){console.log(d.cyan(`
228
- [${e}] (saved)`));return}console.log(d.yellow(`
229
- [${e}]`)),console.log(d.red(`[Config save failed: ${t.error.message}]`))}i(Lo,"printPersistedCommandStatus");function rT(e,t,n){let r=PA(e),o=bp({reasoningMode:e,thinking:r});return t.setReasoningMode?t.setReasoningMode(e):(n.reasoningMode=e,n.thinking=r),o}i(rT,"applyReasoningMode");function DA(e,t,n){let r=bp({agentMode:e});return t.setAgentMode?t.setAgentMode(e):n.agentMode=e,r}i(DA,"applyAgentMode");function Lu(e,t,n,r){let o=bp(t);return n.setRepoIntelligenceRuntime?n.setRepoIntelligenceRuntime(e):(e.mode!==void 0&&(r.repoIntelligenceMode=e.mode),e.endpoint!==void 0&&(r.repointelEndpoint=e.endpoint??void 0),e.bin!==void 0&&(r.repointelBin=e.bin??void 0),e.trace!==void 0&&(r.repoIntelligenceTrace=e.trace)),o}i(Lu,"applyRepoIntelligenceRuntimeConfig");function NA(e){let t=e.configuredMode===e.requestedMode?e.configuredMode:`${e.configuredMode} -> ${e.requestedMode}`,n=`${e.effectiveEngine}/${e.effectiveBridge}`,r=e.transport?`, ${e.transport}`:"",o=e.fallbackToOss?", fallback=oss":"";return`${t} => ${n} (${e.status}${r}${o})`}i(NA,"formatRepoIntelligenceSummary");function sT(e){console.log(d.bold(`
230
- Repo Intelligence:
231
- `)),console.log(d.dim(` Configured: ${d.cyan(e.configuredMode)}`)),console.log(d.dim(` Requested: ${d.cyan(e.requestedMode)}`)),console.log(d.dim(` Active: ${d.cyan(`${e.effectiveEngine}/${e.effectiveBridge}`)}`)),console.log(d.dim(` Status: ${d.cyan(e.status)}${e.transport?d.dim(` (${e.transport})`):""}`)),console.log(d.dim(` Trace: ${d.cyan(e.traceEnabled?"on":"off")}`)),console.log(d.dim(` Endpoint: ${e.endpoint}`)),console.log(d.dim(` Bin: ${e.bin}`)),e.clientBuildId&&console.log(d.dim(` Client ID: ${e.clientBuildId}`)),e.daemonBuildId&&console.log(d.dim(` Daemon ID: ${e.daemonBuildId}`)),e.daemonPid!==void 0&&console.log(d.dim(` Daemon PID: ${e.daemonPid}`)),e.daemonStartedAt&&console.log(d.dim(` Daemon Up: ${e.daemonStartedAt}`)),e.fallbackToOss&&console.log(d.yellow(" Fallback: OSS baseline is currently active")),e.error&&console.log(d.red(` Error: ${e.error}`));for(let t of e.warnings)console.log(d.yellow(` Warning: ${t}`));console.log()}i(sT,"printRepoIntelligenceInspection");function BA(e){e.warmed?console.log(d.green(`
232
- [repointel warmed successfully]`)):console.log(d.yellow(`
233
- [repointel warm did not reach a ready daemon state]`)),e.warmLatencyMs!==void 0&&console.log(d.dim(` Warm latency: ${e.warmLatencyMs} ms`)),sT(e)}i(BA,"printRepoIntelligenceWarmResult");function oT(e,t){if(t.length!==0){console.log(d.dim(`${e}:`));for(let n of t){let r=n.aliases?.length?` (${n.aliases.join(", ")})`:"";console.log(` ${d.cyan(`/${n.name}`)}${d.dim(r)} ${n.description}`)}console.log()}}i(oT,"printCommandSection");function HA(){console.log(d.bold(`
234
- Available Commands:
235
- `));let e=Ou(),t=new Set;for(let[r,o]of Object.entries(AA)){let s=_A(o);if(s.length!==0){for(let a of s)t.add(a.name.toLowerCase());oT(r,s)}}let n=new Map;for(let r of e.getAll()){if(r.userInvocable===!1||t.has(r.name.toLowerCase()))continue;let o=r.source==="extension"?"Extensions":r.source==="skill"?"Skill Commands":r.source==="prompt"?"Prompt Commands":"Other Commands",s=n.get(o)??[];s.push(r),n.set(o,s)}for(let r of jA()){if(t.has(r.name.toLowerCase()))continue;let o=n.get("Extensions")??[];o.push({name:r.name,aliases:r.aliases,description:r.description}),n.set("Extensions",o)}for(let r of["Extensions","Skill Commands","Prompt Commands","Other Commands"])oT(r,n.get(r)??[]);console.log(d.dim("Special syntax:")),console.log(` ${d.cyan("@path")} Attach image to context`),console.log(` ${d.cyan("!command")} Execute shell command`),console.log(),console.log(d.dim("Skills:")),console.log(` ${d.cyan("/skill")} List all available skills`),console.log(` ${d.cyan("/skill:<name>")} Invoke a skill (e.g., /skill:code-review)`),console.log()}i(HA,"printHelp");function FA(e){Oo.size===0&&vp();let t=Oo.get(e.toLowerCase());if(!t){let n=aT(e);if(!n){console.log(d.yellow(`
236
- [Unknown command: /${e}. Type /help for available commands]`));return}console.log(d.cyan(`
237
- /${n.name}`)),n.aliases?.length&&console.log(d.dim(`Aliases: ${n.aliases.join(", ")}`)),console.log(d.dim(`
238
- ${n.description}`)),console.log(d.dim(`
239
- Usage: ${GA(n)}`)),console.log();return}t.detailedHelp?t.detailedHelp():(console.log(d.cyan(`
240
- /${t.name}`)),t.aliases?.length&&console.log(d.dim(`Aliases: ${t.aliases.join(", ")}`)),console.log(d.dim(`
241
- ${t.description}`)),t.usage&&console.log(d.dim(`
242
- Usage: ${t.usage}`)),console.log())}i(FA,"printDetailedHelp");async function WA(e,t,n=[]){let r=n[0]?.toLowerCase(),o=e.contextTokenSnapshot?.currentTokens??mo(e.messages),s=e.contextTokenSnapshot?.source??"estimate",a=mx(t.provider),c=Rl(t.provider,t.model,t.reasoningMode);if(console.log(d.bold(`
243
- Session Status:
244
- `)),console.log(d.dim(` Provider: ${d.cyan(t.provider)}${t.model?` / ${d.cyan(t.model)}`:""}`)),console.log(d.dim(` Permission: ${d.cyan(t.permissionMode)}`)),console.log(d.dim(` Reasoning: ${d.cyan(t.reasoningMode)}`)),console.log(d.dim(` Agent Mode: ${d.cyan(t.agentMode.toUpperCase())}`)),a){let u=em(a),m=a.transport==="cli-bridge"?d.yellow(u):d.cyan(u);console.log(d.dim(` Provider Cap: ${m}`))}if(c&&c.status!=="allow"){let u=c.status==="block"?d.red:d.yellow;console.log(d.dim(` Provider Policy: ${u(c.summary)}`))}console.log(d.dim(` Session ID: ${e.sessionId}`)),console.log(d.dim(` Messages: ${e.messages.length}`)),console.log(d.dim(` Tokens: ~${o} (${s})`));let l=await la({mode:t.repoIntelligenceMode,trace:t.repoIntelligenceTrace});console.log(d.dim(` Repo Intel: ${d.cyan(NA(l))}`)),e.runtimeInfo?.workspaceRoot?console.log(d.dim(` Workspace: ${d.cyan(Tn(e.runtimeInfo))}`)):e.gitRoot&&console.log(d.dim(` Workspace: ${d.cyan(e.gitRoot)}`)),(r==="workspace"||r==="worktree"||r==="runtime")&&(e.runtimeInfo?.canonicalRepoRoot&&console.log(d.dim(` Canonical: ${e.runtimeInfo.canonicalRepoRoot}`)),e.runtimeInfo?.executionCwd&&console.log(d.dim(` Exec CWD: ${e.runtimeInfo.executionCwd}`)),e.runtimeInfo?.workspaceKind&&console.log(d.dim(` Kind: ${e.runtimeInfo.workspaceKind}`))),console.log(d.dim(` Created: ${e.createdAt}`)),console.log(d.dim(` Last Active: ${e.lastAccessed}`)),console.log()}i(WA,"printStatus");async function iT(e,t){let n=dr(t.gitRoot);n.size===0&&await po(t.gitRoot),UA(n.listUserInvocable())}i(iT,"handleSkillNamespaceCommand");function UA(e){if(console.log(d.bold(`
245
- Available Skills:
246
- `)),e.length===0){console.log(d.dim(" No skills found.")),console.log(d.dim(`
247
- Skills can be placed in:`)),console.log(d.dim(" - .kodax/skills/")),console.log(d.dim(" - ~/.kodax/skills/"));return}let t=Math.max(...e.map(n=>n.name.length));for(let n of e){let r=n.name.padEnd(t),o=n.argumentHint?` ${n.argumentHint}`:"",s=n.source==="builtin"?" [builtin]":n.source==="user"?" [user]":n.source==="plugin"?" [plugin]":"",a=n.description.length>50?n.description.slice(0,50)+"...":n.description;console.log(` ${d.cyan(`/skill:${r}`)}${d.dim(o)}${d.dim(s)} ${d.dim(a)}`)}console.log(),console.log(d.dim(`Total: ${e.length} skills`)),console.log(d.dim("Usage: /skill:<name> [args] or ask naturally")),console.log()}i(UA,"printSkillsListPiMonoStyle");var Oo=new rs;function vp(e){Oo.size>0||eT(Oo,e)}i(vp,"initCommandRegistry");function Ou(e){return vp(e),Oo}i(Ou,"getCommandRegistry");function jA(){return fr()?.listCommands().filter(t=>t.metadata?.userInvocable!==!1)??[]}i(jA,"getActiveExtensionCommands");function aT(e){let t=fr(),n=e.trim().toLowerCase();if(!n)return;let r=t?.listCommands().find(o=>o.name.trim().toLowerCase()===n||(o.aliases??[]).some(s=>s.trim().toLowerCase()===n));if(r)return r.metadata?.userInvocable===!1?void 0:r}i(aT,"getActiveExtensionCommand");function GA(e){return e.usage??`/${e.name}`}i(GA,"formatExtensionCommandUsage");function KA(e){return Array.isArray(e)?e.map(t=>String(t)).join(", "):e&&typeof e=="object"?JSON.stringify(e):String(e)}i(KA,"formatExtensionDiagnosticValue");function VA(e){if(!e)return;let t=Object.entries(e).filter(([,n])=>n!==void 0).map(([n,r])=>`${n}=${KA(r)}`);return t.length>0?t.join(" | "):void 0}i(VA,"formatExtensionDiagnosticMetadata");function is(e){let t=e.getDiagnostics;if(typeof t=="function")return t.call(e);let n=e.getDefaults,r=typeof n=="function"?n.call(e):void 0;return{loadedExtensions:[],capabilityProviders:e.listCapabilityProviders().map(o=>({id:o.id,kinds:[...o.kinds],source:{kind:"extension",id:`extension:${o.id}`,label:o.id,path:"(runtime)"}})),commands:e.listCommands().map(o=>({name:o.name,aliases:o.aliases,description:o.description,usage:o.usage,metadata:o.metadata,source:{kind:"extension",id:`extension-command:${o.name}`,label:o.name,path:"(runtime)"}})),tools:[],hooks:[],failures:[],defaults:{activeTools:r?.activeTools,modelSelection:r?.modelSelection??{},thinkingLevel:r?.thinkingLevel}}}i(is,"getExtensionRuntimeDiagnostics");function zA(e,t){if(t.invocation)return{prompt:t.invocation.prompt,source:"extension",displayName:t.invocation.displayName??`/${e.name}`,disableModelInvocation:t.invocation.disableModelInvocation,allowedTools:t.invocation.allowedTools,context:t.invocation.context,model:t.invocation.model}}i(zA,"toExtensionInvocationRequest");async function XA(e,t,n){let r=fr();if(!r)return console.log(d.yellow(`
248
- [Extension runtime is not active for /${e.name}]`)),!1;let o=await e.handler(t,{sessionId:n.sessionId,gitRoot:n.gitRoot,workingDirectory:n.runtimeInfo?.executionCwd??n.gitRoot??process.cwd(),reloadExtensions:i(()=>r.reloadExtensions(),"reloadExtensions"),getDiagnostics:i(()=>is(r),"getDiagnostics"),logger:{debug:i((...a)=>console.debug(`[kodax:extension-command:${e.name}]`,...a),"debug"),info:i((...a)=>console.info(`[kodax:extension-command:${e.name}]`,...a),"info"),warn:i((...a)=>console.warn(`[kodax:extension-command:${e.name}]`,...a),"warn"),error:i((...a)=>console.error(`[kodax:extension-command:${e.name}]`,...a),"error")}});if(!o)return!0;o.message&&console.log(o.message);let s=zA(e,o);return s?{invocation:s}:!0}i(XA,"executeExtensionCommand");function ss(e){let t=e.trim();if(!t.startsWith("/"))return null;let n=t.slice(1).split(/\s+/),o=n[0]?.toLowerCase(),s=n.slice(1).filter(Boolean);if(!o)return null;if(o.startsWith("skill:")){let c=o.slice(6);return c?{command:"skill",args:s,skillInvocation:{name:c}}:{command:"skill",args:s}}let a=o.indexOf(":");if(a>0){let c=o.slice(a+1).trim();o=o.slice(0,a),s=c?[c,...s]:s}return{command:o,args:s}}i(ss,"parseCommand");async function as(e,t,n,r){if(Oo.size===0&&vp(t.gitRoot),e.skillInvocation)return await YA({command:e.skillInvocation.name,args:e.args},t);let o=Oo.get(e.command);if(o){if(o.userInvocable===!1)return console.log(d.yellow(`
249
- [Command /${o.name} is not user-invocable]`)),!1;try{let a=await o.handler(e.args,t,n,r);return a&&typeof a=="object"?a:!0}catch(a){return console.log(d.red(`
250
- [Command failed: ${a instanceof Error?a.message:String(a)}]`)),!1}}let s=aT(e.command);if(s)try{return await XA(s,e.args,t)}catch(a){return console.log(d.red(`
251
- [Extension command failed: ${a instanceof Error?a.message:String(a)}]`)),!1}return console.log(d.yellow(`
252
- [Unknown command: /${e.command}. Type /help for available commands]`)),!1}i(as,"executeCommand");async function YA(e,t){let n=dr(t.gitRoot),r=e.command,o=e.args.join(" ");n.size===0&&await po(t.gitRoot);try{let s=n.get(r);if(!s)return console.log(d.red(`
253
- [Skill not found: ${r}]`)),!1;if(!s.userInvocable)return console.log(d.yellow(`
254
- [Skill "${r}" is not user-invocable]`)),!1;console.log(d.cyan(`
255
- [Invoking skill: ${r}]`)),s.argumentHint&&console.log(d.dim(`Arguments: ${o||"(none)"}`)),console.log();let a=await n.loadFull(r),c={workingDirectory:process.cwd(),projectRoot:t.gitRoot??void 0,sessionId:t.sessionId,environment:{}},l=await Ky(a,o,c);return console.log(d.green(`Skill activated: ${r}`)),console.log(d.dim("The skill context has been prepared for the AI.")),console.log(),{invocation:{prompt:l.content,source:"skill",displayName:r,path:a.skillFilePath,disableModelInvocation:l.disableModelInvocation,userInvocable:a.userInvocable,allowedTools:a.allowedTools,context:a.context,agent:a.agent,argumentHint:a.argumentHint,model:a.model,hooks:a.hooks,skillInvocation:{name:r,path:a.skillFilePath,description:a.description,arguments:o||void 0,allowedTools:a.allowedTools,context:a.context,agent:a.agent,argumentHint:a.argumentHint,model:a.model,hookEvents:a.hooks?Object.entries(a.hooks).filter(([,u])=>Array.isArray(u)&&u.length>0).map(([u])=>u):void 0,expandedContent:l.content}}}}catch(s){return console.log(d.red(`
256
- [Error invoking skill: ${s instanceof Error?s.message:String(s)}]`)),!1}}i(YA,"executeSkillCommand");import{jsx as u_}from"react/jsx-runtime";import{useState as d_,useEffect as pT,useCallback as Gr,useMemo as gT,createContext as f_,useContext as hT}from"react";import*as Du from"fs";import*as Ip from"path";function jr(e){let t=e.lastIndexOf("/");if(t===-1)return-1;for(;t>0&&!/\s/.test(e[t-1]??"");)if(t=e.lastIndexOf("/",t-1),t===-1)return-1;return t}i(jr,"findCommandSlashIndex");var Do=class{static{i(this,"FileCompleter")}cwdSource;cache=new Map;cacheTimeout=5e3;constructor(t){this.cwdSource=t}canComplete(t,n){let r=t.slice(0,n),o=r.lastIndexOf("@");return!(o===-1||o>0&&!/\s/.test(r[o-1]??"")||r.slice(o+1).includes(" "))}async getCompletions(t,n){let r=t.slice(0,n),o=r.lastIndexOf("@");if(o===-1)return[];let s=r.slice(o+1),a=[],c=this.resolveCwd(),l=s.lastIndexOf("/"),u=l===-1?c:Ip.join(c,s.slice(0,l)),m=l===-1?s:s.slice(l+1);try{let g=(await this.readdir(u)).filter(h=>h.toLowerCase().startsWith(m.toLowerCase()));for(let h of g){let x=Ip.join(u,h),C=await this.isDirectory(x),w=l===-1?h:s.slice(0,l+1)+h;a.push({text:"@"+w+(C?"/":""),display:h+(C?"/":""),description:C?"directory":"file",type:"file"})}}catch{}return a}resolveCwd(){return typeof this.cwdSource=="function"?this.cwdSource():this.cwdSource??process.cwd()}async readdir(t){let n=Date.now(),r=this.cache.get(t);return r&&r.expiresAt>n?r.entries:(r&&this.cache.delete(t),new Promise(o=>{Du.readdir(t,(s,a)=>{s?o([]):(this.cache.set(t,{entries:a,expiresAt:Date.now()+this.cacheTimeout}),o(a))})}))}async isDirectory(t){return new Promise(n=>{Du.stat(t,(r,o)=>{n(!r&&o.isDirectory())})})}},ja=class{static{i(this,"CommandCompleter")}commands;constructor(){this.commands=new Map,this.loadCommands()}loadCommands(){for(let n of Ou().getAll())n.userInvocable!==!1&&this.commands.set(n.name,{description:n.description,aliases:n.aliases??[]});let t=fr();for(let n of t?.listCommands()??[])n.metadata?.userInvocable!==!1&&this.commands.set(n.name,{description:n.description,aliases:n.aliases??[]})}canComplete(t,n){let r=t.slice(0,n),o=jr(r);return o===-1?!1:!r.slice(o).includes(" ")}async getCompletions(t,n){let r=t.slice(0,n),o=jr(r);if(o===-1)return[];this.commands.clear(),this.loadCommands();let s=r.slice(o+1).toLowerCase(),a=[];for(let[c,l]of this.commands){this.fuzzyMatch(s,c)&&a.push({text:"/"+c,display:"/"+c,description:l.description,type:"command"});for(let u of l.aliases)u!==c&&this.fuzzyMatch(s,u)&&a.push({text:"/"+u,display:"/"+u,description:`Alias for /${c}: ${l.description}`,type:"command"})}return a}fuzzyMatch(t,n){if(!t)return!0;let r=t.toLowerCase(),o=n.toLowerCase(),s=0;for(let a=0;a<o.length&&s<r.length;a++)o[a]===r[s]&&s++;return s===r.length}};function cT(e){let t=new Do(e),n=new ja;return async r=>{let o=r.includes("@"),s=r.includes("/");if(!o&&!s)return[[],r];let a=[];if(s&&n.canComplete(r,r.length)){let l=await n.getCompletions(r,r.length);a.push(...l)}if(o&&t.canComplete(r,r.length)){let l=await t.getCompletions(r,r.length);a.push(...l)}return[a.map(l=>l.display),r]}}i(cT,"createCompleter");var Ga=class{static{i(this,"SkillCompleter")}gitRoot;skillsCache=null;cacheTimestamp=0;CACHE_TTL=5e3;constructor(t){this.gitRoot=t}canComplete(t,n){let r=t.slice(0,n);if(!/\/skill:[^\s]*$/.test(r))return!1;let o=r.lastIndexOf("/skill:");return!(o>0&&!/\s/.test(r[o-1]??""))}async getCompletions(t,n){let o=t.slice(0,n).match(/\/skill:([^\s]*)$/);if(!o)return[];let s=(o[1]??"").toLowerCase();return(await this.getSkills()).filter(c=>{let l=c.name.toLowerCase();return l.includes(s)||this.fuzzyIncludes(s,l)}).map(c=>({text:`/skill:${c.name}`,display:c.name,description:this.truncateDescription(c.description),type:"command"})).sort((c,l)=>{let u=c.display.toLowerCase().startsWith(s),m=l.display.toLowerCase().startsWith(s);return u&&!m?-1:!u&&m?1:c.display.length-l.display.length})}setGitRoot(t){this.gitRoot!==t&&(this.gitRoot=t,this.skillsCache=null)}async getSkills(){let t=Date.now();if(this.skillsCache&&t-this.cacheTimestamp<this.CACHE_TTL)return this.skillsCache;try{let n=dr(this.gitRoot);return n.size===0&&await po(this.gitRoot),this.skillsCache=n.listUserInvocable(),this.cacheTimestamp=t,this.skillsCache}catch{return[]}}fuzzyIncludes(t,n){let r=0;for(let o=0;o<n.length&&r<t.length;o++)n[o]===t[r]&&r++;return r===t.length}truncateDescription(t,n=50){return t.length<=n?t:t.slice(0,n-3)+"..."}};var qA=[{name:"plan",description:"Read-only planning mode - blocks all modifications",type:"enum"},{name:"accept-edits",description:"File edits auto-approved, bash requires confirmation",type:"enum"},{name:"auto-in-project",description:"All tools auto within project directory",type:"enum"}],Nu=[{name:"on",description:"Map to reasoning auto",type:"enum"},{name:"off",description:"Disable reasoning",type:"enum"},{name:"auto",description:"Use semantic routing with adaptive depth",type:"enum"},{name:"quick",description:"Low-depth reasoning mode",type:"enum"},{name:"balanced",description:"Medium-depth reasoning mode",type:"enum"},{name:"deep",description:"High-depth reasoning mode",type:"enum"}],lT=Nu.slice(2).concat([{name:"off",description:"Disable reasoning",type:"enum"}]);function QA(e){if(e&&e.includes("/")){let t=e.indexOf("/"),n=e.slice(0,t),r=e.slice(t+1);if(yi(n))try{return Ri(n).filter(s=>!r||s.toLowerCase().includes(r.toLowerCase())).map(s=>({name:`${n}/${s}`,description:s,type:"enum"}))}catch{}return[]}return xi().map(t=>({name:t,description:`Switch to ${t} provider`,type:"enum"}))}i(QA,"getModelArgs");var uT=[{name:"on",description:"Enable plan mode for all requests",type:"enum"},{name:"off",description:"Disable plan mode",type:"enum"},{name:"once",description:"Run plan mode for a single request (followed by task)",type:"enum"},{name:"list",description:"List all saved plans",type:"enum"},{name:"resume",description:"Resume a saved plan (followed by plan ID)",type:"enum"},{name:"clear",description:"Clear completed plans",type:"enum"}],kp=[{name:"workspace",description:"Inspect current workspace/runtime truth in more detail",type:"enum"},{name:"runtime",description:"Alias for workspace runtime inspection",type:"enum"},{name:"worktree",description:"Alias for workspace runtime inspection",type:"enum"}],Rp=[{name:"all",description:"Delete ALL sessions",type:"enum"}],JA=[{name:"status",description:"Inspect the current repo-intelligence runtime state",type:"enum"},{name:"warm",description:"Warm or start the local premium runtime if available",type:"enum"},{name:"mode",description:"Switch repo-intelligence runtime mode",type:"enum"},{name:"trace",description:"Toggle repo-intelligence trace output",type:"enum"},{name:"endpoint",description:"Inspect or override the local repointel daemon endpoint",type:"enum"},{name:"bin",description:"Inspect or override the local repointel command or path",type:"enum"}],ZA=[{name:"auto",description:"Resolve to premium-native when available, otherwise fall back to oss",type:"enum"},{name:"off",description:"Disable repo-intelligence injection",type:"enum"},{name:"oss",description:"Use only the public OSS repo-intelligence baseline",type:"enum"},{name:"premium-shared",description:"Use premium without the native KodaX auto lane",type:"enum"},{name:"premium-native",description:"Use premium through the native KodaX bridge",type:"enum"}],e_=[{name:"on",description:"Enable repo-intelligence trace output",type:"enum"},{name:"off",description:"Disable repo-intelligence trace output",type:"enum"},{name:"toggle",description:"Toggle repo-intelligence trace output",type:"enum"}],dT=[{name:"default",description:"Clear the override and use the default value again",type:"enum"}];function t_(e){let[t=""]=e,n=t.toLowerCase(),r=e.length===1&&e[0]===""?0:e.length;return r<=1?JA:r>2?[]:n==="mode"?ZA:n==="trace"?e_:n==="endpoint"?[...dT,{name:Vy,description:"Default local repointel daemon endpoint",type:"string"}]:n==="bin"?dT:[]}i(t_,"getRepointelArgs");var n_=new Map([["mode",qA],["thinking",Nu],["think",Nu],["t",Nu],["reasoning",lT],["reason",lT],["plan",uT],["p",uT],["status",kp],["info",kp],["ctx",kp],["delete",Rp],["rm",Rp],["del",Rp]]),r_=new Set(["model","m"]),o_=new Set(["repointel","ri"]);function Ep(e,t,n=[]){let r=e.toLowerCase();return r_.has(r)?QA(t):o_.has(r)?t_(n):n_.get(r)??[]}i(Ep,"getCommandArguments");var Bu=class{static{i(this,"ArgumentCompleter")}canComplete(t,n){let r=t.slice(0,n),o=jr(r);if(o===-1)return!1;let s=r.slice(o),a=s.split(/\s+/);if(a.length>=2&&a[0]!=="")return!0;let c=s.slice(1).toLowerCase();return Ep(c).length>0}async getCompletions(t,n){let r=t.slice(0,n),o=jr(r);if(o===-1)return[];let s=r.slice(o),a=s.indexOf(" "),c=(a===-1?s.slice(1):s.slice(1,a)).toLowerCase(),l=a===-1?"":s.slice(a+1),u=l?l.split(/\s+/):[""],m=u.length-1,p=(u[m]??"").toLowerCase(),g=Ep(c,p,u);if(!g||g.length===0)return[];let h=new Set(u.slice(0,-1).map(C=>C.toLowerCase()));return g.filter(C=>!h.has(C.name.toLowerCase())).filter(C=>!p||C.name.includes("/")?!0:C.name.toLowerCase().includes(p)).map(C=>({text:C.name,display:C.name,description:C.description,type:"argument"})).sort((C,w)=>{let b=C.display.toLowerCase().startsWith(p),P=w.display.toLowerCase().startsWith(p);return b&&!P?-1:!b&&P?1:C.display.length-w.display.length})}};function i_(e,t){if(!e)return{matched:!0,score:0,highlights:[]};if(e.length>t.length)return{matched:!1,score:0,highlights:[]};let n=e.toLowerCase(),r=t.toLowerCase(),o=0,s=-1,a=[];for(let l=0;l<e.length;l++){let u=n[l];if(u===void 0)continue;let m=r.indexOf(u,s+1);if(m===-1)return{matched:!1,score:0,highlights:[]};m===s+1?o+=10:m===0?o+=5:o-=1,t[m]===e[l]&&(o+=2),a.push(m),s=m}let c=s_(t,a);return o+=c,{matched:!0,score:o,highlights:a}}i(i_,"fuzzyMatch");function s_(e,t){let n=0;for(let r of t)if(r===0)n+=3;else if(r>0){let o=e[r-1];(o===" "||o==="-"||o==="_")&&(n+=2)}return n}i(s_,"calculateWordBoundaryBonus");function a_(e,t){return e?t.toLowerCase().startsWith(e.toLowerCase()):!0}i(a_,"prefixMatch");function c_(e,t){if(a_(e,t)){let o=e?Array.from({length:e.length},(s,a)=>a):[];return{matched:!0,score:100+e.length*10,highlights:o,isPrefix:!0}}return{...i_(e,t),isPrefix:!1}}i(c_,"combinedMatch");function fT(e,t,n=0){return e?t.map(r=>{let o=c_(e,r.text);return{...r,_fuzzyScore:o.matched?o.score:-1,_fuzzyHighlights:o.highlights}}).filter(r=>(r._fuzzyScore??-1)>=n).sort((r,o)=>{let s=(o._fuzzyScore??0)-(r._fuzzyScore??0);return s!==0?s:r.text.length-o.text.length}):t}i(fT,"sortCandidatesCombined");var l_={debounceDelay:100,minTriggerChars:1,maxCompletions:10,minScore:0},Mp=class{static{i(this,"AutocompleteProvider")}completers;options;state;listeners=new Set;debounceTimer=null;lastInput="";lastCursorPos=0;constructor(t={}){this.options={...l_,...t},this.completers=[new Ga(this.options.gitRoot),new Bu,new ja,new Do(this.options.cwd)],this.state={visible:!1,selectedIndex:0,completions:[],loading:!1}}getOptions(){return{...this.options}}getState(){return{...this.state}}subscribe(t){return this.listeners.add(t),()=>this.listeners.delete(t)}updateOptions(t){let n=t.gitRoot!==void 0&&t.gitRoot!==this.options.gitRoot,r=t.cwd!==void 0&&t.cwd!==this.options.cwd;if(this.options={...this.options,...t},n&&this.completers.find(s=>s instanceof Ga)?.setGitRoot(this.options.gitRoot),r){let o=this.completers.findIndex(s=>s instanceof Do);o!==-1&&(this.completers[o]=new Do(this.options.cwd))}}handleInput(t,n){if(this.lastInput=t,this.lastCursorPos=n,this.debounceTimer&&clearTimeout(this.debounceTimer),!this.shouldTrigger(t,n)){this.state.visible&&this.updateState({visible:!1,completions:[],selectedIndex:0});return}this.debounceTimer=setTimeout(()=>{this.fetchCompletions(t,n)},this.options.debounceDelay)}async fetchImmediate(t,n){return this.fetchCompletionsInternal(t,n)}selectPrevious(){if(!this.state.visible||this.state.completions.length===0)return;let t=this.state.selectedIndex>0?this.state.selectedIndex-1:this.state.completions.length-1;this.updateState({selectedIndex:t})}selectNext(){if(!this.state.visible||this.state.completions.length===0)return;let t=this.state.selectedIndex<this.state.completions.length-1?this.state.selectedIndex+1:0;this.updateState({selectedIndex:t})}getSelectedCompletion(){return!this.state.visible||this.state.completions.length===0?null:this.state.completions[this.state.selectedIndex]??null}acceptCompletion(){let t=this.getSelectedCompletion();return t?(this.updateState({visible:!1,completions:[],selectedIndex:0}),t.text):null}acceptCompletionWithType(){let t=this.getSelectedCompletion();return t?(this.updateState({visible:!1,completions:[],selectedIndex:0}),{text:t.text,type:t.type}):null}cancel(){this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.state.visible&&this.updateState({visible:!1,completions:[],selectedIndex:0})}shouldTrigger(t,n){if(t.length<this.options.minTriggerChars)return!1;let r=t.slice(0,n),s=jr(r)!==-1,a=r.lastIndexOf("@"),c=a===0||a>0&&/\s/.test(r[a-1]??"");return s||c}fetchCompletions(t,n){this.updateState({loading:!0}),this.fetchCompletionsInternal(t,n).then(r=>{this.lastInput!==t||this.lastCursorPos!==n||(r.length>0?this.updateState({visible:!0,completions:r.slice(0,this.options.maxCompletions),selectedIndex:0,loading:!1}):this.updateState({visible:!1,completions:[],selectedIndex:0,loading:!1}))}).catch(()=>{this.updateState({loading:!1})})}async fetchCompletionsInternal(t,n){let r=this.completers.filter(l=>l.canComplete(t,n));if(r.length===0)return[];let o=[];for(let l of r)try{let u=await l.getCompletions(t,n);o.push(...u)}catch(u){console.error("[Autocomplete] Completer error:",u)}let s=this.extractPattern(t,n),a=o.map((l,u)=>({_idx:u,text:l.type==="command"&&l.display.startsWith("/")?l.display.slice(1):l.display}));return fT(s,a,this.options.minScore).map(l=>o[l._idx]).filter(l=>l!==void 0)}extractPattern(t,n){let r=t.slice(0,n),o=jr(r);if(o!==-1){let c=r.slice(o),l=c.match(/^\/skill:(\S*)$/);if(l)return l[1]??"";let u=c.match(/^\/(\S*)$/);if(u)return u[1]??"";let m=c.split(/\s+/);return(m[m.length-1]??"").toLowerCase()}let s=r.lastIndexOf("@");if(s!==-1){let c=r.slice(s+1),l=c.lastIndexOf("/");return l===-1?c:c.slice(l+1)}let a=r.match(/(\S+)$/);return a?a[1]??"":""}updateState(t){this.state={...this.state,...t};for(let n of this.listeners)try{n(this.state)}catch(r){console.error("[Autocomplete] Listener error:",r)}}};function mT(e){return new Mp(e)}i(mT,"createAutocompleteProvider");var Ap=f_(null);function _p({children:e,cwd:t,gitRoot:n}){let r=Hu({cwd:t,gitRoot:n,enabled:!0});return u_(Ap.Provider,{value:r,children:e})}i(_p,"AutocompleteContextProvider");function No(){return hT(Ap)}i(No,"useAutocompleteContext");function m_(e,t){let n={command:"command",file:"file",argument:"argument",skill:"skill"},r={command:"\u26A1",file:"\u{1F4C4}",argument:"\u2022",skill:"\u2605"};return{id:`autocomplete-${t}`,text:e.text,displayText:e.display,description:e.description,type:n[e.type]??"command",icon:r[e.type]??">"}}i(m_,"completionToSuggestion");function Hu(e={}){let t=hT(Ap);return t&&!e.cwd&&!e.gitRoot?t:p_(e)}i(Hu,"useAutocomplete");function p_(e){let{cwd:t,gitRoot:n,enabled:r=!0}=e,o=gT(()=>mT({cwd:t,gitRoot:n,debounceDelay:100,minTriggerChars:1,maxCompletions:8}),[]);pT(()=>{o.updateOptions({cwd:t,gitRoot:n})},[o,t,n]);let[s,a]=d_({visible:!1,selectedIndex:0,completions:[],loading:!1});pT(()=>o.subscribe(b=>{a(b)}),[o]);let c=gT(()=>s.completions.map((w,b)=>m_(w,b)),[s.completions]),l=Gr((w,b)=>{if(!r){o.cancel();return}o.handleInput(w,b)},[o,r]),u=Gr(()=>s.visible?o.acceptCompletionWithType():null,[o,s.visible]),m=Gr(()=>s.visible?o.acceptCompletionWithType():null,[o,s.visible]),p=Gr(()=>{s.visible&&o.selectPrevious()},[o,s.visible]),g=Gr(()=>{s.visible&&o.selectNext()},[o,s.visible]),h=Gr(()=>{s.visible&&o.cancel()},[o,s.visible]),x=Gr(()=>{o.cancel()},[o]),C=Gr(()=>o,[o]);return{state:s,suggestions:c,handleInput:l,handleTab:u,handleEnter:m,handleUp:p,handleDown:g,handleEscape:h,cancel:x,getProvider:C}}i(p_,"useAutocompleteImpl");import{useCallback as Ka,useRef as yT}from"react";var Cn=[];function Pp(e={}){let{maxSize:t=1e3,onSave:n}=e,r=yT(-1),o=yT(""),s=Ka((m,p)=>{if(!m.trim())return;if(Cn[Cn.length-1]?.text!==m){let h={text:m,timestamp:Date.now(),...p?.pastedContents&&p.pastedContents.length>0?{pastedContents:[...p.pastedContents]}:{}};Cn.push(h),Cn.length>t&&Cn.splice(0,Cn.length-t),n?.(h)}r.current=-1,o.current=""},[t,n]),a=Ka(()=>Cn.length===0?null:r.current===-1?(r.current=Cn.length-1,Cn[r.current]??null):r.current>0?(r.current--,Cn[r.current]??null):null,[]),c=Ka(()=>r.current===-1?null:r.current<Cn.length-1?(r.current++,Cn[r.current]??null):(r.current=-1,{text:o.current,timestamp:Date.now()}),[]),l=Ka(()=>{r.current=-1,o.current=""},[]),u=Ka(m=>{r.current===-1&&(o.current=m)},[]);return{add:s,navigateUp:a,navigateDown:c,reset:l,saveTempInput:u}}i(Pp,"useInputHistory");function Qt(e,t,n){return zt(e).slice(t,n).join("")}i(Qt,"sliceByCodePoints");var Va=class{static{i(this,"TextBuffer")}_text="";_lines=[""];_cursor={row:0,col:0};_rememberedCol=0;_history=[];_historyIndex=-1;_maxHistory;constructor(t={}){this._maxHistory=t.maxHistory??100}get text(){return this._text}get lines(){return[...this._lines]}get cursor(){return{...this._cursor}}get lineCount(){return this._lines.length}get currentLine(){return this._lines[this._cursor.row]??""}get isEmpty(){return this._text.length===0}get currentLineVisualWidth(){return zn(this.currentLine)}get visualCursor(){let t=this._lines[this._cursor.row]??"",n=Qt(t,0,this._cursor.col);return{row:this._cursor.row,col:zn(n)}}getCharWidthAtCursor(){let t=this._lines[this._cursor.row]??"",r=zt(t)[this._cursor.col];return r?Vn(r)?2:1:0}visualColToLogicalCol(t){let n=this._lines[this._cursor.row]??"",r=zt(n),o=0;for(let s=0;s<r.length;s++){let a=Vn(r[s])?2:1;if(o+a>t)return s;o+=a}return r.length}moveToVisualCol(t){this._cursor.col=this.visualColToLogicalCol(t),this._rememberedCol=this._cursor.col}setText(t){this._saveHistory(),this._setTextInternal(t),this._clampCursor()}replaceRange(t,n,r){this._saveHistory();let o=Math.max(0,Math.min(t,this._text.length)),s=Math.max(o,Math.min(n,this._text.length)),a=this._text.slice(0,o)+r+this._text.slice(s);this._setTextInternal(a),this.moveToAbsoluteOffset(o+r.length)}insert(t,n){if(this._saveHistory(),n?.paste){this._insertText(t);return}let r=t.split(`
257
- `);for(let o=0;o<r.length;o++)o>0&&this._insertNewline(),this._insertText(r[o])}_insertText(t){let n=this._lines[this._cursor.row],r=Qt(n,0,this._cursor.col),o=Qt(n,this._cursor.col);this._lines[this._cursor.row]=r+t+o,this._cursor.col+=rn(t),this._rememberedCol=this._cursor.col,this._updateText()}newline(){this._saveHistory(),this._insertNewline()}_insertNewline(){let t=this._lines[this._cursor.row],n=Qt(t,0,this._cursor.col),r=Qt(t,this._cursor.col);this._lines[this._cursor.row]=n,this._lines.splice(this._cursor.row+1,0,r),this._cursor.row++,this._cursor.col=0,this._rememberedCol=0,this._updateText()}backspace(){if(this._cursor.col>0){this._saveHistory();let t=this._lines[this._cursor.row],n=this._cursor.col-1,r=Qt(t,0,n),o=Qt(t,this._cursor.col);this._lines[this._cursor.row]=r+o,this._cursor.col=n,this._rememberedCol=this._cursor.col,this._updateText()}else if(this._cursor.row>0){this._saveHistory();let t=this._lines[this._cursor.row],n=this._lines[this._cursor.row-1];this._cursor.col=rn(n),this._lines[this._cursor.row-1]=n+t,this._lines.splice(this._cursor.row,1),this._cursor.row--,this._rememberedCol=this._cursor.col,this._updateText()}}delete(){let t=this._lines[this._cursor.row];if(this._cursor.col<rn(t)){this._saveHistory();let n=Qt(t,0,this._cursor.col),r=Qt(t,this._cursor.col+1);this._lines[this._cursor.row]=n+r,this._updateText()}else if(this._cursor.row<this._lines.length-1){this._saveHistory();let n=this._lines[this._cursor.row+1];this._lines[this._cursor.row]=t+n,this._lines.splice(this._cursor.row+1,1),this._updateText()}}move(t){switch(t){case"up":this._moveUp();break;case"down":this._moveDown();break;case"left":this._moveLeft();break;case"right":this._moveRight();break;case"home":this._moveHome();break;case"end":this._moveEnd();break}}_moveUp(){this._cursor.row>0&&(this._cursor.row--,this._clampColumn())}_moveDown(){this._cursor.row<this._lines.length-1&&(this._cursor.row++,this._clampColumn())}_moveLeft(){this._cursor.col>0?(this._cursor.col--,this._rememberedCol=this._cursor.col):this._cursor.row>0&&(this._cursor.row--,this._cursor.col=rn(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col)}_moveRight(){let t=this._lines[this._cursor.row];this._cursor.col<rn(t)?(this._cursor.col++,this._rememberedCol=this._cursor.col):this._cursor.row<this._lines.length-1&&(this._cursor.row++,this._cursor.col=0,this._rememberedCol=0)}_moveHome(){this._cursor.col=0,this._rememberedCol=0}_moveEnd(){this._cursor.col=rn(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col}_clampColumn(){let t=this._lines[this._cursor.row],n=rn(t);this._cursor.col=Math.min(this._rememberedCol,n)}_clampCursor(){this._cursor.row=Math.max(0,Math.min(this._cursor.row,this._lines.length-1)),this._cursor.col=Math.max(0,Math.min(this._cursor.col,rn(this._lines[this._cursor.row]))),this._rememberedCol=this._cursor.col}killLineRight(){let t=this._lines[this._cursor.row];this._cursor.col<rn(t)&&(this._saveHistory(),this._lines[this._cursor.row]=Qt(t,0,this._cursor.col),this._updateText())}killLineLeft(){if(this._cursor.col>0){this._saveHistory();let t=this._lines[this._cursor.row];this._lines[this._cursor.row]=Qt(t,this._cursor.col),this._cursor.col=0,this._rememberedCol=0,this._updateText()}}deleteWordLeft(){if(this._cursor.col===0)return;this._saveHistory();let t=this._lines[this._cursor.row],n=this._cursor.col-1,r=zt(t);for(;n>0&&/\s/.test(r[n]??"");)n--;for(;n>0&&!/\s/.test(r[n-1]??"");)n--;let o=Qt(t,0,n),s=Qt(t,this._cursor.col);this._lines[this._cursor.row]=o+s,this._cursor.col=n,this._rememberedCol=this._cursor.col,this._updateText()}_saveHistory(){this._history=this._history.slice(0,this._historyIndex+1),this._history.push(this._text),this._history.length>this._maxHistory&&this._history.shift(),this._historyIndex=this._history.length-1}undo(){return this._historyIndex>0?(this._historyIndex--,this._text=this._history[this._historyIndex]??"",this._lines=this._text.split(`
258
- `),this._lines.length===0&&(this._lines=[""]),this._clampCursor(),!0):!1}redo(){return this._historyIndex<this._history.length-1?(this._historyIndex++,this._text=this._history[this._historyIndex]??"",this._lines=this._text.split(`
259
- `),this._lines.length===0&&(this._lines=[""]),this._clampCursor(),!0):!1}_updateText(){this._text=this._lines.join(`
260
- `)}_setTextInternal(t){this._text=t,this._lines=t.split(`
261
- `),this._lines.length===0&&(this._lines=[""])}moveToAbsoluteOffset(t){let r=Math.max(0,Math.min(t,this._text.length));for(let o=0;o<this._lines.length;o++){let s=this._lines[o]??"",a=s.length;if(r<=a){this._cursor={row:o,col:rn(s.slice(0,r))},this._rememberedCol=this._cursor.col;return}r-=a,o<this._lines.length-1&&(r-=1)}this.moveToEnd()}clear(){this._saveHistory(),this._text="",this._lines=[""],this._cursor={row:0,col:0},this._rememberedCol=0}getAbsoluteOffset(){let t=0;for(let r=0;r<this._cursor.row;r++)t+=(this._lines[r]?.length??0)+1;let n=this._lines[this._cursor.row]??"";return t+=Qt(n,0,this._cursor.col).length,t}isLineContinuation(){return this._lines[this._cursor.row].endsWith("\\")}moveToEnd(){this._cursor.row=this._lines.length-1,this._cursor.col=rn(this._lines[this._cursor.row]??""),this._rememberedCol=this._cursor.col}};import{useState as g_,useCallback as vt,useRef as $p,useEffect as h_}from"react";function Lp(e={}){let{initialValue:t="",onTextChange:n}=e,r=$p(null),o=$p(null),s=$p(null),[a,c]=g_({text:t,cursor:{row:0,col:0},lines:[""],isPasting:!1,editingMode:t?"typing":"idle"});r.current===null&&(r.current=new Va,t&&r.current.setText(t)),o.current===null&&(o.current=XS());let l=r.current,u=o.current,m=vt(v=>{c(M=>({text:l.text,cursor:l.cursor,lines:l.lines,isPasting:v?.isPasting??M.isPasting,editingMode:v?.editingMode??M.editingMode})),n?.(l.text)},[l,n]),p=vt(()=>{s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{c(v=>({...v,isPasting:!1,editingMode:v.text?"typing":"idle"})),s.current=null},120)},[]),g=vt(v=>{l.setText(v),m({isPasting:!1,editingMode:v?"typing":"idle"})},[l,m]),h=vt((v,M,ne)=>{l.replaceRange(v,M,ne),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),x=vt((v,M)=>{let ne=M?.paste??!1;if(ne&&VS(v)){let xe=v.replace(/\r\n/g,`
262
- `).replace(/\r/g,`
263
- `),{placeholder:Re}=u.registerText(xe);l.insert(Re,{paste:!0}),m({isPasting:!0,editingMode:"pasting"}),p();return}l.insert(v,{paste:!1}),m({isPasting:ne,editingMode:ne?"pasting":"typing"}),ne&&p()},[l,u,p,m]),C=vt(()=>{l.newline(),m({isPasting:!1,editingMode:"typing"})},[l,m]),w=vt(()=>{let v=l.getAbsoluteOffset(),M=Mu(l.text,v);M?l.replaceRange(M.start,M.end,""):l.backspace(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),b=vt(()=>{let v=l.getAbsoluteOffset(),M=Au(l.text,v);M?l.replaceRange(M.start,M.end,""):l.delete(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),P=vt(v=>{l.move(v),m()},[l,m]),L=vt(()=>{l.clear(),m({isPasting:!1,editingMode:"idle"})},[l,m]),F=vt(()=>{let v=l.undo();return v&&m(),v},[l,m]),O=vt(()=>{let v=l.redo();return v&&m(),v},[l,m]),N=vt(()=>{l.moveToEnd(),m()},[l,m]),k=vt(v=>{l.moveToAbsoluteOffset(v),m()},[l,m]),ae=vt(()=>{l.killLineRight(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),me=vt(()=>{l.killLineLeft(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),W=vt(()=>{l.deleteWordLeft(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),X=vt(()=>{s.current&&(clearTimeout(s.current),s.current=null),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]);return h_(()=>()=>{s.current&&clearTimeout(s.current),r.current=null},[]),{buffer:l,text:a.text,cursor:a.cursor,lines:a.lines,isPasting:a.isPasting,editingMode:a.editingMode,pasteStore:u,resetTransientState:X,setText:g,replaceRange:h,insert:x,newline:C,backspace:w,delete:b,move:P,moveToEnd:N,moveToOffset:k,killLineRight:ae,killLineLeft:me,deleteWordLeft:W,clear:L,undo:F,redo:O}}i(Lp,"useTextBuffer");import{jsx as Bo,jsxs as Wu}from"react/jsx-runtime";import{useState as TT}from"react";import{useCallback as cs,useEffect as Op,useRef as Fu}from"react";function xT(e,t,n){let r=Math.max(0,Math.min(t,e.length)),o=e.slice(0,r);if(n.type==="command"||n.type==="skill"){let a=o.lastIndexOf("/");return{start:a===-1?0:a,end:r,replacement:n.text}}if(n.type==="argument"){let a=o.match(/\S+$/);return{start:a?r-a[0].length:0,end:r,replacement:n.text}}let s=o.lastIndexOf("@");return{start:s===-1?0:s,end:r,replacement:n.text}}i(xT,"buildAutocompleteReplacement");var x_=500;function wT(e,t,n){return n==="up"?e===0:e>=Math.max(0,t-1)}i(wT,"shouldUseHistoryNavigation");function w_(e){return e.isAutocompleteVisible?"cancel-autocomplete":e.hasText?e.timeSinceLastEscapeMs<x_?"clear-input":"arm-clear":"pass-through"}i(w_,"resolvePromptEscapeBehavior");function S_(e){return e.keyName==="newline"||e.keyName==="return"&&(e.ctrl||e.shift)||e.isPasting?"newline":e.isAutocompleteVisible?"accept-completion-and-submit":e.isLineContinuation?"line-continuation":"submit"}i(S_,"resolvePromptEnterBehavior");function T_(e){if(e.meta&&e.name==="backspace")return"delete-word-left";if(e.ctrl)switch(e.name){case"a":return"move-home";case"e":return"move-end";case"z":return"undo";case"y":return"redo";case"k":return"kill-line-right";case"u":return"kill-line-left";case"w":return"delete-word-left";default:return}}i(T_,"resolvePromptEditingCommand");function ST({onSubmit:e,onExit:t,focus:n=!0,initialValue:r="",cwd:o,gitRoot:s,autocompleteEnabled:a=!0,onInputChange:c,onHistoryRecall:l,onPopPendingInputs:u}){let m=Fu(0),{add:p,navigateUp:g,navigateDown:h,reset:x,saveTempInput:C}=Pp(),{buffer:w,text:b,cursor:P,lines:L,isPasting:F,editingMode:O,pasteStore:N,resetTransientState:k,setText:ae,replaceRange:me,clear:W,move:X,moveToOffset:v,insert:M,backspace:ne,newline:xe,delete:Re,undo:Se,redo:le,killLineRight:Le,killLineLeft:J,deleteWordLeft:Y}=Lp({initialValue:r,onTextChange:c}),q=Fu(0);Op(()=>{if(F)return;if(b.length<=1e4){q.current=0;return}if(b.length===q.current)return;let Q=N.peekNextId(),{truncatedText:D,placeholderContent:De}=zS(b,Q);De&&(N.registerTruncatedText(De),q.current=D.length,ae(D))},[b,F,N,ae]);let Ge=No(),Te=Hu({cwd:o,gitRoot:s,enabled:a}),{state:_e,suggestions:Ee,handleInput:ft,handleTab:we,handleEnter:Ze,handleUp:et,handleDown:ie,handleEscape:A}=Ge??Te;Op(()=>{n||(m.current=0,k(),_e.visible&&A())},[_e.visible,n,A,k]);let _=Fu(b);Op(()=>{a&&b!==_.current&&(_.current=b,ft(b,w.getAbsoluteOffset()))},[a,w,ft,b]);let U=cs(Q=>{if(!Q?.text)return;let D=xT(b,w.getAbsoluteOffset(),Q),De=b.slice(0,D.start)+D.replacement+b.slice(D.end);return me(D.start,D.end,D.replacement),De},[w,me,b]),ee=cs(Q=>{let D=Q??b;if(!D.trim())return;let De=N.expand(D),Pe=new Set,Wt=/\[(Pasted text|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;for(let Jr of D.matchAll(Wt)){let Zr=Number.parseInt(Jr[2]??"0",10);Number.isFinite(Zr)&&Zr>0&&Pe.add(Zr)}let Qr=[];for(let Jr of Pe){let Zr=N.get(Jr);Zr&&Qr.push(Zr)}p(D,{pastedContents:Qr}),e({displayText:D,fullText:De,pastedContents:Qr}),W()},[p,W,e,N,b]),Oe=cs(Q=>{if(Q){if(Q.pastedContents&&Q.pastedContents.length>0){for(let D of Q.pastedContents)N.adopt(D);l?.({text:Q.text,pastedContents:[...Q.pastedContents]})}ae(Q.text)}},[l,N,ae]),tt=cs(async Q=>{try{let D=await xx(Q);if(D.kind==="images"){let De=D.blocks.map(Pe=>`@${Pe.path}`).join(" ");M(`${De} `,{paste:!1})}else D.kind==="error"&&console.warn(`[KodaX paste] ${D.message}`)}catch(D){console.warn(`[KodaX paste] image handling failed: ${D instanceof Error?D.message:String(D)}`)}},[M]),Ce=Fu(!1),Be=cs(async()=>{if(!Ce.current){Ce.current=!0;try{let Q=await wx();if(Q.kind==="images"){let D=Q.blocks.map(De=>`@${De.path}`).join(" ");M(`${D} `,{paste:!1})}else Q.kind==="error"&&console.warn(`[KodaX clipboard] ${Q.message}`)}catch(Q){console.warn(`[KodaX clipboard] image handling failed: ${Q instanceof Error?Q.message:String(Q)}`)}finally{Ce.current=!1}}},[M]),ve=cs(Q=>{if(!n)return!1;if(Q.name==="v"&&(Q.ctrl||Q.meta))return Be(),!0;if(Q.name==="paste"&&Q.isPasted&&Sx(Q.sequence).length>0)return tt(Q.sequence),!0;let D=_e.visible&&Ee.length>0;if(Q.name==="tab"&&D){let Pe=we();return Pe&&U(Pe),!0}if(Q.ctrl&&Q.name==="c")return b.length>0?(W(),x()):t?.(),!0;if(Q.name==="escape")switch(w_({isAutocompleteVisible:D,hasText:b.length>0,timeSinceLastEscapeMs:Date.now()-m.current})){case"cancel-autocomplete":return A(),m.current=0,!0;case"clear-input":return m.current=0,W(),x(),!0;case"arm-clear":return m.current=Date.now(),!0;default:return!1}if(Q.name==="up"){if(D)return et(),!0;if(Q.ctrl)return X("up"),!0;if(b.length===0&&u){let Pe=u();if(typeof Pe=="string"&&Pe.length>0)return ae(Pe),!0}if(wT(P.row,L.length,"up")){C(b);let Pe=g();Oe(Pe)}else X("up");return!0}if(Q.name==="down"){if(D)return ie(),!0;if(Q.ctrl)return X("down"),!0;if(wT(P.row,L.length,"down")){let Pe=h();Oe(Pe)}else X("down");return!0}if(Q.name==="left"){let Pe=w.getAbsoluteOffset(),Wt=Mu(w.text,Pe);return Wt?v(Wt.start):X("left"),!0}if(Q.name==="right"){let Pe=w.getAbsoluteOffset(),Wt=Au(w.text,Pe);return Wt?v(Wt.end):X("right"),!0}if(Q.name==="home")return X("home"),!0;if(Q.name==="end")return X("end"),!0;let De=T_(Q);if(De)switch(De){case"move-home":return X("home"),!0;case"move-end":return X("end"),!0;case"undo":return Se(),!0;case"redo":return le(),!0;case"kill-line-right":return Le(),!0;case"kill-line-left":return J(),!0;case"delete-word-left":return Y(),!0;default:break}if(Q.name==="backspace")return ne(),!0;if(Q.name==="delete")return Re(),!0;if(Q.name==="return"||Q.name==="newline")switch(S_({keyName:Q.name,ctrl:Q.ctrl,shift:Q.shift,isAutocompleteVisible:D,isLineContinuation:!!L[P.row]?.endsWith("\\"),isPasting:F})){case"accept-completion-and-submit":{let Wt=Ze();if(Wt){let Qr=U(Wt);ee(Qr)}else ee();return!0}case"newline":return xe(),!0;case"line-continuation":return ne(),xe(),!0;default:return ee(),!0}return Q.insertable&&!Q.ctrl&&!Q.meta?(M(Q.sequence,Q.isPasted?{paste:!0}:void 0),!0):!1},[U,p,_e.visible,ne,w,W,P.row,Re,n,ie,A,et,Ze,Oe,we,tt,Be,L,J,Le,X,v,h,g,xe,t,u,le,x,C,ae,ee,Ee.length,b.length,Y,F,Se]);return{text:b,cursor:P,lines:L,isPasting:F,terminalFocused:n,editingMode:O,handleKey:ve}}i(ST,"usePromptInputController");var ls=i(({onSubmit:e,onHistoryRecall:t,onPopPendingInputs:n,placeholder:r="Type a message...",prompt:o=">",focus:s=!0,initialValue:a="",cwd:c,gitRoot:l,autocompleteEnabled:u=!0,onInputChange:m})=>{let{exit:p}=Br(),{cursor:g,lines:h,handleKey:x,isPasting:C,terminalFocused:w,editingMode:b}=ST({onSubmit:e,onExit:p,focus:s,initialValue:a,cwd:c,gitRoot:l,autocompleteEnabled:u,onInputChange:m,onHistoryRecall:t,onPopPendingInputs:n});return sn(Bt.High,P=>x(P),[x]),Bo(I,{flexDirection:"column",children:Bo(Km,{lines:h,cursorRow:g.row,cursorCol:g.col,prompt:o,placeholder:r,focus:s,terminalFocused:w,isPasting:C,editingMode:b,theme:"dark"})})},"InputPrompt"),C_=i(({onSubmit:e,placeholder:t,prompt:n=">"})=>{let[r,o]=TT(""),[s,a]=TT(0);sn(Bt.High,p=>{if(p.name==="return")return r.trim()&&(e(r),o(""),a(0)),!0;if(p.name==="backspace"&&s>0){let g=[...r].slice(0,s-1).join(""),h=[...r].slice(s).join("");return o(g+h),a(s-1),!0}if(p.name==="left"&&s>0)return a(s-1),!0;if(p.name==="right"&&s<[...r].length)return a(s+1),!0;if(p.insertable&&!p.ctrl&&!p.meta){let g=[...r].slice(0,s).join(""),h=[...r].slice(s).join("");return o(g+p.sequence+h),a(s+1),!0}return!1},[r,s,e]);let c=te("dark");if(!r)return Wu(I,{children:[Wu(T,{color:c.colors.primary,children:[n," "]}),t&&Bo(T,{dimColor:!0,children:t}),Bo(T,{backgroundColor:c.colors.primary,color:"#000000",children:" "})]});let l=[...r].slice(0,s).join(""),u=[...r][s]??" ",m=[...r].slice(s+1).join("");return Wu(I,{children:[Wu(T,{color:c.colors.primary,children:[n," "]}),Bo(T,{children:l}),Bo(T,{backgroundColor:c.colors.primary,color:"#000000",children:u}),Bo(T,{children:m})]})},"SimpleInputPrompt");import{jsx as st,jsxs as Mt}from"react/jsx-runtime";import{useState as bT,useEffect as vT}from"react";var CT=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],b_=80,Uu=new Set,za=null;function v_(){let e=Array.from(Uu);for(let t of e)t()}i(v_,"dispatchSharedSpinnerTick");function I_(e){return Uu.add(e),za===null&&(za=setInterval(v_,b_)),()=>{Uu.delete(e),Uu.size===0&&za!==null&&(clearInterval(za),za=null)}}i(I_,"subscribeToSharedSpinnerClock");function IT(e=!0){let[t,n]=bT(0);return vT(()=>{if(e)return I_(()=>{n(r=>r+1)})},[e]),t}i(IT,"useSharedSpinnerTick");var bn=i(({color:e,theme:t})=>{let n=t??te("dark"),o=IT(!0)%CT.length,s=e??n.colors.accent;return st(T,{color:s,children:CT[o]})},"Spinner");function k_(e){return e<=0?0:Math.round(e/4)}i(k_,"estimateOutputTokens");function R_(e){let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/3600),r=Math.floor(t%3600/60),o=t%60;return n===0?`${r}m${o}s`:`${n}h${r}m${o}s`}i(R_,"formatElapsedDuration");var kT=i(({roundStartedAt:e,charCount:t,theme:n})=>{let r=n??te("dark");if(IT(e!==null),e===null)return null;let o=E_(Date.now()-e,t);return st(T,{color:r.colors.dim,children:o})},"SpinnerStatsTail");function E_(e,t){let n=R_(e),r=k_(t);return r>0?` (${n} \xB7 \u2193 ${r} tokens)`:` (${n})`}i(E_,"buildSpinnerStatsText");var RT=i(({label:e,dotCount:t=3,theme:n})=>{let r=n??te("dark"),[o,s]=bT(1);vT(()=>{let c=setInterval(()=>{s(l=>l%t+1)},300);return()=>clearInterval(c)},[t]);let a=".".repeat(o);return Mt(I,{children:[e&&st(T,{color:r.colors.text,children:e}),st(T,{color:r.colors.accent,children:a})]})},"DotsIndicator"),ET=i(({progress:e,label:t,width:n=20,theme:r})=>{let o=r??te("dark"),s=Math.max(0,Math.min(100,e)),a=Math.round(s/100*n),c=n-a,l="\u2588".repeat(a),u="\u2591".repeat(c);return Mt(I,{flexDirection:"column",children:[t&&st(I,{marginBottom:1,children:st(T,{color:o.colors.text,children:t})}),Mt(I,{children:[st(T,{color:o.colors.primary,children:l}),st(T,{dimColor:!0,children:u}),Mt(T,{children:[" ",s,"%"]})]})]})},"ProgressIndicator"),M_=i(({message:e,showSpinner:t=!1,theme:n})=>{let r=n??te("dark"),o=e??"Thinking";return Mt(I,{children:[t&&st(I,{marginRight:1,children:st(bn,{theme:r})}),Mt(T,{color:r.colors.accent,children:[o,"\u2026"]})]})},"ThinkingIndicator"),A_=i(({message:e,subMessage:t,progress:n,type:r="spinner",compact:o=!1,theme:s})=>{let a=s??te("dark"),c=e??"Loading";return o?Mt(I,{children:[st(bn,{theme:a}),Mt(T,{color:a.colors.text,children:[" ",c,"\u2026"]})]}):r==="bar"&&n!==void 0?Mt(I,{flexDirection:"column",children:[st(ET,{progress:n,label:c,theme:a}),t&&st(I,{marginTop:1,children:st(T,{dimColor:!0,children:t})})]}):r==="dots"?Mt(I,{flexDirection:"column",children:[st(RT,{label:c,theme:a}),t&&st(I,{marginTop:1,children:st(T,{dimColor:!0,children:t})})]}):r==="simple"?Mt(I,{flexDirection:"column",children:[Mt(T,{color:a.colors.accent,children:[c,"\u2026"]}),t&&st(I,{marginTop:1,children:st(T,{dimColor:!0,children:t})}),n!==void 0&&st(I,{marginTop:1,children:Mt(T,{dimColor:!0,children:[n,"%"]})})]}):Mt(I,{flexDirection:"column",children:[Mt(I,{children:[st(bn,{theme:a}),Mt(T,{color:a.colors.text,children:[" ",c,"\u2026"]}),n!==void 0&&Mt(T,{dimColor:!0,children:[" (",n,"%)"]})]}),t&&st(I,{marginTop:1,children:st(T,{dimColor:!0,children:t})})]})},"LoadingIndicator");import{jsx as de,jsxs as Fe,Fragment as Xp}from"react/jsx-runtime";import{useEffect as ZT,useMemo as er,memo as an}from"react";function Ke(e,t=120){return e.length>t?`${e.slice(0,t-3)}...`:e}i(Ke,"truncateValue");function MT(e){if(e)return e.split(/\r?\n/).map(t=>t.trim()).find(Boolean)}i(MT,"extractFirstMeaningfulLine");function PT(e){let t=e.match(/^\[([^\]]+)\]\s+(.*)$/);if(!t)return{toolLabel:e};let n=t[1]?.trim(),r=t[2]?.trim()??e,o=new RegExp(`^${n?.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}:`,"i"),s=r.replace(o,"").trim();return{rolePrefix:n?`[${n}]`:void 0,toolLabel:s||r}}i(PT,"splitDisplayToolName");function ju(e){let{rolePrefix:t,toolLabel:n}=PT(e);return t?`${t} ${n}`:n}i(ju,"normalizeDisplayToolName");function Np(e){return PT(e).toolLabel}i(Np,"stripRolePrefix");function Gu(e){if(!(!e||Array.isArray(e)||typeof e!="object"))return e}i(Gu,"asRecord");function $T(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i($T,"readString");function St(e,...t){for(let n of t){let r=$T(e?.[n]);if(r)return r}}i(St,"readFirstString");function Jn(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim().length>0){let t=Number(e.trim());return Number.isFinite(t)?t:void 0}}i(Jn,"readNumber");function LT(e){if(!Array.isArray(e))return;let t=e.map(n=>typeof n=="string"?n.trim():"").filter(Boolean);return t.length>0?t:void 0}i(LT,"readStringArray");function __(e){if(typeof e=="string")return e.trim()||void 0;let t=Gu(e);if(t)return $T(t.preview)??void 0}i(__,"extractPreview");function AT(e){if(e)try{return Gu(JSON.parse(e))}catch{return}}i(AT,"parsePreviewRecord");function Ae(e,t){return e&&e.match(new RegExp(`"${t}"\\s*:\\s*"([^"]+)`))?.[1]?.trim()||void 0}i(Ae,"extractFieldFromPreview");function Zn(e,t){if(!e)return;let n=e.match(new RegExp(`"${t}"\\s*:\\s*(\\d+)`));return n?.[1]?Number(n[1]):void 0}i(Zn,"extractNumberFromPreview");function OT(e){if(!e)return;let t=e.match(/"paths"\s*:\s*\[([^\]]*)/);if(!t?.[1])return;let n=Array.from(t[1].matchAll(/"([^"]+)"/g)).map(r=>r[1]?.trim()??"").filter(Boolean);return n.length>0?n:void 0}i(OT,"extractPathsFromPreview");function P_(e){let t=__(e);if(typeof e=="string")return{record:AT(t),preview:t};let n=Gu(e),r=AT(t);return n?r?{record:{...n,...r},preview:t}:{record:n,preview:t}:{record:r,preview:t}}i(P_,"resolveInputRecord");function us(e,t,n,r=!1){let o=St(t,"path","target_path","targetPath")??Ae(n,"path")??Ae(n,"target_path")??Ae(n,"targetPath"),s=LT(t?.paths)??OT(n);if(r&&s?.length){s.length===1?e.push(Ke(s[0])):e.push(`${s.length} files`);return}if(o){e.push(Ke(o));return}s?.length&&(s.length===1?e.push(Ke(s[0])):e.push(`${s.length} files`))}i(us,"pushPathSummary");function ds(e,t,n){n!==void 0&&e.push(`${t}=${n}`)}i(ds,"pushNumericSummary");function Dp(e,t,n){let r=St(t,"baseRef","base_ref")??Ae(n,"baseRef")??Ae(n,"base_ref"),o=St(t,"targetRef","target_ref")??Ae(n,"targetRef")??Ae(n,"target_ref");r&&o&&e.push(Ke(`${r}...${o}`,88))}i(Dp,"pushRangeSummary");function $_(e,t){let{record:n,preview:r}=P_(t),o=Np(e).toLowerCase(),s=[];if(o.includes("changed_diff_bundle")){let a=LT(n?.paths)??OT(r);a?.length?(s.push(a.length===1?Ke(a[0]):`${a.length} files`),a.length>1&&s.push(Ke(a[0]))):us(s,n,r,!0);let c=Jn(n?.limit_per_path)??Jn(n?.limitPerPath)??Zn(r,"limit_per_path")??Zn(r,"limitPerPath");return c!==void 0&&s.push(`limit=${c}`),Dp(s,n,r),s}if(o.includes("changed_diff"))return us(s,n,r),ds(s,"offset",Jn(n?.offset)??Zn(r,"offset")),ds(s,"limit",Jn(n?.limit)??Zn(r,"limit")),Dp(s,n,r),s;if(o==="read"||o.includes("read_"))return us(s,n,r),ds(s,"offset",Jn(n?.offset)??Zn(r,"offset")),ds(s,"limit",Jn(n?.limit)??Zn(r,"limit")),s;if(o.includes("changed_scope"))return us(s,n,r,!0),Dp(s,n,r),s;if(o.includes("repo_overview"))return us(s,n,r),s;if(o.includes("bash")||o.includes("shell_command")){let a=St(n,"command")??Ae(r,"command");return a&&s.push(`cmd=${Ke(a,140)}`),s}if(o==="glob"||o.includes("glob_")){let a=St(n,"pattern")??Ae(r,"pattern"),c=St(n,"path","root","directory","cwd")??Ae(r,"path")??Ae(r,"root")??Ae(r,"directory")??Ae(r,"cwd");return a&&s.push(`pattern=${Ke(a,96)}`),c&&s.push(Ke(c)),s}if(o==="grep"||o.includes("grep_")){let a=St(n,"pattern","query")??Ae(r,"pattern")??Ae(r,"query"),c=St(n,"path","root","directory","cwd")??Ae(r,"path")??Ae(r,"root")??Ae(r,"directory")??Ae(r,"cwd");return a&&s.push(`pattern=${Ke(a,96)}`),c&&s.push(Ke(c)),s}if(o==="web_fetch"){let a=St(n,"url")??Ae(r,"url"),c=St(n,"provider_id","providerId")??Ae(r,"provider_id")??Ae(r,"providerId"),l=St(n,"capability_id","capabilityId")??Ae(r,"capability_id")??Ae(r,"capabilityId");return a&&s.push(Ke(a,120)),c&&s.push(`provider=${Ke(c,48)}`),l&&s.push(`cap=${Ke(l,48)}`),s}if(o==="mcp_describe"||o==="mcp_read_resource"){let a=St(n,"id")??Ae(r,"id");return a&&s.push(Ke(a,120)),s}if(o==="mcp_call"){let a=St(n,"id")??Ae(r,"id"),c=Gu(n?.args),l=c?Object.keys(c).length:void 0;return a&&s.push(Ke(a,120)),l!==void 0&&s.push(`args=${l}`),s}if(o==="mcp_search"){let a=St(n,"query")??Ae(r,"query"),c=St(n,"server")??Ae(r,"server"),l=St(n,"kind")??Ae(r,"kind"),u=Jn(n?.limit)??Zn(r,"limit");return a&&s.push(`query=${Ke(a,96)}`),c&&s.push(`server=${Ke(c,48)}`),l&&s.push(`kind=${l}`),u!==void 0&&s.push(`limit=${u}`),s}if(o==="web_search"||o==="code_search"||o==="semantic_lookup"){let a=St(n,"query","pattern")??Ae(r,"query")??Ae(r,"pattern"),c=St(n,"path","target_path","targetPath")??Ae(r,"path")??Ae(r,"target_path")??Ae(r,"targetPath"),l=St(n,"provider_id","providerId")??Ae(r,"provider_id")??Ae(r,"providerId"),u=Jn(n?.limit)??Zn(r,"limit");return a&&s.push(`query=${Ke(a,96)}`),c&&s.push(Ke(c,72)),l&&s.push(`provider=${Ke(l,48)}`),u!==void 0&&s.push(`limit=${u}`),s}return us(s,n,r,!0),ds(s,"offset",Jn(n?.offset)??Zn(r,"offset")),ds(s,"limit",Jn(n?.limit)??Zn(r,"limit")),s}i($_,"summarizeToolDetails");function DT(e){let t=e.match(/Showing diff lines\s+(\d+)-(\d+)\s+of\s+(\d+)/i);if(t)return`${t[1]}-${t[2]}/${t[3]}`}i(DT,"extractChangedDiffRange");function L_(e){return e.split(/\r?\n/).map(t=>t.trim()).find(t=>t.startsWith("+")||t.startsWith("-")||t.startsWith("@@"))}i(L_,"extractDiffPreviewLine");function O_(e){let t=[],n=DT(e);if(n){let[o,s]=n.split("/");t.push(s?`Diff range: ${o} of ${s}`:`Diff range: ${n}`)}let r=L_(e);return r&&t.push(`Preview: ${Ke(r,220)}`),t}i(O_,"formatChangedDiffExplanation");function D_(e){let t=[],n=e.match(/^Changed diff bundle for\s+(\d+)\s+file\(s\)/im);if(n?.[1]){let o=Number(n[1]);Number.isFinite(o)&&o>0&&t.push(`Bundle: ${o===1?"1 file":`${o} files`}`)}let r=e.match(/^===\s+(.+?)\s+===/m);return r?.[1]&&t.push(`First file: ${Ke(r[1].trim(),220)}`),t}i(D_,"formatChangedDiffBundleExplanation");function NT(e,t){if(!t)return[];let n=Np(e).toLowerCase(),r=[];if(n.includes("changed_diff_bundle")){let o=t.match(/^Changed diff bundle for\s+(\d+)\s+file\(s\)/im);if(o?.[1]){let a=Number(o[1]);Number.isFinite(a)&&a>0&&r.push(a===1?"1 file":`${a} files`)}let s=t.match(/^===\s+(.+?)\s+===/m);return s?.[1]&&r.push(Ke(s[1].trim())),r}if(n.includes("changed_diff")){let o=t.match(/^Changed diff for\s+(.+)$/im);o?.[1]&&r.push(Ke(o[1].trim()));let s=DT(t);return s&&r.push(s),r}if(n==="read"||n.includes("read_")){let o=t.match(/^Reading\s+(.+)$/im);return o?.[1]&&r.push(Ke(o[1].trim())),r}return[]}i(NT,"summarizeToolOutputDetails");function Bp(e,t){let n=ju(e);return t.length>0?`${n} - ${t.join(" - ")}`:n}i(Bp,"formatToolDetailSummary");function N_(e,t){if(!t)return;let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(N_,"formatDuration");function B_(e){switch(e.status){case $.Scheduled:return"scheduled";case $.Validating:return"validating";case $.AwaitingApproval:return"awaiting approval";case $.Executing:return"running";case $.Error:return"failed";case $.Cancelled:return"cancelled";default:return}}i(B_,"formatToolStatusDetail");function _T(e){switch(e.status){case $.Scheduled:return["Queued: waiting to start"];case $.Validating:return["Validating: checking inputs and policy"];case $.AwaitingApproval:return["Waiting: approval required before execution"];case $.Executing:return e.progress!==void 0?[`Progress: ${e.progress}% complete`]:e.progressLines&&e.progressLines.length>0?e.progressLines.slice(-5):e.preview?[`Running: ${e.preview}`]:["Running: waiting for tool output"];case $.Cancelled:return["Cancelled before completion"];default:return[]}}i(_T,"formatToolProgressExplanation");function Hp(e){return e.startsWith("Error:")?"error":e.startsWith("Waiting:")?"accent":e.startsWith("Progress:")||e.startsWith("Running:")?"primary":"dim"}i(Hp,"resolveToolExplanationTone");function H_(e){let t=MT(e.error),n=typeof e.output=="string"?MT(e.output):void 0,r=[];return t&&r.push(`Error: ${Ke(t,220)}`),e.status===$.Error&&n&&(!t||n.toLowerCase()!==t.toLowerCase())&&r.push(`Last output: ${Ke(n,220)}`),r}i(H_,"formatToolFailureExplanation");function Fp(e){if(typeof e.output!="string"||!e.output.trim())return _T(e);let t=Np(e.name).toLowerCase();return e.status===$.Error?H_(e):e.status!==$.Success?_T(e):t.includes("changed_diff_bundle")?D_(e.output):t.includes("changed_diff")?O_(e.output):[]}i(Fp,"formatToolResultExplanation");function Wp(e,t){return Bp(e,$_(e,t))}i(Wp,"formatToolSummary");function Ku(e){let t=typeof e.output=="string"?NT(e.name,e.output):[],n=t.length>0?Bp(e.name,t):Wp(e.name,e.input),r=B_(e),o=N_(e.startTime,e.endTime),s=e.status===$.Executing&&e.progress!==void 0?`${e.progress}%`:e.status===$.Executing&&e.preview?e.preview:void 0,a=[r,s,o].filter(Boolean);return a.length>0?`${n} (${a.join(" - ")})`:n}i(Ku,"formatToolCallInlineText");function Vu(e){let t=new Map;for(let n of e){let r=typeof n.output=="string"?NT(n.name,n.output):[],o=r.length>0?Bp(n.name,r):Wp(n.name,n.input),a=n.progressLines&&n.progressLines.length>0?`${o}|${n.id}`:`${o}|${n.error??""}`,c=t.get(a);c?(c.tool=n,c.count+=1):t.set(a,{tool:n,count:1})}return[...t.values()]}i(Vu,"collapseToolCalls");function Xa(e){let t=Ku(e.tool);return e.count>1?`${t} x${e.count}`:t}i(Xa,"formatCollapsedToolInlineText");function zu(e,t,n){let r=Wp(e,t);return r!==ju(e)?`[Tools] ${r}`:n>0?`[Tools] ${ju(e)} (${n} chars)`:`[Tools] ${ju(e)}`}i(zu,"formatLiveToolLabel");function Up(e,t=e.length){let n=0,r=Math.min(t,e.length);for(let o=0;o<r;o++)e.charCodeAt(o)===10&&(n+=1);return n}i(Up,"countNewlines");function Xu(e,t={}){let n=t.maxChars??1e4,r=t.headChars??2500,o=t.tailChars??2500;if(e.length<=n)return e;let s=e.slice(0,r),a=e.slice(-o),c=Up(e),l=Up(s),u=Up(a),m=Math.max(0,c-l-u);return`${s}
264
- \u2026 +${m} lines \u2026
265
- ${a}`}i(Xu,"truncateUserMessageForDisplay");var BT=400,F_="... (thinking truncated; press Ctrl+O to inspect full reasoning)",HT=2e5,W_="... (thinking show-all truncated at 200K chars; full content available via session artifacts)",FT=1e5;function U_(e,t){if(!e||!t)return e;let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`^\\[Tools\\]\\s+\\[${n}\\]\\s+`,"i"),"[Tools] ").replace(new RegExp(`^\\[Thinking\\]\\s+\\[${n}\\]\\s*`,"i"),"[Thinking] ").replace(new RegExp(`^\\[${n}\\]\\s+thinking\\b`,"i"),"[Thinking]").trim()}i(U_,"normalizeManagedLiveActivityLabel");function Yu(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(Yu,"formatTimestamp");function WT(e){switch(e){case $.Scheduled:return"\u25CB";case $.Validating:return"\u25D0";case $.AwaitingApproval:return"\u23F8";case $.Executing:return"\u25CF";case $.Success:return"\u2713";case $.Error:return"\u2717";case $.Cancelled:return"\u2298";default:return"[tool]"}}i(WT,"getToolStatusIcon");function UT(e){switch(e){case $.Scheduled:case $.Validating:return"dim";case $.AwaitingApproval:return"accent";case $.Executing:return"primary";case $.Success:return"success";case $.Error:return"error";case $.Cancelled:return"dim";default:return"text"}}i(UT,"getToolStatusColor");function j_(e,t){let n=Math.max(1,t),r=e.split(`
266
- `),o=Xt(r.length>0?r:[""],n,0,0);return o.visualLines.length>0?o.visualLines:[""]}i(j_,"wrapText");function jp(e,t,n,r=!1){if(n||r)return e.length>HT?`${e.slice(0,HT)}
267
-
268
- ${W_}`:e;let o=e.split(/\r?\n/),s=o.length>t,a=s?o.slice(0,t).join(`
269
- `):e,c=a.length>BT,l=c?a.slice(0,BT):a;return!s&&!c?e:`${l}
270
-
271
- ${F_}`}i(jp,"buildThinkingPreview");function G_(e){for(let t=e.length-1;t>=0;t--)if(e[t]?.type==="user")return t;return 0}i(G_,"findActiveRoundStartIndex");function $e(e,t,n,r,o){let s=j_(n,r);if(s.length===0){e.push({key:`${t}-0`,text:"",...o});return}s.forEach((a,c)=>{e.push({key:`${t}-${c}`,text:a,...o})})}i($e,"pushWrappedRows");function Ya(e,t){e.push({key:t,text:" "})}i(Ya,"pushBlankRow");function pt(e,t=0){return Math.max(20,e-t)}i(pt,"getBodyWidth");function K_(e){if(!e.input)return[];let t=JSON.stringify(e.input,null,2)?.trim();return t?t.split(/\r?\n/).slice(0,6).map((n,r)=>r===0?`input: ${n}`:n):[]}i(K_,"buildToolInputPreview");function V_(e){switch(e){case"H0_DIRECT":return"H0";case"H1_EXECUTE_EVAL":return"H1";case"H2_PLAN_EXECUTE_EVAL":return"H2";default:return e}}i(V_,"formatHarnessProfileShort");function z_(e,t,n,r,o,s=!1,a=!1){if($e(e,`${t}-tool-${n.id}-main`,`${WT(n.status)} ${Xa({tool:n,count:r})}`,pt(o,2),{color:UT(n.status),indent:2,bold:n.status===$.Executing}),Fp(n).forEach((l,u)=>{let m=Hp(l);$e(e,`${t}-tool-${n.id}-explanation-${u}`,l,pt(o,4),{color:m,indent:4})}),s){let l=K_(n),u=a?l:l.slice(0,6);u.forEach((m,p)=>{$e(e,`${t}-tool-${n.id}-input-${p}`,m,pt(o,4),{color:"dim",indent:4})}),!a&&l.length>u.length&&$e(e,`${t}-tool-${n.id}-input-more`,`... (${l.length-u.length} more lines)`,pt(o,4),{color:"dim",indent:4})}if(s&&typeof n.output=="string"&&n.output.trim()){let l=n.output.trim().split(/\r?\n/),u=a?l:l.slice(0,8);u.forEach((p,g)=>{$e(e,`${t}-tool-${n.id}-output-${g}`,p,pt(o,4),{color:"dim",indent:4})});let m=l.length;!a&&m>u.length&&$e(e,`${t}-tool-${n.id}-output-more`,`... (${m-u.length} more lines)`,pt(o,4),{color:"dim",indent:4})}}i(z_,"buildToolRows");function X_(e,t,n,r){let o=n.status===$.Executing,s=o?"":`${WT(n.status)} `;$e(e,`${t}-tool-${n.id}-main`,`${s}${Xa({tool:n,count:1})}`,pt(r,2),{color:UT(n.status),indent:2,bold:o,spinner:o}),Fp(n).forEach((c,l)=>{let u=Hp(c);$e(e,`${t}-tool-${n.id}-explanation-${l}`,c,pt(r,4),{color:u,indent:4})})}i(X_,"buildLiveToolRows");function jT(e){let{items:t,viewportWidth:n,isLoading:r=!1,maxLines:o=1e3,isThinking:s=!1,thinkingCharCount:a=0,thinkingContent:c="",streamingResponse:l="",currentTool:u,activeToolCalls:m=[],toolInputCharCount:p=0,toolInputContent:g="",iterationHistory:h=[],currentIteration:x=1,isCompacting:C=!1,managedAgentMode:w,managedPhase:b,managedHarnessProfile:P,managedWorkerTitle:L,managedRound:F,managedMaxRounds:O,lastLiveActivityLabel:N,currentTodoActiveForm:k,showFullThinking:ae=!1,showDetailedTools:me=!1,showAllContent:W=!1,showLiveProgressRows:X=!0}=e,v=[];for(let M of t)switch(M.type){case"user":$e(v,`${M.id}-header`,`You [${Yu(M.timestamp)}]`,n,{color:"primary",bold:!0,itemId:M.id}),$e(v,`${M.id}-body`,Xu(M.text),pt(n,2),{color:"text",indent:2,itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;case"assistant":{let ne=W?M.text:M.compactText??M.text;$e(v,`${M.id}-header`,`Assistant [${Yu(M.timestamp)}]`,n,{color:"secondary",bold:!0,spinner:M.isStreaming,itemId:M.id}),$e(v,`${M.id}-body`,ne,pt(n,2),{color:"text",indent:2,itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break}case"system":$e(v,`${M.id}-header`,`System [${Yu(M.timestamp)}]`,n,{color:"dim",bold:!0,itemId:M.id}),$e(v,`${M.id}-body`,M.text,pt(n,2),{color:"dim",indent:2,itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;case"tool_group":$e(v,`${M.id}-header`,`Tools [${Yu(M.timestamp)}]`,n,{color:"accent",bold:!0,itemId:M.id}),Vu(M.tools).forEach(ne=>z_(v,M.id,ne.tool,ne.count,n,me,W)),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;case"thinking":{let ne=W?jp(M.text,o,ae,W):M.compactText??jp(M.text,o,ae,W);$e(v,`${M.id}-header`,"Thinking",n,{color:"thinking",italic:!0,itemId:M.id}),$e(v,`${M.id}-body`,ne,pt(n,2),{color:"thinking",indent:2,italic:!0,itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break}case"error":$e(v,`${M.id}-header`,"\u2717 Error",n,{color:"error",bold:!0,itemId:M.id}),$e(v,`${M.id}-body`,M.text,pt(n,2),{color:"error",indent:2,itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;case"info":$e(v,`${M.id}-body`,`${M.icon??"\u2139"} ${W?M.text:M.compactText??M.text}`,n,{color:"info",itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;case"event":$e(v,`${M.id}-body`,`${M.icon??">"} ${W?M.text:M.compactText??M.text}`,n,{color:"text",itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;case"hint":$e(v,`${M.id}-header`,"\u{1F4A1} Hint",n,{color:"hint",bold:!0,itemId:M.id}),$e(v,`${M.id}-body`,M.text,pt(n,2),{color:"dim",indent:2,itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;default:break}if(X&&h.length>0&&(h.forEach(M=>{if($e(v,`iteration-${M.iteration}-header`,`\u2500\u2500 Round ${M.iteration} \u2500\u2500`,n,{color:"dim",bold:!0}),M.thinkingSummary){let ne=M.thinkingLength>60?` (${M.thinkingLength} chars total)`:"";$e(v,`iteration-${M.iteration}-thinking`,`\u{1F4AD} ${M.thinkingSummary}${ne}`,pt(n,1),{color:"thinking",indent:1,italic:!0})}if(M.response){let ne=M.response.slice(0,200);$e(v,`iteration-${M.iteration}-response`,ne,pt(n,1),{color:"text",indent:1}),M.response.length>200&&$e(v,`iteration-${M.iteration}-response-more`,`... (${M.response.length} chars total)`,pt(n,1),{color:"dim",indent:1})}M.toolsUsed.length>0&&$e(v,`iteration-${M.iteration}-tools`,`* tools: ${M.toolsUsed.join(", ")}`,pt(n,1),{color:"accent",indent:1}),Ya(v,`iteration-${M.iteration}-blank`)}),$e(v,"iteration-current-header",`\u2500\u2500 Round ${x} (current) \u2500\u2500`,n,{color:"accent",bold:!0}),Ya(v,"iteration-current-blank")),r&&c){let M=jp(c,o,ae,W);$e(v,"thinking-stream-header","Thinking",n,{color:"thinking",italic:!0}),$e(v,"thinking-stream-body",M,pt(n,2),{color:"thinking",indent:2,italic:!0}),Ya(v,"thinking-stream-blank")}if(r){let M="Thinking",ne="",xe=V_(P),Re=U_(N,L),Se=L??"Scout",le=b==="routing"?`[${w?w.toUpperCase():"AMA"} Routing] `:b==="preflight"?`[${w?w.toUpperCase():"AMA"} ${Se}] `:b==="verifying"?`[${w?w.toUpperCase():"AMA"} Verifying] `:P?`[${w?w.toUpperCase():"AMA"} ${xe??P}${L?` - ${L}`:""}] `:"",Le=m.filter(Te=>Te.status===$.Executing).length,J=m.filter(Te=>Te.status===$.Success).length,Y=m.filter(Te=>Te.status===$.Error).length,q=m.filter(Te=>Te.status===$.Cancelled).length,Ge=m.length>0&&(Le>0||!l);if(C)M="Compacting";else if(b==="verifying")ne=le,M="checking agent output";else if(Ge){let Te=[];if(Le>0&&Te.push(`${Le} running`),J>0&&Te.push(`${J} done`),Y>0&&Te.push(`${Y} error`),q>0&&Te.push(`${q} cancelled`),Te.length===0&&Te.push(`${m.length} tools`),$e(v,"loading-tools-header",`${le}[Tools] ${Te.join(", ")}`,n,{color:"primary",bold:!0,spinner:Le>0}),m.forEach(_e=>{X_(v,"loading-tools",_e,n)}),Ya(v,"loading-tools-blank"),Le>0&&!l&&!X)return v}else if(k)ne=le||"[Plan] ",M=k;else if(u)ne=le||"[Tool] ",M=Re?.startsWith("[Tools]")?Re:zu(u,g,p);else if(s){ne=le||"[Thinking] ";let Te=F&&O&&F>1?` round ${F}/${O}`:"";M=a>0?`${a} chars${Te}`:Re?`${Re}${Te}`:`processing${Te}`}else Re&&(M=Re);X&&$e(v,"loading-indicator",`${ne}${M}...`,n,{color:"accent",spinner:!0})}if(l){let M=l.lastIndexOf(`
272
- `),ne=M>=0?l.slice(0,M+1):"";ne.length>0&&($e(v,"streaming-header","Assistant",n,{color:"secondary",bold:!0}),$e(v,"streaming-body",ne,pt(n,2),{color:"text",indent:2}),Ya(v,"streaming-blank"))}return v}i(jT,"buildTranscriptRows");function Y_(e,t,n=1e3,r=!1,o=!1){return fs(e,t,n,r,void 0,o)}i(Y_,"buildStaticTranscriptSections");function fs(e,t,n=1e3,r=!1,o,s=!1){return e.map(a=>({key:a.id,rows:jT({items:[a],viewportWidth:t,maxLines:n,showAllContent:s,showDetailedTools:r||!!o?.has(a.id)})}))}i(fs,"buildHistoryItemTranscriptSections");function q_(e,t){return{key:e,rows:jT(t)}}i(q_,"buildDynamicTranscriptSection");function qu(e){let{items:t,viewportWidth:n,maxLines:r=1e3,showDetailedTools:o=!1,showAllContent:s=!1,windowed:a=!1}=e;if(a)return{staticSections:[],activeItems:t};let c=G_(t),l=t.slice(0,c),u=t.slice(c);return{staticSections:Y_(l,n,r,o,s),activeItems:u}}i(qu,"buildTranscriptStaticPortion");function Qu(e){let{activeItems:t,viewportWidth:n,maxLines:r=1e3,showDetailedTools:o=!1,showAllContent:s=!1,expandedItemKeys:a,...c}=e,l=fs(t,n,r,o,a,s),u=q_("active-pending",{...c,items:[],managedLiveEvents:[],lastLiveActivityLabel:c.lastLiveActivityLabel,viewportWidth:n,maxLines:r,showAllContent:s,showDetailedTools:o,expandedItemKeys:a}),m=u.rows.length>0?[u]:[];return{sections:l,previewSections:m}}i(Qu,"buildTranscriptDynamicPortion");function Ju(e,t){return{staticSections:e.staticSections,sections:t.sections,rows:Ho(t.sections),previewSections:t.previewSections,previewRows:Ho(t.previewSections)}}i(Ju,"composeTranscriptRenderModel");function Zu(e){let t=qu({items:e.items,viewportWidth:e.viewportWidth,maxLines:e.maxLines,showDetailedTools:e.showDetailedTools,showAllContent:e.showAllContent,windowed:e.windowed}),{items:n,...r}=e,o=Qu({...r,activeItems:t.activeItems});return Ju(t,o)}i(Zu,"buildTranscriptRenderModel");function Ho(e){return e.flatMap(t=>t.rows)}i(Ho,"flattenTranscriptSections");function Gp(e){let t=[...e.staticSections,...e.sections];return{staticSections:[],sections:t,rows:Ho(t),previewSections:[...e.previewSections],previewRows:Ho(e.previewSections)}}i(Gp,"materializeTranscriptRenderModel");function GT(e,t={}){let{start:n,end:r,viewportTop:o,viewportHeight:s,viewportRows:a,scrollOffset:c=0,windowed:l=!1}=t;if(typeof o=="number"&&typeof s=="number"){let u=Math.max(0,o),m=Math.max(u,o+Math.max(0,s));return e.slice(u,m)}return typeof n=="number"&&typeof r=="number"?e.slice(Math.max(0,n),Math.max(0,r)):l?Vp(e,a,c):e}i(GT,"resolveVisibleTranscriptRows");var Q_=200,J_=50,Kp=30;function KT(e,t,n=Q_,r=J_){let o=t.current,s=o?e.findIndex(l=>l.id===o.id):-1,a=s>=0?s:o?Math.min(o.idx,Math.max(0,e.length-n)):0;e.length-a>n+r&&(a=e.length-n);let c=e[a];return c&&(o?.id!==c.id||o.idx!==a)?t.current={id:c.id,idx:a}:!c&&o&&(t.current=null),a}i(KT,"computeTranscriptCapStart");function VT(e,t){if(t<=0||e.length===0)return[];let n=0,r=0;for(let o=e.length-1;o>=0;o--)if(e[o]?.type==="user"&&(n++,n>t)){r=o+1;break}return e.slice(r)}i(VT,"sliceHistoryToRecentRounds");function Vp(e,t,n=0){if(!t||t<=0)return e;let r=Math.max(0,n),o=Math.max(0,e.length-r),s=Math.max(0,o-t);return e.slice(s,o)}i(Vp,"getVisibleTranscriptRows");function zT(e,t,n){if(!t||!n||n<=0)return 0;let r=Ho(e),o=e.find(u=>u.key===t);if(!o||o.rows.length===0)return 0;let s=o.rows[0]?.key,a=r.findIndex(u=>u.key===s);if(a===-1)return 0;let c=Math.max(0,a-Math.floor(n/3)),l=Math.min(r.length,c+n);return Math.max(0,r.length-l)}i(zT,"resolveScrollOffsetForTranscriptItem");function XT(e,t){if(t)switch(t){case"warning":return e.colors.warning;case"info":return e.colors.info;case"hint":return e.colors.hint;default:return e.colors[t]}}i(XT,"resolveTranscriptColor");var ed="__transcript_hidden_divider__";function YT(e,t){let n=e===1?"message":"messages";return{id:ed,type:"info",timestamp:t?Math.max(0,t-1):0,text:`${e} earlier ${n} hidden \u2014 press Ctrl+E to show all`,icon:"\u2191"}}i(YT,"buildTranscriptHiddenDivider");function zp(e){return e.id===ed}i(zp,"isTranscriptHiddenDivider");var qT=new $i(500);function Z_(e){let t=zt(e),n=[],r=[],o=0,s=0;for(let a of t)n.push(o),r.push(s),o+=a.length,s+=um(a);return{graphemes:t,codeUnitOffsets:n,visualOffsets:r,length:t.length,displayWidth:s}}i(Z_,"buildTranscriptTextMetrics");function qa(e){let t=qT.get(e);if(t)return t;let n=Z_(e);return qT.set(e,n),n}i(qa,"getTranscriptTextMetrics");function Kr(e){return qa(e).length}i(Kr,"getTranscriptTextLength");function QT(e){return qa(e).displayWidth}i(QT,"getTranscriptTextDisplayWidth");function td(e,t){let n=qa(e),r=Math.max(0,Math.min(n.length-1,t));return n.graphemes[r]??""}i(td,"charAtTranscriptText");function ms(e,t,n){let r=qa(e),o=Math.max(0,Math.min(r.length,Math.floor(t))),s=typeof n=="number"?Math.max(o,Math.min(r.length,Math.floor(n))):r.length;return r.graphemes.slice(o,s).join("")}i(ms,"sliceTranscriptText");function JT(e,t){let n=qa(e),r=Math.max(0,Math.floor(t));if(r<=0||n.length===0)return 0;for(let o=0;o<n.length;o+=1){let s=n.visualOffsets[o]??0,a=o+1<n.length?n.visualOffsets[o+1]??n.displayWidth:n.displayWidth;if(r<a||r===s)return o}return n.length}i(JT,"resolveTranscriptTextIndexAtVisualColumn");function nd(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(nd,"formatTimestamp");function eP(e,t){let n=e.split(`
273
- `),r=n.slice(0,t),o=n.length>t;return{lines:r,hasMore:o}}i(eP,"truncateLines");function tP(e){switch(e){case $.Scheduled:return"\u25CB";case $.Validating:return"\u25D0";case $.AwaitingApproval:return"\u23F8";case $.Executing:return"\u25CF";case $.Success:return"\u2713";case $.Error:return"\u2717";case $.Cancelled:return"\u2298";default:return"?"}}i(tP,"getToolStatusIcon");function nP(e,t){switch(e){case $.Scheduled:case $.Validating:return t.colors.dim;case $.AwaitingApproval:return t.colors.accent;case $.Executing:return t.colors.primary;case $.Success:return t.colors.success;case $.Error:return t.colors.error;case $.Cancelled:return t.colors.dim;default:return t.colors.text}}i(nP,"getToolStatusColor");var rP=an(({item:e,theme:t})=>{let n=er(()=>Xu(e.text),[e.text]);return Fe(I,{flexDirection:"column",marginBottom:1,children:[Fe(I,{children:[de(T,{color:t.colors.primary,bold:!0,children:"You"}),Fe(T,{dimColor:!0,children:[" [",nd(e.timestamp),"]"]})]}),de(I,{marginLeft:2,children:de(T,{color:t.colors.text,children:n})})]})}),oP=an(({item:e,theme:t,maxLines:n})=>{let r=e.compactText??e.text,{lines:o,hasMore:s}=eP(r,n);return Fe(I,{flexDirection:"column",marginBottom:1,children:[Fe(I,{children:[de(T,{color:t.colors.secondary,bold:!0,children:"Assistant"}),e.isStreaming&&Fe(Xp,{children:[de(T,{children:" "}),de(bn,{color:t.colors.accent})]}),Fe(T,{dimColor:!0,children:[" [",nd(e.timestamp),"]"]})]}),Fe(I,{marginLeft:2,flexDirection:"column",children:[o.map((a,c)=>de(T,{color:t.colors.text,children:a||" "},c)),s&&Fe(T,{dimColor:!0,children:["... (",r.split(`
274
- `).length-n," more lines)"]})]})]})}),iP=an(({item:e,theme:t})=>Fe(I,{flexDirection:"column",marginBottom:1,children:[Fe(I,{children:[de(T,{color:t.colors.dim,bold:!0,children:"System"}),Fe(T,{dimColor:!0,children:[" [",nd(e.timestamp),"]"]})]}),de(I,{marginLeft:2,children:de(T,{dimColor:!0,children:e.text})})]})),sP=an(({tool:e,count:t=1,theme:n})=>{let r=tP(e.status),o=nP(e.status,n);return Fe(I,{flexDirection:"column",marginLeft:2,children:[Fe(I,{children:[Fe(T,{color:o,children:[r," "]}),de(T,{color:n.colors.text,bold:!0,children:Xa({tool:e,count:t})})]}),e.error&&de(I,{marginLeft:2,children:de(T,{color:n.colors.error,children:e.error})})]})}),aP=an(({item:e,theme:t})=>{let n=Vu(e.tools);return Fe(I,{flexDirection:"column",marginBottom:1,children:[Fe(I,{children:[de(T,{color:t.colors.accent,bold:!0,children:"Tools"}),Fe(T,{dimColor:!0,children:[" [",nd(e.timestamp),"]"]})]}),n.map(r=>de(sP,{tool:r.tool,count:r.count,theme:t},`${r.tool.id}-${r.count}`))]})}),cP=an(({item:e,theme:t})=>Fe(I,{flexDirection:"column",marginBottom:1,children:[de(I,{children:de(T,{color:t.colors.thinking,italic:!0,children:"Thinking"})}),de(I,{marginLeft:2,children:de(T,{color:t.colors.thinking,italic:!0,children:e.compactText??e.text})})]})),lP=an(({item:e,theme:t})=>Fe(I,{flexDirection:"column",marginBottom:1,children:[de(I,{children:Fe(T,{color:t.colors.error,bold:!0,children:["\u2717"," Error"]})}),de(I,{marginLeft:2,children:de(T,{color:t.colors.error,children:e.text})})]})),uP=an(({item:e,theme:t})=>de(I,{flexDirection:"column",marginBottom:1,children:Fe(T,{color:t.colors.text,children:[de(T,{color:t.colors.accent,bold:!0,children:e.icon??">"}),de(T,{children:" "}),e.compactText??e.text]})})),dP=an(({item:e,theme:t})=>de(I,{flexDirection:"column",marginBottom:e.tightSpacing?0:1,children:Fe(T,{color:t.colors.info,children:[Fe(T,{bold:!0,children:[e.icon??"\u2139"," "]}),e.compactText??e.text]})})),fP=an(({item:e,theme:t})=>Fe(I,{flexDirection:"column",marginBottom:1,children:[de(I,{children:Fe(T,{color:t.colors.hint,bold:!0,children:["\u{1F4A1}"," Hint"]})}),de(I,{marginLeft:2,children:de(T,{dimColor:!0,children:e.text})})]})),mP=an(({item:e,theme:t,maxLines:n=1e3})=>{let r=er(()=>te("dark"),[]),o=t??r;switch(e.type){case"user":return de(rP,{item:e,theme:o});case"assistant":return de(oP,{item:e,theme:o,maxLines:n});case"system":return de(iP,{item:e,theme:o});case"tool_group":return de(aP,{item:e,theme:o});case"thinking":return de(cP,{item:e,theme:o});case"error":return de(lP,{item:e,theme:o});case"event":return de(uP,{item:e,theme:o});case"info":return de(dP,{item:e,theme:o});case"hint":return de(fP,{item:e,theme:o});default:return de(I,{children:de(T,{dimColor:!0,children:"Unknown item type"})})}});function pP(e,t){if(e.theme!==t.theme||(e.animateSpinners??!0)!==(t.animateSpinners??!0)||(e.selectedItem??!1)!==(t.selectedItem??!1))return!1;let n=e.row,r=t.row;if(n!==r){if(n.key!==r.key||n.text!==r.text||n.color!==r.color||n.bold!==r.bold||n.italic!==r.italic||n.indent!==r.indent||n.spinner!==r.spinner||n.itemId!==r.itemId)return!1}let o=e.selectionRange,s=t.selectionRange;return o===s?!0:!o||!s?!1:o.start===s.start&&o.end===s.end}i(pP,"areTranscriptRowPropsEqual");var eC=an(({row:e,theme:t,animateSpinners:n=!0,selectedItem:r=!1,selectionRange:o})=>{let s=XT(t,e.color),a=e.text===" "?"":e.text,c=a||" ",l=o&&a?ms(a,o.start,o.end):"",u=o&&a?ms(a,0,o.start):a,m=o&&a?ms(a,o.end):"",p=r&&!o,g=!p&&e.color==="dim",h={bold:e.bold||p,italic:e.italic,dimColor:g};return Fe(I,{marginLeft:e.indent??0,children:[e.spinner&&n&&Fe(Xp,{children:[de(bn,{color:t.colors.accent,theme:t}),de(T,{children:" "})]}),de(T,{color:p?t.colors.accent:s,...h,children:o&&a?Fe(Xp,{children:[u?de(T,{color:p?t.colors.accent:s,...h,children:u}):null,de(T,{backgroundColor:t.colors.accent,color:t.colors.background,bold:!0,italic:e.italic,children:l}),m?de(T,{color:p?t.colors.accent:s,...h,children:m}):null]}):c})]})},pP),gP=an(({section:e,theme:t,animateSpinners:n=!0})=>de(I,{flexDirection:"column",children:e.rows.map(r=>de(eC,{row:r,theme:t,animateSpinners:n},r.key))})),Fo=i(({items:e,isLoading:t=!1,maxLines:n=1e3,isThinking:r=!1,thinkingCharCount:o=0,thinkingContent:s="",streamingResponse:a="",currentTool:c,activeToolCalls:l,toolInputCharCount:u=0,toolInputContent:m="",iterationHistory:p=[],currentIteration:g=1,isCompacting:h=!1,agentMode:x,managedPhase:C,managedHarnessProfile:w,managedWorkerTitle:b,managedRound:P,managedMaxRounds:L,managedGlobalWorkBudget:F,managedBudgetUsage:O,managedBudgetApprovalRequired:N,lastLiveActivityLabel:k,viewportRows:ae,viewportWidth:me,scrollOffset:W=0,animateSpinners:X=!0,windowed:v=!1,showFullThinking:M=!1,showDetailedTools:ne=!1,showAllContent:xe=!1,showLiveProgressRows:Re=!0,selectedItemId:Se,expandedItemKeys:le,onMetricsChange:Le,onVisibleRowsChange:J,rendererWindow:Y,selectedTextRanges:q,transcriptModel:Ge,visibleRowsOverride:Te})=>{let _e=er(()=>te("dark"),[]),{stdout:Ee}=Yn(),ft=me??Ee?.columns??80,we=er(()=>Ge??Zu({items:e,viewportWidth:ft,isLoading:t,maxLines:n,isThinking:r,thinkingCharCount:o,thinkingContent:s,streamingResponse:a,currentTool:c,activeToolCalls:l,toolInputCharCount:u,toolInputContent:m,iterationHistory:p,currentIteration:g,isCompacting:h,managedAgentMode:x,managedPhase:C,managedHarnessProfile:w,managedWorkerTitle:b,managedRound:P,managedMaxRounds:L,managedGlobalWorkBudget:F,managedBudgetUsage:O,managedBudgetApprovalRequired:N,lastLiveActivityLabel:k,windowed:v,showFullThinking:M,showDetailedTools:ne,showAllContent:xe,showLiveProgressRows:Re,expandedItemKeys:le}),[Ge,e,ft,t,n,r,o,s,a,c,l,u,m,p,g,h,x,C,w,b,P,L,F,O,N,k,v,M,ne,xe,Re,le]),Ze=we.staticSections,et=we.rows,ie=we.previewRows,A=er(()=>[...et,...ie],[ie,et]),U=!(A.length>0)&&e.length===0&&!t,ee=er(()=>v||Y||Te?A:et,[A,Y,et,Te,v]),Oe=er(()=>Te||GT(ee,{viewportTop:Y?Math.max(0,Y.viewportTop):void 0,viewportHeight:Y?Math.max(0,Y.viewportHeight):void 0,start:void 0,end:void 0,viewportRows:ae,scrollOffset:W,windowed:v}),[Y,W,ae,Te,v,ee]),tt=er(()=>Te||v||Y?Oe:A,[A,Y,Oe,Te,v]),Ce=er(()=>A,[A]),Be=Y?Math.max(0,Y.viewportHeight):ae;return ZT(()=>{Le?.({scrollHeight:A.length,viewportHeight:Y?Math.max(0,Y.viewportHeight):Be??A.length})},[A.length,Be,Le,Y]),ZT(()=>{J?.({rows:tt,allRows:Ce})},[Ce,J,tt]),U?de(I,{paddingY:1,children:de(T,{dimColor:!0,children:"No messages yet. Start typing to begin."})}):Fe(I,{flexDirection:"column",children:[!v&&Ze.length>0&&de(Xi,{items:Ze,children:i(ve=>de(gP,{section:ve,theme:_e,animateSpinners:X},ve.key),"children")}),tt.map(ve=>de(eC,{row:ve,theme:_e,animateSpinners:X,selectedItem:Se?ve.key.startsWith(`${Se}-`):!1,selectionRange:q?.get(ve.key)},ve.key))]})},"MessageList");var hP=i(({role:e,content:t})=>{let n=er(()=>te("dark"),[]),r={user:n.colors.primary,assistant:n.colors.secondary,system:n.colors.dim}[e];return Fe(I,{flexDirection:"column",marginBottom:1,children:[de(T,{color:r,bold:!0,children:e==="user"?">":e==="assistant"?"<":"#"}),de(T,{children:t})]})},"SimpleMessageDisplay");import{jsx as qp,jsxs as sd}from"react/jsx-runtime";import LP,{useMemo as Qp}from"react";var yP="\u{1F504}",xP="\u2588",wP="\u2592",SP="\u2192",TP=" \xB7 ";function CP(e){switch(e){case"auto":return"auto";case"balanced":return"balanced";case"quick":return"quick";case"deep":return"deep";case"off":return"off";default:return e.toLowerCase()}}i(CP,"formatReasoningModeShort");function bP(e){switch(e){case"budget":case"B":return"B";case"effort":case"E":return"E";case"toggle":case"T":return"T";case"prompt":case"-":return"-";case"unknown":case"?":return"?";default:return e??""}}i(bP,"formatReasoningCapabilityShort");function vP(e){switch(e){case"off":return"dim";case"quick":return"green";case"balanced":return"yellow";case"deep":return"magenta";default:return"cyan"}}i(vP,"getReasoningColor");function tC(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(tC,"formatTokenCount");function IP(e){let t=Math.min(10,Math.max(0,Math.round(e/10))),n=10-t;return`${xP.repeat(t)}${wP.repeat(n)}`}i(IP,"createMiniProgressBar");function kP(e,t,n){if(t===0)return"green";let r=e/t*100,o=n*(2/3);return r>=n?"red":r>=o?"yellow":"green"}i(kP,"getContextColor");function RP(e){switch(e.toLowerCase()){case"plan":return"blue";case"accept-edits":return"green";case"auto":case"auto-in-project":return"warning";default:return"magenta"}}i(RP,"getPermissionModeColor");function EP(e,t){let n=Ji(e);return!(e==="auto"||e==="auto-in-project")||!t?n:`${n}${t==="llm"?"[LLM]":"[RULES]"}`}i(EP,"buildPermissionModeText");function MP(e){let t=e.toLowerCase();return t.includes("read")||t.includes("view")||t.includes("search")||t.includes("list")||t.includes("find")||t.includes("browser")||t.includes("get")?"Read":t.includes("write")||t.includes("replace")||t.includes("edit")||t.includes("modify")?"Edit":t.includes("command")||t.includes("bash")||t.includes("terminal")?"Bash":t.includes("ask")||t.includes("notify")||t.includes("user")||t.includes("question")?"Ask":t.includes("think")||t.includes("reason")?"Think":e}i(MP,"formatToolAction");function AP(e){switch(e){case"H0_DIRECT":return"H0";case"H1_EXECUTE_EVAL":return"H1";case"H2_PLAN_EXECUTE_EVAL":return"H2";default:return e}}i(AP,"formatHarnessProfileShort");function rd(e,t){return t&&t>0?`${e} (${t} chars)`:e}i(rd,"formatThinkingStatus");function od(e,t,n){let r=MP(e);return n?`${r} (${n}...)`:t&&t>0?`${r} (${t} chars)`:r}i(od,"formatToolStatus");function Yp({activeToolCount:e,currentTool:t,isThinkingActive:n,thinkingCharCount:r,isCompacting:o,toolInputCharCount:s,toolInputContent:a,managedPhase:c,managedHarnessProfile:l,managedWorkerTitle:u,managedIdleWaiting:m,managedIdleWaitingPendingCount:p}){let g=e&&e>0?`${e} tool${e===1?"":"s"} running`:void 0;if(o)return"Compacting";if(c==="routing")return g?`Routing - ${g}`:t?`Routing - ${od(t,s,a)}`:n?rd("Routing",r):"Routing";if(c==="preflight"){let h=u??"Scout";return g?`${h} - ${g}`:t?`${h} - ${od(t,s,a)}`:n?rd(h,r):h}if(l){let x=`${AP(l)}${u?` - ${u}`:""}`;if(m===!0&&!g&&!t&&!n){let C=p??0,w=C>1?`waiting for ${C} children`:C===1?"waiting for 1 child":"idle - resuming";return`${x} - ${w}`}return g?`${x} - ${g}`:t?`${x} - ${od(t,s,a)}`:n?rd(x,r):x}if(g)return g;if(t)return od(t,s,a);if(n)return rd("Thinking",r)}i(Yp,"buildBusyStatusText");function _P({agentMode:e,managedPhase:t,managedHarnessProfile:n,managedRound:r,managedMaxRounds:o,managedGlobalWorkBudget:s,managedBudgetUsage:a,currentIteration:c,maxIter:l}){let u=[];return t==="routing"||t==="preflight"||(n&&r&&o&&r>1&&u.push({label:"Round",current:r,max:o}),n&&s&&typeof a=="number"?u.push({label:"Work",current:a,max:s}):e==="sa"&&c&&l&&u.push({label:"Iter",current:c,max:l})),u}i(_P,"resolveIterationSegments");function PP(e){if(e.length!==0)return`${yP} ${e.map(t=>`${t.label} ${t.current}/${t.max}`).join(TP)}`}i(PP,"formatLabeledIterationStatus");function $P(e){let{sessionId:t,permissionMode:n,agentMode:r,provider:o,model:s,tokenUsage:a,currentTool:c,activeToolCount:l,thinking:u,isThinkingActive:m,thinkingCharCount:p,reasoningMode:g=u?"auto":"off",reasoningCapability:h,isCompacting:x,toolInputCharCount:C,toolInputContent:w,currentIteration:b,maxIter:P,contextUsage:L,showBusyStatus:F=!0,managedPhase:O,managedHarnessProfile:N,managedWorkerTitle:k,managedRound:ae,managedMaxRounds:me,managedGlobalWorkBudget:W,managedBudgetUsage:X,managedIdleWaiting:v,managedIdleWaitingPendingCount:M}=e,ne=[{id:"agent-mode",text:`KodaX - ${r.toUpperCase()}`,color:"primary",bold:!0},{id:"permission-mode",text:EP(n,e.autoModeEngine),color:RP(n)}],xe=CP(g),Re=bP(h);ne.push({id:"reasoning-mode",text:h?`${xe}/${Re}`:xe,color:vP(g)});let Se=_P({agentMode:r,managedPhase:O,managedHarnessProfile:N,managedRound:ae,managedMaxRounds:me,managedGlobalWorkBudget:W,managedBudgetUsage:X,currentIteration:b,maxIter:P}),le=PP(Se);if(le){let J=Math.max(...Se.map(q=>q.current/q.max)),Y="green";J>=.8?Y="red":J>=.5&&(Y="yellow"),ne.push({id:"iteration-status",text:le,color:Y})}ne.push({id:"session-id",text:t,color:"dim"});let Le=F?Yp({activeToolCount:l,currentTool:c,isThinkingActive:m,thinkingCharCount:p,isCompacting:x,toolInputCharCount:C,toolInputContent:w,managedPhase:O,managedHarnessProfile:N,managedWorkerTitle:k,managedIdleWaiting:v,managedIdleWaitingPendingCount:M}):void 0;if(Le&&ne.push({id:"busy-status",text:Le,color:"dim"}),ne.push({id:"provider-model",text:`${o}/${s}`,color:"secondary"}),L&&L.contextWindow!==0){let J=Math.round(L.currentTokens/L.contextWindow*100),Y=tC(L.currentTokens),q=tC(L.contextWindow),Ge=IP(J);ne.push({id:"context-usage",text:`${Y}/${q} ${Ge} ${J}%`,color:kP(L.currentTokens,L.contextWindow,L.triggerPercent)})}return a&&ne.push({id:"token-usage",text:`${a.input}${SP}${a.output} (${a.total})`,color:"dim"}),ne}i($P,"buildStatusBarSegments");function id(e){let t=$P(e);return{text:t.map(n=>n.text).join(" | "),segments:t}}i(id,"buildStatusBarViewModel");function OP(e,t){if(e.color)return t.colors[e.color]??e.color;switch(e.tone){case"primary":return t.colors.primary;case"accent":return t.colors.accent;case"success":return t.colors.success;case"warning":return t.colors.warning;case"error":return t.colors.error;default:return t.colors.dim}}i(OP,"resolveViewModelSegmentColor");var ps=i(({viewModel:e,...t})=>{let n=Qp(()=>te("dark"),[]),r=Qp(()=>e??id(t),[t,e]);return qp(I,{paddingX:1,children:r.segments.map((o,s)=>sd(LP.Fragment,{children:[qp(T,{color:OP(o,n),bold:o.bold,children:o.text}),s<r.segments.length-1?qp(T,{dimColor:!0,children:" | "}):null]},o.id))})},"StatusBar"),DP=i(({permissionMode:e,provider:t,model:n})=>{let r=Qp(()=>te("dark"),[]);return sd(I,{children:[sd(T,{color:r.colors.primary,bold:!0,children:["[",e,"]"]}),sd(T,{dimColor:!0,children:[" ",t,"/",n]})]})},"SimpleStatusBar");import{jsx as Vr,jsxs as ld}from"react/jsx-runtime";import{useState as Jp,useCallback as ad,useMemo as nC}from"react";function cd(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(cd,"generateId");function NP(e){let t={id:e.id,timestamp:e.timestamp};switch(e.role){case"user":return{...t,type:"user",text:e.content};case"assistant":return{...t,type:"assistant",text:e.content};case"system":return{...t,type:"system",text:e.content};default:return{...t,type:"info",text:e.content}}}i(NP,"messageToHistoryItem");var BP=i(({model:e,provider:t,onSubmit:n,permissionMode:r="accept-edits",agentMode:o="ama"})=>{let{stdout:s}=Yn(),a=nC(()=>te("dark"),[]),[c,l]=Jp({messages:[],isLoading:!1,sessionId:cd()}),[u,m]=Jp(null),[p,g]=Jp(),h=ad(async b=>{if(!b.trim())return;let P={id:cd(),role:"user",content:b,timestamp:Date.now()};l(L=>({...L,messages:[...L.messages,P],isLoading:!0}));try{await n(b)}catch(L){let F={id:cd(),role:"system",content:`Error: ${L instanceof Error?L.message:"Unknown error"}`,timestamp:Date.now()};l(O=>({...O,messages:[...O.messages,F],isLoading:!1}))}finally{l(L=>({...L,isLoading:!1}))}},[n]),x=ad((b,P)=>{let L={id:cd(),role:b,content:P,timestamp:Date.now()};l(F=>({...F,messages:[...F.messages,L]}))},[]),C=ad((b,P)=>{m({input:b,output:P,total:b+P})},[]),w=ad(b=>{g(b)},[]);return ld(I,{flexDirection:"column",children:[Vr(I,{flexGrow:1,flexDirection:"column",overflow:"hidden",children:Vr(Fo,{items:c.messages.map(NP),isLoading:c.isLoading})}),Vr(I,{flexShrink:0,children:Vr(ls,{onSubmit:i(b=>h(b.fullText),"onSubmit"),prompt:">",focus:!c.isLoading})}),Vr(I,{flexShrink:0,children:Vr(ps,{sessionId:c.sessionId,permissionMode:r,agentMode:o,provider:t,model:e,tokenUsage:u??void 0,currentTool:p})})]})},"App"),HP=i(({model:e,provider:t,onInput:n})=>{let r=nC(()=>te("dark"),[]);return ld(I,{flexDirection:"column",children:[ld(I,{marginBottom:1,children:[Vr(T,{color:r.colors.primary,bold:!0,children:"KodaX CLI"}),ld(T,{dimColor:!0,children:[" ","- ",t,"/",e]})]}),Vr(ls,{onSubmit:i(o=>n(o.fullText),"onSubmit"),placeholder:"Type a message...",prompt:">"})]})},"SimpleApp");import{jsx as FP}from"react/jsx-runtime";var Zp=i(({top:e,topRows:t=0,transcript:n,renderTranscriptWindow:r,footer:o,overlay:s,stickyHeader:a,jumpToLatest:c,width:l,scrollTop:u=0,scrollHeight:m=0,viewportHeight:p=0,stickyScroll:g=!0,scrollRef:h,onScrollTopChange:x,onStickyChange:C,onWindowChange:w})=>FP(Gm,{width:l,top:e,topRows:t,stickyHeader:a,jumpToLatest:c,scrollable:n,renderScrollableWindow:r,overlay:s,bottom:o,scrollTop:u,scrollHeight:m,viewportHeight:p,stickyScroll:g,scrollRef:h,onScrollTopChange:x,onStickyChange:C,onWindowChange:w}),"FullscreenTranscriptLayout");import{jsx as rC}from"react/jsx-runtime";function gs({copyMessage:e=!1,copyToolInput:t=!1,copyOnSelect:n=!1,toggleDetail:r=!1,selectionNavigation:o=!1,matchNavigation:s=!1,dismissAction:a}){let c=[];return o&&c.push("\u2190/\u2192 browse"),e&&c.push("C copy"),t&&c.push("I tool input"),n&&c.push("Mouse select copies"),r&&c.push("V details"),s&&c.push("N/Shift+N matches"),a==="clear"&&c.push("Esc clear"),a==="close-search"&&c.push("Esc close search"),c.length>0?c.join(" | "):void 0}i(gs,"buildMessageActionsText");var eg=i(({copyMessage:e=!1,copyToolInput:t=!1,copyOnSelect:n=!1,toggleDetail:r=!1,selectionNavigation:o=!1,matchNavigation:s=!1,dismissAction:a})=>{let c=te("dark"),l=gs({copyMessage:e,copyToolInput:t,copyOnSelect:n,toggleDetail:r,selectionNavigation:o,matchNavigation:s,dismissAction:a});return l?rC(I,{paddingX:1,children:rC(T,{color:c.colors.dim,children:l})}):null},"MessageActions");import{jsx as oC}from"react/jsx-runtime";function tg({itemSummary:e,itemKind:t,position:n,detailState:r="compact"}){if(!e||!n||n.total<=0)return;let o=r==="expanded"?"expanded":"compact",s=t?`${t}: `:"";return`Selected item ${n.current}/${n.total}: ${s}${e} | ${o}`}i(tg,"buildMessageSelectorText");var WP=i(({itemSummary:e,itemKind:t,position:n,detailState:r="compact"})=>{let o=te("dark"),s=tg({itemSummary:e,itemKind:t,position:n,detailState:r});return s?oC(I,{paddingX:1,children:oC(T,{color:o.colors.dim,children:s})}):null},"MessageSelector");import{jsx as hs,jsxs as UP}from"react/jsx-runtime";import{useMemo as iC}from"react";function ud(e,t){return Math.max(1,Xt(e.length>0?e.split(`
275
- `):[""],Math.max(1,t),0,0).visualLines.length)}i(ud,"countWrappedRows");var ng=i(({browse:e,selection:t,search:n,chromeMode:r="inline",...o})=>{let s=r==="inline",a=t?.itemSummary,c=t?.position,l=t?.itemKind,u=t?.detailState??"compact",m=t?.copyCapabilities,p=m?.message??!1,g=m?.toolInput??!1,h=m?.copyOnSelect??!1,x=t?.toggleDetail??!1,C=t?.navigationCapabilities?.selection??!1,w=n?.statusText,b=n?.matches?.length??0,P=n?.surface,L=o.viewportWidth??80,F=Math.max(1,L-2),O=n?.query?.trim()?"close-search":a||p||g||x||C?"clear":void 0,N=tg({itemSummary:a,itemKind:l,position:c,detailState:u}),k=iC(()=>gs({copyMessage:p,copyToolInput:g,copyOnSelect:h,toggleDetail:x,selectionNavigation:C,matchNavigation:!!w&&b>0,dismissAction:O}),[p,g,C,x,O,b,w,h]),ae=iC(()=>{if(!s)return 0;let W=0;return e?.hintText&&(W+=ud(e.hintText,F)),N&&(W+=ud(N,F)),k&&(W+=ud(k,F)),w&&(W+=ud(w,F)),P&&(W+=1),W},[k,e?.hintText,F,s,w,P,N]),me=typeof o.viewportRows=="number"?Math.max(1,o.viewportRows-ae):o.viewportRows;return UP(I,{flexDirection:"column",flexGrow:o.windowed?0:1,children:[s&&e?.hintText?hs(I,{paddingX:1,children:hs(T,{dimColor:!0,children:e.hintText})}):null,null,s&&(p||g||h||x||C||b>0)?hs(eg,{copyMessage:p,copyToolInput:g,copyOnSelect:h,toggleDetail:x,selectionNavigation:C,matchNavigation:!!w&&b>0,dismissAction:O}):null,s&&w?hs(I,{paddingX:1,children:hs(T,{dimColor:!0,children:w})}):null,s?P:null,hs(Fo,{...o,viewportRows:me})]})},"TranscriptViewport");import{jsx as sC}from"react/jsx-runtime";var rg=i(e=>sC(I,{flexDirection:"column",children:sC(ls,{...e})}),"PromptComposer");import{jsx as Wo,jsxs as dd}from"react/jsx-runtime";import aC from"react";var cC=" \xB7 ",fd=i(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=te("dark");return t.length===0?null:Wo(I,{flexGrow:1,children:t.map((r,o)=>dd(aC.Fragment,{children:[Wo(T,{color:r.accent?n.colors.accent:n.colors.dim,bold:r.accent,children:r.label}),o<t.length-1?Wo(T,{dimColor:!0,children:cC}):null]},r.id))})},"PromptFooterLeftSide"),md=i(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=te("dark");return t.length===0?null:Wo(I,{justifyContent:"flex-end",children:t.map((r,o)=>dd(aC.Fragment,{children:[Wo(T,{color:r.accent?n.colors.primary:n.colors.dim,bold:r.accent,children:r.label}),o<t.length-1?Wo(T,{dimColor:!0,children:cC}):null]},r.id))})},"PromptFooterRightSide"),pd=i(({left:e,right:t,queued:n,stashNotice:r,notifications:o,inlineNotices:s,activityBar:a,todoSurface:c,composer:l,inlineSuggestions:u,helpSurface:m,taskBar:p,statusLine:g,inlineDialogs:h})=>dd(I,{flexDirection:"column",children:[e||t?dd(I,{paddingX:1,children:[Wo(I,{flexGrow:1,children:e}),t]}):null,n,r,o,s,a,c,l,u,h,m,p,g]}),"PromptFooter");import{jsx as og,jsxs as lC}from"react/jsx-runtime";var ig=i(({sections:e,title:t="Help"})=>{let n=te("dark"),r=e.filter(o=>o.items.length>0);return r.length===0?null:lC(I,{flexDirection:"column",borderStyle:"round",borderColor:n.colors.accent,paddingX:1,marginTop:1,children:[og(T,{color:n.colors.accent,bold:!0,children:t}),r.map(o=>lC(I,{flexDirection:"column",children:[og(T,{color:n.colors.primary,bold:!0,children:o.title}),og(T,{dimColor:!0,children:o.items.map(s=>s.label).join(" | ")})]},o.id))]})},"PromptHelpMenu");import{jsx as uC}from"react/jsx-runtime";import{createContext as dC,useContext as fC,useReducer as jP,useCallback as Ht,useMemo as GP}from"react";var KP=150;function gd(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(gd,"generateId");function sg(e){return{...e,id:gd(),timestamp:Date.now()}}i(sg,"createHistoryItem");function ag(e){return{...e,id:gd(),startTime:Date.now()}}i(ag,"createToolCall");function VP(e,t){switch(t.type){case"SET_STREAMING_STATE":return{...e,streamingState:t.payload};case"APPEND_TO_RESPONSE":return{...e,currentResponse:e.currentResponse+t.payload};case"CLEAR_RESPONSE":return{...e,currentResponse:""};case"ADD_HISTORY_ITEM":let n=[...e.history,t.payload];if(n.length<=KP)return{...e,history:n};let r=0,o=0;for(let a=n.length-1;a>=0;a--)if(n[a]?.type==="user"&&(r++,r>50)){o=a;break}let s=o>0?n.slice(o):n;return{...e,history:s};case"UPDATE_HISTORY_ITEM":return{...e,history:e.history.map(a=>a.id===t.payload.id?{...a,...t.payload.updates}:a)};case"CLEAR_HISTORY":return{...e,history:[]};case"ADD_TOOL_CALL":return{...e,pendingToolCalls:[...e.pendingToolCalls,t.payload]};case"UPDATE_TOOL_CALL":return{...e,pendingToolCalls:e.pendingToolCalls.map(a=>a.id===t.payload.id?{...a,...t.payload.updates}:a)};case"CLEAR_TOOL_CALLS":return{...e,pendingToolCalls:[]};case"SET_SESSION_ID":return{...e,sessionId:t.payload};case"SET_PROVIDER":return{...e,provider:t.payload};case"SET_MODEL":return{...e,model:t.payload};case"SET_TOKEN_USAGE":return{...e,tokenUsage:t.payload};case"SET_ERROR":return{...e,error:t.payload};case"SET_LOADING":return{...e,isLoading:t.payload};case"RESET_STATE":return{...zm,sessionId:e.sessionId};default:return e}}i(VP,"uiReducer");var mC=dC(null),pC=dC(null);function hd({children:e,initialState:t}){let[n,r]=jP(VP,{...zm,...t}),o=Ht(O=>{r({type:"SET_STREAMING_STATE",payload:O})},[]),s=Ht(O=>{r({type:"APPEND_TO_RESPONSE",payload:O})},[]),a=Ht(()=>{r({type:"CLEAR_RESPONSE"})},[]),c=Ht(O=>{let N=sg(O);r({type:"ADD_HISTORY_ITEM",payload:N})},[]),l=Ht((O,N)=>{r({type:"UPDATE_HISTORY_ITEM",payload:{id:O,updates:N}})},[]),u=Ht(()=>{r({type:"CLEAR_HISTORY"})},[]),m=Ht(O=>{let N=ag(O);return r({type:"ADD_TOOL_CALL",payload:N}),N.id},[]),p=Ht((O,N)=>{r({type:"UPDATE_TOOL_CALL",payload:{id:O,updates:N}})},[]),g=Ht(()=>{r({type:"CLEAR_TOOL_CALLS"})},[]),h=Ht(O=>{r({type:"SET_SESSION_ID",payload:O})},[]),x=Ht(O=>{r({type:"SET_MODE",payload:O})},[]),C=Ht(O=>{r({type:"SET_PROVIDER",payload:O})},[]),w=Ht(O=>{r({type:"SET_MODEL",payload:O})},[]),b=Ht(O=>{r({type:"SET_TOKEN_USAGE",payload:O})},[]),P=Ht(O=>{r({type:"SET_ERROR",payload:O})},[]),L=Ht(O=>{r({type:"SET_LOADING",payload:O})},[]),F=GP(()=>({setStreamingState:o,appendToResponse:s,clearResponse:a,addHistoryItem:c,updateHistoryItem:l,clearHistory:u,addToolCall:m,updateToolCall:p,clearToolCalls:g,setSessionId:h,setMode:x,setProvider:C,setModel:w,setTokenUsage:b,setError:P,setLoading:L}),[o,s,a,c,l,u,m,p,g,h,x,C,w,b,P,L]);return uC(mC.Provider,{value:n,children:uC(pC.Provider,{value:F,children:e})})}i(hd,"UIStateProvider");function Qa(){let e=fC(mC);if(!e)throw new Error("useUIState must be used within a UIStateProvider");return e}i(Qa,"useUIState");function Ja(){let e=fC(pC);if(!e)throw new Error("useUIActions must be used within a UIStateProvider");return e}i(Ja,"useUIActions");function gC(){let e=Qa(),t=Ja();return{state:e,actions:t}}i(gC,"useUI");function cg(){return te()}i(cg,"useTheme");import{jsxs as zr,jsx as yd,Fragment as zP}from"react/jsx-runtime";import{useMemo as XP}from"react";var YP=80,qP=7,QP={command:">",file:"\u{1F4C4}",history:"\u23F1",argument:"\u2022",snippet:"\u25C7",skill:"\u2605"};function JP(e,t,n){if(t<=n)return{start:0,end:t};let r=Math.floor(n/2),o=e-r,s=o+n;return o<0?(o=0,s=n):s>t&&(s=t,o=t-n),{start:o,end:s}}i(JP,"getVisibleRange");function ZP({suggestion:e,isSelected:t,width:n}){let r=cg(),o=e.icon||e.type&&QP[e.type]||"",s=o?zn(o)+1:0,a=zn(e.displayText||e.text),c=e.description?zn(e.description):0,l=Math.min(a,n-s-2),u=n-s-l-3,m=Math.max(0,u),p=pa(e.displayText||e.text,l),g=e.description?pa(e.description,m):"";return zr(I,{children:[o&&zr(T,{color:t?r.colors.accent:r.colors.dim,children:[o," "]}),yd(T,{color:t?r.colors.primary:r.colors.text,bold:t,children:p}),g&&zr(zP,{children:[yd(T,{children:" "}),yd(T,{color:r.colors.dim,children:pa(e.description||"",m)})]}),t&&zr(T,{color:r.colors.accent,children:[" ","\u25C0"]})]})}i(ZP,"SuggestionItem");function xd({suggestions:e,selectedIndex:t,visible:n,maxVisible:r=qP,width:o=YP,showCount:s=!1}){let a=cg();if(!n||e.length===0)return null;let{start:c,end:l}=XP(()=>JP(t,e.length,r),[t,e.length,r]),u=e.slice(c,l);return zr(I,{flexDirection:"column",marginLeft:2,children:[c>0&&zr(T,{color:a.colors.dim,children:[" ","\u25B2 ",c," more..."]}),u.map((m,p)=>{let h=c+p===t;return yd(ZP,{suggestion:m,isSelected:h,width:o},m.id)}),l<e.length&&zr(T,{color:a.colors.dim,children:[" ","\u25BC ",e.length-l," more..."]}),s&&zr(T,{color:a.colors.dim,children:[t+1,"/",e.length]})]})}i(xd,"SuggestionsDisplay");import{jsx as ys,jsxs as e$}from"react/jsx-runtime";var lg=i(({reserveSpace:e,width:t,hidden:n=!1,mode:r="inline"})=>{let o=No(),s=te("dark");if(n)return null;if(!o)return e?ys(I,{height:8}):null;let{state:a,suggestions:c}=o;return a.visible&&c.length>0?r==="overlay"?e$(I,{flexDirection:"column",borderStyle:"round",borderColor:s.colors.accent,paddingX:1,marginTop:1,children:[ys(T,{color:s.colors.accent,bold:!0,children:"Suggestions"}),ys(xd,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-6)})]}):ys(I,{height:8,children:ys(xd,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-2)})}):e?ys(I,{height:8}):null},"PromptSuggestionsSurface");import{jsxs as Ln,jsx as vn,Fragment as ug}from"react/jsx-runtime";import t$,{useEffect as n$,useState as r$}from"react";var xs=15,hC=Math.max(1,xs-2),dg=i(({confirm:e,request:t})=>e?Ln(I,{flexDirection:"column",borderStyle:"round",borderColor:"yellow",paddingX:1,marginTop:1,width:"100%",children:[Ln(T,{color:"yellow",bold:!0,children:[Z("dialog.confirm")," ",e.prompt]}),e.planContent?vn(o$,{content:e.planContent}):null,e.instruction?vn(T,{dimColor:!0,children:e.instruction}):null]}):t?Ln(I,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,marginTop:1,width:"100%",children:[t.kind==="select"?Ln(ug,{children:[Ln(T,{color:"cyan",bold:!0,children:[Z("dialog.select")," ",t.title]}),(()=>{let n=t.options??[],r=t.visibleSelectOptions??5,o=t.focusedIndex??0,s=n.length,a=0;if(s>r){let u=Math.floor(r/2);a=Math.max(0,Math.min(o-u,s-r))}let c=a,l=Math.max(0,s-a-r);return Ln(ug,{children:[c>0?vn(T,{dimColor:!0,children:Z("select.more_above",{count:c})}):null,n.slice(a,a+r).map((u,m)=>{let p=a+m,g=p===o,h=t.selectedIndices?.includes(p)??!1,x=g?"\u276F ":" ",C=h?" \u2713":"",w=u.description?` - ${u.description}`:"";return vn(T,{color:g?"cyan":void 0,dimColor:!g,children:`${x}${u.label}${w}${C}`},`${u.value}-${p}`)}),l>0?vn(T,{dimColor:!0,children:Z("select.more_below",{count:l})}):null]})})(),vn(T,{dimColor:!0,children:t.multiSelect?Z("select.multiselect_hint"):Z("select.navigate_hint")})]}):Ln(ug,{children:[Ln(T,{color:"cyan",bold:!0,children:[Z("dialog.input")," ",t.prompt]}),t.defaultValue!==void 0?vn(T,{dimColor:!0,children:`${Z("input.default")} ${t.defaultValue}`}):null,vn(T,{dimColor:!0,children:`${Z("input.value")} ${t.buffer||Z("input.type_response")}`}),vn(T,{dimColor:!0,children:Z("select.confirm_hint")})]}),t.error?vn(T,{color:"red",children:t.error}):null]}):null,"DialogSurface"),o$=i(({content:e})=>{let t=t$.useMemo(()=>e.split(`
276
- `),[e]),n=t.length,r=n>xs,[o,s]=r$(0);n$(()=>{s(u=>{let m=Math.max(0,n-xs);return u>m?m:u})},[n]),au((u,m)=>{if(!r)return;let p=Math.max(0,n-xs);m.upArrow?s(g=>Math.max(0,g-1)):m.downArrow?s(g=>Math.min(p,g+1)):m.pageUp?s(g=>Math.max(0,g-hC)):m.pageDown&&s(g=>Math.min(p,g+hC))},{isActive:!0});let a=t.slice(o,o+xs),c=o,l=Math.max(0,n-o-xs);return Ln(I,{flexDirection:"column",marginTop:1,children:[r&&c>0?Ln(T,{dimColor:!0,children:["\u2026 ",c," more line",c===1?"":"s"," above"]}):null,a.map((u,m)=>vn(T,{children:u},`plan-line-${o+m}`)),r&&l>0?Ln(T,{dimColor:!0,children:["\u2026 ",l," more line",l===1?"":"s"," below"]}):null,r?vn(T,{dimColor:!0,children:"PgUp/PgDn/\u2191\u2193 to scroll"}):null]})},"PlanScrollPanel");import{jsxs as Za,jsx as i$}from"react/jsx-runtime";function yC(e){let t=e.replace(/\s+/g," ").trim();return t.length<=72?t:`${t.slice(0,69)}...`}i(yC,"normalizePendingPreview");function xC(e){if(e.length===0)return;let t=yC(e[e.length-1]??"");return e.length===1?`Queued 1 follow-up: ${t} (Esc removes it)`:`Queued ${e.length} follow-ups. Latest: ${t} (Esc removes latest)`}i(xC,"formatPendingInputsSummary");function fg(e){if(e.length===0)return[];let t=e.length;return e.map((n,r)=>({index:r+1,total:t,preview:yC(n)}))}i(fg,"formatPendingInputsLines");function wC(e){let t=fg(e);return t.length===0?void 0:[...t.map(o=>`\u23F3 [${o.index}/${o.total}] ${o.preview}`)," \u2191 pull all into editor \xB7 Esc drops latest"].join(`
277
- `)}i(wC,"formatPendingInputsBudgetText");var mg=i(({pendingInputs:e})=>{let t=fg(e);if(t.length===0)return null;let n=te("dark");return Za(I,{flexDirection:"column",children:[t.map(r=>Za(I,{children:[Za(T,{color:n.colors.hint,children:["\u23F3"," "]}),Za(T,{color:n.colors.dim,children:["[",r.index,"/",r.total,"] ",r.preview]})]},r.index)),i$(I,{children:Za(T,{color:n.colors.dim,children:[" ","\u2191 pull all into editor \xB7 Esc drops latest"]})})]})},"QueuedCommandsSurface");import{jsx as SC}from"react/jsx-runtime";function s$(e,t){switch(e){case"warning":return t.warning;case"accent":return t.accent;default:return t.dim}}i(s$,"resolveNotificationColor");var wd=i(({notifications:e})=>{let t=e.filter(r=>r.text.trim().length>0),n=te("dark");return t.length===0?null:SC(I,{flexDirection:"column",paddingX:1,children:t.map(r=>SC(T,{color:s$(r.tone,n.colors),children:r.text},r.id))})},"NotificationsSurface");import{jsx as TC}from"react/jsx-runtime";var pg=i(({notices:e})=>{let t=e.filter(r=>r.trim().length>0);if(t.length===0)return null;let n=te("dark");return TC(I,{flexDirection:"column",paddingX:1,children:t.map((r,o)=>TC(T,{color:n.colors.dim,children:r},`${r}-${o}`))})},"StatusNoticesSurface");import{jsxs as CC,jsx as a$}from"react/jsx-runtime";var Sd=i(({text:e})=>{let t=e?.trim();if(!t)return null;let n=te("dark");return CC(I,{paddingX:1,children:[CC(T,{color:n.colors.hint,children:["\u22EF"," "]}),a$(T,{color:n.colors.dim,children:t})]})},"StashNotice");import{jsx as Uo,jsxs as c$}from"react/jsx-runtime";function bC({text:e,accent:t=!1,selected:n=!1}){let r=te("dark");return Uo(I,{marginRight:1,children:Uo(T,{color:t?r.colors.accent:r.colors.primary,bold:n||t,children:`[ ${e} ]`})})}i(bC,"Pill");var Td=i(({items:e,overflowLabel:t,ctaHint:n,showSpinner:r=!1})=>{let o=e.filter(s=>s.label.trim().length>0);return o.length===0&&!t&&!n&&!r?null:c$(I,{flexDirection:"row",paddingX:1,children:[r?Uo(I,{marginRight:1,children:Uo(bn,{})}):null,o.map(s=>Uo(bC,{text:s.hint?`${s.label} (${s.hint})`:s.label,accent:s.accent,selected:s.selected},s.id)),t?Uo(bC,{text:t}):null,n?Uo(T,{dimColor:!0,children:n}):null]})},"BackgroundTaskBar");import vC,{createContext as kC,useContext as RC,useReducer as l$,useCallback as je,useRef as u$,useEffect as IC}from"react";function d$(e){return e.agentId===void 0&&e.priority==="user"&&e.mode==="prompt"}i(d$,"isMainThreadPrompt");function yg(){return Gn().getSnapshot().filter(d$)}i(yg,"getMainThreadPrompts");function gg(){return yg().map(e=>e.content)}i(gg,"getMainThreadPromptContents");var hg={state:on.Idle,currentResponse:"",error:void 0,abortController:void 0,isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentTool:void 0,toolInputCharCount:0,toolInputContent:"",iterationHistory:[],currentIteration:1,maxIter:200,isCompacting:!1,pendingInputs:[],roundStartedAt:null};function xg(){let e={...hg,pendingInputs:gg()},t=new Set,n="",r="",o=0,s=null,a=!1,c=80,l=i(()=>{for(let x of t)x(e)},"notify"),u=i(()=>{let x=gg();if(x.length===e.pendingInputs.length){let C=!0;for(let w=0;w<x.length;w++)if(x[w]!==e.pendingInputs[w]){C=!1;break}if(C)return}e={...e,pendingInputs:x},l()},"syncReactStateFromQueue"),m=Gn().subscribe(()=>{u()}),p=i(()=>Gn().dequeue({maxPriority:"user",mode:"prompt"}).map(C=>C.content),"drainOurSlice"),g=i(()=>{if(s&&(clearTimeout(s),s=null),n||r||o>0){let C=e.thinkingContent+r,w=r?C.length:e.thinkingCharCount+o;e={...e,currentResponse:e.currentResponse+n,thinkingContent:C,thinkingCharCount:w,...r||o>0?{isThinking:!0}:{}},n="",r="",o=0,l()}},"flushPendingUpdates"),h=i(()=>{s||(s=setTimeout(g,c))},"scheduleFlush");return{getState:i(()=>e,"getState"),setState:i(x=>{g(),e={...e,state:x},l()},"setState"),startStreaming:i(()=>{a=!1,n="",r="",o=0,s&&(clearTimeout(s),s=null),e={...e,state:on.Responding,currentResponse:"",abortController:new AbortController,error:void 0,roundStartedAt:Date.now()},l()},"startStreaming"),stopStreaming:i(()=>{g(),e={...e,state:on.Idle,abortController:void 0,roundStartedAt:null},l()},"stopStreaming"),appendResponse:i(x=>{a||(n+=x,h())},"appendResponse"),clearResponse:i(()=>{g(),e={...e,currentResponse:""},l()},"clearResponse"),setError:i(x=>{g(),e={...e,error:x,state:x?on.Idle:e.state},l()},"setError"),abort:i(x=>{a=!0,g(),e.abortController?.abort(),n="",r="",o=0,s&&(clearTimeout(s),s=null),x?.preservePendingInputs||p(),e={...e,state:on.Idle,abortController:void 0,roundStartedAt:null},l()},"abort"),reset:i(()=>{a=!0,g(),e.abortController?.abort(),n="",r="",o=0,s&&(clearTimeout(s),s=null),p(),e={...hg,pendingInputs:gg()},a=!1,l()},"reset"),isStreaming:i(()=>e.state===on.Responding||e.state===on.WaitingForConfirmation,"isStreaming"),subscribe:i(x=>(t.add(x),()=>{t.delete(x)}),"subscribe"),startThinking:i(()=>{g(),e={...e,isThinking:!0,thinkingCharCount:0,thinkingContent:""},l()},"startThinking"),appendThinkingChars:i(x=>{a||(o+=x,h())},"appendThinkingChars"),appendThinkingContent:i(x=>{a||(r+=x,h())},"appendThinkingContent"),stopThinking:i(()=>{g(),e={...e,isThinking:!1,thinkingCharCount:0},l()},"stopThinking"),clearThinkingContent:i(()=>{g(),e={...e,isThinking:!1,thinkingCharCount:0,thinkingContent:""},l()},"clearThinkingContent"),setCurrentTool:i(x=>{g(),e={...e,currentTool:x,toolInputCharCount:0,toolInputContent:""},l()},"setCurrentTool"),appendToolInputChars:i(x=>{e={...e,toolInputCharCount:e.toolInputCharCount+x},l()},"appendToolInputChars"),appendToolInputContent:i(x=>{e.toolInputContent.length<240&&(e={...e,toolInputContent:(e.toolInputContent+x).slice(0,240)},l())},"appendToolInputContent"),clearToolInputContent:i(()=>{e={...e,toolInputContent:""},l()},"clearToolInputContent"),getSignal:i(()=>e.abortController?.signal,"getSignal"),getFullResponse:i(()=>e.currentResponse+n,"getFullResponse"),getThinkingContent:i(()=>e.thinkingContent+r,"getThinkingContent"),startNewIteration:i(x=>{g(),e.thinkingContent||e.currentResponse?e={...e,thinkingContent:"",thinkingCharCount:0,currentResponse:"",isThinking:!1,currentTool:void 0,toolInputCharCount:0,toolInputContent:"",currentIteration:x}:e={...e,currentIteration:x},l()},"startNewIteration"),clearIterationHistory:i(()=>{g(),e={...e,iterationHistory:[],currentIteration:1,maxIter:hg.maxIter,thinkingContent:"",thinkingCharCount:0,currentResponse:"",currentTool:void 0,toolInputCharCount:0,toolInputContent:""},l()},"clearIterationHistory"),setMaxIter:i(x=>{g(),e={...e,maxIter:x},l()},"setMaxIter"),startCompacting:i(()=>{g(),e={...e,isCompacting:!0},l()},"startCompacting"),stopCompacting:i(()=>{g(),e={...e,isCompacting:!1},l()},"stopCompacting"),addPendingInput:i(x=>{let C=x.trim();C&&(yg().length>=5||(g(),Gn().enqueue({priority:"user",mode:"prompt",content:C})))},"addPendingInput"),removeLastPendingInput:i(()=>{let x=yg(),C=x[x.length-1];C&&(g(),Gn().dequeue({maxPriority:"user",mode:"prompt",id:C.id}))},"removeLastPendingInput"),shiftPendingInput:i(()=>(g(),Gn().dequeue({maxPriority:"user",mode:"prompt",limit:1})[0]?.content),"shiftPendingInput"),clearPendingInputs:i(()=>{g(),p()},"clearPendingInputs"),consumePendingInputs:i(()=>(g(),p()),"consumePendingInputs"),dispose:i(()=>{m()},"dispose")}}i(xg,"createStreamingManager");var EC=kC(null),MC=kC(null);function Cd({children:e,onStateChange:t}){let n=u$(xg()),[,r]=l$(le=>le+1,0);IC(()=>n.current.subscribe(Le=>{r(),t?.(Le)}),[t]),IC(()=>{let le=n.current;return()=>{le.dispose()}},[]);let o=je(()=>{n.current.startStreaming()},[]),s=je(()=>{n.current.stopStreaming()},[]),a=je(le=>{n.current.appendResponse(le)},[]),c=je(()=>{n.current.clearResponse()},[]),l=je(le=>{n.current.setError(le)},[]),u=je(le=>{n.current.abort(le)},[]),m=je(()=>{n.current.reset()},[]),p=je(()=>{n.current.startThinking()},[]),g=je(le=>{n.current.appendThinkingChars(le)},[]),h=je(le=>{n.current.appendThinkingContent(le)},[]),x=je(()=>{n.current.stopThinking()},[]),C=je(()=>{n.current.clearThinkingContent()},[]),w=je(le=>{n.current.setCurrentTool(le)},[]),b=je(le=>{n.current.appendToolInputChars(le)},[]),P=je(le=>{n.current.appendToolInputContent(le)},[]),L=je(()=>{n.current.clearToolInputContent()},[]),F=je(()=>n.current.getSignal(),[]),O=je(()=>n.current.getFullResponse(),[]),N=je(()=>n.current.getThinkingContent(),[]),k=je(le=>{n.current.startNewIteration(le)},[]),ae=je(()=>{n.current.clearIterationHistory()},[]),me=je(le=>{n.current.setMaxIter(le)},[]),W=je(()=>{n.current.startCompacting()},[]),X=je(()=>{n.current.stopCompacting()},[]),v=je(le=>{n.current.addPendingInput(le)},[]),M=je(()=>{n.current.removeLastPendingInput()},[]),ne=je(()=>n.current.shiftPendingInput(),[]),xe=je(()=>{n.current.clearPendingInputs()},[]),Re=je(()=>n.current.consumePendingInputs(),[]),Se={startStreaming:o,stopStreaming:s,appendResponse:a,clearResponse:c,setError:l,abort:u,reset:m,startThinking:p,appendThinkingChars:g,appendThinkingContent:h,stopThinking:x,clearThinkingContent:C,setCurrentTool:w,appendToolInputChars:b,appendToolInputContent:P,clearToolInputContent:L,getSignal:F,getFullResponse:O,getThinkingContent:N,startNewIteration:k,clearIterationHistory:ae,setMaxIter:me,startCompacting:W,stopCompacting:X,addPendingInput:v,removeLastPendingInput:M,shiftPendingInput:ne,clearPendingInputs:xe,consumePendingInputs:Re};return vC.createElement(EC.Provider,{value:n.current.getState()},vC.createElement(MC.Provider,{value:Se},e))}i(Cd,"StreamingProvider");function tc(){let e=RC(EC);if(!e)throw new Error("useStreamingState must be used within a StreamingProvider");return e}i(tc,"useStreamingState");function nc(){let e=RC(MC);if(!e)throw new Error("useStreamingActions must be used within a StreamingProvider");return e}i(nc,"useStreamingActions");function AC(){let e=tc(),t=nc(),n=e.state===on.Responding||e.state===on.WaitingForConfirmation;return{state:e,actions:t,isStreaming:n}}i(AC,"useStreaming");import{useCallback as f$,useRef as m$}from"react";var p$=500;function g$(e={}){let{onKey:t,onEsc:n,onCtrlC:r,enabled:o=!0}=e,s=m$(0),{exit:a}=Br(),c=f$(l=>{if(!o)return!1;if(l.name==="escape"){let u=Date.now(),m=u-s.current<p$;return s.current=u,m&&(l.name="escape-escape"),n?.(),t?.(l),!0}return l.ctrl&&l.name==="c"?(r?.(),t?.(l),!0):l.ctrl&&l.name==="d"?(a(),!0):(t?.(l),!1)},[o,a,r,n,t]);return sn(c,{isActive:o}),{lastEscTime:s.current}}i(g$,"useKeypress");function h$(e){return{is:i((t,n)=>!(e.name!==t||n?.ctrl!==void 0&&e.ctrl!==n.ctrl||n?.shift!==void 0&&e.shift!==n.shift||n?.meta!==void 0&&e.meta!==n.meta),"is"),isCtrl:i(t=>e.ctrl&&e.name===t,"isCtrl"),isShift:i(t=>e.shift&&e.name===t,"isShift"),isArrow:i(()=>["up","down","left","right"].includes(e.name),"isArrow"),isChar:i(()=>e.sequence?.length===1&&!e.ctrl&&!e.meta,"isChar"),getChar:i(()=>e.sequence?.length===1?e.sequence:null,"getChar")}}i(h$,"createKeyMatcher");import{useCallback as y$,useSyncExternalStore as x$}from"react";function w$(e){return e.agentId===void 0&&e.priority==="user"&&e.mode==="prompt"}i(w$,"isMainThreadPrompt");var wg=null,bd=Object.freeze([]);function _C(){let e=Gn().getSnapshot();return e===wg||(wg=e,bd=Object.freeze(e.filter(w$))),bd}i(_C,"getQueueSliceSnapshot");function PC(){let e=y$(t=>Gn().subscribe(t),[]);return x$(e,_C,_C)}i(PC,"useQueuedPrompts");function S$(){return PC().map(t=>t.content)}i(S$,"useQueuedPromptContents");function T$(){wg=null,bd=Object.freeze([])}i(T$,"_resetQueuedPromptsCacheForTests");async function rc(e){return{messages:e.existingMessages??[],uiHistory:e.existingUiHistory?.map(t=>({...t})),lineage:e.existingLineage??void 0,artifactLedger:e.existingArtifactLedger?.map(t=>({...t,metadata:t.metadata?{...t.metadata}:void 0})),sessionId:e.sessionId??oc(),title:"",gitRoot:e.gitRoot,runtimeInfo:e.runtimeInfo,createdAt:new Date().toISOString(),lastAccessed:new Date().toISOString()}}i(rc,"createInteractiveContext");function oc(){let e=new Date,t=e.toISOString().split("T")[0].replace(/-/g,""),n=e.toTimeString().split(" ")[0].replace(/:/g,"");return`${t}_${n}`}i(oc,"generateSessionId");function tr(e){e.lastAccessed=new Date().toISOString()}i(tr,"touchContext");async function ic(e){let t=await dx({userKodaxDir:Yy(),projectRoot:e.projectRoot}),n;return{getGuardrail:i(()=>n||(n=fx({rules:t.merged,claudeMd:qy(e.getAgentsFiles()),getToolProjection:i(o=>(Il(o)??tx(o))?.toClassifierInput,"getToolProjection"),resolveProvider:i(o=>{try{return fo(o)}catch{return}},"resolveProvider"),defaultProvider:e.getCurrentProviderName(),defaultModel:e.getCurrentModel()??"",getDefaultProvider:e.getCurrentProviderName,getDefaultModel:i(()=>{let o=e.getCurrentModel();return o||(e.log?.("warn","[auto-mode] classifier defaultModel is empty; main session has no model set \u2014 classifier will likely fail"),"")},"getDefaultModel"),askUser:e.askUser,log:e.log,onEngineChange:e.onEngineChange,projectRoot:e.projectRoot,extraCollectors:e.extraCollectors,initialEngine:e.autoModeSettings.engine,timeoutMs:e.autoModeSettings.timeoutMs,userSettings:e.autoModeSettings.classifierModel,envVar:e.autoModeSettings.classifierModelEnv}),n),"getGuardrail"),rulesLoadResult:t}}i(ic,"bootstrapAutoMode");var ws=class{static{i(this,"MemorySessionStorage")}sessions=new Map;async save(t,n){let r=this.sessions.get(t);this.sessions.set(t,{...structuredClone(n),scope:n.scope??r?.scope??"user",uiHistory:n.uiHistory??r?.uiHistory,extensionState:n.extensionState??r?.extensionState,artifactLedger:n.artifactLedger??r?.artifactLedger,extensionRecords:n.extensionRecords??r?.extensionRecords,lineage:gn(n.messages,n.lineage??r?.lineage)})}async load(t){return structuredClone(this.sessions.get(t)??null)}async getLineage(t){return structuredClone(this.sessions.get(t)?.lineage??null)}async setActiveEntry(t,n,r){let o=this.sessions.get(t);if(!o?.lineage)return null;let s=Ti(o.lineage,n,r);if(!s)return null;let a={...structuredClone(o),messages:Rt(s),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async setLabel(t,n,r){let o=this.sessions.get(t);if(!o?.lineage)return null;let s=Ci(o.lineage,n,r);if(!s)return null;let a={...structuredClone(o),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async fork(t,n,r){let o=this.sessions.get(t);if(!o?.lineage)return null;let s=Ii(o.lineage,n);if(!s)return null;let a=r?.sessionId??await Si(),c={messages:Rt(s),title:r?.title??o.title,gitRoot:o.gitRoot,uiHistory:o.uiHistory?o.uiHistory.map(l=>({...l})):void 0,extensionState:o.extensionState?structuredClone(o.extensionState):void 0,artifactLedger:o.artifactLedger?structuredClone(o.artifactLedger):void 0,extensionRecords:o.extensionRecords?structuredClone(o.extensionRecords):void 0,lineage:s};return this.sessions.set(a,c),{sessionId:a,data:structuredClone(c)}}async rewind(t,n){let r=this.sessions.get(t);if(!r?.lineage)return null;let o=n??bi(r.lineage);if(!o)return null;let s=vi(r.lineage,o);if(!s)return null;let a={...r,messages:Rt(s),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async list(t){return Array.from(this.sessions.entries()).filter(([,n])=>(n.scope??"user")==="user").map(([n,r])=>({id:n,title:r.title,msgCount:r.lineage?go(r.lineage):r.messages.length}))}async delete(t){this.sessions.delete(t)}async deleteAll(t){this.sessions.clear()}};function C$(){return new ws}i(C$,"createMemorySessionStorage");import*as $C from"child_process";import*as LC from"util";import vd from"chalk";var b$=LC.promisify($C.exec),v$={maxBuffer:1024*1024,timeout:3e4,maxOutputLength:8e3,maxErrorLength:4e3};async function Id(e,t={}){let n={...v$,...t},r=e.trim(),o=rp(r);if(o)return o.startsWith("[Blocked]")&&(console.log(vd.yellow(`
278
- ${o}`)),console.log()),o;try{console.log(vd.dim(`
279
- [Executing: ${r}]`));let{stdout:s,stderr:a}=await b$(r,{cwd:n.cwd,maxBuffer:n.maxBuffer,timeout:n.timeout,windowsHide:!0}),c="";return s&&(c+=s),a&&(c+=(c?`
280
- `:"")+`[stderr] ${a}`),c.length>n.maxOutputLength&&(c=c.slice(0,n.maxOutputLength)+`
281
- ...[output truncated]`),console.log(vd.dim(c||"[No output]")),console.log(),`[Shell command executed: ${r}]
282
-
283
- Output:
284
- ${c||"(no output)"}`}catch(s){let c=(s instanceof Error?s:new Error(String(s))).message;return c.length>n.maxErrorLength&&(c=c.slice(0,n.maxErrorLength)+`
285
- ...[error truncated]`),console.log(vd.red(`
286
- [Shell Error: ${c}]`)),console.log(),`[Shell command failed: ${r}]
287
-
288
- Error: ${c}`}}i(Id,"executeShellCommand");async function Sg(e,t={}){if(e.startsWith("!")){let n=e.slice(1).trim();return Id(n,t)}return e}i(Sg,"processSpecialSyntax");function I$(e){return e.trim().startsWith("!")}i(I$,"isShellCommand");function k$(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell:")}i(k$,"isShellCommandSuccess");function sc(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell command failed:")||e.startsWith("[Shell:")||e.startsWith("[Blocked]")}i(sc,"isShellCommandHandled");function kd(e,t,n){let r=e.trim();return{type:"info",icon:"\u23F3",text:/\bretry\s+\d+\/\d+\b/i.test(r)||/\b\d+\/\d+\b/.test(r)?r:`${r} \xB7 retry ${t}/${n}`}}i(kd,"createRetryHistoryItem");function Tg(e,t,n,r){e(kd(t,n,r))}i(Tg,"emitRetryHistoryItem");function Rd(e){let{recoveryAction:t,attempt:n,maxAttempts:r,delayMs:o,stage:s,fallbackUsed:a}=e,c=Math.round(o/1e3);if(t==="manual_continue")return{type:"info",icon:"\u26A0",text:'Recovery exhausted. Type "continue" to retry or "stop" to cancel.'};if(t==="non_streaming_fallback"||a)return{type:"info",icon:"\u23F3",text:"Stream unstable, switching to non-streaming mode"};if(t==="sanitize_thinking_and_retry")return{type:"info",icon:"\u23F3",text:"Provider rejected replay thinking, sanitizing history and retrying"};let l;switch(s){case"before_first_delta":case"before_request_accepted":l="Provider request timed out";break;case"mid_stream_text":case"mid_stream_thinking":l="Stream interrupted after partial output";break;case"mid_stream_tool_input":l="Stream interrupted during tool input";break;case"post_tool_execution_pre_assistant_close":l="Stream interrupted after tool execution";break;default:l="Stream interrupted";break}let u=t==="stable_boundary_retry"?"recovering":"retrying";return{type:"info",icon:"\u23F3",text:c>0?`${l} \xB7 ${u} ${n}/${r} in ${c}s`:`${l} \xB7 ${u} ${n}/${r}`}}i(Rd,"createRecoveryHistoryItem");function Cg(e,t){e(Rd(t))}i(Cg,"emitRecoveryHistoryItem");import{jsx as se,jsxs as Vt,Fragment as w1}from"react/jsx-runtime";import _v,{useState as We,useCallback as z,useRef as fe,useEffect as He,useMemo as ue}from"react";import{jsx as nr,Fragment as R$,jsxs as Ed}from"react/jsx-runtime";var bg=" | ",OC=i(({searchActive:e=!1,selectionActive:t=!1,showAllActive:n=!1,searchQuery:r="",searchCurrent:o=0,searchCount:s=0,searchDetailText:a,pendingLiveUpdates:c=0,secondaryText:l,noticeText:u})=>{let m=te("dark"),p=r.trim(),g=a?.trim(),h=l?.trim(),x=u?.trim(),C=e?p?`Search /${p}`:"Search":"Transcript",w=e?`Enter jump | n/N next/prev | Ctrl+E ${n?"collapse":"show all"} | Esc close | Ctrl+O/q back`:t?`PgUp/PgDn page | j/k scroll | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | Esc clear focus | Ctrl+O/q back`:`PgUp/PgDn page | j/k scroll | \u2190/\u2192 select | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | s dump | Ctrl+O/q/Esc back`,b=c>0?c===1?"1 new update":`${c} new updates`:void 0,P=e&&s>0?`${Math.max(0,o)}/${s}`:void 0,L=e&&g||h,F=!!(L||x);return Ed(I,{flexDirection:"column",children:[Ed(I,{paddingX:1,children:[nr(T,{color:m.colors.dim,children:C}),nr(T,{dimColor:!0,children:bg}),nr(T,{color:m.colors.dim,children:w}),P||b?nr(I,{flexGrow:1}):null,P?Ed(R$,{children:[nr(T,{dimColor:!0,children:P}),b?nr(T,{dimColor:!0,children:bg}):null]}):null,b?nr(T,{color:m.colors.accent,bold:!0,children:b}):null]}),F?Ed(I,{paddingX:1,children:[L?nr(T,{color:m.colors.dim,children:L}):null,L&&x?nr(T,{dimColor:!0,children:bg}):null,x?nr(T,{color:m.colors.accent,bold:!0,children:x}):null]}):null]})},"TranscriptModeFooter");import{jsx as E$,jsxs as M$}from"react/jsx-runtime";var DC=i(({banner:e,...t})=>M$(I,{flexDirection:"column",children:[e,E$(Fo,{...t,animateSpinners:!1,showFullThinking:!1,showDetailedTools:!1,showLiveProgressRows:!1})]}),"PromptTranscriptSurface");import{jsx as A$,jsxs as _$}from"react/jsx-runtime";var NC=i(({banner:e,windowed:t=!1,showDetailedTools:n=!1,showAllContent:r=!1,...o})=>_$(I,{flexDirection:"column",children:[e,A$(ng,{...o,chromeMode:"hidden",windowed:t,showFullThinking:!0,showDetailedTools:n,showAllContent:r,showLiveProgressRows:!0})]}),"TranscriptModeSurface");import{jsxs as P$,jsx as $$}from"react/jsx-runtime";var BC=i(({text:e,tone:t="success"})=>{let n=e?.trim();if(!n)return null;let r=te("dark"),o=t==="warning"?r.colors.warning:r.colors.accent,s=t==="warning"?"!":"\u2713";return $$(I,{paddingX:1,backgroundColor:r.colors.inputBackground,children:P$(T,{color:o,children:[s," ",n]})})},"ClipboardToastSurface");import{jsx as Xr,Fragment as L$,jsxs as vg}from"react/jsx-runtime";var O$=" \u23BF ";function D$(e){let t=te("dark");switch(e){case"cyan":return t.colors.primary;case"green":return t.colors.success;case"red":return t.colors.error;default:return t.colors.dim}}i(D$,"resolveSymbolColor");var N$=i(({row:e})=>{let t=D$(e.symbolColor),n=e.kind!=="item";return vg(I,{flexDirection:"row",children:[Xr(T,{color:t,bold:e.isActive,children:e.symbol}),Xr(T,{children:" "}),Xr(T,{dimColor:n,bold:e.isActive,strikethrough:e.isStrikethrough,children:e.text}),e.evaluatorBadge?vg(L$,{children:[Xr(T,{children:" "}),Xr(T,{dimColor:!0,children:e.evaluatorBadge})]}):null]})},"TodoListRow"),HC=i(({viewModel:e})=>{if(!e.shouldRender||e.rows.length===0)return null;let t=te("dark").colors.dim;return vg(I,{flexDirection:"row",children:[Xr(T,{color:t,children:O$}),Xr(I,{flexDirection:"column",flexGrow:1,children:e.rows.map((n,r)=>Xr(N$,{row:n},`${n.kind}-${n.id??r}`))})]})},"TodoListSurface");function B$(e){switch(e){case"in_progress":return{symbol:"\u25CF",color:"cyan"};case"completed":return{symbol:"\u2713",color:"green"};case"failed":return{symbol:"\u2717",color:"red"};case"skipped":return{symbol:"\u2298",color:"gray"};case"cancelled":return{symbol:"\u2612",color:"gray"};default:return{symbol:"\u2610",color:"dim"}}}i(B$,"symbolForStatus");function H$(e){for(let t=0;t<e.length;t++)if(e[t].status==="in_progress")return t;for(let t=0;t<e.length;t++)if(e[t].status==="pending")return t;for(let t=e.length-1;t>=0;t--)if(e[t].status==="completed")return t;return 0}i(H$,"pickAnchorIndex");function F$(e){let{symbol:t,color:n}=B$(e.status),r=e.status==="failed"&&e.note?`${e.subject} (${e.note})`:e.subject,o=e.status==="cancelled",s=e.evaluator?`[${e.evaluator}]`:void 0;return{kind:"item",id:e.id,symbol:t,symbolColor:n,text:r,isActive:e.status==="in_progress",isStrikethrough:o,evaluatorBadge:s}}i(F$,"buildItemRow");function W$(e){return{kind:"summary_done",symbol:"\u2713",symbolColor:"green",text:`${e} done`,isActive:!1}}i(W$,"buildDoneSummary");function Ig(e){return{kind:"summary_pending",symbol:"\u2610",symbolColor:"dim",text:`+${e} more`,isActive:!1}}i(Ig,"buildPendingSummary");function U$(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].status==="failed"&&!t.has(n))return n;return-1}i(U$,"pickFailedToPromote");function j$(e,t){let n=e.length;if(n===0)return{visibleIdx:[],hiddenCompletedCount:0,hiddenPendingCount:0};let r=4,o=Math.max(0,t-1),s=Math.min(n,o+r);s-o<r&&o>0&&(o=Math.max(0,s-r)),s-o<r&&s<n&&(s=Math.min(n,o+r));let a=[];for(let u=o;u<s;u++)a.push(u);let c=0,l=0;for(let u=0;u<o;u++)e[u].status==="completed"&&c++;for(let u=s;u<n;u++){let m=e[u].status;(m==="pending"||m==="in_progress")&&l++}return{visibleIdx:a,hiddenCompletedCount:c,hiddenPendingCount:l}}i(j$,"decideWindow");function FC(e,t){let n=e.length,r=e.reduce((h,x)=>x.status==="completed"?h+1:h,0),o=i((h,x)=>({shouldRender:x,rows:h,completedCount:r,totalCount:n}),"baseVm");if(n<1)return o([],!1);t.now,t.lastAllCompletedAt;let s=H$(e),a=j$(e,s),c=new Set(a.visibleIdx),l=U$(e,c),u=[...a.visibleIdx],m=a.hiddenCompletedCount,p=a.hiddenPendingCount;if(l>=0){let h=-1;for(let x=u.length-1;x>=0;x--){let C=u[x];if(C!==s&&e[C].status==="pending"){h=x;break}}if(h>=0){let x=u[h];u[h]=l,p+=1,u.sort((b,P)=>b-P);let C=u[0],w=0;for(let b=0;b<C;b++)e[b].status==="completed"&&w++;m=w}}let g=[];m>0&&g.push(W$(m));for(let h of u)g.push(F$(e[h]));if(p>0&&g.push(Ig(p)),g.length>6)for(;g.length>6;){let h=!1;for(let x=g.length-1;x>=0;x--){let C=g[x];if(C.kind==="item"&&!C.isActive){g.splice(x,1);let w=g[g.length-1];if(w&&w.kind==="summary_pending"){let b=/\+(\d+) more/.exec(w.text),P=b?Number.parseInt(b[1],10)+1:1;g[g.length-1]=Ig(P)}else g.push(Ig(1));h=!0;break}}if(!h)break}return o(g,!0)}i(FC,"buildTodoPlanViewModel");function WC(e){let t=[];e.isHistorySearchActive?t.push({id:"search",label:"Search",accent:!0}):e.isTranscriptMode&&t.push({id:"transcript",label:"Transcript"}),e.pendingInputCount>0&&t.push({id:"queue",label:`Queue ${e.pendingInputCount}`}),e.buffering==="buffered-fallback"&&(e.isHistorySearchActive||e.isTranscriptMode)&&t.push({id:"buffered",label:"Buffered"}),e.isTranscriptMode&&e.pendingLiveUpdates>0&&t.push({id:"updates",label:e.pendingLiveUpdates===1?"1 update":`${e.pendingLiveUpdates} updates`,accent:!0});let n=[],r=[...t,...n].map(o=>o.label.trim()).filter(Boolean).join(" | ");return{leftItems:t,rightItems:n,summary:r}}i(WC,"buildFooterHeaderViewModel");function G$(e){return Rl(e.provider,e.model,"off",{longRunning:!0})}i(G$,"evaluateSessionTransitionPolicy");function K$(e,t){let n=t.snapshot.model?`${t.snapshot.provider}:${t.snapshot.model}`:t.snapshot.provider,r=[`[Provider Guardrail] ${e} on ${n}: ${t.summary}`],o=t.issues[0]?.detail;return o&&r.push(` ${o}`),t.status==="block"?r.push(" Switch to a provider with durable full-history session semantics before continuing."):t.status==="warn"&&r.push(" Continuing with degraded session semantics."),r}i(K$,"formatSessionTransitionGuardMessage");function jo(e,t,n){let r=G$(e);if(!r||r.status==="allow")return!0;let[o,...s]=K$(t,r);return n(r.status,o,s),r.status!=="block"}i(jo,"enforceSessionTransitionGuard");function V$(e){switch(e.type){case"message":{let n=(typeof e.message.content=="string"?e.message.content:"[complex content]").replace(/\s+/g," ").trim();return`${e.message.role}: ${n.slice(0,48)}${n.length>48?"...":""}`}case"compaction":return`compaction: ${e.summary.slice(0,48)}${e.summary.length>48?"...":""}`;case"branch_summary":return`branch: ${e.summary.slice(0,48)}${e.summary.length>48?"...":""}`;case"archive_marker":return`archived: ${e.summary.slice(0,48)}${e.summary.length>48?"...":""}`;default:return e}}i(V$,"summarizeEntry");function UC(e,t,n,r){let o=t?n?"\\- ":"|- ":"",s=e.active?"*":" ",a=e.entry.id.slice(0,12),c=e.label?` [${e.label}]`:"";r.push(`${t}${o}${s} ${a} ${V$(e.entry)}${c}`);let l=t+(t?n?" ":"| ":"");e.children.forEach((u,m)=>{UC(u,l,m===e.children.length-1,r)})}i(UC,"formatNode");function Md(e){let t=[];return e.forEach((n,r)=>{UC(n,"",r===e.length-1,t)}),t}i(Md,"formatSessionTree");var z$=100,X$=/\b(curl|wget|invoke-webrequest|invoke-restmethod|iwr|irm)\b/i,GC=/\b(rm|del|erase|remove-item|rmdir|rd|git clean)\b/i,KC=/\b(npm|pnpm|yarn|pip|choco|winget)\s+(install|add|remove|uninstall|update|upgrade|ci)\b/i,VC=/\b(set-content|add-content|out-file|new-item|copy-item|move-item|rename-item|cp|mv|copy|move|ren|touch)\b/i;function Ss(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i(Ss,"readString");function Ft(e,t,n){n&&e.push({label:t,value:n})}i(Ft,"pushField");function Y$(e){return e.replace(/\s+/g," ").trim()}i(Y$,"normalizeWhitespace");function q$(e,t){if(e.length<=t)return e;let n=Math.ceil((t-3)/2),r=Math.floor((t-3)/2);return`${e.slice(0,n)}...${e.slice(e.length-r)}`}i(q$,"truncateMiddle");function Q$(e){let t=e;return t=t.replace(/\b(authorization\s*:\s*bearer\s+)([^\s'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b((?:authorization|cookie)\s*:\s*)([^'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b(bearer\s+)([^\s'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b(api[_-]?key|access[_-]?token|refresh[_-]?token|token|secret|password|passwd|cookie|session)\b(\s*[:=]\s*)(['"]?)([^'"\s]+)(\3)/gi,(n,r,o,s)=>`${r}${o}${s}[REDACTED]${s}`),t=t.replace(/(--(?:api-key|token|secret|password|cookie)\s+)(\S+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/((?:-u|--user)\s+)(\S+)/gi,(n,r)=>`${r}[REDACTED]`),t}i(Q$,"maskSensitiveSegments");function jC(e){return q$(Q$(Y$(e)),z$)}i(jC,"summarizeCommand");function J$(e){return Pn(e)?Z("intent.read"):GC.test(e)?Z("intent.delete"):KC.test(e)?Z("intent.deps"):$n(e)||VC.test(e)?Z("intent.modify"):Z("intent.execute")}i(J$,"classifyShellIntent");function Z$(e){let t=[];return GC.test(e)?t.push(Z("risk.destructive")):KC.test(e)?t.push(Z("risk.deps")):$n(e)||VC.test(e)?t.push(Z("risk.modify")):Pn(e)||t.push(Z("risk.unknown")),X$.test(e)&&t.push(Z("risk.network")),t}i(Z$,"classifyShellRisks");function eL(e){if(Array.isArray(e))return e.filter(t=>typeof t=="object"&&t!==null&&typeof t.kind=="string")}i(eL,"readSignals");function tL(e){if(e){if(e.some(t=>t.kind==="protected_path"))return Z("scope.protected");if(e.some(t=>t.kind==="outside_project"||t.kind==="shell_redirect_outside"))return Z("scope.outside")}}i(tL,"scopeFromSignals");function nL(e){if(e._outsideProject===!0)return Z("scope.outside");if(e._alwaysConfirm===!0)return Z("scope.protected")}i(nL,"scopeFromMarkers");function rL(e){if(!e)return[];let t=[],n=e.some(o=>o.kind==="dangerous_pattern"&&o.severity==="high"),r=e.some(o=>o.kind==="dangerous_pattern"&&o.severity==="medium");return n?t.push(Z("risk.destructive")):r&&t.push(Z("risk.modify")),e.some(o=>o.kind==="network")&&t.push(Z("risk.network")),e.some(o=>o.kind==="package_install")&&t.push(Z("risk.deps")),t}i(rL,"risksFromSignals");var oL={Reason:"field.reason",Intent:"field.intent",Target:"field.target",Scope:"field.scope",Risk:"field.risk",Summary:"field.summary"};function iL(e){return Z(oL[e])}i(iL,"localizeFieldLabel");function Ts(e,t){return{title:e,fields:t,details:t.map(n=>`${iL(n.label)}: ${n.value}`)}}i(Ts,"buildDisplayFromFields");function Ad(e,t){if(e==="confirm"){let l=Ss(t._message);if(l)return Ts(l,[])}if(e==="exit_plan_mode"){let l=Ss(t.plan),u="Approve plan? (exits plan mode \u2192 accept-edits)";return l?{title:u,fields:[],details:l.split(`
289
- `)}:Ts(u,[])}let n=[],r=Ss(t.path),o=Ss(t.command),s=Ss(t._reason)??Ss(t.justification),a=eL(t._classifierSignals),c=tL(a)??nL(t);switch(Ft(n,"Reason",s),e){case"bash":case"shell_command":{if(o){Ft(n,"Intent",J$(o)),Ft(n,"Scope",c);let l=rL(a),u=l.length>0?l:Z$(o);u.length>0&&Ft(n,"Risk",u.join("; ")),Ft(n,"Summary",jC(o))}else Ft(n,"Scope",c);return Ts(e==="bash"?Z("tool.bash.title"):Z("tool.shell.title"),n)}case"write":return Ft(n,"Intent",Z("intent.write_file")),Ft(n,"Target",r),Ft(n,"Scope",c),Ts(Z("tool.write.title"),n);case"edit":return Ft(n,"Intent",Z("intent.edit_file")),Ft(n,"Target",r),Ft(n,"Scope",c),Ts(Z("tool.edit.title"),n);default:return Ft(n,"Intent",Z("intent.use_tool",{tool:e})),Ft(n,"Target",r),Ft(n,"Scope",c),o&&Ft(n,"Summary",jC(o)),Ts(Z("tool.generic.title",{tool:e}),n)}}i(Ad,"buildToolConfirmationDisplay");function zC(e,t){let n=Ad(e,t);return n.details.length>0?`${n.title}
290
- ${n.details.join(`
291
- `)}`:n.title}i(zC,"buildToolConfirmationPrompt");var kg=[" \u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557"," \u2588\u2588\u2551 \u2588\u2588\u2554\u255D \u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u255A\u2588\u2588\u2557\u2588\u2588\u2554\u255D"," \u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2554\u255D "," \u2588\u2588\u2554\u2550\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551 \u2588\u2588\u2554\u2588\u2588\u2557 "," \u2588\u2588\u2551 \u2588\u2588\u2557 \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u255D \u2588\u2588\u2557"," \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D"];import Xe from"chalk";var _d=class e{static{i(this,"ShortcutsRegistry")}static instance=null;shortcuts=new Map;static getInstance(){return e.instance||(e.instance=new e),e.instance}static resetInstance(){e.instance=null}register(t){let n=this.shortcuts.get(t.id);this.shortcuts.set(t.id,{definition:t,effectiveBindings:n?.effectiveBindings??t.defaultBindings,handler:n?.handler})}registerAll(t){for(let n of t)this.register(n)}unregister(t){return this.shortcuts.delete(t)}setHandler(t,n){let r=this.shortcuts.get(t);r&&(r.handler=n)}findMatchingShortcut(t,n){let r=null,o=-1/0;for(let s of this.shortcuts.values()){let a=s.definition.context;a!=="global"&&a!==n||this.matchesBinding(t,s.effectiveBindings)&&s.handler&&s.definition.priority>o&&(o=s.definition.priority,r=s)}return r}matchesBinding(t,n){for(let r of n){let o=this.normalizeKeyName(t.name),s=this.normalizeKeyName(r.key);if(o===s){let a=(r.ctrl??!1)===t.ctrl,c=(r.shift??!1)===t.shift,l=(r.meta??!1)===t.meta;if(a&&c&&l)return!0}}return!1}normalizeKeyName(t){let n={return:"enter",esc:"escape",del:"delete",backspace:"backspace"," ":"space"},r=t.toLowerCase();return n[r]??r}executeShortcut(t,n){let r=this.findMatchingShortcut(t,n);return r?.handler?r.handler()===!0:!1}getAllShortcuts(){return Array.from(this.shortcuts.values())}getShortcutsByCategory(t){return this.getAllShortcuts().filter(n=>n.definition.category===t)}getShortcutsByContext(t){return this.getAllShortcuts().filter(n=>{let r=n.definition.context;return r==="global"||r===t})}formatBinding(t){let n=[];t.ctrl&&n.push("Ctrl"),t.meta&&n.push("Alt"),t.shift&&n.push("Shift");let r=t.key.length===1?t.key.toUpperCase():t.key;return n.push(r),n.join("+")}formatBindings(t){return t.map(n=>this.formatBinding(n)).join(" or ")}},rr=i(()=>_d.getInstance(),"getShortcutsRegistry");var Cs=[{id:"interrupt",name:"Interrupt",description:"Interrupt the current streaming response",defaultBindings:[{key:"c",ctrl:!0}],context:"global",priority:200,category:"global",configurable:!1},{id:"showHelp",name:"Toggle Help",description:"Show or hide shortcut help when the input is empty",defaultBindings:[{key:"?"}],context:"global",priority:150,category:"global",configurable:!0},{id:"toggleThinking",name:"Cycle Reasoning",description:"Cycle reasoning mode: off, auto, quick, balanced, deep",defaultBindings:[{key:"t",ctrl:!0}],context:"global",priority:150,category:"mode",configurable:!0},{id:"toggleTranscriptMode",name:"Toggle Transcript Mode",description:"Toggle transcript mode on or off",defaultBindings:[{key:"o",ctrl:!0}],context:"global",priority:150,category:"mode",configurable:!0},{id:"openTranscriptSearch",name:"Search Transcript",description:"Open transcript search",defaultBindings:[{key:"f",ctrl:!0}],context:"global",priority:150,category:"navigation",configurable:!0},{id:"togglePermissionMode",name:"Cycle Permissions",description:"Cycle permission mode: plan, accept-edits, auto-in-project",defaultBindings:[{key:"tab",shift:!0}],context:"global",priority:150,category:"mode",configurable:!0},{id:"toggleAgentMode",name:"Toggle Agent Mode",description:"Switch between AMA and SA",defaultBindings:[{key:"m",meta:!0}],context:"global",priority:150,category:"mode",configurable:!0},{id:"submitInput",name:"Submit Input",description:"Submit the current input",defaultBindings:[{key:"enter"}],context:"input",priority:50,category:"global",configurable:!1},{id:"acceptCompletion",name:"Accept Completion",description:"Accept the current autocomplete suggestion",defaultBindings:[{key:"tab"}],context:"input",priority:60,category:"editing",configurable:!0},{id:"cancelInput",name:"Cancel Input",description:"Cancel or clear the current input",defaultBindings:[{key:"escape"}],context:"input",priority:70,category:"editing",configurable:!0},{id:"newline",name:"Insert Newline",description:"Insert a newline in the current input",defaultBindings:[{key:"enter",shift:!0},{key:"j",ctrl:!0}],context:"input",priority:40,category:"editing",configurable:!0},{id:"historyUp",name:"History Up",description:"Browse previous input history",defaultBindings:[{key:"up"}],context:"input",priority:30,category:"navigation",configurable:!0},{id:"historyDown",name:"History Down",description:"Browse next input history",defaultBindings:[{key:"down"}],context:"input",priority:30,category:"navigation",configurable:!0},{id:"moveLeft",name:"Move Left",description:"Move the cursor left",defaultBindings:[{key:"left"}],context:"input",priority:20,category:"navigation",configurable:!1},{id:"moveRight",name:"Move Right",description:"Move the cursor right",defaultBindings:[{key:"right"}],context:"input",priority:20,category:"navigation",configurable:!1},{id:"moveToStart",name:"Move To Start",description:"Move the cursor to the start of the line",defaultBindings:[{key:"a",ctrl:!0}],context:"input",priority:25,category:"navigation",configurable:!0},{id:"moveToEnd",name:"Move To End",description:"Move the cursor to the end of the line",defaultBindings:[{key:"e",ctrl:!0}],context:"input",priority:25,category:"navigation",configurable:!0},{id:"killLineRight",name:"Delete To End",description:"Delete from the cursor to the end of the current line",defaultBindings:[{key:"k",ctrl:!0}],context:"input",priority:25,category:"editing",configurable:!0},{id:"killLineLeft",name:"Delete To Start",description:"Delete from the start of the line to the cursor",defaultBindings:[{key:"u",ctrl:!0}],context:"input",priority:25,category:"editing",configurable:!0},{id:"deleteWordLeft",name:"Delete Word Left",description:"Delete the word before the cursor",defaultBindings:[{key:"w",ctrl:!0},{key:"backspace",meta:!0}],context:"input",priority:25,category:"editing",configurable:!0},{id:"moveLineUp",name:"Move Line Up",description:"Move to the previous visual line in multiline input",defaultBindings:[{key:"up",ctrl:!0}],context:"input",priority:20,category:"navigation",configurable:!0},{id:"moveLineDown",name:"Move Line Down",description:"Move to the next visual line in multiline input",defaultBindings:[{key:"down",ctrl:!0}],context:"input",priority:20,category:"navigation",configurable:!0},{id:"backspace",name:"Backspace",description:"Delete the previous character",defaultBindings:[{key:"backspace"}],context:"input",priority:10,category:"editing",configurable:!1},{id:"delete",name:"Delete",description:"Delete the next character",defaultBindings:[{key:"delete"}],context:"input",priority:10,category:"editing",configurable:!1}];import{useEffect as sL,useCallback as aL,useRef as cL}from"react";function Tr(e,t,n={}){let{context:r,isActive:o=!0}=n,s=rr(),a=cL(t);a.current=t,sL(()=>(s.setHandler(e,(...u)=>a.current(...u)),()=>{s.setHandler(e,void 0)}),[s,e]);let c=aL(u=>{if(!o)return!1;let p=s.getAllShortcuts().find(C=>C.definition.id===e);if(!p)return!1;let g=r??p.definition.context,h=g==="global"?"input":g,x=s.findMatchingShortcut(u,h);return x&&x.definition.id===e?a.current()===!0:!1},[s,e,o,r]),l=lL(e,s);sn(c,{isActive:o,priority:l})}i(Tr,"useShortcut");function lL(e,t){let r=t.getAllShortcuts().find(o=>o.definition.id===e);return r?r.definition.priority:0}i(lL,"getShortcutPriority");import uL,{createContext as dL,useContext as fL,useState as XC,useCallback as Rg}from"react";var YC=dL(null);function Eg({children:e,initialContext:t="input"}){let[n,r]=XC(!1),[o,s]=XC(t);rr().registerAll(Cs);let c=Rg(()=>{r(p=>!p)},[]),l=Rg(()=>{let g=rr().getAllShortcuts(),h={global:[],mode:[],navigation:[],editing:[]};for(let x of g){let C=x.definition.category;h[C]||(h[C]=[]),h[C].push(x)}return h},[]),u=Rg(()=>rr().getShortcutsByContext(o),[o]),m={showHelp:n,toggleHelp:c,setShowHelp:r,currentContext:o,setCurrentContext:s,getShortcutsByCategory:l,getContextShortcuts:u};return uL.createElement(YC.Provider,{value:m},e)}i(Eg,"ShortcutsProvider");function Mg(){let e=fL(YC);if(!e)throw new Error("useShortcutsContext must be used within a ShortcutsProvider");return e}i(Mg,"useShortcutsContext");import mL from"chalk";function Ag({currentConfig:e,setCurrentConfig:t,isLoading:n,abort:r,stopThinking:o,clearThinkingContent:s,setCurrentTool:a,setIsLoading:c,onToggleHelp:l,setShowHelp:u,onSetThinking:m,onSetReasoningMode:p,onToggleTranscriptMode:g,onOpenTranscriptSearch:h,canOpenTranscriptSearch:x=!0,isInteractiveDialogActive:C=!1,onSetAgentMode:w,onSetPermissionMode:b,isInputEmpty:P,onSavePermissionMode:L}){return Tr("interrupt",()=>n?(r(),o(),s(),a(void 0),c(!1),console.log(mL.yellow(`
292
- [Interrupted]`)),!0):!1,{isActive:n}),Tr("showHelp",()=>C?!1:P?(l(),!0):!1,{isActive:P}),Tr("toggleThinking",()=>{if(C)return!1;let F=uo.indexOf(e.reasoningMode),O=uo[(F+1)%uo.length],N=O!=="off";return t(k=>({...k,thinking:N,reasoningMode:O})),mr({reasoningMode:O,thinking:N}),p?.(O),m?.(N),u(!1),!0}),Tr("toggleTranscriptMode",()=>C?!1:(g?.(),u(!1),!0)),Tr("openTranscriptSearch",()=>C||!x?!1:(h?.(),u(!1),!0)),Tr("togglePermissionMode",()=>{if(C)return!1;let F=["plan","accept-edits","auto"],O=e.permissionMode==="auto-in-project"?"auto":e.permissionMode,k=(F.indexOf(O)+1)%F.length,ae=F[k];return t(me=>({...me,permissionMode:ae})),b?.(ae),L?.(ae),u(!1),!0}),Tr("toggleAgentMode",()=>{if(C)return!1;let F=e.agentMode==="ama"?"sa":"ama";return t(O=>({...O,agentMode:F})),mr({agentMode:F}),w?.(F),u(!1),!0}),null}i(Ag,"GlobalShortcuts");import{exec as pL}from"child_process";import{promisify as gL}from"util";var hL=gL(pL),yL={read:"read",grep:"grep",glob:"glob",write:"write",edit:"edit",bash:"bash",undo:"undo",askuserquestion:"ask-user-question",askuser:"ask-user-question"};function qC(e){let t=[],n="",r=0;for(let o of e){if(o===","&&r===0){n.trim()&&t.push(n.trim()),n="";continue}o==="("?r++:o===")"&&r>0&&r--,n+=o}return n.trim()&&t.push(n.trim()),t}i(qC,"splitTopLevelCommaList");function xL(e){if(!e?.trim())return{configured:!1,rules:[],invalidEntries:[]};let t=[];return{configured:!0,rules:qC(e).map(r=>{if(r==="*")return{tool:"*"};if(r.includes("(")&&!r.endsWith(")")){t.push(r);return}let o=r.match(/^([^(]+?)(?:\((.*)\))?$/);if(!o){t.push(r);return}let s=yL[o[1].replace(/[^a-z]/gi,"").toLowerCase()];if(!s){t.push(r);return}let a=o[2]?qC(o[2]).map(c=>c.trim()).filter(Boolean):void 0;return{tool:s,patterns:a&&a.length>0?a:void 0}}).filter(r=>r!==void 0),invalidEntries:t}}i(xL,"parseAllowedTools");function wL(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${t}$`,"i")}i(wL,"wildcardToRegExp");function QC(e,t){return wL(e).test(t)}i(QC,"matchesPattern");function JC(e,t,n){if(!e.configured)return!0;if(e.rules.length===0)return!1;let r=t.toLowerCase(),o=r==="bash"?String(n.command??"").trim():"";return e.rules.some(s=>s.tool!=="*"&&s.tool!==r?!1:!s.patterns||s.patterns.length===0||r!=="bash"?!0:s.patterns.some(a=>QC(a,o)))}i(JC,"isToolAllowed");function SL(e,t){return e.matcher?QC(e.matcher,t):!0}i(SL,"hookMatches");function TL(e){let t=e.source==="skill"?"skill":e.source==="extension"?"extension command":"command";return[`Note: ${e.displayName} has model invocation disabled.`,`The ${t} content is shown below for manual use:`,"",`--- ${e.displayName} ---`,e.prompt,`--- end ${e.displayName} ---`].join(`
293
- `)}i(TL,"formatManualOutput");function CL(e,t){if(!t)return;let n=t.trim();if(n){if(!["haiku","sonnet","opus"].includes(n))return n;if(e==="anthropic")switch(n){case"haiku":return"claude-3-5-haiku-latest";case"opus":return"claude-opus-4-1";default:return"claude-sonnet-4-6"}}}i(CL,"resolveModelOverride");async function bL(e,t,n,r,o,s){let a=typeof n.displayName=="string"?n.displayName:"frontmatter invocation",c={command:t.command,_reason:`Frontmatter hook ${e} for ${a}`,_frontmatterHook:!0,_hookEvent:e,_hookMatcher:t.matcher};if(!JC(s,"bash",c))return{allow:!1,message:`Hook ${e} for ${a} is blocked by allowed-tools policy.`};if(o.beforeToolExecute&&!await o.beforeToolExecute("bash",c))return{allow:!1,message:`Hook ${e} for ${a} was blocked by the current permission policy.`};try{let{stdout:l,stderr:u}=await hL(t.command,{env:{...process.env,KODAX_HOOK_EVENT:e,KODAX_HOOK_PAYLOAD:JSON.stringify(n)},maxBuffer:1048576,windowsHide:!0}),m=[l.trim(),u.trim()].filter(Boolean).join(`
294
- `);m&&o.onToolResult?.({id:`frontmatter-hook:${e}`,name:"bash",content:m}),u.trim()&&await r(`[Hook ${e} stderr] ${u.trim()}`);let p=l.trim();if(!p)return{};try{let g=JSON.parse(p);return{allow:typeof g.allow=="boolean"?g.allow:typeof g.continue=="boolean"?g.continue:void 0,message:typeof g.message=="string"?g.message:void 0,additionalContext:typeof g.additionalContext=="string"?g.additionalContext:typeof g.additional_context=="string"?g.additional_context:void 0}}catch{return{message:p,additionalContext:p}}}catch(l){return await r(`[Hook ${e} failed] ${l instanceof Error?l.message:String(l)}`),{}}}i(bL,"executeHookCommand");async function bs(e,t,n,r,o,s,a){let c=e?.[t];if(!c||c.length===0)return{};let l={};for(let u of c){if(!SL(u,n))continue;let m=await bL(t,u,r,o,s,a);if(m.message&&await o(`[Hook ${t}] ${m.message}`),m.additionalContext&&(l.additionalContext=l.additionalContext?`${l.additionalContext}
295
- ${m.additionalContext}`:m.additionalContext),m.allow===!1){l.allow=!1;break}}return l}i(bs,"runHooks");async function Pd(e,t,n,r){if(t.disableModelInvocation)return{mode:"manual",manualOutput:TL(t),finalize:i(async()=>{},"finalize")};let o=e.events??{},s=xL(t.allowedTools),a=CL(e.provider,t.model),c=!1,l=i(async w=>{if(r(w),!(c||!t.hooks?.Notification?.length)){c=!0;try{await bs(t.hooks,"Notification",w,{displayName:t.displayName,source:t.source,path:t.path,message:w},async b=>{r(b)},o,s)}finally{c=!1}}},"emitWithNotifications");t.model&&!a&&await l(`[Info] Model preference '${t.model}' is not supported by provider '${e.provider}', using the current model.`),s.invalidEntries.length>0&&await l(`[Warning] ${t.displayName} has invalid allowed-tools entries: ${s.invalidEntries.join(", ")}`),s.configured&&s.rules.length===0&&await l(`[Warning] ${t.displayName} has no valid allowed-tools entries, so all tool execution will be blocked.`);let u=await bs(t.hooks,"SessionStart",t.displayName,{displayName:t.displayName,source:t.source,path:t.path},l,o,s);if(u.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped before execution.`,finalize:i(async()=>{},"finalize")};let m=await bs(t.hooks,"UserPromptSubmit",n,{displayName:t.displayName,source:t.source,prompt:n,path:t.path},l,o,s);if(m.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped by a UserPromptSubmit hook.`,finalize:i(async()=>{},"finalize")};let p=[t.agent?`Preferred agent: ${t.agent}`:void 0,u.additionalContext,m.additionalContext].filter(w=>typeof w=="string"&&w.trim().length>0),g=[p.length>0?p.join(`
296
-
297
- `):void 0,t.prompt,`User request: ${n}`].filter(w=>typeof w=="string"&&w.trim().length>0),h={...o,beforeToolExecute:i(async(w,b)=>JC(s,w,b)?(await bs(t.hooks,"PreToolUse",w,{tool:w,input:b,displayName:t.displayName,source:t.source,path:t.path},l,o,s)).allow===!1?(await l(`[Blocked] PreToolUse hook blocked '${w}' for ${t.displayName}`),!1):o.beforeToolExecute?await o.beforeToolExecute(w,b):!0:(await l(`[Blocked] Tool '${w}' is not allowed by ${t.displayName}`),!1),"beforeToolExecute"),onToolResult:i(w=>{o.onToolResult?.(w),bs(t.hooks,"PostToolUse",w.name,{...w,displayName:t.displayName,source:t.source,path:t.path},l,o,s)},"onToolResult")},x=!1,C=i(async w=>{x||(x=!0,await bs(t.hooks,t.context==="fork"?"SubagentStop":"Stop",t.displayName,{displayName:t.displayName,source:t.source,path:t.path,error:w?.message},l,o,s))},"finalize");return{mode:t.context==="fork"?"fork":"inline",prompt:g.join(`
298
-
299
- `),options:{...e,modelOverride:a,context:{...e.context,rawUserInput:n,skillInvocation:t.source==="skill"?t.skillInvocation:e.context?.skillInvocation},events:h},finalize:C}}i(Pd,"prepareInvocationExecution");import{appendFileSync as vL,mkdirSync as IL,writeFileSync as kL}from"node:fs";import{join as eb}from"node:path";import ZC from"node:v8";var $g=parseInt(process.env.KODAX_MEMORY_DIAG??"0",10),Lg=$g>=1,Og=wi(),tb=eb(Og,"memory-diag.log"),_g=0,Pg=!1;function nb(){if(!Pg)try{IL(Og,{recursive:!0}),Pg=!0}catch{Pg=!0}}i(nb,"ensureLogDir");function RL(e){nb();try{vL(tb,e+`
300
- `)}catch{}}i(RL,"writeLog");function gt(e){return`${(e/1024/1024).toFixed(2)}MB`}i(gt,"formatMB");function EL(){return typeof globalThis.gc=="function"?(globalThis.gc(),!0):!1}i(EL,"tryGC");function It(e){return e?e.length*2:0}i(It,"strBytes");function Go(e,t=0){if(t>8)return 0;if(e==null)return 8;if(typeof e=="string")return e.length*2;if(typeof e=="number"||typeof e=="boolean")return 8;if(Array.isArray(e)){let n=32;for(let r of e)n+=Go(r,t+1);return n}if(typeof e=="object"){let n=64;for(let[r,o]of Object.entries(e))n+=r.length*2,n+=Go(o,t+1);return n}return 16}i(Go,"estimateJsonBytes");function rb(e){if(!e||typeof e!="object")return 64;let t=e,n=64,r=new Set(["type","text","thinking","content","partial_json","input","data","signature","path","mediaType","tool_use_id","id","name","is_error"]);if(typeof t.text=="string"&&(n+=t.text.length*2),typeof t.thinking=="string"&&(n+=t.thinking.length*2),typeof t.content=="string")n+=t.content.length*2;else if(Array.isArray(t.content))for(let o of t.content)n+=rb(o);typeof t.partial_json=="string"&&(n+=t.partial_json.length*2),typeof t.data=="string"&&(n+=t.data.length*2),typeof t.signature=="string"&&(n+=t.signature.length*2),typeof t.path=="string"&&(n+=t.path.length*2),t.input!==void 0&&(n+=Go(t.input));for(let[o,s]of Object.entries(t))r.has(o)||(n+=o.length*2+Go(s));return n}i(rb,"estimateBlockBytes");function Dg(e){if(typeof e.content=="string")return e.content.length*2+64;if(Array.isArray(e.content)){let t=64;for(let n of e.content)t+=rb(n);return t}return 200}i(Dg,"estimateMessageBytes");function $d(e){let t=128;switch(t+=It(e.id)+It(e.parentId??void 0)+It(e.timestamp),e.type){case"message":return t+Dg(e.message);case"compaction":return t+=It(e.summary),t+=It(e.firstKeptEntryId),t+=It(e.reason),t+=It(e.artifactLedgerId),e.details!==void 0&&(t+=Go(e.details)),e.memorySeed!==void 0&&(t+=Go(e.memorySeed)),t;case"branch_summary":return t+=It(e.summary),t+=It(e.fromId),e.details!==void 0&&(t+=Go(e.details)),t;case"label":return t+=It(e.targetId),t+=It(e.label),t;case"archive_marker":return t+=It(e.archiveBatchId),t+=It(e.summary),t+=8,t;default:return t}}i($d,"estimateEntryBytes");function ML(e){let t={},n=[];for(let o=0;o<e.length;o++){let s=e[o],a=Dg(s);n.push({index:o,role:s.role,bytes:a});let c=t[s.role]??{count:0,bytes:0};c.count++,c.bytes+=a,t[s.role]=c}return n.sort((o,s)=>s.bytes-o.bytes),{totalBytes:n.reduce((o,s)=>o+s.bytes,0),biggest:n.slice(0,5),byRole:t}}i(ML,"buildMessageBreakdown");function Ld(){return Lg}i(Ld,"memDiagEnabled");function Od(e,t){if(!Lg)return;e==="turn-start"&&_g++;let n=process.memoryUsage(),r=new Date().toISOString(),o=t.biggestMessages,s=["",`\u2550\u2550\u2550 [MEMDIAG] turn=${_g} phase=${e} @${r} \u2550\u2550\u2550`,` V8 heap: used=${gt(n.heapUsed)} total=${gt(n.heapTotal)} rss=${gt(n.rss)} ext=${gt(n.external)}`," \u2500\u2500 Data breakdown \u2500\u2500",` context.messages: ${t.messageCount} msgs, ${gt(t.messageBytes)}`,` lineage.entries: ${t.lineageEntryCount} total (msg=${t.lineageMessageEntryCount}, compact=${t.lineageCompactionCount}, branch=${t.lineageBranchSummaryCount}, label=${t.lineageLabelCount}, archive=${t.lineageArchiveMarkerCount})`,` lineage non-message: ${gt(t.lineageNonMessageBytes)} (compaction.details/memorySeed + branch_summary payloads)`,` lineage orphan messages: ${t.lineageOrphanMessageCount} msgs, ${gt(t.lineageOrphanMessageBytes)} (in lineage but not in context.messages \u2014 branches/pruned)`,` UI history: ${t.historyItemCount} items, ${gt(t.historyTextBytes)}`,` foreground turn: ${t.foregroundItemCount} items, ${gt(t.foregroundTextBytes)}`,` streaming response: ${gt(t.streamingResponseBytes)}`,` streaming thinking: ${gt(t.streamingThinkingBytes)}`,` persisted UI history: ${t.persistedUiHistoryCount} items, ${gt(t.persistedUiHistoryBytes)}`];if(o.length>0){s.push(" \u2500\u2500 Top 5 biggest messages \u2500\u2500");for(let u of o)s.push(` [${u.index}] role=${u.role} ${gt(u.bytes)}`)}let a=t.messageBytes+t.lineageNonMessageBytes+t.lineageOrphanMessageBytes+t.historyTextBytes+t.foregroundTextBytes+t.streamingResponseBytes+t.streamingThinkingBytes+t.persistedUiHistoryBytes;s.push(" \u2500\u2500 V8 heap spaces \u2500\u2500");let c=ZC.getHeapSpaceStatistics();for(let u of c)u.space_used_size>1024*1024&&s.push(` ${u.space_name.padEnd(25)} used=${gt(u.space_used_size)} allocated=${gt(u.space_size)}`);if(s.push(" \u2500\u2500 Summary \u2500\u2500"),s.push(` tracked data total: ${gt(a)}`),s.push(` V8 heap used: ${gt(n.heapUsed)}`),s.push(` unaccounted (overhead): ${gt(n.heapUsed-a)}`),s.push(" (React/Ink tree, provider SDK buffers, module metadata,"),s.push(' tokenizer caches, source maps \u2014 see "Blind spots" note)'),EL()){let u=process.memoryUsage();s.push(` after forced GC: heap=${gt(u.heapUsed)} (freed ${gt(n.heapUsed-u.heapUsed)})`)}else s.push(" after forced GC: UNAVAILABLE \u2014 re-run with `node --expose-gc` to distinguish"),s.push(` "real leak" from "GC hasn't run yet".`);if($g>=2)try{let u=eb(Og,`heap-turn${_g}-${e}.heapsnapshot`);ZC.writeHeapSnapshot(u),s.push(` heap snapshot: ${u}`)}catch{s.push(" heap snapshot: FAILED")}RL(s.join(`
301
- `))}i(Od,"memDiagSnapshot");function Dd(e,t,n){let r=ML(e),o=new Set(e),s=0,a=0,c=0,l=0,u=0,m=0,p=0,g=0,h=t?.entries??[];for(let b of h)switch(b.type){case"message":g++,o.has(b.message)||(c++,a+=Dg(b.message));break;case"compaction":l++,s+=$d(b);break;case"branch_summary":u++,s+=$d(b);break;case"label":m++,s+=$d(b);break;case"archive_marker":p++,s+=$d(b);break}let x=0;for(let b of n.historyItems)x+=It(b.text);let C=0;for(let b of n.foregroundItems)C+=It(b.text);let w=0;for(let b of n.persistedUiHistory)w+=It(b.text);return{messageCount:e.length,messageBytes:r.totalBytes,biggestMessages:r.biggest,lineageEntryCount:h.length,lineageMessageEntryCount:g,lineageCompactionCount:l,lineageBranchSummaryCount:u,lineageLabelCount:m,lineageArchiveMarkerCount:p,lineageNonMessageBytes:s,lineageOrphanMessageBytes:a,lineageOrphanMessageCount:c,historyItemCount:n.historyItems.length,historyTextBytes:x,foregroundItemCount:n.foregroundItems.length,foregroundTextBytes:C,streamingResponseBytes:It(n.streamingResponse),streamingThinkingBytes:It(n.streamingThinking),persistedUiHistoryCount:n.persistedUiHistory.length,persistedUiHistoryBytes:w}}i(Dd,"buildMemDiagBreakdown");function ob(){if(Lg){nb();try{let e=typeof globalThis.gc=="function",t=[`[MEMDIAG] Session started at ${new Date().toISOString()}`,`[MEMDIAG] Level=${$g} gc=${e?"available":"UNAVAILABLE (run with node --expose-gc)"}`,"[MEMDIAG] Blind spots: React/Ink trees, provider SDK buffers, WeakMap/Map caches,","[MEMDIAG] tokenizer internal state, source-map strings, native handles.",'[MEMDIAG] A large "unaccounted" number living in these buckets is expected;',"[MEMDIAG] use Level 2 (KODAX_MEMORY_DIAG=2) to dump heap snapshots for DevTools.",""].join(`
302
- `);kL(tb,t+`
303
- `)}catch{}}}i(ob,"memDiagReset");import AL from"node:fs";import Bg from"node:path";var _L={".gif":"image/gif",".jpeg":"image/jpeg",".jpg":"image/jpeg",".png":"image/png",".webp":"image/webp"},PL=/@(?:"([^"]+)"|'([^']+)'|([^\s]+))/g;function $L(e){return _L[Bg.extname(e).toLowerCase()]}i($L,"resolveImageMediaType");var Ng="[Image unavailable]";function LL(e){return""}i(LL,"buildImageAnchor");function ac(e,t){let n=[],r=[],o=new Set,s=new Map,a=new Set,c=[],l=0;for(let m of e.matchAll(PL)){let p=m.index??l;c.push(e.slice(l,p));let g=m[1]??m[2]??m[3];if(!g){c.push(m[0]),l=p+m[0].length;continue}let h=$L(g);if(!h){c.push(m[0]),l=p+m[0].length;continue}let x=Bg.resolve(t,g);try{if(!AL.statSync(x).isFile()){a.has(x)||(r.push(`[Image input skipped] ${g} is not a file.`),a.add(x)),c.push(Ng),l=p+m[0].length;continue}}catch{a.has(x)||(r.push(`[Image input missing] ${g} was not found from ${t}.`),a.add(x)),c.push(Ng),l=p+m[0].length;continue}if(!o.has(x)){o.add(x);let C=LL(n.length+1);s.set(x,C),n.push({kind:"image",path:x,mediaType:h,source:"user-inline",description:`Attached image ${Bg.basename(x)}`})}c.push(s.get(x)??Ng),l=p+m[0].length}c.push(e.slice(l));let u=c.join("");return{promptText:u,messageContent:ox(u,n),inputArtifacts:n,warnings:r}}i(ac,"preparePromptInputArtifacts");function ib(e){let t=OL(e.stage),n=DL(e);return{type:"info",icon:"\u{1F4E1}",text:n?`[RepoIntel] ${t} \xB7 ${n}`:`[RepoIntel] ${t}`,tightSpacing:!0}}i(ib,"createRepoIntelTraceHistoryItem");function OL(e){switch(e){case"routing":return"routing";case"preturn":return"preturn";case"module":return"module";case"impact":return"impact";case"task-snapshot":return"task-snapshot";default:return String(e)}}i(OL,"stageDisplayName");function DL(e){let t=[],n=e.capability;n&&(t.push(`mode=${n.mode}`),n.status!=="ok"&&t.push(`status=${n.status}`));let r=e.trace;return r&&(r.daemonLatencyMs!==void 0&&t.push(`daemon ${r.daemonLatencyMs}ms`),r.cliLatencyMs!==void 0&&t.push(`cli ${r.cliLatencyMs}ms`),r.cacheHit!==void 0&&t.push(r.cacheHit?"cache hit":"cache miss"),r.capsuleEstimatedTokens!==void 0&&t.push(`${NL(r.capsuleEstimatedTokens)} tokens`)),t.length===0&&e.summary?BL(e.summary):t.join(" \xB7 ")}i(DL,"buildRepoIntelDetailLine");function NL(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(NL,"formatTokens");function BL(e){return e.replace(/^stage=[^|]+\|\s*/,"").trim()}i(BL,"stripSummaryStagePrefix");function HL(e){switch(e){case"H0_DIRECT":return"H0";case"H1_EXECUTE_EVAL":return"H1";case"H2_PLAN_EXECUTE_EVAL":return"H2";default:return e}}i(HL,"formatHarnessProfileShort");function sb(e,t){let n=e.trim();return t.trim()?n?e===t?e:t.startsWith(e)?t:e.startsWith(t)?e:t:t:e}i(sb,"mergeLiveThinkingContent");function cc(e,t){let n=t?.expanded?e.detailNote??e.note:e.note,r=HL(e.harnessProfile)??e.harnessProfile,o=`${e.agentMode.toUpperCase()} ${r}`,s=e.activeWorkerTitle??"Scout",a=`${e.agentMode.toUpperCase()} ${s}`,c=`${e.agentMode.toUpperCase()} Routing`,l=e.currentRound&&e.maxRounds&&e.currentRound>1?` - Round ${e.currentRound}/${e.maxRounds}`:"";switch(e.phase){case"routing":return`${c} - Routing ready`;case"starting":return n?`${o} - ${n}`:`${o} - Managed task starting`;case"preflight":return n?`${a} - ${n}`:`${a} - ${s} preflight starting`;case"round":return n?`${o} - ${n}`:`${o} - Managed task round update${l}`;case"worker":return n?`${o} - ${n}${l}`:`${o} - ${e.activeWorkerTitle??"Worker"} starting${l}`;case"upgrade":return n?`${o} - ${n}`:`${o} - Harness transition${l}`;case"completed":return n?`${o} - ${n}`:`${o} - Managed task completed`;default:return}}i(cc,"formatManagedTaskBreadcrumb");function ab(e,t,n,r){let o=e?.gitRoot??t??void 0,s=e?.executionCwd??o??process.cwd();return{...e,gitRoot:o,executionCwd:s,contextTokenSnapshot:n,taskSurface:"repl",skillsPrompt:r}}i(ab,"buildManagedRunContext");var FL=["global","mode","navigation","editing"],WL={global:["showHelp","interrupt"],mode:["toggleThinking","toggleTranscriptMode","togglePermissionMode","toggleAgentMode"],navigation:["openTranscriptSearch","historyUp","historyDown","moveToStart","moveToEnd"],editing:["acceptCompletion","cancelInput","newline","killLineRight","killLineLeft","deleteWordLeft"]},UL={global:"Global",mode:"Modes",navigation:"Navigation",editing:"Editing"},jL={id:"transcript",title:"Transcript",items:[{id:"mode",label:"Ctrl+O transcript mode"},{id:"search",label:"Ctrl+F search transcript"},{id:"browse",label:"PgUp/PgDn/j/k scroll"},{id:"match",label:"n/N next match"},{id:"latest",label:"End back to live"},{id:"exit",label:"q or Esc back to live"}]};function GL(e){let t=rr(),n=t.getAllShortcuts().find(o=>o.definition.id===e);if(n?.effectiveBindings?.length)return t.formatBindings(n.effectiveBindings);let r=Cs.find(o=>o.id===e);if(r?.defaultBindings?.length)return t.formatBindings(r.defaultBindings)}i(GL,"resolveShortcutBindingLabel");function KL(e){return`${GL(e.id)??e.id} ${e.name}`}i(KL,"buildMenuItemLabel");function VL(e){return rr().getAllShortcuts().find(r=>r.definition.id===e)?.definition??Cs.find(r=>r.id===e)}i(VL,"resolveShortcutDefinition");function Nd(){return[...FL.map(t=>{let n=WL[t].map(r=>VL(r)).filter(r=>!!r).map(r=>({id:r.id,label:KL(r)}));return{id:t,title:UL[t],items:n}}).filter(t=>t.items.length>0),jL]}i(Nd,"buildHelpMenuSections");var Hg=2,cb=1,lb=4;function Je(e,t){let n=Xt(e.length>0?e.split(`
304
- `):[""],Math.max(1,t),0,0);return Math.max(1,n.visualLines.length)}i(Je,"wrapLineCount");function zL(e,t,n=">"){let r=n.length+1,o=Math.max(20,t-r),s=Xt(e.length>0?e.split(`
305
- `):[""],o,0,0);return Math.max(1,s.visualLines.length)+2}i(zL,"calculateInputPromptRows");function ub(e){let{terminalRows:t,terminalWidth:n,windowedTranscript:r=!1,inputText:o,inputPrompt:s=">",footerHeaderText:a,activitySummary:c,pendingInputSummary:l,stashNoticeSummary:u,notificationSummary:m,statusNoticeSummary:p,workStripText:g,suggestionsReserved:h,suggestionsMode:x="inline",showHelp:C,statusBarText:w,confirmPrompt:b,confirmInstruction:P,uiRequest:L,dialogMode:F="inline",historySearch:O,maxVisibleSelectOptions:N=5,reviewHint:k,todoSurfaceRows:ae=0,activityBarVisible:me=!1}=e,W=Math.max(0,Math.floor(ae)),X=a?Je(a,Math.max(1,n-2)):0,v=c?Je(c,Math.max(1,n-2)):0,M=me?Math.max(1,v):v,ne=l?Je(l,Math.max(1,n-2)):0,xe=u?Je(u,Math.max(1,n-2)):0,Re=m?Je(m,Math.max(1,n-2)):0,Se=p?Je(p,Math.max(1,n-2)):0,le=g?Je(g,Math.max(1,n-2)):0,Le=zL(o,n,s),J=h?8:0,Y=C?cb+lb+Nd().reduce((_,U)=>_+Je(U.title,Math.max(1,n-Hg))+Je(U.items.map(ee=>ee.label).join(" | "),Math.max(1,n-Hg)),0):0,q=Je(w,Math.max(1,n-2)),Ge=0;if(b&&P){let _=Math.max(1,n-4);Ge=3+Je(`[Confirm] ${b}`,_)+Je(P,_)}let Te=0,_e=0;if(L){let _=Math.max(1,n-4);L.kind==="select"?(_e=Math.min(N,L.options.length),Te=3+Je(`[Select] ${L.title}`,_)+L.options.slice(0,_e).reduce((U,ee,Oe)=>U+Je(`${Oe+1}. ${ee.label}${ee.description?` - ${ee.description}`:""}`,_),0)+(L.options.length>_e?2:0)+Je(`Choice: ${L.buffer||"(type a number)"}`,_)+1+(L.error?Je(L.error,_):0)):Te=3+Je(`[Input] ${L.prompt}`,_)+(L.defaultValue!==void 0?Je(`Default: ${L.defaultValue}`,_):0)+Je(`Value: ${L.buffer||"(type your response)"}`,_)+1+(L.error?Je(L.error,_):0)}let Ee=0;if(O){let _=Math.max(1,n-4);Ee=3+Je(`Query: ${O.query||"(type to search)"}`,_)+(O.matchCount===0?Je("No matches yet",_):Je(`${Math.max(1,O.matchCount)} matches`,_)+Je(O.selectedExcerpt||"",_))+1}let ft=k?Je(k,Math.max(1,n-2)):0,we=X+M+W+ne+xe+Re+Le+Y+Se+ft+(x==="inline"?J:0)+(F==="inline"?Ge+Te+Ee:0),Ze=(x==="overlay"?J:0)+(F==="overlay"?Ge+Te+Ee:0),et=we+le+q,ie=Math.max(1,t-et);return{messageRows:ie,reservedBottomRows:et,headerRows:X,activityRows:M,pendingInputRows:ne,stashNoticeRows:xe,notificationRows:Re,workStripRows:le,inputRows:Le,suggestionsRows:J,helpRows:Y,statusNoticeRows:Se,statusRows:q,confirmRows:Ge,uiRequestRows:Te,historySearchRows:Ee,footerRows:we,overlayRows:Ze,visibleSelectOptions:_e,reviewHintRows:ft,todoSurfaceRows:W,slots:[{name:"transcript",rows:ie},{name:"footer",rows:we},{name:"overlay",rows:Ze},{name:"status",rows:q},{name:"task-bar",rows:le}]}}i(ub,"calculateViewportBudget");function db(e,t={}){let n=Pi(e,{rendererMode:t.rendererMode??"owned"});return{hostProfile:e,surface:"prompt",buffering:n.bufferingMode,ownsViewportByDefault:n.ownsViewportByDefault,supportsMouseTracking:n.supportsMouseTracking,supportsFullscreenLayout:n.supportsFullscreenLayout,supportsOverlaySurface:n.supportsOverlaySurface,supportsSelection:n.supportsSelection,supportsCopyOnSelect:n.supportsCopyOnSelect,supportsWheelHistory:n.supportsWheelHistory,supportsViewportChrome:n.supportsViewportChrome,supportsSearchViewport:n.supportsSearchViewport,supportsStickyPrompt:n.supportsStickyPrompt,scrollAnchor:0,jumpToLatestAvailable:!1,stickyPromptVisible:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(db,"createTranscriptDisplayState");function fb(e){return{...e,surface:"transcript",jumpToLatestAvailable:e.pendingLiveUpdates>0}}i(fb,"enterTranscriptMode");function mb(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(mb,"exitTranscriptMode");function pb(e,t){let n=Math.max(0,t);return{...e,pendingLiveUpdates:n,jumpToLatestAvailable:e.surface==="transcript"?n>0:e.scrollAnchor>0}}i(pb,"setTranscriptPendingLiveUpdates");function gb(e,t){let n=Math.max(0,t);return{...e,scrollAnchor:n,jumpToLatestAvailable:e.surface==="transcript"?e.pendingLiveUpdates>0:n>0}}i(gb,"setTranscriptScrollAnchor");function hb(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(hb,"jumpTranscriptToLatest");function yb(e,t){return{...e,stickyPromptVisible:t}}i(yb,"setTranscriptStickyPromptVisible");function vs(e,t){return{...e,selectedItemId:t,selectionMode:t?"message":"none"}}i(vs,"setTranscriptSelectedItem");function xb(e,t){return{...e,surface:"transcript",searchMode:"history",searchAnchorItemId:t?.anchorItemId??e.selectedItemId??e.searchAnchorItemId,currentMatchIndex:Math.max(0,t?.initialMatchIndex??e.currentMatchIndex),jumpToLatestAvailable:e.pendingLiveUpdates>0}}i(xb,"openTranscriptSearch");function wb(e){return{...e,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0}}i(wb,"closeTranscriptSearch");function Sb(e,t){return{...e,currentMatchIndex:Math.max(-1,t)}}i(Sb,"setTranscriptSearchMatchIndex");function Tb(e){return e.supportsFullscreenLayout&&e.ownsViewportByDefault}i(Tb,"shouldWindowTranscript");function Cb(e){return e.surface==="transcript"}i(Cb,"shouldPauseLiveTranscript");function Fg(e){return e.supportsSelection}i(Fg,"ownsTranscriptSelectionPath");function Bd(e,t,n){if(!(!Fg(e)||!n))return t.includes(n)?n:void 0}i(Bd,"resolveTranscriptSelectedItemId");function bb(e){return e.supportsSelection&&e.supportsCopyOnSelect}i(bb,"supportsPassiveTranscriptCopyOnSelect");function vb(e){if(e.surface==="transcript")return"Transcript | PgUp/PgDn page | j/k scroll | \u2190/\u2192 select | / search | n/N matches | q/Esc/Ctrl+O back"}i(vb,"buildTranscriptBrowseHint");var Ib="Slash commands cannot be queued mid-task. Press Esc to abort the current task, then run the command.",kb="slash-guard";function Rb(e){return e.trimStart().startsWith("/")}i(Rb,"isSlashCommandText");var XL=`
306
-
307
- ---
308
-
309
- `;async function Eb(e){let{initialPrompt:t,runRound:n,shiftPendingPrompt:r,onRoundComplete:o,onBeforeQueuedRound:s,shouldContinue:a=i(()=>!0,"shouldContinue")}=e,c=t,l=await n(c);for(;;){if(await o?.(l),!a(l))return l;let u=[];for(;;){let m=r();if(m===void 0)break;let p=typeof m=="string"?m.trim():"";p.length>0&&u.push(p)}if(u.length===0)return l;c=u.length===1?u[0]:u.join(XL),await s?.(c),l=await n(c)}}i(Eb,"runQueuedPromptSequence");function Ab(e){return e.itemsLength>0||e.currentResponse.length>0||e.thinkingContent.length>0||e.activeToolCallsLength>0}i(Ab,"hasTranscriptInputActivity");function YL(e){return e.keyName==="mouse"&&e.hasMouse&&e.usesManagedMouseClicks&&e.supportsMouseTracking&&e.usesRendererMouseTracking}i(YL,"shouldHandleManagedTranscriptMouse");function Mb(e){return e.usesManagedMouseWheel&&e.supportsWheelHistory&&e.hasTranscript}i(Mb,"shouldHandleManagedTranscriptWheel");function _b(e){if(YL({keyName:e.keyName,hasMouse:e.hasMouse,usesManagedMouseClicks:e.usesManagedMouseClicks,supportsMouseTracking:e.supportsMouseTracking,usesRendererMouseTracking:e.usesRendererMouseTracking})){if(e.mouseButton!=="left")return{kind:"none"};if(e.mouseAction==="press"||e.mouseAction==="drag"||e.mouseAction==="release")return{kind:"mouse-phase",phase:e.mouseAction}}return e.keyName==="pageup"?e.hasTranscript?{kind:"scroll-by",delta:e.reviewPageSize}:{kind:"consume"}:e.keyName==="wheelup"?Mb({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?{kind:"scroll-by",delta:e.reviewWheelStep}:{kind:"none"}:e.keyName==="wheeldown"?Mb({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?e.historyScrollOffset===0?{kind:"consume"}:{kind:"scroll-by",delta:-e.reviewWheelStep}:{kind:"none"}:{kind:"none"}}i(_b,"resolveTranscriptPointerAction");function qL(e){return e.isTranscriptMode&&e.hasTextSelection}i(qL,"shouldDeferInterruptToTranscriptSelectionCopy");function Pb(e){return e.ctrl&&e.keyName==="c"?qL({isTranscriptMode:e.isTranscriptMode,hasTextSelection:e.hasTranscriptTextSelection})?{kind:"none"}:{kind:"interrupt"}:e.keyName!=="escape"?{kind:"none"}:e.isTranscriptMode||e.isAwaitingUserInteraction?{kind:"none"}:e.isInputEmpty&&e.pendingInputCount>0?{kind:"pop-pending-input"}:e.isInputEmpty?e.timeSinceLastEscapeMs<e.doubleEscapeIntervalMs?{kind:"interrupt"}:{kind:"arm-double-escape"}:{kind:"none"}}i(Pb,"resolveStreamingInterruptAction");function $b(e){let{key:t,isTranscriptMode:n,isHistorySearchActive:r,historySearchMatchCount:o,hasTextSelection:s,hasFocusedItem:a,canCopySelectedItem:c,canCopySelectedToolInput:l,canToggleSelectedDetail:u,canCycleTranscriptSelection:m}=e;if(t.name==="pageup")return{kind:"scroll-page-up"};if(r){if(t.name==="escape")return{kind:"close-history-search"};if(t.name==="backspace")return{kind:"history-search-backspace"};if(t.name==="down")return{kind:"history-search-step",direction:"next"};if(t.name==="up")return{kind:"history-search-step",direction:"prev"};if(t.name==="enter"||t.name==="return")return{kind:"history-search-submit"};if(t.insertable&&t.sequence)return{kind:"history-search-append",text:t.sequence}}return n&&!r&&!t.ctrl&&!t.meta&&t.insertable&&t.sequence==="/"?{kind:"open-history-search"}:n&&!t.ctrl&&!t.meta&&t.name==="q"?{kind:"exit-transcript"}:n&&t.name==="escape"?s||a?{kind:"clear-selection-focus"}:{kind:"exit-transcript"}:t.name==="home"?{kind:"scroll-home"}:t.name==="pagedown"?{kind:"scroll-page-down"}:t.name==="end"?{kind:"scroll-end"}:n?t.ctrl&&!t.meta&&t.name==="e"?{kind:"toggle-show-all"}:t.name==="j"||t.name==="down"?{kind:"scroll-line-down"}:t.name==="k"||t.name==="up"?{kind:"scroll-line-up"}:!t.ctrl&&!t.meta&&t.name==="g"&&t.shift?{kind:"jump-latest"}:!t.ctrl&&!t.meta&&t.name==="g"&&!t.shift?{kind:"jump-oldest"}:t.name==="left"?m?{kind:"cycle-selection",direction:"prev"}:{kind:"none"}:t.name==="right"?m?{kind:"cycle-selection",direction:"next"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="c"?s?{kind:"copy-selection"}:c?{kind:"copy-item"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="i"?l?{kind:"copy-tool-input"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="v"?u?{kind:"toggle-detail"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="s"?{kind:"dump-to-scrollback"}:!t.ctrl&&!t.meta&&t.name==="n"?o===0?{kind:"none"}:{kind:"search-match-nav",direction:t.shift?"prev":"next"}:{kind:"none"}:{kind:"none"}}i($b,"resolveTranscriptKeyboardAction");function Lb(e){switch(e.action.kind){case"none":return!1;case"scroll-page-up":return e.hasTranscript&&(e.disarmHistorySearchSelection(),e.scrollTranscriptBy(e.pageScrollDelta)),!0;case"close-history-search":return e.closeHistorySearchSurface(),!0;case"history-search-backspace":return e.backspaceHistorySearchQuery(),!0;case"history-search-step":return e.stepHistorySearchSelection(e.action.direction),!0;case"history-search-submit":return e.submitHistorySearchSelection(),!0;case"history-search-append":return e.appendHistorySearchQuery(e.action.text),!0;case"open-history-search":return e.openHistorySearchSurface(),!0;case"clear-selection-focus":return e.clearTranscriptSelectionFocus(),!0;case"exit-transcript":return e.exitTranscriptModeSurface(),!0;case"toggle-show-all":return e.toggleTranscriptShowAll(),!0;case"scroll-home":case"jump-oldest":return e.disarmHistorySearchSelection(),e.scrollTranscriptHome(),!0;case"scroll-page-down":return e.disarmHistorySearchSelection(),e.scrollTranscriptBy(-e.pageScrollDelta),!0;case"scroll-end":return e.isTranscriptMode?(e.exitTranscriptModeSurface(),!0):(e.scrollTranscriptToBottom(),!0);case"scroll-line-down":return e.disarmHistorySearchSelection(),e.scrollTranscriptBy(-1),!0;case"scroll-line-up":return e.disarmHistorySearchSelection(),e.scrollTranscriptBy(1),!0;case"jump-latest":return e.scrollTranscriptToBottom(),!0;case"cycle-selection":return e.cycleTranscriptSelection(e.action.direction),!0;case"copy-selection":return e.copySelectedTranscriptText(),!0;case"copy-item":return e.copySelectedTranscriptItem(),!0;case"copy-tool-input":return e.copySelectedTranscriptToolInput(),!0;case"toggle-detail":return e.toggleSelectedTranscriptDetail(),!0;case"search-match-nav":return e.navigateSearchMatch(e.action.direction),!0;case"dump-to-scrollback":return e.dumpTranscriptToScrollback(),!0;default:return!1}}i(Lb,"executeTranscriptKeyboardAction");function Ko(e){let t=/\u001b\[[0-9;?]*[ -/]*[@-~]/g,n=/\u001b\][^\u0007\u001b]*(?:\u0007|\u001b\\)/g,r=/\u001b[@-_]/g;return e.replace(t,"").replace(n,"").replace(r,"")}i(Ko,"stripAnsi");function QL(e){return e.tools.map(n=>`tool: ${n.name}`).join(`
310
- `)}i(QL,"serializeToolGroup");function JL(e){switch(e.type){case"thinking":return null;case"user":return`user: ${Ko(e.text)}`;case"assistant":return`assistant: ${Ko(e.text)}`;case"system":return`system: ${Ko(e.text)}`;case"info":return`info: ${Ko(e.text)}`;case"error":return`error: ${Ko(e.text)}`;case"event":return`event: ${Ko(e.text)}`;case"hint":return`hint: ${Ko(e.text)}`;case"tool_group":return QL(e);default:return e}}i(JL,"serializeOne");function ZL(e){let t=[];for(let n of e){let r=JL(n);r!==null&&r!==""&&t.push(r)}return t.join(`
311
-
312
- `)}i(ZL,"serializeTranscriptForScrollback");function Ob(e){let{items:t,writeToScrollback:n,exitAltScreen:r,enterAltScreen:o}=e,s=ZL(t);r(),s.length>0&&n(`${s}
313
- `),o()}i(Ob,"dumpTranscriptToNativeScrollback");function e1(e){switch(e.type){case"tool_group":return e.tools.map(t=>{let n=[t.name];return typeof t.output=="string"&&n.push(t.output),t.error&&n.push(t.error),n.join(`
314
- `)}).join(`
315
- `);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return e.text;default:return""}}i(e1,"buildSearchText");function t1(e,t){let n=e.replace(/\s+/g," ").trim();if(!n)return"";let r=n.toLowerCase(),o=t.toLowerCase(),s=r.indexOf(o);if(s===-1)return n.slice(0,120);let a=Math.max(0,s-40),c=Math.min(n.length,s+t.length+60),l=a>0?"...":"",u=c<n.length?"...":"";return`${l}${n.slice(a,c)}${u}`}i(t1,"buildExcerpt");function Db(e){return e.map((t,n)=>({itemId:t.id,itemIndex:n,searchText:e1(t)}))}i(Db,"createTranscriptSearchIndex");function Nb(e,t){let n=t.trim().toLowerCase();return n?e.flatMap(r=>{let o=r.searchText;return o.toLowerCase().includes(n)?[{itemId:r.itemId,itemIndex:r.itemIndex,excerpt:t1(o,t.trim())}]:[]}):[]}i(Nb,"searchTranscriptIndex");function Wg(e,t,n){return e<=0?0:t<0?n==="next"?0:e-1:n==="next"?(t+1)%e:t<=0?e-1:t-1}i(Wg,"stepTranscriptSearchMatch");function Bb(e,t){return e.length===0?void 0:t<0?`${e.length} transcript matches`:`${Math.min(Math.max(t,0),e.length-1)+1}/${e.length} transcript matches`}i(Bb,"buildTranscriptSearchSummary");function Hb(e,t,n){if(t.length===0||!n)return 0;let r=t.findIndex(a=>a.itemId===n);if(r>=0)return r;let o=e.find(a=>a.itemId===n)?.itemIndex;if(o===void 0)return 0;let s=t.findIndex(a=>a.itemIndex>=o);return s>=0?s:0}i(Hb,"resolveTranscriptSearchMatchIndex");function Fb(e){if(e)switch(e.type){case"assistant":return{summary:"Assistant response",kindLabel:"assistant"};case"user":return{summary:"User prompt",kindLabel:"user"};case"system":return{summary:"System note",kindLabel:"system"};case"thinking":return{summary:"Thinking trace",kindLabel:"thinking"};case"tool_group":return{summary:n1(e),kindLabel:"tool"};case"error":return{summary:"Error entry",kindLabel:"error"};case"info":return{summary:"Info note",kindLabel:"info"};case"hint":return{summary:"Hint",kindLabel:"hint"};default:return{summary:"Transcript entry",kindLabel:"entry"}}}i(Fb,"buildTranscriptSelectionSummary");function n1(e){return e.tools.length===1?`Tool call: ${e.tools[0]?.name??"tool"}`:`Tool group: ${e.tools.length} calls`}i(n1,"summarizeToolGroup");function Wb(e){return e.map(t=>t.id)}i(Wb,"getSelectableTranscriptItemIds");function Ub(e,t,n){if(e.length===0)return;if(!t)return n==="next"?e[0]:e[e.length-1];let r=e.indexOf(t);return r===-1?n==="next"?e[0]:e[e.length-1]:n==="next"?e[Math.min(e.length-1,r+1)]:e[Math.max(0,r-1)]}i(Ub,"moveTranscriptSelection");function Ug(e){if(e)switch(e.type){case"tool_group":return e.tools.map(t=>{let n=[`Tool: ${t.name}`,`Status: ${t.status}`];return t.input&&n.push(`Input: ${JSON.stringify(t.input)}`),typeof t.output=="string"&&t.output.trim()&&n.push(`Output: ${t.output}`),t.error&&n.push(`Error: ${t.error}`),n.join(`
316
- `)}).join(`
317
-
318
- `);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return e.text;default:return}}i(Ug,"buildTranscriptCopyText");function jb(e){if(!e||e.type!=="tool_group")return;let t=e.tools.map(n=>{if(!n.input)return;let r=typeof n.input=="string"?n.input:JSON.stringify(n.input,null,2);if(r?.trim())return[`Tool: ${n.name}`,r].join(`
319
- `)}).filter(n=>!!n);return t.length>0?t.join(`
320
-
321
- `):void 0}i(jb,"buildTranscriptToolInputCopyText");import{useCallback as lc,useRef as r1,useState as Gb}from"react";function Kb(e){let{state:t,ownsViewport:n,isAwaitingUserInteraction:r,isHistorySearchActive:o,isTranscriptMode:s,historySearchQuery:a}=e,c=vb(t),l;if(t.supportsStickyPrompt&&t.stickyPromptVisible)if(o){let m=a.trim();l={visible:!0,label:m?`Searching transcript for "${m}"`:"Searching transcript"}}else s?l={visible:!0,label:"Transcript Mode"}:r&&(l={visible:!0,label:"Interaction active"});let u;return n&&t.supportsViewportChrome&&(s&&t.pendingLiveUpdates>0?u={visible:!0,label:t.pendingLiveUpdates===1?"1 new update":`${t.pendingLiveUpdates} new updates`,hint:"Ctrl+O",tone:"accent"}:!s&&t.jumpToLatestAvailable&&(u={visible:!0,label:"Back to live",hint:"End",tone:"accent"})),{browseHintText:c,stickyHeader:l,jumpToLatest:u}}i(Kb,"buildTranscriptChromeModel");function Vb(e){return Math.max(1,e-2)}i(Vb,"resolveTranscriptPageSize");function zb(e){return Math.max(3,Math.floor(e/4))}i(zb,"resolveTranscriptWheelStep");function o1(e,t){return Math.max(0,e+t)}i(o1,"incrementTranscriptScrollOffset");function Xb(e,t,n){let r=Math.max(0,t-n);return Math.min(Math.max(0,e),r)}i(Xb,"clampTranscriptScrollOffset");function Yb(){let e=r1(null),[t,n]=Gb(0),[r,o]=Gb(!0),s=lc(m=>{n(Math.max(0,m))},[]),a=lc(m=>{o(m)},[]),c=lc(m=>{if(e.current){e.current.scrollTo(m);return}n(Math.max(0,m)),o(m===0)},[]),l=lc(m=>{if(e.current){e.current.scrollBy(m);return}n(p=>o1(p,m)),o(!1)},[]),u=lc(()=>{if(e.current){e.current.scrollToBottom();return}n(0),o(!0)},[]);return{scrollRef:e,scrollOffset:t,sticky:r,setScrollOffset:n,setSticky:o,handleScrollTopChange:s,handleStickyChange:a,scrollTo:c,scrollBy:l,scrollToBottom:u}}i(Yb,"useTranscriptViewportScrollController");function qb(e){let{items:t,renderModel:n,terminalWidth:r,transcriptMaxLines:o,viewportRows:s,itemId:a,visibleRows:c,expandedItemKeys:l,showDetailedTools:u=!1}=e;if(!a||c.length===0)return!1;let p=(n?.sections??fs(t,r,o,u,l)).find(x=>x.key===a);if(!p||p.rows.length===0)return!1;let g=new Set(c.map(x=>x.key)),h=Math.max(0,s??0);return h>0&&p.rows.length<=h?p.rows.every(x=>g.has(x.key)):g.has(p.rows[0]?.key??"")}i(qb,"isTranscriptItemVisible");function Qb(e){let{items:t,renderModel:n,terminalWidth:r,transcriptMaxLines:o,viewportRows:s,itemId:a,expandedItemKeys:c,showDetailedTools:l=!1}=e,u=n?.sections??fs(t,r,o,l,c);return zT(u,a,s)}i(Qb,"resolveTranscriptSelectionOffset");function Jb(e){let{items:t,renderModel:n,selectedItemId:r,terminalWidth:o=80,transcriptMaxLines:s=1e3,viewportRows:a,scrollOffset:c=0,expandedItemKeys:l,showDetailedTools:u=!1,preferViewportAnchor:m=!1}=e;if(r&&t.some(p=>p.id===r))return r;if(m&&c>0&&a&&a>0){let p=n?.sections??fs(t,o,s,u,l),g=n?.rows??Ho(p),x=Vp(g,a,c)[0]?.key,C=x?p.find(w=>w.rows.some(b=>b.key===x)):void 0;if(C?.key)return C.key}return t[t.length-1]?.id}i(Jb,"resolveTranscriptSearchAnchorItemId");function Zb(e){let t=Ra(e.stickyHeader),n=uu(t,e.width),r=Math.max(0,e.topChromeRows??0);return{contentWindow:e.window,topOffsetRows:n+r,stickyHeaderRows:n,topChromeRows:r}}i(Zb,"resolveTranscriptOwnedWindowGeometry");function i1(e){return e.text===" "?"":e.text}i(i1,"normalizeTranscriptRowText");function jg(e){let t=new Map;return e.forEach((n,r)=>{t.set(n.key,r)}),t}i(jg,"buildTranscriptRowIndexByKey");function s1(e,t={}){let n=Math.max(0,e.indent??0),r=e.spinner&&t.animateSpinners!==!1?2:0;return 1+n+r}i(s1,"resolveTranscriptTextStartColumn");function ev(e,t={}){let n=Math.max(0,t.topOffsetRows??0),r=t.rowIndexByKey??jg(t.allRows??e),o=e.map((s,a)=>{let c=i1(s),l=s1(s,t),u=Kr(c);return{key:s.key,row:s,modelRowIndex:r.get(s.key)??a,screenRow:n+a+1,text:c,textLength:u,textStartColumn:l,textEndColumn:l+QT(c)}});return{rows:o,topRow:o[0]?.screenRow??n+1,bottomRow:o[o.length-1]?.screenRow??n,viewportHeight:Math.max(0,t.viewportHeight??e.length)}}i(ev,"buildTranscriptScreenBuffer");function a1(e,t){let n=Math.max(1,Math.floor(t));return JT(e.text,n-e.textStartColumn)}i(a1,"clampTextColumn");function Gg(e,t){return{screenRow:e,point:{rowKey:e.key,modelRowIndex:e.modelRowIndex,column:a1(e,t)}}}i(Gg,"toHit");function Kg(e,t,n){let r=e.rows.find(o=>o.screenRow===t);return r?Gg(r,n):void 0}i(Kg,"hitTestTranscriptScreen");function Vg(e,t,n){if(e.rows.length!==0)return t<=e.topRow?Gg(e.rows[0],n):t>=e.bottomRow?Gg(e.rows[e.rows.length-1],n):Kg(e,t,n)}i(Vg,"clampTranscriptScreenHit");function tv(e){return e.text===" "?"":e.text}i(tv,"normalizeTranscriptRowText");function nv(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i(nv,"comparePoints");function rv(e,t,n,r={}){if(e.length===0)return;let[o,s]=nv(t,n)<=0?[t,n]:[n,t],a=r.selectFullRowOnCollapsed===!0,c=nv(t,n)===0,l=e[o.modelRowIndex],u=e[s.modelRowIndex];if(!l||!u)return;let m=a&&c?{...o,column:0}:o,p=a&&c?{...s,column:Kr(tv(u))}:s,g=new Map,h=[],x=0;for(let C=m.modelRowIndex;C<=p.modelRowIndex;C+=1){let w=e[C];if(!w)continue;let b=tv(w),P=Kr(b),L=C===m.modelRowIndex?m.column:0,F=C===p.modelRowIndex?p.column:P,O=Math.max(0,Math.min(L,P)),N=Math.max(O,Math.min(F,P)),k=ms(b,O,N);N>O&&(g.set(w.key,{start:O,end:N}),x+=N-O),h.push(k)}if(g.size!==0)return{anchor:t,focus:n,rowRanges:g,rowCount:h.length,charCount:x,text:h.join(`
322
- `)}}i(rv,"buildTranscriptScreenSelection");function ov(e){if(!e)return;let t=`${e.charCount} char${e.charCount===1?"":"s"}`;return e.rowCount<=1?`Selected ${t}`:`Selected ${t} across ${e.rowCount} lines`}i(ov,"buildTranscriptScreenSelectionSummary");function iv(e,t){return e.rows.length===0?0:t<e.topRow?1:t>e.bottomRow?-1:0}i(iv,"resolveTranscriptDragEdgeScrollDirection");function Hd(e){return e?e.map(t=>({label:t.label,value:t.value,description:t.description})):[]}i(Hd,"toSelectOptions");function zg(e){return e.question}i(zg,"getAskUserDialogTitle");function c1(e){switch(e){case"confirm":return Z("waiting.confirm");case"select":return Z("waiting.select");case"input":return Z("waiting.input")}}i(c1,"formatPromptWaitingText");function sv(e){return e.waitingReason==="confirm"?Z("placeholder.confirm"):e.waitingReason==="select"?Z("placeholder.select"):e.waitingReason==="input"?Z("placeholder.input"):e.isLoading?e.canQueueFollowUps?Z("placeholder.queue"):Z("placeholder.busy"):Z("placeholder.idle")}i(sv,"buildPromptPlaceholderText");function av(e){if(e.isTranscriptMode)return;if(e.waitingReason)return{kind:"waiting",text:c1(e.waitingReason),showSpinner:!1};if(!e.isLoading)return;let t=Yp({activeToolCount:e.streamingState.activeToolCalls.filter(n=>n.status===$.Executing).length,currentTool:e.streamingState.currentTool,isThinkingActive:e.streamingState.isThinking,thinkingCharCount:e.streamingState.thinkingCharCount,isCompacting:e.streamingState.isCompacting,toolInputCharCount:e.streamingState.toolInputCharCount,toolInputContent:e.streamingState.toolInputContent,managedPhase:e.managedState?.phase,managedHarnessProfile:e.managedState?.harnessProfile,managedWorkerTitle:e.managedState?.workerTitle});return t?{kind:"busy",text:t,showSpinner:!0}:void 0}i(av,"buildPromptActivityViewModel");function cv(e,t,n){if(e){if(e.userOverrideContextWindow!==void 0)return e.contextWindow===e.userOverrideContextWindow?e:{...e,contextWindow:e.userOverrideContextWindow};try{let o=n(t.provider)?.getEffectiveContextWindow?.(t.model);if(o!==void 0&&o!==e.contextWindow)return{...e,contextWindow:o};if(o!==void 0)return e}catch{}return e}}i(cv,"resolveEffectiveCompactionInfo");function lv(e){return{sessionId:e.sessionId,permissionMode:e.permissionMode,agentMode:e.agentMode,provider:e.provider,model:e.model,currentTool:e.streamingState.currentTool,activeToolCount:e.streamingState.activeToolCalls.filter(t=>t.status===$.Executing).length,thinking:e.thinking,reasoningMode:e.reasoningMode,reasoningCapability:e.reasoningCapability,isThinkingActive:e.streamingState.isThinking,thinkingCharCount:e.streamingState.thinkingCharCount,toolInputCharCount:e.isTranscriptMode?e.streamingState.toolInputCharCount:0,toolInputContent:e.isTranscriptMode?e.streamingState.toolInputContent:"",currentIteration:e.streamingState.currentIteration,maxIter:e.maxIter,contextUsage:e.contextUsage,isCompacting:e.streamingState.isCompacting,showBusyStatus:!1,managedPhase:e.isLoading?e.managedState?.phase:void 0,managedHarnessProfile:e.isLoading?e.managedState?.harnessProfile:void 0,managedWorkerTitle:e.isLoading?e.managedState?.workerTitle:void 0,managedRound:e.isLoading?e.managedState?.round:void 0,managedMaxRounds:e.isLoading?e.managedState?.maxRounds:void 0,managedGlobalWorkBudget:e.isLoading?e.managedState?.globalWorkBudget:void 0,managedBudgetUsage:e.isLoading?e.managedState?.budgetUsage:void 0,managedBudgetApprovalRequired:e.isLoading?e.managedState?.budgetApprovalRequired:void 0,managedIdleWaiting:e.isLoading?e.managedState?.idleWaiting:void 0,managedIdleWaitingPendingCount:e.isLoading?e.managedState?.idleWaitingPendingCount:void 0,autoModeEngine:e.autoModeEngine}}i(lv,"buildSurfaceStatusBarProps");function uv(e){let t=Fg(e.state),n=t?Bd(e.state,e.selectableItemIds,e.selectedItemId):void 0,r=n?e.selectableItemIds.indexOf(n):-1;return{selectionEnabled:t,selectedItemId:n,selectedItemIndex:r,position:n?{current:Math.max(1,r+1),total:e.selectableItemIds.length}:void 0,detailState:n&&e.isExpanded?"expanded":"compact",copyCapabilities:{message:t&&!!n,toolInput:t&&!!n&&e.selectedItemType==="tool_group",copyOnSelect:t&&bb(e.state)},toggleDetail:t&&!!n,navigationCapabilities:{selection:t&&!!n&&e.selectableItemIds.length>0}}}i(uv,"buildTranscriptSelectionRuntimeState");function dv(e){if(!(!e.runtime.selectionEnabled||!e.runtime.selectedItemId))return{itemSummary:e.itemSummary?.summary,itemKind:e.itemSummary?.kindLabel,position:e.runtime.position,detailState:e.runtime.detailState,copyCapabilities:e.runtime.copyCapabilities,toggleDetail:e.runtime.toggleDetail,navigationCapabilities:e.runtime.navigationCapabilities}}i(dv,"buildTranscriptSelectionViewModel");function fv(e){return{query:e.query,matches:e.matches,currentMatchIndex:e.currentMatchIndex,anchorItemId:e.anchorItemId,statusText:e.useOverlaySurface?void 0:e.statusText}}i(fv,"buildTranscriptSearchViewModel");function l1(e,t){return e===0?0:t<0?-1:Math.min(t,e-1)}i(l1,"clampTranscriptSearchSelectedIndex");function u1(e){return e.isHistorySearchActive?e.historySearchQuery.trim()?e.matches.length===0?"No matches yet":e.clampedSelectedIndex<0?`${e.matches.length} matches | use n/N or Enter to jump`:e.matches[e.clampedSelectedIndex]?.excerpt:"Type to search transcript":void 0}i(u1,"buildTranscriptSearchDetailText");function mv(e){let t=l1(e.matches.length,e.selectedIndex),n=Bb(e.matches,t),r=u1({isHistorySearchActive:e.isHistorySearchActive,historySearchQuery:e.historySearchQuery,matches:e.matches,clampedSelectedIndex:t});return{clampedSelectedIndex:t,statusText:n,detailText:r,searchState:fv({query:e.historySearchQuery,matches:e.matches,currentMatchIndex:t,anchorItemId:e.anchorItemId,statusText:n,useOverlaySurface:e.useOverlaySurface})}}i(mv,"buildTranscriptSearchChrome");function d1(e=!1){return`\u2190/\u2192 enter select mode | Ctrl+E ${e?"collapse":"show all"} | Mouse drag selects text`}i(d1,"buildDefaultTranscriptSecondaryText");function pv(e){let t=[];return e.historySearchQuery.trim().length>0&&e.isHistorySearchActive&&e.historySearchMatchCount===0&&t.push({id:"search-empty",text:"No transcript matches yet",tone:"info"}),e.pendingInputCount>=e.maxPendingInputs&&t.push({id:"queue-full",text:`Queued follow-up limit reached (${e.maxPendingInputs})`,tone:"warning"}),t}i(pv,"buildFooterNotifications");function gv(e){let t=[];return e.historySearchQuery.trim()&&t.push(`Search: ${e.historySearchQuery.trim()}`),e.pendingInputCount>0&&t.push(`Queued follow-ups: ${e.pendingInputCount}`),t}i(gv,"buildBaseFooterNotices");function hv(e){if(e.inputText.trim()&&(e.isTranscriptMode||e.isHistorySearchActive))return"Draft preserved while viewing transcript"}i(hv,"buildStashNoticeText");function yv(e){return[...e]}i(yv,"buildPromptFooterNotices");function f1(e){let n=(e.isHistorySearchActive?[e.historySearchDetailText]:[e.selectionSummary,e.actionSummary]).filter(r=>!!(r&&r.trim().length>0));return n.length===0?d1(e.showAllActive):n.join(" | ")}i(f1,"buildTranscriptFooterSecondaryText");function m1(e){let t=[];return e&&t.push(e),t}i(m1,"buildTranscriptFooterBudgetNotices");function xv(e){let t=e.selectionState?.copyCapabilities,n=e.selectionState?.navigationCapabilities,o=ov(e.textSelection),s=e.textSelection?gs({copyMessage:!0,copyToolInput:!1,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!1,selectionNavigation:!1,matchNavigation:!1,dismissAction:"clear"}):e.selectionState?.itemSummary?gs({copyMessage:!!t?.message,copyToolInput:!!t?.toolInput,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!!e.selectionState?.toggleDetail,selectionNavigation:!!n?.selection,matchNavigation:!1,dismissAction:"clear"}):void 0,a=f1({isHistorySearchActive:e.isHistorySearchActive,historySearchDetailText:e.historySearchDetailText,selectionSummary:o,actionSummary:s,showAllActive:e.showAllActive,baseFooterNotices:e.baseFooterNotices});return{selectionSummary:o,actionSummary:s,secondaryText:a,budgetNotices:m1(a)}}i(xv,"buildTranscriptFooterViewModel");import{jsx as e8,jsxs as t8}from"react/jsx-runtime";function wv(e,t){if(!(!e||!t||t<=0))switch(e){case"finding-validation":return`Validating ${t} finding${t===1?"":"s"}`;case"module-triage":return`Scanning ${t} module${t===1?"":"s"}`;case"evidence-scan":return`Parallel evidence pass (${t})`;case"hypothesis-check":return`Checking ${t} hypothesis${t===1?"":"es"}`;default:return}}i(wv,"formatAmaWorkStripText");function Sv(e){return e.replace(/^\[[^\]]+\]\s*/,"").trim()}i(Sv,"stripLiveActivityPrefix");function Tv(e){let t=[],n=e.showPrimary??!0;if(e.isLoading&&n){let l=e.currentTool?Sv(zu(e.currentTool,e.toolInputContent??"",e.toolInputCharCount??0)):void 0,u=e.liveActivityLabel?Sv(e.liveActivityLabel):void 0;e.activeWorkerTitle?t.push({id:"primary-worker",label:`${e.activeWorkerTitle} active`,accent:!0,selected:!0}):e.activePhase?t.push({id:"primary-phase",label:e.activePhase,accent:!0,selected:!0}):u?t.push({id:"primary-live-activity",label:u,accent:!0,selected:!0}):l?t.push({id:"primary-tool",label:l,accent:!0,selected:!0}):e.isThinkingActive?t.push({id:"primary-thinking",label:"Thinking",accent:!0,selected:!0}):t.push({id:"primary-generic",label:"Agent active",accent:!0,selected:!0})}e.parallelText&&t.push({id:"parallel",label:e.parallelText});let[r,o,s,...a]=t,c=[r,o,s].filter(l=>!!l);return e.isLoading?{items:c,overflowLabel:a.length>0?`+${a.length} more`:void 0,ctaHint:e.parallelText?"Ctrl+O transcript":void 0}:{items:c,overflowLabel:a.length>0?`+${a.length} more`:void 0,ctaHint:e.parallelText?"Ctrl+O transcript":void 0}}i(Tv,"buildBackgroundTaskViewModel");function Cv(e,t){if(!(!t||!e||e.agentMode!=="ama"))return wv(e.childFanoutClass,e.childFanoutCount)}i(Cv,"buildAmaWorkStripFromStatus");function Xg(e){let t=Cv(e.status,e.isLoading);return{workStripText:t,backgroundTask:Tv({isLoading:e.isLoading,showPrimary:!!(e.parallelTextOverride??t),activeWorkerTitle:e.status?.activeWorkerTitle,activePhase:e.status?.phase??(e.agentMode==="ama"?"AMA active":void 0),parallelText:e.parallelTextOverride??t,currentTool:e.currentTool,toolInputCharCount:e.toolInputCharCount,toolInputContent:e.toolInputContent,liveActivityLabel:e.liveActivityLabel,isThinkingActive:e.isThinkingActive})}}i(Xg,"buildAmaSummaryViewModel");function Yg(e){return{...e,items:[...e.items],managedLiveEvents:[...e.managedLiveEvents??[]]}}i(Yg,"captureTranscriptSnapshot");function bv(e){if(!e.isTranscriptMode||!e.snapshot)return 0;let t=Math.max(0,e.currentItemsLength-e.snapshot.items.length);return e.isLoading!==e.snapshot.isLoading&&(t+=1),e.currentResponse!==e.snapshot.currentResponse&&(t+=1),e.thinkingContent!==e.snapshot.thinkingContent&&(t+=1),e.activeToolCallsLength!==e.snapshot.activeToolCalls.length&&(t+=1),(e.currentManagedLiveEventsLength??0)!==e.snapshot.managedLiveEvents.length&&(t+=1),t}i(bv,"countPendingTranscriptUpdates");function vv(e){return e.snapshot?[...e.snapshot.items]:e.surface==="transcript"?[...e.transcriptItems]:[...e.promptItems]}i(vv,"resolveTranscriptSurfaceItems");function Iv(e){let t=[];for(let n of e)switch(n.type){case"user":case"system":case"error":case"tool_group":case"event":case"info":t.push({...n});break;case"assistant":case"thinking":{let{compactText:r,...o}=n;t.push(o);break}default:break}return t}i(Iv,"buildPromptSurfaceItems");function kv(e,t){return e.enabled?t==="transcript"?e.transcriptShell:e.promptShell:"main-screen"}i(kv,"resolveFullscreenShellMode");function p1(e,t){return e.enabled&&kv(e,t)==="virtual"}i(p1,"shouldUseRendererViewportShell");function Rv(e,t){let n=kv(e,t),r=e.enabled&&n==="virtual",o=e.enabled&&n==="virtual",s=r&&(e.mouseWheel||e.mouseClicks),a=s&&e.mouseClicks,c=o&&e.mouseWheel;return{shellMode:n,usesAlternateScreenShell:r,usesRendererViewportShell:o,usesRendererMouseTracking:s,usesManagedMouseClicks:a,usesManagedMouseWheel:c,usesManagedSelection:o,usesManagedWheelHistory:c,usesNativeMainScreenScrollback:!o}}i(Rv,"resolveTranscriptInteractionPolicy");function Ev(e,t,n){return p1(e,t)?t==="transcript"||n:!1}i(Ev,"shouldOwnTranscriptViewport");var g1=500,h1=1,y1=/[\p{L}\p{N}_/.\-+~\\]/u;function x1(e){return e.text===" "?"":e.text}i(x1,"normalizeTranscriptRowText");function Mv(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i(Mv,"comparePoints");function qg(e){return e===""||/\s/.test(e)?0:y1.test(e)?1:2}i(qg,"charClass");function Av(e){let t=e.timeoutMs??g1,n=e.distance??h1,r=e.time-e.previous.time<=t,o=Math.abs(e.row-e.previous.row)<=n&&Math.abs(e.column-e.previous.column)<=n,s=r&&o?Math.min(3,e.previous.count+1):1;return{time:e.time,row:e.row,column:e.column,count:s}}i(Av,"resolveTranscriptMultiClickState");function Fd(e,t,n){let r=e[t.modelRowIndex];if(!r)return;let o=x1(r);if(n==="line")return{kind:n,start:{...t,column:0},end:{...t,column:Kr(o)}};let s=Kr(o);if(s===0)return{kind:n,start:{...t,column:0},end:{...t,column:0}};let a=Math.max(0,Math.min(s-1,t.column));t.column===s&&(a=s-1);let c=qg(td(o,a)),l=a,u=a+1;for(;l>0&&qg(td(o,l-1))===c;)l-=1;for(;u<s&&qg(td(o,u))===c;)u+=1;return{kind:n,start:{...t,column:l},end:{...t,column:u}}}i(Fd,"resolveTranscriptSelectionSpanAt");function Qg(e,t){return Mv(t.end,e.start)<0?{anchor:e.end,focus:t.start}:Mv(t.start,e.end)>0?{anchor:e.start,focus:t.end}:{anchor:e.start,focus:e.end}}i(Qg,"extendTranscriptSelectionSpan");var Pv="Do not try to modify files while planning. Finish the plan first, then call exit_plan_mode with the finalized plan \u2014 the user will review and approve or reject.";function Jg(e,t){if(qt(e))return[t.getGuardrail()]}i(Jg,"buildAutoModeGuardrails");function S1(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:e.thinking===!0||t.thinking===!0?"auto":"off"}i(S1,"resolveInitialReasoningMode");function $v(e){let t=e.managedTask;if(!t)return[];let n=i(u=>{if(!e.interrupted&&!t.verdict.signalReason?.includes("Orchestration cancelled"))return!1;let m=u.signalReason?.trim()??"",p=u.summary?.trim()??"",g=u.output?.trim()??"",h=m.includes("Orchestration cancelled"),x=p.includes("Orchestration cancelled"),C=!g||p==="No textual output produced.";return u.status!=="completed"&&(h||x||C)||(h||x)&&C},"isInterruptedCancellation"),r=C1(t),o=new Map(t.roleAssignments.map((u,m)=>[u.id,m])),s=t.verdict.decidedByAssignmentId,a=Math.max(0,...t.evidence.entries.filter(u=>u.assignmentId===s).map(u=>u.round??1)),c=[...t.evidence.entries].sort((u,m)=>{let p=(u.round??1)-(m.round??1);return p!==0?p:(o.get(u.assignmentId)??0)-(o.get(m.assignmentId)??0)}).filter(u=>!n(u)).filter(u=>e.interrupted||!(u.assignmentId===s&&(u.round??1)===a)).map(u=>{let m=u.output?.trim()??"",p=u.summary?.trim()??"",g=m?Ao(m):"",h=p?Ao(p):"",x=u.role==="scout"?h?`Scout completed: ${h}`:"Scout completed.":h;return{entry:u,text:h||g||x}}).filter(({text:u})=>!!u).map(({entry:u,text:m})=>{let p=u.role==="scout"?" Preflight":(u.round??1)>1?` Round ${u.round}`:"";return`[${u.title??u.assignmentId}${p}]
323
- ${m}`}),l=t.verdict.disposition==="complete"?Z("managed.completed"):t.verdict.disposition==="needs_continuation"?Z("managed.completed.continuation"):t.verdict.disposition==="blocked"?Z("managed.completed.blocked"):void 0;return[...r?[r]:[],...c,...l?[`[${l}]`]:[]]}i($v,"buildManagedTaskTranscriptItems");function T1(e){let t=e.split(/\r?\n/).map(s=>s.trim()).filter(Boolean);if(t.length===0)return;if(t.length===1)return t[0];let[n,r]=t,o=n.startsWith("[")?`${n} ${r}`:`${n} / ${r}`;return o.length>220?`${o.slice(0,217)}...`:o}i(T1,"buildManagedTranscriptCompactText");function Fv(e){return e===`[${Z("managed.completed")}]`||e===`[${Z("managed.completed.blocked")}]`||e===`[${Z("managed.completed.continuation")}]`}i(Fv,"isCompletionTranscriptItem");function Lv(e){let t=T1(e);return{type:"event",icon:Fv(e)?"\u2713":">",text:e,...t&&t!==e?{compactText:t}:{}}}i(Lv,"toManagedTranscriptEventItem");function Vo(e){switch(e.type){case"assistant":return{type:"assistant",text:e.text,...e.compactText?{compactText:e.compactText}:{}};case"thinking":return{type:"thinking",text:e.text,...e.compactText?{compactText:e.compactText}:{}};case"event":return{type:"event",text:e.text,...e.icon?{icon:e.icon}:{},...e.compactText?{compactText:e.compactText}:{}};case"info":return{type:"info",text:e.text,...e.icon?{icon:e.icon}:{},...e.compactText?{compactText:e.compactText}:{}};case"error":return{type:"error",text:e.text};case"system":return{type:"system",text:e.text};case"hint":return{type:"hint",text:e.text};case"tool_group":return{type:"tool_group",tools:e.tools};case"user":return{type:"user",text:e.text};default:return e}}i(Vo,"toCreatableHistoryItem");function C1(e){let t=e.runtime?.rawRoutingDecision,n=e.runtime?.finalRoutingDecision;return!t||!n||t.harnessProfile==="H0_DIRECT"&&n.harnessProfile==="H0_DIRECT"?void 0:["[Routing]",`AMA routing: raw=${t.harnessProfile}(${t.routingSource??"unknown"}) -> final=${n.harnessProfile}`,`Primary task: ${t.primaryTask}`,`Review target: ${n.reviewTarget??"general"}`,`Review scale: ${n.reviewScale??"unknown"}`,`Solo boundary: ${t.soloBoundaryConfidence?.toFixed(2)??"n/a"}`,`Independent QA: ${t.needsIndependentQA?"yes":"no"}`,e.runtime?.qualityAssuranceMode?`Quality assurance: ${e.runtime.qualityAssuranceMode}`:void 0,e.runtime?.budget?`Adaptive budget: rounds=${e.runtime.budget.plannedRounds} total=${e.runtime.budget.totalBudget} reserve=${e.runtime.budget.reserveBudget}`:void 0,e.runtime?.routingOverrideReason?`Override reason: ${e.runtime.routingOverrideReason}`:void 0,n.upgradeCeiling?`Upgrade ceiling: ${n.upgradeCeiling}`:void 0].filter(o=>!!o).join(`
324
- `)}i(C1,"buildManagedTaskRoutingTranscript");function b1(e,t=240){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(b1,"truncateToolPreview");function v1(e,t=800){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(v1,"truncateToolOutputPreview");function nh(e,t){if(!e||!t)return e;let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`^\\[Tools\\]\\s+\\[${n}\\]\\s+`,"i"),"[Tools] ").replace(new RegExp(`^\\[Thinking\\]\\s+\\[${n}\\]\\s*`,"i"),"[Thinking] ").replace(new RegExp(`^\\[${n}\\]\\s+thinking\\b`,"i"),"[Thinking]").trim()}i(nh,"formatManagedLiveActivityLabel");function Yr(e,t){return nh(`[Tools] ${Ku(e)}`,t)??`[Tools] ${Ku(e)}`}i(Yr,"formatManagedLiveToolLabel");function Zg(e,t){if(e.type!==t.type)return!1;switch(e.type){case"assistant":{let n=t;return e.text===n.text&&e.compactText===n.compactText}case"thinking":{let n=t;return e.text===n.text&&e.compactText===n.compactText}case"event":{let n=t;return e.text===n.text&&e.compactText===n.compactText&&e.icon===n.icon}case"info":{let n=t;return e.text===n.text&&e.compactText===n.compactText&&e.icon===n.icon}case"error":case"hint":case"system":case"user":{let n=t;return e.text===n.text}case"tool_group":{let n=t;return JSON.stringify(e.tools)===JSON.stringify(n.tools)}default:return!1}}i(Zg,"areManagedLiveItemsEquivalent");function I1(e){return e==="Task completed"?Z("managed.completed"):e==="Task needs continuation"?Z("managed.completed.continuation"):e==="Task ended: blocked"?Z("managed.completed.blocked"):e==="Task ended: needs_continuation"?Z("managed.completed.continuation"):e.startsWith("Task ended:")?Z("managed.completed.blocked"):e}i(I1,"localizeManagedCompletionSummary");function k1(e){if(e.events&&e.events.length>0)return e.events.reduce((r,o)=>{let s=o.summary.trim(),a=(o.detail??o.summary).trim();if(!s||!a)return r;let c=`managed-live-${o.key}`,l=Date.now(),u=o.persistToHistory??e.persistToHistory??!1;if(o.presentation==="thinking")return r.push({item:{id:c,type:"thinking",timestamp:l,text:a,...s!==a?{compactText:s}:{}},persistToHistory:u}),r;if(o.presentation==="assistant")return r.push({item:{id:c,type:"assistant",timestamp:l,text:a,...s!==a?{compactText:s}:{}},persistToHistory:u}),r;let m=o.kind==="completed";if(m&&!jd)return r;let p=m?`[${I1(s)}]`:void 0,g=p??s,h=p??a;return r.push({item:{id:c,type:"event",timestamp:l,text:h,icon:o.kind==="warning"?"!":m?"\u2713":">",...g!==h?{compactText:g}:{}},persistToHistory:u}),r},[]);if(e.phase==="completed"&&!jd)return[];let t=cc(e),n=cc(e,{expanded:!0})??t;return!t||!n?[]:[{item:{id:`managed-live-fallback-${e.phase??"worker"}-${t.toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48)}`,type:"event",timestamp:Date.now(),text:n,icon:">",...t!==n?{compactText:t}:{}},persistToHistory:e.persistToHistory??!1}]}i(k1,"buildManagedLiveEventDrafts");function Wv(e){return e.replace(/^\[[^\]]+\]\s+/,"").replace(/^[A-Za-z][A-Za-z0-9_-]*:\s*/,"").trim()}i(Wv,"stripToolRolePrefix");function Ov(e){return Wv(e).toLowerCase()}i(Ov,"normalizeToolNameForMatch");function rh(e){return NS(e)?"":Ao(e).trim()}i(rh,"sanitizeInterruptedAssistantText");function Dv(e){return!!(e?.activeWorkerId&&!e.childFanoutClass&&(e.phase==="preflight"||e.phase==="worker"))}i(Dv,"isForegroundManagedStreamingStatus");function R1(e,t,n){let r=[],o=n?.infoItems??[],s=oh({thinking:e,toolCalls:n?.toolCalls,toolNames:n?.toolNames});for(let c of o){let l=c.trim();l&&r.push({type:"info",text:l})}r.push(...s);let a=rh(t);return a&&r.push({type:"assistant",text:`${a}
325
-
326
- [Interrupted]`}),r}i(R1,"buildInterruptedPersistenceItems");function oh({thinking:e,response:t,toolCalls:n,toolNames:r}){let o=[],s=e?.trim()??"",a=t?.trim()??"",c=n&&n.length>0?[...n]:[],l=r&&r.length>0?[...r]:[];return s&&o.push({type:"thinking",text:s}),c.length>0?o.push({type:"tool_group",tools:c}):!s&&!a&&l.length>0&&o.push({type:"info",icon:"*",text:`Tools: ${l.join(", ")}`}),a&&o.push({type:"assistant",text:a}),o}i(oh,"buildRoundHistoryItems");function Uv(e){if(e.type==="tool_group")return;let t=typeof e.text=="string"?e.text.trimEnd():"";if(t)return{type:e.type,text:t,...typeof e.icon=="string"&&e.icon.length>0?{icon:e.icon}:{},...typeof e.compactText=="string"&&e.compactText.length>0?{compactText:e.compactText.trimEnd()}:{}}}i(Uv,"toPersistedUiHistoryItem");var Nv=150,Bv=50,jd=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1";function zo(e){if(e.length===0)return[];let t=[];for(let r=0;r<e.length;r+=1)e[r]?.type==="user"&&t.push(r);let n=[...e];if(t.length>Bv){let r=t[t.length-Bv]??0;n=e.slice(r)}if(n.length>Nv){let r=n.slice(-Nv),o=r.findIndex(s=>s.type==="user");n=o>0?r.slice(o):r}return[...n]}i(zo,"trimPersistedUiHistorySnapshot");function Is(e){if(e)return zo(e)}i(Is,"normalizePersistedUiHistory");function Hv(e){return zo(e.map(t=>Uv(t)).filter(t=>!!t))}i(Hv,"serializeUiHistorySnapshot");function E1(e){return e.map(t=>Uv(t)).filter(t=>!!t)}i(E1,"serializeCreatableHistoryItems");function Wd(e,t){return t.length===0?zo(e):zo([...e,...E1(t)])}i(Wd,"appendPersistedUiHistorySnapshot");function Ud(e,t,n){console.log((e==="block"?Xe.red:Xe.yellow)(t)),n.forEach(r=>console.log(Xe.dim(r)))}i(Ud,"logSessionTransitionGuard");var eh=i(({config:e,sessionId:t,workingDir:n,terminalWidth:r,compactionInfo:o})=>{let s=te("dark"),a=e.model??Kn(e.provider)??e.provider,c=ho(e.provider,e.model),l=El(c),u=Math.min(60,r-4),m=o?Math.round(o.contextWindow/1e3):0,p=o?Math.round(o.contextWindow*o.triggerPercent/100/1e3):0;return Vt(I,{flexDirection:"column",marginBottom:1,children:[kg.map((g,h)=>se(T,{color:s.colors.primary,children:g},h)),Vt(I,{children:[Vt(T,{bold:!0,color:s.colors.text,children:[" v",ki]}),se(T,{dimColor:!0,children:" | "}),Vt(T,{color:s.colors.success,children:[e.provider,"/",a]}),se(T,{dimColor:!0,children:` [${l}]`}),se(T,{dimColor:!0,children:" | "}),se(T,{color:s.colors.primary,children:e.agentMode.toUpperCase()}),se(T,{dimColor:!0,children:" | "}),se(T,{color:s.colors.accent,children:e.permissionMode}),e.reasoningMode!=="off"&&se(T,{color:s.colors.warning,children:` +reason:${e.reasoningMode}`})]}),o&&Vt(I,{children:[se(T,{dimColor:!0,children:" Context: "}),Vt(T,{dimColor:!0,children:[m,"k"]}),se(T,{dimColor:!0,children:" | Compaction: "}),se(T,{color:o.enabled?s.colors.success:void 0,dimColor:!o.enabled,children:o.enabled?"on":"off"}),se(T,{dimColor:!0,children:` @ ${o.triggerPercent}% (${p}k)`})]}),Vt(T,{dimColor:!0,children:[" ","-".repeat(u)]}),Vt(I,{children:[se(T,{dimColor:!0,children:" Session: "}),se(T,{color:s.colors.accent,children:t}),se(T,{dimColor:!0,children:" | Working: "}),se(T,{dimColor:!0,children:n})]}),Vt(T,{dimColor:!0,children:[" ","-".repeat(u)]})]})},"Banner");function M1(e){let t=e.config.model??Kn(e.config.provider)??e.config.provider,n=ho(e.config.provider,e.config.model),r=El(n),o=Math.min(60,e.terminalWidth-4),s=e.compactionInfo?Math.round(e.compactionInfo.contextWindow/1e3):0,a=e.compactionInfo?Math.round(e.compactionInfo.contextWindow*e.compactionInfo.triggerPercent/100/1e3):0,c=` v${ki} | ${e.config.provider}/${t} [${r}] | ${e.config.agentMode.toUpperCase()} | ${e.config.permissionMode}${e.config.reasoningMode!=="off"?` +reason:${e.config.reasoningMode}`:""}`,l=e.compactionInfo?` Context: ${s}k | Compaction: ${e.compactionInfo.enabled?"on":"off"} @ ${e.compactionInfo.triggerPercent}% (${a}k)`:void 0,u=` Session: ${e.sessionId} | Working: ${e.workingDir}`,m=` ${"-".repeat(o)}`,p=[],g=i(x=>{let C=Xt(x.length>0?x.split(`
327
- `):[""],Math.max(1,e.terminalWidth),0,0);return C.visualLines.length>0?C.visualLines:[""]},"wrapBannerLine"),h=i((x,C,w)=>{g(C).forEach((b,P)=>{p.push({key:`${x}-${P}`,text:b,...w})})},"pushLineRows");return kg.forEach((x,C)=>{h(`banner-logo-${C}`,x,{color:"primary"})}),h("banner-version",c,{color:"text",bold:!0}),l&&h("banner-compaction",l,{color:"dim"}),h("banner-divider-top",m,{color:"dim"}),h("banner-session",u,{color:"dim"}),h("banner-divider-bottom",m,{color:"dim"}),p.push({key:"banner-blank",text:" "}),{key:"banner",rows:p}}i(M1,"buildBannerTranscriptSection");function th(e,t){return t?{...e,sections:[t,...e.sections],rows:[...t.rows,...e.rows]}:e}i(th,"prependTranscriptSection");var A1=i(({options:e,config:t,context:n,storage:r,rendererMode:o,fullscreenPolicy:s,onExit:a,compactionInfo:c,autoModeBootstrap:l,setAutoModeAskUser:u,setAutoModeEngineChange:m,setCurrentConfigRef:p,onAgentsFilesReload:g})=>{let{exit:h}=Br(),{stdout:x}=Yn(),{stdin:C,setRawMode:w,isRawModeSupported:b}=Ia(),P=Qi(),{history:L}=Qa(),F=_v.useRef(null),O=_v.useRef(cx()),{addHistoryItem:N,clearHistory:k,setSessionId:ae}=Ja(),me=fe(L),W=fe(Hv(L));He(()=>{me.current=L,W.current=Hv(L)},[L]),He(()=>{ob()},[]),He(()=>{JS()},[]);let X=x.columns||80,v=tc(),M=fe(v);He(()=>{M.current=v},[v]);let{startStreaming:ne,stopStreaming:xe,abort:Re,startThinking:Se,appendThinkingChars:le,appendThinkingContent:Le,stopThinking:J,clearThinkingContent:Y,setCurrentTool:q,appendToolInputChars:Ge,appendToolInputContent:Te,clearToolInputContent:_e,clearResponse:Ee,appendResponse:ft,getSignal:we,getFullResponse:Ze,getThinkingContent:et,startNewIteration:ie,clearIterationHistory:A,startCompacting:_,stopCompacting:U,setMaxIter:ee,addPendingInput:Oe,removeLastPendingInput:tt,shiftPendingInput:Ce,consumePendingInputs:Be}=nc(),[ve,Q]=We(!1),[D,De]=We(t),Pe=ue(()=>cv(c,{provider:D.provider,model:D.model},fo),[c,D.provider,D.model]),[Wt,Qr]=We(!0),[Jr,Zr]=We(!0),[Cc,bc]=We(0),[of,As]=We(!1),[xh,Nn]=We(null),F0=ue(()=>wo(),[]),_s=fe(null),vc=fe(null),wh=fe(Promise.resolve()),Ic=fe(null),eo=fe({requested:!1,uiHistoryOverride:void 0}),Ps=fe(null),$s=fe(!1),Ls=fe(null),[sf,kc]=We(!0),[af,Rc]=We(""),[Ne,Bn]=We(()=>db(F0,{rendererMode:o})),[Ct,cf]=We(!1),[W0,U0]=We(0),{scrollRef:j0,scrollOffset:In,sticky:lf,setScrollOffset:G0,handleScrollTopChange:K0,handleStickyChange:V0,scrollTo:Ec,scrollBy:Mc,scrollToBottom:Ac}=Yb(),uf=fe(null),_c=fe(null),Os=fe([]),Pc=fe([]),Yo=fe(null),kn=fe(null),Sh=fe({time:0,row:-1,column:-1,count:0}),[$c,df]=We(void 0),[to,ff]=We(void 0),[qo,Th]=We(void 0),[en,z0]=We(()=>new Set),[mf,Ch]=We(null),[At,bh]=We(null),[G,pf]=We(null),[Lc,br]=We([]),Qo=ue(()=>{for(let f of Lc)if(f.status==="in_progress"){if(f.activeForm&&f.activeForm.length>0)return f.activeForm;if(f.subject&&f.subject.length>0)return f.subject}},[Lc]),[YO,Ds]=We([]),[Ns,X0]=We([]),[Oc,ut]=We(void 0),[no,Dc]=We(void 0),rt=fe(null),gf=fe(null),ro=fe([]),Jo=fe([]),ln=fe([]),nt=fe({}),dt=fe({activeToolGroupTools:[]}),vh=fe(0),Nc=fe({itemId:void 0,kind:"thinking",pendingText:""}),Rn=fe(null),Y0=80,q0=20,Q0=fe(null),Bc=ue(()=>[...L,...Ns],[L,Ns]),hf=ue(()=>{let f=KT(Bc,Q0);return f===0?Bc:Bc.slice(f)},[Bc]),yf=ue(()=>VT(hf,q0),[hf]),Bs=hf,_t=fe(null),Hn=fe(null),Fn=fe([]),Pt=fe([]),[oo,J0]=We([]),ir=fe([]),un=z(f=>{ir.current=f,J0(f)},[]),Ih=z(f=>{ro.current=f,Ds(f)},[]),Zo=z(f=>{ln.current=f,X0(f)},[]),kh=z(f=>{let y=f([...ln.current]);Zo(y)},[Zo]),Rh=z(f=>{f.length!==0&&Zo([...ln.current,...f])},[Zo]),Hc=z(f=>{let y=dt.current,S=y.activeToolGroupTools.some(R=>R.status===$.Executing);dt.current={...f?.clearOwner?{}:{workerId:y.workerId,workerTitle:y.workerTitle},...S?{activeToolGroupItemId:y.activeToolGroupItemId,activeToolGroupTools:y.activeToolGroupTools}:{activeToolGroupTools:[]}},f?.clearOwner&&(nt.current={})},[]),Hs=z(()=>{Nc.current={itemId:void 0,kind:"thinking",pendingText:""},Rn.current&&(clearTimeout(Rn.current),Rn.current=null),Hc({clearOwner:!0}),Zo([])},[Hc,Zo]),Fc=z(f=>(vh.current+=1,`managed-foreground-${f}-${vh.current}`),[]),dn=z(f=>(Rh([f]),f.id),[Rh]),io=z((f,y)=>{nt.current.workerId?dn({id:`${y}-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:f.type,text:f.text,...f.icon?{icon:f.icon}:{},...f.tightSpacing?{tightSpacing:!0}:{},timestamp:Date.now()}):N(f)},[N,dn]),sr=z((f,y)=>{if(!f)return;let S;return kh(R=>R.map(E=>E.id!==f?E:(S=y(E),S))),S},[kh]),ei=z((f,y)=>{let S=dt.current;if(S.activeKind===f){if(f==="thinking"&&S.activeThinkingItemId)return S.activeThinkingItemId;if(f==="assistant"&&S.activeAssistantItemId)return S.activeAssistantItemId;if(f==="tool_group"&&S.activeToolGroupItemId)return S.activeToolGroupItemId}let R=Date.now(),E=y?.trim()?`[${y.trim()}] `:"",B=S.activeToolGroupTools.some(V=>V.status===$.Executing);if(f==="thinking"){let V=dn({id:Fc("thinking"),type:"thinking",timestamp:R,text:E});return dt.current={...dt.current,activeKind:"thinking",activeThinkingItemId:V,currentTurnThinkingItemId:V,activeAssistantItemId:void 0,...B?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},V}if(f==="assistant"){let V=dn({id:Fc("assistant"),type:"assistant",timestamp:R,text:E});return dt.current={...dt.current,activeKind:"assistant",activeThinkingItemId:void 0,activeAssistantItemId:V,...B?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},V}let H=dn({id:Fc("tool_group"),type:"tool_group",timestamp:R,tools:[]});return dt.current={...dt.current,activeKind:"tool_group",activeThinkingItemId:void 0,activeAssistantItemId:void 0,activeToolGroupItemId:H,activeToolGroupTools:[]},H},[dn,Fc]),vr=z(()=>{Rn.current&&(clearTimeout(Rn.current),Rn.current=null);let f=Nc.current;if(!f.pendingText||!f.itemId)return;let y=f.pendingText,S=f.itemId,R=f.kind;f.pendingText="",sr(S,E=>E.type!==R?E:{...E,text:`${E.text}${y}`})},[sr]),Eh=z(()=>{Rn.current||(Rn.current=setTimeout(vr,Y0))},[vr]),Wc=z((f,y)=>{if(!y)return;let S=dt.current.workerTitle,R=ei(f,S),E=Nc.current;E.itemId===R&&E.kind===f?E.pendingText+=y:(vr(),E.itemId=R,E.kind=f,E.pendingText=y),Eh()},[ei,vr,Eh]),Mh=z(f=>{let y=f.trim();if(!y)return;let S=Nc.current;S.kind==="thinking"&&S.pendingText&&(S.pendingText="",Rn.current&&(clearTimeout(Rn.current),Rn.current=null));let R=dt.current.workerTitle?.trim(),E=R?`[${R}] ${y}`:y,B=dt.current.currentTurnThinkingItemId;if(B){sr(B,V=>V.type==="thinking"?{...V,text:E}:V);return}let H=ei("thinking",dt.current.workerTitle);sr(H,V=>V.type==="thinking"?{...V,text:E}:V)},[ei,sr]),En=z(f=>{vr();let y=dt.current;if(y.activeToolGroupItemId&&y.activeToolGroupTools.some(H=>H.id===f.id)){let H=y.activeToolGroupTools.map(oe=>oe.id===f.id?f:oe),V=H.every(oe=>oe.status===$.Success||oe.status===$.Error||oe.status===$.Cancelled);dt.current={...y,...V?{activeToolGroupItemId:void 0,activeToolGroupTools:[]}:{activeToolGroupTools:H}},sr(y.activeToolGroupItemId,oe=>oe.type==="tool_group"?{...oe,tools:H}:oe);return}let S=ln.current;for(let H=S.length-1;H>=0;H-=1){let V=S[H];if(V.type!=="tool_group"||!V.tools.some(ye=>ye.id===f.id))continue;let oe=V.tools.map(ye=>ye.id===f.id?f:ye);sr(V.id,ye=>ye.type==="tool_group"?{...ye,tools:oe}:ye);return}let R=ei("tool_group",y.workerTitle),B=y.activeKind==="tool_group"&&y.activeToolGroupItemId===R?y.activeToolGroupTools.some(H=>H.id===f.id)?y.activeToolGroupTools.map(H=>H.id===f.id?f:H):[...y.activeToolGroupTools,f]:[f];dt.current={...dt.current,activeKind:"tool_group",activeToolGroupItemId:R,activeToolGroupTools:B},sr(R,H=>H.type==="tool_group"?{...H,tools:B}:H)},[ei,sr,vr]),Z0=z(f=>{vr();let y=dt.current,S=y.activeToolGroupTools.some(B=>B.status===$.Executing),R=ir.current.filter(B=>B.status===$.Executing),E=new Set(R.map(B=>B.id));dt.current={workerId:f?.workerId,workerTitle:f?.workerTitle,...S?{activeToolGroupItemId:y.activeToolGroupItemId,activeToolGroupTools:y.activeToolGroupTools}:{activeToolGroupTools:[]}},nt.current={workerId:f?.workerId,workerTitle:f?.workerTitle},Fn.current=[],Pt.current=Pt.current.filter(B=>E.has(B.id)),un(R),_e(),q(void 0),J(),Y(),Ee(),ut(void 0)},[vr,_e,Ee,Y,q,un,ut,J]),eI=z(f=>{if(f.length===0)return[];let y=[],S=[...ro.current],R=[...Jo.current];for(let E of f){let B=E.item,H=S.findIndex(V=>V.id===B.id);if(H>=0){let V=S[H];Zg(V,B)||(S=S.map((oe,ye)=>ye===H?{...B,timestamp:V.timestamp}:oe))}else S=[...S,B].slice(-12),y.push(B);if(E.persistToHistory){let V=R.findIndex(oe=>oe.id===B.id);if(V>=0){let oe=R[V];Zg(oe,B)||(R=R.map((ye,ct)=>ct===V?{...B,timestamp:oe.timestamp}:ye))}else R=[...R,B].slice(-48)}}return Jo.current=R,(y.length>0||S.some((E,B)=>!Zg(E,ro.current[B]??E)||E.id!==ro.current[B]?.id))&&Ih(S),y},[Ih]),Uc=z(f=>{if(Pt.current.findIndex(S=>S.id===f.id)===-1){Pt.current=[...Pt.current,f];return}Pt.current=Pt.current.map(S=>S.id===f.id?f:S)},[]),Ir=z(f=>{let y=ir.current.filter(S=>S.status===$.Executing);if(y.length!==0){if(f){let S=Ov(f);for(let R=y.length-1;R>=0;R-=1){let E=y[R];if(Ov(E.name)===S)return E}}return y[y.length-1]}},[]),ti=z(()=>{let f=Ir();q(f?Wv(f.name):void 0)},[Ir,q]),Ah=z(f=>(Uc(f),un([...ir.current.filter(y=>y.id!==f.id),f]),ti(),f),[un,ti,Uc]),ni=z((f,y)=>{let S=ir.current.find(E=>E.id===f);if(!S)return null;let R=y(S);return Uc(R),un(ir.current.map(E=>E.id===f?R:E)),ti(),R},[un,ti,Uc]),_h=z((f,y,S)=>{if(f){let E=ni(f,S);if(E)return E}let R=Ir(y);return R?ni(R.id,S):null},[Ir,ni]),jc=z((f,y,S,R,E)=>{let B=f??Ir(E)?.id;return B?ni(B,H=>({...H,status:y,endTime:Date.now(),error:S,output:R})):null},[Ir,ni]),Fs=z((f,y)=>{let S=Date.now(),R=new Map;for(let E of ir.current){if(E.status!==$.Executing)continue;let B=y(E);R.set(E.id,{...E,status:f,endTime:S,...B})}return R.size===0?[]:(Pt.current=Pt.current.map(E=>R.get(E.id)??E),un(ir.current.map(E=>R.get(E.id)??E)),ti(),[...R.values()])},[un,ti]),kr=z(()=>{un([])},[un]),{showHelp:Ph,toggleHelp:tI,setShowHelp:$h}=Mg(),nI=z(f=>{Rc(f),kc(f.trim().length===0)},[]),Gc=No(),Lh=ue(()=>Gc?Gc.state.visible&&Gc.suggestions.length>0:!1,[Gc]),[Ws,Oh]=We(!1),Dh=fe(Cc),Us=z(()=>{_t.current&&(clearTimeout(_t.current),_t.current=null),Hn.current&&(clearTimeout(Hn.current),Hn.current=null)},[]);He(()=>{Lh&&!Ws&&Oh(!0)},[Lh,Ws]),He(()=>{Cc!==Dh.current&&(Dh.current=Cc,Ws&&Oh(!1))},[Cc,Ws]);let[Ye,Kc]=We(null),so=fe(null),[Me,Mn]=We(null),Vc=fe(null),zc=fe(Me);zc.current=Me;let[Ut,ri]=We(""),[Xc,An]=We(0),xf=fe(""),js=fe(void 0),Nh=ue(()=>{if(!Pe)return;let{contextWindow:f,triggerPercent:y}=Pe;return{currentTokens:xh??n.contextTokenSnapshot?.currentTokens??mo(n.messages),contextWindow:f,triggerPercent:y}},[n.messages,n.contextTokenSnapshot,Pe,xh]),Gs=ue(()=>{if(!Ye)return;let f=!!Ye.input._alwaysConfirm,y=D.permissionMode==="accept-edits"&&!f;return f?Z("confirm.instruction.protected"):y?Z("confirm.instruction.always"):Z("confirm.instruction.basic")},[Ye,D.permissionMode]),ot=Ne.searchMode==="history",re=Ne.surface==="transcript",Rr=!!Ye||!!Me||ot,ht=re?Ct?FT:1e3:12,Er=Rv(s,Ne.surface),Bh=Er.shellMode,wf=Er.usesAlternateScreenShell,oi=Er.usesRendererViewportShell,Yc=Er.usesRendererMouseTracking,Hh=Er.usesManagedMouseClicks,Fh=Er.usesManagedMouseWheel,Sf=Er.usesManagedSelection,yt=Ev(s,Ne.surface,Tb(Ne)),Wh=Cb(Ne),qc=Ws&&!re,Uh=z(()=>Yg({items:Bs,managedLiveEvents:[],isLoading:ve,isThinking:v.isThinking,thinkingCharCount:v.thinkingCharCount,thinkingContent:v.thinkingContent,currentResponse:v.currentResponse,currentTool:v.currentTool,activeToolCalls:oo,toolInputCharCount:v.toolInputCharCount,toolInputContent:v.toolInputContent,lastLiveActivityLabel:Oc,workStripText:no,iterationHistory:v.iterationHistory,currentIteration:v.currentIteration,isCompacting:v.isCompacting}),[Bs,ve,v.isThinking,v.thinkingCharCount,v.thinkingContent,v.currentResponse,v.currentTool,oo,v.toolInputCharCount,v.toolInputContent,Oc,no,v.iterationHistory,v.currentIteration,v.isCompacting]);He(()=>{if(re){Ch(f=>f??Uh());return}Ch(null)},[Uh,re]);let Ks=ue(()=>bv({isTranscriptMode:re,snapshot:mf,currentItemsLength:Bs.length,currentManagedLiveEventsLength:0,isLoading:ve,currentResponse:v.currentResponse,thinkingContent:v.thinkingContent,activeToolCallsLength:oo.length}),[oo.length,ve,re,Bs.length,v.currentResponse,v.thinkingContent,mf]),$t=re?mf:null,Tf=ue(()=>Iv(yf),[yf]),rI=ue(()=>!!(Ns.length>0||Dv(G)),[Ns.length,G]),Qc=Ns.length>0,Lt=s.streamingPreview&&rI,ii=vv({surface:"transcript",snapshot:$t,promptItems:yf,transcriptItems:Bs}),Vs=ue(()=>{if(!re||Ct||ii.length<=Kp)return ii;let f=ii.slice(-Kp),y=ii.length-f.length;return[YT(y,f[0]?.timestamp),...f]},[ii,re,Ct]),it=$t?.isLoading??ve,qe=s.streamingPreview?{isThinking:Lt?!1:v.isThinking,thinkingCharCount:Lt?0:v.thinkingCharCount,thinkingContent:Lt?"":v.thinkingContent,currentResponse:Lt?"":v.currentResponse,currentTool:Lt?void 0:v.currentTool,activeToolCalls:Lt?[]:oo,toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:Lt?Oc:void 0,iterationHistory:[],currentIteration:v.currentIteration,isCompacting:!1}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:v.currentIteration,isCompacting:!1},pe=s.streamingPreview?{isThinking:Lt?!1:$t?.isThinking??v.isThinking,thinkingCharCount:Lt?0:$t?.thinkingCharCount??v.thinkingCharCount,thinkingContent:Lt?"":$t?.thinkingContent??v.thinkingContent,currentResponse:Lt?"":$t?.currentResponse??v.currentResponse,currentTool:Lt?void 0:$t?.currentTool??v.currentTool,activeToolCalls:Lt?[]:$t?.activeToolCalls??oo,toolInputCharCount:Lt?0:$t?.toolInputCharCount??v.toolInputCharCount,toolInputContent:Lt?"":$t?.toolInputContent??v.toolInputContent,managedLiveEvents:[],lastLiveActivityLabel:$t?.lastLiveActivityLabel??Oc,iterationHistory:Lt?[]:$t?.iterationHistory??v.iterationHistory,currentIteration:$t?.currentIteration??v.currentIteration,isCompacting:$t?.isCompacting??v.isCompacting}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:$t?.currentIteration??v.currentIteration,isCompacting:!1},ar=re?to:$c,jh=!!$c,Gh=z(()=>Yg({items:Tf,managedLiveEvents:[],isLoading:ve,isThinking:qe.isThinking,thinkingCharCount:qe.thinkingCharCount,thinkingContent:qe.thinkingContent,currentResponse:qe.currentResponse,currentTool:qe.currentTool,activeToolCalls:qe.activeToolCalls,toolInputCharCount:qe.toolInputCharCount,toolInputContent:qe.toolInputContent,lastLiveActivityLabel:qe.lastLiveActivityLabel,iterationHistory:qe.iterationHistory,currentIteration:qe.currentIteration,isCompacting:qe.isCompacting}),[ve,Tf,qe.activeToolCalls,qe.currentIteration,qe.currentResponse,qe.currentTool,qe.isCompacting,qe.isThinking,qe.iterationHistory,qe.lastLiveActivityLabel,qe.thinkingCharCount,qe.thinkingContent,qe.toolInputCharCount,qe.toolInputContent]);He(()=>{if(!jh){bh(null);return}bh(f=>f??Gh())},[Gh,jh]);let zs=At?.items??Tf,jt=At?.isLoading??ve,be=At?{isThinking:At.isThinking,thinkingCharCount:At.thinkingCharCount,thinkingContent:At.thinkingContent,currentResponse:At.currentResponse,currentTool:At.currentTool,activeToolCalls:At.activeToolCalls,toolInputCharCount:At.toolInputCharCount,toolInputContent:At.toolInputContent,managedLiveEvents:At.managedLiveEvents,lastLiveActivityLabel:At.lastLiveActivityLabel,iterationHistory:At.iterationHistory,currentIteration:At.currentIteration,isCompacting:At.isCompacting}:qe,kt=re?Vs:zs,Wn=re?it:jt,Ue=re?pe:be,Kh=jt&&!v.currentResponse&&!v.thinkingContent&&oo.length===0,ao=ue(()=>({config:D,sessionId:n.sessionId,workingDir:e.context?.gitRoot||process.cwd(),terminalWidth:X,compactionInfo:Pe??void 0}),[Pe,n.sessionId,D,e.context?.gitRoot,X]),si=ue(()=>s.enabled&&Jr?M1(ao):void 0,[ao,s.enabled,Jr]),Cf=ue(()=>qu({items:zs,viewportWidth:X,maxLines:ht,showDetailedTools:!1,showAllContent:!1,windowed:!1}),[zs,X,ht]),Jc=ue(()=>{let f=Qu({activeItems:Cf.activeItems,viewportWidth:X,isLoading:jt,maxLines:ht,isThinking:be.isThinking,thinkingCharCount:be.thinkingCharCount,thinkingContent:be.thinkingContent,streamingResponse:be.currentResponse,currentTool:be.currentTool,activeToolCalls:be.activeToolCalls,toolInputCharCount:be.toolInputCharCount,toolInputContent:be.toolInputContent,iterationHistory:be.iterationHistory,currentIteration:be.currentIteration,isCompacting:be.isCompacting,managedAgentMode:D.agentMode,managedPhase:jt?G?.phase:void 0,managedHarnessProfile:jt?G?.harnessProfile:void 0,managedWorkerTitle:jt?G?.activeWorkerTitle:void 0,managedRound:jt?G?.currentRound:void 0,managedMaxRounds:jt?G?.maxRounds:void 0,managedGlobalWorkBudget:jt?G?.globalWorkBudget:void 0,managedBudgetUsage:jt?G?.budgetUsage:void 0,managedBudgetApprovalRequired:jt?G?.budgetApprovalRequired:void 0,lastLiveActivityLabel:be.lastLiveActivityLabel,currentTodoActiveForm:Qo,showFullThinking:!1,showDetailedTools:!1,showAllContent:!1,showLiveProgressRows:Kh});return th(Gp(Ju(Cf,f)),si)},[D.agentMode,jt,be.activeToolCalls,be.currentIteration,be.currentTool,be.isCompacting,be.currentResponse,be.isThinking,be.iterationHistory,be.lastLiveActivityLabel,be.thinkingCharCount,be.thinkingContent,be.toolInputCharCount,be.toolInputContent,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,Kh,Cf,si,X,ht,Qo]),bf=ue(()=>qu({items:Vs,viewportWidth:X,maxLines:ht,showDetailedTools:Ct,showAllContent:Ct,windowed:!1}),[Vs,X,ht,Ct]),Zc=ue(()=>{if(!re||oi)return;let f=Qu({activeItems:bf.activeItems,viewportWidth:X,isLoading:it,maxLines:ht,isThinking:pe.isThinking,thinkingCharCount:pe.thinkingCharCount,thinkingContent:pe.thinkingContent,streamingResponse:pe.currentResponse,currentTool:pe.currentTool,activeToolCalls:pe.activeToolCalls,toolInputCharCount:pe.toolInputCharCount,toolInputContent:pe.toolInputContent,iterationHistory:pe.iterationHistory,currentIteration:pe.currentIteration,isCompacting:pe.isCompacting,managedAgentMode:D.agentMode,managedPhase:it?G?.phase:void 0,managedHarnessProfile:it?G?.harnessProfile:void 0,managedWorkerTitle:it?G?.activeWorkerTitle:void 0,managedRound:it?G?.currentRound:void 0,managedMaxRounds:it?G?.maxRounds:void 0,managedGlobalWorkBudget:it?G?.globalWorkBudget:void 0,managedBudgetUsage:it?G?.budgetUsage:void 0,managedBudgetApprovalRequired:it?G?.budgetApprovalRequired:void 0,lastLiveActivityLabel:pe.lastLiveActivityLabel,currentTodoActiveForm:Qo,showFullThinking:!0,showDetailedTools:Ct,showAllContent:Ct,showLiveProgressRows:!Qc,expandedItemKeys:en});return th(Gp(Ju(bf,f)),si)},[D.agentMode,en,Qc,si,re,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,X,it,ht,bf,pe.activeToolCalls,pe.currentIteration,pe.currentResponse,pe.currentTool,pe.isCompacting,pe.isThinking,pe.iterationHistory,pe.lastLiveActivityLabel,pe.thinkingCharCount,pe.thinkingContent,pe.toolInputCharCount,pe.toolInputContent,Ct,oi,Qo]),Xs=ue(()=>{if(yt)return re?th(Zu({items:kt,viewportWidth:X,isLoading:Wn,maxLines:ht,isThinking:Ue.isThinking,thinkingCharCount:Ue.thinkingCharCount,thinkingContent:Ue.thinkingContent,streamingResponse:Ue.currentResponse,currentTool:Ue.currentTool,activeToolCalls:Ue.activeToolCalls,toolInputCharCount:Ue.toolInputCharCount,toolInputContent:Ue.toolInputContent,iterationHistory:Ue.iterationHistory,currentIteration:Ue.currentIteration,isCompacting:Ue.isCompacting,managedAgentMode:D.agentMode,managedPhase:Wn?G?.phase:void 0,managedHarnessProfile:Wn?G?.harnessProfile:void 0,managedWorkerTitle:Wn?G?.activeWorkerTitle:void 0,managedRound:Wn?G?.currentRound:void 0,managedMaxRounds:Wn?G?.maxRounds:void 0,managedGlobalWorkBudget:Wn?G?.globalWorkBudget:void 0,managedBudgetUsage:Wn?G?.budgetUsage:void 0,managedBudgetApprovalRequired:Wn?G?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Ue.lastLiveActivityLabel,currentTodoActiveForm:Qo,windowed:!0,showFullThinking:re,showDetailedTools:Ct,showAllContent:Ct,showLiveProgressRows:re&&!Qc,expandedItemKeys:re?en:void 0}),si):Jc},[D.agentMode,Wn,kt,Qc,si,Ue.activeToolCalls,Ue.currentIteration,Ue.currentResponse,Ue.currentTool,Ue.isCompacting,Ue.isThinking,Ue.iterationHistory,Ue.lastLiveActivityLabel,Ue.thinkingCharCount,Ue.thinkingContent,Ue.toolInputCharCount,Ue.toolInputContent,en,re,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,Jc,ve,re,X,ht,yt,Ct,Qo]),Un=ue(()=>Xs??Zc,[Xs,Zc]),Ys=ue(()=>Xg({status:G,isLoading:ve,agentMode:D.agentMode}),[D.agentMode,ve,G]).workStripText,qs=$t?.workStripText??no,ai=ue(()=>Xg({status:G,isLoading:ve,agentMode:D.agentMode,parallelTextOverride:qs}),[D.agentMode,qs,ve,G]),co=ue(()=>Wb(kt).filter(f=>f!==ed),[kt]),Ve=ue(()=>Bd(Ne,co,Ne.selectedItemId),[co,Ne]),tn=ue(()=>kt.find(f=>f.id===Ve),[kt,Ve]),Vh=ue(()=>({...Ne,supportsSelection:Ne.supportsSelection&&yt,supportsCopyOnSelect:Ne.supportsCopyOnSelect&&yt}),[Ne,yt]),fn=ue(()=>uv({state:Vh,selectableItemIds:co,selectedItemId:Ve,selectedItemType:tn?.type,isExpanded:Ve?en.has(Ve):!1}),[en,co,tn?.type,Ve,Vh]),zh=fn.selectionEnabled,Xh=fn.copyCapabilities.copyOnSelect,JO=fn.selectedItemIndex,Yh=ue(()=>Fb(tn),[tn]),el=ue(()=>Db(kt.filter(f=>!zp(f))),[kt]),bt=ue(()=>Nb(el,Ut),[el,Ut]),tl=ue(()=>mv({isHistorySearchActive:ot,historySearchQuery:Ut,matches:bt,selectedIndex:Xc,anchorItemId:Ne.searchAnchorItemId,useOverlaySurface:Ne.supportsOverlaySurface&&Ne.supportsSearchViewport&&yt}),[bt,Ut,Xc,ot,Ne.searchAnchorItemId,Ne.supportsOverlaySurface,Ne.supportsSearchViewport,yt]),Mr=tl.clampedSelectedIndex,qh=tl.statusText,vf=tl.detailText,Qh=tl.searchState,ZO=fn.detailState==="expanded",nl=fn.selectionEnabled&&co.length>0&&!ar,ci=fn.copyCapabilities.message,rl=fn.copyCapabilities.toolInput,ol=fn.toggleDetail;He(()=>{if(Ys){if(Hn.current&&(clearTimeout(Hn.current),Hn.current=null),no===Ys)return;if(no){_t.current&&(clearTimeout(_t.current),_t.current=null),Dc(Ys);return}_t.current&&clearTimeout(_t.current),_t.current=setTimeout(()=>{Dc(Ys),_t.current=null},400);return}if(!no){_t.current&&(clearTimeout(_t.current),_t.current=null);return}_t.current&&(clearTimeout(_t.current),_t.current=null),Hn.current&&clearTimeout(Hn.current),Hn.current=setTimeout(()=>{Dc(void 0),Hn.current=null},300)},[Us,Ys,no]),He(()=>()=>{Us()},[Us]);let Ar=ue(()=>Kb({state:Ne,ownsViewport:yt,isAwaitingUserInteraction:Rr,isHistorySearchActive:ot,isTranscriptMode:re,historySearchQuery:Ut}),[Ut,Rr,ot,re,Ne,yt]);He(()=>{Bn(f=>{let y=gb(f,In);return y=pb(y,Ks),y=yb(y,s.enabled&&yt?!lf||ot||Rr:re||ot||Rr),y=Sb(y,Mr),y})},[Mr,s.enabled,In,Rr,ot,re,Ks,yt,lf]),He(()=>{Xc!==Mr&&An(Mr)},[Mr,Xc]),He(()=>{if(!ot){xf.current=Ut;return}if(Ut===xf.current)return;xf.current=Ut;let f=Hb(el,bt,Ne.searchAnchorItemId);An(f)},[bt,Ut,ot,Ne.searchAnchorItemId,el]);let Jh=re?pe:{isThinking:be.isThinking,thinkingCharCount:be.thinkingCharCount,currentTool:be.currentTool,activeToolCalls:be.activeToolCalls,toolInputCharCount:be.toolInputCharCount,toolInputContent:be.toolInputContent,currentIteration:be.currentIteration,isCompacting:be.isCompacting},Qs=re?it:jt,[If,kf]=We(()=>qt(D.permissionMode)?l.getGuardrail().getEngine():void 0),il=ue(()=>lv({sessionId:n.sessionId,permissionMode:D.permissionMode,agentMode:D.agentMode,provider:D.provider,model:D.model??Kn(D.provider)??D.provider,thinking:D.thinking,reasoningMode:D.reasoningMode,reasoningCapability:El(ho(D.provider,D.model)),isTranscriptMode:re,streamingState:Jh,maxIter:v.maxIter,contextUsage:Nh,isLoading:Qs,managedState:{phase:G?.phase,harnessProfile:G?.harnessProfile,workerTitle:G?.activeWorkerTitle,round:G?.currentRound,maxRounds:G?.maxRounds,globalWorkBudget:G?.globalWorkBudget,budgetUsage:G?.budgetUsage,budgetApprovalRequired:G?.budgetApprovalRequired,idleWaiting:G?.idleWaiting,idleWaitingPendingCount:G?.idleWaitingPendingCount},autoModeEngine:If}),[n.sessionId,D.permissionMode,D.agentMode,D.provider,D.model,D.thinking,D.reasoningMode,re,Jh,v.maxIter,Nh,Qs,G?.phase,G?.harnessProfile,G?.activeWorkerTitle,G?.currentRound,G?.maxRounds,G?.globalWorkBudget,G?.budgetUsage,G?.budgetApprovalRequired,G?.idleWaiting,G?.idleWaitingPendingCount,If]),Rf=Ye?"confirm":Me?.kind,_r=ue(()=>av({isTranscriptMode:re,isLoading:Qs,streamingState:be,managedState:Qs?{phase:G?.phase,harnessProfile:G?.harnessProfile,workerTitle:G?.activeWorkerTitle}:void 0,waitingReason:Rf}),[be.activeToolCalls,be.currentTool,be.isCompacting,be.isThinking,be.thinkingCharCount,be.toolInputCharCount,be.toolInputContent,re,G?.activeWorkerTitle,G?.harnessProfile,G?.phase,Rf,Qs]),Ef=_r?.text,cr=ue(()=>FC(Lc,{now:Date.now(),lastAllCompletedAt:null}),[Lc]),Zh=fe(!1);He(()=>{Zh.current&&!ve&&br(f=>f.length>0?[]:f),Zh.current=ve},[ve]);let Mf=ue(()=>id(il),[il]),ey=ue(()=>Mf,[Mf]),ty=ey.text,oI=ue(()=>wC(v.pendingInputs),[v.pendingInputs]),Af=ue(()=>WC({isHistorySearchActive:ot,isTranscriptMode:re,pendingInputCount:v.pendingInputs.length,buffering:Ne.buffering,pendingLiveUpdates:Ks}),[ot,re,Ks,v.pendingInputs.length,Ne.buffering]),ny=Af.leftItems,ry=Af.rightItems,oy=Af.summary,sl=ue(()=>gv({historySearchQuery:Ut,pendingInputCount:v.pendingInputs.length}),[Ut,v.pendingInputs.length]),al=ue(()=>pv({historySearchQuery:Ut,isHistorySearchActive:ot,historySearchMatchCount:bt.length,pendingInputCount:v.pendingInputs.length,maxPendingInputs:5}),[bt.length,Ut,ot,v.pendingInputs.length]),iy=ue(()=>al.map(f=>f.text).join(" | "),[al]),cl=ue(()=>hv({inputText:af,isTranscriptMode:re,isHistorySearchActive:ot}),[af,ot,re]),sy=Ne.supportsOverlaySurface&&Ne.supportsSearchViewport&&yt,ll=ue(()=>dv({runtime:fn,itemSummary:Yh}),[Yh,fn]),_f=ue(()=>yv(sl),[sl]),ay=ue(()=>xv({textSelection:ar,selectionState:ll,isHistorySearchActive:ot,historySearchDetailText:vf,historySearchHasMatches:!!qh&&bt.length>0,showAllActive:Ct,baseFooterNotices:sl}),[ar,sl,vf,bt.length,qh,ot,Ct,ll]),iI=ay.secondaryText,sI=ay.budgetNotices,cy=re?sI:_f,ly=x.rows??24,uy=re?"":af,dy=re?void 0:oI,fy=qs,my=re?!1:Ph,Gt=ue(()=>ub({terminalRows:ly,terminalWidth:X,windowedTranscript:oi,inputText:uy,footerHeaderText:oy,activitySummary:re?void 0:Ef,activityBarVisible:re?!1:!!Ef||ve&&cr.shouldRender,todoSurfaceRows:re?0:ve&&cr.shouldRender?cr.rows.length:0,pendingInputSummary:dy,stashNoticeSummary:cl,notificationSummary:iy,statusNoticeSummary:cy.join(" | "),workStripText:fy,suggestionsReserved:qc,suggestionsMode:"inline",showHelp:my,statusBarText:ty,confirmPrompt:Ye?.prompt,confirmInstruction:Gs,dialogMode:"inline",reviewHint:s.enabled&&yt?void 0:Ar.browseHintText,uiRequest:Me?Me.kind==="select"?{kind:"select",title:Me.title,options:Me.options.map(f=>({label:f.label,description:f.description})),buffer:Me.buffer,error:Me.error}:{kind:"input",prompt:Me.prompt,defaultValue:Me.defaultValue,buffer:Me.buffer,error:Me.error}:null}),[ly,X,uy,oy,Ef,dy,cl,iy,cy,fy,qc,sy,my,ty,Ye,Gs,s.enabled,Ar.browseHintText,yt,Me]),aI=ue(()=>se(lg,{reserveSpace:qc,width:X,hidden:re,mode:"inline"}),[qc,X,re,sy]),Js=ue(()=>Vb(Gt.messageRows),[Gt.messageRows]),py=ue(()=>zb(Js),[Js]),li=!Wh&&s.transcriptSpinnerAnimation,Zs=Un?Un.rows.length+Un.previewRows.length:W0,ul=z(f=>{Un||U0(f.scrollHeight)},[Un]),ea=z(f=>Zb({window:f,stickyHeader:Ar.stickyHeader,width:X,topChromeRows:0}),[X,Ar.stickyHeader]),ui=z((f=Os.current,y=Pc.current,S=uf.current?ea(uf.current):_c.current)=>{if(!S||f.length===0){Yo.current=null;return}_c.current=S,Yo.current=ev(f,{allRows:y,rowIndexByKey:jg(y),topOffsetRows:S.topOffsetRows,viewportHeight:S.contentWindow.viewportHeight,animateSpinners:li})},[ea,li]),ta=z(()=>{let f=_c.current;return f?.contentWindow.viewportHeight&&f.contentWindow.viewportHeight>0?f.contentWindow.viewportHeight:Gt.messageRows},[Gt.messageRows]),cI=z(f=>{uf.current=f;let y=ea(f);_c.current=y,ui(Os.current,Pc.current,y)},[ui,ea]),dl=z(f=>{Os.current=f.rows,Pc.current=f.allRows,ui(f.rows,f.allRows)},[ui]),Ot=z(()=>{kn.current=null,df(void 0),ff(void 0)},[]),Pf=z(()=>{Ot(),Bn(f=>vs(f,void 0))},[Ot]);He(()=>{ui()},[ui]),He(()=>{G0(f=>Xb(f,Zs,Gt.messageRows))},[Zs,Gt.messageRows]),He(()=>{if(!qo)return;let f=setTimeout(()=>{Th(void 0)},2e3);return()=>{clearTimeout(f)}},[qo]);let lr=z((f,y="success")=>{let S=f?.trim();S&&Th({text:S,tone:y})},[]),di=z((f,y)=>{let S=y instanceof Error?y.message:String(y);return`${f}: ${S}`},[]),fl=z(async f=>{let y=f??ar;if(!y)return!1;let S=y.text.trimEnd();if(!S)return!1;try{return await Po(S,{terminalWrite:P}),lr(`Copied ${y.rowCount} selected line${y.rowCount===1?"":"s"} to clipboard.`,"success"),!0}catch(R){return lr(di("Failed to copy transcript selection",R),"warning"),!1}},[ar,di,lr,P]),fi=z(f=>{if(!f||qb({items:kt,renderModel:Un,terminalWidth:X,transcriptMaxLines:ht,viewportRows:ta(),itemId:f,visibleRows:Os.current,expandedItemKeys:en,showDetailedTools:!1}))return;let y=Qb({items:kt,renderModel:Un,terminalWidth:X,transcriptMaxLines:ht,viewportRows:ta(),itemId:f,expandedItemKeys:en,showDetailedTools:!1});Ec(y)},[kt,X,ht,Un,en,ta,Ec,Os]),gy=z(f=>{Bn(y=>vs(y,f)),f&&fi(f)},[fi]),$f=z(f=>{f&&fi(f)},[fi]),hy=z(f=>{if(!nl)return;let y=Ub(co,Ve,f);y&&gy(y)},[nl,co,Ve,gy]),yy=z(()=>{!ol||!Ve||(z0(f=>{let y=new Set(f);return y.has(Ve)?y.delete(Ve):y.add(Ve),y}),fi(Ve))},[fi,ol,Ve]),xy=z(async()=>{if(!ci||!tn)return;let f=Ug(tn);if(f)try{await Po(f,{terminalWrite:P}),lr("Copied selected transcript entry to clipboard.","success")}catch(y){lr(di("Failed to copy transcript entry",y),"warning")}},[di,ci,tn,lr,P]),wy=z(async()=>{if(!rl||!tn)return;let f=jb(tn);if(f)try{await Po(f,{terminalWrite:P}),lr("Copied selected tool args to clipboard.","success")}catch(y){lr(di("Failed to copy tool args",y),"warning")}},[di,rl,tn,lr,P]),na=z(()=>Pc.current,[]),Sy=z((f,y)=>{if(!s.enabled||!yt)return;let S=Yo.current;return S?Kg(S,f,y):void 0},[s.enabled,yt]),mi=z((f,y,S)=>{let R=na(),E=rv(R,f,y,{animateSpinners:li,selectFullRowOnCollapsed:S?.selectFullRowOnCollapsed});re?ff(E):df(E);let B=R[Math.max(0,Math.min(y.modelRowIndex,R.length-1))];return S?.updateSelectedItem&&B?.itemId&&Bn(H=>vs(H,B.itemId)),E},[re,na,li]),Ty=z((f,y)=>{if(!f)return;kn.current=null;let S={...f,focus:y?.focusPoint??f.focus};if(!(S.mode!=="char"||S.didDrag)){Ot();return}let E=mi(S.anchor,S.focus,{selectFullRowOnCollapsed:!1,updateSelectedItem:!1});if(!E){Ot();return}return y?.copySelection!==!1&&fl(E),E},[Ot,fl,mi]),Lf=z(()=>{if(!re||!kt.length||Ye||Me)return;Ot();let f=Jb({items:kt,selectedItemId:Ve,renderModel:Un,terminalWidth:X,transcriptMaxLines:ht,viewportRows:ta(),scrollOffset:In,expandedItemKeys:en,showDetailedTools:!1,preferViewportAnchor:!0});Bn(y=>xb(y,{anchorItemId:f,initialMatchIndex:0})),ri(""),An(0)},[Ye,kt,en,In,re,Ve,Un,X,ht,Me,ta,Ot]),Of=z(()=>{Bn(f=>wb(f)),ri(""),An(0),Ot()},[Ot]),ml=z(()=>{!ot||bt.length===0||An(-1)},[bt.length,ot]),Cy=ue(()=>{if(!Ye)return null;if(Ye.tool==="exit_plan_mode"){let f=typeof Ye.input.plan=="string"?Ye.input.plan:void 0;return{prompt:Ye.prompt.split(`
328
- `,1)[0]??Ye.prompt,instruction:Gs,planContent:f}}return{prompt:Ye.prompt,instruction:Gs}},[Gs,Ye]),by=ue(()=>Me?Me.kind==="select"?{kind:"select",title:Me.title,options:Me.options,buffer:Me.buffer,error:Me.error,visibleSelectOptions:Gt.visibleSelectOptions,focusedIndex:Me.focusedIndex,selectedIndices:Me.selectedIndices,multiSelect:Me.multiSelect}:{kind:"input",prompt:Me.prompt,defaultValue:Me.defaultValue,buffer:Me.buffer,error:Me.error}:null,[Me,Gt.visibleSelectOptions]),lI=ue(()=>se(dg,{confirm:Cy,request:by}),[Cy,by]),Df=ue(()=>{if(qo)return se(BC,{text:qo.text,tone:qo.tone})},[qo]),Nf=ue(()=>{if(Df)return se(I,{flexDirection:"column",width:"100%",children:Df})},[Df]),pl=z(()=>{Bn(f=>hb(mb(f))),cf(!1),Ac(),ri(""),An(0),Ot()},[Ot,Ac]),vy=z(()=>{re&&cf(f=>!f)},[re]),uI=z(()=>{if(re){pl();return}cf(!1),Bn(f=>fb(f)),ri(""),An(0),Ot()},[Ot,pl,re]);He(()=>{zh||!Ne.selectedItemId||Bn(f=>vs(f,void 0))},[zh,Ne.selectedItemId]),He(()=>{if(!re||!ci||!Xh){js.current=void 0;return}if(to||!Ve||!tn)return;if(!js.current){js.current=Ve;return}if(js.current===Ve)return;js.current=Ve;let f=Ug(tn);f&&Po(f,{terminalWrite:P}).catch(()=>{})},[re,tn,Ve,ci,Xh,to,P]),He(()=>{if(x?.isTTY!==!0)return;let f=ru(x);f?.setShellMode?.(Bh,Yc),wf||f?.setAltScreenActive?.(!1)},[Bh,x,wf,Yc]);let ze=fe({...e,thinking:D.thinking,reasoningMode:D.reasoningMode,agentMode:D.agentMode,context:{...e.context,repoIntelligenceMode:D.repoIntelligenceMode,repoIntelligenceTrace:D.repoIntelligenceTrace,toolConstructionMode:!0},session:{...e.session,id:n.sessionId},guardrails:Jg(D.permissionMode,l)}),mn=fe(D.permissionMode);He(()=>{mn.current=D.permissionMode},[D.permissionMode]);let Iy=fe(ns()),Bf=fe(D);He(()=>{Bf.current=D},[D]);let Hf=fe(null);Hf.current===null&&(Hf.current=kl({getProvider:i(()=>fo(Bf.current.provider),"getProvider"),getModel:i(()=>Bf.current.model??"","getModel")}));let ky=fe(pu());He(()=>{D.permissionMode==="auto-in-project"&&ky.current()},[]);let Ff=z(f=>{De(y=>({...y,permissionMode:f})),mn.current=f,ze.current={...ze.current,guardrails:Jg(f,l)},kf(qt(f)?l.getGuardrail().getEngine():void 0),f==="auto-in-project"&&ky.current()},[l]),Ry=fe(v.pendingInputs),Qe=fe(!1),ra=fe(0),gl=z(()=>{if($s.current)return;let f=gf.current?.trim(),y=me.current.length>0?me.current[me.current.length-1]:void 0,S=y&&"text"in y&&typeof y.text=="string"?y.text.trim():void 0,E=ln.current.length>0?[...ln.current.map(B=>Vo(B)),...f&&f!==S?[{type:"info",text:f}]:[]]:[...ln.current.map(B=>Vo(B)),...R1(et(),Ze(),{toolCalls:Pt.current,toolNames:Fn.current,infoItems:f&&f!==S?[f]:[]})];E.length!==0&&($s.current=!0,Ps.current?.(E))},[Ze,et]);He(()=>{Ry.current=v.pendingInputs},[v.pendingInputs]);let Ey=z(()=>{Qe.current=!0,Re(),xe(),J(),Y(),_e(),Ee(),q(void 0),kr(),ut(void 0),Hs(),ro.current=[],Jo.current=[],Ds([]),Q(!1)},[Re,Ee,Y,_e,kr,Hs,q,Ds,Q,ut,xe,J]),hl=fe(0),dI=500;sn(Bt.Critical,f=>{if(!ve)return!1;switch(Pb({keyName:f.name,ctrl:!!f.ctrl,isTranscriptMode:re,isAwaitingUserInteraction:Rr,isInputEmpty:sf,pendingInputCount:v.pendingInputs.length,hasTranscriptTextSelection:!!to,timeSinceLastEscapeMs:Date.now()-hl.current,doubleEscapeIntervalMs:dI}).kind){case"interrupt":return hl.current=0,gl(),Ey(),!0;case"pop-pending-input":return tt(),hl.current=0,!0;case"arm-double-escape":return hl.current=Date.now(),!0;default:break}return!1},[ve,re,Rr,sf,v.pendingInputs.length,tt,gl,Ey]),sn(Bt.Critical,f=>{let y=Ab({itemsLength:kt.length,currentResponse:Ue.currentResponse,thinkingContent:Ue.thinkingContent,activeToolCallsLength:Ue.activeToolCalls.length}),S=_b({keyName:f.name,hasTranscript:y,historyScrollOffset:In,reviewPageSize:Js,reviewWheelStep:py,hasMouse:!!f.mouse,mouseButton:f.mouse?.button,mouseAction:f.mouse?.action,usesManagedMouseClicks:Hh,supportsMouseTracking:Ne.supportsMouseTracking,usesRendererMouseTracking:Yc,usesManagedMouseWheel:Fh,supportsWheelHistory:Ne.supportsWheelHistory});if(S.kind==="mouse-phase"){let E=f.mouse;if(!E)return!1;S.phase==="press"&&kn.current&&Ty(kn.current);let B=Sy(E.row,E.column);if(S.phase==="press"){if(!B||!y)return ar||Ve?(Pf(),!0):(Ot(),!1);let H=Av({previous:Sh.current,time:Date.now(),row:E.row,column:E.column});Sh.current=H;let V=H.count>=3?"line":H.count===2?"word":"char";if(ml(),Bn(oe=>vs(oe,void 0)),re?ff(void 0):df(void 0),V!=="char"){let oe=Fd(na(),B.point,V);if(oe)return kn.current={anchor:oe.start,focus:oe.end,didDrag:!1,mode:V,anchorSpan:oe},mi(oe.start,oe.end,{updateSelectedItem:!1}),!0}return kn.current={anchor:B.point,focus:B.point,didDrag:!1,mode:"char"},!0}if(!kn.current)return!1;if(S.phase==="drag"){let H=Yo.current,V=H?iv(H,E.row):0;V!==0&&Mc(V);let oe=B??(H?Vg(H,E.row,E.column):void 0);if(!oe)return!1;let ye=kn.current;if(ye.mode!=="char"&&ye.anchorSpan){let ct=Fd(na(),oe.point,ye.mode);if(!ct)return!1;let Dt=Qg(ye.anchorSpan,ct);return kn.current={...ye,anchor:Dt.anchor,focus:Dt.focus,didDrag:!0},mi(Dt.anchor,Dt.focus,{updateSelectedItem:!1}),!0}return kn.current={...ye,focus:oe.point,didDrag:!0},mi(ye.anchor,oe.point,{updateSelectedItem:!1}),!0}if(S.phase==="release"){let H=kn.current,V=H.focus,ye=(B??(Yo.current?Vg(Yo.current,E.row,E.column):void 0))?.point??V;if(H.mode!=="char"&&H.anchorSpan){let ct=Fd(na(),ye,H.mode);if(ct){let Dt=Qg(H.anchorSpan,ct);H.anchor=Dt.anchor,ye=Dt.focus}}return Ty(H,{focusPoint:ye}),!0}}if(S.kind==="scroll-by")return ml(),Mc(S.delta),!0;if(S.kind==="consume")return!0;let R=$b({key:f,isTranscriptMode:re,isHistorySearchActive:ot,historySearchMatchCount:bt.length,hasTextSelection:!!ar,hasFocusedItem:!!Ve,canCopySelectedItem:ci,canCopySelectedToolInput:rl,canToggleSelectedDetail:ol,canCycleTranscriptSelection:nl});return Lb({action:R,hasTranscript:y,isTranscriptMode:re,pageScrollDelta:Js,disarmHistorySearchSelection:ml,scrollTranscriptBy:Mc,closeHistorySearchSurface:Of,backspaceHistorySearchQuery:i(()=>{ri(E=>E.slice(0,-1)),An(0)},"backspaceHistorySearchQuery"),stepHistorySearchSelection:i(E=>{An(B=>Wg(bt.length,B,E))},"stepHistorySearchSelection"),submitHistorySearchSelection:i(()=>{let E=bt[Mr];E&&($f(E.itemId),Of())},"submitHistorySearchSelection"),appendHistorySearchQuery:i(E=>{ri(B=>B+E),An(0)},"appendHistorySearchQuery"),openHistorySearchSurface:Lf,clearTranscriptSelectionFocus:Pf,exitTranscriptModeSurface:pl,toggleTranscriptShowAll:vy,scrollTranscriptHome:i(()=>{Ec(Math.max(0,Zs-Gt.messageRows))},"scrollTranscriptHome"),scrollTranscriptToBottom:i(()=>{Ac(),Ot()},"scrollTranscriptToBottom"),cycleTranscriptSelection:hy,copySelectedTranscriptText:i(()=>{fl()},"copySelectedTranscriptText"),copySelectedTranscriptItem:i(()=>{xy()},"copySelectedTranscriptItem"),copySelectedTranscriptToolInput:i(()=>{wy()},"copySelectedTranscriptToolInput"),toggleSelectedTranscriptDetail:yy,navigateSearchMatch:i(E=>{An(B=>{let H=Wg(bt.length,B,E),V=bt[H];return V&&$f(V.itemId),H})},"navigateSearchMatch"),dumpTranscriptToScrollback:i(()=>{Ob({items:kt.filter(E=>!zp(E)),exitAltScreen:i(()=>{P(lu({mouseTracking:!0}))},"exitAltScreen"),writeToScrollback:i(E=>{P(E)},"writeToScrollback"),enterAltScreen:i(()=>{P(cu({mouseTracking:!0,clearOnEnter:!1}))},"enterAltScreen")})},"dumpTranscriptToScrollback")})},[re,kt,Ue.currentResponse,Ue.thinkingContent,Ue.activeToolCalls,In,Zs,Js,py,Ve,Pf,pl,vy,Ne,Mc,Ec,Ac,nl,Mr,Ot,fl,bt,Lf,Of,ml,hy,ci,xy,rl,wy,ol,yy,$f,ar,Sy,Ne.supportsMouseTracking,to,Hh,Fh,Sf,oi,Yc,mi,Gt.messageRows]),sn(f=>{if(!Ye)return!1;let y=f.sequence.trim().toLowerCase(),S=!!Ye.input._alwaysConfirm,R=D.permissionMode==="accept-edits"&&!S,E=i(B=>{let H=`${Z("dialog.confirm")} ${Ye.prompt}
329
- \u2192 ${Z(`confirm.result.${B}`)}`;!!nt.current.workerId?dn({id:`confirm-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"info",text:H,timestamp:Date.now()}):N({type:"info",text:H})},"recordConfirmResult");return y==="y"||y==="yes"?(E("approved"),Kc(null),so.current?.({confirmed:!0}),so.current=null,!0):R&&(y==="a"||y==="always")?(E("approved_always"),Kc(null),so.current?.({confirmed:!0,always:!0}),so.current=null,!0):y==="n"||y==="no"||f.name==="escape"?(E("denied"),Kc(null),so.current?.({confirmed:!1}),so.current=null,!0):f.insertable||f.name==="return"},{isActive:!!Ye,priority:Bt.Critical});let yl=z(f=>{Mn(null),Vc.current?.(f),Vc.current=null},[]),pi=z((f,y,S)=>y.length===0?Promise.resolve(void 0):new Promise(R=>{Vc.current=R,Mn({kind:"select",title:f,options:y,buffer:"",focusedIndex:0,selectedIndices:[],multiSelect:S})}),[]),fI=z((f,y)=>pi(f,y.map(S=>({label:S,value:S}))),[pi]),My=z(async f=>{let y=f.options?Hd(f.options):[];return await pi(zg(f),y,f.multiSelect)??qf},[pi]);He(()=>{let f=!1;return(async()=>{let{bindAskUserForConstruction:y}=await import("./construction-bootstrap-J2WOCYEK.js");f||y(My)})(),()=>{f=!0,(async()=>{let{bindAskUserForConstruction:y}=await import("./construction-bootstrap-J2WOCYEK.js");y(null)})()}},[My]);let Ay=z((f,y)=>new Promise(S=>{Vc.current=S,Mn({kind:"input",prompt:f,defaultValue:y,buffer:""})}),[]);sn(f=>{let y=zc.current;if(!y)return!1;if(f.name==="escape")return yl(void 0),!0;if(y.kind==="select"){let S=y.options.length;if(f.name==="up"||f.sequence==="k")return Mn(R=>R&&R.kind==="select"?{...R,focusedIndex:(R.focusedIndex-1+S)%S,error:void 0}:R),!0;if(f.name==="down"||f.sequence==="j")return Mn(R=>R&&R.kind==="select"?{...R,focusedIndex:(R.focusedIndex+1)%S,error:void 0}:R),!0;if(f.sequence===" "&&y.multiSelect)return Mn(R=>{if(!R||R.kind!=="select")return R;let E=R.focusedIndex,B=R.selectedIndices.includes(E)?R.selectedIndices.filter(H=>H!==E):[...R.selectedIndices,E];return{...R,selectedIndices:B,error:void 0}}),!0;if(f.name==="return"){let R=zc.current;if(!R||R.kind!=="select")return!1;if(R.multiSelect){if(R.selectedIndices.length===0)return Mn(B=>B&&B.kind==="select"?{...B,error:Z("select.multiselect_empty")}:B),!0;let E=R.selectedIndices.sort((B,H)=>B-H).map(B=>R.options[B]?.value).filter(Boolean).join(", ");yl(E)}else yl(R.options[R.focusedIndex]?.value);return!0}if(/^[1-9]$/.test(f.sequence)){let R=Number.parseInt(f.sequence,10)-1;if(R>=0&&R<S)return y.multiSelect?Mn(E=>{if(!E||E.kind!=="select")return E;let B=E.selectedIndices.includes(R)?E.selectedIndices.filter(H=>H!==R):[...E.selectedIndices,R];return{...E,focusedIndex:R,selectedIndices:B,error:void 0}}):Mn(E=>E&&E.kind==="select"?{...E,focusedIndex:R,error:void 0}:E),!0}return!1}if(f.name==="return"){let S=zc.current;if(!S||S.kind!=="input")return!1;let R=S.buffer.trim();return yl(R===""?S.defaultValue??void 0:R),!0}return f.name==="backspace"||f.name==="delete"?(Mn(S=>S&&S.kind==="input"?{...S,buffer:S.buffer.slice(0,-1),error:void 0}:S),!0):(f.insertable||f.isPasted===!0)&&!f.ctrl&&!f.meta?(Mn(S=>S&&S.kind==="input"?{...S,buffer:S.buffer+f.sequence,error:void 0}:S),!0):!1},{isActive:!!Me,priority:Bt.Critical}),He(()=>{if(n.messages.length>0&&L.length===0){if(n.uiHistory?.length){let f=zo(n.uiHistory);f.length!==n.uiHistory.length&&(n.uiHistory=f);for(let y of f)N({type:y.type,text:y.text,...y.icon?{icon:y.icon}:{},...y.compactText?{compactText:y.compactText}:{}});return}for(let f of n.messages){let y=Da(f);for(let S of y)N(Oa(S))}}},[n.messages,n.uiHistory,L.length,N]),He(()=>{po(n.gitRoot)},[n.gitRoot]),He(()=>{process.env.KODAX_PREWARM_REPO_INTELLIGENCE!=="0"&&Xy({executionCwd:n.gitRoot??process.cwd(),gitRoot:n.gitRoot??void 0},{mode:D.repoIntelligenceMode})},[n.gitRoot,D.repoIntelligenceMode]);let Wf=z(()=>({onThinkingDelta:i(f=>{Qe.current||(v.currentTool&&(q(void 0),_e()),ut(nh(rt.current?.activeWorkerTitle?`[${rt.current.activeWorkerTitle}] [Thinking]`:"[Thinking]",rt.current?.activeWorkerTitle)),le(f.length),Le(f),nt.current.workerId&&Wc("thinking",f))},"onThinkingDelta"),onThinkingEnd:i(f=>{if(Qe.current)return;let y=et(),S=sb(y,f);S&&S!==y&&(Y(),Se(),le(S.length),Le(S)),nt.current.workerId&&Mh(S),J()},"onThinkingEnd"),onTextDelta:i(f=>{Qe.current||(v.currentTool&&(q(void 0),_e()),J(),ut(void 0),ft(f),nt.current.workerId&&Wc("assistant",f))},"onTextDelta"),onToolUseStart:i(f=>{if(Qe.current)return;Fn.current.includes(f.name)||(Fn.current=[...Fn.current,f.name]);let y=rt.current?.activeWorkerTitle?`[${rt.current.activeWorkerTitle}] `:"",S={id:f.id,name:`${y}${f.name}`,status:$.Executing,startTime:Date.now(),input:f.input};Ah(S),nt.current.workerId&&En(S),ut(Yr(S,rt.current?.activeWorkerTitle))},"onToolUseStart"),onToolInputDelta:i((f,y,S)=>{if(Qe.current)return;Ge(y.length),Te(y);let R=_h(S?.toolId,f,E=>{let B=E.preview??"",H=b1(`${B}${y}`);return{...E,preview:H||void 0,input:E.input?H?{...E.input,preview:H}:{...E.input}:H?{preview:H}:void 0}});R&&(nt.current.workerId&&En(R),ut(Yr(R,rt.current?.activeWorkerTitle)))},"onToolInputDelta"),onToolResult:i(f=>{if(Qe.current)return;let y=typeof f.content=="string"?f.content:String(f.content??""),S=v1(y);if(/^\[(?:Tool Error|Error)\]/.test(y)){let E=jc(f.id,$.Error,S,S,f.name);E&&(nt.current.workerId&&En(E),ut(Yr(E,rt.current?.activeWorkerTitle)));return}if(/^\[(?:Cancelled|Blocked)\]/.test(y)){let E=jc(f.id,$.Cancelled,void 0,S,f.name);E&&(nt.current.workerId&&En(E),ut(Yr(E,rt.current?.activeWorkerTitle)));return}let R=jc(f.id,$.Success,void 0,S||void 0,f.name);R&&(nt.current.workerId&&En(R),ut(Yr(R,rt.current?.activeWorkerTitle)))},"onToolResult"),onToolProgress:i(f=>{if(Qe.current)return;let y=f.message.length>100?f.message.slice(0,97)+"...":f.message,S=ni(f.id,R=>({...R,preview:y,progressLines:[...(R.progressLines??[]).slice(-4),y]}));S&&nt.current.workerId&&En(S),ut(y)},"onToolProgress"),onStreamEnd:i(()=>{if(Qe.current)return;let f=Fs($.Cancelled,()=>({error:"Stream ended before the tool completed.",output:void 0})),y=f[f.length-1];nt.current.workerId&&f.forEach(S=>En(S)),y&&ut(Yr(y,rt.current?.activeWorkerTitle)),J(),_e(),q(void 0)},"onStreamEnd"),hasPendingInputs:i(()=>Ry.current.length>0,"hasPendingInputs"),onMidTurnUserMessages:i(f=>{if(!Qe.current)for(let y of f){let S=y.trim();S&&(nt.current.workerId?dn({id:`mid-turn-user-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"user",text:S,timestamp:Date.now()}):N({type:"user",text:S}))}},"onMidTurnUserMessages"),onError:i(f=>{let y=Ir();y?.name&&ut(Yr(y,rt.current?.activeWorkerTitle));let S=Fs($.Error,()=>({error:f.message,output:void 0})),R=S[S.length-1];nt.current.workerId&&S.forEach(ct=>En(ct)),R&&ut(Yr(R,rt.current?.activeWorkerTitle));let E=Hy(f),B=["Transient","Permanent","Tool Call ID","User Abort"];if(E.category===ca.USER_ABORT)return;let V=[`\u274C API Error (${B[E.category]||"Unknown"}): ${f.message}`];E.shouldCleanup&&V.push(" \u{1F9F9} Cleaned incomplete tool calls"),E.category===ca.PERMANENT?(V.push(" \u{1F4A1} This error requires manual intervention. Please check:"),f.message.includes("auth")||f.message.includes("401")?(V.push(" - Your API key is valid"),V.push(" - Run /config to check provider settings")):f.message.includes("400")?(V.push(" - The request parameters are correct"),V.push(" - Try restarting the conversation")):V.push(" - The error details above")):E.category===ca.TRANSIENT?V.push(" \u23F3 Retries exhausted. Press Enter to continue the conversation"):E.category===ca.TOOL_CALL_ID&&V.push(" \u2705 Session cleaned, ready to continue");let oe=V.join(`
330
- `);!!nt.current.workerId?dn({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:oe,timestamp:Date.now()}):N({type:"error",text:oe})},"onError"),onRetry:i((f,y,S)=>{if(Qe.current)return;if(!!nt.current.workerId){let E=kd(f,y,S);dn({...E,id:`retry-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()})}else Tg(N,f,y,S)},"onRetry"),onProviderRecovery:i(f=>{if(Qe.current)return;let y=!!nt.current.workerId,S=Ze().trim();if(S&&(y?Wc("assistant",S):N({type:"assistant",text:S})),Ee(),Y(),J(),_e(),q(void 0),kr(),ut(void 0),y){let R=Rd(f);dn({...R,id:`recovery-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()})}else Cg(N,f)},"onProviderRecovery"),onManagedTaskStatus:i(f=>{if(Qe.current)return;let y=nt.current;if(Dv(f)){if(y.workerId&&y.workerId!==f.activeWorkerId)Z0({workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle});else if(y.workerId!==f.activeWorkerId){let H=dt.current,V=H.activeToolGroupTools.some(oe=>oe.status===$.Executing);dt.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle,...V?{activeToolGroupItemId:H.activeToolGroupItemId,activeToolGroupTools:H.activeToolGroupTools}:{activeToolGroupTools:[]}},nt.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle}}}rt.current=f,pf(f);let S=k1(f);eI(S);let R=cc(f),B=cc(f,{expanded:!0})??R;B&&(gf.current=B)},"onManagedTaskStatus"),onProviderRateLimit:i((f,y,S)=>{Qe.current||io({type:"info",icon:"\u23F3",text:`[Rate Limit] Retrying in ${S/1e3}s (${f}/${y})...`},"ratelimit")},"onProviderRateLimit"),onRetryAfter:i(f=>{if(Qe.current)return;let y=Math.round(f.waitMs/1e3),S=f.source==="exponential-backoff"?"no-header \u2192 backoff":f.source,R=f.reason==="overloaded"?"Overloaded":"Rate limited";io({type:"info",icon:"\u23F3",text:`[${R}] (${f.provider}) \u2014 retrying in ${y}s [${S}] (${f.attempt}/${f.maxAttempts})`},"ratelimit")},"onRetryAfter"),onRepoIntelligenceTrace:i(f=>{Qe.current||io(ib(f),"repointel-trace")},"onRepoIntelligenceTrace"),onTodoUpdate:i(f=>{Qe.current||br(f)},"onTodoUpdate"),onScoutSuspiciousCompletion:i(f=>{Qe.current||jd&&io({type:"info",icon:"\u26A0",text:`[Scout] Completion marked uncertain \u2014 signals: ${f.signals.join(", ")}. Verify the result before continuing.`},"scout-uncertain")},"onScoutSuspiciousCompletion"),onIterationStart:i((f,y)=>{if(Qe.current)return;if(y&&ee(y),rt.current?.globalWorkBudget){let ye={...rt.current,budgetUsage:Math.min(rt.current.globalWorkBudget,(rt.current.budgetUsage??0)+1)};rt.current=ye,pf(ye)}let S=f>1?et().trim():"",R=f>1?rh(Ze()):"",E=f>1?[...Fn.current]:[],B=f>1?[...Pt.current]:[],H=!!nt.current.workerId;ie(f),H&&Hc({clearOwner:!1});let V=ir.current.filter(ye=>ye.status===$.Executing),oe=new Set(V.map(ye=>ye.id));if(Fn.current=[],Pt.current=Pt.current.filter(ye=>oe.has(ye.id)),un(V),_e(),q(void 0),ut(nh(rt.current?.activeWorkerTitle?`[Thinking] [${rt.current.activeWorkerTitle}]`:void 0,rt.current?.activeWorkerTitle)),Se(),f>1&&!H){let ye=oh({thinking:S,response:R,toolCalls:B,toolNames:E});if(Ps.current)Ps.current(ye);else for(let ct of ye)N(ct)}},"onIterationStart"),beforeToolExecute:i(async(f,y)=>{let S=mn.current,R=Ro(S),E=Iy.current,B=n.gitRoot;if(lx(O.current,f,y))return`[Skipped] Previously denied operation. ${ux(O.current)}`;if(S==="plan"&&(wn.has(f)||f==="undo"))return`[Blocked] Tool '${f}' is not allowed in plan mode (read-only). ${Pv}`;if(S==="plan"&&f==="bash"){let H=y.command??"";if($n(H))return`[Blocked] Bash write operation not allowed in plan mode: ${H.slice(0,50)}... ${Pv}`}if(f==="bash"){let H=y.command??"";if(Pn(H))return!0}if(qt(S)&&If==="llm")return!0;if(f==="bash"){let H=y.command??"",V=ax(H);if(V.level==="dangerous"){let oe=await lo(f,{...y,_dangerousCommand:!0});return oe.confirmed?oe.confirmed:(O.current=Zf(O.current,f,y,V.reason),`[Blocked] Dangerous command requires confirmation: ${V.reason}`)}}if(B){let H=!1;if(wn.has(f)){let V=y.path;V&&Qn(V,B)&&(H=!0)}if(f==="bash"){let V=y.command;V&&ip(V,B)&&(H=!0)}if(H){let V=await lo(f,{...y,_alwaysConfirm:!0});if(mn.current==="plan"&&(wn.has(f)||f==="undo"))return!1;if(mn.current==="plan"&&f==="bash"){let oe=y.command??"";if($n(oe))return!1}return V.confirmed}}if(R.has(f)){if(S==="accept-edits"&&f==="bash"&&await Fr(f,y,E,Hf.current??void 0))return!0;let H=await lo(f,y);if(mn.current==="plan"&&(wn.has(f)||f==="undo"))return!1;if(mn.current==="plan"&&f==="bash"){let V=y.command??"";if($n(V))return!1}if(!H.confirmed)return N({type:"info",text:Z("cancelled")}),O.current=Zf(O.current,f,y),!1;H.always&&S==="accept-edits"&&(Iu(f,y,!1),Iy.current=ns())}return!0},"beforeToolExecute"),askUser:i(async f=>{let y=f.options?Hd(f.options):[],S=await pi(zg(f),y,f.multiSelect);return S===void 0?qf:S},"askUser"),exitPlanMode:i(async f=>mn.current!=="plan"?"not-in-plan-mode":(await lo("exit_plan_mode",{plan:f})).confirmed?(Ff("accept-edits"),!0):!1,"exitPlanMode"),askUserMulti:i(async f=>{let y=f.questions,S={},R="__back__",E=0;for(;E<y.length;){let B=y[E],H=Hd(B.options);E>0&&H.push({label:Z("select.back_prev"),value:R});let V=`[${E+1}/${y.length}] ${B.question}`,oe=await pi(V,H,B.multiSelect);if(oe===void 0)return;if(oe===R){E--;continue}S[B.question]=oe,E++}return S},"askUserMulti"),askUserInput:i(async f=>Ay(f.question,f.default),"askUserInput"),onCompactStart:i(()=>{_()},"onCompactStart"),onCompactStats:i(f=>{_s.current=f.tokensBefore,Nn(f.tokensAfter)},"onCompactStats"),onCompactedMessages:i((f,y)=>{n.messages=f,y?.artifactLedger&&y.artifactLedger.length>0&&(n.artifactLedger=ua(n.artifactLedger??[],y.artifactLedger)),n.lineage=y?.anchor?Qy(n.lineage,f,y.anchor,y.postCompactAttachments??[]):gn(f,n.lineage);let S=mo(f);n.contextTokenSnapshot={currentTokens:S,baselineEstimatedTokens:S,source:"estimate"},tr(n),Nn(S),vc.current?.().catch(()=>{})},"onCompactedMessages"),onCompact:i(f=>{U();let y=_s.current??f;_s.current=null;let S=Math.round(y/1e3);io({type:"info",icon:"\u2728",text:`Context auto-compacted (was ~${S}k tokens)`},"compact")},"onCompact"),onCompactEnd:i(()=>{_s.current=null,U()},"onCompactEnd"),onIterationEnd:i(f=>{f.scope!=="worker"&&(n.contextTokenSnapshot=f.contextTokenSnapshot),Nn(f.tokenCount)},"onIterationEnd")}),[le,Le,J,ft,q,Ge,Te,_e,ie,Se,D,n,_,U,N,Y,et,Ze,Hc,ut,Wc,Mh,En,Ah,_h,jc,Fs,Ir,kr,un,v.currentTool]),lo=i((f,y)=>{let S=zC(f,y);return new Promise(R=>{so.current=R,Kc({tool:f,input:y,prompt:S})})},"showConfirmDialog");He(()=>(u(async(f,y,S)=>(await lo(f.name,{...f.input,_reason:`[auto-mode] ${y}`,...S&&S.length>0?{_classifierSignals:S}:{}})).confirmed?"allow":"block"),m(f=>{kf(f)}),()=>{u(null),m(null)}),[]),He(()=>{p(D)},[D,p]);let oa=i(async(f,y,S=n.lineage?Rt(n.lineage,n.lineage.activeEntryId):n.messages,R)=>{let E={...Wf(),getCostReport:F},H=dr(n.gitRoot).getSystemPromptSnippet(),V=ab(f.context,n.gitRoot,n.contextTokenSnapshot,H);R&&R.length>0&&(V.inputArtifacts=[...R]),V.planModeBlockCheck=(oe,ye)=>mn.current!=="plan"?null:wr(oe,ye,n.gitRoot??process.cwd());try{return await da({...f,session:{...f.session,initialMessages:S},context:V,events:E,abortSignal:we()},y)}finally{ex()}},"runAgentRound"),ur=z(f=>{let y=gn([...f],n.lineage);return n.lineage=y,y},[n]),ia=z(async f=>{if(n.messages.length===0)return;let y=ts(n.messages),S=zo(f??W.current);W.current=S,n.title=y,n.uiHistory=S;let R=n.lineage??ur(n.messages);n.lineage=R;let E={messages:n.messages,title:y,gitRoot:n.gitRoot??"",uiHistory:S,lineage:R,artifactLedger:n.artifactLedger};"appendSessionDelta"in r&&typeof r.appendSessionDelta=="function"?await r.appendSessionDelta(n.sessionId,E):await r.save(n.sessionId,E),Ld()&&Od("persist",Dd(n.messages,R,{historyItems:me.current,foregroundItems:ln.current,streamingResponse:M.current.currentResponse,streamingThinking:M.current.thinkingContent,persistedUiHistory:W.current}))},[n,ur,r]),Uf=z(()=>{if(Ic.current)return Ic.current;let f=(async()=>{try{for(;eo.current.requested;){eo.current.requested=!1;let y=eo.current.uiHistoryOverride;eo.current.uiHistoryOverride=void 0,await ia(y)}}finally{Ic.current=null,eo.current.requested&&Uf()}})();return Ic.current=f,wh.current=f,f},[ia]),gi=z(f=>{if(f!==void 0){let y=zo(f);W.current=y,eo.current.uiHistoryOverride=y}return eo.current.requested=!0,Uf()},[Uf]),mI=z(async()=>{if(Ls.current)return Ls.current;let f=(async()=>{Qe.current=!0,Re(),xe(),J(),Y(),_e(),Ee(),q(void 0),Q(!1),await wh.current.catch(()=>{}),await vc.current?.().catch(()=>{}),Qr(!1),b&&C?.isRaw&&w(!1),C?.pause?.(),C?.unref?.(),h(),a()})();return Ls.current=f.finally(()=>{Ls.current=null}),Ls.current},[Re,Ee,Y,_e,h,b,a,q,Q,w,C,xe,J]);He(()=>(vc.current=gi,()=>{vc.current=null}),[gi]);let _y=z(f=>{if(f.length===0)return;let y=Wd(W.current,f);W.current=y,gi(y)},[gi]),sa=z(f=>{if(f.length!==0){for(let y of f)N(y);_y(f)}},[N,_y]),xl=z(f=>{if(f.length!==0){for(let y of f)N(y);W.current=Wd(W.current,f)}},[N]);He(()=>(Ps.current=sa,()=>{Ps.current=null}),[sa]);let Py=z(async f=>{n.messages=f.messages,n.contextTokenSnapshot=f.contextTokenSnapshot,ur(f.messages);let y=f.success===!1&&!f.interrupted,S=et().trim(),R=DS(f.messages,Ze(),f.managedTask?.verdict.summary,f.lastText),E=[...ln.current],B=E.length>0,H=B&&E.some(ge=>ge.type==="assistant"&&"text"in ge&&Ao(String(ge.text??"")).length>0),V=!y&&R&&!H,oe=[...Jo.current],ye=y?[]:oe.length===0?jd?$v(f):$v(f).filter(ge=>!Fv(ge)):[],ct=B?[]:oh({thinking:S,response:void 0,toolCalls:Pt.current,toolNames:Fn.current}),Dt=[...E.map(ge=>Vo(ge)),...ct,...y?[]:oe.map(ge=>Vo(ge)),...ye.map(ge=>Lv(ge)),...V?[{type:"assistant",text:f.interrupted?`${R}
331
-
332
- [Interrupted]`:R}]:!R&&!H&&!f.interrupted&&!y?[{type:"info",text:"[No response text was produced for this round]"}]:[]],aa=Wd(W.current,Dt);Y(),Ee();for(let ge of E)N(Vo(ge));for(let ge of ct)N(ge);if(!y){for(let ge of ye)N(Lv(ge));for(let ge of oe)N(Vo(ge))}V?N({type:"assistant",text:f.interrupted?`${R}
333
-
334
- [Interrupted]`:R}):!R&&!H&&!f.interrupted&&!y&&N({type:"info",text:"[No response text was produced for this round]"}),Fn.current=[],Pt.current=[],kr(),_e(),q(void 0),ut(void 0),Hs(),ro.current=[],Jo.current=[],Ds([]),A(),gi(aa).catch(()=>{})},[N,A,_e,Ee,Y,n,Ze,et,gi,ur,kr,Hs,q,ut,v.currentIteration]),wl=z(async f=>{let y=f.trim();y&&(N({type:"user",text:y}),bc(S=>S+1),tr(n))},[N,n]),Sl=z(async(f,y)=>{let S=ra.current;Qe.current=!1,$s.current=!1,As(!0);try{return await Eb({initialPrompt:f,runRound:y,shiftPendingPrompt:Ce,onRoundComplete:i(async R=>{ra.current===S&&await Py(R)},"onRoundComplete"),onBeforeQueuedRound:i(async R=>{Qe.current=!1,$s.current=!1,await wl(R)},"onBeforeQueuedRound"),shouldContinue:i(R=>!Qe.current&&R.success!==!1,"shouldContinue")})}finally{As(!1)}},[Py,Ce,wl]),jf=z(async()=>{let f=Ce();if(!f||!f.trim())return;let y=f.trim();await wl(y),await Sl(y,async S=>oa(ze.current,S))},[oa,Sl,Ce,wl]),Gf=z(f=>{let y=f[f.length-1];if(y?.role!=="assistant")return;let S=Da(y);for(let R of S)N(Oa(R))},[N]),$y=z(async(f,y)=>{let S=await Pd({...ze.current,provider:D.provider,thinking:D.thinking,reasoningMode:D.reasoningMode},f,y,R=>N({type:"info",text:R}));if(S.mode==="manual"){S.manualOutput&&N({type:"info",text:S.manualOutput}),await S.finalize();return}if(!S.prompt||!S.options){await S.finalize();return}As(!0);try{let R=S.mode==="fork"?[]:n.lineage?Rt(n.lineage,n.lineage.activeEntryId):n.messages,E=ra.current,B=await oa(S.options,S.prompt,R);if(ra.current!==E)await S.finalize();else{let H=W.current,V=[];if(S.mode==="fork"){let oe=B.messages.find(ct=>ct.role==="user");oe&&n.messages.push(oe);let ye=B.messages.slice().reverse().find(ct=>ct.role==="assistant");if(ye){n.messages.push({role:"assistant",content:ye.content}),ur(n.messages);for(let ct of Da(ye)){let Dt=Oa(ct);N(Dt),V.push(Dt)}}}else{n.messages=B.messages,n.contextTokenSnapshot=B.contextTokenSnapshot,ur(B.messages),Gf(B.messages);let oe=B.messages[B.messages.length-1];if(oe?.role==="assistant")for(let ye of Da(oe))V.push(Oa(ye))}await ia(Wd(H,V)),Ld()&&Od("round-end",Dd(n.messages,n.lineage,{historyItems:me.current,foregroundItems:ln.current,streamingResponse:M.current.currentResponse,streamingThinking:M.current.thinkingContent,persistedUiHistory:W.current})),await S.finalize()}}catch(R){let E=R instanceof Error?R:new Error(String(R));throw await S.finalize(E),As(!1),E}As(!1),await jf()},[N,Gf,n,D.provider,D.thinking,jf,ia,ur,oa]),pI=z(async f=>{for(let y of f.pastedContents)if(y.type==="text"&&!y.content&&y.contentHash)try{let S=await Pu(y.contentHash);S&&(y.content=S)}catch{}},[]),gI=z(async f=>{let{displayText:y,fullText:S,pastedContents:R}=f;if(!S.trim()||!Wt||Ye||Me)return;for(let ge of R){if(ge.type!=="text"||ge.content.length<1024)continue;let ke=qS(ge.content);QS(ke,ge.content)}if($h(!1),ve){if(!of)return;if(v.pendingInputs.length>=5){io({type:"info",icon:"\u23F3",text:`Queued follow-up limit reached (${5}). Wait for the next round or press Esc to remove the latest item.`},"queue-limit");return}if(Rb(S)){io({type:"info",icon:"\u26A0",text:Ib},kb);return}let ge=v.currentTool;if(ge&&Il(ge)?.interruptBehavior==="cancel"){Oe(S),Re({preservePendingInputs:!0}),Rc(""),kc(!0),bc(nn=>nn+1),tr(n);return}Oe(S),Rc(""),kc(!0),bc(ke=>ke+1),tr(n);return}let E=rh(Ze()),B=ln.current.map(ge=>Vo(ge)),H=B.length>0;B.length>0&&xl(B),!H&&E&&xl([{type:"assistant",text:E+`
335
-
336
- [Interrupted]`}]),xl([{type:"user",text:y}]),Rc(""),kc(!0),bc(ge=>ge+1),Ld()&&Od("turn-start",Dd(n.messages,n.lineage,{historyItems:me.current,foregroundItems:ln.current,streamingResponse:M.current.currentResponse,streamingThinking:M.current.thinkingContent,persistedUiHistory:W.current})),Q(!0),Qe.current=!1,$s.current=!1,++ra.current,pf(null),rt.current=null,gf.current=null,ut(void 0),Hs(),ro.current=[],Jo.current=[],Ds([]),Us(),Dc(void 0),Fn.current=[],Pt.current=[],kr(),Ee(),_e(),q(void 0),A(),ne(),tr(n),await new Promise(ge=>setTimeout(ge,50));let V=ss(S.trim());if(V){let ge={exit:mI,saveSession:i(async()=>{if(n.messages.length>0){let j=ts(n.messages);n.title=j;let ce=n.lineage??ur(n.messages);n.lineage=ce,await r.save(n.sessionId,{messages:n.messages,title:j,gitRoot:n.gitRoot??"",uiHistory:W.current,lineage:ce,artifactLedger:n.artifactLedger})}},"saveSession"),startNewSession:i(()=>{let j=oc(),ce=new Date().toISOString();n.sessionId=j,n.title="",n.uiHistory=[],n.contextTokenSnapshot=void 0,n.lineage=void 0,n.artifactLedger=void 0,W.current=[],n.createdAt=ce,n.lastAccessed=ce,ze.current.session={...ze.current.session,id:j},Nn(null),k(),br([]),_u()?.reset(),ae(j)},"startNewSession"),loadSession:i(async j=>{let ce=await r.load(j);return ce?jo(D,"Resuming a saved session",Ud)?(n.messages=ce.messages,n.uiHistory=Is(ce.uiHistory),n.lineage=ce.lineage,n.artifactLedger=ce.artifactLedger,n.title=ce.title,n.sessionId=j,n.contextTokenSnapshot=void 0,W.current=n.uiHistory??[],Nn(null),k(),br([]),ae(j),console.log(Xe.green(`[Session loaded: ${j}]`)),"loaded"):"blocked":"missing"},"loadSession"),listSessions:i(async()=>{let j=await r.list(n.gitRoot??void 0);if(j.length===0){console.log(Xe.dim(`
337
- [No saved sessions]`));return}console.log(Xe.bold(`
338
- Recent Sessions:
339
- `));for(let ce of j.slice(0,10))console.log(` ${Xe.cyan(ce.id)} ${Xe.dim(`(${ce.msgCount} messages)`)} ${ce.title.slice(0,40)}`);console.log()},"listSessions"),clearHistory:i(()=>{n.uiHistory=[],k(),br([])},"clearHistory"),printHistory:i(()=>{if(n.messages.length===0){console.log(Xe.dim(`
340
- [No conversation history]`));return}console.log(Xe.bold(`
341
- Conversation History:
342
- `));let j=n.messages.slice(-20);for(let ce=0;ce<j.length;ce++){let Ie=j[ce],hi=Xe.cyan(Ie.role.padEnd(10)),Dy=Na(Ie.content),SI=Dy.slice(0,60).replace(/\n/g," "),TI=Dy.length>60?"...":"";console.log(` ${(ce+1).toString().padStart(2)}. ${hi} ${SI}${TI}`)}console.log()},"printHistory"),switchProvider:i((j,ce)=>{De(Ie=>({...Ie,provider:j,model:ce})),ze.current.provider=j,ze.current.model=ce},"switchProvider"),setThinking:i(j=>{let ce=j?"auto":"off";De(Ie=>({...Ie,thinking:j,reasoningMode:ce})),ze.current.thinking=j,ze.current.reasoningMode=ce},"setThinking"),setReasoningMode:i(j=>{let ce=j!=="off";De(Ie=>({...Ie,thinking:ce,reasoningMode:j})),ze.current.thinking=ce,ze.current.reasoningMode=j},"setReasoningMode"),setAgentMode:i(j=>{De(ce=>({...ce,agentMode:j})),ze.current.agentMode=j},"setAgentMode"),setPermissionMode:i(j=>{Ff(j)},"setPermissionMode"),setRepoIntelligenceRuntime:i(j=>{De(ce=>({...ce,...j.mode!==void 0?{repoIntelligenceMode:j.mode}:{},...j.endpoint!==void 0?{repointelEndpoint:j.endpoint??void 0}:{},...j.bin!==void 0?{repointelBin:j.bin??void 0}:{},...j.trace!==void 0?{repoIntelligenceTrace:j.trace}:{}})),j.mode!==void 0&&(process.env.KODAX_REPO_INTELLIGENCE_MODE=j.mode,ze.current.context={...ze.current.context,repoIntelligenceMode:j.mode}),j.trace!==void 0&&(j.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,ze.current.context={...ze.current.context,repoIntelligenceTrace:j.trace}),j.endpoint!==void 0&&(j.endpoint?process.env.KODAX_REPOINTEL_ENDPOINT=j.endpoint:delete process.env.KODAX_REPOINTEL_ENDPOINT),j.bin!==void 0&&(j.bin?process.env.KODAX_REPOINTEL_BIN=j.bin:delete process.env.KODAX_REPOINTEL_BIN)},"setRepoIntelligenceRuntime"),deleteSession:i(async j=>{await r.delete?.(j)},"deleteSession"),deleteAllSessions:i(async()=>{await r.deleteAll?.(n.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:i(async()=>{let j=await r.getLineage?.(n.sessionId);if(!j){console.log(Xe.dim(`
343
- [No session tree available for this session]`));return}let ce=Md(vl(j));console.log(Xe.bold(`
344
- Session Tree:
345
- `)),ce.forEach(Ie=>console.log(` ${Ie}`)),console.log()},"printSessionTree"),switchSessionBranch:i(async j=>{if(!jo(D,"Switching session branches",Ud))return"blocked";let Ie=await r.setActiveEntry?.(n.sessionId,j,{summarizeCurrentBranch:!0});return Ie?(n.messages=Ie.messages,n.uiHistory=Is(Ie.uiHistory),n.title=Ie.title,n.contextTokenSnapshot=void 0,W.current=n.uiHistory??[],Nn(null),k(),br([]),console.log(Xe.green(`
346
- [Switched to tree entry: ${j}]`)),console.log(Xe.dim(` Messages: ${Ie.messages.length}`)),"switched"):"missing"},"switchSessionBranch"),labelSessionBranch:i(async(j,ce)=>{if(!await r.setLabel?.(n.sessionId,j,ce))return!1;let hi=ce&&ce.trim()?`checkpoint label set: ${ce.trim()}`:"checkpoint label cleared";return console.log(Xe.green(`
347
- [${hi}]`)),!0},"labelSessionBranch"),forkSession:i(async j=>{if(!jo(D,"Forking a session branch",Ud))return"blocked";let Ie=await r.fork?.(n.sessionId,j);if(!Ie)return"failed";n.sessionId=Ie.sessionId,n.messages=Ie.data.messages,n.uiHistory=Is(Ie.data.uiHistory),n.title=Ie.data.title,n.contextTokenSnapshot=void 0,W.current=n.uiHistory??[];let hi=new Date().toISOString();return n.createdAt=hi,n.lastAccessed=hi,ze.current.session={...ze.current.session,id:Ie.sessionId},Nn(null),k(),br([]),ae(Ie.sessionId),console.log(Xe.green(`
348
- [Forked session: ${Ie.sessionId}]`)),console.log(Xe.dim(` Messages: ${Ie.data.messages.length}`)),"forked"},"forkSession"),rewindSession:i(async j=>{if(!jo(D,"Rewinding session",Ud))return"blocked";let Ie=await r.rewind?.(n.sessionId,j);return Ie?(n.messages=Ie.messages,n.uiHistory=Is(Ie.uiHistory),n.title=Ie.title,n.contextTokenSnapshot=void 0,W.current=n.uiHistory??[],Nn(null),k(),br([]),console.log(Xe.green(`
349
- [Rewound session${j?` to ${j}`:" to previous turn"}]`)),console.log(Xe.dim(` Messages: ${Ie.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:i(()=>F.current?.()??null,"getCostReport"),getAutoModeStats:i(()=>{if(qt(mn.current))return l.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:i(j=>{qt(mn.current)&&(l.getGuardrail().setEngine(j),kf(j))},"setAutoModeEngine"),createKodaXOptions:i(()=>({...ze.current,provider:D.provider,model:D.model,thinking:D.thinking,reasoningMode:D.reasoningMode,agentMode:D.agentMode,guardrails:Jg(mn.current,l),events:Wf()}),"createKodaXOptions"),reloadAgentsFiles:i(async()=>{let j=await Qf({cwd:process.cwd(),projectRoot:n.gitRoot??void 0});return g(j),j},"reloadAgentsFiles"),startCompacting:i(()=>{_()},"startCompacting"),stopCompacting:i(()=>{U()},"stopCompacting"),onCompactStats:i(j=>{_s.current=j.tokensBefore,Nn(j.tokensAfter)},"onCompactStats"),confirm:i(async j=>(await lo("confirm",{_alwaysConfirm:!0,_message:j})).confirmed,"confirm"),ui:{select:i(async(j,ce)=>fI(j,ce),"select"),confirm:i(async j=>(await lo("confirm",{_alwaysConfirm:!0,_message:j})).confirmed,"confirm"),input:i(async(j,ce)=>Ay(j,ce),"input")}},ke=[],nn=console.log;console.log=(...j)=>{let ce=j.map(Ie=>typeof Ie=="string"?Ie:String(Ie)).join(" ");ke.push(ce)};let pn;try{let j=await as(V,n,ge,D);typeof j=="object"&&j!==null&&"invocation"in j&&(pn=j.invocation)}finally{console.log=nn}if(ke.length>0&&N({type:"info",text:ke.join(`
350
- `)}),pn){Q(!1),xe(),Q(!0),ne(),Se();try{await $y(pn,S.trim())}catch(j){let ce=j instanceof Error?j:new Error(String(j)),Ie=ce.name==="AbortError"||ce.message.includes("aborted")||ce.message.includes("ABORTED");console.log=nn,Ie?gl():sa([{type:"error",text:ce.message}])}finally{Q(!1),xe(),Y()}return}Q(!1),xe();return}let oe=await Sg(S.trim());if(S.trim().startsWith("!")&&sc(oe)){Q(!1),xe();return}let ye=ze.current.context?.executionCwd??process.cwd(),ct=i(ge=>{ge.length!==0&&sa(ge.map(ke=>({type:"info",text:ke})))},"emitArtifactWarnings");Se();let Dt=[],aa=console.log;console.log=(...ge)=>{let ke=ge.map(nn=>typeof nn=="string"?nn:String(nn)).join(" ");Dt.push(ke)};try{await Sl(oe,async ge=>{let ke=ac(ge,ze.current.context?.executionCwd??process.cwd());return ct(ke.warnings),oa(ze.current,ke.promptText,n.messages,ke.inputArtifacts)})}catch(ge){let ke=ge instanceof Error?ge:new Error(String(ge));if(ke.name==="AbortError"||ke.message.includes("aborted")||ke.message.includes("ABORTED"))console.log=aa,gl();else{let pn=ke.message;ke.message.includes("rate limit")||ke.message.includes("Rate limit")?pn=`[Rate Limit] ${ke.message}
351
- Suggestion: Wait a moment and try again, or switch provider with /mode`:ke.message.includes("API key")||ke.message.includes("not configured")?pn=`[Configuration Error] ${ke.message}
352
- Suggestion: Set the required API key environment variable`:ke.message.includes("network")||ke.message.includes("ECONNREFUSED")||ke.message.includes("ETIMEDOUT")?pn=`[Network Error] ${ke.message}
353
- Suggestion: Check your internet connection`:(ke.message.includes("token")||ke.message.includes("context too long"))&&(pn=`[Context Error] ${ke.message}
354
- Suggestion: Use /clear to start fresh`),console.log=aa,nt.current.workerId?dn({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:pn,timestamp:Date.now()}):sa([{type:"error",text:pn}])}}finally{if(console.log=aa,Dt.length>0){let ke=Dt.filter((nn,pn,j)=>j.indexOf(nn)===pn);N({type:"info",text:ke.join(`
355
- `)})}if(!Qe.current){let ke=Fs($.Cancelled,()=>({error:"Run ended before the tool result was observed.",output:void 0}));ke.length>0&&nt.current.workerId&&ke.forEach(nn=>En(nn))}Q(!1),xe(),Ee(),Y();let ge=mo(n.messages);n.contextTokenSnapshot={currentTokens:ge,baselineEstimatedTokens:ge,source:"estimate"},Nn(ge)}},[Wt,n,D,of,v.pendingInputs.length,r,Ye,Me,h,a,N,k,ne,xe,Ee,Wf,$y,we,Ze,et,xl,Gf,ia,ur,Sl,jf,_,U,kr,Fs,En,Us]),hI=se(pd,{left:se(fd,{items:ny}),right:se(md,{items:ry}),queued:se(mg,{pendingInputs:v.pendingInputs}),stashNotice:se(Sd,{text:cl}),notifications:se(wd,{notifications:al}),inlineNotices:_f.length>0?se(pg,{notices:_f}):void 0,activityBar:_r||ve&&cr.shouldRender?Vt(I,{paddingX:1,flexDirection:"row",children:[Vt(I,{flexGrow:1,children:[_r?.showSpinner?se(bn,{color:te("dark").colors.accent}):null,_r?Vt(T,{color:_r.kind==="waiting"?te("dark").colors.warning:te("dark").colors.accent,children:[_r.showSpinner?" ":"",_r.text]}):null,_r?.showSpinner&&v.roundStartedAt!=null?se(kT,{roundStartedAt:v.roundStartedAt,charCount:v.currentResponse.length,theme:te("dark")}):null]}),ve&&cr.shouldRender?se(T,{dimColor:!0,children:`${cr.completedCount}/${cr.totalCount} completed`}):null]}):void 0,todoSurface:ve&&cr.shouldRender?se(I,{paddingX:1,children:se(HC,{viewModel:cr})}):void 0,composer:se(rg,{onSubmit:gI,onHistoryRecall:pI,onPopPendingInputs:i(()=>{let f=Be();if(f.length!==0)return f.join(`
356
- ---
357
- `)},"onPopPendingInputs"),prompt:">",placeholder:sv({isLoading:ve,canQueueFollowUps:of,waitingReason:Rf}),focus:!Ye&&!Me&&!ot,cwd:process.cwd(),gitRoot:e.context?.gitRoot||n.gitRoot,onInputChange:nI}),inlineSuggestions:aI,helpSurface:Ph?se(ig,{sections:Nd()}):void 0,taskBar:qs?se(Td,{items:ai.backgroundTask.items,overflowLabel:ai.backgroundTask.overflowLabel,ctaHint:ai.backgroundTask.ctaHint,showSpinner:ve}):void 0,statusLine:se(I,{children:se(ps,{...il,viewModel:ey})}),inlineDialogs:lI}),yI=se(pd,{left:se(fd,{items:ny}),right:se(md,{items:ry}),stashNotice:se(Sd,{text:cl}),notifications:se(wd,{notifications:al}),composer:se(OC,{searchActive:ot,selectionActive:!!(ar||Ve),showAllActive:Ct,searchQuery:Ut,searchCurrent:bt.length>0?Mr+1:0,searchCount:bt.length,searchDetailText:vf,pendingLiveUpdates:Ks,secondaryText:iI}),taskBar:qs?se(Td,{items:ai.backgroundTask.items,overflowLabel:ai.backgroundTask.overflowLabel,ctaHint:ai.backgroundTask.ctaHint,showSpinner:it}):void 0,statusLine:se(I,{children:se(ps,{...il,viewModel:Mf})})}),Kf=z(f=>se(DC,{banner:f?.bannerVisible?se(eh,{...ao}):void 0,items:zs,isLoading:jt,viewportRows:Gt.messageRows,viewportWidth:X,scrollOffset:In,windowed:!!f?.rendererWindow,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Xs:Jc,maxLines:ht,selectedTextRanges:Sf?$c?.rowRanges:void 0,onMetricsChange:ul,onVisibleRowsChange:dl}),[ao,zs,jt,ul,dl,In,Jc,X,ht,$c?.rowRanges,Gt.messageRows,Sf]),Vf=z(f=>se(NC,{banner:f?.bannerVisible?se(eh,{...ao}):void 0,items:Vs,browse:{hintText:Ar.browseHintText},selection:ll,search:Qh,isLoading:it,isThinking:pe.isThinking,thinkingCharCount:pe.thinkingCharCount,thinkingContent:pe.thinkingContent,streamingResponse:pe.currentResponse,currentTool:pe.currentTool,activeToolCalls:pe.activeToolCalls,toolInputCharCount:pe.toolInputCharCount,toolInputContent:pe.toolInputContent,iterationHistory:pe.iterationHistory,currentIteration:pe.currentIteration,isCompacting:pe.isCompacting,agentMode:D.agentMode,managedPhase:it?G?.phase:void 0,managedHarnessProfile:it?G?.harnessProfile:void 0,managedWorkerTitle:it?G?.activeWorkerTitle:void 0,managedRound:it?G?.currentRound:void 0,managedMaxRounds:it?G?.maxRounds:void 0,managedGlobalWorkBudget:it?G?.globalWorkBudget:void 0,managedBudgetUsage:it?G?.budgetUsage:void 0,managedBudgetApprovalRequired:it?G?.budgetApprovalRequired:void 0,lastLiveActivityLabel:pe.lastLiveActivityLabel,viewportRows:Gt.messageRows,viewportWidth:X,scrollOffset:In,windowed:!!f?.windowed,animateSpinners:!!f?.rendererWindow&&li,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Xs:Zc,maxLines:ht,showDetailedTools:Ct,showAllContent:Ct,selectedItemId:fn.selectionEnabled?Ve:void 0,selectedTextRanges:to?.rowRanges,expandedItemKeys:fn.selectionEnabled?en:void 0,onMetricsChange:ul,onVisibleRowsChange:dl}),[ao,D.agentMode,it,en,s.transcriptSpinnerAnimation,ul,dl,In,Wh,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,Xs,Zc,Ar.browseHintText,Ve,ll,X,li,Vs,ht,pe.activeToolCalls,pe.currentIteration,pe.currentResponse,pe.currentTool,pe.isCompacting,pe.isThinking,pe.iterationHistory,pe.lastLiveActivityLabel,pe.thinkingCharCount,pe.thinkingContent,pe.toolInputCharCount,pe.toolInputContent,to?.rowRanges,Qh,Ct,Gt.messageRows]),xI=re?Vf({bannerVisible:!1,windowed:yt}):Kf({bannerVisible:!1}),Ly=re?yI:hI,wI=s.enabled&&oi,Oy=Vt(I,{flexDirection:"column",width:X,flexShrink:0,flexGrow:wI?1:0,children:[se(Ag,{currentConfig:D,setCurrentConfig:De,isLoading:ve,abort:Re,stopThinking:J,clearThinkingContent:Y,setCurrentTool:q,setIsLoading:Q,onToggleHelp:tI,setShowHelp:$h,onSetThinking:i(f=>{ze.current.thinking=f},"onSetThinking"),onSetReasoningMode:i(f=>{ze.current.reasoningMode=f,ze.current.thinking=f!=="off"},"onSetReasoningMode"),onToggleTranscriptMode:uI,onOpenTranscriptSearch:Lf,canOpenTranscriptSearch:re&&!Ye&&!Me,isInteractiveDialogActive:!!(Ye||Me),onSetAgentMode:i(f=>{ze.current.agentMode=f},"onSetAgentMode"),onSetPermissionMode:i(f=>{Ff(f)},"onSetPermissionMode"),isInputEmpty:sf,onSavePermissionMode:Fa}),Jr&&(s.enabled?null:se(Xi,{items:[1],children:i(()=>se(eh,{...ao},"banner"),"children")})),oi?se(Zp,{width:X,stickyHeader:Ar.stickyHeader,jumpToLatest:Ar.jumpToLatest,transcript:!s.enabled||!yt?re?Vf({bannerVisible:!1}):Kf({bannerVisible:!1}):void 0,renderTranscriptWindow:s.enabled&&yt?f=>(()=>{let S=ea(f).contentWindow;return re?Vf({bannerVisible:!1,windowed:!0,rendererWindow:S}):Kf({bannerVisible:!1,rendererWindow:S})})():void 0,overlay:Nf,scrollTop:In,scrollHeight:Zs,viewportHeight:Gt.messageRows,stickyScroll:!re&&!Rr&&lf,scrollRef:j0,onWindowChange:cI,onScrollTopChange:K0,onStickyChange:V0,footer:Ly}):Vt(w1,{children:[Vt(I,{flexDirection:"column",flexGrow:1,children:[xI,Nf?se(I,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:Nf}):null]}),Ly]})]});return wf?se(Bm,{mouseTracking:Er.usesRendererMouseTracking,children:Oy}):Oy},"InkREPLInner"),_1=i(e=>{let t=process.cwd(),n=e.options?.context?.gitRoot??void 0;return se(hd,{children:se(Cd,{children:se(mu,{children:se(Eg,{children:se(_p,{cwd:t,gitRoot:n,children:se(A1,{...e})})})})})})},"InkREPL");function P1(){return process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function"}i(P1,"isRawModeSupported");async function ih(e){if(!P1())throw new Yf("Interactive mode requires a TTY with raw mode support.",['kodax -p "your task" # Run a single task',"kodax -c # Continue last session","kodax -r # Resume session"]);let t=e.storage??new ws,n=wo(),r=So(),o=To(n,r),{prepareRuntimeConfig:s,getGitRoot:a}=await import("./utils-A5MWDTWZ.js"),{loadCompactionConfig:c}=await import("./compaction-config-FIFFP4FT.js"),{resolveProvider:l}=await import("./dist-2ZHWDXMQ.js"),u=s(),m=e.provider??u.provider??Tl,p=e.model??u.model,g=S1(e,u),h=e.agentMode??u.agentMode??"ama",x=g!=="off",C=qn(u.permissionMode,"accept-edits")??"accept-edits",w=bl(),b=u.repoIntelligenceTrace===!0,P={provider:m,model:p,thinking:x,reasoningMode:g,agentMode:h,permissionMode:C,repoIntelligenceMode:w.mode,repointelEndpoint:w.endpoint,repointelBin:w.bin,repoIntelligenceTrace:b},L=e.session?.id,F=[],O,N,k,ae="",me=await a().catch(()=>null)??void 0,W=Cl({meta:{cwd:process.cwd(),startedAt:Date.now()}});if(W){let J=i(()=>{W.shutdown()},"teamModeCleanup");process.on("exit",J),process.on("SIGTERM",J)}try{let{bootstrapConstructionRuntime:J}=await import("./construction-bootstrap-J2WOCYEK.js"),Y=await J(me??process.cwd());if(Y.loaded>0||Y.failed>0||Y.tampered>0){let q=Y.failed>0?`; ${Y.failed} failed (see warnings above)`:"",Ge=Y.tampered>0?`; ${Y.tampered} skipped due to manifest contentHash mismatch \u2014 re-stage and re-activate to re-approve`:"";console.log(Xe.dim(`[Constructed] Rehydrated ${Y.loaded} active tool(s)${q}${Ge}.`))}}catch(J){console.warn(Xe.yellow(`[Constructed] Bootstrap failed: ${J.message}. Self-construction disabled this session.`))}let X;try{let J=await c(me),Y=l(m);X={contextWindow:J.contextWindow??Y.getContextWindow?.()??2e5,triggerPercent:J.triggerPercent,enabled:J.enabled,userOverrideContextWindow:J.contextWindow}}catch{}if(e.session?.id&&!e.session.resume){let J=await t.load(e.session.id);J&&(F=J.messages,O=Is(J.uiHistory),N=J.lineage,k=J.artifactLedger,ae=J.title,L=e.session.id,console.log(Xe.green(`[Session loaded: ${e.session.id}]`)))}else if(e.session?.resume||e.session?.autoResume){let J=await t.list(me);if(J.length>0){let Y=J[0];if(Y){let q=await t.load(Y.id);q&&(F=q.messages,O=Is(q.uiHistory),N=q.lineage,k=q.artifactLedger,ae=q.title,L=Y.id,console.log(Xe.green(`[Continuing session: ${Y.id}]`)))}}}let v=await rc({sessionId:L,gitRoot:me,existingMessages:F,existingUiHistory:O,existingLineage:N,existingArtifactLedger:k});v.title=ae;let ne={current:await Qf({cwd:process.cwd(),projectRoot:me??void 0})},xe={current:null},Re={current:null},Se={current:P},le=vu(),Le=await ic({askUser:i(async(J,Y,q)=>{let Ge=xe.current;return Ge?Ge(J,Y,q):"block"},"askUser"),projectRoot:me??process.cwd(),getAgentsFiles:i(()=>ne.current,"getAgentsFiles"),getCurrentProviderName:i(()=>Se.current.provider,"getCurrentProviderName"),getCurrentModel:i(()=>Se.current.model,"getCurrentModel"),getCurrentPermissionMode:i(()=>Se.current.permissionMode,"getCurrentPermissionMode"),autoModeSettings:le,log:i((J,Y)=>{J==="warn"?console.warn(Xe.yellow(Y)):console.log(Xe.dim(Y))},"log"),onEngineChange:i(J=>{Re.current?.(J)},"onEngineChange"),extraCollectors:[Pa]});try{let J=process.stdout,Y=process.stdin;import("./paste-5DSTHQGK.js").then(Ee=>Ee.prunePasteTmpDir()).catch(()=>{});let q=!1,{waitUntilExit:Ge,cleanup:Te}=su(se(_1,{options:e,config:P,context:v,storage:t,compactionInfo:X,rendererMode:r,fullscreenPolicy:o,autoModeBootstrap:Le,setAutoModeAskUser:i(Ee=>{xe.current=Ee},"setAutoModeAskUser"),setAutoModeEngineChange:i(Ee=>{Re.current=Ee},"setAutoModeEngineChange"),setCurrentConfigRef:i(Ee=>{Se.current=Ee},"setCurrentConfigRef"),onAgentsFilesReload:i(Ee=>{ne.current=Ee},"onAgentsFilesReload"),onExit:i(()=>{q=!0},"onExit")}),{stdout:J,stdin:Y,exitOnCtrlC:!1,patchConsole:!1,maxFps:30,shellMode:o.enabled?o.promptShell:"main-screen"});await Ge(),Te(),W?.shutdown(),Y.isTTY===!0&&typeof Y.setRawMode=="function"&&Y.isRaw&&Y.setRawMode(!1),Y.pause?.(),Y.unref?.(),q&&console.log(Xe.dim(`
358
- [Exiting KodaX...]`));let _e=e.hardExitOnClose??process.env.VITEST!=="true";if(q&&_e){let Ee=process.exitCode??0,ft=!1,we=i(()=>{ft||(ft=!0,process.exit(Ee))},"requestProcessExit");setTimeout(we,0).unref?.(),J.write("",we);return}}catch(J){throw J instanceof Error&&J.message.includes("Raw mode")?new Yf("Interactive mode failed to start.",['kodax -p "your task" # Run a single task',"kodax -c # Continue last session"]):J}}i(ih,"runInkInteractiveMode");import cn from"chalk";var jv=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],Gv=["\x1B[36m","\x1B[35m","\x1B[34m"],dc=null,ks=!1;function uc(){let e=0,t=0,n=!1,r="Thinking...",o=i(()=>{if(n)return;let c=Gv[t%Gv.length],l="\x1B[0m",u=jv[e%jv.length];process.stdout.write(`\r${c}${u}${l} ${r}`)},"renderFrame"),s=setInterval(()=>{e++,e%10===0&&t++,o()},80);o();let a={stop:i(()=>{n||(n=!0,clearInterval(s),process.stdout.write("\r\x1B[K"))},"stop"),isStopped:i(()=>n,"isStopped"),updateText:i(c=>{r=c},"updateText")};return dc=a,a}i(uc,"startWaitingDots");function $1(e=!0){let t=null,n=0,r=!1;return{onSessionStart:i(s=>{console.log(e?cn.cyan(`[KodaX] Provider: ${s.provider} | Session: ${s.sessionId}`):cn.cyan(`[KodaX] Provider: ${s.provider}`))},"onSessionStart"),onTextDelta:i(s=>{t&&(t.stop(),t=null),n=0,process.stdout.write(s),r=!0},"onTextDelta"),onThinkingDelta:i(s=>{n+=s.length,t||(t=uc()),t.updateText(`Thinking... (${n} chars)`)},"onThinkingDelta"),onThinkingEnd:i(s=>{if(t&&(t.stop(),t=null),s){let a=s.replace(/\n/g," "),c=a.length>100?a.slice(0,100)+"...":a;console.log(cn.dim(`[Thinking] ${c}`))}},"onThinkingEnd"),onToolUseStart:i(s=>{t||(ks||(process.stdout.write(`
359
- `),ks=!0),t=uc()),t.updateText(`Executing ${s.name}...`)},"onToolUseStart"),onToolInputDelta:i((s,a,c)=>{let l=a.length;t&&!t.isStopped()?t.updateText(`Receiving ${s}... (${l} chars)`):(!t||t.isStopped())&&(ks||(process.stdout.write(`
360
- `),ks=!0,r=!1),t=uc(),t.updateText(`Receiving ${s}... (${l} chars)`))},"onToolInputDelta"),onToolResult:i(s=>{t&&(t.stop(),t=null),console.log(cn.green(`[Result] ${s.content.slice(0,300)}${s.content.length>300?"...":""}`))},"onToolResult"),onRepoIntelligenceTrace:i(s=>{t&&(t.stop(),t=null),console.log(cn.dim(`[RepoIntel] ${s.summary}`))},"onRepoIntelligenceTrace"),onStreamEnd:i(()=>{dc&&!dc.isStopped()&&dc.stop(),dc=null,ks=!1,r&&(console.log(),r=!1),(!t||t.isStopped())&&(t=uc(),t.updateText("Processing..."))},"onStreamEnd"),onIterationStart:i((s,a)=>{t&&!t.isStopped()&&t.stop(),ks=!1,r=!1,console.log(cn.magenta(`
361
- [Assistant]`)),t=uc()},"onIterationStart"),onCompactStart:i(()=>{console.log(cn.dim(`
362
- [KodaX] Compacting context...`))},"onCompactStart"),onCompact:i(s=>{console.log(cn.dim(`[KodaX] Compaction finished (${s} tokens).`))},"onCompact"),onCompactEnd:i(()=>{},"onCompactEnd"),onRetry:i((s,a,c)=>{console.log(cn.yellow(`[KodaX] Retry ${a}/${c}: ${s}`))},"onRetry"),onProviderRecovery:i(s=>{let a=s.recoveryAction==="non_streaming_fallback"?"switching to non-streaming fallback":s.recoveryAction==="manual_continue"?"awaiting manual continue":`recovering ${s.attempt}/${s.maxAttempts}`;console.log(cn.yellow(`[KodaX] ${a} (${s.errorClass}, ${s.stage})`))},"onProviderRecovery"),onComplete:i(()=>{t&&(t.stop(),t=null),console.log(cn.green(`
363
- [KodaX] Done!`))},"onComplete"),onError:i(s=>{t&&(t.stop(),t=null),console.log(cn.red(`
364
- [Error] ${s.message}`))},"onError"),onScoutSuspiciousCompletion:i(s=>{console.log(cn.yellow(`
365
- [Scout] Completion marked uncertain \u2014 signals: ${s.signals.join(", ")}. Verify the result before continuing.`))},"onScoutSuspiciousCompletion"),beforeToolExecute:i(async(s,a)=>!0,"beforeToolExecute")}}i($1,"createCliEvents");function at(e,t){e.write(`${JSON.stringify(t)}
366
- `)}i(at,"writeJsonLine");function L1(e){return{type:"error",name:e.name,message:e.message,stack:e.stack}}i(L1,"serializeError");function O1(e={}){let t=e.stdout??process.stdout,n=e.stderr??process.stderr;return{onSessionStart:i(r=>{at(t,{type:"session.start",provider:r.provider,sessionId:r.sessionId})},"onSessionStart"),onIterationStart:i((r,o)=>{at(t,{type:"iteration.start",iter:r,maxIter:o})},"onIterationStart"),onIterationEnd:i(r=>{at(t,{type:"iteration.end",iter:r.iter,maxIter:r.maxIter,tokenCount:r.tokenCount,tokenSource:r.tokenSource,usage:r.usage,contextTokenSnapshot:r.contextTokenSnapshot})},"onIterationEnd"),onTextDelta:i(r=>{at(t,{type:"text.delta",text:r})},"onTextDelta"),onThinkingDelta:i(r=>{at(t,{type:"thinking.delta",text:r})},"onThinkingDelta"),onThinkingEnd:i(r=>{at(t,{type:"thinking.end",thinking:r})},"onThinkingEnd"),onToolUseStart:i(r=>{at(t,{type:"tool.start",id:r.id,name:r.name,input:r.input})},"onToolUseStart"),onToolInputDelta:i((r,o,s)=>{at(t,{type:"tool.input.delta",toolName:r,partialJson:o,toolId:s?.toolId})},"onToolInputDelta"),onToolResult:i(r=>{at(t,{type:"tool.result",id:r.id,name:r.name,content:r.content})},"onToolResult"),onStreamEnd:i(()=>{at(t,{type:"stream.end"})},"onStreamEnd"),onCompactStart:i(()=>{at(t,{type:"compact.start"})},"onCompactStart"),onCompact:i(r=>{at(t,{type:"compact.finish",estimatedTokens:r})},"onCompact"),onCompactStats:i(r=>{at(t,{type:"compact.stats",tokensBefore:r.tokensBefore,tokensAfter:r.tokensAfter})},"onCompactStats"),onCompactEnd:i(()=>{at(t,{type:"compact.end"})},"onCompactEnd"),onRetry:i((r,o,s)=>{at(t,{type:"retry",reason:r,attempt:o,maxAttempts:s})},"onRetry"),onProviderRecovery:i(r=>{at(t,{type:"provider.recovery",stage:r.stage,reasonCode:r.errorClass,attempt:r.attempt,maxAttempts:r.maxAttempts,delayMs:r.delayMs,nextAt:Date.now()+r.delayMs,recoveryAction:r.recoveryAction,fallbackUsed:r.fallbackUsed})},"onProviderRecovery"),onProviderRateLimit:i((r,o,s)=>{at(t,{type:"provider.rate_limit",attempt:r,maxRetries:o,delayMs:s})},"onProviderRateLimit"),onRepoIntelligenceTrace:i(r=>{at(t,{type:"repo_intelligence.trace",stage:r.stage,summary:r.summary,capability:r.capability,trace:r.trace})},"onRepoIntelligenceTrace"),onToolProgress:i(r=>{at(t,{type:"tool.progress",id:r.id,message:r.message})},"onToolProgress"),onManagedTaskStatus:i(r=>{at(t,{type:"managed_task.status",agentMode:r.agentMode,harnessProfile:r.harnessProfile,phase:r.phase,activeWorkerId:r.activeWorkerId,activeWorkerTitle:r.activeWorkerTitle,childFanoutClass:r.childFanoutClass,childFanoutCount:r.childFanoutCount,currentRound:r.currentRound,maxRounds:r.maxRounds,note:r.note,detailNote:r.detailNote,globalWorkBudget:r.globalWorkBudget,budgetUsage:r.budgetUsage,budgetApprovalRequired:r.budgetApprovalRequired})},"onManagedTaskStatus"),onScoutSuspiciousCompletion:i(r=>{at(t,{type:"scout.suspicious_completion",confidence:r.confidence,signals:r.signals,sessionId:r.sessionId,lastTextPreview:r.lastTextPreview})},"onScoutSuspiciousCompletion"),onComplete:i(()=>{at(t,{type:"complete"})},"onComplete"),onError:i(r=>{at(n,L1(r))},"onError")}}i(O1,"createJsonEvents");import{jsx as lt,jsxs as Jt}from"react/jsx-runtime";import F1,{useMemo as fc}from"react";var sh=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@.*$/,Kv=/^---\s+(.+)$/;function Vv(e){if(!e)return[];let t=e.split(`
367
- `),n=[],r=[],o=[],s=!1,a=null,c=null,l=0,u=0,m=i(()=>{if(r.length===0)return;let g=r.join(`
368
- `);g.length>0&&n.push({kind:"text",text:g}),r=[]},"flushText"),p=i(()=>{o.length!==0&&(n.push({kind:"diff",text:o.join(`
369
- `),addedLines:l,removedLines:u,filePath:c}),o=[],l=0,u=0,c=null)},"flushDiff");for(let g=0;g<t.length;g++){let h=t[g];if(!s){let w=Kv.exec(h);if(w){let b=Math.min(g+3,t.length-1),P=!1;for(let L=g+1;L<=b;L++)if(t[L]?.startsWith("+++ ")||sh.test(t[L]??"")){P=!0;break}if(P){m(),s=!0,a=w[1]??null,c=a,o.push(h);continue}}if(sh.test(h)){m(),s=!0,o.push(h);continue}r.push(h);continue}let x=Kv.exec(h);if(x){let w=Math.min(g+3,t.length-1),b=!1;for(let P=g+1;P<=w;P++)if(t[P]?.startsWith("+++ ")||sh.test(t[P]??"")){b=!0;break}if(b){p(),c=x[1]??null,o.push(h);continue}}let C=h[0];if(C==="+"||C==="-"||C===" "||C==="@"||h===""){C==="+"&&!h.startsWith("+++ ")&&l++,C==="-"&&!h.startsWith("--- ")&&u++,o.push(h);continue}p(),s=!1,a=null,r.push(h)}return p(),m(),n}i(Vv,"parseUnifiedDiff");function zv(e){return e?/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/m.test(e):!1}i(zv,"containsUnifiedDiff");import{jsxs as Rs,jsx as D1}from"react/jsx-runtime";import N1 from"react";function B1(e){return e.startsWith("+++ ")?{text:e,kind:"file-header"}:e.startsWith("--- ")?{text:e,kind:"file-header"}:e.startsWith("@@ ")?{text:e,kind:"hunk-header"}:e.startsWith("+")?{text:e,kind:"add"}:e.startsWith("-")?{text:e,kind:"remove"}:{text:e,kind:"context"}}i(B1,"classifyLine");function H1(e,t){switch(e){case"add":return t.colors.success;case"remove":return t.colors.error;case"hunk-header":case"file-header":return t.colors.dim;default:return}}i(H1,"colorFor");var ah=N1.memo(({text:e,addedLines:t,removedLines:n,filePath:r,theme:o,maxLines:s=16,extremeThreshold:a=200})=>{let c=o??te("dark"),l=e.split(`
370
- `),u=l.map(B1),m=`(${t>0?`+${t}`:"\xB10"} ${n>0?`-${n}`:""})`.trim();if(l.length>a)return Rs(I,{flexDirection:"column",marginLeft:4,children:[r&&Rs(T,{dimColor:!0,children:[r," ",m]}),Rs(T,{dimColor:!0,children:["[diff too large to render inline \u2014 ",l.length," lines, ",t,"+ / ",n,"-]"]})]});let p,g=0;if(l.length>s){let h=Math.floor(s/2),x=u.slice(0,h),C=u.slice(-h);g=l.length-x.length-C.length,p=[...x,{text:"",kind:"context"},...C]}else p=u;return Rs(I,{flexDirection:"column",marginLeft:4,children:[r&&Rs(T,{dimColor:!0,children:[r," ",m]}),p.map((h,x)=>{if(x===Math.floor(s/2)&&g>0&&h.kind==="context"&&h.text==="")return Rs(T,{dimColor:!0,children:["... ",g," lines collapsed ..."]},`collapse-${x}`);let w=H1(h.kind,c);return D1(T,{color:w,children:h.text||" "},x)})]})});ah.displayName="DiffHunk";function Xv(e){switch(e){case $.Scheduled:return"\u25CB";case $.Validating:return"\u25D0";case $.AwaitingApproval:return"\u23F8";case $.Executing:return"\u25CF";case $.Success:return"\u2713";case $.Error:return"\u2717";case $.Cancelled:return"\u2298";default:return"?"}}i(Xv,"getStatusIcon");function Yv(e,t){switch(e){case $.Scheduled:case $.Validating:return t.colors.dim;case $.AwaitingApproval:return t.colors.accent;case $.Executing:return t.colors.primary;case $.Success:return t.colors.success??t.colors.primary;case $.Error:return t.colors.error;case $.Cancelled:return t.colors.dim;default:return t.colors.text}}i(Yv,"getStatusColor");function W1(e,t){if(!t)return"";let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(W1,"formatDuration");function U1(e){if(!e)return"";let t=JSON.stringify(e);return t.length<=50?t:t.slice(0,47)+"..."}i(U1,"formatInputSummary");var j1=i(({status:e,theme:t})=>{let n=t??fc(()=>te("dark"),[]),r=Xv(e),o=Yv(e,n);return lt(T,{color:o,children:r})},"ToolStatusBadge"),qv=i(({progress:e,width:t=20,theme:n})=>{let r=n??fc(()=>te("dark"),[]),o=Math.max(0,Math.min(100,e)),s=Math.round(o/100*t),a=t-s,c="\u2588".repeat(s),l="\u2591".repeat(a);return Jt(I,{children:[lt(T,{color:r.colors.primary,children:c}),lt(T,{dimColor:!0,children:l}),Jt(T,{children:[" ",o,"%"]})]})},"ToolProgressBar"),Qv=i(({tool:e,collapsed:t=!1,theme:n})=>{let r=n??fc(()=>te("dark"),[]),o=Xv(e.status),s=Yv(e.status,r),a=U1(e.input),c=W1(e.startTime,e.endTime);return t?Jt(I,{children:[Jt(T,{color:s,children:[o," "]}),lt(T,{color:r.colors.text,children:e.name})]}):Jt(I,{flexDirection:"column",marginLeft:2,children:[Jt(I,{children:[Jt(T,{color:s,children:[o," "]}),lt(T,{color:r.colors.text,bold:!0,children:e.name}),a&&Jt(T,{dimColor:!0,children:[" ",a]})]}),e.progress!==void 0&&e.status===$.Executing&&lt(I,{marginLeft:2,children:lt(qv,{progress:e.progress,theme:r})}),e.progressLines&&e.progressLines.length>0&&e.status===$.Executing&&lt(I,{flexDirection:"column",marginLeft:2,children:e.progressLines.slice(-5).map((l,u)=>lt(T,{dimColor:!0,children:l},u))}),e.error&&lt(I,{marginLeft:2,children:lt(T,{color:r.colors.error,children:e.error})}),e.status===$.Success&&typeof e.output=="string"&&e.output.length>0&&lt(Jv,{output:e.output,theme:r}),c&&e.status!==$.Executing&&lt(I,{marginLeft:2,children:Jt(T,{dimColor:!0,children:["Completed in ",c]})})]})},"ToolCallDisplay"),Jv=F1.memo(({output:e,theme:t})=>{if(!zv(e))return lt(I,{marginLeft:2,children:lt(T,{dimColor:!0,children:e})});let n=Vv(e);return lt(I,{flexDirection:"column",marginLeft:2,children:n.map((r,o)=>r.kind==="text"?lt(T,{dimColor:!0,children:r.text},o):lt(ah,{text:r.text,addedLines:r.addedLines,removedLines:r.removedLines,filePath:r.filePath,theme:t},o))})});Jv.displayName="ToolOutputBlock";var G1=i(({tools:e,collapsed:t=!1,title:n,theme:r})=>{let o=r??fc(()=>te("dark"),[]);if(e.length===0)return null;let s=fc(()=>{let c={[$.Scheduled]:0,[$.Validating]:0,[$.AwaitingApproval]:0,[$.Executing]:0,[$.Success]:0,[$.Error]:0,[$.Cancelled]:0};for(let l of e)c[l.status]++;return c},[e]),a=n??"Tools";if(t){let c=s[$.Success],l=s[$.Error],u=s[$.Executing]+s[$.Scheduled]+s[$.Validating];return lt(I,{flexDirection:"column",marginBottom:1,children:Jt(I,{children:[lt(T,{color:o.colors.accent,bold:!0,children:a}),Jt(T,{dimColor:!0,children:[" ","(",e.length," tools",c>0&&`, ${c} succeeded`,l>0&&`, ${l} failed`,u>0&&`, ${u} running`,")"]})]})})}return Jt(I,{flexDirection:"column",marginBottom:1,children:[Jt(I,{children:[lt(T,{color:o.colors.accent,bold:!0,children:a}),Jt(T,{dimColor:!0,children:[" ","(",e.length," ",e.length===1?"tool":"tools",")"]})]}),e.map(c=>lt(Qv,{tool:c,theme:o},c.id))]})},"ToolGroup");import{jsxs as Zv,jsx as K1}from"react/jsx-runtime";var V1=i(({pendingInputs:e})=>{let t=xC(e);if(!t)return null;let n=te("dark");return Zv(I,{children:[Zv(T,{color:n.colors.hint,children:["\u23F3"," "]}),K1(T,{color:n.colors.dim,children:t})]})},"PendingInputsIndicator");import*as e0 from"child_process";var mc;function z1(){if(process.platform!=="win32")return null;if(mc!==void 0)return mc;try{mc=e0.execFileSync(process.env.ComSpec??"cmd.exe",["/d","/s","/c","chcp"],{encoding:"utf8",stdio:["ignore","pipe","ignore"],windowsHide:!0}).match(/(\d{3,5})/)?.[1]??null}catch{mc=null}return mc}i(z1,"detectWindowsCodePage");function Gd(){let e=process.env;return!!(e.COLORTERM==="truecolor"||e.COLORTERM==="24bit"||e.TERM_PROGRAM==="iTerm.app"||e.WT_SESSION||e.TERM==="xterm-kitty"||e.TERM_PROGRAM==="vscode"||e.TERM_PROGRAM==="gnome-terminal")}i(Gd,"supportsTrueColor");function t0(){if(Gd())return!0;let e=process.env.TERM||"";return e.includes("256color")||e==="xterm-256color"||e==="screen-256color"||e==="tmux-256color"}i(t0,"supports256Colors");function Cr(){let e=process.env,t=e.LC_ALL||"",n=e.LC_CTYPE||"",r=e.LANG||"";if(t==="C"||t==="POSIX"||n==="C"||n==="POSIX"||r==="C"||r==="POSIX")return!1;let o=`${t}|${n}|${r}`.toLowerCase();return o.includes("utf-8")||o.includes("utf8")?!0:process.platform==="win32"?e.WT_SESSION||e.TERM_PROGRAM==="vscode"?!0:z1()==="65001":!0}i(Cr,"supportsUnicode");function n0(){let e=process.env;return!!(e.TERM_PROGRAM==="iTerm.app"||e.WT_SESSION||e.TERM==="xterm-kitty"||e.TERM_PROGRAM==="vscode"||e.TERM_PROGRAM==="Apple_Terminal"||e.TERM_PROGRAM==="gnome-terminal"||e.COLORTERM)}i(n0,"supportsEmoji");function r0(){if(process.stdout?.columns)return process.stdout.columns;let t=process.env.COLUMNS;if(t){let n=Number.parseInt(t,10);if(!Number.isNaN(n)&&n>0)return n}return 80}i(r0,"getTerminalWidth");function o0(){let e=process.env;return!!(e.NO_COLOR||e.TERM==="dumb"||e.CI)}i(o0,"isScreenReader");function X1(){return process.stdout?.isTTY??!1}i(X1,"isTTY");function Y1(){return{trueColor:Gd(),colors256:t0(),unicode:Cr(),emoji:n0(),tty:X1(),columns:r0(),screenReader:o0()}}i(Y1,"detectTerminalCapabilities");var pc=class{static{i(this,"ConsoleCapturer")}captured=[];originalLog=null;start(){this.captured=[],this.originalLog=console.log,console.log=(...t)=>{let n=t.map(r=>typeof r=="string"?r:String(r)).join(" ");this.captured.push(n)}}stop(){return this.originalLog!==null&&(console.log=this.originalLog,this.originalLog=null),this.captured}getCaptured(){return[...this.captured]}clear(){this.captured=[]}};async function q1(e){let t=new pc;t.start();try{let n=await e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}i(q1,"withCapture");function Q1(e){let t=new pc;t.start();try{let n=e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}i(Q1,"withCaptureSync");import*as f0 from"readline";import*as m0 from"child_process";import*as wc from"path";import*as xc from"fs";import*as p0 from"os";import K from"chalk";import On from"chalk";var J1=[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel the action",value:"no"}],Z1=[{key:"y",label:"Yes",description:"Allow this once",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"},{key:"a",label:"Always",description:"Always allow this kind of action",value:"always"}];function eO(e,t=!0){return e.map(n=>{let r=On.dim(`[${n.key}]`);return t?`${r} ${On.cyan(n.label)} ${On.dim(`- ${n.description}`)}`:`${r} ${n.label}`}).join(" ")}i(eO,"formatOptions");function Es(){return process.stdout.columns??80}i(Es,"getTerminalWidth");function tO(){return Cr()}i(tO,"supportsUnicode");function nO(){let e=tO();return{success:e?"\u2713":"[OK]",error:e?"\u2717":"[X]",warning:e?"\u26A0":"[!]",info:e?"\u2139":"[i]",arrow:e?"\u2192":"->",bullet:e?"\u2022":"*",check:e?"\u2713":"[v]",cross:e?"\u2717":"[x]"}}i(nO,"getSymbols");async function rO(e,t){let{message:n,default:r,options:o,showDescription:s=!0}=t,a=o??J1,c=eO(a,s);console.log(),console.log(On.cyan(`? ${n}`));let l=Es();if(c.length>l-4)for(let u of a){let m=On.dim(` [${u.key}]`);console.log(`${m} ${On.cyan(u.label)}`),s&&console.log(On.dim(` ${u.description}`))}else console.log(On.dim(` ${c}`));return new Promise(u=>{let m=r?` (${r})`:"";e.question(On.dim(` Choose${m}: `),p=>{let g=p.trim().toLowerCase()||r||"",h=a.find(x=>x.key===g||x.value===g||x.label.toLowerCase()===g);u(h?h.value:g===""?"no":g)})})}i(rO,"confirmEnhanced");async function gc(e,t,n,r){let{isOutsideProject:o=!1,isProtectedPath:s=!1,permissionMode:a="accept-edits"}=r??{},c=nO(),l,u,m={...n,...o?{_outsideProject:!0}:{},...s?{_alwaysConfirm:!0}:{}},p=Ad(t,m),g=p.details.map(x=>` ${On.dim(x)}`);o||s?(l=`${On.yellow(c.warning)} Safety Warning`,g.length>0&&(l+=`
371
- ${g.join(`
372
- `)}`),u=[{key:"y",label:"Yes",description:"Allow this once",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]):(l=p.title,g.length>0&&(l+=`
373
- ${g.join(`
374
- `)}`),u=a==="accept-edits"?Z1:[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]);let h=await rO(e,{message:l,default:"n",options:u});return h==="always"?{confirmed:!0,always:!0}:{confirmed:h==="yes"}}i(gc,"confirmToolExecution");import Zt from"chalk";var Kd=/\x1b\[[0-9;]*m/g,or={SAVE_CURSOR:"\x1B[s",RESTORE_CURSOR:"\x1B[u",MOVE_TO_BOTTOM:"\x1B[999;1H",CLEAR_LINE:"\x1B[2K",RESET:"\x1B[0m",REVERSE:"\x1B[7m"};function oO(e,t){if(t<=0)return"";let n="",r=0,o=0;for(;o<e.length&&r<t;){Kd.lastIndex=o;let s=Kd.exec(e);if(s&&s.index===o){n+=s[0],o+=s[0].length;continue}n+=e[o],r+=1,o+=1}return n}i(oO,"truncateAnsi");function i0(e){return Kd.lastIndex=0,e.replace(Kd,"")}i(i0,"stripAnsi");function iO(e,t=Es()){let n=[],r=e.sessionId.slice(0,6);n.push(Zt.dim(`#${r}`));let o=e.permissionMode==="plan"?Zt.blue:e.permissionMode==="accept-edits"?Zt.cyan:e.permissionMode==="auto-in-project"?Zt.magenta:Zt.green,s=Ji(e.permissionMode),c=(e.permissionMode==="auto"||e.permissionMode==="auto-in-project")&&e.autoModeEngine?e.autoModeEngine==="llm"?Zt.green("[LLM]"):Zt.yellow("[RULES]"):"";if(n.push(o(s)+c),e.reasoningMode&&n.push(Zt.yellow(`reason:${e.reasoningMode}`)),n.push(Zt.cyan(e.provider)),e.tokenUsage){let m=e.tokenUsage.total,p=m>=1e3?`${(m/1e3).toFixed(1)}k`:String(m);n.push(Zt.dim(`${p}t`))}if(e.currentTool&&n.push(Zt.magenta(`tool:${e.currentTool}`)),e.projectInfo){let{completedFeatures:m,totalFeatures:p}=e.projectInfo,g=p>0?Math.round(m/p*100):0;n.push(Zt.dim(`${m}/${p} [${g}%]`))}e.messageCount!==void 0&&n.push(Zt.dim(`${e.messageCount} msgs`));let l=n.join(Zt.dim(" | ")),u=t-1;return i0(l).length>u&&(l=`${oO(l,Math.max(0,u-3))}...`),l}i(iO,"buildStatusBarContent");var Vd=class{static{i(this,"StatusBar")}state;visible=!1;constructor(t){this.state=t}update(t){this.state={...this.state,...t},this.visible&&this.render()}show(){this.visible||(this.visible=!0,this.render())}hide(){this.visible&&(this.visible=!1,this.clear())}toggle(){if(this.visible){this.hide();return}this.show()}getLinesUsed(){return 1}render(){let t=Es(),n=iO(this.state,t),r=n+" ".repeat(Math.max(0,t-i0(n).length));process.stdout.write(or.SAVE_CURSOR+or.MOVE_TO_BOTTOM+or.CLEAR_LINE+or.REVERSE+r+or.RESET+or.RESTORE_CURSOR)}clear(){process.stdout.write(or.SAVE_CURSOR+or.MOVE_TO_BOTTOM+or.CLEAR_LINE+or.RESTORE_CURSOR)}};function s0(e,t,n,r,o="off"){return{sessionId:e,permissionMode:t,reasoningMode:o,provider:n,model:r}}i(s0,"createStatusBarState");function a0(){if(!process.stdout.isTTY||Ai())return!1;let e=process.env.TERM??"",t=process.env.TERM_PROGRAM??"",n=["xterm","xterm-256color","screen","screen-256color","tmux","tmux-256color","vt100","vt220"],r=["iTerm.app","Terminal.app","Apple_Terminal","vscode","Hyper","Alacritty","kitty","Windows Terminal"];return n.some(o=>e.startsWith(o))||r.includes(t)||process.env.WT_SESSION!==void 0}i(a0,"supportsStatusBar");import U5 from"chalk";function c0(){return{prompt:"\u276F",success:"\u2713",error:"\u2717",warning:"\u26A0",info:"\u2139",arrow:"\u2192",bullet:"\u2022",check:"\u2713",cross:"\u2717",spinner:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]}}i(c0,"getUnicodeSymbols");function ch(){return{prompt:">",success:"[OK]",error:"[X]",warning:"[!]",info:"[i]",arrow:"->",bullet:"*",check:"[v]",cross:"[x]",spinner:["|","/","-","\\","|","/","-","\\"]}}i(ch,"getAsciiSymbols");var l0={name:"dark",description:"Dark theme with vibrant colors",colors:{primary:"#00D7FF",secondary:"#9D9D9D",accent:"#FF6B6B",text:"#FFFFFF",dim:"#6B6B6B",success:"#4CAF50",warning:"#FF9800",error:"#F44336",info:"#2196F3"},symbols:Cr()?c0():ch(),spinner:{frames:Cr()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},sO={name:"light",description:"Light theme for bright terminals",colors:{primary:"#0066CC",secondary:"#666666",accent:"#CC0000",text:"#000000",dim:"#999999",success:"#228B22",warning:"#CC7A00",error:"#CC0000",info:"#0066CC"},symbols:Cr()?c0():ch(),spinner:{frames:Cr()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},aO={name:"minimal",description:"Minimal theme without colors (for CI or limited terminals)",colors:{primary:"",secondary:"",accent:"",text:"",dim:"",success:"",warning:"",error:"",info:""},symbols:ch(),spinner:{frames:[".","o","O","0","O","o"],interval:120}},cO={dark:l0,light:sO,minimal:aO},u0=l0;function yc(){return u0}i(yc,"getCurrentTheme");function hc(e){let t=cO[e];return t?(u0=t,!0):!1}i(hc,"setTheme");function lO(){if(!process.stdout.isTTY){hc("minimal");return}let e=process.env;if(e.WT_SESSION!==void 0||e.TERM_PROGRAM==="vscode"){hc("dark");return}hc("dark")}i(lO,"autoSelectTheme");lO();var zd=class{static{i(this,"ReadlineUIContext")}rl;constructor(t){this.rl=t}async select(t,n){if(n.length!==0)return console.log(`
375
- ${t}`),console.log("\u2500".repeat(t.length)),n.forEach((r,o)=>{console.log(` ${o+1}. ${r}`)}),console.log(" 0. Cancel"),console.log(""),new Promise(r=>{this.rl.question("Enter choice (0 to cancel): ",o=>{let s=o.trim();if(s==="0"||s===""){r(void 0);return}let a=parseInt(s,10)-1;if(isNaN(a)||a<0||a>=n.length){console.log("Invalid choice. Please try again."),r(void 0);return}r(n[a])})})}async confirm(t){return new Promise(n=>{this.rl.question(`${t} (y/N): `,r=>{let o=r.trim().toLowerCase();n(o==="y"||o==="yes")})})}async input(t,n){let r=n?`${t} [${n}]: `:`${t}: `;return new Promise(o=>{this.rl.question(r,s=>{let a=s.trim();if(a===""&&n!==void 0){o(n);return}o(a||void 0)})})}};var uh=class{static{i(this,"MemorySessionStorage")}sessions=new Map;async save(t,n){let r=this.sessions.get(t),o=gn(n.messages,n.lineage??r?.data.lineage);this.sessions.set(t,{createdAt:r?.createdAt??new Date().toISOString(),data:{...structuredClone(n),scope:n.scope??r?.data.scope??"user",uiHistory:n.uiHistory??r?.data.uiHistory,extensionState:n.extensionState??r?.data.extensionState,extensionRecords:n.extensionRecords??r?.data.extensionRecords,lineage:o}})}async load(t){return structuredClone(this.sessions.get(t)?.data??null)}async getLineage(t){return structuredClone(this.sessions.get(t)?.data.lineage??null)}async setActiveEntry(t,n,r){let o=this.sessions.get(t);if(!o?.data.lineage)return null;let s=Ti(o.data.lineage,n,r);if(!s)return null;let a={...structuredClone(o.data),messages:Rt(s),lineage:s};return this.sessions.set(t,{...o,data:a}),structuredClone(a)}async setLabel(t,n,r){let o=this.sessions.get(t);if(!o?.data.lineage)return null;let s=Ci(o.data.lineage,n,r);if(!s)return null;let a={...structuredClone(o.data),lineage:s};return this.sessions.set(t,{...o,data:a}),structuredClone(a)}async fork(t,n,r){let o=this.sessions.get(t);if(!o?.data.lineage)return null;let s=Ii(o.data.lineage,n);if(!s)return null;let a=r?.sessionId??await Si(),c={messages:Rt(s),title:r?.title??o.data.title,gitRoot:o.data.gitRoot,runtimeInfo:o.data.runtimeInfo?structuredClone(o.data.runtimeInfo):void 0,scope:o.data.scope??"user",extensionState:o.data.extensionState?structuredClone(o.data.extensionState):void 0,extensionRecords:o.data.extensionRecords?structuredClone(o.data.extensionRecords):void 0,lineage:s};return this.sessions.set(a,{createdAt:new Date().toISOString(),data:c}),{sessionId:a,data:structuredClone(c)}}async rewind(t,n){let r=this.sessions.get(t);if(!r?.data.lineage)return null;let o=n??bi(r.data.lineage);if(!o)return null;let s=vi(r.data.lineage,o);if(!s)return null;let a={...r.data,messages:Rt(s),lineage:s};return this.sessions.set(t,{...r,data:a}),structuredClone(a)}async list(t){return Array.from(this.sessions.entries()).filter(([,n])=>(n.data.scope??"user")==="user").map(([n,r])=>({id:n,title:r.data.title,msgCount:r.data.lineage?go(r.data.lineage):r.data.messages.length,...r.data.runtimeInfo?{runtimeInfo:structuredClone(r.data.runtimeInfo)}:{}}))}async delete(t){this.sessions.delete(t)}async deleteAll(t){this.sessions.clear()}};function lh(e,t,n){e.runtimeInfo=n,e.gitRoot=n?.workspaceRoot??e.gitRoot,t.context={...t.context,gitRoot:e.gitRoot,executionCwd:n?.executionCwd??process.cwd()}}i(lh,"applyRuntimeContext");function uO(e){e?.workspaceRoot&&(console.log(K.dim(` Workspace: ${Tn(e)}`)),console.log(K.dim(` Use /status workspace for runtime details.
376
- `)))}i(uO,"printWorkspaceEntryNotice");function dO(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:(e.thinking===!0||t.thinking===!0,"auto")}i(dO,"resolveInitialReasoningMode");var dh={current:null};async function fO(e){let t=await os({cwd:process.cwd()}),n=t.workspaceRoot??await yo()??void 0,r=e.storage??new uh,o=Cl({meta:{cwd:process.cwd(),startedAt:Date.now()}}),s=im(),a=e.provider??s.provider??Tl,c=e.model??s.model,l=dO(e,s),u=e.agentMode??s.agentMode??"ama",m=l!=="off",p=qn(s.permissionMode,"accept-edits")??"accept-edits",g=pu();p==="auto-in-project"&&g();let h=bl(),x=s.theme;x&&hc(x);let C=yc(),w={provider:a,model:c,thinking:m,reasoningMode:l,agentMode:u,permissionMode:p,repoIntelligenceMode:h.mode,repointelEndpoint:h.endpoint,repointelBin:h.bin,repoIntelligenceTrace:h.trace},b=p,P=ns(),L=0,F="",O=!1,N=500,k=await rc({sessionId:e.session?.id,gitRoot:n,runtimeInfo:t}),ae=i(A=>jo(w,A,(_,U,ee)=>{console.log((_==="block"?K.red:K.yellow)(`
377
- ${U}`));for(let Oe of ee)console.log(K.dim(Oe));console.log()}),"guardSessionTransition"),me=await Ml(n??void 0),{resolveProvider:W}=await import("./dist-2ZHWDXMQ.js"),X=W(w.provider),v=me.contextWindow??X.getEffectiveContextWindow?.(w.model)??X.getContextWindow?.()??2e5,{loadAgentsFiles:M}=await import("./dist-2ZHWDXMQ.js"),ne=i(async()=>M({cwd:process.cwd(),projectRoot:k.gitRoot??void 0}),"reloadAgentsFiles"),xe=await ne();hO(w,w.permissionMode,{contextWindow:v,triggerPercent:me.triggerPercent,enabled:me.enabled},xe),uO(t);let Re=cT(()=>k.gitRoot??process.cwd()),Se=f0.createInterface({input:process.stdin,output:process.stdout,terminal:process.stdout.isTTY??!0,historySize:100,completer:i((A,_)=>{Re(A).then(U=>{_(null,U)}).catch(()=>{_(null,[[],A])})},"completer")}),le=vu(),Le=await ic({askUser:i(async(A,_,U)=>(await gc(Se,A.name,{...A.input,...U&&U.length>0?{_classifierSignals:U}:{}},{permissionMode:b,reason:`[auto-mode] ${_}`})).confirmed?"allow":"block","askUser"),projectRoot:n??process.cwd(),getAgentsFiles:i(()=>xe,"getAgentsFiles"),getCurrentProviderName:i(()=>w.provider,"getCurrentProviderName"),getCurrentModel:i(()=>w.model,"getCurrentModel"),getCurrentPermissionMode:i(()=>b,"getCurrentPermissionMode"),autoModeSettings:le,log:i((A,_)=>{A==="warn"?console.warn(K.yellow(_)):console.log(K.dim(_))},"log"),onEngineChange:i(A=>{qt(b)&&q?.update({autoModeEngine:A})},"onEngineChange"),extraCollectors:[Pa]}),J=kl({getProvider:i(()=>W(w.provider),"getProvider"),getModel:i(()=>w.model??"","getModel")}),Y=w.model??Kn(w.provider)??w.provider,q=null;a0()&&(q=new Vd(s0(k.sessionId,w.permissionMode,w.provider,Y,w.reasoningMode)),qt(b)&&q.update({autoModeEngine:Le.getGuardrail().getEngine()}));let Ge=`
378
- Keyboard Shortcuts:
379
- Tab Auto-complete (@paths, /commands)
380
- Esc+Esc Edit last message
381
- Ctrl+T Cycle reasoning mode
382
- Ctrl+E Open external editor
383
- Ctrl+R Search command history (built-in)
384
- Ctrl+C Cancel current input
385
- Ctrl+D Exit REPL`,Te=i(()=>{console.log(K.dim(Ge))},"_printKeyboardShortcuts");process.stdin.isTTY&&process.stdin.on("keypress",(A,_)=>{if(_&&_.name==="escape"){let U=Date.now();U-L<N&&F&&(O=!0,console.log(K.dim(`
386
- [Opening editor with last message...]`)),Se.pause()),L=U}});let Ee=dr(n).getSystemPromptSnippet(),ft=!0,we={...e,reasoningMode:l,thinking:m,context:{...e.context,gitRoot:n,executionCwd:t.executionCwd,repoIntelligenceMode:h.mode,repoIntelligenceTrace:h.trace,skillsPrompt:Ee},session:{...e.session,id:k.sessionId}};dh.current=null;let Ze={exit:i(()=>{ft=!1,o?.shutdown(),Se.close()},"exit"),saveSession:i(async()=>{if(k.messages.length>0){let A=Xd(k.messages);k.title=A,await r.save(k.sessionId,{messages:k.messages,title:A,gitRoot:k.gitRoot??"",runtimeInfo:k.runtimeInfo,artifactLedger:k.artifactLedger})}},"saveSession"),startNewSession:i(()=>{k.sessionId=oc(),k.title="",k.contextTokenSnapshot=void 0,k.artifactLedger=void 0,k.createdAt=new Date().toISOString(),k.lastAccessed=k.createdAt,lh(k,we,t),we.session={...we.session,id:k.sessionId},q?.update({sessionId:k.sessionId,messageCount:0})},"startNewSession"),loadSession:i(async A=>{let _=await r.load(A);if(_){if(!ae("Resuming a saved session"))return"blocked";let U=await os({cwd:process.cwd()}),ee=Ua(_),Oe=ee??U;return ee?.workspaceRoot&&!tT(ee)?(console.log(K.yellow(`
387
- [Saved workspace unavailable]`)),console.log(K.dim(` Session workspace: ${Tn(ee)}`)),console.log(K.dim(` Falling back to current workspace: ${Tn(U)}`)),Oe=U):ee?.workspaceRoot&&U.workspaceRoot&&ee.workspaceRoot!==U.workspaceRoot&&(console.log(K.cyan(`
388
- [Loading sibling workspace session]`)),console.log(K.dim(` Current workspace: ${Tn(U)}`)),console.log(K.dim(` Session workspace: ${Tn(ee)}`))),k.messages=_.messages,k.title=_.title,k.sessionId=A,k.contextTokenSnapshot=void 0,k.artifactLedger=_.artifactLedger,k.lastAccessed=new Date().toISOString(),lh(k,we,Oe),we.session={...we.session,id:A},q?.update({sessionId:A,messageCount:_.messages.length}),console.log(K.green(`
389
- [Loaded session: ${A}]`)),console.log(K.dim(` Messages: ${_.messages.length}`)),k.runtimeInfo?.workspaceRoot&&console.log(K.dim(` Workspace: ${Tn(k.runtimeInfo)}`)),"loaded"}return"missing"},"loadSession"),listSessions:i(async()=>{let A=await r.list(k.gitRoot??void 0);if(A.length===0){console.log(K.dim(`
390
- [No saved sessions]`));return}console.log(K.bold(`
391
- Recent Sessions:
392
- `)),k.runtimeInfo?.workspaceRoot&&(console.log(K.dim(` Current workspace: ${Tn(k.runtimeInfo)}`)),console.log());for(let _ of A.slice(0,10))if(console.log(` ${K.cyan(_.id)} ${K.dim(`(${_.msgCount} messages)`)} ${_.title.slice(0,40)}`),_.runtimeInfo?.workspaceRoot){let ee=k.runtimeInfo?.workspaceRoot===_.runtimeInfo.workspaceRoot?" (current workspace)":"";console.log(K.dim(` workspace: ${Tn(_.runtimeInfo)}${ee}`))}console.log()},"listSessions"),clearHistory:i(()=>{k.messages=[],k.contextTokenSnapshot=void 0},"clearHistory"),printHistory:i(()=>{if(k.messages.length===0){console.log(K.dim(`
393
- [No conversation history]`));return}console.log(K.bold(`
394
- Conversation History:
395
- `));let A=k.messages.slice(-20);for(let _=0;_<A.length;_++){let U=A[_],ee=K.cyan(U.role.padEnd(10)),Oe=typeof U.content=="string"?U.content:"[Complex content]",tt=Oe.slice(0,60).replace(/\n/g," "),Ce=Oe.length>60?"...":"";console.log(` ${(_+1).toString().padStart(2)}. ${ee} ${tt}${Ce}`)}console.log()},"printHistory"),switchProvider:i((A,_)=>{w.provider=A,w.model=_,we.provider=A,we.model=_;let U=_??Kn(A);if(!U)try{U=By(A)?.getModel()??A}catch{U=A}q?.update({provider:A,model:U})},"switchProvider"),setThinking:i(A=>{w.thinking=A,we.thinking=A,w.reasoningMode=A?"auto":"off",we.reasoningMode=w.reasoningMode,q?.update({reasoningMode:w.reasoningMode})},"setThinking"),setReasoningMode:i(A=>{let _=A!=="off";w.reasoningMode=A,w.thinking=_,we.reasoningMode=A,we.thinking=_,q?.update({reasoningMode:A})},"setReasoningMode"),setPermissionMode:i(A=>{w.permissionMode=A,b=A;let _=qt(A)?Le.getGuardrail().getEngine():void 0;q?.update({permissionMode:A,autoModeEngine:_}),A==="auto-in-project"&&g()},"setPermissionMode"),setRepoIntelligenceRuntime:i(A=>{A.mode!==void 0&&(w.repoIntelligenceMode=A.mode,process.env.KODAX_REPO_INTELLIGENCE_MODE=A.mode,we.context={...we.context,repoIntelligenceMode:A.mode}),A.trace!==void 0&&(w.repoIntelligenceTrace=A.trace,A.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,we.context={...we.context,repoIntelligenceTrace:A.trace}),A.endpoint!==void 0&&(w.repointelEndpoint=A.endpoint??void 0,A.endpoint?process.env.KODAX_REPOINTEL_ENDPOINT=A.endpoint:delete process.env.KODAX_REPOINTEL_ENDPOINT),A.bin!==void 0&&(w.repointelBin=A.bin??void 0,A.bin?process.env.KODAX_REPOINTEL_BIN=A.bin:delete process.env.KODAX_REPOINTEL_BIN)},"setRepoIntelligenceRuntime"),deleteSession:i(async A=>{await r.delete?.(A)},"deleteSession"),deleteAllSessions:i(async()=>{await r.deleteAll?.(k.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:i(async()=>{let A=await r.getLineage?.(k.sessionId);if(!A){console.log(K.dim(`
396
- [No session tree available for this session]`));return}let _=Md(vl(A));console.log(K.bold(`
397
- Session Tree:
398
- `));for(let U of _)console.log(` ${U}`);console.log()},"printSessionTree"),switchSessionBranch:i(async A=>{if(!ae("Switching session branches"))return"blocked";let _=await r.setActiveEntry?.(k.sessionId,A,{summarizeCurrentBranch:!0});return _?(k.messages=_.messages,k.title=_.title,k.contextTokenSnapshot=void 0,q?.update({messageCount:k.messages.length}),console.log(K.green(`
399
- [Switched to tree entry: ${A}]`)),console.log(K.dim(` Messages: ${_.messages.length}`)),"switched"):"missing"},"switchSessionBranch"),labelSessionBranch:i(async(A,_)=>{if(!await r.setLabel?.(k.sessionId,A,_))return!1;let ee=_&&_.trim()?`checkpoint label set: ${_.trim()}`:"checkpoint label cleared";return console.log(K.green(`
400
- [${ee}]`)),!0},"labelSessionBranch"),forkSession:i(async A=>{if(!ae("Forking a session branch"))return"blocked";let _=await r.fork?.(k.sessionId,A);return _?(k.sessionId=_.sessionId,k.messages=_.data.messages,k.title=_.data.title,k.contextTokenSnapshot=void 0,k.createdAt=new Date().toISOString(),k.lastAccessed=k.createdAt,lh(k,we,Ua(_.data)??k.runtimeInfo),we.session={...we.session,id:_.sessionId},q?.update({sessionId:_.sessionId,messageCount:k.messages.length}),console.log(K.green(`
401
- [Forked session: ${_.sessionId}]`)),console.log(K.dim(` Messages: ${_.data.messages.length}`)),"forked"):"failed"},"forkSession"),rewindSession:i(async A=>{if(!ae("Rewinding session"))return"blocked";let _=await r.rewind?.(k.sessionId,A);return _?(k.messages=_.messages,k.title=_.title,k.contextTokenSnapshot=void 0,k.lastAccessed=new Date().toISOString(),q?.update({messageCount:k.messages.length}),console.log(K.green(`
402
- [Rewound session${A?` to ${A}`:" to previous turn"}]`)),console.log(K.dim(` Messages: ${_.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:i(()=>dh.current?.()??null,"getCostReport"),getAutoModeStats:i(()=>{if(qt(b))return Le.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:i(A=>{qt(b)&&(Le.getGuardrail().setEngine(A),q?.update({permissionMode:b}))},"setAutoModeEngine"),createKodaXOptions:i(()=>{let A=i((U,ee)=>b!=="plan"?null:wr(U,ee,n??process.cwd()),"planModeBlockCheck"),_=qt(b)?[Le.getGuardrail()]:void 0;return{...we,provider:w.provider,model:w.model,thinking:w.thinking,reasoningMode:w.reasoningMode,guardrails:_,context:{...we.context,planModeBlockCheck:A},events:{...we.events,exitPlanMode:i(async U=>b!=="plan"?"not-in-plan-mode":(await gc(Se,"exit_plan_mode",{plan:U},{isProtectedPath:!1,permissionMode:b})).confirmed?(w.permissionMode="accept-edits",b="accept-edits",q?.update({permissionMode:"accept-edits"}),!0):!1,"exitPlanMode"),beforeToolExecute:i(async(U,ee)=>{let Oe=b,tt=Ro(Oe);if(Oe==="plan"){let Ce=wr(U,ee,n??process.cwd());if(Ce)return console.log(K.yellow(Ce)),`${Ce} Do not modify files while planning. Finish the plan first, then call exit_plan_mode with the finalized plan \u2014 the user will review and approve or reject.`}if(U==="bash"){let Ce=ee.command??"";if(Pn(Ce))return!0}if(n&&wn.has(U)){let Ce=ee.path;if(Ce&&Qn(Ce,n))return(await gc(Se,U,ee,{isProtectedPath:!0,permissionMode:Oe})).confirmed?!0:(console.log(K.dim("[Cancelled] Operation on protected path requires confirmation")),!1)}if(tt.has(U)){if(Oe==="accept-edits"&&U==="bash"&&await Fr(U,ee,P,J))return!0;let Ce=await gc(Se,U,ee,{isOutsideProject:ee._outsideProject===!0,reason:ee._reason,permissionMode:Oe});if(!Ce.confirmed)return console.log(K.dim("[Cancelled] Operation cancelled by user")),!1;Ce.always&&Oe==="accept-edits"&&(Iu(U,ee,!1),P=ns())}return!0},"beforeToolExecute")}}},"createKodaXOptions"),reloadAgentsFiles:i(async()=>(xe=await ne(),xe),"reloadAgentsFiles"),readline:Se,ui:new zd(Se)};Se.on("SIGINT",async()=>{console.log(K.dim(`
403
-
404
- [Press /exit to quit]`)),Se.prompt()});let et=i(()=>{q?.hide(),o?.shutdown(),Se.close()},"cleanup");process.on("exit",et),process.on("SIGTERM",et);let ie=i(async(A,_)=>{if(!A||typeof A!="object"||!A.invocation)return;let U=await Pd({...we,provider:w.provider,thinking:w.thinking,reasoningMode:w.reasoningMode},A.invocation,_,ee=>console.log(K.dim(`
405
- ${ee}`)));if(U.mode==="manual"){U.manualOutput&&console.log(K.yellow(`
406
- ${U.manualOutput}
407
- `)),await U.finalize();return}if(!U.prompt||!U.options){await U.finalize();return}try{let ee=U.mode==="fork"?[]:k.messages,Oe=await d0(U.options,k,U.prompt,ee);if(U.mode==="fork"){let tt=Ba(Oe.messages);tt.trim()&&(console.log(`
408
- ${tt}
409
- `),k.messages.push({role:"assistant",content:tt}))}else k.messages=Oe.messages,k.contextTokenSnapshot=Oe.contextTokenSnapshot;if(q?.update({messageCount:k.messages.length}),k.messages.length>0){let tt=Xd(k.messages);k.title=tt,await r.save(k.sessionId,{messages:k.messages,title:tt,gitRoot:k.gitRoot??"",runtimeInfo:k.runtimeInfo})}await U.finalize()}catch(ee){throw await U.finalize(ee instanceof Error?ee:new Error(String(ee))),ee}},"handleCommandResult");for(;ft;){if(O&&F){O=!1,Se.resume();let Ce=await g0(F);if(Ce&&Ce.trim()&&Ce!==F){console.log(K.dim(`
410
- [Edited message ready to send]`));let Be=Ce.trim();tr(k);let ve=ss(Be);if(ve){let De=await as(ve,k,Ze,w);await ie(De,Be);continue}let Q=await fh(Be);if(Be.startsWith("!")&&sc(Q))continue;let D=ac(Q,we.context?.executionCwd??process.cwd());for(let De of D.warnings)console.log(K.yellow(`
411
- ${De}`));k.messages.push({role:"user",content:D.messageContent}),F=Be,q?.update({messageCount:k.messages.length});try{let De=await da({...we,provider:w.provider,thinking:w.thinking,reasoningMode:w.reasoningMode,session:{...we.session,initialMessages:k.lineage?Rt(k.lineage,k.lineage.activeEntryId):k.messages},context:{...we.context,taskSurface:"repl",planModeBlockCheck:i((Pe,Wt)=>b!=="plan"?null:wr(Pe,Wt,n??process.cwd()),"planModeBlockCheck"),...D.inputArtifacts.length>0?{inputArtifacts:D.inputArtifacts}:{}}},Q);if(k.messages=De.messages,k.contextTokenSnapshot=De.contextTokenSnapshot,k.artifactLedger=ua(k.artifactLedger??[],De.artifactLedger??Jf(De.messages)),k.messages.length>0){let Pe=Xd(k.messages);k.title=Pe,await r.save(k.sessionId,{messages:k.messages,title:Pe,gitRoot:k.gitRoot??"",runtimeInfo:k.runtimeInfo,artifactLedger:k.artifactLedger})}}catch(De){let Pe=De instanceof Error?De:new Error(String(De));k.messages.pop(),console.log(K.red(`
412
- [Error] ${Pe.message}`))}continue}else Ce===F&&console.log(K.dim(`
413
- [No changes made, continuing...]`))}let A=mO(w.permissionMode,w),_=await pO(Se,A);if(!ft)break;let U=_.trim();if(!U)continue;tr(k);let ee=ss(U);if(ee){let Ce=await as(ee,k,Ze,w);await ie(Ce,U);continue}let Oe=await fh(U);if(U.startsWith("!")&&sc(Oe))continue;let tt=ac(Oe,we.context?.executionCwd??process.cwd());for(let Ce of tt.warnings)console.log(K.yellow(`
414
- ${Ce}`));k.messages.push({role:"user",content:tt.messageContent}),F=U,q?.update({messageCount:k.messages.length});try{let Ce=await d0(we,k,Oe,k.messages,tt.inputArtifacts);if(k.messages=Ce.messages,k.contextTokenSnapshot=Ce.contextTokenSnapshot,k.artifactLedger=ua(k.artifactLedger??[],Ce.artifactLedger??Jf(Ce.messages)),q?.update({messageCount:k.messages.length}),k.messages.length>0){let Be=Xd(k.messages);k.title=Be,await r.save(k.sessionId,{messages:k.messages,title:Be,gitRoot:k.gitRoot??"",runtimeInfo:k.runtimeInfo,artifactLedger:k.artifactLedger})}}catch(Ce){let Be=Ce instanceof Error?Ce:new Error(String(Ce));k.messages.pop(),Be.message.includes("rate limit")||Be.message.includes("Rate limit")?(console.log(K.yellow(`
415
- [Rate Limit] ${Be.message}`)),console.log(K.dim(`Suggestion: Wait a moment and try again, or switch provider with /mode
416
- `))):Be.message.includes("API key")||Be.message.includes("not configured")?(console.log(K.red(`
417
- [Configuration Error] ${Be.message}`)),console.log(K.dim(`Suggestion: Set the required API key environment variable
418
- `))):Be.message.includes("network")||Be.message.includes("ECONNREFUSED")||Be.message.includes("ETIMEDOUT")?(console.log(K.red(`
419
- [Network Error] ${Be.message}`)),console.log(K.dim(`Suggestion: Check your internet connection and try again
420
- `))):Be.message.includes("token")||Be.message.includes("context too long")?(console.log(K.yellow(`
421
- [Context Error] ${Be.message}`)),console.log(K.dim(`Suggestion: Use /clear to start a fresh conversation
422
- `))):(console.log(K.red(`
423
- [Error] ${Be.message}`)),console.log(K.dim(`Your message was not sent. Please try again.
424
- `)))}}}i(fO,"runInteractiveMode");function mO(e,t){let n=yc(),r=e==="plan"?K.hex(n.colors.warning):K.hex(n.colors.success),o=t.model??Kn(t.provider)??t.provider,s=Es();if(s<60){let c=e==="plan"?"?":n.symbols.prompt;return r(`${c} `)}else if(s<100){let c=t.reasoningMode!=="off"?t.reasoningMode[0]?.toUpperCase()??"R":"",l=c?K.hex(n.colors.dim)(`[${c}]`):"";return r(`kodax:${e}${l}> `)}let a=t.reasoningMode!=="off"?K.hex(n.colors.info)(`[reason:${t.reasoningMode}]`):"";return r(`kodax:${e} (${t.provider}:${o})${a}> `)}i(mO,"getPrompt");async function pO(e,t){let n=yc(),r=[],o=await new Promise(a=>{e.question(t,a)});if(o===""||o.toLowerCase()==="/e")return await g0(r.join(`
425
- `));for(r.push(o);gO(r.join(`
426
- `));){let a=K.hex(n.colors.dim)("... "),c=await new Promise(l=>{e.question(a,l)});r.push(c)}return r.join(`
427
- `).replace(/\\\n/g,`
428
- `)}i(pO,"askInput");async function g0(e){let t=wc.join(p0.tmpdir(),"kodax"),n=wc.join(t,`input-${Date.now()}-${Math.random().toString(36).slice(2)}.txt`);try{await xc.promises.mkdir(t,{recursive:!0}),await xc.promises.writeFile(n,e,"utf-8");let r=process.env.EDITOR??process.env.VISUAL??(process.platform==="win32"?"notepad.exe":"nano");if(r.includes("/")||r.includes("\\")||r.includes("&&")||r.includes("|")){let a=wc.basename(r);console.log(K.yellow(`
429
- [Security] Editor path sanitized: ${a}`)),r=a}console.log(K.dim(`
430
- [Opening editor: ${r}]`));let o=process.platform==="win32"&&(r.toLowerCase()==="notepad"||r.toLowerCase()==="notepad.exe");return console.log(o?K.dim(`Note: Please close Notepad manually after editing to continue.
431
- `):K.dim(`Save and close the editor to continue...
432
- `)),m0.spawnSync(r,[n],{stdio:"inherit",timeout:3e5,shell:!1}),(await xc.promises.readFile(n,"utf-8")).trim()}catch(r){let o=r instanceof Error?r:new Error(String(r));return console.log(K.red(`
433
- [Editor Error] ${o.message}`)),e}finally{try{await xc.promises.unlink(n)}catch{}}}i(g0,"openExternalEditor");function gO(e){if(e.endsWith("\\")&&!e.endsWith("\\\\"))return!0;let t={"(":0,"[":0,"{":0},n={")":"(","]":"[","}":"{"},r=null;for(let o=0;o<e.length;o++){let s=e[o];if((s==='"'||s==="'"||s==="`")&&e[o-1]!=="\\"){r===s?r=null:r===null&&(r=s);continue}if(!r){if(s in t)t[s]++;else if(s in n){let a=n[s];a&&t[a]--}}}return!!(Object.values(t).some(o=>o>0)||r)}i(gO,"needsContinuation");async function fh(e){let t=e.match(/@[\w./-]+/g);if(t)for(let n of t){let r=n.slice(1)}if(e.startsWith("!")){let n=e.slice(1).trim();return Id(n,{cwd:process.cwd()})}return e}i(fh,"processSpecialSyntax");async function d0(e,t,n,r=t.messages,o){let s={...e.events??{},getCostReport:dh};return da({...e,events:s,session:{...e.session,initialMessages:r},context:{...e.context,contextTokenSnapshot:t.contextTokenSnapshot,taskSurface:"repl",...o&&o.length>0?{inputArtifacts:[...o]}:{}}},n)}i(d0,"runAgentRound");function Xd(e){return ts(e)}i(Xd,"extractTitle");function hO(e,t,n,r){let o=yc(),s=e.model??Kn(e.provider)??e.provider;if(console.log(K.hex(o.colors.primary)(`
434
- `+`
435
- \u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557
436
- \u2588\u2588\u2551 \u2588\u2588\u2554\u255D \u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u255A\u2588\u2588\u2557\u2588\u2588\u2554\u255D
437
- \u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2554\u255D
438
- \u2588\u2588\u2554\u2550\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551 \u2588\u2588\u2554\u2588\u2588\u2557
439
- \u2588\u2588\u2551 \u2588\u2588\u2557 \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u255D \u2588\u2588\u2557
440
- \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D`)),console.log(K.hex(o.colors.text)(`
441
- v${ki} | AI Coding Agent | ${e.provider}:${s}`)),console.log(K.hex(o.colors.dim)(`
442
- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500`)),console.log(K.hex(o.colors.dim)(" Mode: ")+K.hex(o.colors.primary)(t)+K.hex(o.colors.dim)(" | Reasoning: ")+(e.reasoningMode==="off"?K.hex(o.colors.dim)("off"):K.hex(o.colors.success)(e.reasoningMode))),n){let c=Math.round(n.contextWindow/1e3),l=Math.round(n.contextWindow*n.triggerPercent/100/1e3),u=n.enabled?K.hex(o.colors.success)("on"):K.hex(o.colors.dim)("off");console.log(K.hex(o.colors.dim)(` Context: ${c}k | Compaction: `)+u+K.hex(o.colors.dim)(` @ ${n.triggerPercent}% (${l}k)`))}if(console.log(K.hex(o.colors.dim)(` \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
443
- `)),r){let c=r.length;console.log(K.hex(o.colors.dim)(" Project Rules: ")+K.hex(o.colors.success)(`${c} rule file(s) loaded`)),console.log(K.hex(o.colors.dim)(` Use /reload to refresh rules
444
- `))}console.log(K.hex(o.colors.dim)(" Quick tips:")),console.log(K.hex(o.colors.primary)(" /help ")+K.hex(o.colors.dim)("Show all commands")),console.log(K.hex(o.colors.primary)(" /mode ")+K.hex(o.colors.dim)("Switch permission mode")),console.log(K.hex(o.colors.primary)(" /clear ")+K.hex(o.colors.dim)("Clear conversation")),console.log(K.hex(o.colors.primary)(" @path ")+K.hex(o.colors.dim)("Attach image to context")),console.log(K.hex(o.colors.primary)(" !cmd ")+K.hex(o.colors.dim)("Run read-only shell command")),console.log(K.hex(o.colors.dim)(`
445
- Keyboard: Tab (complete) | Esc+Esc (edit last) | Ctrl+T (reasoning) | Ctrl+E (editor) | Ctrl+R (history)
446
- `))}i(hO,"printStartupBanner");import Yd from"node:fs";import yO from"node:path";function xO(){let e=Qd();return Jd(e).map(n=>qd(n))}i(xO,"listCustomProviders");function wO(e){if(typeof e!="string"||e.length===0)return;let t=Jd(Qd()).find(n=>n.name===e);return t?qd(t):void 0}i(wO,"getCustomProviderConfig");function SO(e){Ny(e);let t=qd(e),n=Qd(),r=Jd(n),o=r.findIndex(a=>a.name===t.name),s=o>=0?r.map((a,c)=>c===o?t:a):[...r,t];return y0({...n,customProviders:s}),Xf(s),qd(t)}i(SO,"upsertCustomProvider");function TO(e){if(typeof e!="string"||e.length===0)return!1;let t=Qd(),n=Jd(t),r=n.filter(o=>o.name!==e);return r.length===n.length?!1:(y0({...t,customProviders:r}),Xf(r),!0)}i(TO,"removeCustomProvider");function h0(){return jn("config.json")}i(h0,"configFilePath");function Qd(){let e=h0();if(!Yd.existsSync(e))return{};try{let t=JSON.parse(Yd.readFileSync(e,"utf-8"));return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}i(Qd,"readWholeConfig");function y0(e){let t=h0();Yd.mkdirSync(yO.dirname(t),{recursive:!0}),Yd.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}i(y0,"writeWholeConfig");function Jd(e){let t=e.customProviders;return Array.isArray(t)?t:[]}i(Jd,"extractCustomProviders");function qd(e){return structuredClone(e)}i(qd,"cloneCustomProvider");import Zd from"node:fs";import CO from"node:path";function bO(){let e=ef();return RO(tf(e))}i(bO,"listMcpServers");function vO(e){if(typeof e!="string"||e.length===0)return;let n=tf(ef())[e];return n?mh(n):void 0}i(vO,"getMcpServerConfig");function IO(e,t){if(typeof e!="string"||e.length===0)throw new TypeError("upsertMcpServer: name must be a non-empty string");x0(e,t);let n=mh(t),r=ef(),s={...tf(r),[e]:n};return S0({...r,mcpServers:s}),mh(n)}i(IO,"upsertMcpServer");function kO(e){if(typeof e!="string"||e.length===0)return!1;let t=ef(),n=tf(t);if(!(e in n))return!1;let r={};for(let o of Object.keys(n))o!==e&&(r[o]=n[o]);return S0({...t,mcpServers:r}),!0}i(kO,"removeMcpServer");function x0(e,t){if(typeof e!="string"||e.length===0)throw new TypeError("MCP server name must be a non-empty string");if(!t||typeof t!="object"||Array.isArray(t))throw new TypeError(`MCP server "${e}": config must be a plain object`);let n=t.type??"stdio";if(!["stdio","sse","streamable-http"].includes(n))throw new TypeError(`MCP server "${e}": unknown transport type "${n}" (expected stdio | sse | streamable-http)`);if(n==="stdio"){if(typeof t.command!="string"||t.command.length===0)throw new TypeError(`MCP server "${e}": stdio transport requires a non-empty "command"`)}else if(typeof t.url!="string"||t.url.length===0)throw new TypeError(`MCP server "${e}": "${n}" transport requires a non-empty "url"`);if(t.connect!==void 0&&!["lazy","prewarm","disabled"].includes(t.connect))throw new TypeError(`MCP server "${e}": unknown connect mode "${t.connect}" (expected lazy | prewarm | disabled)`)}i(x0,"validateMcpServerConfig");function w0(){return jn("config.json")}i(w0,"configFilePath");function ef(){let e=w0();if(!Zd.existsSync(e))return{};try{let t=JSON.parse(Zd.readFileSync(e,"utf-8"));return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}i(ef,"readWholeConfig");function S0(e){let t=w0();Zd.mkdirSync(CO.dirname(t),{recursive:!0}),Zd.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}i(S0,"writeWholeConfig");function tf(e){let t=e.mcpServers;return!t||typeof t!="object"||Array.isArray(t)?{}:t}i(tf,"extractMcpServers");function mh(e){return structuredClone(e)}i(mh,"cloneMcpServerConfig");function RO(e){return structuredClone(e)}i(RO,"cloneMcpServers");import Dn from"fs/promises";import nf from"fs";import rf from"path";import v0 from"chalk";var EO=new Set(["user","assistant","system"]);function Tt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}i(Tt,"isRecord");function Xo(e){if(e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return!0;if(Array.isArray(e))return e.every(Xo);if(!Tt(e))return!1;let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null?!1:Object.values(e).every(Xo)}i(Xo,"isKodaXJsonValue");function T0(e){return Tt(e)&&typeof e.id=="string"&&typeof e.extensionId=="string"&&typeof e.type=="string"&&typeof e.ts=="number"&&(e.data===void 0||Xo(e.data))&&(e.dedupeKey===void 0||typeof e.dedupeKey=="string")}i(T0,"isKodaXExtensionSessionRecord");function C0(e){return Tt(e)?Object.values(e).every(t=>Tt(t)?Object.values(t).every(Xo):!1):!1}i(C0,"isKodaXExtensionSessionState");function MO(e){if(!Tt(e)||typeof e.type!="string")return!1;switch(e.type){case"text":return typeof e.text=="string";case"tool_use":return typeof e.id=="string"&&typeof e.name=="string"&&Tt(e.input);case"tool_result":return typeof e.tool_use_id=="string"&&typeof e.content=="string"&&(e.is_error===void 0||typeof e.is_error=="boolean");case"image":return typeof e.path=="string"&&(e.mediaType===void 0||typeof e.mediaType=="string");case"thinking":return typeof e.thinking=="string"&&(e.signature===void 0||typeof e.signature=="string");case"redacted_thinking":return typeof e.data=="string";default:return!1}}i(MO,"isKodaXContentBlock");function ph(e){return!Tt(e)||typeof e.role!="string"||!EO.has(e.role)?!1:typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(MO)}i(ph,"isKodaXMessage");function b0(e){return Tt(e)?(e.lastError===void 0||typeof e.lastError=="string")&&(e.lastErrorTime===void 0||typeof e.lastErrorTime=="number")&&(e.consecutiveErrors===void 0||typeof e.consecutiveErrors=="number"):!1}i(b0,"isSessionErrorMetadata");function AO(e){return Tt(e)&&typeof e.type=="string"&&(e.type==="user"||e.type==="assistant"||e.type==="system"||e.type==="thinking"||e.type==="error"||e.type==="info"||e.type==="hint")&&typeof e.text=="string"}i(AO,"isKodaXSessionUiHistoryItem");function gh(e){return Array.isArray(e)&&e.every(AO)}i(gh,"isKodaXSessionUiHistory");function _O(e){return!Tt(e)||e._type!=="meta_update"?!1:(e.title===void 0||typeof e.title=="string")&&(e.activeEntryId===void 0||typeof e.activeEntryId=="string"||e.activeEntryId===null)&&(e.activeMessageCount===void 0||typeof e.activeMessageCount=="number")&&(e.uiHistory===void 0||gh(e.uiHistory))&&(e.scope===void 0||typeof e.scope=="string")}i(_O,"isPersistedMetaUpdateLine");function I0(e,t){t!==0&&process.stderr.write(`[KodaX] Skipped ${t} malformed session record(s) from ${rf.basename(e)}.
447
- `)}i(I0,"warnMalformedSessionData");function qr(e){process.stderr.write(`${e}
448
- `)}i(qr,"writeStorageNotice");function k0(e){return{_type:"extension_record",...e}}i(k0,"toExtensionRecordLine");function R0(e){return{_type:"lineage_entry",entry:e}}i(R0,"toLineageEntryLine");function E0(e){return{_type:"artifact_ledger_entry",entry:e}}i(E0,"toArtifactLedgerLine");function PO(e){return Tt(e)&&e._type==="extension_record"&&T0(e)}i(PO,"isPersistedExtensionRecordLine");function $O(e){return Tt(e)&&typeof e.id=="string"&&(e.parentId===null||typeof e.parentId=="string")&&typeof e.timestamp=="string"&&typeof e.type=="string"}i($O,"hasEntryBase");function LO(e){if(!$O(e))return!1;let t=e;switch(t.type){case"message":return ph(t.message);case"compaction":return typeof t.summary=="string"&&(t.firstKeptEntryId===void 0||typeof t.firstKeptEntryId=="string")&&(t.tokensBefore===void 0||typeof t.tokensBefore=="number");case"branch_summary":return typeof t.summary=="string"&&(t.fromId===void 0||typeof t.fromId=="string")&&(t.details===void 0||Xo(t.details));case"label":return typeof t.targetId=="string"&&(t.label===void 0||typeof t.label=="string");case"archive_marker":return typeof t.archiveBatchId=="string"&&typeof t.archivedEntryCount=="number"&&typeof t.summary=="string";default:return!1}}i(LO,"isKodaXSessionEntry");function OO(e){return Tt(e)&&e._type==="lineage_entry"&&LO(e.entry)}i(OO,"isPersistedLineageEntryLine");function DO(e){return Tt(e)&&typeof e.id=="string"&&typeof e.kind=="string"&&typeof e.target=="string"&&typeof e.timestamp=="string"&&(e.sourceTool===void 0||typeof e.sourceTool=="string")&&(e.action===void 0||typeof e.action=="string")&&(e.displayTarget===void 0||typeof e.displayTarget=="string")&&(e.summary===void 0||typeof e.summary=="string")&&(e.sessionEntryId===void 0||typeof e.sessionEntryId=="string")&&(e.metadata===void 0||Xo(e.metadata))}i(DO,"isKodaXSessionArtifactLedgerEntry");function NO(e){return Tt(e)&&e._type==="artifact_ledger_entry"&&DO(e.entry)}i(NO,"isPersistedArtifactLedgerLine");function A0(e){return Tt(e)&&(e.canonicalRepoRoot===void 0||typeof e.canonicalRepoRoot=="string")&&(e.workspaceRoot===void 0||typeof e.workspaceRoot=="string")&&(e.executionCwd===void 0||typeof e.executionCwd=="string")&&(e.branch===void 0||typeof e.branch=="string")&&(e.workspaceKind===void 0||e.workspaceKind==="detected"||e.workspaceKind==="managed")}i(A0,"isKodaXSessionRuntimeInfo");function M0(e,t){return process.platform==="win32"||process.platform==="darwin"?e.toLowerCase()===t.toLowerCase():e===t}i(M0,"pathsEqual");function BO(e){for(let t=e.length-1;t>=0;t-=1){let n=e[t];if(n&&n.type!=="label")return n.id}return null}i(BO,"getLastNavigableEntryId");function HO(e){if(e.lineageEntries.length>0)return{version:2,activeEntryId:e.meta?.activeEntryId??BO(e.lineageEntries),entries:e.lineageEntries};if(e.legacyMessages.length!==0)return gn(e.legacyMessages)}i(HO,"buildLineage");function FO(e){let t=HO(e);return{createdAt:e.meta?.createdAt,data:{messages:t?Rt(t):[...e.legacyMessages],title:e.meta?.title??"",gitRoot:e.meta?.gitRoot??"",runtimeInfo:A0(e.meta?.runtimeInfo)?{...e.meta.runtimeInfo}:void 0,scope:e.meta?.scope??"user",uiHistory:gh(e.meta?.uiHistory)?e.meta.uiHistory.map(n=>({...n})):void 0,errorMetadata:b0(e.meta?.errorMetadata)?{...e.meta.errorMetadata}:void 0,extensionState:C0(e.meta?.extensionState)?e.meta?.extensionState:void 0,extensionRecords:e.extensionRecords.map(n=>({...n})),lineage:t,artifactLedger:e.artifactLedger.map(n=>({...n,metadata:n.metadata?structuredClone(n.metadata):void 0}))}}}i(FO,"buildSessionData");function WO(e,t,n,r){return{_type:"meta",title:t.title,id:e,gitRoot:t.gitRoot,runtimeInfo:t.runtimeInfo?{...t.runtimeInfo}:void 0,createdAt:r??new Date().toISOString(),scope:t.scope??"user",uiHistory:t.uiHistory,errorMetadata:t.errorMetadata,extensionState:t.extensionState,extensionRecordCount:t.extensionRecords?.length??0,artifactLedgerCount:t.artifactLedger?.length??0,lineageVersion:n?.version,activeEntryId:n?.activeEntryId,lineageEntryCount:n?.entries.length??0,activeMessageCount:n?go(n):t.messages.length}}i(WO,"createSessionMeta");async function UO(e){if(!nf.existsSync(e))return null;let n=(await Dn.readFile(e,"utf-8")).trim();if(!n)return null;let r={legacyMessages:[],lineageEntries:[],artifactLedger:[],extensionRecords:[],malformedCount:0},o=n.split(`
449
- `);for(let s=0;s<o.length;s+=1)try{let a=JSON.parse(o[s]);if(s===0&&Tt(a)&&a._type==="meta"){r.meta=a;continue}if(_O(a)){r.meta&&(a.title!==void 0&&(r.meta.title=a.title),a.activeEntryId!==void 0&&(r.meta.activeEntryId=a.activeEntryId),a.activeMessageCount!==void 0&&(r.meta.activeMessageCount=a.activeMessageCount),a.uiHistory!==void 0&&(r.meta.uiHistory=a.uiHistory),a.scope!==void 0&&(r.meta.scope=a.scope));continue}if(OO(a)){r.lineageEntries.push(a.entry);continue}if(NO(a)){r.artifactLedger.push(a.entry);continue}if(PO(a)){r.extensionRecords.push({id:a.id,extensionId:a.extensionId,type:a.type,ts:a.ts,data:a.data,dedupeKey:a.dedupeKey});continue}if(ph(a)){r.legacyMessages.push(a);continue}r.malformedCount+=1}catch{r.malformedCount+=1}return r}i(UO,"readPersistedSessionFile");var Sc=class{static{i(this,"FileSessionStorage")}writeQueues=new Map;serializedWrite(t,n){let o=(this.writeQueues.get(t)??Promise.resolve()).then(n,()=>n());return this.writeQueues.set(t,o),o}appendState=new Map;syncAppendState(t,n,r){let o=this.appendState.get(t);this.appendState.set(t,{lineageCount:n.lineage?.entries.length??o?.lineageCount??0,artifactCount:n.artifactLedger?.length??o?.artifactCount??0,extensionCount:n.extensionRecords?.length??o?.extensionCount??0,metaUpdateCount:r??o?.metaUpdateCount??0})}getSessionFilePath(t){return rf.join(Et,`${t}.jsonl`)}getArchiveFilePath(t){return rf.join(Et,`${t}.archive.jsonl`)}async readSession(t){let n=this.getSessionFilePath(t),r=await UO(n);return r?(I0(n,r.malformedCount),FO(r)):null}async writeSessionInternal(t,n,r){await Dn.mkdir(Et,{recursive:!0});let o=this.getSessionFilePath(t),s=`${o}.${process.pid}.${Date.now()}.tmp`,a=n.lineage??gn(n.messages),c=WO(t,n,a,r);try{let l=await Dn.open(s,"w");try{await l.write(JSON.stringify(c)+`
450
- `);for(let u of a.entries)await l.write(JSON.stringify(R0(u))+`
451
- `);for(let u of n.artifactLedger??[])await l.write(JSON.stringify(E0(u))+`
452
- `);for(let u of n.extensionRecords??[])await l.write(JSON.stringify(k0(u))+`
453
- `)}finally{await l.close()}await Dn.rename(s,o)}finally{nf.existsSync(s)&&await Dn.unlink(s).catch(()=>{})}}async mergeAndWriteInternal(t,n){let r=await this.readSession(t),o={...n,scope:n.scope??r?.data.scope??"user",uiHistory:n.uiHistory??r?.data.uiHistory,extensionState:n.extensionState??r?.data.extensionState,artifactLedger:n.artifactLedger??r?.data.artifactLedger,extensionRecords:n.extensionRecords??r?.data.extensionRecords,runtimeInfo:n.runtimeInfo??r?.data.runtimeInfo,errorMetadata:n.errorMetadata??r?.data.errorMetadata,lineage:n.lineage??gn(n.messages,r?.data.lineage)};await this.writeSessionInternal(t,o,r?.createdAt),this.syncAppendState(t,o)}async appendSessionDelta(t,n){let r=this.getSessionFilePath(t);if(!nf.existsSync(r)||!n.lineage){await this.save(t,n);return}await this.serializedWrite(t,async()=>{let s=this.appendState.get(t);if(!s){await this.mergeAndWriteInternal(t,n);return}if(n.lineage.entries.length<s.lineageCount||(n.artifactLedger?.length??0)<s.artifactCount){await this.mergeAndWriteInternal(t,n);return}let a=n.lineage.entries.slice(s.lineageCount),c=(n.artifactLedger??[]).slice(s.artifactCount),l=(n.extensionRecords??[]).slice(s.extensionCount),u=[];for(let p of a)u.push(JSON.stringify(R0(p)));for(let p of c)u.push(JSON.stringify(E0(p)));for(let p of l)u.push(JSON.stringify(k0(p)));let m={_type:"meta_update",title:n.title,activeEntryId:n.lineage.activeEntryId,activeMessageCount:go(n.lineage),...n.uiHistory!==void 0?{uiHistory:n.uiHistory}:{},...n.scope!==void 0?{scope:n.scope}:{}};u.push(JSON.stringify(m)),u.length>0&&await Dn.appendFile(r,`
454
- `+u.join(`
455
- `),"utf-8"),this.syncAppendState(t,n,s.metaUpdateCount+1)});let o=this.appendState.get(t);o&&this.shouldRunMaintenance(o)&&this.runMaintenance(t).catch(s=>{process.stderr.write(`[KodaX] Archive maintenance failed: ${String(s)}
456
- `)})}shouldRunMaintenance(t){return t.metaUpdateCount>=50||t.lineageCount>500}async runMaintenance(t){await this.serializedWrite(t,async()=>{let n=await this.readSession(t);if(!n?.data.lineage)return;let{slimmedLineage:r,archivedEntries:o,archiveBatchId:s}=Jy(n.data.lineage);if(o.length===0){await this.writeSessionInternal(t,n.data,n.createdAt),this.syncAppendState(t,n.data,0);return}let a=this.getArchiveFilePath(t),c=await Dn.open(a,"a");try{await c.write(JSON.stringify({_type:"archive_batch",archiveBatchId:s,sessionId:t,archivedAt:new Date().toISOString(),entryCount:o.length})+`
457
- `);for(let u of o)await c.write(JSON.stringify({_type:"archived_entry",archiveBatchId:s,entry:u})+`
458
- `)}finally{await c.close()}let l={...n.data,lineage:r};await this.writeSessionInternal(t,l,n.createdAt),this.syncAppendState(t,l,0)})}async save(t,n){await this.serializedWrite(t,async()=>{await this.mergeAndWriteInternal(t,n)})}async load(t){let n=await this.readSession(t);if(!n)return null;this.syncAppendState(t,n.data);let{data:r,createdAt:o}=n,s=this.getSessionFilePath(t),a=await yo(),c=await os(),l=Ua(r);if((c.canonicalRepoRoot&&l?.canonicalRepoRoot&&!$u(c,l)||a&&r.gitRoot&&a!==r.gitRoot&&!$u(c,{canonicalRepoRoot:r.gitRoot}))&&(qr(v0.yellow(`
459
- [Warning] Session project mismatch:`)),c.workspaceRoot&&qr(` Current workspace: ${c.workspaceRoot}`),l?.workspaceRoot&&qr(` Session workspace: ${l.workspaceRoot}`),c.canonicalRepoRoot&&qr(` Current repo: ${c.canonicalRepoRoot}`),l?.canonicalRepoRoot?qr(` Session repo: ${l.canonicalRepoRoot}`):r.gitRoot&&qr(` Session repo: ${r.gitRoot}`),qr(` Continuing anyway...
460
- `)),r.errorMetadata?.consecutiveErrors&&r.errorMetadata.consecutiveErrors>0){let m=Wy(r.messages);if(m!==r.messages){qr(v0.cyan("[Session Recovery] Cleaned incomplete tool calls from previous session"));let p={...r,messages:m,errorMetadata:{...r.errorMetadata,consecutiveErrors:0},lineage:gn(m,r.lineage)};return await this.serializedWrite(t,async()=>{await this.writeSessionInternal(t,p,o),this.syncAppendState(t,p)}),p}}return I0(s,0),r}async getLineage(t){return(await this.readSession(t))?.data.lineage??null}async setActiveEntry(t,n,r){let o=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=Ti(s.data.lineage,n,r);if(!a)return;let c={...s.data,messages:Rt(a),lineage:a};await this.writeSessionInternal(t,c,s.createdAt),this.syncAppendState(t,c),o=c}),o}async rewind(t,n){let r=null;return await this.serializedWrite(t,async()=>{let o=await this.readSession(t);if(!o?.data.lineage)return;let s=n??bi(o.data.lineage);if(!s)return;let a=vi(o.data.lineage,s);if(!a)return;let c={...o.data,messages:Rt(a),lineage:a};await this.writeSessionInternal(t,c,o.createdAt),this.syncAppendState(t,c),r=c}),r}async setLabel(t,n,r){let o=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=Ci(s.data.lineage,n,r);if(!a)return;let c={...s.data,lineage:a};await this.writeSessionInternal(t,c,s.createdAt),this.syncAppendState(t,c),o=c}),o}async fork(t,n,r){let o=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=Ii(s.data.lineage,n);if(!a)return;let c=r?.sessionId??await Si(),l={messages:Rt(a),title:r?.title??s.data.title,gitRoot:s.data.gitRoot,uiHistory:s.data.uiHistory?s.data.uiHistory.map(u=>({...u})):void 0,extensionState:s.data.extensionState?structuredClone(s.data.extensionState):void 0,artifactLedger:s.data.artifactLedger?structuredClone(s.data.artifactLedger):void 0,extensionRecords:s.data.extensionRecords?structuredClone(s.data.extensionRecords):void 0,lineage:a};await this.writeSessionInternal(c,l),o={sessionId:c,data:l}}),o}async list(t){await Dn.mkdir(Et,{recursive:!0});let n=t??await yo(),r=await os({cwd:n??process.cwd()}),o=(await Dn.readdir(Et)).filter(a=>a.endsWith(".jsonl")),s=[];for(let a of o)try{let c=(await Dn.readFile(rf.join(Et,a),"utf-8")).trim(),l=c.split(`
461
- `)[0];if(!l)continue;let u=JSON.parse(l);if(Tt(u)&&u._type==="meta"){let m=typeof u.gitRoot=="string"?u.gitRoot:"",p=A0(u.runtimeInfo)?u.runtimeInfo:void 0,g=u.scope==="managed-task-worker"?"managed-task-worker":"user";if(n){let w=$u(r,p),b=p?.workspaceRoot?M0(p.workspaceRoot,r.workspaceRoot??""):M0(m,n);if(!w&&!b)continue}if(g!=="user")continue;let h=c.split(`
462
- `).length,x=typeof u.extensionRecordCount=="number"&&u.extensionRecordCount>0?u.extensionRecordCount:0,C=typeof u.activeMessageCount=="number"&&u.activeMessageCount>=0?u.activeMessageCount:Math.max(0,h-1-x);s.push({id:a.replace(".jsonl",""),title:typeof u.title=="string"?u.title:"",msgCount:C,createdAt:typeof u.createdAt=="string"?u.createdAt:void 0,runtimeInfo:p?{...p}:void 0})}else{let m=c.split(`
463
- `).length;s.push({id:a.replace(".jsonl",""),title:"",msgCount:m})}}catch{continue}return s.sort((a,c)=>{let l=a.createdAt?Date.parse(a.createdAt):Number.NaN,u=c.createdAt?Date.parse(c.createdAt):Number.NaN;return Number.isFinite(l)&&Number.isFinite(u)&&l!==u?u-l:Number.isFinite(u)&&!Number.isFinite(l)?1:Number.isFinite(l)&&!Number.isFinite(u)?-1:c.id.localeCompare(a.id)}).slice(0,10).map(({id:a,title:c,msgCount:l,runtimeInfo:u})=>u?{id:a,title:c,msgCount:l,runtimeInfo:u}:{id:a,title:c,msgCount:l})}async delete(t){let n=this.getSessionFilePath(t);nf.existsSync(n)&&await Dn.unlink(n)}async deleteAll(t){let n=t??await yo(),r=await this.list(n??void 0);for(let o of r)await this.delete(o.id)}};import Tc from"node:fs";import hh from"node:fs/promises";import _0 from"node:path";function Ms(){return new Sc}i(Ms,"getStorage");async function P0(e){try{let t=e?.projectRoot,n=Ms();await hh.mkdir(Et,{recursive:!0});let r=e?.scope??"user",o=e?.includeArchived??!1,s=e?.limit??50,a=e?.before?Date.parse(e.before):void 0;if(r==="user"&&!t&&a===void 0&&!o)return(await n.list(t)).slice(0,s).map(jO);let c=(await hh.readdir(Et)).filter(u=>u.endsWith(".jsonl")&&(o||!u.startsWith("archived-"))),l=[];for(let u of c)try{let m=(await hh.readFile(_0.join(Et,u),"utf-8")).trim(),p=m.split(`
464
- `)[0];if(!p)continue;let g=JSON.parse(p);if(g===null||typeof g!="object"||g._type!=="meta")continue;let h=g,x=h.scope==="managed-task-worker"?"managed-task-worker":"user";if(r==="user"&&x!=="user"||r==="managed-task-worker"&&x!=="managed-task-worker")continue;let C=typeof h.createdAt=="string"?h.createdAt:void 0;if(a!==void 0&&C!==void 0){let O=Date.parse(C);if(!Number.isNaN(O)&&O>=a)continue}let w=m.split(`
465
- `).length,b=typeof h.extensionRecordCount=="number"&&h.extensionRecordCount>0?h.extensionRecordCount:0,P=typeof h.activeMessageCount=="number"&&h.activeMessageCount>=0?h.activeMessageCount:Math.max(0,w-1-b),L=h.runtimeInfo!==null&&typeof h.runtimeInfo=="object"?$0(h.runtimeInfo):void 0,F=typeof h.gitRoot=="string"?h.gitRoot:void 0;l.push({id:u.replace(".jsonl",""),title:typeof h.title=="string"?h.title:"",msgCount:P,createdAt:C,runtimeInfo:L??(F?{gitRoot:F}:void 0),_createdAtMs:C?Date.parse(C):void 0})}catch{continue}return l.sort((u,m)=>{let p=u._createdAtMs,g=m._createdAtMs;return Number.isFinite(p)&&Number.isFinite(g)&&p!==g?g-p:Number.isFinite(g)&&!Number.isFinite(p)?1:Number.isFinite(p)&&!Number.isFinite(g)?-1:m.id.localeCompare(u.id)}),l.slice(0,s).map(({id:u,title:m,msgCount:p,createdAt:g,runtimeInfo:h})=>({id:u,title:m,msgCount:p,...g!==void 0?{createdAt:g}:{},...h!==void 0?{runtimeInfo:h}:{}}))}catch{return[]}}i(P0,"listSessions");function $0(e){if(!(!e.workspaceRoot&&!e.canonicalRepoRoot))return{...e.workspaceRoot?{workspaceRoot:e.workspaceRoot}:{},...e.canonicalRepoRoot?{gitRoot:e.canonicalRepoRoot}:{}}}i($0,"extractRuntimeInfoSummary");function jO(e){let t=e.runtimeInfo?$0(e.runtimeInfo):void 0;return{id:e.id,title:e.title,msgCount:e.msgCount,...t!==void 0?{runtimeInfo:t}:{}}}i(jO,"toSessionSummary");async function L0(e){try{return await Ms().load(e)}catch{return null}}i(L0,"loadSession");async function O0(e,t){try{return await Ms().fork(e,t?.selector,{sessionId:t?.sessionId,title:t?.title})}catch{return null}}i(O0,"forkSession");async function D0(e,t){try{return await Ms().rewind(e,t?.selector)}catch{return null}}i(D0,"rewindSession");async function N0(e,t){try{return await Ms().setActiveEntry(e,t)}catch{return null}}i(N0,"setActiveEntry");async function yh(){try{return Fy({excludePid:process.pid}).map(t=>({pid:t.pid,startedAt:t.state.meta.startedAt,cwd:t.state.meta.cwd,sessionId:void 0}))}catch{return[]}}i(yh,"listRunningSessions");async function B0(e){try{let n=(await yh()).find(r=>r.sessionId===e);return n?{error:{code:"session_running",runningProcess:{pid:n.pid,startedAt:n.startedAt}}}:(await Ms().delete(e),{ok:!0})}catch{return{ok:!0}}}i(B0,"deleteSession");function H0(e){return process.platform==="win32"?zO(e):KO(e)}i(H0,"watchSessions");function GO(e){return e.endsWith(".jsonl")?e.slice(0,-6):null}i(GO,"sessionIdFromFilename");function KO(e){let t=null,n=!1,r=new Map;function o(a,c){let l=r.get(c);l!==void 0&&clearTimeout(l);let u=setTimeout(()=>{r.delete(c),n||e({kind:a,sessionId:c})},100);r.set(c,u)}i(o,"emitDebounced");function s(){if(!n)try{if(!Tc.existsSync(Et)){setTimeout(s,1e3);return}t=Tc.watch(Et,(a,c)=>{if(!c)return;let l=GO(c);if(!l)return;let u=a==="rename"?VO(c):"change";o(u,l)}),t.on("error",()=>{t?.close(),t=null,n||setTimeout(s,1e3)})}catch{}}return i(s,"startWatch"),s(),{close(){n=!0,t?.close(),t=null;for(let a of r.values())clearTimeout(a);r.clear()}}}i(KO,"watchSessionsPosix");function VO(e){try{return Tc.statSync(_0.join(Et,e)),"add"}catch{return"remove"}}i(VO,"detectRenameKind");function zO(e){let t=!1,n=new Set;function r(){try{return Tc.existsSync(Et)?new Set(Tc.readdirSync(Et).filter(s=>s.endsWith(".jsonl")).map(s=>s.slice(0,-6))):new Set}catch{return new Set}}i(r,"buildSnapshot"),n=r();let o=setInterval(()=>{if(t)return;let s=r();for(let a of s)n.has(a)||e({kind:"add",sessionId:a});for(let a of n)s.has(a)||e({kind:"remove",sessionId:a});n=s},1e3);return{close(){t=!0,clearInterval(o)}}}i(zO,"watchSessionsWindows");function XO(e){return{listSessions:P0,loadSession:L0,forkSession:O0,rewindSession:D0,setActiveEntry:N0,deleteSession:B0,listRunningSessions:yh,watchSessions:H0}}i(XO,"createSessionManager");export{Ei as a,Mi as b,fa as c,Ai as d,ma as e,sm as f,xo as g,wo as h,_i as i,So as j,_l as k,To as l,Pi as m,Pl as n,$l as o,$i as p,rn as q,Vn as r,zn as s,EI as t,zt as u,pa as v,lm as w,um as x,Xt as y,dm as z,fm as A,Ix as B,kx as C,te as D,lD as E,Km as F,UE as G,fu as H,Ea as I,nS as J,zE as K,XE as L,on as M,$ as N,aW as O,Bt as P,zm as Q,Ym as R,mu as S,qm as T,iS as U,Ma as V,Ji as W,Ro as X,Qm as Y,qn as Z,Pn as _,$n as $,Fr as aa,wu as ba,Qn as ca,Tu as da,Mo as ea,cp as fa,wr as ga,Na as ha,ts as ia,VM as ja,yp as ka,ss as la,as as ma,_p as na,No as oa,Hu as pa,Pp as qa,Va as ra,Lp as sa,ls as ta,C_ as ua,bn as va,RT as wa,ET as xa,M_ as ya,A_ as za,mP as Aa,Fo as Ba,hP as Ca,ps as Da,DP as Ea,BP as Fa,HP as Ga,Zp as Ha,eg as Ia,WP as Ja,ng as Ka,rg as La,fd as Ma,md as Na,pd as Oa,ig as Pa,gd as Qa,sg as Ra,ag as Sa,hd as Ta,Qa as Ua,Ja as Va,gC as Wa,xd as Xa,lg as Ya,dg as Za,mg as _a,wd as $a,pg as ab,Sd as bb,Td as cb,xg as db,Cd as eb,tc as fb,nc as gb,AC as hb,g$ as ib,h$ as jb,PC as kb,S$ as lb,T$ as mb,rc as nb,tr as ob,ic as pb,ws as qb,C$ as rb,Id as sb,I$ as tb,k$ as ub,kd as vb,Tg as wb,Rd as xb,Cg as yb,ih as zb,$1 as Ab,O1 as Bb,j1 as Cb,qv as Db,Qv as Eb,G1 as Fb,V1 as Gb,Gd as Hb,t0 as Ib,Cr as Jb,n0 as Kb,r0 as Lb,o0 as Mb,Y1 as Nb,pc as Ob,q1 as Pb,Q1 as Qb,fO as Rb,fh as Sb,xO as Tb,wO as Ub,SO as Vb,TO as Wb,bO as Xb,vO as Yb,IO as Zb,kO as _b,x0 as $b,Sc as ac,P0 as bc,L0 as cc,O0 as dc,D0 as ec,N0 as fc,yh as gc,B0 as hc,H0 as ic,XO as jc};