@kodax-ai/kodax 0.7.45 → 0.7.46

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 (50) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +1 -1
  3. package/README_CN.md +1 -1
  4. package/dist/builtin/skill-creator/scripts/utils.js +12 -27
  5. package/dist/chunks/chunk-2GEKCIIW.js +31 -0
  6. package/dist/chunks/chunk-ARUWXX25.js +2 -0
  7. package/dist/chunks/chunk-JRT447X5.js +565 -0
  8. package/dist/chunks/chunk-K4RBLNSY.js +2 -0
  9. package/dist/chunks/{chunk-IJUB7QXG.js → chunk-VBIVZOSD.js} +56 -56
  10. package/dist/chunks/{chunk-X6EHEQWP.js → chunk-XUEINS3X.js} +150 -150
  11. package/dist/chunks/{chunk-FKB7BWQT.js → chunk-Z4UT32NN.js} +1 -1
  12. package/dist/chunks/{compaction-config-WCNGYWT3.js → compaction-config-PFTBIGQT.js} +1 -1
  13. package/dist/chunks/{construction-bootstrap-OB5SDNBD.js → construction-bootstrap-2FKNOZZE.js} +1 -1
  14. package/dist/chunks/devtools-4CRULTR2.js +2 -0
  15. package/dist/chunks/devtools-YINBSZC7.js +2 -0
  16. package/dist/chunks/dist-JLMKDPEL.js +2 -0
  17. package/dist/chunks/dist-QTV5M2JW.js +2 -0
  18. package/dist/chunks/{utils-CHXCBR3Q.js → utils-LY3LB65Z.js} +1 -1
  19. package/dist/index.d.ts +10 -10
  20. package/dist/index.js +1 -1
  21. package/dist/kodax_cli.js +920 -890
  22. package/dist/provider-capabilities.json +29 -15
  23. package/dist/sdk-agent.d.ts +8 -8
  24. package/dist/sdk-agent.js +1 -1
  25. package/dist/sdk-coding.d.ts +11 -11
  26. package/dist/sdk-coding.js +1 -1
  27. package/dist/sdk-llm.d.ts +84 -7
  28. package/dist/sdk-llm.js +1 -1
  29. package/dist/sdk-mcp.js +1 -1
  30. package/dist/sdk-repl.d.ts +18 -9
  31. package/dist/sdk-repl.js +2 -2
  32. package/dist/sdk-session.d.ts +27 -6
  33. package/dist/sdk-session.js +1 -1
  34. package/dist/sdk-skills.js +1 -1
  35. package/dist/types-chunks/{base.d-FUJahC0i.d.ts → base.d-BdJKSPO2.d.ts} +18 -1
  36. package/dist/types-chunks/{bash-prefix-extractor.d-HrTUwtV7.d.ts → bash-prefix-extractor.d-BICYx8pt.d.ts} +4 -4
  37. package/dist/types-chunks/{file-tracker.d-DOfaoCbJ.d.ts → file-tracker.d-BNTIvsdb.d.ts} +11 -4
  38. package/dist/types-chunks/{resolver.d-OMwxURit.d.ts → resolver.d-DkgJlEzr.d.ts} +79 -3
  39. package/dist/types-chunks/{storage.d-BvTdjYQF.d.ts → storage.d-B1Jk6ryM.d.ts} +79 -4
  40. package/dist/types-chunks/{types.d-HBbWT-iA.d.ts → types.d-B_MIIApc.d.ts} +1 -1
  41. package/dist/types-chunks/{types.d-B1uGoVTE.d.ts → types.d-Cf-GCzac.d.ts} +82 -1
  42. package/dist/types-chunks/{types.d-DM8zEJgF.d.ts → types.d-D2RNa5Y7.d.ts} +2 -2
  43. package/dist/types-chunks/{utils.d-DSEX6Rq1.d.ts → utils.d-pzHPkrb8.d.ts} +19 -5
  44. package/package.json +1 -1
  45. package/dist/chunks/chunk-CZHIUJQS.js +0 -535
  46. package/dist/chunks/chunk-FT2XFFNP.js +0 -2
  47. package/dist/chunks/chunk-PGF5EZ7C.js +0 -31
  48. package/dist/chunks/devtools-EYGFOXEU.js +0 -2
  49. package/dist/chunks/dist-C2VOGY5Z.js +0 -2
  50. package/dist/chunks/dist-Q2PQM7U7.js +0 -2
@@ -1,535 +0,0 @@
1
- // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{A as Xx,B as Yx,C as qx,a as X,c as Ta,j as Bi,k as vn,l as Hi,m as kr,n as Vx,o as zx,p as Gl,q as Tm,r as Kl,s as Cm,t as bm,u as vm,w as Ca,x as Im,y as Hn,z as Rr}from"./chunk-FT2XFFNP.js";import{a as Vl}from"./chunk-FKB7BWQT.js";import{n as Qx,o as Jx,p as Zx}from"./chunk-EVIDQWMF.js";import{$ as kx,$b as Dx,Ba as Mx,Db as Ul,Ga as Ax,Gb as Px,Ia as _x,Ib as Lx,Ja as $x,Kb as Ox,Ma as wm,P as vx,Q as Wl,S as wa,T as Ix,Vd as Kx,Yc as Hx,Yd as jl,Zc as Sa,c as gm,d as ya,e as cx,g as ym,id as Fx,jd as Wx,ld as Sm,md as Ux,nd as jx,qa as Rx,ra as xm,sa as Ex,uc as Nx,vc as Bx,yb as To,zd as Gx}from"./chunk-X6EHEQWP.js";import{Q as Bl,aa as sx,ca as pm,da as ax,j as Tr,qa as Cr,ra as Ei,sa as Mi}from"./chunk-PGF5EZ7C.js";import{Ac as Ni,Bc as Cx,Da as Cn,Fb as hx,Fc as hm,Gb as yx,Gc as xa,Hb as xx,Qc as bx,Ub as So,Va as lx,Vb as vr,_a as Hl,_b as wx,ab as ux,dc as _i,eb as dx,fb as fx,gb as mx,hb as px,jb as gx,k as br,lc as bn,nc as kt,pc as $i,qc as Pi,rc as Sx,tc as Li,uc as Oi,va as Ai,vc as Di,wa as Tn,wc as Fl,xc as Ir,yc as Tx}from"./chunk-IJUB7QXG.js";import{a as i,b as mm,c as Nk}from"./chunk-V4WSBIXB.js";var ZS=mm((qU,JS)=>{"use strict";JS.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 sT=mm((JU,iT)=>{"use strict";var rT="(?:"+["\\|\\|","\\&\\&",";;","\\|\\&","\\<\\(","\\<\\<\\<",">>",">\\&","<\\&","[&;()|<>]"].join("|")+")",eT=new RegExp("^"+rT+"$"),tT="|&;()<> \\t",mA='"((\\\\"|[^"])*?)"',pA="'((\\\\'|[^'])*?)'",gA=/^#$/,nT="'",oT='"',xp="$",Br="",hA=4294967296;for(wp=0;wp<4;wp++)Br+=(hA*Math.random()).toString(16);var wp,yA=new RegExp("^"+Br);function xA(e,t){for(var n=t.lastIndex,o=[],r;r=t.exec(e);)o.push(r),t.lastIndex===r.index&&(t.lastIndex+=1);return t.lastIndex=n,o}i(xA,"matchAll");function wA(e,t,n){var o=typeof e=="function"?e(n):e[n];return typeof o>"u"&&n!=""?o="":typeof o>"u"&&(o="$"),typeof o=="object"?t+Br+JSON.stringify(o)+Br:t+o}i(wA,"getVar");function SA(e,t,n){n||(n={});var o=n.escape||"\\",r="(\\"+o+`['"`+tT+`]|[^\\s'"`+tT+"])+",s=new RegExp(["("+rT+")","("+r+"|"+mA+"|"+pA+")+"].join("|"),"g"),a=xA(e,s);if(a.length===0)return[];t||(t={});var c=!1;return a.map(function(l){var d=l[0];if(!d||c)return;if(eT.test(d))return{op:d};var m=!1,p=!1,g="",x=!1,h;function T(){h+=1;var O,P,N=d.charAt(h);if(N==="{"){if(h+=1,d.charAt(h)==="}")throw new Error("Bad substitution: "+d.slice(h-2,h+1));if(O=d.indexOf("}",h),O<0)throw new Error("Bad substitution: "+d.slice(h));P=d.slice(h,O),h=O}else if(/[*@#?$!_-]/.test(N))P=N,h+=1;else{var K=d.slice(h);O=K.match(/[^\w\d_]/),O?(P=K.slice(0,O.index),h+=O.index-1):(P=K,h=d.length)}return wA(t,"",P)}for(i(T,"parseEnvVar"),h=0;h<d.length;h++){var w=d.charAt(h);if(x=x||!m&&(w==="*"||w==="?"),p)g+=w,p=!1;else if(m)w===m?m=!1:m==nT?g+=w:w===o?(h+=1,w=d.charAt(h),w===oT||w===o||w===xp?g+=w:g+=o+w):w===xp?g+=T():g+=w;else if(w===oT||w===nT)m=w;else{if(eT.test(w))return{op:d};if(gA.test(w)){c=!0;var b={comment:e.slice(l.index+h+1)};return g.length?[g,b]:[b]}else w===o?p=!0:w===xp?g+=T():g+=w}}return x?{op:"glob",pattern:g}:g}).reduce(function(l,d){return typeof d>"u"?l:l.concat(d)},[])}i(SA,"parseInternal");iT.exports=i(function(t,n,o){var r=SA(t,n,o);return typeof n!="function"?r:r.reduce(function(s,a){if(typeof a=="object")return s.concat(a);var c=a.split(RegExp("("+Br+".*?"+Br+")","g"));return c.length===1?s.concat(c[0]):s.concat(c.filter(Boolean).map(function(l){return yA.test(l)?JSON.parse(l.split(Br)[1]):l}))},[])},"parse")});var aT=mm(Sp=>{"use strict";Sp.quote=ZS();Sp.parse=sT()});import{spawnSync as Bk}from"node:child_process";function zl(e){return e==="1"||e?.toLowerCase()==="true"}i(zl,"isTruthyEnv");function ew(e){return e==="0"||e?.toLowerCase()==="false"}i(ew,"isFalseyEnv");function Fi(e=process.env){return e.TERM_PROGRAM?.toLowerCase()==="vscode"||!!e.VSCODE_GIT_IPC_HANDLE||!!e.VSCODE_INJECTION}i(Fi,"isVsCodeTerminalHostEnv");function Wi(e={}){let t=e.env??process.env;return(e.platform??process.platform)==="win32"||!!t.WT_SESSION}i(Wi,"hasCursorUpViewportYankRisk");function Hk(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}i(Hk,"isSshSession");function ba(e={}){let t=e.env??process.env;return zl(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&Hk(t)}i(ba,"isRemoteConptyHost");function Ui(e={}){let t=e.env??process.env;return Wi(e)||Fi(t)}i(Ui,"hasMainScreenRenderScrollRisk");function Fk(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}i(Fk,"isTmuxControlModeEnvHeuristic");var Co;function va(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(Fk(t))return!0;if(!(t===process.env&&n===process.platform))return!1;if(Co!==void 0||(Co=!1,!t.TMUX)||t.TERM_PROGRAM&&t.TERM_PROGRAM!=="iTerm.app")return Co;try{let r=Bk("tmux",["display-message","-p","#{client_control_mode}"],{encoding:"utf8",timeout:2e3});r.status===0&&(Co=r.stdout.trim()==="1")}catch{Co=!1}return Co}i(va,"isTmuxControlMode");function km(){Co=void 0}i(km,"resetTmuxControlModeProbeForTesting");function Er(e={}){let t=e.env??process.env,n=e.isTTY??process.stdout.isTTY===!0,o=e.rawModeSupported??(process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function");return!n||!o||t.TERM==="dumb"||t.CI==="true"?"unsupported_control_host":va(e)?"tmux_control_mode":Fi(t)?"xtermjs_host":ba(e)?"remote_conpty_host":Wi(e)?"degraded_vt":"native_vt"}i(Er,"detectTerminalRenderHost");var Mr=Er;function ji(e={}){let t=e.env??process.env;if(zl(t.KODAX_FORCE_INK))return"legacy";let n=t.KODAX_TUI_RENDERER?.trim().toLowerCase();return n==="legacy"||n==="owned"||n==="auto"?n:"auto"}i(ji,"resolveConfiguredTuiRendererMode");function Ar(e={}){let t=ji(e);if(t==="legacy"||t==="owned")return t;let n=Er(e);return n==="unsupported_control_host"||n==="tmux_control_mode"?"legacy":"owned"}i(Ar,"resolveEffectiveTuiRendererMode");function Xl(e={}){let t=e.env??process.env;if(zl(t.KODAX_FORCE_CLASSIC_REPL))return"classic";let n=ji({env:t});if(n==="legacy"||n==="owned")return"ink";let o=Er(e);return o==="unsupported_control_host"||o==="tmux_control_mode"?"classic":"ink"}i(Xl,"resolveInteractiveSurfacePreference");var tw={enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!0};function _r(e,t="owned",n={}){let o=n.env??process.env;return ew(o.KODAX_FULLSCREEN)?tw:Wk(e,t)}i(_r,"resolveFullscreenPolicy");function Wk(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 tw;default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}}i(Wk,"buildFullscreenPolicy");function Gi(e,t={}){let n=t.rendererMode??"owned",o=_r(e,n,{env:t.env}),r=e!=="unsupported_control_host"&&e!=="tmux_control_mode";return{profile:e,ownsViewportByDefault:o.enabled&&o.promptShell==="virtual",supportsMouseTracking:o.mouseWheel||o.mouseClicks,bufferingMode:o.streamingPreview?"live":"buffered-fallback",supportsFullscreenLayout:o.enabled,supportsOverlaySurface:o.enabled,supportsSelection:r,supportsCopyOnSelect:!1,supportsWheelHistory:o.mouseWheel,supportsViewportChrome:o.enabled,supportsSearchViewport:o.enabled,supportsStickyPrompt:o.enabled}}i(Gi,"getTerminalHostCapabilities");function Yl(e={}){return Ar(e)==="owned"}i(Yl,"isOwnedRendererPreferred");function ql(e={}){let t=e.env??process.env;return zl(t.KODAX_FORCE_CLASSIC_REPL)&&!ew(t.KODAX_FORCE_CLASSIC_REPL)}i(ql,"isClassicReplForced");var Ki=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 o=this.cache.keys().next().value;o!==void 0&&this.cache.delete(o)}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}},Rm=1,Em=2,Uk=1e3,nw;function Ql(){if(!(typeof Intl>"u"||typeof Intl.Segmenter!="function"))return nw??=new Intl.Segmenter("en",{granularity:"grapheme"}),nw}i(Ql,"getGraphemeSegmenter");function ln(e){if(!e)return 0;let t=Ql();if(t){let n=0;for(let o of t.segment(e))n++;return n}return[...e].length}i(ln,"getCodePointLength");function Qn(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(Qn,"isWideChar");function Jn(e){if(!e)return 0;let t=0,n=Ql();if(n)for(let o of n.segment(e))t+=Qn(o.segment)?Em:Rm;else for(let o of e)t+=Qn(o)?Em:Rm;return t}i(Jn,"getVisualWidth");function jk(e,t){if(!e||t<0)return"";let n=Ql();if(n){let r=0;for(let s of n.segment(e)){if(r===t)return s.segment;r++}return""}let o=[...e];return t>=o.length?"":o[t]}i(jk,"getCharAtCodePoint");function qt(e){if(!e)return[];let t=Ql();if(t){let n=[];for(let o of t.segment(e))n.push(o.segment);return n}return[...e]}i(qt,"splitByCodePoints");function Gk(e,t,n){return qt(e).slice(t,n).join("")}i(Gk,"sliceByCodePoints");function ow(e,t){let n=Math.max(0,t),o=qt(e),r=0,s=0;for(;r<o.length;){let a=Qn(o[r])?Em:Rm;if(s+a>n)break;s+=a,r++}return{before:o.slice(0,r).join(""),current:o[r]??"",after:o.slice(r+1).join("")}}i(ow,"splitAtVisualColumn");function Ia(e,t,n=!1){if(!e||t<=0)return"";let o="\u2026",s=n?t-1:t,a="",c=0,l=qt(e);for(let d of l){let m=Qn(d)?2:1;if(c+m>s)break;a+=d,c+=m}return n&&a.length<e.length&&(a+=o),a}i(Ia,"truncateByVisualWidth");var Mm=new Ki(Uk);function Am(e){let t=Mm.get(e);if(t!==void 0)return t;let n=Jn(e);return Mm.set(e,n),n}i(Am,"getVisualWidthCached");function Qt(e,t,n,o){let r=[],s=[],a=[];for(let c=0;c<e.length;c++){let l=e[c]||"";if(s[c]=[],l.length===0){r.push("");let p=r.length-1;s[c].push([p,0]),a.push([c,0]);continue}let d=0,m=qt(l);for(;d<m.length;){let p="",g=0,x=d,h=-1;for(let T=d;T<m.length;T++){let w=m[T],b=Qn(w)?2:1;if(g+b>t){h>=0&&T-d>0?(p=m.slice(d,h).join(""),g=m.slice(d,h).reduce((O,P)=>O+(Qn(P)?2:1),0),x=h):p.length===0&&b>t&&(p=w,g=b,x=T+1);break}p+=w,g+=b,x=T+1,w===" "&&(h=T+1)}if(p.length>0||r.length===0){let T=d,w=r.length;r.push(p),s[c].push([w,T]),a.push([c,T])}d=x}}return{visualLines:r,logicalToVisualMap:s,visualToLogicalMap:a}}i(Qt,"calculateVisualLayout");function _m(e,t){let{logicalToVisualMap:n,visualLines:o}=e;if(o.length===0)return[0,0];let[r,s]=t,a=n[r];if(!a||a.length===0)return[0,0];let c;for(let[x,h]of a)if(h<=s)c=[x,h];else break;let[l,d]=c??a[0],m=o[l]??"",p=Math.max(0,s-d),g=Jn(Gk(m,0,p));return[l,g]}i(_m,"calculateVisualCursorFromLayout");var $m={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"]}},rw={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 iw={dark:$m,minimal:rw};function ee(e="dark"){return iw[e]??$m}i(ee,"getTheme");function UN(){return Object.keys(iw)}i(UN,"getThemeNames");import{jsx as Zt,jsxs as kn,Fragment as QM}from"react/jsx-runtime";import{useMemo as Eu}from"react";import{jsx as NS}from"react/jsx-runtime";import{createContext as RM,useContext as Dr,useEffect as ns,useMemo as DS,useState as EM,useCallback as BS,useRef as Tu}from"react";import{Stream as oM}from"node:stream";import{openSync as rM,writeSync as vS}from"node:fs";import{performance as iM}from"node:perf_hooks";import{tmpdir as sM}from"node:os";import{join as aM}from"node:path";import Pm,{forwardRef as zk,useContext as Xk}from"react";import{createContext as Kk}from"react";var Vi=Kk({isScreenReaderEnabled:!1});import{createContext as Vk}from"react";var Jl=Vk(void 0);var sw=zk(({children:e,backgroundColor:t,"aria-label":n,"aria-hidden":o,"aria-role":r,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:l}=Xk(Vi),d=n?Pm.createElement("ink-text",null,n):void 0;if(l&&o)return null;let m=Pm.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:r,state:s}},l&&d?d:e);return t?Pm.createElement(Jl.Provider,{value:t},m):m});sw.displayName="Box";var In=sw;import Jk,{useContext as aw}from"react";import zi from"chalk";import jo from"chalk";var Yk=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,qk=/^ansi256\(\s?(\d+)\s?\)$/;function Qk(e){return e in jo}i(Qk,"isNamedColor");function Fn(e,t,n){if(!t)return e;if(Qk(t)){let o=jo;if(n==="foreground")return o[t]?.(e)??e;let r=`bg${t[0].toUpperCase()+t.slice(1)}`;return o[r]?.(e)??e}if(t.startsWith("#"))return n==="foreground"?jo.hex(t)(e):jo.bgHex(t)(e);if(t.startsWith("ansi256")){let o=qk.exec(t);if(!o)return e;let r=Number(o[1]);return n==="foreground"?jo.ansi256(r)(e):jo.bgAnsi256(r)(e)}if(t.startsWith("rgb")){let o=Yk.exec(t);if(!o)return e;let r=Number(o[1]),s=Number(o[2]),a=Number(o[3]);return n==="foreground"?jo.rgb(r,s,a)(e):jo.bgRgb(r,s,a)(e)}return e}i(Fn,"colorize");function Jt({color:e,backgroundColor:t,dimColor:n=!1,bold:o=!1,italic:r=!1,underline:s=!1,strikethrough:a=!1,inverse:c=!1,wrap:l="wrap",children:d,"aria-label":m,"aria-hidden":p=!1}){let{isScreenReaderEnabled:g}=aw(Vi),x=aw(Jl),h=g&&m?m:d;if(h==null)return null;let T=i(w=>{let b=w;n&&(b=zi.dim(b)),e&&(b=Fn(b,e,"foreground"));let O=t??x;return O&&(b=Fn(b,O,"background")),o&&(b=zi.bold(b)),r&&(b=zi.italic(b)),s&&(b=zi.underline(b)),a&&(b=zi.strikethrough(b)),c&&(b=zi.inverse(b)),b},"transform");return g&&p?null:Jk.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:l},internal_transform:T},g&&m?m:d)}i(Jt,"Text");import Zk,{useLayoutEffect as eR,useMemo as cw,useState as tR}from"react";function Lm({items:e,children:t,style:n}){let[o,r]=tR(0),s=cw(()=>e.slice(o),[e,o]);eR(()=>{r(e.length)},[e.length]);let a=s.map((l,d)=>t(l,o+d)),c=cw(()=>({position:"absolute",flexDirection:"column",...n}),[n]);return Zk.createElement("ink-box",{internal_static:!0,style:c},a)}i(Lm,"Static");import Or from"node:process";import TS from"react";import{throttle as BE}from"es-toolkit/compat";import Ro from"ansi-escapes";import zo from"is-in-ci";import HE from"auto-bind";import{onExit as FE}from"signal-exit";import WE from"patch-console";import{LegacyRoot as UE,ConcurrentRoot as jE}from"react-reconciler/constants.js";import GE from"yoga-layout";import KE from"wrap-ansi";import VE from"terminal-size";import nR from"node:process";var Zl=i(()=>nR.env.DEV==="true","isDev");import MR from"react-reconciler";import{DefaultEventPriority as AR,NoEventPriority as vw}from"react-reconciler/constants.js";import*as Go from"scheduler";import Sw from"yoga-layout";import{createContext as _R}from"react";import yR from"yoga-layout";import oR from"widest-line";var lw=new Map,rR=i(e=>{if(e.length===0)return{width:0,height:0};let t=lw.get(e);if(t)return t;let n=oR(e),o=e.split(`
3
- `).length,r={width:n,height:o};return lw.set(e,r),r},"measureText"),Om=rR;import iR from"wrap-ansi";import sR from"cli-truncate";var uw={},aR=i((e,t,n)=>{let o=e+String(t)+String(n),r=uw[o];if(r)return r;let s=e;if(n==="wrap"&&(s=iR(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=sR(e,t,{position:a})}return uw[o]=s,s},"wrapText"),eu=aR;var cR=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),lR=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),uR=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),mw=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),dR=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),pw=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),dw=i((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!cR(c))break;n++}let o=e.slice(t,n),r=n;for(;n<e.length;){let c=e[n];if(!lR(c))break;n++}let s=e.slice(r,n),a=e[n];if(!(a===void 0||!uR(a)))return{endIndex:n+1,parameterString:o,intermediateString:s,finalCharacter:a}},"readCsiSequence"),fw=i((e,t,n)=>{for(let o=t;o<e.length;o++){let r=e[o];if(n&&r==="\x07"||r==="\x9C")return o+1;if(r==="\x1B"){let s=e[o+1];if(s==="\x1B"){o++;continue}if(s==="\\")return o+2}}},"findControlStringTerminatorIndex"),fR=i((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!mw(s))break;n++}let o=e.slice(t,n),r=e[n];if(!(r===void 0||!dR(r)))return{endIndex:n+1,intermediateString:o,finalCharacter:r}},"readEscapeSequence"),mR=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"),pR=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"),Dm=i(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(pw(t))return!0;return!1},"hasAnsiControlCharacters"),Xi=i((e,t,n,o)=>(o>n&&e.push({type:"text",value:t.slice(n,o)}),e.push({type:"invalid",value:t.slice(o)}),e),"malformedFromIndex"),gw=i(e=>{if(!Dm(e))return[{type:"text",value:e}];let t=[],n=0;for(let o=0;o<e.length;){let r=e[o];if(r===void 0)break;if(r==="\x1B"){let a=e[o+1];if(a===void 0)return Xi(t,e,n,o);if(a==="["){let d=dw(e,o+2);if(d===void 0)return Xi(t,e,n,o);o>n&&t.push({type:"text",value:e.slice(n,o)}),t.push({type:"csi",value:e.slice(o,d.endIndex),parameterString:d.parameterString,intermediateString:d.intermediateString,finalCharacter:d.finalCharacter}),o=d.endIndex,n=o;continue}let c=mR(a);if(c!==void 0){let d=fw(e,o+2,c.allowBellTerminator);if(d===void 0)return Xi(t,e,n,o);o>n&&t.push({type:"text",value:e.slice(n,o)}),t.push({type:c.type,value:e.slice(o,d)}),o=d,n=o;continue}let l=fR(e,o+1);if(l===void 0){if(mw(a))return Xi(t,e,n,o);o>n&&t.push({type:"text",value:e.slice(n,o)}),o++,n=o;continue}o>n&&t.push({type:"text",value:e.slice(n,o)}),t.push({type:"esc",value:e.slice(o,l.endIndex),intermediateString:l.intermediateString,finalCharacter:l.finalCharacter}),o=l.endIndex,n=o;continue}if(r==="\x9B"){let a=dw(e,o+1);if(a===void 0)return Xi(t,e,n,o);o>n&&t.push({type:"text",value:e.slice(n,o)}),t.push({type:"csi",value:e.slice(o,a.endIndex),parameterString:a.parameterString,intermediateString:a.intermediateString,finalCharacter:a.finalCharacter}),o=a.endIndex,n=o;continue}let s=pR(r);if(s!==void 0){let a=fw(e,o+1,s.allowBellTerminator);if(a===void 0)return Xi(t,e,n,o);o>n&&t.push({type:"text",value:e.slice(n,o)}),t.push({type:s.type,value:e.slice(o,a)}),o=a,n=o;continue}if(r==="\x9C"){o>n&&t.push({type:"text",value:e.slice(n,o)}),t.push({type:"st",value:r}),o++,n=o;continue}if(pw(r)){o>n&&t.push({type:"text",value:e.slice(n,o)}),t.push({type:"c1",value:r}),o++,n=o;continue}o++}return n<e.length&&t.push({type:"text",value:e.slice(n)}),t},"tokenizeAnsi");var gR=/^[\d:;]*$/,hR=i(e=>{if(!Dm(e))return e;let t="";for(let n of gw(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&gR.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),hw=hR;var yw=i(e=>{let t="";for(let n=0;n<e.childNodes.length;n++){let o=e.childNodes[n];if(o===void 0)continue;let r="";o.nodeName==="#text"?r=o.nodeValue:((o.nodeName==="ink-text"||o.nodeName==="ink-virtual-text")&&(r=yw(o)),r.length>0&&typeof o.internal_transform=="function"&&(r=o.internal_transform(r,n))),t+=r}return hw(t)},"squashTextNodes"),ka=yw;var tu=i(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:yR.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(xR.bind(null,t)),t},"createNode"),nu=i((e,t)=>{t.parentNode&&Ra(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")&&ou(e)},"appendChildNode"),Nm=i((e,t,n)=>{t.parentNode&&Ra(t.parentNode,t),t.parentNode=e;let o=e.childNodes.indexOf(n);o>=0?(e.childNodes.splice(o,0,t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,o)):(e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&ou(e)},"insertBeforeNode"),Ra=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")&&ou(e)},"removeChildNode"),Bm=i((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),Hm=i((e,t)=>{e.style=t},"setStyle"),xw=i(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return Ea(t,e),t},"createTextNode"),xR=i(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:ka(e),o=Om(n);if(o.width<=t||o.width>=1&&t>0&&t<1)return o;let r=e.style?.textWrap??"wrap",s=eu(n,t,r);return Om(s)},"measureTextNode"),ww=i(e=>{if(e?.parentNode)return e.yogaNode??ww(e.parentNode)},"findClosestYogaNode"),ou=i(e=>{ww(e)?.markDirty()},"markNodeAsDirty"),Ea=i((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,ou(e)},"setTextNodeValue");import we from"yoga-layout";var SR=i((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?we.POSITION_TYPE_ABSOLUTE:we.POSITION_TYPE_RELATIVE),"top"in t&&e.setPosition(we.EDGE_TOP,t.top??0),"bottom"in t&&e.setPosition(we.EDGE_BOTTOM,t.bottom??0),"left"in t&&e.setPosition(we.EDGE_LEFT,t.left??0),"right"in t&&e.setPosition(we.EDGE_RIGHT,t.right??0)},"applyPositionStyles"),TR=i((e,t)=>{"margin"in t&&e.setMargin(we.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(we.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(we.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(we.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(we.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(we.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(we.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),CR=i((e,t)=>{"padding"in t&&e.setPadding(we.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(we.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(we.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(we.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(we.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(we.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(we.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),bR=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(we.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(we.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(we.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(we.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(we.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(we.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(we.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(we.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(we.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(we.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(we.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(we.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(we.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(we.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(we.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(we.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(we.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(we.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(we.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(we.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(we.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),vR=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"),IR=i((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?we.DISPLAY_FLEX:we.DISPLAY_NONE)},"applyDisplayStyles"),kR=i((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(we.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(we.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(we.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(we.EDGE_RIGHT,n)}},"applyBorderStyles"),RR=i((e,t)=>{"gap"in t&&e.setGap(we.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(we.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(we.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),ER=i((e,t={})=>{SR(e,t),TR(e,t),CR(e,t),bR(e,t),vR(e,t),IR(e,t),kR(e,t),RR(e,t)},"styles"),Fm=ER;if(Zl())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 Tw=i((e,t)=>{if(e===t)return;if(!e)return t;let n={},o=!1;for(let r of Object.keys(e))(!t||!Object.hasOwn(t,r))&&(n[r]=void 0,o=!0);if(t)for(let r of Object.keys(t))t[r]!==e[r]&&(n[r]=t[r],o=!0);return o?n:void 0},"diff"),Cw=i(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),ru=vw,Wm,bw={name:void 0,version:void 0},bo=MR({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,o=t==="ink-text"||t==="ink-virtual-text";return n===o?e:{isInsideText:o}},shouldSetTextContent:i(()=>!1,"shouldSetTextContent"),createInstance(e,t,n,o){if(o.isInsideText&&e==="ink-box")throw new Error("<Box> can\u2019t be nested inside <Text> component");let r=e==="ink-text"&&o.isInsideText?"ink-virtual-text":e,s=tu(r);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){Hm(s,c),s.yogaNode&&Fm(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_static"){Wm=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}Bm(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 xw(e)},resetTextContent(){},hideTextInstance(e){Ea(e,"")},unhideTextInstance(e,t){Ea(e,t)},getPublicInstance:i(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(Sw.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(Sw.DISPLAY_FLEX)},appendInitialChild:nu,appendChild:nu,insertBefore:Nm,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:Go.unstable_scheduleCallback,cancelCallback:Go.unstable_cancelCallback,shouldYield:Go.unstable_shouldYield,now:Go.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:i(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:i(()=>null,"getInstanceFromScope"),appendChildToContainer:nu,insertInContainerBefore:Nm,removeChildFromContainer(e,t){Ra(e,t),Cw(t.yogaNode)},commitUpdate(e,t,n,o){Wm&&e.internal_static&&(Wm.isStaticDirty=!0);let r=Tw(n,o),s=Tw(n.style,o.style);if(!(!r&&!s)){if(r)for(let[a,c]of Object.entries(r)){if(a==="style"){Hm(e,c);continue}if(a==="internal_transform"){e.internal_transform=c;continue}if(a==="internal_static"){e.internal_static=!0;continue}Bm(e,a,c)}s&&e.yogaNode&&Fm(e.yogaNode,s)}},commitTextUpdate(e,t,n){Ea(e,n)},removeChild(e,t){Ra(e,t),Cw(t.yogaNode)},setCurrentUpdatePriority(e){ru=e},getCurrentUpdatePriority:i(()=>ru,"getCurrentUpdatePriority"),resolveUpdatePriority(){return ru!==vw?ru:AR},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:_R(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:bw.name,rendererVersion:bw.version});import DR from"widest-line";import NR from"indent-string";import Yi from"yoga-layout";import iu from"yoga-layout";var $R=i(e=>e.getComputedWidth()-e.getComputedPadding(iu.EDGE_LEFT)-e.getComputedPadding(iu.EDGE_RIGHT)-e.getComputedBorder(iu.EDGE_LEFT)-e.getComputedBorder(iu.EDGE_RIGHT),"getMaxWidth"),Iw=$R;import PR from"cli-boxes";import su from"chalk";var LR=i((e,t,n,o)=>{if(n.style.borderStyle){let r=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?PR[n.style.borderStyle]:n.style.borderStyle,c=n.style.borderTopColor??n.style.borderColor,l=n.style.borderBottomColor??n.style.borderColor,d=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,x=n.style.borderLeftDimColor??n.style.borderDimColor,h=n.style.borderRightDimColor??n.style.borderDimColor,T=n.style.borderTop!==!1,w=n.style.borderBottom!==!1,b=n.style.borderLeft!==!1,O=n.style.borderRight!==!1,P=r-(b?1:0)-(O?1:0),N=T?Fn((b?a.topLeft:"")+a.top.repeat(P)+(O?a.topRight:""),c,"foreground"):void 0;T&&p&&(N=su.dim(N));let K=s;T&&(K-=1),w&&(K-=1);let W=(Fn(a.left,d,"foreground")+`
12
- `).repeat(K);x&&(W=su.dim(W));let v=(Fn(a.right,m,"foreground")+`
13
- `).repeat(K);h&&(v=su.dim(v));let Z=w?Fn((b?a.bottomLeft:"")+a.bottom.repeat(P)+(O?a.bottomRight:""),l,"foreground"):void 0;w&&g&&(Z=su.dim(Z));let Se=T?1:0;N&&o.write(e,t,N,{transformers:[]}),b&&o.write(e,t+Se,W,{transformers:[]}),O&&o.write(e+r-1,t+Se,v,{transformers:[]}),Z&&o.write(e,t+s-1,Z,{transformers:[]})}},"renderBorder"),kw=LR;var OR=i((e,t,n,o)=>{if(!n.style.backgroundColor)return;let r=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,d=n.style.borderStyle&&n.style.borderBottom!==!1?1:0,m=r-a-c,p=s-l-d;if(!(m>0&&p>0))return;let g=Fn(" ".repeat(m),n.style.backgroundColor,"background");for(let x=0;x<p;x++)o.write(e+a,t+l+x,g,{transformers:[]})},"renderBackground"),Rw=OR;var BR=i((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let o=n.getComputedLeft(),r=n.getComputedTop();t=`
14
- `.repeat(r)+NR(t,o)}return t},"applyPaddingToText"),au=i((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===Yi.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=ka(e);else if(e.nodeName==="ink-box"||e.nodeName==="ink-root"){let o=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=>au(s,{parentRole:e.internal_accessibility?.role,skipStaticElements:t.skipStaticElements})).filter(Boolean).join(o)}if(e.internal_accessibility){let{role:o,state:r}=e.internal_accessibility;if(r){let a=Object.keys(r).filter(c=>r[c]).join(", ");a&&(n=`(${a}) ${n}`)}o&&o!==t.parentRole&&(n=`${o}: ${n}`)}return n},"renderNodeToScreenReaderOutput"),Ew=i((e,t,n)=>{let{offsetX:o=0,offsetY:r=0,transformers:s=[],skipStaticElements:a}=n;if(a&&e.internal_static)return;let{yogaNode:c}=e;if(c){if(c.getDisplay()===Yi.DISPLAY_NONE)return;let l=o+c.getComputedLeft(),d=r+c.getComputedTop(),m=s;if(typeof e.internal_transform=="function"&&(m=[e.internal_transform,...s]),e.nodeName==="ink-text"){let g=ka(e);if(g.length>0){let x=DR(g),h=Iw(c);if(x>h){let T=e.style.textWrap??"wrap";g=eu(g,h,T)}g=BR(e,g),t.write(l,d,g,{transformers:m})}return}let p=!1;if(e.nodeName==="ink-box"){Rw(l,d,e,t),kw(l,d,e,t);let g=e.style.overflowX==="hidden"||e.style.overflow==="hidden",x=e.style.overflowY==="hidden"||e.style.overflow==="hidden";if(g||x){let h=g?l+c.getComputedBorder(Yi.EDGE_LEFT):void 0,T=g?l+c.getComputedWidth()-c.getComputedBorder(Yi.EDGE_RIGHT):void 0,w=x?d+c.getComputedBorder(Yi.EDGE_TOP):void 0,b=x?d+c.getComputedHeight()-c.getComputedBorder(Yi.EDGE_BOTTOM):void 0;t.clip({x1:h,x2:T,y1:w,y2:b}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let g of e.childNodes)Ew(g,t,{offsetX:l,offsetY:d,transformers:m,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),Um=Ew;import HR from"slice-ansi";import FR from"string-width";import{styledCharsFromTokens as WR,styledCharsToString as UR,tokenize as jR}from"@alcalzone/ansi-tokenize";var jm=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=WR(jR(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=FR(t),this.widths.set(t,n)),n}getWidestLine(t){let n=this.blockWidths.get(t);if(n===void 0){let o=0;for(let r of t.split(`
16
- `))o=Math.max(o,this.getStringWidth(r));n=o,this.blockWidths.set(t,n)}return n}},qi=class{static{i(this,"Output")}width;height;operations=[];caches=new jm;constructor(t){let{width:n,height:o}=t;this.width=n,this.height=o}write(t,n,o,r){let{transformers:s}=r;o&&this.operations.push({type:"write",x:t,y:n,text:o,transformers:s})}clip(t){this.operations.push({type:"clip",clip:t})}unclip(){this.operations.push({type:"unclip"})}getGrid(){let t=[];for(let o=0;o<this.height;o++){let r=[];for(let s=0;s<this.width;s++)r.push({type:"char",value:" ",fullWidth:!1,styles:[]});t.push(r)}let n=[];for(let o of this.operations)if(o.type==="clip"&&n.push(o.clip),o.type==="unclip"&&n.pop(),o.type==="write"){let{text:r,transformers:s}=o,{x:a,y:c}=o,l=r.split(`
17
- `),d=n.at(-1);if(d){let p=typeof d?.x1=="number"&&typeof d?.x2=="number",g=typeof d?.y1=="number"&&typeof d?.y2=="number";if(p){let x=this.caches.getWidestLine(r);if(a+x<d.x1||a>d.x2)continue}if(g){let x=l.length;if(c+x<d.y1||c>d.y2)continue}if(p&&(l=l.map(x=>{let h=a<d.x1?d.x1-a:0,T=this.caches.getStringWidth(x),w=a+T>d.x2?d.x2-a:T;return HR(x,h,w)}),a<d.x1&&(a=d.x1)),g){let x=c<d.y1?d.y1-c:0,h=l.length,T=c+h>d.y2?d.y2-c:h;l=l.slice(x,T),c<d.y1&&(c=d.y1)}}let m=0;for(let[p,g]of l.entries()){let x=t[c+m];if(!x)continue;for(let w of s)g=w(g,p);let h=this.caches.getStyledChars(g),T=a;for(let w of h){x[T]=w;let b=Math.max(1,this.caches.getStringWidth(w.value));if(b>1)for(let O=1;O<b;O++)x[T+O]={type:"char",value:"",fullWidth:!1,styles:w.styles};T+=b}m++}}return t}get(){let t=this.getGrid();return{output:t.map(o=>{let r=o.filter(s=>s!==void 0);return UR(r).trimEnd()}).join(`
18
- `),height:t.length}}};var vo={Single:0,Wide:1,SpacerTail:2},Zn={char:" ",width:vo.Single,style:"",hyperlink:void 0};function Mw(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(Zn);return{width:e,height:t,cells:n}}i(Mw,"createScreen");function Qi(e,t,n){if(!(t<0||n<0||t>=e.width||n>=e.height))return e.cells[n*e.width+t]}i(Qi,"cellAt");function Aw(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(Zn),o=!1;return{width:e,height:t,setCellAt(r,s,a){if(o)throw new Error("ScreenBuilder.setCellAt called after build()");if(r<0||s<0||r>=e||s>=t)throw new RangeError(`ScreenBuilder.setCellAt out of bounds: (${r}, ${s}) on ${e}x${t}`);n[s*e+r]=a},build(){if(o)throw new Error("ScreenBuilder.build called twice");return o=!0,{width:e,height:t,cells:n}}}}i(Aw,"createScreenBuilder");function*cu(e,t){let n=Math.max(e.width,t.width),o=Math.max(e.height,t.height);for(let r=0;r<o;r++)for(let s=0;s<n;s++){let a=Qi(e,s,r),c=Qi(t,s,r);GR(a,c)||(yield{x:s,y:r,prev:a,next:c})}}i(cu,"diffEach");function _w(e,t,n,o){if(o===0||e.height===0)return e;let r=Math.max(0,t),s=Math.min(e.height-1,n);if(r>s)return e;let a=e.width,c=e.cells.slice(),l=s-r+1,d=i(m=>{for(let p=0;p<a;p++)c[m*a+p]=Zn},"blankRow");if(Math.abs(o)>=l){for(let m=r;m<=s;m++)d(m);return{...e,cells:c}}if(o>0){for(let m=r;m<=s-o;m++)for(let p=0;p<a;p++)c[m*a+p]=e.cells[(m+o)*a+p]??Zn;for(let m=s-o+1;m<=s;m++)d(m)}else{let m=-o;for(let p=s;p>=r+m;p--)for(let g=0;g<a;g++)c[p*a+g]=e.cells[(p-m)*a+g]??Zn;for(let p=r;p<=r+m-1;p++)d(p)}return{...e,cells:c}}i(_w,"shiftRowsRegion");function GR(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(GR,"cellsEqual");var Gm="\x1B]8;";function KR(e){return e.endsWith("\x07")?e.slice(0,-1):e}i(KR,"stripOsc8Terminator");function VR(e){if(!e.startsWith(Gm))return;let t=e.slice(Gm.length),n=t.indexOf(";");if(n<0)return;let o=t.slice(n+1),r=KR(o);return r.length>0?r:void 0}i(VR,"parseOsc8Url");function zR(e){if(e.value==="")return{char:"",width:vo.SpacerTail,style:"",hyperlink:void 0};let t="",n;for(let o of e.styles)if(o.code.startsWith(Gm)){let r=VR(o.code);r!==void 0&&(n=r)}else t+=o.code;return{char:e.value,width:e.fullWidth?vo.Wide:vo.Single,style:t,hyperlink:n}}i(zR,"styledCharToCell");function $w(e){let t=e.getGrid(),n=e.width,o=e.height,r=Aw(n,o),s=Math.min(t.length,o);for(let a=0;a<s;a++){let c=t[a];if(!c)continue;let l=Math.min(c.length,n);for(let d=0;d<l;d++){let m=c[d];if(!m)continue;let p=zR(m);p.char===Zn.char&&p.width===Zn.width&&p.style===Zn.style&&p.hyperlink===Zn.hyperlink||r.setCellAt(d,a,p)}}return r.build()}i($w,"outputToScreen");var XR=i((e,t,n)=>{if(e.yogaNode){if(t){let p=au(e,{skipStaticElements:!0}),g=p===""?0:p.split(`
19
- `).length,x="";return e.staticNode&&(x=au(e.staticNode,{skipStaticElements:!1})),{output:p,outputHeight:g,staticOutput:x?`${x}
20
- `:"",frame:void 0}}let o=new qi({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});Um(e,o,{skipStaticElements:!0});let r;e.staticNode?.yogaNode&&(r=new qi({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),Um(e.staticNode,r,{skipStaticElements:!1}));let{output:s,height:a}=o.get(),c=$w(o),l=n?.columns??e.yogaNode.getComputedWidth(),d=n?.rows??e.yogaNode.getComputedHeight(),m={screen:c,viewport:{width:l,height:d},cursor:{x:0,y:c.height,visible:!0}};return{output:s,outputHeight:a,staticOutput:r?`${r.get().output}
21
- `:"",frame:m}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),Pw=XR;function un(...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(un,"csi");function Lw(e=1){return e===0?"":un(e,"A")}i(Lw,"cursorUp");function YR(e=1){return e===0?"":un(e,"B")}i(YR,"cursorDown");function qR(e=1){return e===0?"":un(e,"C")}i(qR,"cursorForward");function QR(e=1){return e===0?"":un(e,"D")}i(QR,"cursorBack");function Ow(e){return un(e,"G")}i(Ow,"cursorTo");var JR=un("G"),Dw=un("H");function Nw(e,t){let n="";return e<0?n+=QR(-e):e>0&&(n+=qR(e)),t<0?n+=Lw(-t):t>0&&(n+=YR(t)),n}i(Nw,"cursorMove");var ZR=un(2,"K");function Bw(e){if(e<=0)return"";let t="";for(let n=0;n<e;n++)t+=ZR,n<e-1&&(t+=Lw(1));return t+=JR,t}i(Bw,"eraseLines");var Hw=un("r"),Fw="\x1B7",Ww="\x1B8";function Uw(e,t){return un(e,t,"r")}i(Uw,"setScrollRegion");function jw(e=1){return un(e,"S")}i(jw,"scrollUp");function Gw(e=1){return un(e,"T")}i(Gw,"scrollDown");var lu=un(0,"m");function Kw(e){return`\x1B]${e.join(";")}\x07`}i(Kw,"osc");function eE(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(eE,"osc8Id");function Ma(e,t){if(!e)return Aa;let n={id:eE(e),...t??{}},o=Object.entries(n).map(([r,s])=>`${r}=${s}`).join(":");return Kw(["8",o,e])}i(Ma,"link");var Aa=Kw(["8","",""]);function Km(e){let{screen:t}=e;if(t.width===0||t.height===0)return[];let n=[],o="",r;for(let s=0;s<t.height;s++){let a="";for(let c=0;c<t.width;c++){let l=Qi(t,c,s);!l||l.width===vo.SpacerTail||(l.hyperlink!==r&&(r!==void 0&&(a+=Aa),l.hyperlink!==void 0&&(a+=Ma(l.hyperlink)),r=l.hyperlink),l.style!==o&&(o!==""&&(a+=lu),l.style!==""&&(a+=l.style),o=l.style),a+=l.char)}r!==void 0&&(a+=Aa,r=void 0),o!==""&&(a+=lu,o=""),n.push(a.trimEnd())}return[{type:"stdout",content:n.join(`
22
- `)}]}i(Km,"renderFullFrame");var tE=Object.freeze([]),nE=Object.freeze([]);function Ji(e,t){if(e===t)return{patches:tE,current:e};let n=[];return e!==""&&n.push({type:"stdout",content:lu}),t!==""&&n.push({type:"stdout",content:t}),{patches:n,current:t}}i(Ji,"transitionStyle");function uu(e,t){let n=Ji(e,t),o="";for(let r of n.patches)r.type==="stdout"&&(o+=r.content);return{str:o,current:n.current}}i(uu,"transitionStyleStr");function $r(e,t){if(e===t)return{patches:nE,current:e};let n=[];return e!==void 0&&n.push({type:"stdout",content:Aa}),t!==void 0&&n.push({type:"stdout",content:Ma(t)}),{patches:n,current:t}}i($r,"transitionHyperlink");function Vw(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(Vw,"needsWidthCompensation");var Zi=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,o]=t(this.cursor);for(let r of n)this._diffMut.push(r);this._cursorMut.x+=o.dx,this._cursorMut.y+=o.dy}},Io={type:"carriageReturn"},_a={type:"stdout",content:`
23
- `};function du(e,t,n){let o=t.width===vo.Wide?2:1,r=e.viewportWidth,s=!1;return e.txn(a=>{let c=a.x;if(o===2&&c<r){let m=t.char.length>2?r:r+1;if(c+2>=m)return[[],{dx:0,dy:0}]}let l=[];n.length>0&&l.push({type:"stdout",content:n});let d=o===2&&Vw(t.char);return d&&c+1<r&&(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}),d&&l.push({type:"cursorTo",col:c+o+1}),s=!0,c>=r?[l,{dx:o-c,dy:1}]:[l,{dx:o,dy:0}]}),s}i(du,"writeCellWithStyleStr");function $a(e,t,n){e.txn(o=>{let r=t-o.x,s=n-o.y;return o.x>=e.viewportWidth?[[Io,{type:"cursorMove",x:t,y:s}],{dx:r,dy:s}]:s!==0?[[Io,{type:"cursorMove",x:t,y:s}],{dx:r,dy:s}]:[[{type:"cursorMove",x:r,y:s}],{dx:r,dy:s}]})}i($a,"moveCursorTo");function fu(e,t,n,o){let r="",s;for(let a=n;a<o;a++){if(e.cursor.y<a){let m=a-e.cursor.y;e.txn(p=>{let g=new Array(1+m);g[0]=Io;for(let x=0;x<m;x++)g[1+x]=_a;return[g,{dx:-p.x,dy:m}]})}for(let m=0;m<t.screen.width;m++){let p=Qi(t.screen,m,a);if(!p||p.width===vo.SpacerTail||p.char===" "&&p.style===""&&p.hyperlink===void 0)continue;$a(e,m,a);let g=$r(s,p.hyperlink);for(let h of g.patches)e.txn(()=>[[h],{dx:0,dy:0}]);s=g.current;let x=uu(r,p.style);du(e,p,x.str)&&(r=x.current)}let c=Ji(r,"");for(let m of c.patches)e.txn(()=>[[m],{dx:0,dy:0}]);r=c.current;let l=$r(s,void 0);for(let m of l.patches)e.txn(()=>[[m],{dx:0,dy:0}]);s=l.current;let d=a===o-1&&t.screen.height<=t.viewport.height&&a+1>=t.viewport.height;e.txn(m=>d?[[Io],{dx:-m.x,dy:0}]:[[Io,_a],{dx:-m.x,dy:1}])}if(r!==""||s!==void 0){let a=Ji(r,"");for(let l of a.patches)e.txn(()=>[[l],{dx:0,dy:0}]);let c=$r(s,void 0);for(let l of c.patches)e.txn(()=>[[l],{dx:0,dy:0}])}}i(fu,"renderFrameSlice");function Vm(e,t){let n="";for(let o=0;o<e.width;o++){let r=Qi(e,o,t);n+=r?.char??" "}return n.trimEnd()}i(Vm,"readLine");function mu(e,t){let n=new Zi({x:0,y:0},e.viewport.width);fu(n,e,0,e.screen.height);let o=[{type:"clearTerminal",reason:t}];for(let r of n.diff)o.push(r);return o}i(mu,"fullResetSequence_CAUSES_FLICKER");function zm(e,t){let n=e.cursor.y>=e.screen.height,o=t.screen.height>e.screen.height,r=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:o?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:o,shrinking:r,prevHadScrollback:s,nextFitsViewport:a}}i(zm,"computeViewportState");function zw(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 o=zm(e,t);if(o.prevHadScrollback&&o.nextFitsViewport&&o.shrinking)return{reset:!0,reason:"offscreen"};if(e.screen.height>=e.viewport.height&&e.screen.height>0&&o.cursorAtBottom&&!o.growing){let s=e.screen.height-e.viewport.height+1;for(let a of cu(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 o.shrinking&&e.screen.height-t.screen.height>e.viewport.height?{reset:!0,reason:"offscreen"}:{reset:!1}}i(zw,"shouldFullReset");function Xw(e,t,n){return!!(t&&t.width===2||e&&e.width===2&&!t||t&&n&&!e)}i(Xw,"shouldSkipDiff");var pu=class{static{i(this,"LogUpdate")}options;constructor(t){this.options=t}render(t,n,o={}){if(!this.options.isTTY)return Km(n);let r=Yw(t),s=Yw(n),a=zw(r,s,Vm);if(a.reset)return mu(s,a.reason);let c=s.scrollHint;if(c&&o.altScreen&&o.decstbmSafe&&process.env.KODAX_SCROLL_DECSTBM!=="0"&&c.delta!==0&&c.top>=0&&c.bottom<r.screen.height&&c.bottom<s.screen.height&&Math.abs(c.delta)<=c.bottom-c.top){let l={type:"scrollRegion",top:c.top,bottom:c.bottom,delta:c.delta},d={...r,screen:_w(r.screen,c.top,c.bottom,c.delta)};return[l,...qw(d,s)]}return qw(r,s)}reset(){}};function Xm(e,t){for(let n of t)e.txn(()=>[[n],{dx:0,dy:0}])}i(Xm,"emitPatches");function Qw(e,t,n){if(t!==""){let o=Ji(t,"");Xm(e,o.patches)}if(n!==void 0){let o=$r(n,void 0);Xm(e,o.patches)}return{style:"",hyperlink:void 0}}i(Qw,"resetStyleAndHyperlink");function oE(e,t,n){let o=t.screen.height-n.screen.height;e.txn(r=>[[{type:"clear",count:o},{type:"cursorMove",x:0,y:-1}],{dx:-r.x,dy:-o}])}i(oE,"applyShrink");function rE(e,t,n,o){let r="",s,a=!1;for(let c of cu(t.screen,n.screen)){let{x:l,y:d,prev:m,next:p}=c;if(o.growing&&d>=t.screen.height)continue;let g=!!(p&&p.char===" "&&p.style===""&&p.hyperlink===void 0);if(!Xw(m,p,g)){if(d<o.viewportY){a=!0;break}if($a(e,l,d),p){let x=$r(s,p.hyperlink);Xm(e,x.patches),s=x.current;let h=uu(r,p.style);du(e,p,h.str)&&(r=h.current)}else if(m){let x=Qw(e,r,s);r=x.style,s=x.hyperlink,e.txn(()=>[[{type:"stdout",content:" "}],{dx:1,dy:0}])}}}return{currentStyle:r,currentHyperlink:s,needsFullReset:a}}i(rE,"diffPass");function Yw(e){let t=Math.max(0,e.viewport.height-1);return e.cursor.y<=t?e:{...e,cursor:{...e.cursor,y:t}}}i(Yw,"clampRestingCursor");function iE(e,t){t.cursor.y>=t.screen.height?e.txn(n=>{let o=t.cursor.y-n.y;if(o>0){let s=new Array(1+o);s[0]=Io;for(let a=0;a<o;a++)s[1+a]=_a;return[s,{dx:-n.x,dy:o}]}let r=t.cursor.y-n.y;return r!==0||n.x!==t.cursor.x?[[Io,{type:"cursorMove",x:t.cursor.x,y:r}],{dx:t.cursor.x-n.x,dy:r}]:[[],{dx:0,dy:0}]}):$a(e,t.cursor.x,t.cursor.y)}i(iE,"restoreCursor");function qw(e,t){let n=zm(e,t),o=new Zi(e.cursor,t.viewport.width);n.shrinking&&oE(o,e,t);let r=rE(o,e,t,n);return r.needsFullReset?mu(t,"offscreen"):(Qw(o,r.currentStyle,r.currentHyperlink),n.growing&&fu(o,t,e.screen.height,t.screen.height),iE(o,t),o.diff)}i(qw,"renderIncremental");var sE="\x1B[?25l",aE="\x1B[?25h",cE=`\x1B[2J${Dw}`;function lE(e){switch(e.type){case"stdout":return e.content;case"carriageReturn":return"\r";case"cursorHide":return sE;case"cursorShow":return aE;case"cursorMove":return Nw(e.x,e.y);case"cursorTo":return Ow(e.col);case"clear":return Bw(e.count);case"clearTerminal":return cE;case"hyperlink":return Ma(e.uri);case"scrollRegion":{let t=e.top+1,n=e.bottom+1,o=Math.abs(e.delta),r=e.delta>0?jw(o):Gw(o);return Fw+Uw(t,n)+r+Hw+Ww}}}i(lE,"patchToBytes");function gu(e,t){let n="";for(let o of t)n+=lE(o);n.length>0&&e.write(n)}i(gu,"applyDiff");function Jw(e,t,n={}){if(t===void 0)return!1;let o=e.cellLogUpdate.render(e.prevFrame,t,n);return gu(e.stdout,o),e.prevFrame=t,!0}i(Jw,"applyCellFrame");function Pa(e,t){return{screen:Mw(0,0),viewport:{width:t,height:e},cursor:{x:0,y:0,visible:!0}}}i(Pa,"emptyFrame");import uE from"is-in-ci";var Pr="\x1B[?2026h",Ko="\x1B[?2026l";function Vo(e){return"isTTY"in e&&e.isTTY===!0&&!uE}i(Vo,"shouldSynchronize");var dE=new WeakMap,Zw=dE;import{EventEmitter as _E}from"node:events";import $E from"node:process";import Lr,{useState as Qm,useRef as es,useCallback as pt,useMemo as ts,useEffect as yS}from"react";import PE from"cli-cursor";var fE=i(e=>e>=48&&e<=63,"isCsiParameterByte"),mE=i(e=>e>=32&&e<=47,"isCsiIntermediateByte"),tS=i(e=>e>=64&&e<=126,"isCsiFinalByte");function pE(e,t,n){let o=t+n+1,r=o;for(;r<e.length;r+=1){let s=e.codePointAt(r);if(s===void 0)return"pending";if(!(fE(s)||mE(s))&&!(s===91&&r===o))return tS(s)?{sequence:e.slice(t,r+1),nextIndex:r+1}:void 0}return"pending"}i(pE,"parseCsiSequence");function gE(e,t,n){let o=t+n+2;if(o>e.length)return"pending";let r=e.codePointAt(o-1);if(!(r===void 0||!tS(r)))return{sequence:e.slice(t,o),nextIndex:o}}i(gE,"parseSs3Sequence");function eS(e,t,n){let o=e[t+n];if(o===void 0)return"pending";if(o==="[")return pE(e,t,n);if(o==="O")return gE(e,t,n)}i(eS,"parseControlSequence");function hE(e,t){let n=e.codePointAt(t+1),o=n!==void 0&&n>65535?2:1,r=t+1+o;return{sequence:e.slice(t,r),nextIndex:r}}i(hE,"parseEscapedCodePoint");function yE(e){let t=[],n=0,o=i(r=>({events:t,pending:e.slice(r)}),"pendingFrom");for(;n<e.length;){let r=e.indexOf("\x1B",n);if(r===-1)return t.push(e.slice(n)),{events:t,pending:""};if(r>n&&t.push(e.slice(n,r)),r===e.length-1)return o(r);let s=eS(e,r,1);if(s==="pending")return o(r);if(s){t.push(s.sequence),n=s.nextIndex;continue}if(e[r+1]==="\x1B"){if(r+2>=e.length)return o(r);let l=eS(e,r,2);if(l==="pending")return o(r);if(l){t.push(l.sequence),n=l.nextIndex;continue}t.push(e.slice(r,r+2)),n=r+2;continue}let c=hE(e,r);t.push(c.sequence),n=c.nextIndex}return{events:t,pending:""}}i(yE,"parseKeypresses");function hu(){let e="";return{push(t){let n=yE(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(hu,"createInputParser");import{createContext as xE}from"react";var nS=xE({exit(){}});nS.displayName="InternalAppContext";var oS=nS;import{EventEmitter as wE}from"node:events";import{createContext as SE}from"react";var TE={isTTY:!1,isRaw:!1,on(){},off(){},pause(){},resume(){},setRawMode(){}},rS=SE({stdin:TE,internal_eventEmitter:new wE,setRawMode(){},isRawModeSupported:!1,internal_exitOnCtrlC:!0});rS.displayName="InternalStdinContext";var iS=rS;import{createContext as CE}from"react";var bE={isTTY:!1,columns:80,rows:24,write(){return!0},on(){},off(){}},sS=CE({stdout:bE,write(){}});sS.displayName="InternalStdoutContext";var aS=sS;import{createContext as vE}from"react";var IE={isTTY:!1,write(){return!0},on(){},off(){}},cS=vE({stderr:IE,write(){}});cS.displayName="InternalStderrContext";var lS=cS;import{createContext as kE}from"react";var uS=kE({activeId:void 0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){}});uS.displayName="InternalFocusContext";var dS=uS;import{createContext as RE}from"react";var fS=RE({setCursorPosition(){}});fS.displayName="InternalCursorContext";var mS=fS;import ME,{PureComponent as AE}from"react";import*as yu from"node:fs";import{cwd as hS}from"node:process";import wt from"react";import pS from"stack-utils";import EE from"code-excerpt";var Ym=i(e=>e?.replace(`file://${hS()}/`,""),"cleanupPath"),gS=new pS({cwd:hS(),internals:pS.nodeInternals()});function qm({error:e}){let t=e.stack?e.stack.split(`
24
- `).slice(1):void 0,n=t?gS.parseLine(t[0]):void 0,o=Ym(n?.file),r,s=0;if(o&&n?.line&&yu.existsSync(o)){let a=yu.readFileSync(o,"utf8");if(r=EE(a,n.line),r)for(let{line:c}of r)s=Math.max(s,String(c).length)}return wt.createElement(In,{flexDirection:"column",padding:1},wt.createElement(In,null,wt.createElement(Jt,{backgroundColor:"red",color:"white"}," ","ERROR"," "),wt.createElement(Jt,null," ",e.message)),n&&o&&wt.createElement(In,{marginTop:1},wt.createElement(Jt,{dimColor:!0},o,":",n.line,":",n.column)),n&&r&&wt.createElement(In,{marginTop:1,flexDirection:"column"},r.map(({line:a,value:c})=>wt.createElement(In,{key:a},wt.createElement(In,{width:s+1},wt.createElement(Jt,{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," "),":")),wt.createElement(Jt,{key:a,backgroundColor:a===n.line?"red":void 0,color:a===n.line?"white":void 0}," "+c)))),e.stack&&wt.createElement(In,{marginTop:1,flexDirection:"column"},e.stack.split(`
25
- `).slice(1).map(a=>{let c=gS.parseLine(a);return c?wt.createElement(In,{key:a},wt.createElement(Jt,{dimColor:!0},"- "),wt.createElement(Jt,{dimColor:!0,bold:!0},c.function),wt.createElement(Jt,{dimColor:!0,color:"gray","aria-label":`at ${Ym(c.file)??""} line ${c.line} column ${c.column}`}," ","(",Ym(c.file)??"",":",c.line,":",c.column,")")):wt.createElement(In,{key:a},wt.createElement(Jt,{dimColor:!0},"- "),wt.createElement(Jt,{dimColor:!0,bold:!0},a,"\\t"," "))})))}i(qm,"ErrorOverview");var La=class extends AE{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?ME.createElement(qm,{error:this.state.error}):this.props.children}};var LE=" ",OE="\x1B[Z",DE="\x1B";function xS({children:e,stdin:t,stdout:n,stderr:o,writeToStdout:r,writeToStderr:s,exitOnCtrlC:a,onExit:c,setCursorPosition:l}){let[d,m]=Qm(!0),[p,g]=Qm(void 0),[,x]=Qm([]),h=es(0),T=es(0),w=es(new _E);w.current.setMaxListeners(1/0);let b=es(void 0),O=es(hu()),P=es(void 0),N=pt(()=>{P.current&&(clearImmediate(P.current),P.current=void 0)},[]),K=t.isTTY,W=pt(()=>{b.current&&(t.removeListener("readable",b.current),b.current=void 0)},[t]),v=pt(()=>{t.setRawMode(!1),W(),t.unref(),T.current=0,O.current.reset(),N()},[t,W,N]),Z=pt(Q=>{K&&T.current>0&&v(),c(Q)},[K,v,c]),Se=pt(Q=>{if(Q===""&&a){Z();return}Q===DE&&g(M=>M&&void 0)},[a,Z]),z=pt(Q=>{Se(Q),w.current.emit("input",Q)},[Se]),re=pt(()=>{N(),P.current=setImmediate(()=>{P.current=void 0;let Q=O.current.flushPendingEscape();Q&&z(Q)})},[N,z]),A=pt(()=>{N();let Q;for(;(Q=t.read())!==null;){let M=O.current.push(Q);for(let $ of M)z($)}O.current.hasPendingEscape()&&re()},[t,z,N,re]),k=pt(Q=>{if(!K)throw t===$E.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"),Q){T.current===0&&(t.ref(),t.setRawMode(!0),b.current=A,t.addListener("readable",A)),T.current++;return}T.current!==0&&--T.current===0&&v()},[K,t,A,v]),_=pt((Q,M)=>{let $=Q.findIndex(U=>U.id===M);for(let U=$+1;U<Q.length;U++){let J=Q[U];if(J?.isActive)return J.id}},[]),be=pt((Q,M)=>{let $=Q.findIndex(U=>U.id===M);for(let U=$-1;U>=0;U--){let J=Q[U];if(J?.isActive)return J.id}},[]),Pe=pt(()=>{x(Q=>(g(M=>{let $=Q.find(J=>J.isActive)?.id;return _(Q,M)??$}),Q))},[_]),ye=pt(()=>{x(Q=>(g(M=>{let $=Q.findLast(J=>J.isActive)?.id;return be(Q,M)??$}),Q))},[be]);yS(()=>{let Q=i($=>{!d||h.current===0||($===LE&&Pe(),$===OE&&ye())},"handleTabNavigation");w.current.on("input",Q);let M=w.current;return()=>{M.off("input",Q)}},[d,Pe,ye]);let le=pt(()=>{m(!0)},[]),Ae=pt(()=>{m(!1)},[]),ae=pt(Q=>{x(M=>(M.some(U=>U?.id===Q)&&g(Q),M))},[]),q=pt((Q,{autoFocus:M})=>{x($=>(h.current=$.length+1,[...$,{id:Q,isActive:!0}])),M&&g($=>$??Q)},[]),Y=pt(Q=>{g(M=>M===Q?void 0:M),x(M=>{let $=M.filter(U=>U.id!==Q);return h.current=$.length,$})},[]),Re=pt(Q=>{x(M=>M.map($=>$.id!==Q?$:{id:Q,isActive:!0}))},[]),ce=pt(Q=>{g(M=>M===Q?void 0:M),x(M=>M.map($=>$.id!==Q?$:{id:Q,isActive:!1}))},[]);yS(()=>()=>{PE.show(n),K&&T.current>0&&v()},[n,K,v]);let lt=ts(()=>({exit:Z}),[Z]),ze=ts(()=>({stdin:t,setRawMode:k,isRawModeSupported:K,internal_exitOnCtrlC:a,internal_eventEmitter:w.current}),[t,k,K,a]),Oe=ts(()=>({stdout:n,write:r}),[n,r]),ue=ts(()=>({stderr:o,write:s}),[o,s]),Mt=ts(()=>({setCursorPosition:l}),[l]),bt=ts(()=>({activeId:p,add:q,remove:Y,activate:Re,deactivate:ce,enableFocus:le,disableFocus:Ae,focusNext:Pe,focusPrevious:ye,focus:ae}),[p,q,Y,Re,ce,le,Ae,Pe,ye,ae]);return Lr.createElement(oS.Provider,{value:lt},Lr.createElement(iS.Provider,{value:ze},Lr.createElement(aS.Provider,{value:Oe},Lr.createElement(lS.Provider,{value:ue},Lr.createElement(dS.Provider,{value:bt},Lr.createElement(mS.Provider,{value:Mt},Lr.createElement(La,{onError:Z},e)))))))}i(xS,"App");xS.displayName="InternalApp";var wS=xS;var NE={disambiguateEscapeCodes:1,reportEventTypes:2,reportAlternateKeys:4,reportAllKeysAsEscapeCodes:8,reportAssociatedText:16};function SS(e){let t=0;for(let n of e)t|=NE[n];return t}i(SS,"resolveFlags");var ko={shift:1,alt:2,ctrl:4,super:8,hyper:16,meta:32,capsLock:64,numLock:128};var xu=i(()=>{},"noop"),zE=27,XE=91,YE=63,qE=117,QE=48,JE=57,ZE=i(e=>e>=QE&&e<=JE,"isDigitByte"),CS=i((e,t)=>{if(e[t]!==zE||e[t+1]!==XE||e[t+2]!==YE)return;let n=t+3,o=n;for(;n<e.length&&ZE(e[n]);)n++;if(n!==o){if(n===e.length)return{state:"partial"};if(e[n]===qE)return{state:"complete",endIndex:n}}},"matchKittyQueryResponse"),eM=i(e=>{for(let t=0;t<e.length;t++)if(CS(e,t)?.state==="complete")return!0;return!1},"hasCompleteKittyQueryResponse"),tM=i(e=>{let t=[],n=0;for(;n<e.length;){let o=CS(e,n);if(o?.state==="complete"){n=o.endIndex+1;continue}if(o?.state==="partial")break;t.push(e[n]),n++}return t},"stripKittyQueryResponsesAndTrailingPartial"),Jm=i(e=>e instanceof Error||Object.prototype.toString.call(e)==="[object Error]","isErrorInput"),nM=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){HE(this),this.options=t,this.rootNode=tu("ink-root"),this.rootNode.onComputeLayout=this.calculateLayout,this.isScreenReaderEnabled=t.isScreenReaderEnabled??Or.env.INK_SCREEN_READER==="true";let n=t.debug||this.isScreenReaderEnabled,o=t.maxFps??30,r=o>0?Math.max(1,Math.ceil(1e3/o)):0;if(n)this.rootNode.onRender=this.onRender,this.throttledOnRender=void 0;else{let a=BE(this.onRender,r,{leading:!0,trailing:!0});this.rootNode.onRender=()=>{this.hasPendingThrottledRender=!0,a()},this.throttledOnRender=a}this.rootNode.onImmediateRender=this.onRender,this.cellLogUpdate=new pu({isTTY:!!t.stdout.isTTY}),this.prevFrame=Pa(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?jE:UE;this.container=bo.createContainer(this.rootNode,s,null,!1,null,"id",()=>{},()=>{},()=>{},()=>{}),this.unsubscribeExit=FE(this.unmount,{alwaysLast:!1}),Zl()&&bo.injectIntoDevTools(),t.patchConsole&&this.patchConsole(),zo||(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:VE()?.columns??80,"getTerminalWidth");resized=i(()=>{let t=this.getTerminalWidth();if(t<this.lastTerminalWidth){let n=this.lastOutputHeight>0?Ro.eraseLines(this.lastOutputHeight):"";n.length>0&&this.options.stdout.write(n),this.lastOutput="",this.lastOutputToRender="",this.cellLogUpdate.reset(),this.prevFrame=Pa(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(Jm(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(),o=this.options.stdout.rows??24;if(n<=0||o<=0){this.cursorPosition=void 0;return}let r=Math.max(0,Math.min(t.x|0,n-1)),s=Math.max(0,Math.min(t.y|0,o-1));this.cursorPosition={x:r,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 o=this.shellMode,r=this.mouseTrackingActive,s=this.usesVirtualShellOwnership(),a=n??!1;this.shellMode=t,this.mouseTrackingActive=a;let c=this.usesVirtualShellOwnership();(o!==t&&(s||c)||r!==a&&c)&&this.resetOutputTracking()}setAltScreenActive(t,n){let o=this.altScreenActive,r=this.mouseTrackingActive,s=this.usesVirtualShellOwnership(),a=n??!1;this.altScreenActive=t,this.mouseTrackingActive=a,this.shellTransitionPhase=void 0;let c=this.usesVirtualShellOwnership();(o!==t||r!==a&&(s||c))&&this.resetOutputTracking()}clearTextSelection(){}restoreLastOutput=i(()=>{if(this.prevFrame.screen.height===0)return;let t=Pa(this.options.stdout.rows??24,this.getTerminalWidth()),n=this.cellLogUpdate.render(t,this.prevFrame);gu(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,GE.DIRECTION_LTR)},"calculateLayout");onRender=i(()=>{if(this.hasPendingThrottledRender=!1,this.isUnmounted)return;!this.cursorHidden&&!zo&&!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:o,outputHeight:r,staticOutput:s,frame:a}=Pw(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+o);return}if(zo){c&&this.options.stdout.write(s),this.lastOutput=o,this.lastOutputToRender=o+`
29
- `,this.lastOutputHeight=r;return}if(this.isScreenReaderEnabled){let p=Vo(this.options.stdout);if(p&&this.options.stdout.write(Pr),c){let h=this.lastOutputHeight>0?Ro.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(h+s),this.lastOutputHeight=0}if(o===this.lastOutput&&!c){p&&this.options.stdout.write(Ko);return}let g=this.getTerminalWidth(),x=KE(o,g,{trim:!1,hard:!0});if(c)this.options.stdout.write(x);else{let h=this.lastOutputHeight>0?Ro.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(h+x)}this.lastOutput=o,this.lastOutputToRender=x,this.lastOutputHeight=x===""?0:x.split(`
30
- `).length,p&&this.options.stdout.write(Ko);return}c&&(this.fullStaticOutput+=s);let l=this.altScreenActive,m=this.options.stdout.isTTY&&r>=this.options.stdout.rows&&l?o:o+`
31
- `;if(this.lastOutputHeight>=this.options.stdout.rows&&l){if(Or.env.KODAX_FULLSCREEN_CELLDIFF!=="0"&&this.altScreenActive&&this.fullStaticOutput===""){let x=Vo(this.options.stdout);x&&this.options.stdout.write(Pr),this.applyCellFrame(a),x&&this.options.stdout.write(Ko),this.lastOutput=o,this.lastOutputToRender=m,this.lastOutputHeight=r;return}let p=Vo(this.options.stdout);p&&this.options.stdout.write(Pr);let g=this.fullStaticOutput+m;if(this.altScreenActive){let x=this.lastOutputHeight>0?Ro.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(x+g)}else this.options.stdout.write(Ro.clearTerminal+this.fullStaticOutput+o);this.lastOutput=o,this.lastOutputToRender=this.altScreenActive?g:m,this.lastOutputHeight=r,this.invalidateCellFrame(),p&&this.options.stdout.write(Ko);return}if(c){let p=Vo(this.options.stdout);p&&this.options.stdout.write(Pr);let g=this.lastOutputHeight>0?Ro.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(g+s),this.invalidateCellFrame(),this.applyCellFrame(a),p&&this.options.stdout.write(Ko)}else this.applyCellFrame(a);this.lastOutput=o,this.lastOutputToRender=m,this.lastOutputHeight=r},"onRender");applyCellFrame=i(t=>{let n={cellLogUpdate:this.cellLogUpdate,prevFrame:this.prevFrame,stdout:this.options.stdout},o={altScreen:this.altScreenActive,decstbmSafe:Vo(this.options.stdout)},r=Jw(n,t,o);return this.prevFrame=n.prevFrame,r},"applyCellFrame");invalidateCellFrame=i(()=>{this.cellLogUpdate.reset(),this.prevFrame=Pa(this.options.stdout.rows??24,this.getTerminalWidth())},"invalidateCellFrame");render(t){let n=TS.createElement(Vi.Provider,{value:{isScreenReaderEnabled:this.isScreenReaderEnabled}},TS.createElement(wS,{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?bo.updateContainer(n,this.container,null,xu):(bo.updateContainerSync(n,this.container,null,xu),bo.flushSyncWork())}writeToStdout(t){if(this.isUnmounted)return;if(this.options.debug){this.options.stdout.write(t+this.fullStaticOutput+this.lastOutput);return}if(zo){this.options.stdout.write(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.options.stdout.write(t),this.invalidateCellFrame();return}let n=Vo(this.options.stdout);n&&this.options.stdout.write(Pr);let o=this.lastOutputHeight>0?Ro.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(o+t),this.restoreLastOutput(),n&&this.options.stdout.write(Ko)}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(zo){this.options.stderr.write(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.options.stderr.write(t),this.invalidateCellFrame();return}let n=Vo(this.options.stdout);n&&this.options.stdout.write(Pr);let o=this.lastOutputHeight>0?Ro.eraseLines(this.lastOutputHeight):"";o.length>0&&this.options.stdout.write(o),this.options.stderr.write(t),this.restoreLastOutput(),n&&this.options.stdout.write(Ko)}unmount(t){if(this.isUnmounted||this.isUnmounting)return;this.isUnmounting=!0,this.beforeExitHandler&&(Or.off("beforeExit",this.beforeExitHandler),this.beforeExitHandler=void 0);let n=this.options.stdout,o=!n.destroyed&&!n.writableEnded&&(n.writable??!0);if(i(d=>{typeof d.flush=="function"&&(o?d.flush():typeof d.cancel=="function"&&d.cancel())},"settleThrottle")(this.throttledOnRender??{}),o&&(!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(),o){if(this.kittyProtocolEnabled)try{this.options.stdout.write("\x1B[<u")}catch{}zo&&this.options.stdout.write(this.lastOutput+`
32
- `)}this.kittyProtocolEnabled=!1,this.shellTransitionPhase=void 0,this.options.concurrent?bo.updateContainer(null,this.container,null,xu):(bo.updateContainerSync(null,this.container,null,xu),bo.flushSyncWork()),Zw.delete(this.options.stdout);let{exitResult:s}=this,a=i(()=>{Jm(t)?this.rejectExitPromise(t):this.resolveExitPromise(s)},"resolveOrReject"),c=t!==void 0&&!Jm(t),l=n._writableState!==void 0||n.writableLength!==void 0;c?a():o&&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()},Or.once("beforeExit",this.beforeExitHandler)),this.exitPromise}clear(){if(!zo&&!this.options.debug){let t=this.lastOutputHeight>0?Ro.eraseLines(this.lastOutputHeight):"";t.length>0&&this.options.stdout.write(t),this.invalidateCellFrame()}}patchConsole(){this.options.debug||(this.restoreConsole=WE((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 o=t.flags??["disambiguateEscapeCodes"];if(n==="enabled"){this.enableKittyProtocol(o);return}let r=Or.env.TERM??"",s=Or.env.TERM_PROGRAM??"",a="KITTY_WINDOW_ID"in Or.env||r==="xterm-kitty"||s==="WezTerm"||s==="ghostty";!zo&&a&&this.confirmKittySupport(o)}confirmKittySupport(t){let{stdin:n,stdout:o}=this.options,r=[],s=i(()=>{this.cancelKittyDetection=void 0,clearTimeout(c),n.removeListener("data",a);let l=tM(r);r=[],l.length>0&&n.unshift(Buffer.from(l))},"cleanup"),a=i(l=>{let d=typeof l=="string"?Buffer.from(l):l;for(let m of d)r.push(m);eM(r)&&(s(),this.isUnmounted||this.enableKittyProtocol(t))},"onData");n.on("data",a);let c=setTimeout(s,200);this.cancelKittyDetection=s,o.write("\x1B[?u")}enableKittyProtocol(t){this.options.stdout.write(`\x1B[>${SS(t)}u`),this.kittyProtocolEnabled=!0}},bS=nM;var Oa=class{static{i(this,"KodaXRenderer")}engineInstance;isConcurrent;constructor(t){this.engineInstance=new bS(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 Xo=null;function IS(){if(Xo===-1)return null;if(Xo!==null)return Xo;let e=process.env.KODAX_RENDER_TRACE;if(!e||e==="0"||e==="false")return Xo=-1,null;let t=e==="1"||e==="true"?aM(sM(),`kodax-render-trace-${process.pid}.log`):e;try{return Xo=rM(t,"a"),vS(Xo,`=== KODAX render trace pid=${process.pid} ${new Date().toISOString()} platform=${process.platform} node=${process.version} ===
33
- `),Xo}catch{return Xo=-1,null}}i(IS,"resolveTraceFd");function cM(e){let t=IS();if(t!==null)try{vS(t,e)}catch{}}i(cM,"traceLine");var wu=new WeakMap,lM={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},uM={isTTY:!1,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},dM={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function fM(e={}){return e instanceof oM?{stdout:e}:e}i(fM,"getOptions");function mM(e,t,n){let o=wu.get(e);return o?o.isConcurrent!==n&&console.warn(`Warning: render() was called with concurrent: ${n}, but the existing renderer for this stdout uses concurrent: ${o.isConcurrent}. The concurrent option only takes effect on the first render. Call unmount() first if you need to change the rendering mode.`):(o=t(),wu.set(e,o)),o}i(mM,"getInstance");function Su(e){return wu.get(e)}i(Su,"getRendererInstance");function Zm(e,t){let n={stdout:lM,stdin:dM,stderr:uM,debug:!1,exitOnCtrlC:!0,patchConsole:!1,maxFps:30,concurrent:!1,...fM(t)};if(IS()!==null){let s=n.stdout,a=s.write.bind(s),c=0,l=0;s.write=((g,...x)=>(c+=1,l+=typeof g=="string"?Buffer.byteLength(g,"utf8"):g?.length??0,a(g,...x)));let d=0,m=0,p=n.onRender;n.onRender=g=>{let x=iM.now(),h=d===0?0:x-d,T=s,w=T.columns??0,b=T.rows??0;return cM(`frame=${m} renderTime=${g.renderTime.toFixed(2)}ms interval=${h.toFixed(2)}ms writes=${c} bytes=${l} viewport=${w}x${b}
34
- `),c=0,l=0,d=x,m+=1,p?.(g)}}let r=mM(n.stdout,()=>new Oa(n),n.concurrent??!1);return r.render(e),{rerender:r.render,unmount(){r.unmount()},waitUntilExit:r.waitUntilExit,cleanup:i(()=>{wu.delete(n.stdout)},"cleanup"),clear:r.clear}}i(Zm,"render");var kS=In,RS=Jt,ES=Lm;import{Buffer as gM}from"node:buffer";var hM=/^(?:\x1b)([a-zA-Z0-9])$/,yM=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,AS={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"},_S=[...Object.values(AS),"backspace"],xM=i(e=>["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e),"isShiftKey"),wM=i(e=>["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e),"isCtrlKey"),$S=/^\x1b\[(\d+)(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/,SM=/^\x1b\[(\d+);(\d+):(\d+)([A-Za-z~])$/,TM={A:"up",B:"down",C:"right",D:"left",E:"clear",F:"end",H:"home",P:"f1",Q:"f2",R:"f3",S:"f4"},CM={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"},MS={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"},PS=i(e=>e>=0&&e<=1114111&&!(e>=55296&&e<=57343),"isValidCodepoint"),ep=i(e=>PS(e)?String.fromCodePoint(e):"?","safeFromCodePoint");function LS(e){return e===3?"release":e===2?"repeat":"press"}i(LS,"resolveEventType");function OS(e){return{ctrl:!!(e&ko.ctrl),shift:!!(e&ko.shift),meta:!!(e&ko.meta),option:!!(e&ko.alt),super:!!(e&ko.super),hyper:!!(e&ko.hyper),capsLock:!!(e&ko.capsLock),numLock:!!(e&ko.numLock)}}i(OS,"parseKittyModifiers");function bM(e){let t=$S.exec(e);if(!t)return null;let n=Number.parseInt(t[1],10),o=t[2]?Math.max(0,Number.parseInt(t[2],10)-1):0,r=t[3]?Number.parseInt(t[3],10):1,s=t[4];if(!PS(n))return null;let a;s&&(a=s.split(":").map(d=>ep(Number.parseInt(d,10))).join(""));let c,l;return n===32?(c="space",l=!0):n===13?(c="return",l=!0):MS[n]?(c=MS[n],l=!1):n>=1&&n<=26?(c=String.fromCodePoint(n+96),l=!1):(c=ep(n).toLowerCase(),l=!0),l&&!a&&(a=ep(n)),{name:c,...OS(o),eventType:LS(r),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:l,text:a}}i(bM,"parseKittyKeypress");function vM(e){let t=SM.exec(e);if(!t)return null;let n=Number.parseInt(t[1],10),o=Math.max(0,Number.parseInt(t[2],10)-1),r=Number.parseInt(t[3],10),s=t[4],a=s==="~"?CM[n]:TM[s];return a?{name:a,...OS(o),eventType:LS(r),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:!1}:null}i(vM,"parseKittySpecialKey");var tp="\x1B[200~",IM="\x1B[201~";function kM(e){if(!e.startsWith(tp))return null;let t=e.indexOf(IM,tp.length);return t===-1?null:e.slice(tp.length,t)}i(kM,"extractBracketedPaste");function np(e=""){let t=e,n;if(gM.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=kM(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 o=bM(t);if(o)return o;let r=vM(t);if(r)return r;if($S.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=hM.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(n[1]??"");else if(n=yM.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=AS[c]??"",s.shift=xM(c)||s.shift,s.ctrl=wM(c)||s.ctrl}return s}i(np,"parseKeypress");var MM=50;function Cu(e){return{columns:e?.columns??80,rows:e?.rows??24}}i(Cu,"resolveTerminalSize");var Yo=RM(null),op={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")};var HS={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function AM(e){for(let t of e)if(t.rawMode)return!0;return!1}i(AM,"hasRawModeSubscribers");function _M({stdin:e,setRawMode:t,isRawModeSupported:n}){let o=new Set,r,s=!1,a=i(m=>{for(let p of o)p.listener(m)},"handleData"),c=i(()=>{if(s){try{t(!1)}catch{}s=!1}},"disableRawModeIfOwned"),l=i(()=>{r?.off?.("data",a),r=void 0,c()},"detachInput"),d=i(()=>{if(r&&r!==e&&l(),!e||o.size===0){l();return}if(r!==e&&(e.on?.("data",a),r=e),!(n&&AM(o))){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 o.add(g),d(),()=>{o.delete(g),d()}},dispose(){o.clear(),l()}}}i(_M,"createTerminalInputController");var $M=i(({children:e,runtime:t})=>{let[n,o]=EM(()=>t.terminalSize);ns(()=>{if(o(Cu(t.stdout)),typeof t.stdout?.on!="function"||typeof t.stdout?.off!="function")return;let c=i(()=>{o(Cu(t.stdout))},"handleResize");return t.stdout.on("resize",c),()=>{t.stdout.off?.("resize",c)}},[t.stdout]);let r=BS(c=>typeof t.stdout?.write!="function"?!1:(t.stdout.write(c),!0),[t.stdout]),s=DS(()=>_M({stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported}),[t.stdin,t.isRawModeSupported,t.setRawMode]);ns(()=>()=>{s.dispose()},[s]);let a=DS(()=>({stdout:t.stdout,stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported,exit:t.exit,terminalSize:n,isTTY:t.stdout?.isTTY===!0,writeRaw:r,subscribeInput:s.subscribe}),[s.subscribe,t.exit,t.isRawModeSupported,t.setRawMode,t.stdin,t.stdout,s.subscribe,n,r]);return NS(Yo.Provider,{value:a,children:e})},"TuiRuntimeProvider");function PM(e){let t=e?.stdout??op,n=e?.stdin??HS,o=i(s=>{typeof n?.setRawMode=="function"&&n.setRawMode(s)},"setRawMode"),r;return{stdout:t,stdin:n,setRawMode:o,isRawModeSupported:typeof n?.setRawMode=="function",exit:i(()=>{r?.()},"exit"),terminalSize:Cu(t),isTTY:t?.isTTY===!0,writeRaw:i(s=>typeof t?.write!="function"?!1:(t.write(s),!0),"writeRaw"),subscribeInput:i(()=>()=>{},"subscribeInput"),attachExit(s){r=s}}}i(PM,"createRuntimeValue");function bu(e,t){let n=PM(t),o=Zm(NS($M,{runtime:n,children:e}),t);return n.attachExit(o.unmount),o}i(bu,"render");var I=kS,C=RS,os=ES;function LM(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&&_S.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(LM,"createCompatKeypress");function vu(e,t={}){let{isActive:n=!0}=t,o=Tu(e),r=Tu(null),s=Tu(null);ns(()=>{o.current=e},[e]),ns(()=>{if(!n){r.current=null,s.current&&(clearTimeout(s.current),s.current=null);return}return r.current=hu(),()=>{r.current?.reset(),r.current=null,s.current&&(clearTimeout(s.current),s.current=null)}},[n]);let a=BS(c=>{let{input:l,key:d}=LM(np(c));l==="c"&&d.ctrl||o.current(l,d)},[]);Na(c=>{if(!n)return;s.current&&(clearTimeout(s.current),s.current=null);let l=r.current,d=typeof c=="string"?c:c.toString("utf8"),m=l?.push(d)??[d];for(let p of m)a(p);d.length>0&&(s.current=setTimeout(()=>{let p=r.current?.flushPendingEscape();p&&a(p)},MM))},{isActive:n,rawMode:!0})}i(vu,"useInput");function eo(){return{stdout:Dr(Yo)?.stdout??op}}i(eo,"useStdout");function Da(){let e=Dr(Yo),t=e?.stdin??HS,n=e?.setRawMode??(o=>{typeof t?.setRawMode=="function"&&t.setRawMode(o)});return{stdin:t,setRawMode:n,isRawModeSupported:e?.isRawModeSupported??typeof t?.setRawMode=="function"}}i(Da,"useStdin");function qo(){return{exit:Dr(Yo)?.exit??(()=>{})}}i(qo,"useApp");function rs(){return Dr(Yo)?.stdout??op}i(rs,"useTerminalOutput");function is(){let e=rs();return Dr(Yo)?.terminalSize??Cu(e)}i(is,"useTerminalSize");function ss(){let e=rs();return Dr(Yo)?.writeRaw??(n=>typeof e?.write!="function"?!1:(e.write(n),!0))}i(ss,"useTerminalWrite");function Na(e,t={}){let{isActive:n=!0,rawMode:o=!0}=t,r=Dr(Yo),{stdin:s,setRawMode:a,isRawModeSupported:c}=Da(),l=Tu(e);ns(()=>{l.current=e},[e]),ns(()=>{if(!n||!s)return;if(r)return r.subscribeInput(g=>{l.current(g)},{rawMode:o});let d=s,m=d.isRaw;o&&c&&m===!1&&a(!0);let p=i(g=>{l.current(g)},"handleData");return d.on?.("data",p),()=>{if(d.off?.("data",p),o&&c&&m===!1)try{a(!1)}catch{}}},[r,s,n,o,c,a])}i(Na,"useTerminalInput");import{jsx as FM}from"react/jsx-runtime";import{useInsertionEffect as WM,useMemo as UM}from"react";var OM="\x1B[?1049h",DM="\x1B[?1049l";var NM="\x1B[2J",BM="\x1B[?1000h\x1B[?1002h\x1B[?1006h",HM="\x1B[?1006l\x1B[?1002l\x1B[?1000l";function Iu(e={}){let t=e.mouseTracking!==!1,n=e.clearOnEnter===!0;return OM+(n?NM:"")+"\x1B[H"+(t?BM:"")}i(Iu,"buildAlternateScreenEnterSequence");function ku(e={}){return(e.mouseTracking!==!1?HM:"")+DM}i(ku,"buildAlternateScreenExitSequence");var rp=i(({children:e,mouseTracking:t=!0,enabled:n=!0,clearOnEnter:o=!1})=>{let r=rs(),{rows:s}=is(),a=ss(),c=UM(()=>n&&r.isTTY===!0,[n,r]);return WM(()=>{if(!c)return;let l=Su(r);if(l?.setShellMode?.("virtual",t),l?.beginShellTransition?.("enter-alt-screen"),!!a(Iu({mouseTracking:t,clearOnEnter:o})))return l?.setAltScreenActive?.(!0,t),()=>{l?.beginShellTransition?.("exit-alt-screen"),l?.clearTextSelection?.(),l?.setAltScreenActive?.(!1),a(ku({mouseTracking:t}))}},[o,c,t,r,a]),FM(I,{flexDirection:"column",height:s,width:"100%",flexGrow:1,flexShrink:0,children:e})},"AlternateScreen");import{jsx as Qo,jsxs as jS}from"react/jsx-runtime";import{jsx as jM}from"react/jsx-runtime";import GM,{useEffect as ip,useImperativeHandle as KM,useMemo as VM,useRef as sp,useCallback as ap,useState as zM}from"react";function FS(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:cp(t,t.scrollTop)}}i(FS,"normalizeScrollSnapshot");function WS(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(WS,"areSnapshotsEqual");function XM(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(XM,"areWindowsEqual");function cp(e,t){let n=Math.max(0,e.scrollHeight-e.viewportHeight),o=e.clampMin??0,r=e.clampMax??n;return Math.max(o,Math.min(Math.floor(t),Math.min(n,r)))}i(cp,"clampScrollTop");function US(e){let t=Math.max(0,e.viewportHeight),n=cp(e,e.scrollTop),o=Math.max(0,e.scrollHeight-n),r=Math.max(0,o-t);return{start:r,end:o,scrollTop:n,scrollHeight:e.scrollHeight,viewportHeight:t,viewportTop:r,pendingDelta:e.pendingDelta,sticky:e.sticky}}i(US,"resolveScrollWindow");function YM(e){let t=cp(e,e.scrollTop);return Math.max(0,e.scrollHeight-e.viewportHeight-t)}i(YM,"resolveNativeScrollTop");var lp=i(({children:e,width:t,flexGrow:n=0,flexShrink:o=1,paddingTop:r=0,scrollTop:s=0,scrollHeight:a=0,viewportHeight:c=0,stickyScroll:l=!0,scrollRef:d,onScrollTopChange:m,onStickyChange:p,onWindowChange:g,renderWindow:x})=>{let h=sp(null),T=sp(new Set),w=sp(FS({scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,sticky:l})),[b,O]=zM(()=>US(w.current)),P=ap(()=>{for(let z of T.current)z()},[]),N=ap((z,re=!0)=>{let A=w.current,k=FS(z),_=US(k);return w.current=k,O(be=>XM(be,_)?be:_),re&&!WS(A,k)&&P(),{previous:A,snapshot:k,window:_,changed:!WS(A,k)}},[P]);ip(()=>{let z=w.current,re={scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,clampMin:z.clampMin,clampMax:z.clampMax,sticky:l},A=N(re);A.previous.sticky!==l&&p?.(l),A.window.scrollTop!==s&&m?.(A.window.scrollTop)},[N,p,m,a,s,l,c]);let K=ap(()=>{let z=h.current;if(!z)return;let re=typeof z.scrollHeight=="number"?Math.max(0,Math.floor(z.scrollHeight)):void 0,A=typeof z.scrollViewportHeight=="number"?Math.max(0,Math.floor(z.scrollViewportHeight)):void 0,k=typeof z.scrollViewportTop=="number"?Math.max(0,Math.floor(z.scrollViewportTop)):void 0;if(re===void 0||A===void 0||k===void 0)return;let _=Math.max(0,re-A-k),be=N({...w.current,scrollTop:_,scrollHeight:re,viewportHeight:A});be.changed&&be.window.scrollTop!==be.previous.scrollTop&&m?.(be.window.scrollTop)},[N,m]);ip(()=>{K()},[K]);let W=VM(()=>({scrollTo(z){let re=N({...w.current,scrollTop:z,pendingDelta:0,sticky:!1});re.previous.sticky!==!1&&p?.(!1),m?.(re.window.scrollTop)},scrollBy(z){let re=N({...w.current,scrollTop:w.current.scrollTop+z,pendingDelta:w.current.pendingDelta+Math.floor(z),sticky:!1});re.previous.sticky!==!1&&p?.(!1),m?.(re.window.scrollTop)},scrollToElement(z,re=0){let A=N({...w.current,scrollTop:z-re,pendingDelta:0,sticky:!1});A.previous.sticky!==!1&&p?.(!1),m?.(A.window.scrollTop)},scrollToBottom(){let z=N({...w.current,scrollTop:0,pendingDelta:0,sticky:!0});m?.(z.window.scrollTop),z.previous.sticky!==!0&&p?.(!0)},getScrollTop(){return w.current.scrollTop},getPendingDelta(){return w.current.pendingDelta},getScrollHeight(){return h.current?.scrollHeight??w.current.scrollHeight},getViewportHeight(){return h.current?.scrollViewportHeight??b.viewportHeight},getViewportTop(){return h.current?.scrollViewportTop??b.viewportTop},isSticky(){return w.current.sticky},subscribe(z){return T.current.add(z),()=>{T.current.delete(z)}},setClampBounds(z,re){let A=N({...w.current,clampMin:z,clampMax:re});A.window.scrollTop!==A.previous.scrollTop&&m?.(A.window.scrollTop)}}),[N,m,p]);KM(d,()=>W,[W]),ip(()=>{g?.(b)},[g,b]);let v=x?x(b):e,Z=Math.max(0,c+r),Se=YM(w.current);return GM.createElement("ink-box",{ref:h,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:n,flexShrink:o,width:t,height:Z,paddingTop:r,overflowX:"visible",overflowY:"scroll"},scrollTop:Se,scrollHeight:w.current.scrollHeight,scrollViewportHeight:w.current.viewportHeight,scrollViewportTop:b.viewportTop,pendingScrollDelta:w.current.pendingDelta,virtualScrollWindowed:!!x,...w.current.clampMin!==void 0?{scrollClampMin:w.current.clampMin}:{},...w.current.clampMax!==void 0?{scrollClampMax:w.current.clampMax}:{},...l?{stickyScroll:!0}:{}},jM(I,{flexDirection:"column",flexGrow:1,flexShrink:0,width:"100%",children:v}))},"ScrollBox");var qM=80;function Ba(e){if(!(!e?.visible||!e.label))return e.hint?`${e.label}: ${e.hint}`:e.label}i(Ba,"resolveFullscreenChromeSlotText");function Ru(e,t){if(!e)return 0;let n=Math.max(1,(typeof t=="number"?t:qM)-2);return Math.max(1,Qt(e.split(`
36
- `),n,0,0).visualLines.length)}i(Ru,"measureFullscreenChromeSlotRows");var up=i(({top:e,topRows:t=0,scrollable:n,renderScrollableWindow:o,bottom:r,overlay:s,stickyHeader:a,jumpToLatest:c,width:l,scrollTop:d=0,scrollHeight:m=0,viewportHeight:p=0,stickyScroll:g=!0,scrollRef:x,onScrollTopChange:h,onStickyChange:T,onWindowChange:w})=>{let b=i((Se,z)=>z?Qo(I,{paddingX:1,children:Qo(C,{dimColor:Se?.tone!=="accent",children:z})}):null,"renderChromeSlot"),O=Ba(a),P=Ba(c),N=Ru(O,l),K=b(a,O),W=s?null:b(c,P),v=Math.max(0,e?t:0),Z=Math.max(0,p-N-v);return jS(I,{flexDirection:"column",width:l,flexGrow:1,flexShrink:0,children:[e?Qo(I,{flexDirection:"column",flexShrink:0,children:e}):null,jS(I,{flexDirection:"column",flexGrow:1,overflowY:"hidden",children:[Qo(lp,{width:l,flexGrow:1,flexShrink:1,paddingTop:N,scrollTop:d,scrollHeight:m,viewportHeight:Z,stickyScroll:g,scrollRef:x,onScrollTopChange:h,onStickyChange:T,onWindowChange:w,renderWindow:o,children:n}),K?Qo(I,{position:"absolute",top:0,left:0,right:0,flexDirection:"column",children:K}):null,W?Qo(I,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:W}):null,s?Qo(I,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:s}):null]}),Qo(I,{flexDirection:"column",flexShrink:0,children:r})]})},"FullscreenLayout");import JM from"string-width";function ZM(){return is().columns}i(ZM,"useTerminalWidth");var dp=i(({lines:e,cursorRow:t,cursorCol:n,prompt:o=">",placeholder:r="Type your message...",focus:s=!0,terminalFocused:a=!0,isPasting:c=!1,editingMode:l="idle",theme:d="dark",width:m})=>{let p=Eu(()=>ee(d),[d]),g=ZM(),x=m??g,h=JM(o)+1,T=Eu(()=>{let K=Math.max(20,x-h);return Qt(e,K,t,n)},[e,x,t,n,h]),w=Eu(()=>{if(!T)return null;let[K,W]=_m(T,[t,n]);return{row:K,col:W}},[T,t,n]),b=s&&a,O=c&&e.some(K=>K.length>0),P=T,N=w;return kn(I,{flexDirection:"column",borderStyle:"round",borderColor:p.colors.dim,borderTop:!0,borderBottom:!0,borderLeft:!1,borderRight:!1,width:m??"100%",children:[O?Zt(I,{children:Zt(C,{dimColor:!0,children:l==="pasting"?"Pasting input...":"Editing input..."})}):null,P.visualLines.length===0||P.visualLines.length===1&&P.visualLines[0]===""?kn(I,{children:[kn(C,{color:p.colors.primary,children:[o," "]}),b?kn(QM,{children:[Zt(C,{backgroundColor:p.colors.primary,color:"#000000",children:" "}),Zt(C,{dimColor:!0,children:r})]}):Zt(C,{dimColor:!0,children:r})]}):P.visualLines.map((K,W)=>{let v=W===N.row,Z=W===0?o:" ".repeat(h-1);if(v&&b){let{before:Se,current:z,after:re}=ow(K,N.col),A=z||" ";return kn(I,{children:[kn(C,{color:p.colors.primary,children:[Z," "]}),Zt(C,{color:p.colors.text,children:Se}),Zt(C,{backgroundColor:p.colors.primary,color:"#000000",children:A}),Zt(C,{color:p.colors.text,children:re})]},W)}return kn(I,{children:[kn(C,{color:p.colors.dim,children:[Z," "]}),Zt(C,{color:p.colors.text,children:K})]},W)})]})},"TextInput"),eA=i(({value:e,cursorCol:t,prompt:n=">",placeholder:o,focus:r=!0,theme:s="dark"})=>{let a=Eu(()=>ee(s),[s]);if(!e)return kn(I,{children:[kn(C,{color:a.colors.primary,children:[n," "]}),o&&Zt(C,{dimColor:!0,children:o}),r&&Zt(C,{backgroundColor:a.colors.primary,color:"#000000",children:" "})]});let c=qt(e),l=c.slice(0,t).join(""),d=c[t]??" ",m=c.slice(t+1).join("");return kn(I,{children:[kn(C,{color:a.colors.primary,children:[n," "]}),Zt(C,{color:a.colors.text,children:l}),Zt(C,{backgroundColor:a.colors.primary,color:"#000000",children:d}),Zt(C,{color:a.colors.text,children:m})]})},"SingleLineTextInput");var fp={"[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"}},tA=/^\x1b\[([0-9]+);?([0-9]+)?([~A-Za-z])?/,nA=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/;function oA(e){switch(e&3){case 0:return"left";case 1:return"middle";case 2:return"right";default:return"unknown"}}i(oA,"parseMouseButton");function rA(e){return{shift:(e&1)!==0,alt:(e&2)!==0,ctrl:(e&4)!==0,meta:(e&8)!==0}}i(rA,"parseModifier");function Mu(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 o=e.match(nA);if(o){let[,r,s,a,c]=o,l=Number(r),d=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:d},n):l===65?(n.name="wheeldown",n.mouse={action:"wheel",button:"wheeldown",row:m,column:d},n):(n.name="mouse",n.mouse={action:c==="m"?"release":(l&32)!==0?"drag":"press",button:oA(l),row:m,column:d},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 r=e.slice(1);if(r.length===1)return n.meta=!0,r>="a"&&r<="z"?(n.name=r,n.insertable=!0):r>="A"&&r<="Z"?(n.name=r.toLowerCase(),n.shift=!0,n.insertable=!0):r.charCodeAt(0)>=32&&(n.name=r,n.insertable=!0),n;let s=e.match(tA);if(s){let[,l,d,m]=s,p=m||"~",x=fp[r];if(x)return Object.assign(n,x),n;let h="["+l+p+"]",T=fp[h];if(T&&T.name){if(n.name=T.name,d){let w=parseInt(d,10)-1,b=rA(w);Object.assign(n,b)}return n}}let c=fp[r];if(c)return Object.assign(n,c),n;if(e.startsWith("\x1B\x1B")){n.meta=!0;let l="\x1B"+e.slice(2),d=Mu(l);return n.name=d.name,n}}return n}i(Mu,"parseKeypress");var Ha=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 o=typeof t=="string"?t:t.toString("utf8");this.buffer+=o,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=Mu(s,this.inBracketedPaste);this.emit(a)}break}let{sequence:n,remaining:o}=t;this.buffer=o;let r=Mu(n,this.inBracketedPaste);if(r.name==="paste_start"){this.inBracketedPaste=!0,this.pasteAccumulator="";continue}if(r.name==="paste_end"){this.inBracketedPaste=!1,this.flushPasteAccumulator();continue}this.emit(r)}}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 o=2;for(;o<this.buffer.length;){let a=this.buffer[o];if(!a)break;if(a>="0"&&a<="9"||a===";"){o++;continue}if(a>="A"&&a<="Z"||a>="a"&&a<="z"||a==="~"){o++;break}break}let r=this.buffer[o-1];return r&&(r>="A"&&r<="Z"||r>="a"&&r<="z"||r==="~")?{sequence:this.buffer.slice(0,o),remaining:this.buffer.slice(o)}:this.flushing?{sequence:this.buffer.slice(0,o),remaining:this.buffer.slice(o)}: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 GS(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(GS,"isFunctionKey");function iA(e){return e.ctrl||e.meta||GS(e)?!1:e.sequence.length===1&&e.sequence.charCodeAt(0)>=32}i(iA,"isPrintable");function sA(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(sA,"getKeyDisplayName");var dn;(function(e){e.Idle="idle",e.Responding="responding",e.WaitingForConfirmation="waiting_for_confirmation"})(dn||(dn={}));var L;(function(e){e.Scheduled="scheduled",e.Validating="validating",e.AwaitingApproval="awaiting_approval",e.Executing="executing",e.Success="success",e.Error="error",e.Cancelled="cancelled"})(L||(L={}));var HU={[L.Scheduled]:"\u25CB",[L.Validating]:"\u25CC",[L.AwaitingApproval]:"?",[L.Executing]:"\u25CB",[L.Success]:"\u2713",[L.Error]:"\u2717",[L.Cancelled]:"-"},Ut;(function(e){e[e.Low=-100]="Low",e[e.Normal=0]="Normal",e[e.High=100]="High",e[e.Critical=200]="Critical"})(Ut||(Ut={}));var mp={streamingState:dn.Idle,currentResponse:"",history:[],pendingToolCalls:[],sessionId:"",provider:"",model:"",isLoading:!1};import aA,{createContext as cA,useContext as lA,useEffect as KS,useCallback as uA,useRef as pp}from"react";var dA=50;function gp(){let e=new Map,t=null,n=i(()=>(t===null&&(t=[...e.keys()].sort((o,r)=>r-o)),t),"getSortedPriorities");return{register(o,r){return e.has(o)||e.set(o,[]),e.get(o).push(r),t=null,()=>{let s=e.get(o);if(!s)return;let a=s.indexOf(r);a>=0&&s.splice(a,1),s.length===0&&e.delete(o),t=null}},dispatch(o){let r=n();for(let s of r){let a=e.get(s);if(a)for(let c=a.length-1;c>=0;c-=1){let l=a[c];if(l&&l(o)===!0)return!0}}return!1},size(){let o=0;for(let r of e.values())o+=r.length;return o}}}i(gp,"createKeypressManager");var VS=cA(null);function Au({children:e,enabled:t=!0}){let{stdout:n}=eo(),o=pp(gp()),r=pp(null),s=pp(null),a=uA(c=>{t&&o.current.dispatch(c)},[t]);return KS(()=>{if(!t)return;n?.write?.("\x1B[?2004h");let c=new Ha;r.current=c;let l=c.onKeypress(a);return()=>{s.current&&(clearTimeout(s.current),s.current=null),l(),r.current=null;try{n?.write?.("\x1B[?2004l")}catch{}}},[a,t,n]),Na(c=>{t&&(s.current&&clearTimeout(s.current),r.current?.feed(c),c.length!==0&&(s.current=setTimeout(()=>{r.current?.feed("",!0)},dA)))},{isActive:t,rawMode:!0}),aA.createElement(VS.Provider,{value:o.current},e)}i(Au,"KeypressProvider");function hp(){let e=lA(VS);if(!e)throw new Error("useKeypressManager must be used within a KeypressProvider");return e}i(hp,"useKeypressManager");function fn(e,t,n=[]){let o=hp(),r=typeof e=="function",s,a,c;if(r){s=e;let l=t??{};c=l.isActive??!0;let d=l.priority;a=typeof d=="boolean"?d?Ut.High:Ut.Normal:d??Ut.Normal}else a=typeof e=="boolean"?e?Ut.High:Ut.Normal:e,s=t,c=!0;KS(()=>c?o.register(a,s):void 0,[o,a,c,...r?[]:n])}i(fn,"useKeypress");function Rn(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(Rn,"createKeyMatcher");var zS={isEnter:Rn({name:"return"}),isEscape:Rn({name:"escape"}),isCtrlC:Rn({name:"c",ctrl:!0}),isCtrlD:Rn({name:"d",ctrl:!0}),isUp:Rn({name:"up"}),isDown:Rn({name:"down"}),isLeft:Rn({name:"left"}),isRight:Rn({name:"right"}),isBackspace:Rn({name:"backspace"}),isDelete:Rn({name:"delete"}),isTab:Rn({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 Fa=["plan","accept-edits","auto","auto-in-project"];function en(e){return e==="auto"||e==="auto-in-project"}i(en,"isAutoMode");function as(e){switch(e){case"plan":return"Plan";case"accept-edits":return"Edits";case"auto":case"auto-in-project":return"Auto"}}i(as,"permissionModeDisplayName");var fA='[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 _u(e=console.warn){let t=!1;return()=>{t||(t=!0,e(fA))}}i(_u,"createAutoInProjectDeprecationEmitter");var XS=Lx(),En=new Set(XS.filter(e=>e.sideEffect==="mutates-fs"&&e.requiredParams.includes("path")).map(e=>e.name)),YS=new Set(XS.filter(e=>e.sideEffect!=="readonly").map(e=>e.name)),qS=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"]),QS=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 Nr(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(Nr,"computeConfirmTools");function yp(e){return e!==void 0&&Fa.includes(e)}i(yp,"isPermissionMode");function to(e,t){return yp(e)?e:t}i(to,"normalizePermissionMode");import $u from"fs";import St from"path";import Ua from"os";var uT=Nk(aT(),1);var cT=new Set(["/dev/null","nul","NUL"]);function Tp(e){return cT.has(e)||cT.has(e.toLowerCase())}i(Tp,"isNullDevice");function Wa(e){let t=e.trim();if(!t)return{statements:[],unparseable:!1};if(t.includes("`"))return{statements:[],unparseable:!0};let n;try{n=(0,uT.parse)(t)}catch{return{statements:[],unparseable:!0}}let o=[],r=[],s=[],a=[],c=null,l=!1,d=i(()=>{(s.length>0||a.length>0)&&(r.push({argv:s,redirections:a}),s=[],a=[])},"flushStage"),m=i(p=>{d(),r.length>0&&(o.push({precedingOp:c,stages:r}),r=[]),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 x=g.op;if(x==="&&"||x==="||"||x===";"){m(x);continue}if(x==="|"){d();continue}if(x==="&"){let h=n[p+1];if(h!==void 0&&typeof h!="string"&&"op"in h&&(h.op===">"||h.op===">>")){let T=n[p+2];if(typeof T!="string"){l=!0,p+=1;continue}a.push(lT(`&${h.op}`,T)),p+=2;continue}l=!0;continue}if(CA(x)){let h=null,T=s[s.length-1];T!==void 0&&/^[0-9]+$/.test(T)&&(h=T,s.pop());let w=n[p+1];if(typeof w!="string"){l=!0;continue}a.push(lT(h?`${h}${x}`:x,w)),p+=1;continue}if(x==="glob"){let h=g.pattern;typeof h=="string"?s.push(h):l=!0;continue}l=!0;continue}if("comment"in g)break;l=!0}return m(null),{statements:o,unparseable:l}}i(Wa,"parseBashCommand");var TA=new Set([">",">>","<","<<","<<<","&>","&>>"]),dT=/^([0-9]+|&)(>>?|<<?)$/;function CA(e){return TA.has(e)||dT.test(e)}i(CA,"isRedirectionOp");function lT(e,t){let n=null,o=e,r=dT.exec(e);return r&&(n=r[1],o=r[2]),{op:e,fd:n,append:o===">>"||e==="&>>",input:o==="<"||o==="<<"||e==="<<<",target:t}}i(lT,"parseRedirection");var bA=St.join(".agent","plan_mode_doc.md"),Pu=new Map,Lu=null;function vA(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\s+/g," ").toLowerCase();for(let n of QS)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 r=t.split(/\s+/);if(r.includes("-f")||r.includes("--file"))return!1}if(["node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc","ruby","perl"].includes(n)){let r=t.split(/\s+/).slice(1);if(r.length>0&&!r.every(s=>/^(-v|--version|-h|--help)$/.test(s)))return!1}return!0}return!1}i(vA,"isSingleBashReadCommand");var IA=/^[a-zA-Z0-9]+$/;function kA(e){let t=e.trim();if(!t.endsWith("--help")||t.includes('"')||t.includes("'"))return!1;let n=!1;for(let o of t.split(/\s+/))if(o.startsWith("-"))if(o==="--help")n=!0;else return!1;else if(!IA.test(o))return!1;return n}i(kA,"isHelpCommand");function Wn(e){if(!e||!e.trim())return!1;if(kA(e))return!0;let t=e.trim().replace(/\\\r?\n/g," "),n=Wa(t);if(n.unparseable||n.statements.length===0)return!1;let o=n.statements.length>1||(n.statements[0]?.stages.length??0)>1;for(let r of n.statements){if(r.precedingOp!==null&&r.precedingOp!=="&&")return!1;for(let s of r.stages){for(let c of s.redirections)if(c.input||!Tp(c.target))return!1;let a=s.argv.join(" ");if(a&&!(o&&s.argv[0]?.toLowerCase()==="cd"&&s.argv.length>=2)&&!vA(a))return!1}}return!0}i(Wn,"isBashReadCommand");function bp(e){let t=e.trim();return t?Wn(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(bp,"getDirectShellBypassBlockReason");var mT=new Set(["remove-item","set-content","add-content","out-file","new-item","copy-item","move-item","rename-item","ni"]);function Un(e){if(!e||!e.trim())return!1;let t=Wa(e);if(t.unparseable)return!1;for(let n of t.statements)for(let o of n.stages){let r=o.argv.map(s=>s.toLowerCase());if(r.length>0){let s=r[0],a=r.length>=2?`${r[0]} ${r[1]}`:null;for(let c of qS)if(c===s||a!==null&&c===a)return!0}for(let s of r)if(mT.has(s))return!0;for(let s of o.redirections)if(!s.input&&!Tp(s.target))return!0}return!1}i(Un,"isBashWriteCommand");function vp(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(vp,"parseAllowedToolPattern");function RA(e,t){if(t==="*")return!1;if(t.endsWith(":*")){let n=t.slice(0,-2);return e.startsWith(n)}return e===t}i(RA,"matchesBashPatternLegacy");function EA(e,t){if(t==="*")return!1;if(t.endsWith(":*")){let n=t.slice(0,-2);return e===n}return e===t}i(EA,"matchesBashPatternByExtractedPrefix");async function Jo(e,t,n,o,r){if(e.toLowerCase()!=="bash")return!1;let s=t.command??"",a=[];for(let c of n){let l=vp(c);if(l.tool==="bash"){if(l.pattern===null)return!0;a.push({pattern:l.pattern})}}if(a.length===0)return!1;if(o){let c;try{c=await o.extract(s,r)}catch{return!1}if(c.kind!=="prefix")return!1;for(let{pattern:l}of a)if(l&&EA(c.value,l))return!0;return!1}for(let{pattern:c}of a)if(c&&RA(s,c))return!0;return!1}i(Jo,"isToolCallAllowed");function Du(e,t,n){if(e.toLowerCase()!=="bash")return"";let o=t.command??"",r=o.split(" ");return r.length>1?`Bash(${r.slice(0,2).join(" ")}:*)`:`Bash(${o})`}i(Du,"generateSavePattern");function no(e,t){try{let n=St.resolve(e),o=St.resolve(t),r=Ai(),s=St.join(o,".kodax");return cs(n,s)||cs(n,r)?!0:!(cs(n,o)||hT().some(c=>cs(n,c)))}catch{return!1}}i(no,"isAlwaysConfirmPath");function fT(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"&&MA.test(e)):!!(e.startsWith(".")&&/[/\\]/.test(e))}i(fT,"looksLikePath");var MA=/^\/[A-Za-z][A-Za-z0-9]*(?::[A-Za-z0-9]+)?$/;function AA(e){let t=[],n=/["']([^"']+)["']/g,o;for(;(o=n.exec(e))!==null;)t.push(o[1]);let r=/(?:^|\s)(\.\.?\/[^\s]+|\.\.?\\[^\s]+|[a-zA-Z]:\\[^\s]+|~\/[^\s]+|\.[^\s]*[/\\][^\s]*)/g;for(;(o=r.exec(e))!==null;)t.push(o[1]);return t}i(AA,"legacyRegexPathScan");function Nu(e){let t=new Set,n=Wa(e);if(!n.unparseable)for(let o of n.statements)for(let r of o.stages){for(let s of r.argv)fT(s)&&t.add(s);for(let s of r.redirections)fT(s.target)&&t.add(s.target)}for(let o of AA(e))t.add(o);return Array.from(t)}i(Nu,"extractPathsFromCommand");function Ip(e,t){let n=Nu(e);for(let o of n)if(no(o,t))return!0;return!1}i(Ip,"isCommandOnProtectedPath");function Ou(e){let t=St.normalize(e);return process.platform==="win32"?t.toLowerCase():t}i(Ou,"normalizePathForComparison");function _A(e,t){return Ou(e)===Ou(t)}i(_A,"pathsEqual");function cs(e,t){let n=Ou(e),o=Ou(t);return n===o||n.startsWith(o+St.sep)}i(cs,"isPathInsideDirectory");function Bu(e,t){try{let n=St.resolve(t),o=St.resolve(n,gT(pT(e)));return cs(o,n)}catch{return!1}}i(Bu,"isPathInsideProject");function $A(e){let t=e.match(/[A-Za-z]:[\\/][^\s;|&<>(){}'"]+|\/[^\s;|&<>(){}'"]+/g);return t?t.filter(n=>!/^(?:\/dev\/|\/proc\/)/i.test(n)):[]}i($A,"collectAbsolutePathCandidates");function kp(e){let t=St.resolve(e),n=Pu.get(t);if(n)return n;if($u.existsSync(t)){let c=$u.realpathSync.native(t);return Pu.set(t,c),c}let o=[],r=t;for(;!$u.existsSync(r);){let c=St.dirname(r);if(c===r)return Pu.set(t,t),t;o.unshift(St.basename(r)),r=c}let s=$u.realpathSync.native(r),a=St.join(s,...o);return Pu.set(t,a),a}i(kp,"resolveExistingPathPrefix");function pT(e){return e==="~"?Ua.homedir():e.startsWith(`~${St.sep}`)||e.startsWith("~/")||e.startsWith("~\\")?St.join(Ua.homedir(),e.slice(2)):e}i(pT,"expandHomeDirectory");function gT(e){let t=Ua.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[o,r]of n)if(o.test(e))return e.replace(o,r);return e}i(gT,"expandSystemTempAlias");function PA(e,t){let n=St.resolve(t??process.cwd()),o=gT(pT(e)),r=St.isAbsolute(o)?St.resolve(o):St.resolve(n,o);return kp(r)}i(PA,"resolvePermissionPath");function hT(){if(Lu)return Lu;let e=new Set,t=[Ua.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(kp(n))}catch{}return Lu=Array.from(e),Lu}i(hT,"getSystemTempDirectories");function Rp(e){let t=kp(e??process.cwd());return{projectPlanDoc:St.join(t,bA),systemTempDirs:hT()}}i(Rp,"getPlanModeAllowedWritablePaths");function Cp(e,t){let n=PA(e,t),{projectPlanDoc:o,systemTempDirs:r}=Rp(t);return _A(n,o)?!0:r.some(s=>cs(n,s))}i(Cp,"isPlanModeAllowedPath");function LA(e){let{projectPlanDoc:t,systemTempDirs:n}=Rp(e),o=n[0]??Ua.tmpdir();return`${t} or the system temp directory (${o})`}i(LA,"formatPlanModeAllowedLocations");var OA=new Set(["-a","--append","-i","--ignore-interrupts"]);function DA(e){let t=[];for(let n=1;n<e.argv.length;n+=1){let o=e.argv[n];OA.has(o)||o.startsWith("-")||t.push(o)}return t}i(DA,"collectTeeTargets");function NA(e){let t=[],n=1,o=!1;for(;n<e.argv.length;){let r=e.argv[n],s=r.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}}!r.startsWith("-")&&!o&&(t.push(r),o=!0),n+=1}return t}i(NA,"collectPowerShellWriteTargets");function Hr(e){let t=new Set,n=i(r=>{let s=r?.trim();s&&t.add(s)},"pushTarget");for(let r of Nu(e))n(r);let o=Wa(e);if(o.unparseable)return Array.from(t);for(let r of o.statements)for(let s of r.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 DA(s))n(c);else if(mT.has(a))for(let c of NA(s))n(c)}}return Array.from(t)}i(Hr,"collectBashWriteTargets");function Ep(e,t){if(!Un(e))return{dangerous:!1};let n=new Set([...Hr(e),...$A(e)]);for(let o of n)if(!Bu(o,t))return{dangerous:!0,reason:`Command may modify file outside project: ${o}`};return{dangerous:!1}}i(Ep,"getBashOutsideProjectWriteRisk");function Eo(e,t,n){let o=LA(n);if(Ox(e))return null;if(En.has(e)){let r=typeof t.path=="string"?t.path:"";return r?Cp(r,n)?null:`[Blocked] Plan mode only allows file modifications in ${o}. Requested path: ${r}`:`[Blocked] Tool '${e}' is not allowed in plan mode unless it targets ${o}.`}if(e==="bash"){let r=t.command??"";if(!Un(r))return null;let s=Hr(r);if(s.length===0)return`[Blocked] Plan mode only allows bash write operations when every target is either ${o}. Could not determine a safe target from: ${r.slice(0,80)}${r.length>80?"...":""}`;let a=s.find(c=>!Cp(c,n));return a?`[Blocked] Plan mode only allows bash write operations in ${o}. 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 ${o}.`}i(Eo,"getPlanModeBlockReason");import Zo from"node:path";import BA from"node:os";function ls(e,t){try{let n=Zo.resolve(e),o=Zo.resolve(t);return n===o?!0:n.startsWith(o+Zo.sep)}catch{return!1}}i(ls,"isPathUnder");function HA(){try{return Ai()}catch{return}}i(HA,"safeGetAgentConfigHome");function yT(e,t){let n=HA();if(n&&ls(e,n))return"user-kodax";let o=Zo.join(Zo.resolve(t),".kodax");if(ls(e,o))return"project-kodax"}i(yT,"resolveProtectedZone");function FA(){let e=new Set;try{e.add(BA.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(FA,"getSystemTempDirs");var WA=new Set(["bash"]),ja={toolNames:WA,collect(e,t){let n=typeof e.input.command=="string"?e.input.command:"";if(!n||!t)return[];let o=[],r=new Set,s=new Set,a=FA(),c=Zo.resolve(t);for(let l of Nu(n)){let d;try{d=Zo.resolve(t,l)}catch{continue}let m=yT(d,t);if(m){r.has(d)||(r.add(d),o.push({kind:"protected_path",path:l,zone:m}));continue}if(no(l,t)){let p=a.some(x=>ls(d,x)),g=ls(d,c);!p&&!g&&!s.has(d)&&(s.add(d),o.push({kind:"outside_project",path:l}))}}for(let l of Hr(n)){let d;try{d=Zo.resolve(t,l)}catch{continue}yT(d,t)||ls(d,c)||a.some(g=>ls(d,g))||o.push({kind:"shell_redirect_outside",target:l})}return o}};function Va(e){return e.type==="tool_summary"?{type:"event",text:e.text,icon:"tool"}:e}i(Va,"seedToHistoryItem");var UA="[Thinking]",jA="[/Thinking]",GA="Untitled Session",xT=50,KA=60,ST="...",TT=["[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:"],CT=[/(?:^|\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:/],VA=/(^|\r?\n)\[Thinking\]\r?\n([\s\S]*?)\r?\n\[\/Thinking\](?=\r?\n|$)/g;function zA(e){let t=-1;for(let n of TT){let o=e.indexOf(n);o>=0&&(t===-1||o<t)&&(t=o)}for(let n of CT){let o=n.exec(e);o&&o.index>=0&&(t===-1||o.index<t)&&(t=o.index)}return t}i(zA,"findControlPlaneCutIndex");function XA(e){return TT.some(t=>e.includes(t))||CT.some(t=>t.test(e))}i(XA,"hasControlPlaneSignal");function bT(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(bT,"collectTextBlocks");function YA(e){return typeof e=="string"?e:Array.isArray(e)?bT(e).join(`
42
- `):""}i(YA,"extractAssistantTextOnly");function Ka(e,t,n){n.trim().length!==0&&e.push({type:t,text:n})}i(Ka,"pushSeed");function wT(e){return e.replace(/^\n+/,"").replace(/\n+$/,"")}i(wT,"stripLegacyTagBoundaryNewlines");function qA(e){let t=e.name,n=e.input;if(!n)return`\u26A1 ${t}`;let o=t==="bash"?Ga(String(n.command??"")):t==="read"||t==="write"||t==="edit"?Ga(String(n.file_path??n.path??"")):t==="grep"||t==="glob"?Ga(String(n.pattern??"")):t==="web_search"||t==="web_fetch"?Ga(String(n.query??n.url??"")):void 0;return o?`\u26A1 ${t}(${o})`:`\u26A1 ${t}`}i(qA,"formatToolUseSummary");function Ga(e,t=60){let n=e.replace(/\s+/g," ").trim();return n.length>t?`${n.slice(0,t)}...`:n}i(Ga,"truncateToolHint");function QA(e){if(!e.includes(UA)||!e.includes(jA))return e.trim().length>0?[{type:"assistant",text:e}]:[];let t=[],n=0;for(let o of e.matchAll(VA)){let r=o.index??-1,s=o[1]??"",a=o[2]??"";if(r<0)continue;let c=r+s.length;Ka(t,"assistant",wT(e.slice(n,c))),Ka(t,"thinking",a),n=r+o[0].length}return Ka(t,"assistant",wT(e.slice(n))),t.length===0?e.trim().length>0?[{type:"assistant",text:e}]:[]:t}i(QA,"parseLegacyAssistantContent");function JA(e){if(typeof e=="string")return QA(e);if(!Array.isArray(e))return[];let t=[],n=[],o=i(()=>{n.length!==0&&(Ka(t,"assistant",n.join(`
43
- `)),n.length=0)},"flushAssistantBuffer");for(let r of e)if(!(!r||typeof r!="object"||!("type"in r)))switch(r.type){case"text":"text"in r&&n.push(String(r.text));break;case"thinking":o(),"thinking"in r&&Ka(t,"thinking",String(r.thinking));break;case"tool_use":if(o(),"name"in r){let s=qA(r);s&&t.push({type:"tool_summary",text:s})}break;case"tool_result":case"redacted_thinking":break;default:break}return o(),t}i(JA,"extractAssistantHistorySeeds");var ZA=["You are the Scout role","You are the Generator role","You are the Planner role","You are the Evaluator role"],e_=/\r?\n?\`\`\`kodax[\w-]*[\s\S]*?\`\`\`\s*/g;function t_(e){return ZA.some(t=>e.includes(t))}i(t_,"isManagedWorkerPrompt");function n_(e){return e.replace(e_,"").trim()}i(n_,"stripManagedProtocolBlocks");function za(e){switch(e.role){case"assistant":return JA(e.content).map(n=>({...n,text:n_(n.text)})).filter(n=>n.text.length>0);case"user":{if(e._synthetic)return[];let t=Xa(e.content);return t.trim().length===0||t_(t)?[]:[{type:"user",text:t}]}case"system":return[];default:return[]}}i(za,"extractHistorySeedsFromMessage");function Xa(e){return typeof e=="string"?e:Array.isArray(e)?bT(e).join(`
44
- `):""}i(Xa,"extractTextContent");function o_(e){let t=e.replace(/\s+/g," ").trim();return t?t.length>xT?`${t.slice(0,xT)}${ST}`:t:GA}i(o_,"formatSessionTitle");function Ya(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.role!=="assistant")continue;let o=YA(n.content);if(o)return o}return""}i(Ya,"extractLastAssistantText");function vT(e,t,n,o){let r=[Ya(e),t.trim(),n?.trim()??"",o?.trim()??""];for(let s of r){let a=er(s);if(a)return a}return""}i(vT,"resolveCompletedAssistantText");function er(e){let t=e.trim();if(!t)return"";let n=zA(t);return n===0?"":(n>0?t.slice(0,n):t).trim()}i(er,"sanitizeUserFacingAssistantText");function IT(e){let t=e.trim();return t.length>0&&er(t).length===0&&XA(t)}i(IT,"isControlPlaneOnlyAssistantText");function us(e){let t=e.find(o=>o.role==="user"),n=t?Xa(t.content):"";return o_(n)}i(us,"extractTitle");function r_(e,t=KA){let n=e.replace(/\n/g," "),o=n.length>t?ST:"";return n.slice(0,t)+o}i(r_,"formatMessagePreview");import u from"chalk";import Hu from"fs";import RT from"path";var Fu=Tn("config.json");function ET(){return RT.join(process.cwd(),".kodax","config.local.json")}i(ET,"getProjectConfigFile");function Wu(e=process.env){let n=qa(Fu).autoMode??{},o=e.KODAX_AUTO_MODE_ENGINE?.trim(),r=o==="llm"||o==="rules"?o:void 0,s=n.engine==="llm"||n.engine==="rules"?n.engine:void 0,a=r??s??"llm",c=kT(n.classifierModel),l=kT(e.KODAX_AUTO_MODE_CLASSIFIER_MODEL),d=e.KODAX_AUTO_MODE_TIMEOUT_MS?.trim(),m=d!==void 0?Number(d):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(Wu,"loadAutoModeSettings");function kT(e){if(typeof e!="string")return;let t=e.trim();return t.length===0?void 0:t}i(kT,"nonEmptyString");function qa(e){try{if(Hu.existsSync(e))return JSON.parse(Hu.readFileSync(e,"utf-8"))}catch{}return{}}i(qa,"readJsonFile");function MT(e,t){Hu.mkdirSync(RT.dirname(e),{recursive:!0}),Hu.writeFileSync(e,JSON.stringify(t,null,2))}i(MT,"writeJsonFile");function Qa(e){let t=qa(Fu);MT(Fu,{...t,permissionMode:e})}i(Qa,"savePermissionModeUser");function ds(){let e=qa(Fu),t=qa(ET()),n=e.alwaysAllowTools??[],o=t.alwaysAllowTools??[];return[...new Set([...n,...o])]}i(ds,"loadAlwaysAllowTools");function Uu(e,t,n=!1){let o=Du(e,t,n);if(!o)return;let r=ET(),s=qa(r),a=s.alwaysAllowTools??[];a.includes(o)||MT(r,{...s,alwaysAllowTools:[...a,o]})}i(Uu,"saveAlwaysAllowToolPattern");var fs=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 r=this.aliases.get(n);throw new Error(`Command "${t.name}" conflicts with existing alias for "${r}"`)}let o=new Set;for(let r of t.aliases??[]){let s=r.toLowerCase();if(s!==n){if(o.has(s))throw new Error(`Alias "${r}" is duplicated within command "${t.name}"`);if(this.commands.has(s))throw new Error(`Alias "${r}" conflicts with existing command "${s}"`);if(this.aliases.has(s)){let a=this.aliases.get(s);throw new Error(`Alias "${r}" is already registered for "${a}"`)}o.add(s)}}if(this.commands.set(n,{...t,source:t.source??"builtin"}),t.aliases)for(let r of t.aliases){let s=r.toLowerCase();s!==n&&this.aliases.set(s,n)}}unregister(t){let n=t.toLowerCase(),o=this.aliases.get(n)??n;if(!this.commands.has(o))return!1;let r=this.commands.get(o);if(r?.aliases)for(let s of r.aliases)this.aliases.delete(s.toLowerCase());return this.commands.delete(o),!0}get(t){let n=t.toLowerCase(),o=this.aliases.get(n)??n;return this.commands.get(o)}has(t){let n=t.toLowerCase(),o=this.aliases.get(n)??n;return this.commands.has(o)}getAll(t){let n=new Map;for(let[o,r]of this.commands)t&&r.source!==t||n.has(o)||n.set(o,{name:r.name,aliases:r.aliases,description:r.description,source:r.source??"builtin",usage:r.usage,priority:r.priority,location:r.location,path:r.path,userInvocable:r.userInvocable,disableModelInvocation:r.disableModelInvocation,allowedTools:r.allowedTools,context:r.context,agent:r.agent,argumentHint:r.argumentHint,model:r.model});return Array.from(n.values()).sort((o,r)=>o.name.localeCompare(r.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}},i_=new fs;import Mn from"chalk";import{Buffer as PT}from"node:buffer";import{spawn as s_}from"node:child_process";import AT from"node:process";var Fr="\x1B",a_="\x07",Mp=`${Fr}\\`;function _T(e,t){return e.SSH_CONNECTION?!1:t==="win32"||t==="darwin"||t==="linux"}i(_T,"shouldPreferNativeClipboard");function c_(e,t){let n=PT.from(e,"utf8").toString("base64"),o=t.TERM==="xterm-kitty"?Mp:a_,r=`${Fr}]52;c;${n}${o}`;return t.TMUX?`${Fr}Ptmux;${r.replaceAll(Fr,`${Fr}${Fr}`)}${Mp}`:t.STY?`${Fr}P${r}${Mp}`:r}i(c_,"buildOscSequence");async function ju(e,t,n){return new Promise((o,r)=>{let s=s_(e,t,{stdio:["pipe","ignore","pipe"],windowsHide:!0}),a="";s.on("error",r),s.stderr?.on("data",c=>{a+=c.toString()}),s.on("close",c=>{if(c===0){o(!0);return}r(new Error(a.trim()||`${e} exited with code ${c??"unknown"}`))}),s.stdin?.write(n),s.stdin?.end()})}i(ju,"execClipboardCommand");function l_(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=PT.from(e,"utf8");return[["powershell",["-NoProfile","-NonInteractive","-Command",t],n],["pwsh",["-NoProfile","-NonInteractive","-Command",t],n],["cmd",["/c","chcp 65001 >nul & clip"],n]]}i(l_,"buildWindowsClipboardCandidates");async function $T(e,t,n){if(t.SSH_CONNECTION)return!1;switch(n){case"win32":{let o=l_(e);for(let[r,s,a]of o)try{if(await ju(r,s,a))return!0}catch{}return!1}case"darwin":return ju("pbcopy",[],e);case"linux":{let o=[["wl-copy",[]],["xclip",["-selection","clipboard"]],["xsel",["--clipboard","--input"]]];for(let[r,s]of o)try{if(await ju(r,s,e))return!0}catch{}return!1}default:return!1}}i($T,"tryNativeClipboard");async function u_(e,t){if(!t.TMUX)return!1;let n=t.LC_TERMINAL==="iTerm2"?["load-buffer","-"]:["load-buffer","-w","-"];try{return await ju("tmux",n,e)}catch{return!1}}i(u_,"tryTmuxClipboard");async function Wr(e,t={}){let n=t.env??AT.env,o=t.platform??AT.platform,r=e.trimEnd(),s=c_(r,n);if(!r)throw new Error("Nothing to copy.");if(_T(n,o))try{if(await $T(r,n,o))return{path:"native"}}catch{}if(await u_(r,n))return{path:"tmux-buffer"};if(t.terminalWrite?.(s))return{path:"osc52"};if(!_T(n,o))try{if(await $T(r,n,o))return{path:"native"}}catch{}throw new Error("Unable to access any clipboard path.")}i(Wr,"copyTextToClipboard");var Ap={name:"copy",description:"Copy last assistant message to clipboard",usage:"/copy",handler:i(async(e,t)=>{let n=Ya(t.messages);if(!n){console.log(Mn.yellow(`
45
- No assistant message found to copy.`)),console.log(Mn.dim("The assistant needs to respond first before you can copy its message."));return}try{await Wr(n);let o=n.length>50?n.slice(0,50)+"...":n;console.log(Mn.green(`
46
- Copied to clipboard!`)),console.log(Mn.dim(`Preview: ${o}`))}catch(o){let r=o instanceof Error?o.message:String(o);console.log(Mn.red(`
47
- Failed to copy to clipboard: ${r}`)),console.log(Mn.dim("You may need to check clipboard permissions or manually copy the message."))}},"handler"),detailedHelp:i(()=>{console.log(Mn.bold(`
48
- /copy - Copy Last Assistant Message
49
- `)),console.log("Usage:"),console.log(Mn.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(Mn.dim(" User: Explain how async/await works")),console.log(Mn.dim(" AI: [responds with explanation]")),console.log(Mn.cyan(" /copy")+Mn.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*as oo from"node:fs";import*as Gu from"node:path";import Ce from"chalk";function d_(e){return e.runtimeInfo?.workspaceRoot??e.runtimeInfo?.executionCwd??process.cwd()}i(d_,"resolveCwd");function OT(e){let t;try{t=oo.readdirSync(e,{withFileTypes:!0})}catch(o){return o.code!=="ENOENT"&&console.error(`[memory] failed to read memory directory ${e}:`,o),[]}let n=[];for(let o of t){if(!o.isFile()||!o.name.endsWith(".md")||o.name==="MEMORY.md")continue;let r=Gu.join(e,o.name),s="",a=0;try{s=oo.readFileSync(r,"utf-8"),a=oo.statSync(r).mtimeMs}catch(p){console.error(`[memory] failed to read ${r}:`,p);continue}let l=gx(s).frontmatter,d=l.name!==void 0||l.description!==void 0||l.type!==void 0,m=Gu.basename(o.name,".md");n.push({filename:o.name,absPath:r,mtimeMs:a,title:l.name?.trim()||m,description:l.description?.trim()||m,type:l.type,parseOk:d})}return n}i(OT,"readTopicFiles");function f_(e){return e.map(t=>`- [${t.title}](${t.filename}) \u2014 ${t.description}`)}i(f_,"buildIndexLines");async function m_(e,t){console.log(Ce.cyan(`
53
- [memory] per-project memory directory`)),console.log(Ce.dim(` ${e}`));let n=OT(e),o=n.filter(a=>!a.parseOk);console.log(Ce.dim(` ${n.length} topic file${n.length===1?"":"s"}`+(o.length>0?`, ${o.length} without parsable frontmatter`:"")));let r=!1,s="";try{s=oo.readFileSync(t,"utf-8"),r=!0}catch{r=!1}if(!r){console.log(Ce.yellow(`
54
- MEMORY.md does not exist yet.`)),n.length>0?console.log(Ce.dim(" Run `/memory rebuild` to seed it from existing topic files.")):console.log(Ce.dim(" The LLM will create it on first save \u2014 no action needed.")),console.log();return}console.log(Ce.cyan(`
55
- --- MEMORY.md ---`)),s.trim().length===0?console.log(Ce.dim(" (empty)")):console.log(s.trimEnd()),console.log(Ce.cyan(`--- end ---
56
- `))}i(m_,"listMemory");async function p_(e,t){let n=!1;try{n=oo.statSync(e).isDirectory()}catch{n=!1}if(!n){console.log(Ce.yellow(`
57
- [memory] memory directory does not exist yet \u2014 nothing to rebuild.`)),console.log(Ce.dim(` ${e}`)),console.log(Ce.dim(` The LLM will create both the directory and MEMORY.md on first save.
58
- `));return}let o=OT(e);if(o.length===0){console.log(Ce.yellow(`
59
- [memory] no topic files found \u2014 nothing to rebuild.`)),console.log(Ce.dim(` ${e}
60
- `));return}let r=[...o].sort((l,d)=>d.mtimeMs-l.mtimeMs),a=f_(r).join(`
61
- `)+`
62
- `;oo.writeFileSync(t,a,"utf-8"),console.log(Ce.green(`
63
- [memory] rebuilt MEMORY.md with ${r.length} entries (newest first).`)),console.log(Ce.dim(` ${t}`));let c=r.filter(l=>!l.parseOk);if(c.length>0){console.log(Ce.yellow(` ${c.length} file(s) had no parsable frontmatter \u2014 used filename as fallback:`));for(let l of c)console.log(Ce.dim(` - ${l.filename}`));console.log(Ce.dim(" Tip: add `---\\nname: ...\\ndescription: ...\\ntype: ...\\n---` at the top of those files."))}console.log()}i(p_,"rebuildMemory");function g_(e,t){console.log(Ce.cyan(`
64
- [memory] open these paths in your editor:`)),console.log(Ce.dim(" index :"),t),console.log(Ce.dim(" dir :"),e),console.log(Ce.dim(`
65
- (No in-REPL editor is provided \u2014 open the file in your usual editor.
66
- Use \`/memory rebuild\` after manual edits if you renamed any topic file.)
67
- `))}i(g_,"openMemory");function LT(){console.log(Ce.cyan(`
68
- /memory - Inspect or rebuild per-project memory`)),console.log(Ce.dim(" /memory List MEMORY.md + memory directory")),console.log(Ce.dim(" /memory list Same as `/memory`")),console.log(Ce.dim(" /memory rebuild Regenerate MEMORY.md from topic frontmatter")),console.log(Ce.dim(" /memory open Print paths so you can open them in your editor")),console.log(Ce.dim(" /memory help Show this help")),console.log()}i(LT,"printHelp");function h_(){console.log(Ce.bold(`
69
- /memory - Inspect or rebuild project memory
70
- `)),console.log("Usage:"),console.log(Ce.cyan(" /memory ")+Ce.dim("Show MEMORY.md + topic file count")),console.log(Ce.cyan(" /memory list ")+Ce.dim("Alias for `/memory`")),console.log(Ce.cyan(" /memory rebuild ")+Ce.dim("Regenerate MEMORY.md (newest first by mtime)")),console.log(Ce.cyan(" /memory open ")+Ce.dim("Print the index + dir paths for editor use")),console.log(Ce.cyan(" /memory help ")+Ce.dim(`Show this help
71
- `)),console.log("Description:"),console.log(Ce.dim(` Each project gets its own memory directory under your KodaX agent
72
- home \u2014 \`<agentConfigHome>/projects/<project-key>/memory/\`. The LLM
73
- owns reads/writes; this command is your escape hatch when the
74
- MEMORY.md index drifts from the topic files on disk.
75
- `)),console.log("Notes:"),console.log(Ce.dim(" \u2022 Rebuild ONLY rewrites MEMORY.md. Topic files are never touched.")),console.log(Ce.dim(" \u2022 Rebuild sorts entries by file mtime descending \u2014 the same")),console.log(Ce.dim(" natural-LRU order the LLM produces by prepending new entries.")),console.log(Ce.dim(" \u2022 Files missing or with malformed frontmatter still appear in")),console.log(Ce.dim(" the rebuilt index using their filename as fallback; the command")),console.log(Ce.dim(` prints a warning so you can fix the frontmatter.
76
- `))}i(h_,"printDetailedHelp");var _p={name:"memory",description:"Inspect or rebuild per-project memory (FEATURE_124)",usage:"/memory [list|rebuild|open|help]",argumentHint:"list | rebuild | open | help",handler:i(async(e,t)=>{let n=d_(t),o=dx(n),r=fx(n),s=(e[0]??"list").toLowerCase();if(s==="help"||s==="--help"||s==="-h"){LT();return}if(s==="list"){await m_(o,r);return}if(s==="rebuild"){await p_(o,r);return}if(s==="open"){g_(o,r);return}console.log(Ce.yellow(`
77
- [memory] unknown subcommand: ${s}`)),LT()},"handler"),detailedHelp:h_};import _e from"chalk";function DT(){console.log(`
78
- ${_e.bold("/goal")} \u2014 persistent session goal
79
-
80
- ${_e.bold("Subcommands:")}
81
- ${_e.cyan("/goal <objective> [--tokens N]")} Create a new persistent goal.
82
- ${_e.cyan("/goal status")} Show current goal (default).
83
- ${_e.cyan("/goal pause")} Pause an active goal.
84
- ${_e.cyan("/goal resume")} Resume a paused goal.
85
- ${_e.cyan("/goal clear")} Clear the current goal.
86
- ${_e.cyan("/goal help")} Show this help.
87
-
88
- ${_e.bold("Notes:")}
89
- - The agent auto-continues toward an active goal on every Worker turn end.
90
- - Token budget is optional; set it only when you want a hard ceiling.
91
- - update_goal({complete}) is verifier-gated; the agent cannot
92
- self-declare done without runtime confirmation.
93
- `.trim())}i(DT,"printHelp");function y_(e){let t=null,n=[];for(let r=0;r<e.length;r++){let s=e[r];if(s==="--tokens"){let a=e[r+1];if(!a)return{error:"--tokens requires a value (e.g. `--tokens 50000`)"};let c=Number(a);if(!wm(c))return{error:"--tokens value must be a positive integer"};t=c,r++;continue}if(s.startsWith("--tokens=")){let a=s.slice(9),c=Number(a);if(!wm(c))return{error:"--tokens value must be a positive integer"};t=c;continue}if(s.startsWith("--"))return{error:`unknown flag: ${s}`};n.push(s)}let o=n.join(" ").trim();return o?{objective:o,tokenBudget:t}:{error:"objective is required"}}i(y_,"parseCreateArgs");function x_(e){if(!e)return _e.dim("No goal set. Use `/goal <objective>` to create one.");let t=[`${_e.bold("Goal:")} ${e.objective}`,`${_e.bold("Status:")} ${e.status}`,`${_e.bold("Tokens used:")} ${e.tokensUsed}`];if(e.tokenBudget!==null){let n=Math.max(0,e.tokenBudget-e.tokensUsed);t.push(`${_e.bold("Token budget:")} ${e.tokenBudget} (remaining ${n})`)}else t.push(`${_e.bold("Token budget:")} ${_e.dim("none")}`);return t.push(`${_e.bold("Elapsed:")} ${e.timeUsedSeconds}s`),e.status==="blocked"&&e.lastBlockerKind&&t.push(`${_e.bold("Blocker:")} ${e.lastBlockerKind}`),t.join(`
94
- `)}i(x_,"renderStatus");async function Ja(e,t,n,o){if(!e.lineage)throw new Error("session lineage unavailable \u2014 open or start a new session before using /goal");e.lineage=Cx(e.lineage,n,o),await t.saveSession()}i(Ja,"persist");async function w_(e,t,n){if(!t.lineage){console.log(_e.red("[/goal] no active session lineage"));return}let o=Ni(t.lineage);if(o&&o.status!=="complete"){console.log(_e.yellow(`[/goal] a goal is already active (status: ${o.status}). Clear it first with \`/goal clear\` before creating a new one.`));return}let r=y_(e);if("error"in r){console.log(_e.red(`[/goal] ${r.error}`));return}try{o&&o.status==="complete"&&await Ja(t,n,null,"cleared");let s=Ax(r.objective,r.tokenBudget);await Ja(t,n,s,"created"),console.log(_e.green(`[/goal] created: "${s.objective}"`)),s.tokenBudget!==null&&console.log(_e.dim(` budget: ${s.tokenBudget} tokens`))}catch(s){let a=s instanceof Error?s.message:String(s);console.log(_e.red(`[/goal] ${a}`))}}i(w_,"doCreate");async function S_(e){if(!e.lineage){console.log(_e.red("[/goal] no active session lineage"));return}let t=Ni(e.lineage);console.log(x_(t))}i(S_,"doStatus");async function T_(e,t){if(!e.lineage){console.log(_e.red("[/goal] no active session lineage"));return}let n=Ni(e.lineage);if(!n){console.log(_e.yellow("[/goal] no goal to pause"));return}if(n.status!=="active"){console.log(_e.yellow(`[/goal] cannot pause from status '${n.status}' (only 'active' is pausable)`));return}let o=_x(n);await Ja(e,t,o,"paused"),console.log(_e.green("[/goal] paused"))}i(T_,"doPause");async function C_(e,t){if(!e.lineage){console.log(_e.red("[/goal] no active session lineage"));return}let n=Ni(e.lineage);if(!n){console.log(_e.yellow("[/goal] no goal to resume"));return}if(n.status!=="paused"){console.log(_e.yellow(`[/goal] cannot resume from status '${n.status}' (only 'paused' is resumable)`));return}let o=$x(n);await Ja(e,t,o,"resumed"),console.log(_e.green("[/goal] resumed"))}i(C_,"doResume");async function b_(e,t){if(!e.lineage){console.log(_e.red("[/goal] no active session lineage"));return}if(!Ni(e.lineage)){console.log(_e.yellow("[/goal] no goal to clear"));return}await Ja(e,t,null,"cleared"),console.log(_e.green("[/goal] cleared"))}i(b_,"doClear");var NT={name:"goal",description:"Manage a persistent session goal (FEATURE_192)",usage:"/goal [<objective> [--tokens N] | status | pause | resume | clear | help]",argumentHint:"<objective> | status | pause | resume | clear | help",handler:i(async(e,t,n)=>{let o=(e[0]??"status").toLowerCase();if(o==="help"||o==="--help"||o==="-h"){DT();return}if(o==="status"){await S_(t);return}if(o==="pause"){await T_(t,n);return}if(o==="resume"){await C_(t,n);return}if(o==="clear"){await b_(t,n);return}await w_(e,t,n)},"handler"),detailedHelp:DT};import Xt from"chalk";var $p={name:"new",description:"Start a new conversation session",usage:"/new",handler:i(async(e,t,n)=>{if(t.messages.length===0){console.log(Xt.yellow(`
95
- Current session is already empty.`)),console.log(Xt.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(Xt.dim(`
96
- Cancelled. Current session preserved.`));return}try{await n.saveSession(),console.log(Xt.dim(`
97
- [Previous session saved]`))}catch{console.log(Xt.yellow(`
98
- [Warning: Failed to save previous session]`))}n.startNewSession?.(),t.messages=[],n.clearHistory(),console.log(Xt.green(`
99
- \u2713 Started new session`)),console.log(Xt.dim("Conversation history cleared. Ready for a fresh start!"))},"handler"),detailedHelp:i(()=>{console.log(Xt.bold(`
100
- /new - Start New Session
101
- `)),console.log("Usage:"),console.log(Xt.cyan(" /new")+` - Clear current session and start fresh
102
- `),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.
103
- `),console.log("Examples:"),console.log(Xt.dim(" User: Help me refactor the authentication module")),console.log(Xt.dim(" AI: [provides refactoring help]")),console.log(Xt.cyan(" /new")),console.log(Xt.dim(" \u2713 Started new session")),console.log(Xt.dim(" User: Now I need help with database optimization")),console.log(Xt.dim(` AI: [provides database help]
104
- `)),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")};import{execFile as v_}from"node:child_process";import{promisify as I_}from"node:util";var k_=I_(v_),Pp=1e5;async function Ku(e,t){let{stdout:n}=await k_("git",e,{cwd:t,maxBuffer:67108864});return n}i(Ku,"git");async function R_(e){for(let t of["main","master","develop"])try{return await Ku(["rev-parse","--verify",t],e),t}catch{}return"HEAD"}i(R_,"detectBaseBranch");async function E_(e,t){let n=e[0];if(n==="base"){let o=await R_(t);return{diff:await Ku(["diff",`${o}...HEAD`],t),label:`changes against ${o}`}}return n==="sha"&&e[1]?{diff:await Ku(["show",e[1]],t),label:`commit ${e[1]}`}:{diff:await Ku(["diff","HEAD"],t),label:"uncommitted changes"}}i(E_,"getDiff");var BT={name:"review",description:"Review code changes (git diff) for bugs, security, performance, and design",usage:"/review [base | sha <hash>] (default: uncommitted changes)",handler:i(async(e,t)=>{let n=t.gitRoot??process.cwd(),o,r;try{({diff:o,label:r}=await E_(e,n))}catch(c){return{success:!1,message:`/review: git failed \u2014 ${c instanceof Error?c.message:String(c)}`}}if(!o.trim())return{success:!0,message:"No changes to review."};let s=o;return s.length>Pp&&(s=`${s.slice(0,Pp)}
105
-
106
- [diff truncated to ${Pp} chars \u2014 review the rest with a narrower scope]`),{success:!0,invocation:{prompt:[`Review the following ${r} as a third-party reviewer (not the author).`,"Look for bugs (logic errors, null/undefined handling, off-by-one, races),","security (injection, secret exposure, auth bypass), performance hotpaths,","and design (over-engineering vs missing abstraction).","Cite specific diff lines. For each finding, note whether it is verifiable by","tsc / lint / test / build. If the diff is small or risk-free, say so briefly.","","```diff",s,"```"].join(`
107
- `),source:"prompt",displayName:"/review"}}},"handler")};function zu(e){let t=e.match(/\r\n|\r|\n/g);return t?t.length:0}i(zu,"getPastedTextRefNumLines");function M_(e,t){return t===0?`[Pasted text #${e}]`:`[Pasted text #${e} +${t} lines]`}i(M_,"formatPastedTextRef");function A_(e,t){return`[...Truncated text #${e} +${t} lines...]`}i(A_,"formatTruncatedTextRef");var __=/\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;function $_(e){let t=[],n=new RegExp(__.source,"g");for(let o of e.matchAll(n)){let r=Number.parseInt(o[2]??"0",10);!Number.isFinite(r)||r<=0||t.push({id:r,kind:o[1],match:o[0],index:o.index??0})}return t}i($_,"parseReferences");function P_(e,t){let n=$_(e);if(n.length===0)return e;let o=i(s=>t instanceof Map?t.get(s):t[s],"getContent"),r=e;for(let s=n.length-1;s>=0;s--){let a=n[s];if(a.kind==="Image")continue;let c=o(a.id);!c||c.type!=="text"||(r=r.slice(0,a.index)+c.content+r.slice(a.index+a.match.length))}return r}i(P_,"expandPastedTextRefs");var L_=/\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]$/,O_=/^\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/;function D_(e,t){if(t>=e.length)return!0;let n=e[t];return!n||/\s/.test(n)}i(D_,"isAtWordBoundaryAfter");function N_(e,t){if(t===0)return!0;let n=e[t-1];return!n||/\s/.test(n)}i(N_,"isAtWordBoundaryBefore");function Xu(e,t){if(t<=0||!D_(e,t))return null;let o=e.slice(0,t).match(L_);if(!o)return null;let r=t-o[0].length,s=Number.parseInt(o[2]??"0",10);return!Number.isFinite(s)||s<=0?null:{start:r,end:t,id:s,kind:o[1]}}i(Xu,"findPlaceholderBeforeCursor");function Yu(e,t){if(t>=e.length||!N_(e,t))return null;let o=e.slice(t).match(O_);if(!o)return null;let r=Number.parseInt(o[2]??"0",10);return!Number.isFinite(r)||r<=0?null:{start:t,end:t+o[0].length,id:r,kind:o[1]}}i(Yu,"findPlaceholderAfterCursor");function HT(e){return e.length>800||zu(e)>2}i(HT,"shouldReplacePasteWithPlaceholder");function FT(e,t){if(e.length<=1e4)return{truncatedText:e,placeholderContent:""};let n=Math.floor(1e3/2),o=Math.floor(1e3/2),r=e.slice(0,n),s=e.slice(-o),a=e.slice(n,-o),c=zu(a),l=A_(t,c);return{truncatedText:r+l+s,placeholderContent:a}}i(FT,"maybeTruncateLongInput");var Lp=class{static{i(this,"PasteStore")}contents=new Map;nextId=1;registerText(t){let n=this.nextId++,o=zu(t);return this.contents.set(n,{id:n,type:"text",content:t}),{id:n,placeholder:M_(n,o),numLines:o}}registerTruncatedText(t){let n=this.nextId++,o=zu(t);return this.contents.set(n,{id:n,type:"text",content:t}),{id:n,numLines:o}}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 P_(t,this.contents)}snapshot(){return new Map(this.contents)}restore(t){this.contents.clear();for(let[n,o]of t)this.contents.set(n,o);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())}},Vu=null;function WT(){return Vu===null&&(Vu=new Lp),Vu}i(WT,"getOrCreateModulePasteStore");function qu(){return Vu??void 0}i(qu,"getActivePasteStore");import{createHash as B_}from"node:crypto";import{mkdir as H_,readdir as F_,readFile as W_,stat as U_,unlink as j_,writeFile as G_}from"node:fs/promises";import*as Op from"node:path";var K_="paste-cache",V_=720*60*60*1e3;function Dp(){return Tn(K_)}i(Dp,"getPasteCacheDir");function UT(e){return Op.join(Dp(),`${e}.txt`)}i(UT,"getPastePath");function jT(e){return B_("sha256").update(e).digest("hex").slice(0,16)}i(jT,"hashPastedText");async function GT(e,t){try{let n=Dp();return await H_(n,{recursive:!0}),await G_(UT(e),t,{encoding:"utf8",mode:384}),!0}catch{return!1}}i(GT,"storePastedText");async function Qu(e){try{return await W_(UT(e),{encoding:"utf8"})}catch{return null}}i(Qu,"retrievePastedText");async function KT(e=V_){let t=Dp(),n=Date.now()-e,o=0,r=0,s;try{s=await F_(t)}catch{return{scanned:o,removed:r}}for(let a of s){if(!a.endsWith(".txt"))continue;o+=1;let c=Op.join(t,a);try{(await U_(c)).mtimeMs<n&&(await j_(c),r+=1)}catch{}}return{scanned:o,removed:r}}i(KT,"cleanupOldPastes");import*as Up from"path";import*as VT from"os";function z_(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}i(z_,"escapeRegExp");function X_(e,t){if(!e)return;let n=e.trim();if(!n.startsWith("/"))return;let o=new RegExp(`^/${z_(t)}(?:\\s+)?`,"i"),r=n.replace(o,"").trim();return r.length>0?r:void 0}i(X_,"deriveArgumentHintFromUsage");function Np(e,t="builtin"){return{...e,source:e.source??t,userInvocable:e.userInvocable??!0,disableModelInvocation:e.disableModelInvocation??!1,argumentHint:e.argumentHint??X_(e.usage,e.name)}}i(Np,"toCommandDefinition");function Bp(e){for(let t of Hp)try{let n=Np(t,"builtin");e.register(n)}catch(n){console.error(`Failed to register command "${t.name}":`,n)}}i(Bp,"registerBuiltinCommands");import*as Mo from"fs";import*as Ur from"path";function Y_(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(Y_,"normalizeAliases");function q_(e){if(e==="critical"||e==="high"||e==="medium"||e==="low")return e}i(q_,"normalizePriority");function Q_(e){return{disableModelInvocation:e["disable-model-invocation"]===!0,userInvocable:e["user-invocable"]!==!1,allowedTools:yx(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:xx(e.hooks),frontmatter:e}}i(Q_,"buildExecutionMetadata");function J_(e,t){try{let n=Mo.readFileSync(e,"utf-8"),[o,r]=hx(n),s=o??{},a=Ur.basename(e,".md"),c=typeof s.name=="string"&&s.name.trim()?s.name.trim():a;if(!c||r.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:Y_(s.aliases),priority:q_(s.priority),content:r.trim(),location:t,path:e,frontmatter:s,execution:Q_(s)}}catch(n){console.error(`Error parsing command file ${e}:`,n);return}}i(J_,"parseCommandFile");function Fp(e){let t=[],n=new Set;for(let o=0;o<e.length;o++){let r=e[o],s=typeof r=="string"?r:r.path,a=typeof r=="string"?o===0?"user":"project":r.location;if(!Mo.existsSync(s))continue;let c=Ur.resolve(s);try{c=Mo.realpathSync.native?.(s)??Mo.realpathSync(s)}catch{c=Ur.resolve(s)}if(!n.has(c)){n.add(c);try{let l=Mo.readdirSync(s);for(let d of l){if(!d.endsWith(".md"))continue;let m=Ur.join(s,d),p=J_(m,a);p&&t.push(p)}}catch(l){console.error(`Error scanning directory ${s}:`,l)}}}return t}i(Fp,"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(o){console.error(`Error registering command ${n.name}:`,o)}}i(Wp,"registerDiscoveredCommands");function zT(e,t){Bp(e);try{let n=VT.homedir(),o=t??process.cwd(),r=Fp([{path:Up.join(o,".kodax","commands"),location:"project"},{path:Tn("commands"),location:"user"},{path:Up.join(n,".agents","commands"),location:"user"}]);Wp(r,e)}catch(n){console.error("Failed to discover commands:",n)}}i(zT,"registerAllCommands");import{execFile as Z_}from"child_process";import e$ from"fs";import jp from"path";import{promisify as t$}from"util";var n$=t$(Z_);function tr(e){if(!(!e||!e.trim()))return jp.resolve(e).replace(/\\/g,"/")}i(tr,"normalizePath");async function Za(e,t){try{let{stdout:n}=await n$("git",t,{cwd:e,windowsHide:!0,maxBuffer:1048576}),o=n.trim();return o||void 0}catch{return}}i(Za,"gitStdout");function o$(e){let t=tr(e);if(t)return jp.posix.basename(t)===".git"?jp.posix.dirname(t):t}i(o$,"deriveCanonicalRepoRoot");async function ms(e={}){let t=tr(e.cwd??process.cwd())??process.cwd().replace(/\\/g,"/"),n=tr(await Za(t,["rev-parse","--show-toplevel"])),o=await Za(n??t,["rev-parse","--path-format=absolute","--git-common-dir"])??await Za(n??t,["rev-parse","--git-common-dir"]),r=await Za(n??t,["branch","--show-current"])??await Za(n??t,["rev-parse","--abbrev-ref","HEAD"]);return{canonicalRepoRoot:o$(o)??n,workspaceRoot:n,executionCwd:t,branch:r&&r!=="HEAD"?r:void 0,workspaceKind:e.workspaceKind??"detected"}}i(ms,"inspectWorkspaceRuntime");function Ju(e,t){return!e?.canonicalRepoRoot||!t?.canonicalRepoRoot?!1:tr(e.canonicalRepoRoot)===tr(t.canonicalRepoRoot)}i(Ju,"isSameCanonicalRepo");function XT(e){return!!(e?.workspaceRoot&&e$.existsSync(e.workspaceRoot))}i(XT,"workspaceExists");function ec(e){let t=tr(e.runtimeInfo?.workspaceRoot??e.gitRoot),n=tr(e.runtimeInfo?.executionCwd??t),o=tr(e.runtimeInfo?.canonicalRepoRoot??t);if(!(!t&&!n&&!o))return{canonicalRepoRoot:o,workspaceRoot:t,executionCwd:n,branch:e.runtimeInfo?.branch,workspaceKind:e.runtimeInfo?.workspaceKind??"detected"}}i(ec,"resolveSessionRuntimeInfo");function mn(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(mn,"formatWorkspaceTruth");function r$(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(r$,"summarizeAgentsFiles");function i$(e,t,n){if(!Number.isFinite(t)||t<=0||n<=0)return{...e,enabled:!0};let o=t/n*100,r=Math.max(1,Math.ceil(o)-1);return{...e,enabled:!0,triggerPercent:Math.min(e.triggerPercent,r)}}i(i$,"createManualCompactionConfig");function Gp(e){e.runtimeInfo?.workspaceRoot?console.log(u.dim(` Workspace unchanged: ${mn(e.runtimeInfo)}`)):console.log(u.dim(" Workspace unchanged."))}i(Gp,"printWorkspaceUnchangedNote");var Hp=[{name:"help",aliases:["h","?"],description:"Show all available commands",usage:"/help [command]",handler:i(async e=>{e.length>0?h$(e[0]):g$()},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
108
- /help - Show Command Help
109
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /help ")+"Show all available commands"),console.log(u.dim(" /help <command> ")+"Show detailed help for a specific command"),console.log(),console.log(u.bold("Examples:")),console.log(u.dim(" /help ")+"# List all commands"),console.log(u.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(u.green(`
110
- Session saved. Goodbye!`)),await n.exit()},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
111
- /exit - Exit Interactive Mode
112
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /exit ")+"Save session and exit"),console.log(u.dim(" /quit, /q, /bye ")+"Aliases for /exit"),console.log(),console.log(u.bold("Description:")),console.log(u.dim(" Saves the current conversation session and exits interactive mode.")),console.log(u.dim(" Sessions can be resumed later with /load or CLI -c option.")),console.log(u.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(u.yellow(`
113
- [Conversation cleared]`))},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
114
- /clear - Clear Conversation History
115
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /clear ")+"Clear all messages in current session"),console.log(),console.log(u.bold("Description:")),console.log(u.dim(" Removes all messages from the current conversation context.")),console.log(u.dim(" Useful for starting fresh while keeping the session.")),console.log(),console.log(u.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 o=n.getCostReport?.();if(!o){console.log(u.dim(`
116
- [No cost data available yet]`));return}console.log(u.cyan(`
117
- `+o))},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
118
- /cost - Session Cost Report
119
- `)),console.log(u.bold("Description:")),console.log(u.dim(" Shows token usage and estimated cost for the current session,")),console.log(u.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(u.cyan(`
120
- /paste - Inspect stored paste contents`)),console.log(u.dim(" /paste list - Show all pasted text ids in this session")),console.log(u.dim(" /paste show <id> - Print the full content of paste #<id>")),console.log();return}let n=qu();if(!n){console.log(u.yellow(`
121
- [No paste registry active]`)),console.log(u.dim(" The REPL composer is not mounted, or no paste has been captured yet."));return}if(t==="list"){let o=n.export();if(o.length===0){console.log(u.dim(`
122
- [No pasted content in this session yet]`));return}console.log(u.bold(`
123
- Pasted content in this session:
124
- `));for(let r of o){let s=r.content?.length??0,a=r.contentHash?` (hash ${r.contentHash.slice(0,8)})`:"";console.log(` ${u.cyan(`#${r.id}`)} ${r.type} ${s} chars${a}`)}console.log();return}if(t==="show"){let o=e[1],r=o?Number.parseInt(o,10):NaN;if(!Number.isFinite(r)||r<=0){console.log(u.yellow(`
125
- Usage: /paste show <id>`));return}let s=n.get(r);if(!s){console.log(u.dim(`
126
- [No paste registered with id #${r}]`));return}let a=s.content??"";if(!a&&s.contentHash){let c=await Qu(s.contentHash);c&&(a=c)}if(!a){console.log(u.yellow(`
127
- [Paste #${r} has no stored content (hash ${s.contentHash??"n/a"})]`));return}console.log(u.bold(`
128
- Pasted text #${r} (${a.length} chars):
129
- `)),console.log(a),console.log();return}console.log(u.yellow(`
130
- [Unknown /paste subcommand: ${t}]`)),console.log(u.dim(" Try /paste show <id> or /paste list"))},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
131
- /paste - Inspect stored paste contents
132
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /paste list - Show all pasted text ids in this session")),console.log(u.dim(" /paste show <id> - Print the full content of paste #<id>")),console.log(),console.log(u.bold("Description:")),console.log(u.dim(" When you paste more than ~800 chars into the input bar, KodaX")),console.log(u.dim(" replaces the pasted text with a `[Pasted text #N +K lines]` anchor")),console.log(u.dim(" to keep the UI responsive. The full content is preserved and sent")),console.log(u.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,o)=>{try{let r=await Vl(t.gitRoot),s=o.provider,a=Cr(s);if(!a){console.log(u.red(`
133
- [Provider not found: ${s}]`));return}let c=e.length>0?e.join(" "):void 0,l=r.contextWindow??a.getEffectiveContextWindow?.(o.model)??a.getContextWindow?.()??2e5,d=t.contextTokenSnapshot?.currentTokens??br(t.messages),m=i$(r,d,l);console.log(u.dim(`
134
- [Compacting conversation...]`)),n.startCompacting?.();try{let p=await bx(t.messages,m,a,l,c,void 0,d,Nx,Bx);if(!p.compacted){console.log(u.green(`
135
- [No compaction needed]`)),console.log(u.dim(`Current token usage: ${p.tokensBefore.toLocaleString()}
136
- `));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(u.green(`
137
- [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(r){let s=r instanceof Error?r.message:String(r);console.log(u.red(`
138
- [Compaction failed: ${s}]
139
- `))}},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
140
- /compact - Manual Context Compaction
141
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /compact ")+"Compact conversation with default instructions"),console.log(u.dim(" /compact <text> ")+"Compact with custom instructions for the summary"),console.log(),console.log(u.bold("Description:")),console.log(u.dim(" Manually triggers context compaction using LLM-generated summaries.")),console.log(u.dim(" Older messages are replaced with a structured summary, keeping recent context.")),console.log(u.dim(" /compact still works even if auto-compaction is disabled or the auto threshold is not reached.")),console.log(),console.log(u.bold("What it does:")),console.log(u.dim(" 1. Protects a recent slice of context from pruning/summary")),console.log(u.dim(" 2. Generates structured summary of older messages using LLM")),console.log(u.dim(" 3. Tracks files that were read/modified in the conversation")),console.log(u.dim(" 4. Replaces old messages with summary to save tokens")),console.log(),console.log(u.bold("Configuration:")),console.log(u.dim(" Config file: ~/.kodax/config.json")),console.log(u.dim(" Settings:")),console.log(u.dim(" - compaction.triggerPercent: Usage percentage that triggers compaction")),console.log(u.dim(" - compaction.enabled: Controls auto-compaction only; /compact always remains available")),console.log(u.dim(" - compaction.contextWindow: Optional token-window override")),console.log(u.dim(" - compaction.protectionPercent / rollingSummaryPercent / pruningThresholdTokens: Advanced tuning")),console.log(),console.log(u.bold("Examples:")),console.log(u.dim(" /compact ")+"# Compact with default instructions"),console.log(u.dim(" /compact focus on auth logic ")+"# Emphasize authentication in summary"),console.log(),console.log(u.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,o)=>{console.log(u.cyan(`
142
- Reloading project rule files and runtime extensions...
143
- `));try{let r=await n.reloadAgentsFiles?.()??[],s=r$(r),a=To(),c=a?ps(a).loadedExtensions.length:0,l=a?ps(a).failures.length:0,d=0,m=0;if(a){await a.reloadExtensions({continueOnError:!0});let p=ps(a);d=c||p.loadedExtensions.length,m=Math.max(0,p.failures.length-l)}if(r.length===0&&d===0){console.log(u.yellow(`No project rule files or active extensions found.
144
- `)),console.log(u.dim(" Create AGENTS.md or CLAUDE.md in your project, or load extensions with --extension.")),console.log();return}console.log(u.green(`Rules reloaded successfully:
145
- `)),s.global>0&&console.log(u.dim(` - Global: ${s.global} file(s)`)),s.directory>0&&console.log(u.dim(` - Directory: ${s.directory} file(s)`)),s.project>0&&console.log(u.dim(` - Project: ${s.project} file(s)`)),d>0&&console.log(u.dim(` - Extensions: ${d} module(s)`)),m>0&&console.log(u.yellow(` - Failures: ${m} recorded (run /extensions for details)`)),console.log(u.dim(" Updated rules will apply to subsequent requests in this session.")),console.log();return}catch(r){console.log(u.red(`Failed to reload rules.
146
- `)),console.log(u.dim(` Error: ${r instanceof Error?r.message:String(r)}`)),console.log()}},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
147
- /reload - Reload Project Rules
148
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /reload ")+"Reload project rule files and active extensions"),console.log(),console.log(u.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(u.bold("Rule Priority:")),console.log(u.dim(" 1. Global: ")+"~/.kodax/AGENTS.md"),console.log(u.dim(" 2. Directory: ")+"AGENTS.md or CLAUDE.md from project root to current directory"),console.log(u.dim(" 3. Project: ")+".kodax/AGENTS.md at the project root"),console.log(),console.log(u.bold("Examples:")),console.log(u.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=To();if(!e){console.log(u.yellow(`
149
- [No active extension runtime]
150
- `));return}let t=ps(e),n=t.tools.filter(o=>o.source.kind==="extension");if(console.log(u.bold(`
151
- Extension Runtime:
152
- `)),console.log(u.dim(` Loaded: ${t.loadedExtensions.length}`)),console.log(u.dim(` Capabilities: ${t.capabilityProviders.length}`)),console.log(u.dim(` Commands: ${t.commands.length}`)),console.log(u.dim(` Hooks: ${t.hooks.length}`)),console.log(u.dim(` Failures: ${t.failures.length}`)),console.log(u.dim(` Extension Tools: ${n.length}`)),t.defaults.activeTools!==void 0&&console.log(u.dim(` Active Tools: ${t.defaults.activeTools.join(", ")||"(none)"}`)),(t.defaults.modelSelection.provider||t.defaults.modelSelection.model)&&console.log(u.dim(` Model Override: ${t.defaults.modelSelection.provider??"(inherit)"} / ${t.defaults.modelSelection.model??"(inherit)"}`)),t.defaults.thinkingLevel&&console.log(u.dim(` Thinking: ${t.defaults.thinkingLevel}`)),console.log(),t.loadedExtensions.length>0){console.log(u.bold("Loaded Extensions:"));for(let o of t.loadedExtensions)console.log(u.dim(` - ${o.label} [${o.loadSource}] (${o.path})`));console.log()}if(t.commands.length>0){console.log(u.bold("Extension Commands:"));for(let o of t.commands){let r=o.aliases?.length?` [${o.aliases.join(", ")}]`:"";console.log(u.dim(` - /${o.name}${r} ${o.description}`))}console.log()}if(t.capabilityProviders.length>0){console.log(u.bold("Capability Providers:"));for(let o of t.capabilityProviders){let r=C$(o.metadata);console.log(u.dim(` - ${o.id} [${o.kinds.join(", ")}]${r?` ${r}`:""}`))}console.log()}if(n.length>0){console.log(u.bold("Extension Tools:"));for(let o of n){let r=o.shadowedSources.length>0?` overrides: ${o.shadowedSources.map(s=>s.label??s.id??s.kind).join(", ")}`:"";console.log(u.dim(` - ${o.name}${r}`))}console.log()}if(t.hooks.length>0){console.log(u.bold("Hook Participation:"));for(let o of t.hooks)console.log(u.dim(` - ${o.hook} [#${o.order}] ${o.source.label}`));console.log()}if(t.failures.length>0){console.log(u.bold("Recent Failures:"));for(let o of t.failures.slice(-10))console.log(u.dim(` - [${o.stage}] ${o.source.label}: ${o.target} -> ${o.message}`));console.log()}},"handler")},{name:"status",aliases:["info","ctx"],description:"Show current session status",handler:i(async(e,t,n,o)=>{await y$(t,o,e)},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
153
- /status - Show Session Status
154
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /status ")+"Display current session information"),console.log(u.dim(" /status workspace ")+"Show deeper workspace/runtime details"),console.log(u.dim(" /info, /ctx ")+"Aliases for /status"),console.log(),console.log(u.bold("Displays:")),console.log(u.dim(" - Current mode (code/ask)")),console.log(u.dim(" - Session ID")),console.log(u.dim(" - Message count")),console.log(u.dim(" - Estimated token usage")),console.log(u.dim(" - Current workspace truth")),console.log(u.dim(" - Session timestamps")),console.log(u.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=To();if(!t){console.log(u.yellow(`
155
- [No extension runtime active \u2014 MCP is not available]`));return}let o=ps(t).capabilityProviders.find(c=>c.id==="mcp");if((e[0]?.toLowerCase()??"status")==="refresh"){console.log(u.dim(`
156
- Refreshing MCP catalogs...`));try{await t.refreshCapabilityProviders("mcp"),console.log(u.green("MCP catalogs refreshed."))}catch(c){console.log(u.red(`Refresh failed: ${c instanceof Error?c.message:String(c)}`))}return}if(console.log(u.cyan(`
157
- MCP Status
158
- `)),!o){console.log(u.yellow(" No MCP provider registered.")),console.log(u.dim(` Add mcpServers to ~/.kodax/config.json to enable MCP.
159
- `));return}let a=o.metadata?.servers??[];console.log(u.dim(` Servers: ${a.length}`)),console.log();for(let c of a){let l=c.status==="ready"?u.green:c.status==="error"?u.red:u.yellow;console.log(` ${u.bold(c.serverId)} ${l(c.status)} connect=${u.dim(c.connect)}`),c.cachedAt&&console.log(u.dim(` tools=${c.tools} resources=${c.resources} prompts=${c.prompts}`)),c.lastError&&console.log(u.red(` error: ${c.lastError}`))}console.log()},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
160
- /mcp - MCP Server Management
161
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /mcp ")+"Show MCP server status"),console.log(u.dim(" /mcp status ")+"Same as /mcp"),console.log(u.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,o)=>{let r=e[0]?.toLowerCase()??"status";if(r==="status"){let s=await wa({mode:o.repoIntelligenceMode,trace:o.repoIntelligenceTrace,probePremium:!0});ZT(s);return}if(r==="warm"){let s=await Ix({mode:o.repoIntelligenceMode,trace:o.repoIntelligenceTrace});p$(s);return}if(r==="mode"){if(e.length===1){console.log(u.dim(`
162
- Current repo-intelligence mode: ${u.cyan(o.repoIntelligenceMode??"auto")}`)),console.log(u.dim(`Usage: /repointel mode [auto|off|oss|premium-shared|premium-native]
163
- `));return}let s=u$(e[1]);if(!s){console.log(u.red(`
164
- [Invalid repo-intelligence mode: ${e[1]}]`)),console.log(u.dim(`Usage: /repointel mode [auto|off|oss|premium-shared|premium-native]
165
- `));return}let a=Zu({mode:s},{repoIntelligenceMode:s},n,o);Ao(`Repo intelligence mode: ${s}`,a);return}if(r==="trace"){let s=e[1]?.toLowerCase();if(!s){console.log(u.dim(`
166
- Current repo-intelligence trace: ${u.cyan(o.repoIntelligenceTrace?"on":"off")}`)),console.log(u.dim(`Usage: /repointel trace [on|off|toggle]
167
- `));return}let a=d$(s,o.repoIntelligenceTrace??!1);if(a===null){console.log(u.red(`
168
- [Invalid trace value: ${e[1]}]`)),console.log(u.dim(`Usage: /repointel trace [on|off|toggle]
169
- `));return}let c=Zu({trace:a},{repoIntelligenceTrace:a},n,o);Ao(`Repo intelligence trace: ${a?"on":"off"}`,c);return}if(r==="endpoint"){if(e.length===1){let c=await wa({mode:o.repoIntelligenceMode,trace:o.repoIntelligenceTrace});console.log(u.dim(`
170
- Current repointel endpoint: ${u.cyan(c.endpoint)}`)),console.log(u.dim(`Usage: /repointel endpoint [http://host:port|default]
171
- `));return}let s=YT(e[1]),a=Zu({endpoint:s},{repointelEndpoint:s??void 0},n,o);Ao(`Repointel endpoint: ${s??"default"}`,a);return}if(r==="bin"){if(e.length===1){let c=await wa({mode:o.repoIntelligenceMode,trace:o.repoIntelligenceTrace});console.log(u.dim(`
172
- Current repointel bin: ${u.cyan(c.bin)}`)),console.log(u.dim(`Usage: /repointel bin [<path-or-command>|default]
173
- `));return}let s=YT(e.slice(1).join(" ")),a=Zu({bin:s},{repointelBin:s??void 0},n,o);Ao(`Repointel bin: ${s??"default"}`,a);return}console.log(u.red(`
174
- [Unknown /repointel subcommand: ${e[0]}]`)),console.log(u.dim(`Usage: /repointel [status|mode|trace|warm|endpoint|bin]
175
- `))},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
176
- /repointel - Repo-Intelligence Runtime Control
177
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /repointel ")+"Show current repo-intelligence and premium runtime status"),console.log(u.dim(" /repointel status ")+"Probe the local premium frontdoor and print detailed status"),console.log(u.dim(" /repointel mode auto ")+"Prefer premium-native when available, otherwise fall back to OSS"),console.log(u.dim(" /repointel mode off ")+"Strictly disable repo-intelligence working tools and auto lane for this session"),console.log(u.dim(" /repointel mode oss ")+"Force the OSS baseline only"),console.log(u.dim(" /repointel mode premium-shared ")+"Use premium without KodaX native auto lane"),console.log(u.dim(" /repointel mode premium-native ")+"Use the KodaX flagship premium path"),console.log(u.dim(" /repointel trace on|off|toggle ")+"Toggle repo-intelligence trace output"),console.log(u.dim(" /repointel endpoint http://127.0.0.1:47891")+"Override the local premium daemon endpoint"),console.log(u.dim(" /repointel endpoint default ")+"Clear the endpoint override and use the default"),console.log(u.dim(" /repointel bin repointel ")+"Use a PATH-visible repointel command"),console.log(u.dim(" /repointel bin <path> ")+"Use an explicit repointel launcher path"),console.log(u.dim(" /repointel bin default ")+"Clear the bin override and use the default command"),console.log(u.dim(" /repointel warm ")+"Try to start or warm the local premium daemon"),console.log(),console.log(u.bold("Notes:")),console.log(u.dim(" - /status now includes a compact repo-intelligence summary.")),console.log(u.dim(" - /repointel warm is operational: it can warm the premium runtime even when your current mode is oss/off.")),console.log(u.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:"fallback",description:"Configure the cross-provider fallback chain for child tasks",usage:"/fallback [status | <p1,p2,...> | off]",handler:i(async(e,t,n,o)=>{let r=(process.env.KODAX_FALLBACK_PROVIDERS??"").split(",").map(c=>c.trim()).filter(Boolean),s=e[0]?.toLowerCase();if(!s||s==="status"){r.length===0?console.log(u.dim(`
178
- Child-task provider fallback: `)+u.yellow("off")+u.dim(" (no chain configured)")):(console.log(u.dim(`
179
- Child-task provider fallback: `)+u.green("on")),console.log(u.dim(" Order: ")+u.cyan(r.join(" \u2192 ")))),console.log(u.dim(`
180
- When a child's primary provider is exhausted/down, KodaX re-runs it`)),console.log(u.dim(` on the next provider in this list. Set: /fallback ark-coding,kimi-code
181
- `));return}if(s==="off"||s==="clear"||s==="none"){Hn({fallbackProviders:void 0}),delete process.env.KODAX_FALLBACK_PROVIDERS,console.log(u.green(`
182
- \u2713 `)+u.dim(`Child-task provider fallback disabled.
183
- `));return}let a=e.join(",").split(",").map(c=>c.trim()).filter(Boolean);if(a.length===0){console.log(u.red(`
184
- [/fallback: no provider ids given]`)),console.log(u.dim(`Usage: /fallback ark-coding,kimi-code (or /fallback off)
185
- `));return}Hn({fallbackProviders:a}),process.env.KODAX_FALLBACK_PROVIDERS=a.join(","),console.log(u.green(`
186
- \u2713 `)+u.dim("Child-task fallback order: ")+u.cyan(a.join(" \u2192 "))),console.log(u.dim(` Provider ids must match your configured providers (see /status or kodax doctor).
187
- `))},"handler")},{name:"mode",description:"Show or switch permission mode (plan/accept-edits/auto)",usage:"/mode [plan|accept-edits|auto]",handler:i(async(e,t,n,o)=>{if(e.length===0){let s=to(o.permissionMode,"accept-edits")??"accept-edits";console.log(u.dim(`
188
- Current mode: ${u.cyan(s)}`)),console.log(u.dim("Usage: /mode [plan|accept-edits|auto]"));return}let r=e[0];Fa.includes(r)?(o.permissionMode=r,n.setPermissionMode?.(r),Qa(r),console.log(u.cyan(`
189
- [Switched to ${r} mode] (saved)`))):console.log(u.red(`
190
- [Unknown mode: ${e[0]}. Use: plan | accept-edits | auto]`))},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
191
- /mode - Switch Permission Mode
192
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /mode ")+"Show current permission mode"),console.log(u.dim(" /mode plan ")+"Read-only: blocks all modifications"),console.log(u.dim(" /mode accept-edits ")+"File edits auto, bash requires confirmation"),console.log(u.dim(" /mode auto ")+"LLM classifier reviews each tool call (FEATURE_092)"),console.log(u.dim(" /mode auto-in-project ")+u.gray("(deprecated alias for auto; will be removed in v0.7.38)")),console.log(),console.log(u.bold("Permission Levels:")),console.log(u.yellow(" plan ")+u.dim("- Read-only planning, no file/command modifications")),console.log(u.green(" accept-edits ")+u.dim("- File edits auto-approved, bash still requires confirmation")),console.log(u.green(" auto ")+u.dim("- LLM classifier (engine=llm, default) or rules engine reviews each call")),console.log(),console.log(u.bold("Notes:")),console.log(u.dim(" - .kodax/ directory and project-external paths always require confirmation")),console.log(u.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 o=n.getAutoModeStats?.();if(!o){console.log(u.yellow(`
193
- [auto-engine] not in auto mode \u2014 switch via /mode auto first`));return}if(e.length===0){console.log(u.dim(`
194
- Classifier engine: ${u.cyan(o.engine)}`)),console.log(u.dim(` consecutive denials: ${o.denials.consecutive}`)),console.log(u.dim(` cumulative denials: ${o.denials.cumulative}`)),console.log(u.dim(` breaker errors: ${o.breaker.timestamps.filter(s=>s>=Date.now()-600*1e3).length}`)),console.log(u.dim("Usage: /auto-engine [llm|rules]"));return}let r=e[0];if(r!=="llm"&&r!=="rules"){console.log(u.red(`
195
- [auto-engine] unknown engine "${e[0]}" \u2014 use llm or rules`));return}n.setAutoModeEngine?.(r),console.log(u.cyan(`
196
- [auto-engine] switched to ${r}`)),console.log(r==="rules"?u.dim(" every non-Tier-1 tool call now escalates to user confirmation"):u.dim(" classifier consultation resumed; threshold downgrades still apply"))},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
197
- /auto-engine - Auto-Mode Classifier Engine Toggle
198
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /auto-engine ")+"Show current engine + denial/breaker counts"),console.log(u.dim(" /auto-engine llm ")+"Resume classifier consultation (default)"),console.log(u.dim(" /auto-engine rules ")+"Skip classifier; every non-Tier-1 call asks user"),console.log(),console.log(u.bold("Notes:")),console.log(u.dim(" - Only meaningful in auto mode (/mode auto).")),console.log(u.dim(" - The classifier may auto-downgrade to rules after 3 consecutive blocks,")),console.log(u.dim(" 20 cumulative blocks, or 5 errors in a 10-minute window. /auto-engine llm")),console.log(u.dim(" manually flips back to llm.")),console.log(u.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 o=n.getAutoModeStats?.();if(!o){console.log(u.yellow(`
199
- [auto-denials] not in auto mode \u2014 switch via /mode auto first`));return}console.log(u.cyan(`
200
- [auto-mode classifier stats]`)),console.log(u.dim(` engine: ${u.cyan(o.engine)}`)),console.log(u.dim(" Denial tracker:")),console.log(u.dim(` consecutive blocks: ${o.denials.consecutive} / 3`)),console.log(u.dim(` cumulative blocks: ${o.denials.cumulative} / 20`)),console.log(u.dim(" Circuit breaker:")),console.log(u.dim(` errors in window: ${o.breaker.timestamps.filter(r=>r>=Date.now()-600*1e3).length} / 5 (10 min)`)),console.log(),o.engine==="rules"&&console.log(u.yellow(" \u21AA engine has downgraded to rules. /auto-engine llm to flip back.")),console.log()},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
201
- /auto-denials - Auto-Mode Classifier Diagnostic Dump
202
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /auto-denials ")+"Print engine + tracker + breaker counters"),console.log(),console.log(u.bold("Thresholds (FEATURE_092):")),console.log(u.dim(" - 3 consecutive blocks \u2192 engine downgrade to rules")),console.log(u.dim(" - 20 cumulative blocks \u2192 engine downgrade to rules")),console.log(u.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(u.green(`
203
- [Session saved]`)),Gp(t)},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
204
- /save - Save Current Session
205
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /save ")+"Save current conversation to session storage"),console.log(),console.log(u.bold("Description:")),console.log(u.dim(" Manually saves the current conversation session.")),console.log(u.dim(" Sessions are auto-saved after each message, but you can")),console.log(u.dim(" use this to ensure the session is persisted.")),console.log(u.dim(" Saving updates session storage only; the current workspace stays untouched.")),console.log(),console.log(u.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(u.red(`
206
- [Usage: /load <session-id>]`)),await n.listSessions();return}await n.loadSession(e[0])==="missing"&&console.log(u.red(`
207
- [Session not found: ${e[0]}]`))},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
208
- /load - Load a Saved Session
209
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /load ")+"List available sessions"),console.log(u.dim(" /load <session-id> ")+"Load a specific session"),console.log(u.dim(" /resume <id> ")+"Alias for /load"),console.log(),console.log(u.bold("Examples:")),console.log(u.dim(" /load ")+"# See all sessions"),console.log(u.dim(" /load 20260219_143052")+"# Load session by ID"),console.log(),console.log(u.bold("Workspace behavior:")),console.log(u.dim(" /load can resume sessions from sibling workspaces in the same canonical repo.")),console.log(u.dim(" If a saved workspace is unavailable, KodaX explains the fallback before loading.")),console.log(),console.log(u.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 o=e[0]?.trim().toLowerCase();if(o==="label"){if(e.length<3){console.log(u.red(`
210
- [Usage: /tree label <entry-id|label> <name>]`));return}await n.labelSessionBranch?.(e[1],e.slice(2).join(" "))||console.log(u.red(`
211
- [Tree entry not found: ${e[1]}]`));return}if(o==="unlabel"){if(e.length<2){console.log(u.red(`
212
- [Usage: /tree unlabel <entry-id|label>]`));return}await n.labelSessionBranch?.(e[1],void 0)||console.log(u.red(`
213
- [Tree entry not found: ${e[1]}]`));return}await n.switchSessionBranch?.(e[0])==="missing"&&console.log(u.red(`
214
- [Tree entry not found: ${e[0]}]`))},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
215
- /tree - Inspect Session Lineage
216
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /tree ")+"Show the current session tree"),console.log(u.dim(" /tree <entry-id|label> ")+"Jump to a previous branch point"),console.log(u.dim(" /tree label <entry-id|label> <name>")+"Attach a lightweight checkpoint label"),console.log(u.dim(" /tree unlabel <entry-id|label> ")+"Clear an existing checkpoint label"),console.log(),console.log(u.bold("Description:")),console.log(u.dim(" Session history is stored as a branchable tree. Use /tree to")),console.log(u.dim(" inspect the lineage, revisit an earlier branch safely, and add")),console.log(u.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(u.red(`
217
- [Unable to fork session${e[0]?` from ${e[0]}`:""}]`))},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
218
- /fork - Export a Branch to a New Session
219
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /fork ")+"Fork from the active branch"),console.log(u.dim(" /fork <entry-id|label>")+"Fork from a selected tree node"),console.log(),console.log(u.bold("Description:")),console.log(u.dim(" Creates a new session file from the selected branch so you can")),console.log(u.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(u.red(`
220
- [Unable to rewind${e[0]?` to ${e[0]}`:" \u2014 no previous turn found"}]`))},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
221
- /rewind - Rewind Session to a Previous Point
222
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /rewind ")+"Rewind to the previous user input"),console.log(u.dim(" /rewind <entry-id|label>")+"Rewind to a specific tree node"),console.log(),console.log(u.bold("Description:")),console.log(u.dim(" Truncates the session after the target entry. Unlike /fork,")),console.log(u.dim(" this modifies the current session in place. The rewind event")),console.log(u.dim(" is recorded in the lineage for auditability.")),console.log(),console.log(u.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(u.cyan(`
223
- /sessions - List Saved Sessions
224
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /sessions ")+"List all saved sessions"),console.log(u.dim(" /ls, /list ")+"Aliases for /sessions"),console.log(),console.log(u.bold("Description:")),console.log(u.dim(" Shows recent conversation sessions with their IDs,")),console.log(u.dim(" message counts, titles, and workspace truth. Use /load <id> to resume.")),console.log(u.dim(" This keeps sibling worktree sessions inspectable without a persistent cockpit.")),console.log(),console.log(u.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(u.cyan(`
225
- /history - Show Conversation History
226
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /history ")+"Display recent messages in current session"),console.log(u.dim(" /hist ")+"Alias for /history"),console.log(),console.log(u.bold("Description:")),console.log(u.dim(" Shows the last 20 messages in the current conversation.")),console.log(u.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(u.red(`
227
- [Usage: /delete <session-id> or /delete all]`)),await n.listSessions?.();return}e[0]==="all"?(await n.deleteAllSessions?.(),console.log(u.green(`
228
- [All sessions deleted]`)),Gp(t)):(await n.deleteSession?.(e[0]),console.log(u.green(`
229
- [Session deleted: ${e[0]}]`)),Gp(t))},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
230
- /delete - Delete Saved Sessions
231
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /delete ")+"Show usage (lists sessions)"),console.log(u.dim(" /delete <id> ")+"Delete a specific session"),console.log(u.dim(" /delete all ")+"Delete ALL sessions"),console.log(u.dim(" /rm, /del ")+"Aliases for /delete"),console.log(),console.log(u.bold("Examples:")),console.log(u.dim(" /delete 20260219_143052")+" # Delete specific session"),console.log(u.dim(" /delete all ")+"# Delete all sessions"),console.log(),console.log(u.bold("Workspace behavior:")),console.log(u.dim(" Deletes saved session records only.")),console.log(u.dim(" Current workspaces and checkouts remain untouched.")),console.log(),console.log(u.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,o)=>{let r=Ca().providerModels;if(e.length===0){console.log(u.bold(`
232
- Available Providers:
233
- `));let c=vm(r);for(let l of c){let d=l.configured?u.green("[configured]"):u.red("[not configured]"),m=l.custom?u.yellow(" [custom]"):"",p=l.name===o.provider,g=p?u.cyan(" *"):"";console.log(` ${u.bold(l.name)}${g} ${d}${m}`),l.capabilityProfile.transport==="cli-bridge"&&console.log(u.yellow(` ! ${Tm(l.capabilityProfile)}`));let x=Hi(l.name,r),h=p?o.model:null;for(let T of x){let b=p&&(h===T||!h&&T===l.model)?u.cyan(">"):" ";console.log(` ${b} ${T}`)}console.log()}console.log(u.dim(`Current: provider=${o.provider}${o.model?`, model=${o.model}`:""}`)),console.log(u.dim("Usage:")),console.log(u.dim(" /model <provider> Switch provider")),console.log(u.dim(" /model <provider>/<model> Switch to specific model")),console.log(u.dim(` /model /<model> Switch model within current provider
234
- `));return}let s=(e[0]??"").trim();if(!s)return;if(s.startsWith("/")){let c=s.slice(1);if(!c){console.log(u.red(`
235
- [Missing model name after /]`));return}let l=Hi(o.provider,r);if(!l.includes(c)){console.log(u.red(`
236
- [Unknown model: ${c}]`)),console.log(u.dim(`Available models for ${o.provider}: ${l.join(", ")}
237
- `));return}Hn({model:c}),n.switchProvider?.(o.provider,c),console.log(u.cyan(`
238
- [Switched to ${c}] (saved)`));return}if(s.includes("/")){let c=s.indexOf("/"),l=s.slice(0,c),d=s.slice(c+1);if(!d||!l){console.log(u.red(`
239
- [Invalid format. Use: /model <provider>/<model>]`));return}if(!Ei(l)){console.log(u.red(`
240
- [Unknown provider: ${l}]`)),console.log(u.dim(`Available: ${Mi().join(", ")}
241
- `));return}let m=Hi(l,r);if(!m.includes(d)){console.log(u.red(`
242
- [Unknown model: ${d}]`)),console.log(u.dim(`Available models for ${l}: ${m.join(", ")}
243
- `));return}Hn({provider:l,model:d}),n.switchProvider?.(l,d),console.log(u.cyan(`
244
- [Switched to ${l}/${d}] (saved)`));return}let a=s;Ei(a)?(Hn({provider:a,model:void 0}),n.switchProvider?.(a),console.log(u.cyan(`
245
- [Switched to ${a}] (saved)`))):(console.log(u.red(`
246
- [Unknown provider: ${a}]`)),console.log(u.dim(`Available: ${Mi().join(", ")}
247
- `)))},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
248
- /model - Switch LLM Provider/Model
249
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /model ")+"List all providers with models"),console.log(u.dim(" /model <provider> ")+"Switch to a provider (default model)"),console.log(u.dim(" /model <provider>/<model> ")+"Switch to a specific model"),console.log(u.dim(" /model /<model> ")+"Switch model within current provider"),console.log(),console.log(u.bold("Examples:")),console.log(u.dim(" /model ")+"# See available providers & models"),console.log(u.dim(" /model anthropic ")+"# Switch to Anthropic (default model)"),console.log(u.dim(" /model openai/gpt-5.4 ")+"# Switch to OpenAI GPT-5.4"),console.log(u.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,o)=>{let r=(e[0]??"").trim(),s=o.provider,a=o.model;if(r)if(r.includes("/")){let d=r.indexOf("/");s=r.slice(0,d).trim(),a=r.slice(d+1).trim()||void 0}else s=r,a=void 0;if(!Ei(s)){console.log(u.red(`
250
- [Unknown provider: ${s}]`)),console.log(u.dim(`Available: ${Mi().join(", ")}
251
- `));return}let c=zx(s,a);if(!c){console.log(u.red(`
252
- [Provider details unavailable: ${s}]`)),console.log();return}let l=qx(s,a,o.reasoningMode);console.log(u.bold(`
253
- Provider Details:
254
- `)),console.log(u.dim(` Provider: ${u.cyan(c.provider)}${c.model?` / ${u.cyan(c.model)}`:""}`)),console.log(u.dim(` Source: ${Xx(c.sourceKind)}`)),console.log(),console.log(u.bold("Capability Matrix:"));for(let d of Yx(c))console.log(u.dim(` - ${d}`));if(console.log(),l.length>0){console.log(u.bold("Common Scenarios:"));for(let d of l){let m=d.decision.status==="block"?u.red:d.decision.status==="warn"?u.yellow:u.green;console.log(m(` - ${d.label}: ${d.decision.status.toUpperCase()}`)),console.log(u.dim(` ${d.decision.summary}`))}console.log()}},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
255
- /provider - Inspect Provider Semantics
256
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /provider ")+"Inspect the current provider/model"),console.log(u.dim(" /provider <provider> ")+"Inspect a provider using its default model"),console.log(u.dim(" /provider <provider>/<model> ")+"Inspect a specific provider/model pair"),console.log(),console.log(u.bold("Description:")),console.log(u.dim(" Shows the provider capability matrix and common 029 policy outcomes.")),console.log(u.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,o)=>{if(e.length===0){let s=kr(o.provider,o.model),a=o.thinking?u.green("ON"):u.dim("OFF");console.log(u.dim(`
257
- Thinking: ${a}`)),console.log(u.dim(`Reasoning mode: ${u.cyan(o.reasoningMode)}`)),console.log(u.dim(`Effective control: ${u.cyan(Cm(s))}`)),console.log(u.dim(`Actual execution: ${bm(o.reasoningMode,s)}`)),console.log(u.dim(`Usage: /thinking on|off|auto|quick|balanced|deep
258
- `));return}let r=e[0].toLowerCase();if(r==="on"||r==="off"||Tr.includes(r)){let s=r==="on"?"auto":r==="off"?"off":r,a=qT(s,n,o);Ao(`Reasoning mode: ${s}`,a);return}console.log(u.red(`
259
- [Invalid value: ${e[0]}]`)),console.log(u.dim(`Usage: /thinking on|off|auto|quick|balanced|deep
260
- `))},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
261
- /thinking - Legacy Alias for Reasoning Mode
262
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /thinking ")+"Show current reasoning status"),console.log(u.dim(" /thinking on ")+"Map to /reasoning auto"),console.log(u.dim(" /thinking off ")+"Map to /reasoning off"),console.log(u.dim(" /thinking auto ")+"Set reasoning mode to auto"),console.log(u.dim(" /thinking quick ")+"Set reasoning mode to quick"),console.log(u.dim(" /thinking balanced ")+"Set reasoning mode to balanced"),console.log(u.dim(" /thinking deep ")+"Set reasoning mode to deep"),console.log(u.dim(" /t ")+"Alias for /thinking"),console.log(),console.log(u.bold("Description:")),console.log(u.dim(" Compatibility command for the new unified reasoning modes.")),console.log(u.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,o)=>{if(e.length===0){let a=kr(o.provider,o.model);console.log(u.dim(`
263
- Reasoning mode: ${u.cyan(o.reasoningMode)}`)),console.log(u.dim(`Thinking compatibility: ${o.thinking?u.green("ON"):u.dim("OFF")}`)),console.log(u.dim(`Effective control: ${u.cyan(Cm(a))}`)),console.log(u.dim(`Actual execution: ${bm(o.reasoningMode,a)}`)),console.log(u.dim(`Usage: /reasoning off|auto|quick|balanced|deep
264
- `));return}let r=e[0].toLowerCase();if(!Tr.includes(r)){console.log(u.red(`
265
- [Invalid reasoning mode: ${e[0]}]`)),console.log(u.dim(`Usage: /reasoning off|auto|quick|balanced|deep
266
- `));return}let s=qT(r,n,o);Ao(`Reasoning mode: ${r}`,s)},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
267
- /reasoning - Set Reasoning Mode
268
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /reasoning ")+"Show current reasoning mode"),console.log(u.dim(" /reasoning off ")+"Disable reasoning"),console.log(u.dim(" /reasoning auto ")+"Use semantic routing + adaptive depth"),console.log(u.dim(" /reasoning quick ")+"Low-depth reasoning"),console.log(u.dim(" /reasoning balanced ")+"Medium-depth reasoning"),console.log(u.dim(" /reasoning deep ")+"High-depth reasoning"),console.log(u.dim(" /reasoning:auto ")+"Inline form, equivalent to /reasoning auto"),console.log(u.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,o)=>{if(e.length===0){console.log(u.dim(`
269
- Agent mode: ${u.cyan(o.agentMode.toUpperCase())}`)),console.log(u.dim(`Usage: /agent-mode [ama|sa|toggle]
270
- `));return}let r=e[0]?.toLowerCase(),s=r==="toggle"?o.agentMode==="ama"?"sa":"ama":r==="ama"||r==="sa"?r:void 0;if(!s){console.log(u.red(`
271
- [Invalid agent mode: ${e[0]}]`)),console.log(u.dim(`Usage: /agent-mode [ama|sa|toggle]
272
- `));return}let a=f$(s,n,o);Ao(`Agent mode: ${s.toUpperCase()}`,a)},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
273
- /agent-mode - Adaptive Multi-Agent Mode Control
274
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /agent-mode ")+"Show current agent mode"),console.log(u.dim(" /agent-mode ama ")+"Enable adaptive multi-agent mode"),console.log(u.dim(" /agent-mode sa ")+"Force single-agent execution"),console.log(u.dim(" /agent-mode toggle ")+"Switch between AMA and SA"),console.log(u.dim(" /am ")+"Alias for /agent-mode"),console.log(),console.log(u.bold("Description:")),console.log(u.dim(" AMA keeps adaptive multi-agent harness selection enabled.")),console.log(u.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,o)=>{o.permissionMode="auto",n.setPermissionMode?.("auto"),Qa("auto"),console.log(u.cyan(`
275
- [Switched to auto mode] (saved)`))},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
276
- /auto - Quick Switch to Auto Mode
277
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /auto ")+"Switch to auto mode"),console.log(u.dim(" /a ")+"Alias for /auto"),console.log(),console.log(u.bold("Description:")),console.log(u.dim(" Equivalent to /mode auto.")),console.log(u.dim(" Auto-mode classifier evaluates each non-Tier-1 tool call;")),console.log(u.dim(" benign actions auto-approve, risky ones escalate to user confirm.")),console.log(),console.log(u.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(u.dim(`
278
- [/skills is deprecated. Use /skill instead]`)),await JT(e,t)},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
279
- /skills - Deprecated
280
- `)),console.log(u.yellow("This command is deprecated. Use /skill instead.")),console.log(),console.log(u.dim(" /skill ")+"List all available skills"),console.log(u.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,o)=>{await JT(e,t)},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
281
- /skill - Skill Namespace
282
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /skill ")+"List all available skills"),console.log(u.dim(" /skill:<name> [args] ")+"Invoke a skill by name"),console.log(),console.log(u.bold("Description:")),console.log(u.dim(" This is the pi-mono style skill invocation format.")),console.log(u.dim(" Skills can also be triggered by natural language - just ask!")),console.log(),console.log(u.bold("Examples:")),console.log(u.dim(" /skill ")+"# List all skills"),console.log(u.dim(" /skill:code-review src/ ")+"# Invoke code-review skill"),console.log(u.dim(" /skill:tdd auth ")+"# Invoke TDD skill"),console.log()},"detailedHelp")},{name:"verifier-log",description:"Toggle Sidecar Verifier log line (off by default)",usage:"/verifier-log [on|off]",argumentHint:"on | off",handler:i(async e=>{let t=e[0]?.toLowerCase(),n=process.env.KODAX_VERIFIER_LOG==="1";if(!t){let s=Ca().verifierLog===!0,a=n?"on":"off",c=s===n?"":` (env=${n?"on":"off"}, config=${s?"on":"off"})`;console.log(u.dim(`
283
- Sidecar Verifier log: ${u.cyan(a)}${c}`)),console.log(u.dim(" When on, a one-line summary persists per verifier call:\n `[Sidecar Verifier] {verdict} \xB7 {provider}/{model} \xB7 {ms}ms \xB7 {trace}`")),console.log(u.dim(`Usage: /verifier-log [on|off]
284
- `));return}let o;if(t==="on"||t==="true"||t==="1")o=!0;else if(t==="off"||t==="false"||t==="0")o=!1;else{console.log(u.red(`
285
- [Invalid value: ${e[0]}]`)),console.log(u.dim(`Usage: /verifier-log [on|off]
286
- `));return}o?process.env.KODAX_VERIFIER_LOG="1":delete process.env.KODAX_VERIFIER_LOG;let r=tc({verifierLog:o});Ao(`Sidecar Verifier log: ${o?"on":"off"}`,r)},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
287
- /verifier-log - Sidecar Verifier Log Toggle
288
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /verifier-log ")+"Show current state"),console.log(u.dim(" /verifier-log on ")+"Enable + persist to config"),console.log(u.dim(" /verifier-log off ")+"Disable + persist to config"),console.log(),console.log(u.bold("Description:")),console.log(u.dim(" The Sidecar Verifier is the second-pass LLM judgment that fires")),console.log(u.dim(" after a Worker terminates text-only. Off by default (silent happy")),console.log(u.dim(" path). When on, every verifier call emits a one-line summary:")),console.log(u.dim(" [Sidecar Verifier] accept \xB7 anthropic/claude-sonnet-4-6 \xB7 3214ms \xB7 verifier_ok")),console.log(),console.log(u.bold("Equivalent env var:")),console.log(u.dim(" KODAX_VERIFIER_LOG=1 ")+"Same effect, env wins over config"),console.log()},"detailedHelp")},{name:"stall-log",description:"Toggle Stall Sidecar log line (off by default)",usage:"/stall-log [on|off]",argumentHint:"on | off",handler:i(async e=>{let t=e[0]?.toLowerCase(),n=process.env.KODAX_STALL_LOG==="1";if(!t){let s=Ca().stallLog===!0,a=n?"on":"off",c=s===n?"":` (env=${n?"on":"off"}, config=${s?"on":"off"})`;console.log(u.dim(`
289
- Stall Sidecar log: ${u.cyan(a)}${c}`)),console.log(u.dim(" When on, a one-line summary persists per L2 stall verdict:\n `[Stall Sidecar] isStuck={true|false} \xB7 {provider}/{model} \xB7 {ms}ms \xB7 {trace}`")),console.log(u.dim(`Usage: /stall-log [on|off]
290
- `));return}let o;if(t==="on"||t==="true"||t==="1")o=!0;else if(t==="off"||t==="false"||t==="0")o=!1;else{console.log(u.red(`
291
- [Invalid value: ${e[0]}]`)),console.log(u.dim(`Usage: /stall-log [on|off]
292
- `));return}o?process.env.KODAX_STALL_LOG="1":delete process.env.KODAX_STALL_LOG;let r=tc({stallLog:o});Ao(`Stall Sidecar log: ${o?"on":"off"}`,r)},"handler"),detailedHelp:i(()=>{console.log(u.cyan(`
293
- /stall-log - Stall Sidecar Log Toggle
294
- `)),console.log(u.bold("Usage:")),console.log(u.dim(" /stall-log ")+"Show current state"),console.log(u.dim(" /stall-log on ")+"Enable + persist to config"),console.log(u.dim(" /stall-log off ")+"Disable + persist to config"),console.log(),console.log(u.bold("Description:")),console.log(u.dim(" The Stall Sidecar (FEATURE_178) is the L2 anti-loop LLM judge that")),console.log(u.dim(" fires when the L1 rule-based detector spots a repeat-tool pattern.")),console.log(u.dim(" Off by default (silent happy path). When on, every L2 verdict emits")),console.log(u.dim(" a one-line summary:")),console.log(u.dim(" [Stall Sidecar] isStuck=true \xB7 zhipu/glm-5.1 (inherit) \xB7 1842ms \xB7 sidecar_ok")),console.log(),console.log(u.bold("Equivalent env var:")),console.log(u.dim(" KODAX_STALL_LOG=1 ")+"Same effect, env wins over config"),console.log()},"detailedHelp")},Ap,_p,NT,$p,BT],s$={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=ed();return e.map(n=>t.get(n)).filter(n=>n!==void 0).filter(n=>n.userInvocable!==!1)}i(a$,"getCommandsForCategory");function c$(e){return e!=="off"}i(c$,"reasoningModeToLegacyThinking");var l$=["auto","off","oss","premium-shared","premium-native"];function u$(e){return e&&l$.includes(e)?e:null}i(u$,"normalizeRepoIntelligenceMode");function YT(e){let t=e?.trim();return!t||t==="default"||t==="reset"||t==="clear"?null:t}i(YT,"normalizeRuntimeOverride");function d$(e,t){return e?e==="toggle"?!t:e==="on"||e==="true"||e==="1"?!0:e==="off"||e==="false"||e==="0"?!1:null:null}i(d$,"resolveToggleFlag");function tc(e){try{return Hn(e),{saved:!0}}catch(t){return{saved:!1,error:t instanceof Error?t:new Error(String(t))}}}i(tc,"persistUserConfig");function Ao(e,t){if(t.saved){console.log(u.cyan(`
295
- [${e}] (saved)`));return}console.log(u.yellow(`
296
- [${e}]`)),console.log(u.red(`[Config save failed: ${t.error.message}]`))}i(Ao,"printPersistedCommandStatus");function qT(e,t,n){let o=c$(e),r=tc({reasoningMode:e,thinking:o});return t.setReasoningMode?t.setReasoningMode(e):(n.reasoningMode=e,n.thinking=o),r}i(qT,"applyReasoningMode");function f$(e,t,n){let o=tc({agentMode:e});return t.setAgentMode?t.setAgentMode(e):n.agentMode=e,o}i(f$,"applyAgentMode");function Zu(e,t,n,o){let r=tc(t);return n.setRepoIntelligenceRuntime?n.setRepoIntelligenceRuntime(e):(e.mode!==void 0&&(o.repoIntelligenceMode=e.mode),e.endpoint!==void 0&&(o.repointelEndpoint=e.endpoint??void 0),e.bin!==void 0&&(o.repointelBin=e.bin??void 0),e.trace!==void 0&&(o.repoIntelligenceTrace=e.trace)),r}i(Zu,"applyRepoIntelligenceRuntimeConfig");function m$(e){let t=e.configuredMode===e.requestedMode?e.configuredMode:`${e.configuredMode} -> ${e.requestedMode}`,n=`${e.effectiveEngine}/${e.effectiveBridge}`,o=e.transport?`, ${e.transport}`:"",r=e.fallbackToOss?", fallback=oss":"";return`${t} => ${n} (${e.status}${o}${r})`}i(m$,"formatRepoIntelligenceSummary");function ZT(e){console.log(u.bold(`
297
- Repo Intelligence:
298
- `)),console.log(u.dim(` Configured: ${u.cyan(e.configuredMode)}`)),console.log(u.dim(` Requested: ${u.cyan(e.requestedMode)}`)),console.log(u.dim(` Active: ${u.cyan(`${e.effectiveEngine}/${e.effectiveBridge}`)}`)),console.log(u.dim(` Status: ${u.cyan(e.status)}${e.transport?u.dim(` (${e.transport})`):""}`)),console.log(u.dim(` Trace: ${u.cyan(e.traceEnabled?"on":"off")}`)),console.log(u.dim(` Endpoint: ${e.endpoint}`)),console.log(u.dim(` Bin: ${e.bin}`)),e.clientBuildId&&console.log(u.dim(` Client ID: ${e.clientBuildId}`)),e.daemonBuildId&&console.log(u.dim(` Daemon ID: ${e.daemonBuildId}`)),e.daemonPid!==void 0&&console.log(u.dim(` Daemon PID: ${e.daemonPid}`)),e.daemonStartedAt&&console.log(u.dim(` Daemon Up: ${e.daemonStartedAt}`)),e.fallbackToOss&&console.log(u.yellow(" Fallback: OSS baseline is currently active")),e.error&&console.log(u.red(` Error: ${e.error}`));for(let t of e.warnings)console.log(u.yellow(` Warning: ${t}`));console.log()}i(ZT,"printRepoIntelligenceInspection");function p$(e){e.warmed?console.log(u.green(`
299
- [repointel warmed successfully]`)):console.log(u.yellow(`
300
- [repointel warm did not reach a ready daemon state]`)),e.warmLatencyMs!==void 0&&console.log(u.dim(` Warm latency: ${e.warmLatencyMs} ms`)),ZT(e)}i(p$,"printRepoIntelligenceWarmResult");function QT(e,t){if(t.length!==0){console.log(u.dim(`${e}:`));for(let n of t){let o=n.aliases?.length?` (${n.aliases.join(", ")})`:"";console.log(` ${u.cyan(`/${n.name}`)}${u.dim(o)} ${n.description}`)}console.log()}}i(QT,"printCommandSection");function g$(){console.log(u.bold(`
301
- Available Commands:
302
- `));let e=ed(),t=new Set;for(let[o,r]of Object.entries(s$)){let s=a$(r);if(s.length!==0){for(let a of s)t.add(a.name.toLowerCase());QT(o,s)}}let n=new Map;for(let o of e.getAll()){if(o.userInvocable===!1||t.has(o.name.toLowerCase()))continue;let r=o.source==="extension"?"Extensions":o.source==="skill"?"Skill Commands":o.source==="prompt"?"Prompt Commands":"Other Commands",s=n.get(r)??[];s.push(o),n.set(r,s)}for(let o of w$()){if(t.has(o.name.toLowerCase()))continue;let r=n.get("Extensions")??[];r.push({name:o.name,aliases:o.aliases,description:o.description}),n.set("Extensions",r)}for(let o of["Extensions","Skill Commands","Prompt Commands","Other Commands"])QT(o,n.get(o)??[]);console.log(u.dim("Special syntax:")),console.log(` ${u.cyan("@path")} Attach image to context`),console.log(` ${u.cyan("!command")} Execute shell command`),console.log(),console.log(u.dim("Skills:")),console.log(` ${u.cyan("/skill")} List all available skills`),console.log(` ${u.cyan("/skill:<name>")} Invoke a skill (e.g., /skill:code-review)`),console.log()}i(g$,"printHelp");function h$(e){jr.size===0&&Kp();let t=jr.get(e.toLowerCase());if(!t){let n=eC(e);if(!n){console.log(u.yellow(`
303
- [Unknown command: /${e}. Type /help for available commands]`));return}console.log(u.cyan(`
304
- /${n.name}`)),n.aliases?.length&&console.log(u.dim(`Aliases: ${n.aliases.join(", ")}`)),console.log(u.dim(`
305
- ${n.description}`)),console.log(u.dim(`
306
- Usage: ${S$(n)}`)),console.log();return}t.detailedHelp?t.detailedHelp():(console.log(u.cyan(`
307
- /${t.name}`)),t.aliases?.length&&console.log(u.dim(`Aliases: ${t.aliases.join(", ")}`)),console.log(u.dim(`
308
- ${t.description}`)),t.usage&&console.log(u.dim(`
309
- Usage: ${t.usage}`)),console.log())}i(h$,"printDetailedHelp");async function y$(e,t,n=[]){let o=n[0]?.toLowerCase(),r=e.contextTokenSnapshot?.currentTokens??br(e.messages),s=e.contextTokenSnapshot?.source??"estimate",a=Vx(t.provider),c=Gl(t.provider,t.model,t.reasoningMode);if(console.log(u.bold(`
310
- Session Status:
311
- `)),console.log(u.dim(` Provider: ${u.cyan(t.provider)}${t.model?` / ${u.cyan(t.model)}`:""}`)),console.log(u.dim(` Permission: ${u.cyan(t.permissionMode)}`)),console.log(u.dim(` Reasoning: ${u.cyan(t.reasoningMode)}`)),console.log(u.dim(` Agent Mode: ${u.cyan(t.agentMode.toUpperCase())}`)),a){let d=Tm(a),m=a.transport==="cli-bridge"?u.yellow(d):u.cyan(d);console.log(u.dim(` Provider Cap: ${m}`))}if(c&&c.status!=="allow"){let d=c.status==="block"?u.red:u.yellow;console.log(u.dim(` Provider Policy: ${d(c.summary)}`))}console.log(u.dim(` Session ID: ${e.sessionId}`)),console.log(u.dim(` Messages: ${e.messages.length}`)),console.log(u.dim(` Tokens: ~${r} (${s})`));let l=await wa({mode:t.repoIntelligenceMode,trace:t.repoIntelligenceTrace});console.log(u.dim(` Repo Intel: ${u.cyan(m$(l))}`)),e.runtimeInfo?.workspaceRoot?console.log(u.dim(` Workspace: ${u.cyan(mn(e.runtimeInfo))}`)):e.gitRoot&&console.log(u.dim(` Workspace: ${u.cyan(e.gitRoot)}`)),(o==="workspace"||o==="worktree"||o==="runtime")&&(e.runtimeInfo?.canonicalRepoRoot&&console.log(u.dim(` Canonical: ${e.runtimeInfo.canonicalRepoRoot}`)),e.runtimeInfo?.executionCwd&&console.log(u.dim(` Exec CWD: ${e.runtimeInfo.executionCwd}`)),e.runtimeInfo?.workspaceKind&&console.log(u.dim(` Kind: ${e.runtimeInfo.workspaceKind}`))),console.log(u.dim(` Created: ${e.createdAt}`)),console.log(u.dim(` Last Active: ${e.lastAccessed}`)),console.log()}i(y$,"printStatus");async function JT(e,t){let n=So(t.gitRoot);n.size===0&&await vr(t.gitRoot),x$(n.listUserInvocable())}i(JT,"handleSkillNamespaceCommand");function x$(e){if(console.log(u.bold(`
312
- Available Skills:
313
- `)),e.length===0){console.log(u.dim(" No skills found.")),console.log(u.dim(`
314
- Skills can be placed in:`)),console.log(u.dim(" - .kodax/skills/")),console.log(u.dim(" - ~/.kodax/skills/"));return}let t=Math.max(...e.map(n=>n.name.length));for(let n of e){let o=n.name.padEnd(t),r=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(` ${u.cyan(`/skill:${o}`)}${u.dim(r)}${u.dim(s)} ${u.dim(a)}`)}console.log(),console.log(u.dim(`Total: ${e.length} skills`)),console.log(u.dim("Usage: /skill:<name> [args] or ask naturally")),console.log()}i(x$,"printSkillsListPiMonoStyle");var jr=new fs;function Kp(e){jr.size>0||zT(jr,e)}i(Kp,"initCommandRegistry");function ed(e){return Kp(e),jr}i(ed,"getCommandRegistry");function w$(){return To()?.listCommands().filter(t=>t.metadata?.userInvocable!==!1)??[]}i(w$,"getActiveExtensionCommands");function eC(e){let t=To(),n=e.trim().toLowerCase();if(!n)return;let o=t?.listCommands().find(r=>r.name.trim().toLowerCase()===n||(r.aliases??[]).some(s=>s.trim().toLowerCase()===n));if(o)return o.metadata?.userInvocable===!1?void 0:o}i(eC,"getActiveExtensionCommand");function S$(e){return e.usage??`/${e.name}`}i(S$,"formatExtensionCommandUsage");function T$(e){return Array.isArray(e)?e.map(t=>String(t)).join(", "):e&&typeof e=="object"?JSON.stringify(e):String(e)}i(T$,"formatExtensionDiagnosticValue");function C$(e){if(!e)return;let t=Object.entries(e).filter(([,n])=>n!==void 0).map(([n,o])=>`${n}=${T$(o)}`);return t.length>0?t.join(" | "):void 0}i(C$,"formatExtensionDiagnosticMetadata");function ps(e){let t=e.getDiagnostics;if(typeof t=="function")return t.call(e);let n=e.getDefaults,o=typeof n=="function"?n.call(e):void 0;return{loadedExtensions:[],capabilityProviders:e.listCapabilityProviders().map(r=>({id:r.id,kinds:[...r.kinds],source:{kind:"extension",id:`extension:${r.id}`,label:r.id,path:"(runtime)"}})),commands:e.listCommands().map(r=>({name:r.name,aliases:r.aliases,description:r.description,usage:r.usage,metadata:r.metadata,source:{kind:"extension",id:`extension-command:${r.name}`,label:r.name,path:"(runtime)"}})),tools:[],hooks:[],failures:[],defaults:{activeTools:o?.activeTools,modelSelection:o?.modelSelection??{},thinkingLevel:o?.thinkingLevel}}}i(ps,"getExtensionRuntimeDiagnostics");function b$(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(b$,"toExtensionInvocationRequest");async function v$(e,t,n){let o=To();if(!o)return console.log(u.yellow(`
315
- [Extension runtime is not active for /${e.name}]`)),!1;let r=await e.handler(t,{sessionId:n.sessionId,gitRoot:n.gitRoot,workingDirectory:n.runtimeInfo?.executionCwd??n.gitRoot??process.cwd(),reloadExtensions:i(()=>o.reloadExtensions(),"reloadExtensions"),getDiagnostics:i(()=>ps(o),"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(!r)return!0;r.message&&console.log(r.message);let s=b$(e,r);return s?{invocation:s}:!0}i(v$,"executeExtensionCommand");function gs(e){let t=e.trim();if(!t.startsWith("/"))return null;let n=t.slice(1).split(/\s+/),r=n[0]?.toLowerCase(),s=n.slice(1).filter(Boolean);if(!r)return null;if(r.startsWith("skill:")){let c=r.slice(6);return c?{command:"skill",args:s,skillInvocation:{name:c}}:{command:"skill",args:s}}let a=r.indexOf(":");if(a>0){let c=r.slice(a+1).trim();r=r.slice(0,a),s=c?[c,...s]:s}return{command:r,args:s}}i(gs,"parseCommand");async function hs(e,t,n,o){if(jr.size===0&&Kp(t.gitRoot),e.skillInvocation)return await I$({command:e.skillInvocation.name,args:e.args},t);let r=jr.get(e.command);if(r){if(r.userInvocable===!1)return console.log(u.yellow(`
316
- [Command /${r.name} is not user-invocable]`)),!1;try{let a=await r.handler(e.args,t,n,o);return a&&typeof a=="object"?a:!0}catch(a){return console.log(u.red(`
317
- [Command failed: ${a instanceof Error?a.message:String(a)}]`)),!1}}let s=eC(e.command);if(s)try{return await v$(s,e.args,t)}catch(a){return console.log(u.red(`
318
- [Extension command failed: ${a instanceof Error?a.message:String(a)}]`)),!1}return console.log(u.yellow(`
319
- [Unknown command: /${e.command}. Type /help for available commands]`)),!1}i(hs,"executeCommand");async function I$(e,t){let n=So(t.gitRoot),o=e.command,r=e.args.join(" ");n.size===0&&await vr(t.gitRoot);try{let s=n.get(o);if(!s)return console.log(u.red(`
320
- [Skill not found: ${o}]`)),!1;if(!s.userInvocable)return console.log(u.yellow(`
321
- [Skill "${o}" is not user-invocable]`)),!1;console.log(u.cyan(`
322
- [Invoking skill: ${o}]`)),s.argumentHint&&console.log(u.dim(`Arguments: ${r||"(none)"}`)),console.log();let a=await n.loadFull(o),c={workingDirectory:process.cwd(),projectRoot:t.gitRoot??void 0,sessionId:t.sessionId,environment:{}},l=await wx(a,r,c);return console.log(u.green(`Skill activated: ${o}`)),console.log(u.dim("The skill context has been prepared for the AI.")),console.log(),{invocation:{prompt:l.content,source:"skill",displayName:o,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:o,path:a.skillFilePath,description:a.description,arguments:r||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(([,d])=>Array.isArray(d)&&d.length>0).map(([d])=>d):void 0,expandedContent:l.content}}}}catch(s){return console.log(u.red(`
323
- [Error invoking skill: ${s instanceof Error?s.message:String(s)}]`)),!1}}i(I$,"executeSkillCommand");import{jsx as j$}from"react/jsx-runtime";import{useState as G$,useEffect as lC,useCallback as or,useMemo as uC,createContext as K$,useContext as dC}from"react";import*as td from"fs";import*as nc from"path";import{exec as k$}from"node:child_process";import*as ys from"node:path";import{promisify as R$}from"node:util";var tC=R$(k$);function E$(e){let t=e.slice(3);if(!t)return;let n=t.indexOf(" -> ");return(n===-1?t:t.slice(n+4)).replace(/^"(.*)"$/,"$1").trim()||void 0}i(E$,"pathFromPorcelainLine");async function nC(e,t=10){try{let[{stdout:n},{stdout:o}]=await Promise.all([tC("git rev-parse --show-toplevel",{cwd:e}),tC("git status --porcelain=v1 -uall",{cwd:e})]),r=n.trim(),s=[],a=new Set;for(let c of o.split(`
324
- `)){if(!c.trim())continue;let l=E$(c);if(!l)continue;let d=ys.resolve(r,l),m=ys.relative(e,d).split(ys.sep).join("/");if(!(!m||m.startsWith("..")||a.has(m))&&(a.add(m),s.push(m),s.length>=t))break}return s}catch{return[]}}i(nC,"getRecentWorkingSetFiles");function nr(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(nr,"findCommandSlashIndex");var Gr=class{static{i(this,"FileCompleter")}cwdSource;cache=new Map;cacheTimeout=5e3;recentCache=new Map;recentFilesProvider;constructor(t,n=nC){this.cwdSource=t,this.recentFilesProvider=n}canComplete(t,n){let o=t.slice(0,n),r=o.lastIndexOf("@");return!(r===-1||r>0&&!/\s/.test(o[r-1]??"")||o.slice(r+1).includes(" "))}async getCompletions(t,n){let o=t.slice(0,n),r=o.lastIndexOf("@");if(r===-1)return[];let s=o.slice(r+1),a=[],c=this.resolveCwd(),l=s.lastIndexOf("/"),d=l===-1?c:nc.join(c,s.slice(0,l)),m=l===-1?s:s.slice(l+1);try{let g=(await this.readdir(d)).filter(x=>x.toLowerCase().startsWith(m.toLowerCase()));for(let x of g){let h=nc.join(d,x),T=await this.isDirectory(h),w=l===-1?x:s.slice(0,l+1)+x;a.push({text:"@"+w+(T?"/":""),display:x+(T?"/":""),description:T?"directory":"file",type:"file"})}}catch{}if(l===-1){let p=await this.getRecentFiles(c),g=new Set(a.map(T=>T.text)),x=m.toLowerCase(),h=[];for(let T of p){if(m&&!nc.basename(T).toLowerCase().startsWith(x))continue;let w="@"+T;g.has(w)||(g.add(w),h.push({text:w,display:T,description:"recent",type:"file"}))}a.unshift(...h)}return a}async getRecentFiles(t){let n=Date.now(),o=this.recentCache.get(t);if(o&&o.expiresAt>n)return o.files;let r=await this.recentFilesProvider(t);return this.recentCache.set(t,{files:r,expiresAt:Date.now()+this.cacheTimeout}),r}resolveCwd(){return typeof this.cwdSource=="function"?this.cwdSource():this.cwdSource??process.cwd()}async readdir(t){let n=Date.now(),o=this.cache.get(t);return o&&o.expiresAt>n?o.entries:(o&&this.cache.delete(t),new Promise(r=>{td.readdir(t,(s,a)=>{s?r([]):(this.cache.set(t,{entries:a,expiresAt:Date.now()+this.cacheTimeout}),r(a))})}))}async isDirectory(t){return new Promise(n=>{td.stat(t,(o,r)=>{n(!o&&r.isDirectory())})})}},oc=class{static{i(this,"CommandCompleter")}commands;constructor(){this.commands=new Map,this.loadCommands()}loadCommands(){for(let n of ed().getAll())n.userInvocable!==!1&&this.commands.set(n.name,{description:n.description,aliases:n.aliases??[]});let t=To();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 o=t.slice(0,n),r=nr(o);return r===-1?!1:!o.slice(r).includes(" ")}async getCompletions(t,n){let o=t.slice(0,n),r=nr(o);if(r===-1)return[];this.commands.clear(),this.loadCommands();let s=o.slice(r+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 d of l.aliases)d!==c&&this.fuzzyMatch(s,d)&&a.push({text:"/"+d,display:"/"+d,description:`Alias for /${c}: ${l.description}`,type:"command"})}return a}fuzzyMatch(t,n){if(!t)return!0;let o=t.toLowerCase(),r=n.toLowerCase(),s=0;for(let a=0;a<r.length&&s<o.length;a++)r[a]===o[s]&&s++;return s===o.length}};function oC(e){let t=new Gr(e),n=new oc;return async o=>{let r=o.includes("@"),s=o.includes("/");if(!r&&!s)return[[],o];let a=[];if(s&&n.canComplete(o,o.length)){let l=await n.getCompletions(o,o.length);a.push(...l)}if(r&&t.canComplete(o,o.length)){let l=await t.getCompletions(o,o.length);a.push(...l)}return[a.map(l=>l.display),o]}}i(oC,"createCompleter");var rc=class{static{i(this,"SkillCompleter")}gitRoot;skillsCache=null;cacheTimestamp=0;CACHE_TTL=5e3;constructor(t){this.gitRoot=t}canComplete(t,n){let o=t.slice(0,n);if(!/\/skill:[^\s]*$/.test(o))return!1;let r=o.lastIndexOf("/skill:");return!(r>0&&!/\s/.test(o[r-1]??""))}async getCompletions(t,n){let r=t.slice(0,n).match(/\/skill:([^\s]*)$/);if(!r)return[];let s=(r[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 d=c.display.toLowerCase().startsWith(s),m=l.display.toLowerCase().startsWith(s);return d&&!m?-1:!d&&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=So(this.gitRoot);return n.size===0&&await vr(this.gitRoot),this.skillsCache=n.listUserInvocable(),this.cacheTimestamp=t,this.skillsCache}catch{return[]}}fuzzyIncludes(t,n){let o=0;for(let r=0;r<n.length&&o<t.length;r++)n[r]===t[o]&&o++;return o===t.length}truncateDescription(t,n=50){return t.length<=n?t:t.slice(0,n-3)+"..."}};var M$=[{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"}],nd=[{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"}],rC=nd.slice(2).concat([{name:"off",description:"Disable reasoning",type:"enum"}]);function A$(e){if(e&&e.includes("/")){let t=e.indexOf("/"),n=e.slice(0,t),o=e.slice(t+1);if(Ei(n))try{return Hi(n).filter(s=>!o||s.toLowerCase().includes(o.toLowerCase())).map(s=>({name:`${n}/${s}`,description:s,type:"enum"}))}catch{}return[]}return Mi().map(t=>({name:t,description:`Switch to ${t} provider`,type:"enum"}))}i(A$,"getModelArgs");var iC=[{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"}],Vp=[{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"}],zp=[{name:"all",description:"Delete ALL sessions",type:"enum"}],_$=[{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"}],$$=[{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"}],P$=[{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"}],sC=[{name:"default",description:"Clear the override and use the default value again",type:"enum"}];function L$(e){let[t=""]=e,n=t.toLowerCase(),o=e.length===1&&e[0]===""?0:e.length;return o<=1?_$:o>2?[]:n==="mode"?$$:n==="trace"?P$:n==="endpoint"?[...sC,{name:vx,description:"Default local repointel daemon endpoint",type:"string"}]:n==="bin"?sC:[]}i(L$,"getRepointelArgs");var O$=new Map([["mode",M$],["thinking",nd],["think",nd],["t",nd],["reasoning",rC],["reason",rC],["plan",iC],["p",iC],["status",Vp],["info",Vp],["ctx",Vp],["delete",zp],["rm",zp],["del",zp]]),D$=new Set(["model","m"]),N$=new Set(["repointel","ri"]);function Xp(e,t,n=[]){let o=e.toLowerCase();return D$.has(o)?A$(t):N$.has(o)?L$(n):O$.get(o)??[]}i(Xp,"getCommandArguments");var od=class{static{i(this,"ArgumentCompleter")}canComplete(t,n){let o=t.slice(0,n),r=nr(o);if(r===-1)return!1;let s=o.slice(r),a=s.split(/\s+/);if(a.length>=2&&a[0]!=="")return!0;let c=s.slice(1).toLowerCase();return Xp(c).length>0}async getCompletions(t,n){let o=t.slice(0,n),r=nr(o);if(r===-1)return[];let s=o.slice(r),a=s.indexOf(" "),c=(a===-1?s.slice(1):s.slice(1,a)).toLowerCase(),l=a===-1?"":s.slice(a+1),d=l?l.split(/\s+/):[""],m=d.length-1,p=(d[m]??"").toLowerCase(),g=Xp(c,p,d);if(!g||g.length===0)return[];let x=new Set(d.slice(0,-1).map(T=>T.toLowerCase()));return g.filter(T=>!x.has(T.name.toLowerCase())).filter(T=>!p||T.name.includes("/")?!0:T.name.toLowerCase().includes(p)).map(T=>({text:T.name,display:T.name,description:T.description,type:"argument"})).sort((T,w)=>{let b=T.display.toLowerCase().startsWith(p),O=w.display.toLowerCase().startsWith(p);return b&&!O?-1:!b&&O?1:T.display.length-w.display.length})}};function B$(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(),o=t.toLowerCase(),r=0,s=-1,a=[];for(let l=0;l<e.length;l++){let d=n[l];if(d===void 0)continue;let m=o.indexOf(d,s+1);if(m===-1)return{matched:!1,score:0,highlights:[]};m===s+1?r+=10:m===0?r+=5:r-=1,t[m]===e[l]&&(r+=2),a.push(m),s=m}let c=H$(t,a);return r+=c,{matched:!0,score:r,highlights:a}}i(B$,"fuzzyMatch");function H$(e,t){let n=0;for(let o of t)if(o===0)n+=3;else if(o>0){let r=e[o-1];(r===" "||r==="-"||r==="_")&&(n+=2)}return n}i(H$,"calculateWordBoundaryBonus");function F$(e,t){return e?t.toLowerCase().startsWith(e.toLowerCase()):!0}i(F$,"prefixMatch");function W$(e,t){if(F$(e,t)){let r=e?Array.from({length:e.length},(s,a)=>a):[];return{matched:!0,score:100+e.length*10,highlights:r,isPrefix:!0}}return{...B$(e,t),isPrefix:!1}}i(W$,"combinedMatch");function aC(e,t,n=0){return e?t.map(o=>{let r=W$(e,o.text);return{...o,_fuzzyScore:r.matched?r.score:-1,_fuzzyHighlights:r.highlights}}).filter(o=>(o._fuzzyScore??-1)>=n).sort((o,r)=>{let s=(r._fuzzyScore??0)-(o._fuzzyScore??0);return s!==0?s:o.text.length-r.text.length}):t}i(aC,"sortCandidatesCombined");var U$={debounceDelay:100,minTriggerChars:1,maxCompletions:10,minScore:0},Yp=class{static{i(this,"AutocompleteProvider")}completers;options;state;listeners=new Set;debounceTimer=null;lastInput="";lastCursorPos=0;constructor(t={}){this.options={...U$,...t},this.completers=[new rc(this.options.gitRoot),new od,new oc,new Gr(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,o=t.cwd!==void 0&&t.cwd!==this.options.cwd;if(this.options={...this.options,...t},n&&this.completers.find(s=>s instanceof rc)?.setGitRoot(this.options.gitRoot),o){let r=this.completers.findIndex(s=>s instanceof Gr);r!==-1&&(this.completers[r]=new Gr(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 o=t.slice(0,n),s=nr(o)!==-1,a=o.lastIndexOf("@"),c=a===0||a>0&&/\s/.test(o[a-1]??"");return s||c}fetchCompletions(t,n){this.updateState({loading:!0}),this.fetchCompletionsInternal(t,n).then(o=>{this.lastInput!==t||this.lastCursorPos!==n||(o.length>0?this.updateState({visible:!0,completions:o.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 o=this.completers.filter(l=>l.canComplete(t,n));if(o.length===0)return[];let r=[];for(let l of o)try{let d=await l.getCompletions(t,n);r.push(...d)}catch(d){console.error("[Autocomplete] Completer error:",d)}let s=this.extractPattern(t,n),a=r.map((l,d)=>({_idx:d,text:l.type==="command"&&l.display.startsWith("/")?l.display.slice(1):l.display}));return aC(s,a,this.options.minScore).map(l=>r[l._idx]).filter(l=>l!==void 0)}extractPattern(t,n){let o=t.slice(0,n),r=nr(o);if(r!==-1){let c=o.slice(r),l=c.match(/^\/skill:(\S*)$/);if(l)return l[1]??"";let d=c.match(/^\/(\S*)$/);if(d)return d[1]??"";let m=c.split(/\s+/);return(m[m.length-1]??"").toLowerCase()}let s=o.lastIndexOf("@");if(s!==-1){let c=o.slice(s+1),l=c.lastIndexOf("/");return l===-1?c:c.slice(l+1)}let a=o.match(/(\S+)$/);return a?a[1]??"":""}updateState(t){this.state={...this.state,...t};for(let n of this.listeners)try{n(this.state)}catch(o){console.error("[Autocomplete] Listener error:",o)}}};function cC(e){return new Yp(e)}i(cC,"createAutocompleteProvider");var qp=K$(null);function Qp({children:e,cwd:t,gitRoot:n}){let o=rd({cwd:t,gitRoot:n,enabled:!0});return j$(qp.Provider,{value:o,children:e})}i(Qp,"AutocompleteContextProvider");function Kr(){return dC(qp)}i(Kr,"useAutocompleteContext");function V$(e,t){let n={command:"command",file:"file",argument:"argument",skill:"skill"},o={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:o[e.type]??">"}}i(V$,"completionToSuggestion");function rd(e={}){let t=dC(qp);return t&&!e.cwd&&!e.gitRoot?t:z$(e)}i(rd,"useAutocomplete");function z$(e){let{cwd:t,gitRoot:n,enabled:o=!0}=e,r=uC(()=>cC({cwd:t,gitRoot:n,debounceDelay:100,minTriggerChars:1,maxCompletions:8}),[]);lC(()=>{r.updateOptions({cwd:t,gitRoot:n})},[r,t,n]);let[s,a]=G$({visible:!1,selectedIndex:0,completions:[],loading:!1});lC(()=>r.subscribe(b=>{a(b)}),[r]);let c=uC(()=>s.completions.map((w,b)=>V$(w,b)),[s.completions]),l=or((w,b)=>{if(!o){r.cancel();return}r.handleInput(w,b)},[r,o]),d=or(()=>s.visible?r.acceptCompletionWithType():null,[r,s.visible]),m=or(()=>s.visible?r.acceptCompletionWithType():null,[r,s.visible]),p=or(()=>{s.visible&&r.selectPrevious()},[r,s.visible]),g=or(()=>{s.visible&&r.selectNext()},[r,s.visible]),x=or(()=>{s.visible&&r.cancel()},[r,s.visible]),h=or(()=>{r.cancel()},[r]),T=or(()=>r,[r]);return{state:s,suggestions:c,handleInput:l,handleTab:d,handleEnter:m,handleUp:p,handleDown:g,handleEscape:x,cancel:h,getProvider:T}}i(z$,"useAutocompleteImpl");import{useCallback as ic,useRef as fC}from"react";var An=[];function Jp(e={}){let{maxSize:t=1e3,onSave:n}=e,o=fC(-1),r=fC(""),s=ic((m,p)=>{if(!m.trim())return;if(An[An.length-1]?.text!==m){let x={text:m,timestamp:Date.now(),...p?.pastedContents&&p.pastedContents.length>0?{pastedContents:[...p.pastedContents]}:{}};An.push(x),An.length>t&&An.splice(0,An.length-t),n?.(x)}o.current=-1,r.current=""},[t,n]),a=ic(()=>An.length===0?null:o.current===-1?(o.current=An.length-1,An[o.current]??null):o.current>0?(o.current--,An[o.current]??null):null,[]),c=ic(()=>o.current===-1?null:o.current<An.length-1?(o.current++,An[o.current]??null):(o.current=-1,{text:r.current,timestamp:Date.now()}),[]),l=ic(()=>{o.current=-1,r.current=""},[]),d=ic(m=>{o.current===-1&&(r.current=m)},[]);return{add:s,navigateUp:a,navigateDown:c,reset:l,saveTempInput:d}}i(Jp,"useInputHistory");function tn(e,t,n){return qt(e).slice(t,n).join("")}i(tn,"sliceByCodePoints");var sc=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 Jn(this.currentLine)}get visualCursor(){let t=this._lines[this._cursor.row]??"",n=tn(t,0,this._cursor.col);return{row:this._cursor.row,col:Jn(n)}}getCharWidthAtCursor(){let t=this._lines[this._cursor.row]??"",o=qt(t)[this._cursor.col];return o?Qn(o)?2:1:0}visualColToLogicalCol(t){let n=this._lines[this._cursor.row]??"",o=qt(n),r=0;for(let s=0;s<o.length;s++){let a=Qn(o[s])?2:1;if(r+a>t)return s;r+=a}return o.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,o){this._saveHistory();let r=Math.max(0,Math.min(t,this._text.length)),s=Math.max(r,Math.min(n,this._text.length)),a=this._text.slice(0,r)+o+this._text.slice(s);this._setTextInternal(a),this.moveToAbsoluteOffset(r+o.length)}insert(t,n){if(this._saveHistory(),n?.paste){this._insertText(t);return}let o=t.split(`
325
- `);for(let r=0;r<o.length;r++)r>0&&this._insertNewline(),this._insertText(o[r])}_insertText(t){let n=this._lines[this._cursor.row],o=tn(n,0,this._cursor.col),r=tn(n,this._cursor.col);this._lines[this._cursor.row]=o+t+r,this._cursor.col+=ln(t),this._rememberedCol=this._cursor.col,this._updateText()}newline(){this._saveHistory(),this._insertNewline()}_insertNewline(){let t=this._lines[this._cursor.row],n=tn(t,0,this._cursor.col),o=tn(t,this._cursor.col);this._lines[this._cursor.row]=n,this._lines.splice(this._cursor.row+1,0,o),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,o=tn(t,0,n),r=tn(t,this._cursor.col);this._lines[this._cursor.row]=o+r,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=ln(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<ln(t)){this._saveHistory();let n=tn(t,0,this._cursor.col),o=tn(t,this._cursor.col+1);this._lines[this._cursor.row]=n+o,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=ln(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col)}_moveRight(){let t=this._lines[this._cursor.row];this._cursor.col<ln(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=ln(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col}_clampColumn(){let t=this._lines[this._cursor.row],n=ln(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,ln(this._lines[this._cursor.row]))),this._rememberedCol=this._cursor.col}killLineRight(){let t=this._lines[this._cursor.row];this._cursor.col<ln(t)&&(this._saveHistory(),this._lines[this._cursor.row]=tn(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]=tn(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,o=qt(t);for(;n>0&&/\s/.test(o[n]??"");)n--;for(;n>0&&!/\s/.test(o[n-1]??"");)n--;let r=tn(t,0,n),s=tn(t,this._cursor.col);this._lines[this._cursor.row]=r+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(`
326
- `),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(`
327
- `),this._lines.length===0&&(this._lines=[""]),this._clampCursor(),!0):!1}_updateText(){this._text=this._lines.join(`
328
- `)}_setTextInternal(t){this._text=t,this._lines=t.split(`
329
- `),this._lines.length===0&&(this._lines=[""])}moveToAbsoluteOffset(t){let o=Math.max(0,Math.min(t,this._text.length));for(let r=0;r<this._lines.length;r++){let s=this._lines[r]??"",a=s.length;if(o<=a){this._cursor={row:r,col:ln(s.slice(0,o))},this._rememberedCol=this._cursor.col;return}o-=a,r<this._lines.length-1&&(o-=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 o=0;o<this._cursor.row;o++)t+=(this._lines[o]?.length??0)+1;let n=this._lines[this._cursor.row]??"";return t+=tn(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=ln(this._lines[this._cursor.row]??""),this._rememberedCol=this._cursor.col}};import{useState as X$,useCallback as Rt,useRef as Zp,useEffect as Y$}from"react";function eg(e={}){let{initialValue:t="",onTextChange:n}=e,o=Zp(null),r=Zp(null),s=Zp(null),[a,c]=X$({text:t,cursor:{row:0,col:0},lines:[""],isPasting:!1,editingMode:t?"typing":"idle"});o.current===null&&(o.current=new sc,t&&o.current.setText(t)),r.current===null&&(r.current=WT());let l=o.current,d=r.current,m=Rt(A=>{c(k=>({text:l.text,cursor:l.cursor,lines:l.lines,isPasting:A?.isPasting??k.isPasting,editingMode:A?.editingMode??k.editingMode})),n?.(l.text)},[l,n]),p=Rt(()=>{s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{c(A=>({...A,isPasting:!1,editingMode:A.text?"typing":"idle"})),s.current=null},120)},[]),g=Rt(A=>{l.setText(A),m({isPasting:!1,editingMode:A?"typing":"idle"})},[l,m]),x=Rt((A,k,_)=>{l.replaceRange(A,k,_),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),h=Rt((A,k)=>{let _=k?.paste??!1;if(_&&HT(A)){let be=A.replace(/\r\n/g,`
330
- `).replace(/\r/g,`
331
- `),{placeholder:Pe}=d.registerText(be);l.insert(Pe,{paste:!0}),m({isPasting:!0,editingMode:"pasting"}),p();return}l.insert(A,{paste:!1}),m({isPasting:_,editingMode:_?"pasting":"typing"}),_&&p()},[l,d,p,m]),T=Rt(()=>{l.newline(),m({isPasting:!1,editingMode:"typing"})},[l,m]),w=Rt(()=>{let A=l.getAbsoluteOffset(),k=Xu(l.text,A);k?l.replaceRange(k.start,k.end,""):l.backspace(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),b=Rt(()=>{let A=l.getAbsoluteOffset(),k=Yu(l.text,A);k?l.replaceRange(k.start,k.end,""):l.delete(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),O=Rt(A=>{l.move(A),m()},[l,m]),P=Rt(()=>{l.clear(),m({isPasting:!1,editingMode:"idle"})},[l,m]),N=Rt(()=>{let A=l.undo();return A&&m(),A},[l,m]),K=Rt(()=>{let A=l.redo();return A&&m(),A},[l,m]),W=Rt(()=>{l.moveToEnd(),m()},[l,m]),v=Rt(A=>{l.moveToAbsoluteOffset(A),m()},[l,m]),Z=Rt(()=>{l.killLineRight(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),Se=Rt(()=>{l.killLineLeft(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),z=Rt(()=>{l.deleteWordLeft(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),re=Rt(()=>{s.current&&(clearTimeout(s.current),s.current=null),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]);return Y$(()=>()=>{s.current&&clearTimeout(s.current),o.current=null},[]),{buffer:l,text:a.text,cursor:a.cursor,lines:a.lines,isPasting:a.isPasting,editingMode:a.editingMode,pasteStore:d,resetTransientState:re,setText:g,replaceRange:x,insert:h,newline:T,backspace:w,delete:b,move:O,moveToEnd:W,moveToOffset:v,killLineRight:Z,killLineLeft:Se,deleteWordLeft:z,clear:P,undo:N,redo:K}}i(eg,"useTextBuffer");import{jsx as Vr,jsxs as sd}from"react/jsx-runtime";import{useState as hC}from"react";import{useCallback as xs,useEffect as tg,useRef as id}from"react";function mC(e,t,n){let o=Math.max(0,Math.min(t,e.length)),r=e.slice(0,o);if(n.type==="command"||n.type==="skill"){let a=r.lastIndexOf("/");return{start:a===-1?0:a,end:o,replacement:n.text}}if(n.type==="argument"){let a=r.match(/\S+$/);return{start:a?o-a[0].length:0,end:o,replacement:n.text}}let s=r.lastIndexOf("@");return{start:s===-1?0:s,end:o,replacement:n.text}}i(mC,"buildAutocompleteReplacement");var Q$=500;function pC(e,t,n){return n==="up"?e===0:e>=Math.max(0,t-1)}i(pC,"shouldUseHistoryNavigation");function J$(e){return e.isAutocompleteVisible?"cancel-autocomplete":e.hasText?e.timeSinceLastEscapeMs<Q$?"clear-input":"arm-clear":"pass-through"}i(J$,"resolvePromptEscapeBehavior");function Z$(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(Z$,"resolvePromptEnterBehavior");function eP(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(eP,"resolvePromptEditingCommand");function gC({onSubmit:e,onExit:t,focus:n=!0,initialValue:o="",cwd:r,gitRoot:s,autocompleteEnabled:a=!0,onInputChange:c,onHistoryRecall:l,onPopPendingInputs:d}){let m=id(0),{add:p,navigateUp:g,navigateDown:x,reset:h,saveTempInput:T}=Jp(),{buffer:w,text:b,cursor:O,lines:P,isPasting:N,editingMode:K,pasteStore:W,resetTransientState:v,setText:Z,replaceRange:Se,clear:z,move:re,moveToOffset:A,insert:k,backspace:_,newline:be,delete:Pe,undo:ye,redo:le,killLineRight:Ae,killLineLeft:ae,deleteWordLeft:q}=eg({initialValue:o,onTextChange:c}),Y=id(0);tg(()=>{if(N)return;if(b.length<=1e4){Y.current=0;return}if(b.length===Y.current)return;let ie=W.peekNextId(),{truncatedText:te,placeholderContent:Ge}=FT(b,ie);Ge&&(W.registerTruncatedText(Ge),Y.current=te.length,Z(te))},[b,N,W,Z]);let Re=Kr(),ce=rd({cwd:r,gitRoot:s,enabled:a}),{state:lt,suggestions:ze,handleInput:Oe,handleTab:ue,handleEnter:Mt,handleUp:bt,handleDown:Q,handleEscape:M}=Re??ce;tg(()=>{n||(m.current=0,v(),lt.visible&&M())},[lt.visible,n,M,v]);let $=id(b);tg(()=>{a&&b!==$.current&&($.current=b,Oe(b,w.getAbsoluteOffset()))},[a,w,Oe,b]);let U=xs(ie=>{if(!ie?.text)return;let te=mC(b,w.getAbsoluteOffset(),ie),Ge=b.slice(0,te.start)+te.replacement+b.slice(te.end);return Se(te.start,te.end,te.replacement),Ge},[w,Se,b]),J=xs(ie=>{let te=ie??b;if(!te.trim())return;let Ge=W.expand(te),D=new Set,Je=/\[(Pasted text|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;for(let oi of te.matchAll(Je)){let Lo=Number.parseInt(oi[2]??"0",10);Number.isFinite(Lo)&&Lo>0&&D.add(Lo)}let rn=[];for(let oi of D){let Lo=W.get(oi);Lo&&rn.push(Lo)}p(te,{pastedContents:rn}),e({displayText:te,fullText:Ge,pastedContents:rn}),z()},[p,z,e,W,b]),Ee=xs(ie=>{if(ie){if(ie.pastedContents&&ie.pastedContents.length>0){for(let te of ie.pastedContents)W.adopt(te);l?.({text:ie.text,pastedContents:[...ie.pastedContents]})}Z(ie.text)}},[l,W,Z]),ot=xs(async ie=>{try{let te=await Qx(ie);if(te.kind==="images"){let Ge=te.blocks.map(D=>`@${D.path}`).join(" ");k(`${Ge} `,{paste:!1})}else te.kind==="error"&&console.warn(`[KodaX paste] ${te.message}`)}catch(te){console.warn(`[KodaX paste] image handling failed: ${te instanceof Error?te.message:String(te)}`)}},[k]),ve=id(!1),De=xs(async()=>{if(!ve.current){ve.current=!0;try{let ie=await Jx();if(ie.kind==="images"){let te=ie.blocks.map(Ge=>`@${Ge.path}`).join(" ");k(`${te} `,{paste:!1})}else ie.kind==="error"&&console.warn(`[KodaX clipboard] ${ie.message}`)}catch(ie){console.warn(`[KodaX clipboard] image handling failed: ${ie instanceof Error?ie.message:String(ie)}`)}finally{ve.current=!1}}},[k]),At=xs(ie=>{if(!n)return!1;if(ie.name==="v"&&(ie.ctrl||ie.meta))return De(),!0;if(ie.name==="paste"&&ie.isPasted&&Zx(ie.sequence).length>0)return ot(ie.sequence),!0;let te=lt.visible&&ze.length>0;if(ie.name==="tab"&&te){let D=ue();return D&&U(D),!0}if(ie.ctrl&&ie.name==="c")return b.length>0?(z(),h()):t?.(),!0;if(ie.name==="escape")switch(J$({isAutocompleteVisible:te,hasText:b.length>0,timeSinceLastEscapeMs:Date.now()-m.current})){case"cancel-autocomplete":return M(),m.current=0,!0;case"clear-input":return m.current=0,z(),h(),!0;case"arm-clear":return m.current=Date.now(),!0;default:return!1}if(ie.name==="up"){if(te)return bt(),!0;if(ie.ctrl)return re("up"),!0;if(b.length===0&&d){let D=d();if(typeof D=="string"&&D.length>0)return Z(D),!0}if(pC(O.row,P.length,"up")){T(b);let D=g();Ee(D)}else re("up");return!0}if(ie.name==="down"){if(te)return Q(),!0;if(ie.ctrl)return re("down"),!0;if(pC(O.row,P.length,"down")){let D=x();Ee(D)}else re("down");return!0}if(ie.name==="left"){let D=w.getAbsoluteOffset(),Je=Xu(w.text,D);return Je?A(Je.start):re("left"),!0}if(ie.name==="right"){let D=w.getAbsoluteOffset(),Je=Yu(w.text,D);return Je?A(Je.end):re("right"),!0}if(ie.name==="home")return re("home"),!0;if(ie.name==="end")return re("end"),!0;let Ge=eP(ie);if(Ge)switch(Ge){case"move-home":return re("home"),!0;case"move-end":return re("end"),!0;case"undo":return ye(),!0;case"redo":return le(),!0;case"kill-line-right":return Ae(),!0;case"kill-line-left":return ae(),!0;case"delete-word-left":return q(),!0;default:break}if(ie.name==="backspace")return _(),!0;if(ie.name==="delete")return Pe(),!0;if(ie.name==="return"||ie.name==="newline")switch(Z$({keyName:ie.name,ctrl:ie.ctrl,shift:ie.shift,isAutocompleteVisible:te,isLineContinuation:!!P[O.row]?.endsWith("\\"),isPasting:N})){case"accept-completion-and-submit":{let Je=Mt();if(Je){let rn=U(Je);J(rn)}else J();return!0}case"newline":return be(),!0;case"line-continuation":return _(),be(),!0;default:return J(),!0}return ie.insertable&&!ie.ctrl&&!ie.meta?(k(ie.sequence,ie.isPasted?{paste:!0}:void 0),!0):!1},[U,p,lt.visible,_,w,z,O.row,Pe,n,Q,M,bt,Mt,Ee,ue,ot,De,P,ae,Ae,re,A,x,g,be,t,d,le,h,T,Z,J,ze.length,b.length,q,N,ye]);return{text:b,cursor:O,lines:P,isPasting:N,terminalFocused:n,editingMode:K,handleKey:At}}i(gC,"usePromptInputController");var ws=i(({onSubmit:e,onHistoryRecall:t,onPopPendingInputs:n,placeholder:o="Type a message...",prompt:r=">",focus:s=!0,initialValue:a="",cwd:c,gitRoot:l,autocompleteEnabled:d=!0,onInputChange:m})=>{let{exit:p}=qo(),{cursor:g,lines:x,handleKey:h,isPasting:T,terminalFocused:w,editingMode:b}=gC({onSubmit:e,onExit:p,focus:s,initialValue:a,cwd:c,gitRoot:l,autocompleteEnabled:d,onInputChange:m,onHistoryRecall:t,onPopPendingInputs:n});return fn(Ut.High,O=>h(O),[h]),Vr(I,{flexDirection:"column",children:Vr(dp,{lines:x,cursorRow:g.row,cursorCol:g.col,prompt:r,placeholder:o,focus:s,terminalFocused:w,isPasting:T,editingMode:b,theme:"dark"})})},"InputPrompt"),tP=i(({onSubmit:e,placeholder:t,prompt:n=">"})=>{let[o,r]=hC(""),[s,a]=hC(0);fn(Ut.High,p=>{if(p.name==="return")return o.trim()&&(e(o),r(""),a(0)),!0;if(p.name==="backspace"&&s>0){let g=[...o].slice(0,s-1).join(""),x=[...o].slice(s).join("");return r(g+x),a(s-1),!0}if(p.name==="left"&&s>0)return a(s-1),!0;if(p.name==="right"&&s<[...o].length)return a(s+1),!0;if(p.insertable&&!p.ctrl&&!p.meta){let g=[...o].slice(0,s).join(""),x=[...o].slice(s).join("");return r(g+p.sequence+x),a(s+1),!0}return!1},[o,s,e]);let c=ee("dark");if(!o)return sd(I,{children:[sd(C,{color:c.colors.primary,children:[n," "]}),t&&Vr(C,{dimColor:!0,children:t}),Vr(C,{backgroundColor:c.colors.primary,color:"#000000",children:" "})]});let l=[...o].slice(0,s).join(""),d=[...o][s]??" ",m=[...o].slice(s+1).join("");return sd(I,{children:[sd(C,{color:c.colors.primary,children:[n," "]}),Vr(C,{children:l}),Vr(C,{backgroundColor:c.colors.primary,color:"#000000",children:d}),Vr(C,{children:m})]})},"SimpleInputPrompt");import{jsx as at,jsxs as Pt}from"react/jsx-runtime";import{useState as xC,useEffect as wC}from"react";var yC=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],nP=80,ad=new Set,ac=null;function oP(){let e=Array.from(ad);for(let t of e)t()}i(oP,"dispatchSharedSpinnerTick");function rP(e){return ad.add(e),ac===null&&(ac=setInterval(oP,nP)),()=>{ad.delete(e),ad.size===0&&ac!==null&&(clearInterval(ac),ac=null)}}i(rP,"subscribeToSharedSpinnerClock");function SC(e=!0){let[t,n]=xC(0);return wC(()=>{if(e)return rP(()=>{n(o=>o+1)})},[e]),t}i(SC,"useSharedSpinnerTick");var _n=i(({color:e,theme:t})=>{let n=t??ee("dark"),r=SC(!0)%yC.length,s=e??n.colors.accent;return at(C,{color:s,children:yC[r]})},"Spinner");function iP(e){return e<=0?0:Math.round(e/4)}i(iP,"estimateOutputTokens");function sP(e){let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/3600),o=Math.floor(t%3600/60),r=t%60;return n===0?`${o}m${r}s`:`${n}h${o}m${r}s`}i(sP,"formatElapsedDuration");var TC=i(({roundStartedAt:e,charCount:t,theme:n})=>{let o=n??ee("dark");if(SC(e!==null),e===null)return null;let r=aP(Date.now()-e,t);return at(C,{color:o.colors.dim,children:r})},"SpinnerStatsTail");function aP(e,t){let n=sP(e),o=iP(t);return o>0?` (${n} \xB7 \u2193 ${o} tokens)`:` (${n})`}i(aP,"buildSpinnerStatsText");var CC=i(({label:e,dotCount:t=3,theme:n})=>{let o=n??ee("dark"),[r,s]=xC(1);wC(()=>{let c=setInterval(()=>{s(l=>l%t+1)},300);return()=>clearInterval(c)},[t]);let a=".".repeat(r);return Pt(I,{children:[e&&at(C,{color:o.colors.text,children:e}),at(C,{color:o.colors.accent,children:a})]})},"DotsIndicator"),bC=i(({progress:e,label:t,width:n=20,theme:o})=>{let r=o??ee("dark"),s=Math.max(0,Math.min(100,e)),a=Math.round(s/100*n),c=n-a,l="\u2588".repeat(a),d="\u2591".repeat(c);return Pt(I,{flexDirection:"column",children:[t&&at(I,{marginBottom:1,children:at(C,{color:r.colors.text,children:t})}),Pt(I,{children:[at(C,{color:r.colors.primary,children:l}),at(C,{dimColor:!0,children:d}),Pt(C,{children:[" ",s,"%"]})]})]})},"ProgressIndicator"),cP=i(({message:e,showSpinner:t=!1,theme:n})=>{let o=n??ee("dark"),r=e??"Thinking";return Pt(I,{children:[t&&at(I,{marginRight:1,children:at(_n,{theme:o})}),Pt(C,{color:o.colors.accent,children:[r,"\u2026"]})]})},"ThinkingIndicator"),lP=i(({message:e,subMessage:t,progress:n,type:o="spinner",compact:r=!1,theme:s})=>{let a=s??ee("dark"),c=e??"Loading";return r?Pt(I,{children:[at(_n,{theme:a}),Pt(C,{color:a.colors.text,children:[" ",c,"\u2026"]})]}):o==="bar"&&n!==void 0?Pt(I,{flexDirection:"column",children:[at(bC,{progress:n,label:c,theme:a}),t&&at(I,{marginTop:1,children:at(C,{dimColor:!0,children:t})})]}):o==="dots"?Pt(I,{flexDirection:"column",children:[at(CC,{label:c,theme:a}),t&&at(I,{marginTop:1,children:at(C,{dimColor:!0,children:t})})]}):o==="simple"?Pt(I,{flexDirection:"column",children:[Pt(C,{color:a.colors.accent,children:[c,"\u2026"]}),t&&at(I,{marginTop:1,children:at(C,{dimColor:!0,children:t})}),n!==void 0&&at(I,{marginTop:1,children:Pt(C,{dimColor:!0,children:[n,"%"]})})]}):Pt(I,{flexDirection:"column",children:[Pt(I,{children:[at(_n,{theme:a}),Pt(C,{color:a.colors.text,children:[" ",c,"\u2026"]}),n!==void 0&&Pt(C,{dimColor:!0,children:[" (",n,"%)"]})]}),t&&at(I,{marginTop:1,children:at(C,{dimColor:!0,children:t})})]})},"LoadingIndicator");import{jsx as pe,jsxs as Fe,Fragment as pg}from"react/jsx-runtime";import{useEffect as qC,useMemo as so,memo as pn}from"react";import*as lc from"node:path";function cc(e){if(mx(e)){let t=px(e);return t?`[memory:${t}]`:"[memory]"}if(uP(e))return"[memory]"}i(cc,"memoryBadgeFor");function uP(e){let t=lc.resolve(e),n=Tn("projects");if(!t.startsWith(n+lc.sep)&&t!==n)return!1;let r=t.slice(n.length+1).split(lc.sep);return r.length>=2&&r[1]==="memory"}i(uP,"isInsideAnyMemoryDir");function Xe(e,t=120){return e.length>t?`${e.slice(0,t-3)}...`:e}i(Xe,"truncateValue");function vC(e){if(e)return e.split(/\r?\n/).map(t=>t.trim()).find(Boolean)}i(vC,"extractFirstMeaningfulLine");function RC(e){let t=e.match(/^\[([^\]]+)\]\s+(.*)$/);if(!t)return{toolLabel:e};let n=t[1]?.trim(),o=t[2]?.trim()??e,r=new RegExp(`^${n?.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}:`,"i"),s=o.replace(r,"").trim();return{rolePrefix:n?`[${n}]`:void 0,toolLabel:s||o}}i(RC,"splitDisplayToolName");function cd(e){let{rolePrefix:t,toolLabel:n}=RC(e);return t?`${t} ${n}`:n}i(cd,"normalizeDisplayToolName");function og(e){return RC(e).toolLabel}i(og,"stripRolePrefix");function ld(e){if(!(!e||Array.isArray(e)||typeof e!="object"))return e}i(ld,"asRecord");function EC(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i(EC,"readString");function Tt(e,...t){for(let n of t){let o=EC(e?.[n]);if(o)return o}}i(Tt,"readFirstString");function ro(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(ro,"readNumber");function MC(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(MC,"readStringArray");function dP(e){if(typeof e=="string")return e.trim()||void 0;let t=ld(e);if(t)return EC(t.preview)??void 0}i(dP,"extractPreview");function IC(e){if(e)try{return ld(JSON.parse(e))}catch{return}}i(IC,"parsePreviewRecord");function $e(e,t){return e&&e.match(new RegExp(`"${t}"\\s*:\\s*"([^"]+)`))?.[1]?.trim()||void 0}i($e,"extractFieldFromPreview");function io(e,t){if(!e)return;let n=e.match(new RegExp(`"${t}"\\s*:\\s*(\\d+)`));return n?.[1]?Number(n[1]):void 0}i(io,"extractNumberFromPreview");function AC(e){if(!e)return;let t=e.match(/"paths"\s*:\s*\[([^\]]*)/);if(!t?.[1])return;let n=Array.from(t[1].matchAll(/"([^"]+)"/g)).map(o=>o[1]?.trim()??"").filter(Boolean);return n.length>0?n:void 0}i(AC,"extractPathsFromPreview");function fP(e){let t=dP(e);if(typeof e=="string")return{record:IC(t),preview:t};let n=ld(e),o=IC(t);return n?o?{record:{...n,...o},preview:t}:{record:n,preview:t}:{record:o,preview:t}}i(fP,"resolveInputRecord");function Ss(e,t,n,o=!1){let r=Tt(t,"path","target_path","targetPath")??$e(n,"path")??$e(n,"target_path")??$e(n,"targetPath"),s=MC(t?.paths)??AC(n);if(o&&s?.length){if(s.length===1){let a=cc(s[0]);a&&e.push(a),e.push(Xe(s[0]))}else e.push(`${s.length} files`);return}if(r){let a=cc(r);a&&e.push(a),e.push(Xe(r));return}if(s?.length)if(s.length===1){let a=cc(s[0]);a&&e.push(a),e.push(Xe(s[0]))}else e.push(`${s.length} files`)}i(Ss,"pushPathSummary");function Ts(e,t,n){n!==void 0&&e.push(`${t}=${n}`)}i(Ts,"pushNumericSummary");function ng(e,t,n){let o=Tt(t,"baseRef","base_ref")??$e(n,"baseRef")??$e(n,"base_ref"),r=Tt(t,"targetRef","target_ref")??$e(n,"targetRef")??$e(n,"target_ref");o&&r&&e.push(Xe(`${o}...${r}`,88))}i(ng,"pushRangeSummary");function mP(e,t){let{record:n,preview:o}=fP(t),r=og(e).toLowerCase(),s=[];if(r.includes("changed_diff_bundle")){let a=MC(n?.paths)??AC(o);a?.length?(s.push(a.length===1?Xe(a[0]):`${a.length} files`),a.length>1&&s.push(Xe(a[0]))):Ss(s,n,o,!0);let c=ro(n?.limit_per_path)??ro(n?.limitPerPath)??io(o,"limit_per_path")??io(o,"limitPerPath");return c!==void 0&&s.push(`limit=${c}`),ng(s,n,o),s}if(r.includes("changed_diff"))return Ss(s,n,o),Ts(s,"offset",ro(n?.offset)??io(o,"offset")),Ts(s,"limit",ro(n?.limit)??io(o,"limit")),ng(s,n,o),s;if(r==="read"||r.includes("read_"))return Ss(s,n,o),Ts(s,"offset",ro(n?.offset)??io(o,"offset")),Ts(s,"limit",ro(n?.limit)??io(o,"limit")),s;if(r.includes("changed_scope"))return Ss(s,n,o,!0),ng(s,n,o),s;if(r.includes("repo_overview"))return Ss(s,n,o),s;if(r.includes("bash")||r.includes("shell_command")){let a=Tt(n,"command")??$e(o,"command");return a&&s.push(`cmd=${Xe(a,140)}`),s}if(r==="glob"||r.includes("glob_")){let a=Tt(n,"pattern")??$e(o,"pattern"),c=Tt(n,"path","root","directory","cwd")??$e(o,"path")??$e(o,"root")??$e(o,"directory")??$e(o,"cwd");if(a&&s.push(`pattern=${Xe(a,96)}`),c){let l=cc(c);l&&s.push(l),s.push(Xe(c))}return s}if(r==="grep"||r.includes("grep_")){let a=Tt(n,"pattern","query")??$e(o,"pattern")??$e(o,"query"),c=Tt(n,"path","root","directory","cwd")??$e(o,"path")??$e(o,"root")??$e(o,"directory")??$e(o,"cwd");if(a&&s.push(`pattern=${Xe(a,96)}`),c){let l=cc(c);l&&s.push(l),s.push(Xe(c))}return s}if(r==="web_fetch"){let a=Tt(n,"url")??$e(o,"url"),c=Tt(n,"provider_id","providerId")??$e(o,"provider_id")??$e(o,"providerId"),l=Tt(n,"capability_id","capabilityId")??$e(o,"capability_id")??$e(o,"capabilityId");return a&&s.push(Xe(a,120)),c&&s.push(`provider=${Xe(c,48)}`),l&&s.push(`cap=${Xe(l,48)}`),s}if(r==="mcp_describe"||r==="mcp_read_resource"){let a=Tt(n,"id")??$e(o,"id");return a&&s.push(Xe(a,120)),s}if(r==="mcp_call"){let a=Tt(n,"id")??$e(o,"id"),c=ld(n?.args),l=c?Object.keys(c).length:void 0;return a&&s.push(Xe(a,120)),l!==void 0&&s.push(`args=${l}`),s}if(r==="mcp_search"){let a=Tt(n,"query")??$e(o,"query"),c=Tt(n,"server")??$e(o,"server"),l=Tt(n,"kind")??$e(o,"kind"),d=ro(n?.limit)??io(o,"limit");return a&&s.push(`query=${Xe(a,96)}`),c&&s.push(`server=${Xe(c,48)}`),l&&s.push(`kind=${l}`),d!==void 0&&s.push(`limit=${d}`),s}if(r==="web_search"||r==="code_search"||r==="semantic_lookup"){let a=Tt(n,"query","pattern")??$e(o,"query")??$e(o,"pattern"),c=Tt(n,"path","target_path","targetPath")??$e(o,"path")??$e(o,"target_path")??$e(o,"targetPath"),l=Tt(n,"provider_id","providerId")??$e(o,"provider_id")??$e(o,"providerId"),d=ro(n?.limit)??io(o,"limit");return a&&s.push(`query=${Xe(a,96)}`),c&&s.push(Xe(c,72)),l&&s.push(`provider=${Xe(l,48)}`),d!==void 0&&s.push(`limit=${d}`),s}return Ss(s,n,o,!0),Ts(s,"offset",ro(n?.offset)??io(o,"offset")),Ts(s,"limit",ro(n?.limit)??io(o,"limit")),s}i(mP,"summarizeToolDetails");function _C(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(_C,"extractChangedDiffRange");function pP(e){return e.split(/\r?\n/).map(t=>t.trim()).find(t=>t.startsWith("+")||t.startsWith("-")||t.startsWith("@@"))}i(pP,"extractDiffPreviewLine");function gP(e){let t=[],n=_C(e);if(n){let[r,s]=n.split("/");t.push(s?`Diff range: ${r} of ${s}`:`Diff range: ${n}`)}let o=pP(e);return o&&t.push(`Preview: ${Xe(o,220)}`),t}i(gP,"formatChangedDiffExplanation");function hP(e){let t=[],n=e.match(/^Changed diff bundle for\s+(\d+)\s+file\(s\)/im);if(n?.[1]){let r=Number(n[1]);Number.isFinite(r)&&r>0&&t.push(`Bundle: ${r===1?"1 file":`${r} files`}`)}let o=e.match(/^===\s+(.+?)\s+===/m);return o?.[1]&&t.push(`First file: ${Xe(o[1].trim(),220)}`),t}i(hP,"formatChangedDiffBundleExplanation");function $C(e,t){if(!t)return[];let n=og(e).toLowerCase(),o=[];if(n.includes("changed_diff_bundle")){let r=t.match(/^Changed diff bundle for\s+(\d+)\s+file\(s\)/im);if(r?.[1]){let a=Number(r[1]);Number.isFinite(a)&&a>0&&o.push(a===1?"1 file":`${a} files`)}let s=t.match(/^===\s+(.+?)\s+===/m);return s?.[1]&&o.push(Xe(s[1].trim())),o}if(n.includes("changed_diff")){let r=t.match(/^Changed diff for\s+(.+)$/im);r?.[1]&&o.push(Xe(r[1].trim()));let s=_C(t);return s&&o.push(s),o}if(n==="read"||n.includes("read_")){let r=t.match(/^Reading\s+(.+)$/im);return r?.[1]&&o.push(Xe(r[1].trim())),o}return[]}i($C,"summarizeToolOutputDetails");function rg(e,t){let n=cd(e);return t.length>0?`${n} - ${t.join(" - ")}`:n}i(rg,"formatToolDetailSummary");function yP(e,t){if(!t)return;let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(yP,"formatDuration");function xP(e){switch(e.status){case L.Scheduled:return"scheduled";case L.Validating:return"validating";case L.AwaitingApproval:return"awaiting approval";case L.Executing:return"running";case L.Error:return"failed";case L.Cancelled:return"cancelled";default:return}}i(xP,"formatToolStatusDetail");function kC(e){switch(e.status){case L.Scheduled:return["Queued: waiting to start"];case L.Validating:return["Validating: checking inputs and policy"];case L.AwaitingApproval:return["Waiting: approval required before execution"];case L.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 L.Cancelled:return["Cancelled before completion"];default:return[]}}i(kC,"formatToolProgressExplanation");function ig(e){return e.startsWith("Error:")?"error":e.startsWith("Waiting:")?"accent":e.startsWith("Progress:")||e.startsWith("Running:")?"primary":"dim"}i(ig,"resolveToolExplanationTone");function wP(e){let t=vC(e.error),n=typeof e.output=="string"?vC(e.output):void 0,o=[];return t&&o.push(`Error: ${Xe(t,220)}`),e.status===L.Error&&n&&(!t||n.toLowerCase()!==t.toLowerCase())&&o.push(`Last output: ${Xe(n,220)}`),o}i(wP,"formatToolFailureExplanation");function sg(e){if(typeof e.output!="string"||!e.output.trim())return kC(e);let t=og(e.name).toLowerCase();return e.status===L.Error?wP(e):e.status!==L.Success?kC(e):t.includes("changed_diff_bundle")?hP(e.output):t.includes("changed_diff")?gP(e.output):[]}i(sg,"formatToolResultExplanation");function ag(e,t){return rg(e,mP(e,t))}i(ag,"formatToolSummary");function ud(e){let t=typeof e.output=="string"?$C(e.name,e.output):[],n=t.length>0?rg(e.name,t):ag(e.name,e.input),o=xP(e),r=yP(e.startTime,e.endTime),s=e.status===L.Executing&&e.progress!==void 0?`${e.progress}%`:e.status===L.Executing&&e.preview?e.preview:void 0,a=[o,s,r].filter(Boolean);return a.length>0?`${n} (${a.join(" - ")})`:n}i(ud,"formatToolCallInlineText");function dd(e){let t=new Map;for(let n of e){let o=typeof n.output=="string"?$C(n.name,n.output):[],r=o.length>0?rg(n.name,o):ag(n.name,n.input),a=n.progressLines&&n.progressLines.length>0?`${r}|${n.id}`:`${r}|${n.error??""}`,c=t.get(a);c?(c.tool=n,c.count+=1):t.set(a,{tool:n,count:1})}return[...t.values()]}i(dd,"collapseToolCalls");function uc(e){let t=ud(e.tool);return e.count>1?`${t} x${e.count}`:t}i(uc,"formatCollapsedToolInlineText");function fd(e,t,n){let o=ag(e,t);return o!==cd(e)?`[Tools] ${o}`:n>0?`[Tools] ${cd(e)} (${n} chars)`:`[Tools] ${cd(e)}`}i(fd,"formatLiveToolLabel");function cg(e,t=e.length){let n=0,o=Math.min(t,e.length);for(let r=0;r<o;r++)e.charCodeAt(r)===10&&(n+=1);return n}i(cg,"countNewlines");function md(e,t={}){let n=t.maxChars??1e4,o=t.headChars??2500,r=t.tailChars??2500;if(e.length<=n)return e;let s=e.slice(0,o),a=e.slice(-r),c=cg(e),l=cg(s),d=cg(a),m=Math.max(0,c-l-d);return`${s}
332
- \u2026 +${m} lines \u2026
333
- ${a}`}i(md,"truncateUserMessageForDisplay");var PC="(?:\x1B[[0-9;]*m)*",SP=new RegExp(`^(${PC})(?:[ \r]*
334
- )+`),TP=new RegExp(`(?:
335
- [ \r]*)+(${PC})$`);function LC(e){return e.replace(SP,"$1").replace(TP,"$1")}i(LC,"stripOuterBlankLines");var OC=400,CP="... (thinking truncated; press Ctrl+O to inspect full reasoning)",DC=2e5,bP="... (thinking show-all truncated at 200K chars; full content available via session artifacts)",NC=1e5;function vP(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(vP,"normalizeManagedLiveActivityLabel");function pd(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(pd,"formatTimestamp");function BC(e){switch(e){case L.Scheduled:return"\u25CB";case L.Validating:return"\u25D0";case L.AwaitingApproval:return"\u23F8";case L.Executing:return"\u25CF";case L.Success:return"\u2713";case L.Error:return"\u2717";case L.Cancelled:return"\u2298";default:return"[tool]"}}i(BC,"getToolStatusIcon");function HC(e){switch(e){case L.Scheduled:case L.Validating:return"dim";case L.AwaitingApproval:return"accent";case L.Executing:return"primary";case L.Success:return"success";case L.Error:return"error";case L.Cancelled:return"dim";default:return"text"}}i(HC,"getToolStatusColor");function IP(e,t){let n=Math.max(1,t),o=e.split(`
336
- `),r=Qt(o.length>0?o:[""],n,0,0);return r.visualLines.length>0?r.visualLines:[""]}i(IP,"wrapText");function lg(e,t,n,o=!1){if(n||o)return e.length>DC?`${e.slice(0,DC)}
337
-
338
- ${bP}`:e;let r=e.split(/\r?\n/),s=r.length>t,a=s?r.slice(0,t).join(`
339
- `):e,c=a.length>OC,l=c?a.slice(0,OC):a;return!s&&!c?e:`${l}
340
-
341
- ${CP}`}i(lg,"buildThinkingPreview");function kP(e){for(let t=e.length-1;t>=0;t--)if(e[t]?.type==="user")return t;return 0}i(kP,"findActiveRoundStartIndex");function Le(e,t,n,o,r){let s=IP(n,o);if(s.length===0){e.push({key:`${t}-0`,text:"",...r});return}s.forEach((a,c)=>{e.push({key:`${t}-${c}`,text:a,...r})})}i(Le,"pushWrappedRows");function dc(e,t){e.push({key:t,text:" "})}i(dc,"pushBlankRow");function gt(e,t=0){return Math.max(20,e-t)}i(gt,"getBodyWidth");function RP(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,o)=>o===0?`input: ${n}`:n):[]}i(RP,"buildToolInputPreview");function EP(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(EP,"formatHarnessProfileShort");function MP(e,t,n,o,r,s=!1,a=!1){if(Le(e,`${t}-tool-${n.id}-main`,`${BC(n.status)} ${uc({tool:n,count:o})}`,gt(r,2),{color:HC(n.status),indent:2,bold:n.status===L.Executing}),sg(n).forEach((l,d)=>{let m=ig(l);Le(e,`${t}-tool-${n.id}-explanation-${d}`,l,gt(r,4),{color:m,indent:4})}),s){let l=RP(n),d=a?l:l.slice(0,6);d.forEach((m,p)=>{Le(e,`${t}-tool-${n.id}-input-${p}`,m,gt(r,4),{color:"dim",indent:4})}),!a&&l.length>d.length&&Le(e,`${t}-tool-${n.id}-input-more`,`... (${l.length-d.length} more lines)`,gt(r,4),{color:"dim",indent:4})}if(s&&typeof n.output=="string"&&n.output.trim()){let l=n.output.trim().split(/\r?\n/),d=a?l:l.slice(0,8);d.forEach((p,g)=>{Le(e,`${t}-tool-${n.id}-output-${g}`,p,gt(r,4),{color:"dim",indent:4})});let m=l.length;!a&&m>d.length&&Le(e,`${t}-tool-${n.id}-output-more`,`... (${m-d.length} more lines)`,gt(r,4),{color:"dim",indent:4})}}i(MP,"buildToolRows");function AP(e,t,n,o){let r=n.status===L.Executing,s=r?"":`${BC(n.status)} `;Le(e,`${t}-tool-${n.id}-main`,`${s}${uc({tool:n,count:1})}`,gt(o,2),{color:HC(n.status),indent:2,bold:r,spinner:r}),sg(n).forEach((c,l)=>{let d=ig(c);Le(e,`${t}-tool-${n.id}-explanation-${l}`,c,gt(o,4),{color:d,indent:4})})}i(AP,"buildLiveToolRows");function FC(e){let{items:t,viewportWidth:n,isLoading:o=!1,maxLines:r=1e3,isThinking:s=!1,thinkingCharCount:a=0,thinkingContent:c="",streamingResponse:l="",currentTool:d,activeToolCalls:m=[],toolInputCharCount:p=0,toolInputContent:g="",iterationHistory:x=[],currentIteration:h=1,isCompacting:T=!1,managedAgentMode:w,managedPhase:b,managedHarnessProfile:O,managedWorkerTitle:P,managedRound:N,managedMaxRounds:K,lastLiveActivityLabel:W,currentTodoActiveForm:v,showFullThinking:Z=!1,showDetailedTools:Se=!1,showAllContent:z=!1,showLiveProgressRows:re=!0}=e,A=[];for(let k of t)switch(k.type){case"user":Le(A,`${k.id}-header`,`You [${pd(k.timestamp)}]`,n,{color:"primary",bold:!0,itemId:k.id}),Le(A,`${k.id}-body`,md(k.text),gt(n,2),{color:"text",indent:2,itemId:k.id}),A.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break;case"assistant":{let _=z?k.text:k.compactText??k.text;Le(A,`${k.id}-header`,`Assistant [${pd(k.timestamp)}]`,n,{color:"secondary",bold:!0,spinner:k.isStreaming,itemId:k.id}),Le(A,`${k.id}-body`,_,gt(n,2),{color:"text",indent:2,itemId:k.id}),A.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break}case"system":Le(A,`${k.id}-header`,`System [${pd(k.timestamp)}]`,n,{color:"dim",bold:!0,itemId:k.id}),Le(A,`${k.id}-body`,k.text,gt(n,2),{color:"dim",indent:2,itemId:k.id}),A.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break;case"tool_group":Le(A,`${k.id}-header`,`Tools [${pd(k.timestamp)}]`,n,{color:"accent",bold:!0,itemId:k.id}),dd(k.tools).forEach(_=>MP(A,k.id,_.tool,_.count,n,Se,z)),A.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break;case"thinking":{let _=z?lg(k.text,r,Z,z):k.compactText??lg(k.text,r,Z,z);Le(A,`${k.id}-header`,"Thinking",n,{color:"thinking",italic:!0,itemId:k.id}),Le(A,`${k.id}-body`,_,gt(n,2),{color:"thinking",indent:2,italic:!0,itemId:k.id}),A.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break}case"error":Le(A,`${k.id}-header`,"\u2717 Error",n,{color:"error",bold:!0,itemId:k.id}),Le(A,`${k.id}-body`,k.text,gt(n,2),{color:"error",indent:2,itemId:k.id}),A.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break;case"info":Le(A,`${k.id}-body`,`${k.icon??"\u2139"} ${LC(z?k.text:k.compactText??k.text)}`,n,{color:"info",itemId:k.id}),A.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break;case"event":Le(A,`${k.id}-body`,`${k.icon??">"} ${z?k.text:k.compactText??k.text}`,n,{color:"text",itemId:k.id}),A.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break;case"hint":Le(A,`${k.id}-header`,"\u{1F4A1} Hint",n,{color:"hint",bold:!0,itemId:k.id}),Le(A,`${k.id}-body`,k.text,gt(n,2),{color:"dim",indent:2,itemId:k.id}),A.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break;default:break}if(re&&x.length>0&&(x.forEach(k=>{if(Le(A,`iteration-${k.iteration}-header`,`\u2500\u2500 Round ${k.iteration} \u2500\u2500`,n,{color:"dim",bold:!0}),k.thinkingSummary){let _=k.thinkingLength>60?` (${k.thinkingLength} chars total)`:"";Le(A,`iteration-${k.iteration}-thinking`,`\u{1F4AD} ${k.thinkingSummary}${_}`,gt(n,1),{color:"thinking",indent:1,italic:!0})}if(k.response){let _=k.response.slice(0,200);Le(A,`iteration-${k.iteration}-response`,_,gt(n,1),{color:"text",indent:1}),k.response.length>200&&Le(A,`iteration-${k.iteration}-response-more`,`... (${k.response.length} chars total)`,gt(n,1),{color:"dim",indent:1})}k.toolsUsed.length>0&&Le(A,`iteration-${k.iteration}-tools`,`* tools: ${k.toolsUsed.join(", ")}`,gt(n,1),{color:"accent",indent:1}),dc(A,`iteration-${k.iteration}-blank`)}),Le(A,"iteration-current-header",`\u2500\u2500 Round ${h} (current) \u2500\u2500`,n,{color:"accent",bold:!0}),dc(A,"iteration-current-blank")),o&&c){let k=lg(c,r,Z,z);Le(A,"thinking-stream-header","Thinking",n,{color:"thinking",italic:!0}),Le(A,"thinking-stream-body",k,gt(n,2),{color:"thinking",indent:2,italic:!0}),dc(A,"thinking-stream-blank")}if(o){let k="Thinking",_="",be=EP(O),Pe=vP(W,P),ye=P??"Scout",le=b==="routing"?`[${w?w.toUpperCase():"AMA"} Routing] `:b==="preflight"?`[${w?w.toUpperCase():"AMA"} ${ye}] `:b==="verifying"?`[${w?w.toUpperCase():"AMA"} Verifying] `:O?`[${w?w.toUpperCase():"AMA"} ${be??O}${P?` - ${P}`:""}] `:"",Ae=m.filter(ce=>ce.status===L.Executing).length,ae=m.filter(ce=>ce.status===L.Success).length,q=m.filter(ce=>ce.status===L.Error).length,Y=m.filter(ce=>ce.status===L.Cancelled).length,Re=m.length>0&&(Ae>0||!l);if(T)k="Compacting";else if(b==="verifying")_=le,k="checking agent output";else if(Re){let ce=[];if(Ae>0&&ce.push(`${Ae} running`),ae>0&&ce.push(`${ae} done`),q>0&&ce.push(`${q} error`),Y>0&&ce.push(`${Y} cancelled`),ce.length===0&&ce.push(`${m.length} tools`),Le(A,"loading-tools-header",`${le}[Tools] ${ce.join(", ")}`,n,{color:"primary",bold:!0,spinner:Ae>0}),m.forEach(lt=>{AP(A,"loading-tools",lt,n)}),dc(A,"loading-tools-blank"),Ae>0&&!l&&!re)return A}else if(v)_=le||"[Plan] ",k=v;else if(d)_=le||"[Tool] ",k=Pe?.startsWith("[Tools]")?Pe:fd(d,g,p);else if(s){_=le||"[Thinking] ";let ce=N&&K&&N>1?` round ${N}/${K}`:"";k=a>0?`${a} chars${ce}`:Pe?`${Pe}${ce}`:`processing${ce}`}else Pe&&(k=Pe);re&&Le(A,"loading-indicator",`${_}${k}...`,n,{color:"accent",spinner:!0})}if(l){let k=l.lastIndexOf(`
342
- `),_=k>=0?l.slice(0,k+1):"";_.length>0&&(Le(A,"streaming-header","Assistant",n,{color:"secondary",bold:!0}),Le(A,"streaming-body",_,gt(n,2),{color:"text",indent:2}),dc(A,"streaming-blank"))}return A}i(FC,"buildTranscriptRows");function _P(e,t,n=1e3,o=!1,r=!1){return Cs(e,t,n,o,void 0,r)}i(_P,"buildStaticTranscriptSections");function Cs(e,t,n=1e3,o=!1,r,s=!1){return e.map(a=>({key:a.id,rows:FC({items:[a],viewportWidth:t,maxLines:n,showAllContent:s,showDetailedTools:o||!!r?.has(a.id)})}))}i(Cs,"buildHistoryItemTranscriptSections");function $P(e,t){return{key:e,rows:FC(t)}}i($P,"buildDynamicTranscriptSection");function gd(e){let{items:t,viewportWidth:n,maxLines:o=1e3,showDetailedTools:r=!1,showAllContent:s=!1,windowed:a=!1}=e;if(a)return{staticSections:[],activeItems:t};let c=kP(t),l=t.slice(0,c),d=t.slice(c);return{staticSections:_P(l,n,o,r,s),activeItems:d}}i(gd,"buildTranscriptStaticPortion");function hd(e){let{activeItems:t,viewportWidth:n,maxLines:o=1e3,showDetailedTools:r=!1,showAllContent:s=!1,expandedItemKeys:a,...c}=e,l=Cs(t,n,o,r,a,s),d=$P("active-pending",{...c,items:[],managedLiveEvents:[],lastLiveActivityLabel:c.lastLiveActivityLabel,viewportWidth:n,maxLines:o,showAllContent:s,showDetailedTools:r,expandedItemKeys:a}),m=d.rows.length>0?[d]:[];return{sections:l,previewSections:m}}i(hd,"buildTranscriptDynamicPortion");function yd(e,t){return{staticSections:e.staticSections,sections:t.sections,rows:zr(t.sections),previewSections:t.previewSections,previewRows:zr(t.previewSections)}}i(yd,"composeTranscriptRenderModel");function xd(e){let t=gd({items:e.items,viewportWidth:e.viewportWidth,maxLines:e.maxLines,showDetailedTools:e.showDetailedTools,showAllContent:e.showAllContent,windowed:e.windowed}),{items:n,...o}=e,r=hd({...o,activeItems:t.activeItems});return yd(t,r)}i(xd,"buildTranscriptRenderModel");function zr(e){return e.flatMap(t=>t.rows)}i(zr,"flattenTranscriptSections");function ug(e){let t=[...e.staticSections,...e.sections];return{staticSections:[],sections:t,rows:zr(t),previewSections:[...e.previewSections],previewRows:zr(e.previewSections)}}i(ug,"materializeTranscriptRenderModel");function WC(e,t={}){let{start:n,end:o,viewportTop:r,viewportHeight:s,viewportRows:a,scrollOffset:c=0,windowed:l=!1}=t;if(typeof r=="number"&&typeof s=="number"){let d=Math.max(0,r),m=Math.max(d,r+Math.max(0,s));return e.slice(d,m)}return typeof n=="number"&&typeof o=="number"?e.slice(Math.max(0,n),Math.max(0,o)):l?fg(e,a,c):e}i(WC,"resolveVisibleTranscriptRows");var PP=200,LP=50,dg=30;function UC(e,t,n=PP,o=LP){let r=t.current,s=r?e.findIndex(l=>l.id===r.id):-1,a=s>=0?s:r?Math.min(r.idx,Math.max(0,e.length-n)):0;e.length-a>n+o&&(a=e.length-n);let c=e[a];return c&&(r?.id!==c.id||r.idx!==a)?t.current={id:c.id,idx:a}:!c&&r&&(t.current=null),a}i(UC,"computeTranscriptCapStart");function jC(e,t){if(t<=0||e.length===0)return[];let n=0,o=0;for(let r=e.length-1;r>=0;r--)if(e[r]?.type==="user"&&(n++,n>t)){o=r+1;break}return e.slice(o)}i(jC,"sliceHistoryToRecentRounds");function fg(e,t,n=0){if(!t||t<=0)return e;let o=Math.max(0,n),r=Math.max(0,e.length-o),s=Math.max(0,r-t);return e.slice(s,r)}i(fg,"getVisibleTranscriptRows");function GC(e,t,n){if(!t||!n||n<=0)return 0;let o=zr(e),r=e.find(d=>d.key===t);if(!r||r.rows.length===0)return 0;let s=r.rows[0]?.key,a=o.findIndex(d=>d.key===s);if(a===-1)return 0;let c=Math.max(0,a-Math.floor(n/3)),l=Math.min(o.length,c+n);return Math.max(0,o.length-l)}i(GC,"resolveScrollOffsetForTranscriptItem");function KC(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(KC,"resolveTranscriptColor");var wd="__transcript_hidden_divider__";function VC(e,t){let n=e===1?"message":"messages";return{id:wd,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(VC,"buildTranscriptHiddenDivider");function mg(e){return e.id===wd}i(mg,"isTranscriptHiddenDivider");var zC=new Ki(500);function OP(e){let t=qt(e),n=[],o=[],r=0,s=0;for(let a of t)n.push(r),o.push(s),r+=a.length,s+=Am(a);return{graphemes:t,codeUnitOffsets:n,visualOffsets:o,length:t.length,displayWidth:s}}i(OP,"buildTranscriptTextMetrics");function fc(e){let t=zC.get(e);if(t)return t;let n=OP(e);return zC.set(e,n),n}i(fc,"getTranscriptTextMetrics");function rr(e){return fc(e).length}i(rr,"getTranscriptTextLength");function XC(e){return fc(e).displayWidth}i(XC,"getTranscriptTextDisplayWidth");function Sd(e,t){let n=fc(e),o=Math.max(0,Math.min(n.length-1,t));return n.graphemes[o]??""}i(Sd,"charAtTranscriptText");function bs(e,t,n){let o=fc(e),r=Math.max(0,Math.min(o.length,Math.floor(t))),s=typeof n=="number"?Math.max(r,Math.min(o.length,Math.floor(n))):o.length;return o.graphemes.slice(r,s).join("")}i(bs,"sliceTranscriptText");function YC(e,t){let n=fc(e),o=Math.max(0,Math.floor(t));if(o<=0||n.length===0)return 0;for(let r=0;r<n.length;r+=1){let s=n.visualOffsets[r]??0,a=r+1<n.length?n.visualOffsets[r+1]??n.displayWidth:n.displayWidth;if(o<a||o===s)return r}return n.length}i(YC,"resolveTranscriptTextIndexAtVisualColumn");function Td(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(Td,"formatTimestamp");function DP(e,t){let n=e.split(`
343
- `),o=n.slice(0,t),r=n.length>t;return{lines:o,hasMore:r}}i(DP,"truncateLines");function NP(e){switch(e){case L.Scheduled:return"\u25CB";case L.Validating:return"\u25D0";case L.AwaitingApproval:return"\u23F8";case L.Executing:return"\u25CF";case L.Success:return"\u2713";case L.Error:return"\u2717";case L.Cancelled:return"\u2298";default:return"?"}}i(NP,"getToolStatusIcon");function BP(e,t){switch(e){case L.Scheduled:case L.Validating:return t.colors.dim;case L.AwaitingApproval:return t.colors.accent;case L.Executing:return t.colors.primary;case L.Success:return t.colors.success;case L.Error:return t.colors.error;case L.Cancelled:return t.colors.dim;default:return t.colors.text}}i(BP,"getToolStatusColor");var HP=pn(({item:e,theme:t})=>{let n=so(()=>md(e.text),[e.text]);return Fe(I,{flexDirection:"column",marginBottom:1,children:[Fe(I,{children:[pe(C,{color:t.colors.primary,bold:!0,children:"You"}),Fe(C,{dimColor:!0,children:[" [",Td(e.timestamp),"]"]})]}),pe(I,{marginLeft:2,children:pe(C,{color:t.colors.text,children:n})})]})}),FP=pn(({item:e,theme:t,maxLines:n})=>{let o=e.compactText??e.text,{lines:r,hasMore:s}=DP(o,n);return Fe(I,{flexDirection:"column",marginBottom:1,children:[Fe(I,{children:[pe(C,{color:t.colors.secondary,bold:!0,children:"Assistant"}),e.isStreaming&&Fe(pg,{children:[pe(C,{children:" "}),pe(_n,{color:t.colors.accent})]}),Fe(C,{dimColor:!0,children:[" [",Td(e.timestamp),"]"]})]}),Fe(I,{marginLeft:2,flexDirection:"column",children:[r.map((a,c)=>pe(C,{color:t.colors.text,children:a||" "},c)),s&&Fe(C,{dimColor:!0,children:["... (",o.split(`
344
- `).length-n," more lines)"]})]})]})}),WP=pn(({item:e,theme:t})=>Fe(I,{flexDirection:"column",marginBottom:1,children:[Fe(I,{children:[pe(C,{color:t.colors.dim,bold:!0,children:"System"}),Fe(C,{dimColor:!0,children:[" [",Td(e.timestamp),"]"]})]}),pe(I,{marginLeft:2,children:pe(C,{dimColor:!0,children:e.text})})]})),UP=pn(({tool:e,count:t=1,theme:n})=>{let o=NP(e.status),r=BP(e.status,n);return Fe(I,{flexDirection:"column",marginLeft:2,children:[Fe(I,{children:[Fe(C,{color:r,children:[o," "]}),pe(C,{color:n.colors.text,bold:!0,children:uc({tool:e,count:t})})]}),e.error&&pe(I,{marginLeft:2,children:pe(C,{color:n.colors.error,children:e.error})})]})}),jP=pn(({item:e,theme:t})=>{let n=dd(e.tools);return Fe(I,{flexDirection:"column",marginBottom:1,children:[Fe(I,{children:[pe(C,{color:t.colors.accent,bold:!0,children:"Tools"}),Fe(C,{dimColor:!0,children:[" [",Td(e.timestamp),"]"]})]}),n.map(o=>pe(UP,{tool:o.tool,count:o.count,theme:t},`${o.tool.id}-${o.count}`))]})}),GP=pn(({item:e,theme:t})=>Fe(I,{flexDirection:"column",marginBottom:1,children:[pe(I,{children:pe(C,{color:t.colors.thinking,italic:!0,children:"Thinking"})}),pe(I,{marginLeft:2,children:pe(C,{color:t.colors.thinking,italic:!0,children:e.compactText??e.text})})]})),KP=pn(({item:e,theme:t})=>Fe(I,{flexDirection:"column",marginBottom:1,children:[pe(I,{children:Fe(C,{color:t.colors.error,bold:!0,children:["\u2717"," Error"]})}),pe(I,{marginLeft:2,children:pe(C,{color:t.colors.error,children:e.text})})]})),VP=pn(({item:e,theme:t})=>pe(I,{flexDirection:"column",marginBottom:1,children:Fe(C,{color:t.colors.text,children:[pe(C,{color:t.colors.accent,bold:!0,children:e.icon??">"}),pe(C,{children:" "}),e.compactText??e.text]})})),zP=pn(({item:e,theme:t})=>pe(I,{flexDirection:"column",marginBottom:e.tightSpacing?0:1,children:Fe(C,{color:t.colors.info,children:[Fe(C,{bold:!0,children:[e.icon??"\u2139"," "]}),e.compactText??e.text]})})),XP=pn(({item:e,theme:t})=>Fe(I,{flexDirection:"column",marginBottom:1,children:[pe(I,{children:Fe(C,{color:t.colors.hint,bold:!0,children:["\u{1F4A1}"," Hint"]})}),pe(I,{marginLeft:2,children:pe(C,{dimColor:!0,children:e.text})})]})),YP=pn(({item:e,theme:t,maxLines:n=1e3})=>{let o=so(()=>ee("dark"),[]),r=t??o;switch(e.type){case"user":return pe(HP,{item:e,theme:r});case"assistant":return pe(FP,{item:e,theme:r,maxLines:n});case"system":return pe(WP,{item:e,theme:r});case"tool_group":return pe(jP,{item:e,theme:r});case"thinking":return pe(GP,{item:e,theme:r});case"error":return pe(KP,{item:e,theme:r});case"event":return pe(VP,{item:e,theme:r});case"info":return pe(zP,{item:e,theme:r});case"hint":return pe(XP,{item:e,theme:r});default:return pe(I,{children:pe(C,{dimColor:!0,children:"Unknown item type"})})}});function qP(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,o=t.row;if(n!==o){if(n.key!==o.key||n.text!==o.text||n.color!==o.color||n.bold!==o.bold||n.italic!==o.italic||n.indent!==o.indent||n.spinner!==o.spinner||n.itemId!==o.itemId)return!1}let r=e.selectionRange,s=t.selectionRange;return r===s?!0:!r||!s?!1:r.start===s.start&&r.end===s.end}i(qP,"areTranscriptRowPropsEqual");var QC=pn(({row:e,theme:t,animateSpinners:n=!0,selectedItem:o=!1,selectionRange:r})=>{let s=KC(t,e.color),a=e.text===" "?"":e.text,c=a||" ",l=r&&a?bs(a,r.start,r.end):"",d=r&&a?bs(a,0,r.start):a,m=r&&a?bs(a,r.end):"",p=o&&!r,g=!p&&e.color==="dim",x={bold:e.bold||p,italic:e.italic,dimColor:g};return Fe(I,{marginLeft:e.indent??0,children:[e.spinner&&n&&Fe(pg,{children:[pe(_n,{color:t.colors.accent,theme:t}),pe(C,{children:" "})]}),pe(C,{color:p?t.colors.accent:s,...x,children:r&&a?Fe(pg,{children:[d?pe(C,{color:p?t.colors.accent:s,...x,children:d}):null,pe(C,{backgroundColor:t.colors.accent,color:t.colors.background,bold:!0,italic:e.italic,children:l}),m?pe(C,{color:p?t.colors.accent:s,...x,children:m}):null]}):c})]})},qP),QP=pn(({section:e,theme:t,animateSpinners:n=!0})=>pe(I,{flexDirection:"column",children:e.rows.map(o=>pe(QC,{row:o,theme:t,animateSpinners:n},o.key))})),Xr=i(({items:e,isLoading:t=!1,maxLines:n=1e3,isThinking:o=!1,thinkingCharCount:r=0,thinkingContent:s="",streamingResponse:a="",currentTool:c,activeToolCalls:l,toolInputCharCount:d=0,toolInputContent:m="",iterationHistory:p=[],currentIteration:g=1,isCompacting:x=!1,agentMode:h,managedPhase:T,managedHarnessProfile:w,managedWorkerTitle:b,managedRound:O,managedMaxRounds:P,managedGlobalWorkBudget:N,managedBudgetUsage:K,managedBudgetApprovalRequired:W,lastLiveActivityLabel:v,viewportRows:Z,viewportWidth:Se,scrollOffset:z=0,animateSpinners:re=!0,windowed:A=!1,showFullThinking:k=!1,showDetailedTools:_=!1,showAllContent:be=!1,showLiveProgressRows:Pe=!0,selectedItemId:ye,expandedItemKeys:le,onMetricsChange:Ae,onVisibleRowsChange:ae,rendererWindow:q,selectedTextRanges:Y,transcriptModel:Re,visibleRowsOverride:ce})=>{let lt=so(()=>ee("dark"),[]),{stdout:ze}=eo(),Oe=Se??ze?.columns??80,ue=so(()=>Re??xd({items:e,viewportWidth:Oe,isLoading:t,maxLines:n,isThinking:o,thinkingCharCount:r,thinkingContent:s,streamingResponse:a,currentTool:c,activeToolCalls:l,toolInputCharCount:d,toolInputContent:m,iterationHistory:p,currentIteration:g,isCompacting:x,managedAgentMode:h,managedPhase:T,managedHarnessProfile:w,managedWorkerTitle:b,managedRound:O,managedMaxRounds:P,managedGlobalWorkBudget:N,managedBudgetUsage:K,managedBudgetApprovalRequired:W,lastLiveActivityLabel:v,windowed:A,showFullThinking:k,showDetailedTools:_,showAllContent:be,showLiveProgressRows:Pe,expandedItemKeys:le}),[Re,e,Oe,t,n,o,r,s,a,c,l,d,m,p,g,x,h,T,w,b,O,P,N,K,W,v,A,k,_,be,Pe,le]),Mt=ue.staticSections,bt=ue.rows,Q=ue.previewRows,M=so(()=>[...bt,...Q],[Q,bt]),U=!(M.length>0)&&e.length===0&&!t,J=so(()=>A||q||ce?M:bt,[M,q,bt,ce,A]),Ee=so(()=>ce||WC(J,{viewportTop:q?Math.max(0,q.viewportTop):void 0,viewportHeight:q?Math.max(0,q.viewportHeight):void 0,start:void 0,end:void 0,viewportRows:Z,scrollOffset:z,windowed:A}),[q,z,Z,ce,A,J]),ot=so(()=>ce||A||q?Ee:M,[M,q,Ee,ce,A]),ve=so(()=>M,[M]),De=q?Math.max(0,q.viewportHeight):Z;return qC(()=>{Ae?.({scrollHeight:M.length,viewportHeight:q?Math.max(0,q.viewportHeight):De??M.length})},[M.length,De,Ae,q]),qC(()=>{ae?.({rows:ot,allRows:ve})},[ve,ae,ot]),U?pe(I,{paddingY:1,children:pe(C,{dimColor:!0,children:"No messages yet. Start typing to begin."})}):Fe(I,{flexDirection:"column",children:[!A&&Mt.length>0&&pe(os,{items:Mt,children:i(At=>pe(QP,{section:At,theme:lt,animateSpinners:re},At.key),"children")}),ot.map(At=>pe(QC,{row:At,theme:lt,animateSpinners:re,selectedItem:ye?At.key.startsWith(`${ye}-`):!1,selectionRange:Y?.get(At.key)},At.key))]})},"MessageList");var JP=i(({role:e,content:t})=>{let n=so(()=>ee("dark"),[]),o={user:n.colors.primary,assistant:n.colors.secondary,system:n.colors.dim}[e];return Fe(I,{flexDirection:"column",marginBottom:1,children:[pe(C,{color:o,bold:!0,children:e==="user"?">":e==="assistant"?"<":"#"}),pe(C,{children:t})]})},"SimpleMessageDisplay");import{jsx as hg,jsxs as Id}from"react/jsx-runtime";import hL,{useMemo as yg}from"react";var ZP="\u{1F504}",eL="\u2588",tL="\u2592",nL="\u2192",oL=" \xB7 ";function rL(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(rL,"formatReasoningModeShort");function iL(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(iL,"formatReasoningCapabilityShort");function sL(e){switch(e){case"off":return"dim";case"quick":return"green";case"balanced":return"yellow";case"deep":return"magenta";default:return"cyan"}}i(sL,"getReasoningColor");function JC(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(JC,"formatTokenCount");function aL(e){let t=Math.min(10,Math.max(0,Math.round(e/10))),n=10-t;return`${eL.repeat(t)}${tL.repeat(n)}`}i(aL,"createMiniProgressBar");function cL(e,t,n){if(t===0)return"green";let o=e/t*100,r=n*(2/3);return o>=n?"red":o>=r?"yellow":"green"}i(cL,"getContextColor");function lL(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(lL,"getPermissionModeColor");function uL(e,t){let n=as(e);return!(e==="auto"||e==="auto-in-project")||!t?n:`${n}${t==="llm"?"[LLM]":"[RULES]"}`}i(uL,"buildPermissionModeText");function dL(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(dL,"formatToolAction");function fL(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(fL,"formatHarnessProfileShort");function Cd(e,t){return t&&t>0?`${e} (${t} chars)`:e}i(Cd,"formatThinkingStatus");function bd(e,t,n){let o=dL(e);return n?`${o} (${n}...)`:t&&t>0?`${o} (${t} chars)`:o}i(bd,"formatToolStatus");function gg({activeToolCount:e,currentTool:t,isThinkingActive:n,thinkingCharCount:o,isCompacting:r,toolInputCharCount:s,toolInputContent:a,managedPhase:c,managedHarnessProfile:l,managedWorkerTitle:d,managedIdleWaiting:m,managedIdleWaitingPendingCount:p}){let g=e&&e>0?`${e} tool${e===1?"":"s"} running`:void 0;if(r)return"Compacting";if(c==="routing")return g?`Routing - ${g}`:t?`Routing - ${bd(t,s,a)}`:n?Cd("Routing",o):"Routing";if(c==="preflight"){let x=d??"Scout";return g?`${x} - ${g}`:t?`${x} - ${bd(t,s,a)}`:n?Cd(x,o):x}if(l){let h=`${fL(l)}${d?` - ${d}`:""}`;if(m===!0&&!g&&!t&&!n){let T=p??0,w=T>1?`waiting for ${T} children`:T===1?"waiting for 1 child":"idle - resuming";return`${h} - ${w}`}return g?`${h} - ${g}`:t?`${h} - ${bd(t,s,a)}`:n?Cd(h,o):h}if(g)return g;if(t)return bd(t,s,a);if(n)return Cd("Thinking",o)}i(gg,"buildBusyStatusText");function mL({agentMode:e,managedPhase:t,managedHarnessProfile:n,managedRound:o,managedMaxRounds:r,managedGlobalWorkBudget:s,managedBudgetUsage:a,currentIteration:c,maxIter:l}){let d=[];return t==="routing"||t==="preflight"||(n&&o&&r&&o>1&&d.push({label:"Round",current:o,max:r}),n&&s&&typeof a=="number"?d.push({label:"Work",current:a,max:s}):e==="sa"&&c&&l&&d.push({label:"Iter",current:c,max:l})),d}i(mL,"resolveIterationSegments");function pL(e){if(e.length!==0)return`${ZP} ${e.map(t=>`${t.label} ${t.current}/${t.max}`).join(oL)}`}i(pL,"formatLabeledIterationStatus");function gL(e){let{sessionId:t,permissionMode:n,agentMode:o,provider:r,model:s,tokenUsage:a,currentTool:c,activeToolCount:l,thinking:d,isThinkingActive:m,thinkingCharCount:p,reasoningMode:g=d?"auto":"off",reasoningCapability:x,isCompacting:h,toolInputCharCount:T,toolInputContent:w,currentIteration:b,maxIter:O,contextUsage:P,showBusyStatus:N=!0,managedPhase:K,managedHarnessProfile:W,managedWorkerTitle:v,managedRound:Z,managedMaxRounds:Se,managedGlobalWorkBudget:z,managedBudgetUsage:re,managedIdleWaiting:A,managedIdleWaitingPendingCount:k}=e,_=[{id:"agent-mode",text:`KodaX - ${o.toUpperCase()}`,color:"primary",bold:!0},{id:"permission-mode",text:uL(n,e.autoModeEngine),color:lL(n)}],be=rL(g),Pe=iL(x);_.push({id:"reasoning-mode",text:x?`${be}/${Pe}`:be,color:sL(g)});let ye=mL({agentMode:o,managedPhase:K,managedHarnessProfile:W,managedRound:Z,managedMaxRounds:Se,managedGlobalWorkBudget:z,managedBudgetUsage:re,currentIteration:b,maxIter:O}),le=pL(ye);if(le){let ae=Math.max(...ye.map(Y=>Y.current/Y.max)),q="green";ae>=.8?q="red":ae>=.5&&(q="yellow"),_.push({id:"iteration-status",text:le,color:q})}_.push({id:"session-id",text:t,color:"dim"});let Ae=N?gg({activeToolCount:l,currentTool:c,isThinkingActive:m,thinkingCharCount:p,isCompacting:h,toolInputCharCount:T,toolInputContent:w,managedPhase:K,managedHarnessProfile:W,managedWorkerTitle:v,managedIdleWaiting:A,managedIdleWaitingPendingCount:k}):void 0;if(Ae&&_.push({id:"busy-status",text:Ae,color:"dim"}),_.push({id:"provider-model",text:`${r}/${s}`,color:"secondary"}),P&&P.contextWindow!==0){let ae=Math.round(P.currentTokens/P.contextWindow*100),q=JC(P.currentTokens),Y=JC(P.contextWindow),Re=aL(ae);_.push({id:"context-usage",text:`${q}/${Y} ${Re} ${ae}%`,color:cL(P.currentTokens,P.contextWindow,P.triggerPercent)})}return a&&_.push({id:"token-usage",text:`${a.input}${nL}${a.output} (${a.total})`,color:"dim"}),_}i(gL,"buildStatusBarSegments");function vd(e){let t=gL(e);return{text:t.map(n=>n.text).join(" | "),segments:t}}i(vd,"buildStatusBarViewModel");function yL(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(yL,"resolveViewModelSegmentColor");var vs=i(({viewModel:e,...t})=>{let n=yg(()=>ee("dark"),[]),o=yg(()=>e??vd(t),[t,e]);return hg(I,{paddingX:1,children:o.segments.map((r,s)=>Id(hL.Fragment,{children:[hg(C,{color:yL(r,n),bold:r.bold,children:r.text}),s<o.segments.length-1?hg(C,{dimColor:!0,children:" | "}):null]},r.id))})},"StatusBar"),xL=i(({permissionMode:e,provider:t,model:n})=>{let o=yg(()=>ee("dark"),[]);return Id(I,{children:[Id(C,{color:o.colors.primary,bold:!0,children:["[",e,"]"]}),Id(C,{dimColor:!0,children:[" ",t,"/",n]})]})},"SimpleStatusBar");import{jsx as ir,jsxs as Ed}from"react/jsx-runtime";import{useState as xg,useCallback as kd,useMemo as ZC}from"react";function Rd(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(Rd,"generateId");function wL(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(wL,"messageToHistoryItem");var SL=i(({model:e,provider:t,onSubmit:n,permissionMode:o="accept-edits",agentMode:r="ama"})=>{let{stdout:s}=eo(),a=ZC(()=>ee("dark"),[]),[c,l]=xg({messages:[],isLoading:!1,sessionId:Rd()}),[d,m]=xg(null),[p,g]=xg(),x=kd(async b=>{if(!b.trim())return;let O={id:Rd(),role:"user",content:b,timestamp:Date.now()};l(P=>({...P,messages:[...P.messages,O],isLoading:!0}));try{await n(b)}catch(P){let N={id:Rd(),role:"system",content:`Error: ${P instanceof Error?P.message:"Unknown error"}`,timestamp:Date.now()};l(K=>({...K,messages:[...K.messages,N],isLoading:!1}))}finally{l(P=>({...P,isLoading:!1}))}},[n]),h=kd((b,O)=>{let P={id:Rd(),role:b,content:O,timestamp:Date.now()};l(N=>({...N,messages:[...N.messages,P]}))},[]),T=kd((b,O)=>{m({input:b,output:O,total:b+O})},[]),w=kd(b=>{g(b)},[]);return Ed(I,{flexDirection:"column",children:[ir(I,{flexGrow:1,flexDirection:"column",overflow:"hidden",children:ir(Xr,{items:c.messages.map(wL),isLoading:c.isLoading})}),ir(I,{flexShrink:0,children:ir(ws,{onSubmit:i(b=>x(b.fullText),"onSubmit"),prompt:">",focus:!c.isLoading})}),ir(I,{flexShrink:0,children:ir(vs,{sessionId:c.sessionId,permissionMode:o,agentMode:r,provider:t,model:e,tokenUsage:d??void 0,currentTool:p})})]})},"App"),TL=i(({model:e,provider:t,onInput:n})=>{let o=ZC(()=>ee("dark"),[]);return Ed(I,{flexDirection:"column",children:[Ed(I,{marginBottom:1,children:[ir(C,{color:o.colors.primary,bold:!0,children:"KodaX CLI"}),Ed(C,{dimColor:!0,children:[" ","- ",t,"/",e]})]}),ir(ws,{onSubmit:i(r=>n(r.fullText),"onSubmit"),placeholder:"Type a message...",prompt:">"})]})},"SimpleApp");import{jsx as CL}from"react/jsx-runtime";var wg=i(({top:e,topRows:t=0,transcript:n,renderTranscriptWindow:o,footer:r,overlay:s,stickyHeader:a,jumpToLatest:c,width:l,scrollTop:d=0,scrollHeight:m=0,viewportHeight:p=0,stickyScroll:g=!0,scrollRef:x,onScrollTopChange:h,onStickyChange:T,onWindowChange:w})=>CL(up,{width:l,top:e,topRows:t,stickyHeader:a,jumpToLatest:c,scrollable:n,renderScrollableWindow:o,overlay:s,bottom:r,scrollTop:d,scrollHeight:m,viewportHeight:p,stickyScroll:g,scrollRef:x,onScrollTopChange:h,onStickyChange:T,onWindowChange:w}),"FullscreenTranscriptLayout");import{jsx as eb}from"react/jsx-runtime";function Is({copyMessage:e=!1,copyToolInput:t=!1,copyOnSelect:n=!1,toggleDetail:o=!1,selectionNavigation:r=!1,matchNavigation:s=!1,dismissAction:a}){let c=[];return r&&c.push("\u2190/\u2192 browse"),e&&c.push("C copy"),t&&c.push("I tool input"),n&&c.push("Mouse select copies"),o&&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(Is,"buildMessageActionsText");var Sg=i(({copyMessage:e=!1,copyToolInput:t=!1,copyOnSelect:n=!1,toggleDetail:o=!1,selectionNavigation:r=!1,matchNavigation:s=!1,dismissAction:a})=>{let c=ee("dark"),l=Is({copyMessage:e,copyToolInput:t,copyOnSelect:n,toggleDetail:o,selectionNavigation:r,matchNavigation:s,dismissAction:a});return l?eb(I,{paddingX:1,children:eb(C,{color:c.colors.dim,children:l})}):null},"MessageActions");import{jsx as tb}from"react/jsx-runtime";function Tg({itemSummary:e,itemKind:t,position:n,detailState:o="compact"}){if(!e||!n||n.total<=0)return;let r=o==="expanded"?"expanded":"compact",s=t?`${t}: `:"";return`Selected item ${n.current}/${n.total}: ${s}${e} | ${r}`}i(Tg,"buildMessageSelectorText");var bL=i(({itemSummary:e,itemKind:t,position:n,detailState:o="compact"})=>{let r=ee("dark"),s=Tg({itemSummary:e,itemKind:t,position:n,detailState:o});return s?tb(I,{paddingX:1,children:tb(C,{color:r.colors.dim,children:s})}):null},"MessageSelector");import{jsx as ks,jsxs as vL}from"react/jsx-runtime";import{useMemo as nb}from"react";function Md(e,t){return Math.max(1,Qt(e.length>0?e.split(`
345
- `):[""],Math.max(1,t),0,0).visualLines.length)}i(Md,"countWrappedRows");var Cg=i(({browse:e,selection:t,search:n,chromeMode:o="inline",...r})=>{let s=o==="inline",a=t?.itemSummary,c=t?.position,l=t?.itemKind,d=t?.detailState??"compact",m=t?.copyCapabilities,p=m?.message??!1,g=m?.toolInput??!1,x=m?.copyOnSelect??!1,h=t?.toggleDetail??!1,T=t?.navigationCapabilities?.selection??!1,w=n?.statusText,b=n?.matches?.length??0,O=n?.surface,P=r.viewportWidth??80,N=Math.max(1,P-2),K=n?.query?.trim()?"close-search":a||p||g||h||T?"clear":void 0,W=Tg({itemSummary:a,itemKind:l,position:c,detailState:d}),v=nb(()=>Is({copyMessage:p,copyToolInput:g,copyOnSelect:x,toggleDetail:h,selectionNavigation:T,matchNavigation:!!w&&b>0,dismissAction:K}),[p,g,T,h,K,b,w,x]),Z=nb(()=>{if(!s)return 0;let z=0;return e?.hintText&&(z+=Md(e.hintText,N)),W&&(z+=Md(W,N)),v&&(z+=Md(v,N)),w&&(z+=Md(w,N)),O&&(z+=1),z},[v,e?.hintText,N,s,w,O,W]),Se=typeof r.viewportRows=="number"?Math.max(1,r.viewportRows-Z):r.viewportRows;return vL(I,{flexDirection:"column",flexGrow:r.windowed?0:1,children:[s&&e?.hintText?ks(I,{paddingX:1,children:ks(C,{dimColor:!0,children:e.hintText})}):null,null,s&&(p||g||x||h||T||b>0)?ks(Sg,{copyMessage:p,copyToolInput:g,copyOnSelect:x,toggleDetail:h,selectionNavigation:T,matchNavigation:!!w&&b>0,dismissAction:K}):null,s&&w?ks(I,{paddingX:1,children:ks(C,{dimColor:!0,children:w})}):null,s?O:null,ks(Xr,{...r,viewportRows:Se})]})},"TranscriptViewport");import{jsx as ob}from"react/jsx-runtime";var bg=i(e=>ob(I,{flexDirection:"column",children:ob(ws,{...e})}),"PromptComposer");import{jsx as Yr,jsxs as Ad}from"react/jsx-runtime";import rb from"react";var ib=" \xB7 ",_d=i(({items:e=[]})=>{let t=e.filter(o=>o.label.trim().length>0),n=ee("dark");return t.length===0?null:Yr(I,{flexGrow:1,children:t.map((o,r)=>Ad(rb.Fragment,{children:[Yr(C,{color:o.accent?n.colors.accent:n.colors.dim,bold:o.accent,children:o.label}),r<t.length-1?Yr(C,{dimColor:!0,children:ib}):null]},o.id))})},"PromptFooterLeftSide"),$d=i(({items:e=[]})=>{let t=e.filter(o=>o.label.trim().length>0),n=ee("dark");return t.length===0?null:Yr(I,{justifyContent:"flex-end",children:t.map((o,r)=>Ad(rb.Fragment,{children:[Yr(C,{color:o.accent?n.colors.primary:n.colors.dim,bold:o.accent,children:o.label}),r<t.length-1?Yr(C,{dimColor:!0,children:ib}):null]},o.id))})},"PromptFooterRightSide"),Pd=i(({left:e,right:t,queued:n,stashNotice:o,notifications:r,inlineNotices:s,activityBar:a,todoSurface:c,composer:l,inlineSuggestions:d,helpSurface:m,taskBar:p,statusLine:g,inlineDialogs:x})=>Ad(I,{flexDirection:"column",children:[e||t?Ad(I,{paddingX:1,children:[Yr(I,{flexGrow:1,children:e}),t]}):null,n,o,r,s,a,c,l,d,x,m,p,g]}),"PromptFooter");import{jsx as vg,jsxs as sb}from"react/jsx-runtime";var Ig=i(({sections:e,title:t="Help"})=>{let n=ee("dark"),o=e.filter(r=>r.items.length>0);return o.length===0?null:sb(I,{flexDirection:"column",borderStyle:"round",borderColor:n.colors.accent,paddingX:1,marginTop:1,children:[vg(C,{color:n.colors.accent,bold:!0,children:t}),o.map(r=>sb(I,{flexDirection:"column",children:[vg(C,{color:n.colors.primary,bold:!0,children:r.title}),vg(C,{dimColor:!0,children:r.items.map(s=>s.label).join(" | ")})]},r.id))]})},"PromptHelpMenu");import{jsx as ab}from"react/jsx-runtime";import{createContext as lb,useContext as ub,useReducer as IL,useCallback as Lt,useMemo as kL}from"react";var RL=150;function Od(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(Od,"generateId");function Ld(e){return{...e,id:Od(),timestamp:Date.now()}}i(Ld,"createHistoryItem");function cb(e){if(e.length<=RL)return e;let t=0,n=0;for(let o=e.length-1;o>=0;o--)if(e[o]?.type==="user"&&(t++,t>50)){n=o;break}return n>0?e.slice(n):e}i(cb,"trimHistoryToRounds");function kg(e,t){return e.filter(n=>n.type==="user"&&typeof n.id=="string"&&!t.has(n.id))}i(kg,"selectUncommittedLedgerUserItems");function Rg(e){return{...e,id:Od(),startTime:Date.now()}}i(Rg,"createToolCall");function EL(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":return{...e,history:cb([...e.history,t.payload])};case"BULK_ADD_HISTORY_ITEMS":return{...e,history:cb([...e.history,...t.payload])};case"UPDATE_HISTORY_ITEM":return{...e,history:e.history.map(n=>n.id===t.payload.id?{...n,...t.payload.updates}:n)};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(n=>n.id===t.payload.id?{...n,...t.payload.updates}:n)};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{...mp,sessionId:e.sessionId};default:return e}}i(EL,"uiReducer");var db=lb(null),fb=lb(null);function Dd({children:e,initialState:t}){let[n,o]=IL(EL,{...mp,...t}),r=Lt(W=>{o({type:"SET_STREAMING_STATE",payload:W})},[]),s=Lt(W=>{o({type:"APPEND_TO_RESPONSE",payload:W})},[]),a=Lt(()=>{o({type:"CLEAR_RESPONSE"})},[]),c=Lt(W=>{let v=Ld(W);o({type:"ADD_HISTORY_ITEM",payload:v})},[]),l=Lt(W=>{W.length!==0&&o({type:"BULK_ADD_HISTORY_ITEMS",payload:W.map(Ld)})},[]),d=Lt((W,v)=>{o({type:"UPDATE_HISTORY_ITEM",payload:{id:W,updates:v}})},[]),m=Lt(()=>{o({type:"CLEAR_HISTORY"})},[]),p=Lt(W=>{let v=Rg(W);return o({type:"ADD_TOOL_CALL",payload:v}),v.id},[]),g=Lt((W,v)=>{o({type:"UPDATE_TOOL_CALL",payload:{id:W,updates:v}})},[]),x=Lt(()=>{o({type:"CLEAR_TOOL_CALLS"})},[]),h=Lt(W=>{o({type:"SET_SESSION_ID",payload:W})},[]),T=Lt(W=>{o({type:"SET_MODE",payload:W})},[]),w=Lt(W=>{o({type:"SET_PROVIDER",payload:W})},[]),b=Lt(W=>{o({type:"SET_MODEL",payload:W})},[]),O=Lt(W=>{o({type:"SET_TOKEN_USAGE",payload:W})},[]),P=Lt(W=>{o({type:"SET_ERROR",payload:W})},[]),N=Lt(W=>{o({type:"SET_LOADING",payload:W})},[]),K=kL(()=>({setStreamingState:r,appendToResponse:s,clearResponse:a,addHistoryItem:c,addHistoryItems:l,updateHistoryItem:d,clearHistory:m,addToolCall:p,updateToolCall:g,clearToolCalls:x,setSessionId:h,setMode:T,setProvider:w,setModel:b,setTokenUsage:O,setError:P,setLoading:N}),[r,s,a,c,l,d,m,p,g,x,h,T,w,b,O,P,N]);return ab(db.Provider,{value:n,children:ab(fb.Provider,{value:K,children:e})})}i(Dd,"UIStateProvider");function mc(){let e=ub(db);if(!e)throw new Error("useUIState must be used within a UIStateProvider");return e}i(mc,"useUIState");function pc(){let e=ub(fb);if(!e)throw new Error("useUIActions must be used within a UIStateProvider");return e}i(pc,"useUIActions");function mb(){let e=mc(),t=pc();return{state:e,actions:t}}i(mb,"useUI");function Eg(){return ee()}i(Eg,"useTheme");import{jsxs as sr,jsx as Nd,Fragment as ML}from"react/jsx-runtime";import{useMemo as AL}from"react";var _L=80,$L=7,PL={command:">",file:"\u{1F4C4}",history:"\u23F1",argument:"\u2022",snippet:"\u25C7",skill:"\u2605"};function LL(e,t,n){if(t<=n)return{start:0,end:t};let o=Math.floor(n/2),r=e-o,s=r+n;return r<0?(r=0,s=n):s>t&&(s=t,r=t-n),{start:r,end:s}}i(LL,"getVisibleRange");function OL({suggestion:e,isSelected:t,width:n}){let o=Eg(),r=e.icon||e.type&&PL[e.type]||"",s=r?Jn(r)+1:0,a=Jn(e.displayText||e.text),c=e.description?Jn(e.description):0,l=Math.min(a,n-s-2),d=n-s-l-3,m=Math.max(0,d),p=Ia(e.displayText||e.text,l),g=e.description?Ia(e.description,m):"";return sr(I,{children:[r&&sr(C,{color:t?o.colors.accent:o.colors.dim,children:[r," "]}),Nd(C,{color:t?o.colors.primary:o.colors.text,bold:t,children:p}),g&&sr(ML,{children:[Nd(C,{children:" "}),Nd(C,{color:o.colors.dim,children:Ia(e.description||"",m)})]}),t&&sr(C,{color:o.colors.accent,children:[" ","\u25C0"]})]})}i(OL,"SuggestionItem");function Bd({suggestions:e,selectedIndex:t,visible:n,maxVisible:o=$L,width:r=_L,showCount:s=!1}){let a=Eg();if(!n||e.length===0)return null;let{start:c,end:l}=AL(()=>LL(t,e.length,o),[t,e.length,o]),d=e.slice(c,l);return sr(I,{flexDirection:"column",marginLeft:2,children:[c>0&&sr(C,{color:a.colors.dim,children:[" ","\u25B2 ",c," more..."]}),d.map((m,p)=>{let x=c+p===t;return Nd(OL,{suggestion:m,isSelected:x,width:r},m.id)}),l<e.length&&sr(C,{color:a.colors.dim,children:[" ","\u25BC ",e.length-l," more..."]}),s&&sr(C,{color:a.colors.dim,children:[t+1,"/",e.length]})]})}i(Bd,"SuggestionsDisplay");import{jsx as Rs,jsxs as DL}from"react/jsx-runtime";var Mg=i(({reserveSpace:e,width:t,hidden:n=!1,mode:o="inline"})=>{let r=Kr(),s=ee("dark");if(n)return null;if(!r)return e?Rs(I,{height:8}):null;let{state:a,suggestions:c}=r;return a.visible&&c.length>0?o==="overlay"?DL(I,{flexDirection:"column",borderStyle:"round",borderColor:s.colors.accent,paddingX:1,marginTop:1,children:[Rs(C,{color:s.colors.accent,bold:!0,children:"Suggestions"}),Rs(Bd,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-6)})]}):Rs(I,{height:8,children:Rs(Bd,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-2)})}):e?Rs(I,{height:8}):null},"PromptSuggestionsSurface");import{jsxs as jn,jsx as $n,Fragment as Ag}from"react/jsx-runtime";import NL,{useEffect as BL,useState as HL}from"react";var Es=15,pb=Math.max(1,Es-2),_g=i(({confirm:e,request:t})=>e?jn(I,{flexDirection:"column",borderStyle:"round",borderColor:"yellow",paddingX:1,marginTop:1,width:"100%",children:[jn(C,{color:"yellow",bold:!0,children:[X("dialog.confirm")," ",e.prompt]}),e.planContent?$n(FL,{content:e.planContent}):null,e.instruction?$n(C,{dimColor:!0,children:e.instruction}):null]}):t?jn(I,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,marginTop:1,width:"100%",children:[t.kind==="select"?jn(Ag,{children:[jn(C,{color:"cyan",bold:!0,children:[X("dialog.select")," ",t.title]}),(()=>{let n=t.options??[],o=t.visibleSelectOptions??5,r=t.focusedIndex??0,s=n.length,a=0;if(s>o){let d=Math.floor(o/2);a=Math.max(0,Math.min(r-d,s-o))}let c=a,l=Math.max(0,s-a-o);return jn(Ag,{children:[c>0?$n(C,{dimColor:!0,children:X("select.more_above",{count:c})}):null,n.slice(a,a+o).map((d,m)=>{let p=a+m,g=p===r,x=t.selectedIndices?.includes(p)??!1,h=g?"\u276F ":" ",T=x?" \u2713":"",w=d.description?` - ${d.description}`:"";return $n(C,{color:g?"cyan":void 0,dimColor:!g,children:`${h}${d.label}${w}${T}`},`${d.value}-${p}`)}),l>0?$n(C,{dimColor:!0,children:X("select.more_below",{count:l})}):null]})})(),$n(C,{dimColor:!0,children:t.multiSelect?X("select.multiselect_hint"):X("select.navigate_hint")})]}):jn(Ag,{children:[jn(C,{color:"cyan",bold:!0,children:[X("dialog.input")," ",t.prompt]}),t.defaultValue!==void 0?$n(C,{dimColor:!0,children:`${X("input.default")} ${t.defaultValue}`}):null,$n(C,{dimColor:!0,children:`${X("input.value")} ${t.buffer||X("input.type_response")}`}),$n(C,{dimColor:!0,children:X("select.confirm_hint")})]}),t.error?$n(C,{color:"red",children:t.error}):null]}):null,"DialogSurface"),FL=i(({content:e})=>{let t=NL.useMemo(()=>e.split(`
346
- `),[e]),n=t.length,o=n>Es,[r,s]=HL(0);BL(()=>{s(d=>{let m=Math.max(0,n-Es);return d>m?m:d})},[n]),vu((d,m)=>{if(!o)return;let p=Math.max(0,n-Es);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-pb)):m.pageDown&&s(g=>Math.min(p,g+pb))},{isActive:!0});let a=t.slice(r,r+Es),c=r,l=Math.max(0,n-r-Es);return jn(I,{flexDirection:"column",marginTop:1,children:[o&&c>0?jn(C,{dimColor:!0,children:["\u2026 ",c," more line",c===1?"":"s"," above"]}):null,a.map((d,m)=>$n(C,{children:d},`plan-line-${r+m}`)),o&&l>0?jn(C,{dimColor:!0,children:["\u2026 ",l," more line",l===1?"":"s"," below"]}):null,o?$n(C,{dimColor:!0,children:"PgUp/PgDn/\u2191\u2193 to scroll"}):null]})},"PlanScrollPanel");import{jsxs as gc,jsx as WL}from"react/jsx-runtime";function gb(e){let t=e.replace(/\s+/g," ").trim();return t.length<=72?t:`${t.slice(0,69)}...`}i(gb,"normalizePendingPreview");function hb(e){if(e.length===0)return;let t=gb(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(hb,"formatPendingInputsSummary");function $g(e){if(e.length===0)return[];let t=e.length;return e.map((n,o)=>({index:o+1,total:t,preview:gb(n)}))}i($g,"formatPendingInputsLines");function yb(e){let t=$g(e);return t.length===0?void 0:[...t.map(r=>`\u23F3 [${r.index}/${r.total}] ${r.preview}`)," \u2191 pull all into editor \xB7 Esc drops latest"].join(`
347
- `)}i(yb,"formatPendingInputsBudgetText");var Pg=i(({pendingInputs:e})=>{let t=$g(e);if(t.length===0)return null;let n=ee("dark");return gc(I,{flexDirection:"column",children:[t.map(o=>gc(I,{children:[gc(C,{color:n.colors.hint,children:["\u23F3"," "]}),gc(C,{color:n.colors.dim,children:["[",o.index,"/",o.total,"] ",o.preview]})]},o.index)),WL(I,{children:gc(C,{color:n.colors.dim,children:[" ","\u2191 pull all into editor \xB7 Esc drops latest"]})})]})},"QueuedCommandsSurface");import{jsx as xb}from"react/jsx-runtime";function UL(e,t){switch(e){case"warning":return t.warning;case"accent":return t.accent;default:return t.dim}}i(UL,"resolveNotificationColor");var Hd=i(({notifications:e})=>{let t=e.filter(o=>o.text.trim().length>0),n=ee("dark");return t.length===0?null:xb(I,{flexDirection:"column",paddingX:1,children:t.map(o=>xb(C,{color:UL(o.tone,n.colors),children:o.text},o.id))})},"NotificationsSurface");import{jsx as wb}from"react/jsx-runtime";var Lg=i(({notices:e})=>{let t=e.filter(o=>o.trim().length>0);if(t.length===0)return null;let n=ee("dark");return wb(I,{flexDirection:"column",paddingX:1,children:t.map((o,r)=>wb(C,{color:n.colors.dim,children:o},`${o}-${r}`))})},"StatusNoticesSurface");import{jsxs as Sb,jsx as jL}from"react/jsx-runtime";var Fd=i(({text:e})=>{let t=e?.trim();if(!t)return null;let n=ee("dark");return Sb(I,{paddingX:1,children:[Sb(C,{color:n.colors.hint,children:["\u22EF"," "]}),jL(C,{color:n.colors.dim,children:t})]})},"StashNotice");import{jsx as qr,jsxs as GL}from"react/jsx-runtime";function Tb({text:e,accent:t=!1,selected:n=!1}){let o=ee("dark");return qr(I,{marginRight:1,children:qr(C,{color:t?o.colors.accent:o.colors.primary,bold:n||t,children:`[ ${e} ]`})})}i(Tb,"Pill");var Wd=i(({items:e,overflowLabel:t,ctaHint:n,showSpinner:o=!1})=>{let r=e.filter(s=>s.label.trim().length>0);return r.length===0&&!t&&!n&&!o?null:GL(I,{flexDirection:"row",paddingX:1,children:[o?qr(I,{marginRight:1,children:qr(_n,{})}):null,r.map(s=>qr(Tb,{text:s.hint?`${s.label} (${s.hint})`:s.label,accent:s.accent,selected:s.selected},s.id)),t?qr(Tb,{text:t}):null,n?qr(C,{dimColor:!0,children:n}):null]})},"BackgroundTaskBar");import Cb,{createContext as vb,useContext as Ib,useReducer as KL,useCallback as Ke,useRef as VL,useEffect as bb}from"react";function zL(e){return e.agentId===void 0&&e.priority==="user"&&e.mode==="prompt"}i(zL,"isMainThreadPrompt");function Ng(){return Cn().getSnapshot().filter(zL)}i(Ng,"getMainThreadPrompts");function Og(){return Ng().map(e=>e.content)}i(Og,"getMainThreadPromptContents");var Dg={state:dn.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 Bg(){let e={...Dg,pendingInputs:Og()},t=new Set,n="",o="",r=0,s=null,a=!1,c=80,l=i(()=>{for(let h of t)h(e)},"notify"),d=i(()=>{let h=Og();if(h.length===e.pendingInputs.length){let T=!0;for(let w=0;w<h.length;w++)if(h[w]!==e.pendingInputs[w]){T=!1;break}if(T)return}e={...e,pendingInputs:h},l()},"syncReactStateFromQueue"),m=Cn().subscribe(()=>{d()}),p=i(()=>Cn().dequeue({maxPriority:"user",mode:"prompt"}).map(T=>T.content),"drainOurSlice"),g=i(()=>{if(s&&(clearTimeout(s),s=null),n||o||r>0){let T=e.thinkingContent+o,w=o?T.length:e.thinkingCharCount+r;e={...e,currentResponse:e.currentResponse+n,thinkingContent:T,thinkingCharCount:w,...o||r>0?{isThinking:!0}:{}},n="",o="",r=0,l()}},"flushPendingUpdates"),x=i(()=>{s||(s=setTimeout(g,c))},"scheduleFlush");return{getState:i(()=>e,"getState"),setState:i(h=>{g(),e={...e,state:h},l()},"setState"),startStreaming:i(()=>{a=!1,n="",o="",r=0,s&&(clearTimeout(s),s=null),e={...e,state:dn.Responding,currentResponse:"",abortController:new AbortController,error:void 0,roundStartedAt:Date.now()},l()},"startStreaming"),stopStreaming:i(()=>{g(),e={...e,state:dn.Idle,abortController:void 0,roundStartedAt:null},l()},"stopStreaming"),appendResponse:i(h=>{a||(n+=h,x())},"appendResponse"),clearResponse:i(()=>{g(),e={...e,currentResponse:""},l()},"clearResponse"),setError:i(h=>{g(),e={...e,error:h,state:h?dn.Idle:e.state},l()},"setError"),abort:i(h=>{a=!0,g(),e.abortController?.abort(),n="",o="",r=0,s&&(clearTimeout(s),s=null),h?.preservePendingInputs||p(),e={...e,state:dn.Idle,abortController:void 0,roundStartedAt:null},l()},"abort"),reset:i(()=>{a=!0,g(),e.abortController?.abort(),n="",o="",r=0,s&&(clearTimeout(s),s=null),p(),e={...Dg,pendingInputs:Og()},a=!1,l()},"reset"),isStreaming:i(()=>e.state===dn.Responding||e.state===dn.WaitingForConfirmation,"isStreaming"),subscribe:i(h=>(t.add(h),()=>{t.delete(h)}),"subscribe"),startThinking:i(()=>{g(),e={...e,isThinking:!0,thinkingCharCount:0,thinkingContent:""},l()},"startThinking"),appendThinkingChars:i(h=>{a||(r+=h,x())},"appendThinkingChars"),appendThinkingContent:i(h=>{a||(o+=h,x())},"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(h=>{g(),e={...e,currentTool:h,toolInputCharCount:0,toolInputContent:""},l()},"setCurrentTool"),appendToolInputChars:i(h=>{e={...e,toolInputCharCount:e.toolInputCharCount+h},l()},"appendToolInputChars"),appendToolInputContent:i(h=>{e.toolInputContent.length<240&&(e={...e,toolInputContent:(e.toolInputContent+h).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+o,"getThinkingContent"),startNewIteration:i(h=>{g(),e.thinkingContent||e.currentResponse?e={...e,thinkingContent:"",thinkingCharCount:0,currentResponse:"",isThinking:!1,currentTool:void 0,toolInputCharCount:0,toolInputContent:"",currentIteration:h}:e={...e,currentIteration:h},l()},"startNewIteration"),clearIterationHistory:i(()=>{g(),e={...e,iterationHistory:[],currentIteration:1,maxIter:Dg.maxIter,thinkingContent:"",thinkingCharCount:0,currentResponse:"",currentTool:void 0,toolInputCharCount:0,toolInputContent:""},l()},"clearIterationHistory"),setMaxIter:i(h=>{g(),e={...e,maxIter:h},l()},"setMaxIter"),startCompacting:i(()=>{g(),e={...e,isCompacting:!0},l()},"startCompacting"),stopCompacting:i(()=>{g(),e={...e,isCompacting:!1},l()},"stopCompacting"),addPendingInput:i(h=>{let T=h.trim();T&&(Ng().length>=5||(g(),Cn().enqueue({priority:"user",mode:"prompt",content:T})))},"addPendingInput"),removeLastPendingInput:i(()=>{let h=Ng(),T=h[h.length-1];T&&(g(),Cn().dequeue({maxPriority:"user",mode:"prompt",id:T.id}))},"removeLastPendingInput"),shiftPendingInput:i(()=>(g(),Cn().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(Bg,"createStreamingManager");var kb=vb(null),Rb=vb(null);function Ud({children:e,onStateChange:t}){let n=VL(Bg()),[,o]=KL(le=>le+1,0);bb(()=>n.current.subscribe(Ae=>{o(),t?.(Ae)}),[t]),bb(()=>{let le=n.current;return()=>{le.dispose()}},[]);let r=Ke(()=>{n.current.startStreaming()},[]),s=Ke(()=>{n.current.stopStreaming()},[]),a=Ke(le=>{n.current.appendResponse(le)},[]),c=Ke(()=>{n.current.clearResponse()},[]),l=Ke(le=>{n.current.setError(le)},[]),d=Ke(le=>{n.current.abort(le)},[]),m=Ke(()=>{n.current.reset()},[]),p=Ke(()=>{n.current.startThinking()},[]),g=Ke(le=>{n.current.appendThinkingChars(le)},[]),x=Ke(le=>{n.current.appendThinkingContent(le)},[]),h=Ke(()=>{n.current.stopThinking()},[]),T=Ke(()=>{n.current.clearThinkingContent()},[]),w=Ke(le=>{n.current.setCurrentTool(le)},[]),b=Ke(le=>{n.current.appendToolInputChars(le)},[]),O=Ke(le=>{n.current.appendToolInputContent(le)},[]),P=Ke(()=>{n.current.clearToolInputContent()},[]),N=Ke(()=>n.current.getSignal(),[]),K=Ke(()=>n.current.getFullResponse(),[]),W=Ke(()=>n.current.getThinkingContent(),[]),v=Ke(le=>{n.current.startNewIteration(le)},[]),Z=Ke(()=>{n.current.clearIterationHistory()},[]),Se=Ke(le=>{n.current.setMaxIter(le)},[]),z=Ke(()=>{n.current.startCompacting()},[]),re=Ke(()=>{n.current.stopCompacting()},[]),A=Ke(le=>{n.current.addPendingInput(le)},[]),k=Ke(()=>{n.current.removeLastPendingInput()},[]),_=Ke(()=>n.current.shiftPendingInput(),[]),be=Ke(()=>{n.current.clearPendingInputs()},[]),Pe=Ke(()=>n.current.consumePendingInputs(),[]),ye={startStreaming:r,stopStreaming:s,appendResponse:a,clearResponse:c,setError:l,abort:d,reset:m,startThinking:p,appendThinkingChars:g,appendThinkingContent:x,stopThinking:h,clearThinkingContent:T,setCurrentTool:w,appendToolInputChars:b,appendToolInputContent:O,clearToolInputContent:P,getSignal:N,getFullResponse:K,getThinkingContent:W,startNewIteration:v,clearIterationHistory:Z,setMaxIter:Se,startCompacting:z,stopCompacting:re,addPendingInput:A,removeLastPendingInput:k,shiftPendingInput:_,clearPendingInputs:be,consumePendingInputs:Pe};return Cb.createElement(kb.Provider,{value:n.current.getState()},Cb.createElement(Rb.Provider,{value:ye},e))}i(Ud,"StreamingProvider");function yc(){let e=Ib(kb);if(!e)throw new Error("useStreamingState must be used within a StreamingProvider");return e}i(yc,"useStreamingState");function xc(){let e=Ib(Rb);if(!e)throw new Error("useStreamingActions must be used within a StreamingProvider");return e}i(xc,"useStreamingActions");function Eb(){let e=yc(),t=xc(),n=e.state===dn.Responding||e.state===dn.WaitingForConfirmation;return{state:e,actions:t,isStreaming:n}}i(Eb,"useStreaming");import{useCallback as XL,useRef as YL}from"react";var qL=500;function QL(e={}){let{onKey:t,onEsc:n,onCtrlC:o,enabled:r=!0}=e,s=YL(0),{exit:a}=qo(),c=XL(l=>{if(!r)return!1;if(l.name==="escape"){let d=Date.now(),m=d-s.current<qL;return s.current=d,m&&(l.name="escape-escape"),n?.(),t?.(l),!0}return l.ctrl&&l.name==="c"?(o?.(),t?.(l),!0):l.ctrl&&l.name==="d"?(a(),!0):(t?.(l),!1)},[r,a,o,n,t]);return fn(c,{isActive:r}),{lastEscTime:s.current}}i(QL,"useKeypress");function JL(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(JL,"createKeyMatcher");import{useCallback as ZL,useSyncExternalStore as e1}from"react";function t1(e){return e.agentId===void 0&&e.priority==="user"&&e.mode==="prompt"}i(t1,"isMainThreadPrompt");var Hg=null,jd=Object.freeze([]);function Mb(){let e=Cn().getSnapshot();return e===Hg||(Hg=e,jd=Object.freeze(e.filter(t1))),jd}i(Mb,"getQueueSliceSnapshot");function Ab(){let e=ZL(t=>Cn().subscribe(t),[]);return e1(e,Mb,Mb)}i(Ab,"useQueuedPrompts");function n1(){return Ab().map(t=>t.content)}i(n1,"useQueuedPromptContents");function o1(){Hg=null,jd=Object.freeze([])}i(o1,"_resetQueuedPromptsCacheForTests");async function wc(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??Sc(),title:"",gitRoot:e.gitRoot,runtimeInfo:e.runtimeInfo,createdAt:new Date().toISOString(),lastAccessed:new Date().toISOString()}}i(wc,"createInteractiveContext");function Sc(){let e=new Date,t=e.toISOString().split("T")[0].replace(/-/g,""),n=e.toTimeString().split(" ")[0].replace(/:/g,"");return`${t}_${n}`}i(Sc,"generateSessionId");function ao(e){e.lastAccessed=new Date().toISOString()}i(ao,"touchContext");async function Tc(e){let t=await Gx({userKodaxDir:Rx(),projectRoot:e.projectRoot}),n;return{getGuardrail:i(()=>n||(n=Kx({rules:t.merged,claudeMd:Ex(e.getAgentsFiles()),getToolProjection:i(r=>(Ul(r)??Px(r))?.toClassifierInput,"getToolProjection"),resolveProvider:i(r=>{try{return Cr(r)}catch{return}},"resolveProvider"),defaultProvider:e.getCurrentProviderName(),defaultModel:e.getCurrentModel()??"",getDefaultProvider:e.getCurrentProviderName,getDefaultModel:i(()=>{let r=e.getCurrentModel();return r||(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(Tc,"bootstrapAutoMode");var Ms=class{static{i(this,"MemorySessionStorage")}sessions=new Map;async save(t,n){let o=this.sessions.get(t);this.sessions.set(t,{...structuredClone(n),scope:n.scope??o?.scope??"user",uiHistory:n.uiHistory??o?.uiHistory,extensionState:n.extensionState??o?.extensionState,artifactLedger:n.artifactLedger??o?.artifactLedger,extensionRecords:n.extensionRecords??o?.extensionRecords,lineage:bn(n.messages,n.lineage??o?.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,o){let r=this.sessions.get(t);if(!r?.lineage)return null;let s=$i(r.lineage,n,o);if(!s)return null;let a={...structuredClone(r),messages:kt(s),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async setLabel(t,n,o){let r=this.sessions.get(t);if(!r?.lineage)return null;let s=Pi(r.lineage,n,o);if(!s)return null;let a={...structuredClone(r),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async fork(t,n,o){let r=this.sessions.get(t);if(!r?.lineage)return null;let s=Di(r.lineage,n);if(!s)return null;let a=o?.sessionId??await _i(),c={messages:kt(s),title:o?.title??r.title,gitRoot:r.gitRoot,uiHistory:r.uiHistory?r.uiHistory.map(l=>({...l})):void 0,extensionState:r.extensionState?structuredClone(r.extensionState):void 0,artifactLedger:r.artifactLedger?structuredClone(r.artifactLedger):void 0,extensionRecords:r.extensionRecords?structuredClone(r.extensionRecords):void 0,lineage:s};return this.sessions.set(a,c),{sessionId:a,data:structuredClone(c)}}async rewind(t,n){let o=this.sessions.get(t);if(!o?.lineage)return null;let r=n??Li(o.lineage);if(!r)return null;let s=Oi(o.lineage,r);if(!s)return null;let a={...o,messages:kt(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,o])=>({id:n,title:o.title,msgCount:o.lineage?Ir(o.lineage):o.messages.length}))}async delete(t){this.sessions.delete(t)}async deleteAll(t){this.sessions.clear()}};function r1(){return new Ms}i(r1,"createMemorySessionStorage");import*as _b from"child_process";import*as $b from"util";import Gd from"chalk";var i1=$b.promisify(_b.exec),s1={maxBuffer:1024*1024,timeout:3e4,maxOutputLength:8e3,maxErrorLength:4e3};async function Kd(e,t={}){let n={...s1,...t},o=e.trim(),r=bp(o);if(r)return r.startsWith("[Blocked]")&&(console.log(Gd.yellow(`
348
- ${r}`)),console.log()),r;try{console.log(Gd.dim(`
349
- [Executing: ${o}]`));let{stdout:s,stderr:a}=await i1(o,{cwd:n.cwd,maxBuffer:n.maxBuffer,timeout:n.timeout,windowsHide:!0}),c="";return s&&(c+=s),a&&(c+=(c?`
350
- `:"")+`[stderr] ${a}`),c.length>n.maxOutputLength&&(c=c.slice(0,n.maxOutputLength)+`
351
- ...[output truncated]`),console.log(Gd.dim(c||"[No output]")),console.log(),`[Shell command executed: ${o}]
352
-
353
- Output:
354
- ${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)+`
355
- ...[error truncated]`),console.log(Gd.red(`
356
- [Shell Error: ${c}]`)),console.log(),`[Shell command failed: ${o}]
357
-
358
- Error: ${c}`}}i(Kd,"executeShellCommand");async function Fg(e,t={}){if(e.startsWith("!")){let n=e.slice(1).trim();return Kd(n,t)}return e}i(Fg,"processSpecialSyntax");function a1(e){return e.trim().startsWith("!")}i(a1,"isShellCommand");function c1(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell:")}i(c1,"isShellCommandSuccess");function Cc(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell command failed:")||e.startsWith("[Shell:")||e.startsWith("[Blocked]")}i(Cc,"isShellCommandHandled");function Vd(e,t,n){let o=e.trim();return{type:"info",icon:"\u23F3",text:/\bretry\s+\d+\/\d+\b/i.test(o)||/\b\d+\/\d+\b/.test(o)?o:`${o} \xB7 retry ${t}/${n}`}}i(Vd,"createRetryHistoryItem");function Wg(e,t,n,o){e(Vd(t,n,o))}i(Wg,"emitRetryHistoryItem");function zd(e){let{recoveryAction:t,attempt:n,maxAttempts:o,delayMs:r,stage:s,fallbackUsed:a}=e,c=Math.round(r/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 d=t==="stable_boundary_retry"?"recovering":"retrying";return{type:"info",icon:"\u23F3",text:c>0?`${l} \xB7 ${d} ${n}/${o} in ${c}s`:`${l} \xB7 ${d} ${n}/${o}`}}i(zd,"createRecoveryHistoryItem");function Ug(e,t){e(zd(t))}i(Ug,"emitRecoveryHistoryItem");import{jsx as se,jsxs as Yt,Fragment as oD}from"react/jsx-runtime";import O0,{useState as We,useCallback as V,useRef as he,useEffect as He,useMemo as me}from"react";import{jsx as co,Fragment as l1,jsxs as Xd}from"react/jsx-runtime";var jg=" | ",Pb=i(({searchActive:e=!1,selectionActive:t=!1,showAllActive:n=!1,searchQuery:o="",searchCurrent:r=0,searchCount:s=0,searchDetailText:a,pendingLiveUpdates:c=0,secondaryText:l,noticeText:d})=>{let m=ee("dark"),p=o.trim(),g=a?.trim(),x=l?.trim(),h=d?.trim(),T=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,O=e&&s>0?`${Math.max(0,r)}/${s}`:void 0,P=e&&g||x,N=!!(P||h);return Xd(I,{flexDirection:"column",children:[Xd(I,{paddingX:1,children:[co(C,{color:m.colors.dim,children:T}),co(C,{dimColor:!0,children:jg}),co(C,{color:m.colors.dim,children:w}),O||b?co(I,{flexGrow:1}):null,O?Xd(l1,{children:[co(C,{dimColor:!0,children:O}),b?co(C,{dimColor:!0,children:jg}):null]}):null,b?co(C,{color:m.colors.accent,bold:!0,children:b}):null]}),N?Xd(I,{paddingX:1,children:[P?co(C,{color:m.colors.dim,children:P}):null,P&&h?co(C,{dimColor:!0,children:jg}):null,h?co(C,{color:m.colors.accent,bold:!0,children:h}):null]}):null]})},"TranscriptModeFooter");import{jsx as u1,jsxs as d1}from"react/jsx-runtime";var Lb=i(({banner:e,...t})=>d1(I,{flexDirection:"column",children:[e,u1(Xr,{...t,animateSpinners:!1,showFullThinking:!1,showDetailedTools:!1,showLiveProgressRows:!1})]}),"PromptTranscriptSurface");import{jsx as f1,jsxs as m1}from"react/jsx-runtime";var Ob=i(({banner:e,windowed:t=!1,showDetailedTools:n=!1,showAllContent:o=!1,...r})=>m1(I,{flexDirection:"column",children:[e,f1(Cg,{...r,chromeMode:"hidden",windowed:t,showFullThinking:!0,showDetailedTools:n,showAllContent:o,showLiveProgressRows:!0})]}),"TranscriptModeSurface");import{jsxs as p1,jsx as g1}from"react/jsx-runtime";var Db=i(({text:e,tone:t="success"})=>{let n=e?.trim();if(!n)return null;let o=ee("dark"),r=t==="warning"?o.colors.warning:o.colors.accent,s=t==="warning"?"!":"\u2713";return g1(I,{paddingX:1,backgroundColor:o.colors.inputBackground,children:p1(C,{color:r,children:[s," ",n]})})},"ClipboardToastSurface");import{jsx as ar,Fragment as h1,jsxs as Gg}from"react/jsx-runtime";var y1=" \u23BF ";function x1(e){let t=ee("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(x1,"resolveSymbolColor");var w1=i(({row:e})=>{let t=x1(e.symbolColor),n=e.kind!=="item";return Gg(I,{flexDirection:"row",children:[ar(C,{color:t,bold:e.isActive,children:e.symbol}),ar(C,{children:" "}),ar(C,{dimColor:n,bold:e.isActive,strikethrough:e.isStrikethrough,children:e.text}),e.evaluatorBadge?Gg(h1,{children:[ar(C,{children:" "}),ar(C,{dimColor:!0,children:e.evaluatorBadge})]}):null]})},"TodoListRow"),Nb=i(({viewModel:e})=>{if(!e.shouldRender||e.rows.length===0)return null;let t=ee("dark").colors.dim;return Gg(I,{flexDirection:"row",children:[ar(C,{color:t,children:y1}),ar(I,{flexDirection:"column",flexGrow:1,children:e.rows.map((n,o)=>ar(w1,{row:n},`${n.kind}-${n.id??o}`))})]})},"TodoListSurface");function S1(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(S1,"symbolForStatus");function T1(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(T1,"pickAnchorIndex");function C1(e){let{symbol:t,color:n}=S1(e.status),o=e.status==="failed"&&e.note?`${e.subject} (${e.note})`:e.subject,r=e.status==="cancelled",s=e.evaluator?`[${e.evaluator}]`:void 0;return{kind:"item",id:e.id,symbol:t,symbolColor:n,text:o,isActive:e.status==="in_progress",isStrikethrough:r,evaluatorBadge:s}}i(C1,"buildItemRow");function b1(e){return{kind:"summary_done",symbol:"\u2713",symbolColor:"green",text:`${e} done`,isActive:!1}}i(b1,"buildDoneSummary");function Kg(e){return{kind:"summary_pending",symbol:"\u2610",symbolColor:"dim",text:`+${e} more`,isActive:!1}}i(Kg,"buildPendingSummary");function v1(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].status==="failed"&&!t.has(n))return n;return-1}i(v1,"pickFailedToPromote");function I1(e,t){let n=e.length;if(n===0)return{visibleIdx:[],hiddenCompletedCount:0,hiddenPendingCount:0};let o=4,r=Math.max(0,t-1),s=Math.min(n,r+o);s-r<o&&r>0&&(r=Math.max(0,s-o)),s-r<o&&s<n&&(s=Math.min(n,r+o));let a=[];for(let d=r;d<s;d++)a.push(d);let c=0,l=0;for(let d=0;d<r;d++)e[d].status==="completed"&&c++;for(let d=s;d<n;d++){let m=e[d].status;(m==="pending"||m==="in_progress")&&l++}return{visibleIdx:a,hiddenCompletedCount:c,hiddenPendingCount:l}}i(I1,"decideWindow");function Bb(e,t){let n=e.length,o=e.reduce((x,h)=>h.status==="completed"?x+1:x,0),r=i((x,h)=>({shouldRender:h,rows:x,completedCount:o,totalCount:n}),"baseVm");if(n<1)return r([],!1);t.now,t.lastAllCompletedAt;let s=T1(e),a=I1(e,s),c=new Set(a.visibleIdx),l=v1(e,c),d=[...a.visibleIdx],m=a.hiddenCompletedCount,p=a.hiddenPendingCount;if(l>=0){let x=-1;for(let h=d.length-1;h>=0;h--){let T=d[h];if(T!==s&&e[T].status==="pending"){x=h;break}}if(x>=0){let h=d[x];d[x]=l,p+=1,d.sort((b,O)=>b-O);let T=d[0],w=0;for(let b=0;b<T;b++)e[b].status==="completed"&&w++;m=w}}let g=[];m>0&&g.push(b1(m));for(let x of d)g.push(C1(e[x]));if(p>0&&g.push(Kg(p)),g.length>6)for(;g.length>6;){let x=!1;for(let h=g.length-1;h>=0;h--){let T=g[h];if(T.kind==="item"&&!T.isActive){g.splice(h,1);let w=g[g.length-1];if(w&&w.kind==="summary_pending"){let b=/\+(\d+) more/.exec(w.text),O=b?Number.parseInt(b[1],10)+1:1;g[g.length-1]=Kg(O)}else g.push(Kg(1));x=!0;break}}if(!x)break}return r(g,!0)}i(Bb,"buildTodoPlanViewModel");function Hb(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=[],o=[...t,...n].map(r=>r.label.trim()).filter(Boolean).join(" | ");return{leftItems:t,rightItems:n,summary:o}}i(Hb,"buildFooterHeaderViewModel");function k1(e){return Gl(e.provider,e.model,"off",{longRunning:!0})}i(k1,"evaluateSessionTransitionPolicy");function R1(e,t){let n=t.snapshot.model?`${t.snapshot.provider}:${t.snapshot.model}`:t.snapshot.provider,o=[`[Provider Guardrail] ${e} on ${n}: ${t.summary}`],r=t.issues[0]?.detail;return r&&o.push(` ${r}`),t.status==="block"?o.push(" Switch to a provider with durable full-history session semantics before continuing."):t.status==="warn"&&o.push(" Continuing with degraded session semantics."),o}i(R1,"formatSessionTransitionGuardMessage");function Qr(e,t,n){let o=k1(e);if(!o||o.status==="allow")return!0;let[r,...s]=R1(t,o);return n(o.status,r,s),o.status!=="block"}i(Qr,"enforceSessionTransitionGuard");function E1(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(E1,"summarizeEntry");function Fb(e,t,n,o){let r=t?n?"\\- ":"|- ":"",s=e.active?"*":" ",a=e.entry.id.slice(0,12),c=e.label?` [${e.label}]`:"";o.push(`${t}${r}${s} ${a} ${E1(e.entry)}${c}`);let l=t+(t?n?" ":"| ":"");e.children.forEach((d,m)=>{Fb(d,l,m===e.children.length-1,o)})}i(Fb,"formatNode");function Yd(e){let t=[];return e.forEach((n,o)=>{Fb(n,"",o===e.length-1,t)}),t}i(Yd,"formatSessionTree");var M1=100,A1=/\b(curl|wget|invoke-webrequest|invoke-restmethod|iwr|irm)\b/i,Ub=/\b(rm|del|erase|remove-item|rmdir|rd|git clean)\b/i,jb=/\b(npm|pnpm|yarn|pip|choco|winget)\s+(install|add|remove|uninstall|update|upgrade|ci)\b/i,Gb=/\b(set-content|add-content|out-file|new-item|copy-item|move-item|rename-item|cp|mv|copy|move|ren|touch)\b/i;function As(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i(As,"readString");function jt(e,t,n){n&&e.push({label:t,value:n})}i(jt,"pushField");function _1(e){return e.replace(/\s+/g," ").trim()}i(_1,"normalizeWhitespace");function $1(e,t){if(e.length<=t)return e;let n=Math.ceil((t-3)/2),o=Math.floor((t-3)/2);return`${e.slice(0,n)}...${e.slice(e.length-o)}`}i($1,"truncateMiddle");function P1(e){let t=e;return t=t.replace(/\b(authorization\s*:\s*bearer\s+)([^\s'"]+)/gi,(n,o)=>`${o}[REDACTED]`),t=t.replace(/\b((?:authorization|cookie)\s*:\s*)([^'"]+)/gi,(n,o)=>`${o}[REDACTED]`),t=t.replace(/\b(bearer\s+)([^\s'"]+)/gi,(n,o)=>`${o}[REDACTED]`),t=t.replace(/\b(api[_-]?key|access[_-]?token|refresh[_-]?token|token|secret|password|passwd|cookie|session)\b(\s*[:=]\s*)(['"]?)([^'"\s]+)(\3)/gi,(n,o,r,s)=>`${o}${r}${s}[REDACTED]${s}`),t=t.replace(/(--(?:api-key|token|secret|password|cookie)\s+)(\S+)/gi,(n,o)=>`${o}[REDACTED]`),t=t.replace(/((?:-u|--user)\s+)(\S+)/gi,(n,o)=>`${o}[REDACTED]`),t}i(P1,"maskSensitiveSegments");function Wb(e){return $1(P1(_1(e)),M1)}i(Wb,"summarizeCommand");function L1(e){return Wn(e)?X("intent.read"):Ub.test(e)?X("intent.delete"):jb.test(e)?X("intent.deps"):Un(e)||Gb.test(e)?X("intent.modify"):X("intent.execute")}i(L1,"classifyShellIntent");function O1(e){let t=[];return Ub.test(e)?t.push(X("risk.destructive")):jb.test(e)?t.push(X("risk.deps")):Un(e)||Gb.test(e)?t.push(X("risk.modify")):Wn(e)||t.push(X("risk.unknown")),A1.test(e)&&t.push(X("risk.network")),t}i(O1,"classifyShellRisks");function D1(e){if(Array.isArray(e))return e.filter(t=>typeof t=="object"&&t!==null&&typeof t.kind=="string")}i(D1,"readSignals");function N1(e){if(e){if(e.some(t=>t.kind==="protected_path"))return X("scope.protected");if(e.some(t=>t.kind==="outside_project"||t.kind==="shell_redirect_outside"))return X("scope.outside")}}i(N1,"scopeFromSignals");function B1(e){if(e._outsideProject===!0)return X("scope.outside");if(e._alwaysConfirm===!0)return X("scope.protected")}i(B1,"scopeFromMarkers");function H1(e){if(!e)return[];let t=[],n=e.some(r=>r.kind==="dangerous_pattern"&&r.severity==="high"),o=e.some(r=>r.kind==="dangerous_pattern"&&r.severity==="medium");return n?t.push(X("risk.destructive")):o&&t.push(X("risk.modify")),e.some(r=>r.kind==="network")&&t.push(X("risk.network")),e.some(r=>r.kind==="package_install")&&t.push(X("risk.deps")),t}i(H1,"risksFromSignals");var F1={Reason:"field.reason",Intent:"field.intent",Target:"field.target",Scope:"field.scope",Risk:"field.risk",Summary:"field.summary"};function W1(e){return X(F1[e])}i(W1,"localizeFieldLabel");function _s(e,t){return{title:e,fields:t,details:t.map(n=>`${W1(n.label)}: ${n.value}`)}}i(_s,"buildDisplayFromFields");function qd(e,t){if(e==="confirm"){let l=As(t._message);if(l)return _s(l,[])}if(e==="exit_plan_mode"){let l=As(t.plan),d="Approve plan? (exits plan mode \u2192 accept-edits)";return l?{title:d,fields:[],details:l.split(`
359
- `)}:_s(d,[])}let n=[],o=As(t.path),r=As(t.command),s=As(t._reason)??As(t.justification),a=D1(t._classifierSignals),c=N1(a)??B1(t);switch(jt(n,"Reason",s),e){case"bash":case"shell_command":{if(r){jt(n,"Intent",L1(r)),jt(n,"Scope",c);let l=H1(a),d=l.length>0?l:O1(r);d.length>0&&jt(n,"Risk",d.join("; ")),jt(n,"Summary",Wb(r))}else jt(n,"Scope",c);return _s(e==="bash"?X("tool.bash.title"):X("tool.shell.title"),n)}case"write":return jt(n,"Intent",X("intent.write_file")),jt(n,"Target",o),jt(n,"Scope",c),_s(X("tool.write.title"),n);case"edit":return jt(n,"Intent",X("intent.edit_file")),jt(n,"Target",o),jt(n,"Scope",c),_s(X("tool.edit.title"),n);default:return jt(n,"Intent",X("intent.use_tool",{tool:e})),jt(n,"Target",o),jt(n,"Scope",c),r&&jt(n,"Summary",Wb(r)),_s(X("tool.generic.title",{tool:e}),n)}}i(qd,"buildToolConfirmationDisplay");function Kb(e,t){let n=qd(e,t);return n.details.length>0?`${n.title}
360
- ${n.details.join(`
361
- `)}`:n.title}i(Kb,"buildToolConfirmationPrompt");function Vb(e,t=240){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(Vb,"truncateToolPreview");function zb(e,t=800){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(zb,"truncateToolOutputPreview");function Vg(e){return e.replace(/^\[[^\]]+\]\s+/,"").replace(/^[A-Za-z][A-Za-z0-9_-]*:\s*/,"").trim()}i(Vg,"stripToolRolePrefix");function zg(e){return Vg(e).toLowerCase()}i(zg,"normalizeToolNameForMatch");function Xg(e){return e===`[${X("managed.completed")}]`||e===`[${X("managed.completed.blocked")}]`||e===`[${X("managed.completed.continuation")}]`}i(Xg,"isCompletionTranscriptItem");function Qd(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(Qd,"formatManagedLiveActivityLabel");function _o(e,t){return Qd(`[Tools] ${ud(e)}`,t)??`[Tools] ${ud(e)}`}i(_o,"formatManagedLiveToolLabel");function Jd(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(Jd,"areManagedLiveItemsEquivalent");function Xb(e){return e==="Task completed"?X("managed.completed"):e==="Task needs continuation"?X("managed.completed.continuation"):e==="Task ended: blocked"?X("managed.completed.blocked"):e==="Task ended: needs_continuation"?X("managed.completed.continuation"):e.startsWith("Task ended:")?X("managed.completed.blocked"):e}i(Xb,"localizeManagedCompletionSummary");function U1(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(U1,"formatHarnessProfileShort");function Yb(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(Yb,"mergeLiveThinkingContent");function $s(e,t){let n=t?.expanded?e.detailNote??e.note:e.note,o=U1(e.harnessProfile)??e.harnessProfile,r=`${e.agentMode.toUpperCase()} ${o}`,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?`${r} - ${n}`:`${r} - Managed task starting`;case"preflight":return n?`${a} - ${n}`:`${a} - ${s} preflight starting`;case"round":return n?`${r} - ${n}`:`${r} - Managed task round update${l}`;case"worker":return n?`${r} - ${n}${l}`:`${r} - ${e.activeWorkerTitle??"Worker"} starting${l}`;case"upgrade":return n?`${r} - ${n}`:`${r} - Harness transition${l}`;case"completed":return n?`${r} - ${n}`:`${r} - Managed task completed`;default:return}}i($s,"formatManagedTaskBreadcrumb");var qb=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1";function Qb(e){if(e.events&&e.events.length>0)return e.events.reduce((o,r)=>{let s=r.summary.trim(),a=(r.detail??r.summary).trim();if(!s||!a)return o;let c=`managed-live-${r.key}`,l=Date.now(),d=r.persistToHistory??e.persistToHistory??!1;if(r.presentation==="thinking")return o.push({item:{id:c,type:"thinking",timestamp:l,text:a,...s!==a?{compactText:s}:{}},persistToHistory:d}),o;if(r.presentation==="assistant")return o.push({item:{id:c,type:"assistant",timestamp:l,text:a,...s!==a?{compactText:s}:{}},persistToHistory:d}),o;let m=r.kind==="completed";if(m&&!qb)return o;let p=m?`[${Xb(s)}]`:void 0,g=p??s,x=p??a;return o.push({item:{id:c,type:"event",timestamp:l,text:x,icon:r.kind==="warning"?"!":m?"\u2713":">",...g!==x?{compactText:g}:{}},persistToHistory:d}),o},[]);if(e.phase==="completed"&&!qb)return[];let t=$s(e),n=$s(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(Qb,"buildManagedLiveEventDrafts");function j1(e,t){return!(t||e.role!=="evaluator"||e.signal!=="COMPLETE")}i(j1,"shouldFilterSidecarAcceptEntry");function G1(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(r=>!!r).join(`
362
- `)}i(G1,"buildManagedTaskRoutingTranscript");function Yg(e,t){let n=e.managedTask;if(!n)return[];let o=t?.verifierLog??process.env.KODAX_VERIFIER_LOG==="1",r=i(p=>{if(!e.interrupted&&!n.verdict.signalReason?.includes("Orchestration cancelled"))return!1;let g=p.signalReason?.trim()??"",x=p.summary?.trim()??"",h=p.output?.trim()??"",T=g.includes("Orchestration cancelled"),w=x.includes("Orchestration cancelled"),b=!h||x==="No textual output produced.";return p.status!=="completed"&&(T||w||b)||(T||w)&&b},"isInterruptedCancellation"),s=G1(n),a=new Map(n.roleAssignments.map((p,g)=>[p.id,g])),c=n.verdict.decidedByAssignmentId,l=Math.max(0,...n.evidence.entries.filter(p=>p.assignmentId===c).map(p=>p.round??1)),d=[...n.evidence.entries].sort((p,g)=>{let x=(p.round??1)-(g.round??1);return x!==0?x:(a.get(p.assignmentId)??0)-(a.get(g.assignmentId)??0)}).filter(p=>!r(p)).filter(p=>!j1(p,o)).filter(p=>e.interrupted||!(p.assignmentId===c&&(p.round??1)===l)).map(p=>{let g=p.output?.trim()??"",x=p.summary?.trim()??"",h=g?er(g):"",T=x?er(x):"",w=p.role==="scout"?T?`Scout completed: ${T}`:"Scout completed.":T;return{entry:p,text:T||h||w}}).filter(({text:p})=>!!p).map(({entry:p,text:g})=>{let x=p.role==="scout"?" Preflight":(p.round??1)>1?` Round ${p.round}`:"";return`[${p.title??p.assignmentId}${x}]
363
- ${g}`}),m=n.verdict.disposition==="complete"?X("managed.completed"):n.verdict.disposition==="needs_continuation"?X("managed.completed.continuation"):n.verdict.disposition==="blocked"?X("managed.completed.blocked"):void 0;return[...s?[s]:[],...d,...m?[`[${m}]`]:[]]}i(Yg,"buildManagedTaskTranscriptItems");function Jb(e){let o=e.slice(0,400).match(new RegExp("\\*\\*([^*\\n]{1,80}?)\\*\\*"))?.[1]?.trim();return o?{header:o}:{}}i(Jb,"extractBoldHeader");var qg=[" \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 Ve from"chalk";var Zd=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 o=this.shortcuts.get(t);o&&(o.handler=n)}findMatchingShortcut(t,n){let o=null,r=-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>r&&(r=s.definition.priority,o=s)}return o}matchesBinding(t,n){for(let o of n){let r=this.normalizeKeyName(t.name),s=this.normalizeKeyName(o.key);if(r===s){let a=(o.ctrl??!1)===t.ctrl,c=(o.shift??!1)===t.shift,l=(o.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"},o=t.toLowerCase();return n[o]??o}executeShortcut(t,n){let o=this.findMatchingShortcut(t,n);return o?.handler?o.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 o=n.definition.context;return o==="global"||o===t})}formatBinding(t){let n=[];t.ctrl&&n.push("Ctrl"),t.meta&&n.push("Alt"),t.shift&&n.push("Shift");let o=t.key.length===1?t.key.toUpperCase():t.key;return n.push(o),n.join("+")}formatBindings(t){return t.map(n=>this.formatBinding(n)).join(" or ")}},lo=i(()=>Zd.getInstance(),"getShortcutsRegistry");var Ps=[{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 K1,useCallback as V1,useRef as z1}from"react";function $o(e,t,n={}){let{context:o,isActive:r=!0}=n,s=lo(),a=z1(t);a.current=t,K1(()=>(s.setHandler(e,(...d)=>a.current(...d)),()=>{s.setHandler(e,void 0)}),[s,e]);let c=V1(d=>{if(!r)return!1;let p=s.getAllShortcuts().find(T=>T.definition.id===e);if(!p)return!1;let g=o??p.definition.context,x=g==="global"?"input":g,h=s.findMatchingShortcut(d,x);return h&&h.definition.id===e?a.current()===!0:!1},[s,e,r,o]),l=X1(e,s);fn(c,{isActive:r,priority:l})}i($o,"useShortcut");function X1(e,t){let o=t.getAllShortcuts().find(r=>r.definition.id===e);return o?o.definition.priority:0}i(X1,"getShortcutPriority");import Y1,{createContext as q1,useContext as Q1,useState as Zb,useCallback as Qg}from"react";var ev=q1(null);function Jg({children:e,initialContext:t="input"}){let[n,o]=Zb(!1),[r,s]=Zb(t);lo().registerAll(Ps);let c=Qg(()=>{o(p=>!p)},[]),l=Qg(()=>{let g=lo().getAllShortcuts(),x={global:[],mode:[],navigation:[],editing:[]};for(let h of g){let T=h.definition.category;x[T]||(x[T]=[]),x[T].push(h)}return x},[]),d=Qg(()=>lo().getShortcutsByContext(r),[r]),m={showHelp:n,toggleHelp:c,setShowHelp:o,currentContext:r,setCurrentContext:s,getShortcutsByCategory:l,getContextShortcuts:d};return Y1.createElement(ev.Provider,{value:m},e)}i(Jg,"ShortcutsProvider");function Zg(){let e=Q1(ev);if(!e)throw new Error("useShortcutsContext must be used within a ShortcutsProvider");return e}i(Zg,"useShortcutsContext");import J1 from"chalk";function eh({currentConfig:e,setCurrentConfig:t,isLoading:n,abort:o,stopThinking:r,clearThinkingContent:s,setCurrentTool:a,setIsLoading:c,onToggleHelp:l,setShowHelp:d,onSetThinking:m,onSetReasoningMode:p,onToggleTranscriptMode:g,onOpenTranscriptSearch:x,canOpenTranscriptSearch:h=!0,isInteractiveDialogActive:T=!1,onSetAgentMode:w,onSetPermissionMode:b,isInputEmpty:O,onSavePermissionMode:P}){return $o("interrupt",()=>n?(o(),r(),s(),a(void 0),c(!1),console.log(J1.yellow(`
364
- [Interrupted]`)),!0):!1,{isActive:n}),$o("showHelp",()=>T?!1:O?(l(),!0):!1,{isActive:O}),$o("toggleThinking",()=>{if(T)return!1;let N=Tr.indexOf(e.reasoningMode),K=Tr[(N+1)%Tr.length],W=K!=="off";return t(v=>({...v,thinking:W,reasoningMode:K})),Hn({reasoningMode:K,thinking:W}),p?.(K),m?.(W),d(!1),!0}),$o("toggleTranscriptMode",()=>T?!1:(g?.(),d(!1),!0)),$o("openTranscriptSearch",()=>T||!h?!1:(x?.(),d(!1),!0)),$o("togglePermissionMode",()=>{if(T)return!1;let N=["plan","accept-edits","auto"],K=e.permissionMode==="auto-in-project"?"auto":e.permissionMode,v=(N.indexOf(K)+1)%N.length,Z=N[v];return t(Se=>({...Se,permissionMode:Z})),b?.(Z),P?.(Z),d(!1),!0}),$o("toggleAgentMode",()=>{if(T)return!1;let N=e.agentMode==="ama"?"sa":"ama";return t(K=>({...K,agentMode:N})),Hn({agentMode:N}),w?.(N),d(!1),!0}),null}i(eh,"GlobalShortcuts");import{exec as Z1}from"child_process";import{promisify as eO}from"util";var tO=eO(Z1),nO={read:"read",grep:"grep",glob:"glob",write:"write",edit:"edit",bash:"bash",undo:"undo",askuserquestion:"ask-user-question",askuser:"ask-user-question"};function tv(e){let t=[],n="",o=0;for(let r of e){if(r===","&&o===0){n.trim()&&t.push(n.trim()),n="";continue}r==="("?o++:r===")"&&o>0&&o--,n+=r}return n.trim()&&t.push(n.trim()),t}i(tv,"splitTopLevelCommaList");function oO(e){if(!e?.trim())return{configured:!1,rules:[],invalidEntries:[]};let t=[];return{configured:!0,rules:tv(e).map(o=>{if(o==="*")return{tool:"*"};if(o.includes("(")&&!o.endsWith(")")){t.push(o);return}let r=o.match(/^([^(]+?)(?:\((.*)\))?$/);if(!r){t.push(o);return}let s=nO[r[1].replace(/[^a-z]/gi,"").toLowerCase()];if(!s){t.push(o);return}let a=r[2]?tv(r[2]).map(c=>c.trim()).filter(Boolean):void 0;return{tool:s,patterns:a&&a.length>0?a:void 0}}).filter(o=>o!==void 0),invalidEntries:t}}i(oO,"parseAllowedTools");function rO(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${t}$`,"i")}i(rO,"wildcardToRegExp");function nv(e,t){return rO(e).test(t)}i(nv,"matchesPattern");function ov(e,t,n){if(!e.configured)return!0;if(e.rules.length===0)return!1;let o=t.toLowerCase(),r=o==="bash"?String(n.command??"").trim():"";return e.rules.some(s=>s.tool!=="*"&&s.tool!==o?!1:!s.patterns||s.patterns.length===0||o!=="bash"?!0:s.patterns.some(a=>nv(a,r)))}i(ov,"isToolAllowed");function iO(e,t){return e.matcher?nv(e.matcher,t):!0}i(iO,"hookMatches");function sO(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(`
365
- `)}i(sO,"formatManualOutput");function aO(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(aO,"resolveModelOverride");async function cO(e,t,n,o,r,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(!ov(s,"bash",c))return{allow:!1,message:`Hook ${e} for ${a} is blocked by allowed-tools policy.`};if(r.beforeToolExecute&&!await r.beforeToolExecute("bash",c))return{allow:!1,message:`Hook ${e} for ${a} was blocked by the current permission policy.`};try{let{stdout:l,stderr:d}=await tO(t.command,{env:{...process.env,KODAX_HOOK_EVENT:e,KODAX_HOOK_PAYLOAD:JSON.stringify(n)},maxBuffer:1048576,windowsHide:!0}),m=[l.trim(),d.trim()].filter(Boolean).join(`
366
- `);m&&r.onToolResult?.({id:`frontmatter-hook:${e}`,name:"bash",content:m}),d.trim()&&await o(`[Hook ${e} stderr] ${d.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 o(`[Hook ${e} failed] ${l instanceof Error?l.message:String(l)}`),{}}}i(cO,"executeHookCommand");async function Ls(e,t,n,o,r,s,a){let c=e?.[t];if(!c||c.length===0)return{};let l={};for(let d of c){if(!iO(d,n))continue;let m=await cO(t,d,o,r,s,a);if(m.message&&await r(`[Hook ${t}] ${m.message}`),m.additionalContext&&(l.additionalContext=l.additionalContext?`${l.additionalContext}
367
- ${m.additionalContext}`:m.additionalContext),m.allow===!1){l.allow=!1;break}}return l}i(Ls,"runHooks");async function ef(e,t,n,o){if(t.disableModelInvocation)return{mode:"manual",manualOutput:sO(t),finalize:i(async()=>{},"finalize")};let r=e.events??{},s=oO(t.allowedTools),a=aO(e.provider,t.model),c=!1,l=i(async w=>{if(o(w),!(c||!t.hooks?.Notification?.length)){c=!0;try{await Ls(t.hooks,"Notification",w,{displayName:t.displayName,source:t.source,path:t.path,message:w},async b=>{o(b)},r,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 d=await Ls(t.hooks,"SessionStart",t.displayName,{displayName:t.displayName,source:t.source,path:t.path},l,r,s);if(d.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped before execution.`,finalize:i(async()=>{},"finalize")};let m=await Ls(t.hooks,"UserPromptSubmit",n,{displayName:t.displayName,source:t.source,prompt:n,path:t.path},l,r,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,d.additionalContext,m.additionalContext].filter(w=>typeof w=="string"&&w.trim().length>0),g=[p.length>0?p.join(`
368
-
369
- `):void 0,t.prompt,`User request: ${n}`].filter(w=>typeof w=="string"&&w.trim().length>0),x={...r,beforeToolExecute:i(async(w,b)=>ov(s,w,b)?(await Ls(t.hooks,"PreToolUse",w,{tool:w,input:b,displayName:t.displayName,source:t.source,path:t.path},l,r,s)).allow===!1?(await l(`[Blocked] PreToolUse hook blocked '${w}' for ${t.displayName}`),!1):r.beforeToolExecute?await r.beforeToolExecute(w,b):!0:(await l(`[Blocked] Tool '${w}' is not allowed by ${t.displayName}`),!1),"beforeToolExecute"),onToolResult:i(w=>{r.onToolResult?.(w),Ls(t.hooks,"PostToolUse",w.name,{...w,displayName:t.displayName,source:t.source,path:t.path},l,r,s)},"onToolResult")},h=!1,T=i(async w=>{h||(h=!0,await Ls(t.hooks,t.context==="fork"?"SubagentStop":"Stop",t.displayName,{displayName:t.displayName,source:t.source,path:t.path,error:w?.message},l,r,s))},"finalize");return{mode:t.context==="fork"?"fork":"inline",prompt:g.join(`
370
-
371
- `),options:{...e,modelOverride:a,context:{...e.context,rawUserInput:n,skillInvocation:t.source==="skill"?t.skillInvocation:e.context?.skillInvocation},events:x},finalize:T}}i(ef,"prepareInvocationExecution");import{appendFileSync as lO,mkdirSync as uO,writeFileSync as dO}from"node:fs";import{join as iv}from"node:path";import rv from"node:v8";var oh=parseInt(process.env.KODAX_MEMORY_DIAG??"0",10),rh=oh>=1,ih=Ai(),sv=iv(ih,"memory-diag.log"),th=0,nh=!1;function av(){if(!nh)try{uO(ih,{recursive:!0}),nh=!0}catch{nh=!0}}i(av,"ensureLogDir");function fO(e){av();try{lO(sv,e+`
372
- `)}catch{}}i(fO,"writeLog");function ht(e){return`${(e/1024/1024).toFixed(2)}MB`}i(ht,"formatMB");function mO(){return typeof globalThis.gc=="function"?(globalThis.gc(),!0):!1}i(mO,"tryGC");function Et(e){return e?e.length*2:0}i(Et,"strBytes");function Jr(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 o of e)n+=Jr(o,t+1);return n}if(typeof e=="object"){let n=64;for(let[o,r]of Object.entries(e))n+=o.length*2,n+=Jr(r,t+1);return n}return 16}i(Jr,"estimateJsonBytes");function cv(e){if(!e||typeof e!="object")return 64;let t=e,n=64,o=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 r of t.content)n+=cv(r);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+=Jr(t.input));for(let[r,s]of Object.entries(t))o.has(r)||(n+=r.length*2+Jr(s));return n}i(cv,"estimateBlockBytes");function sh(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+=cv(n);return t}return 200}i(sh,"estimateMessageBytes");function tf(e){let t=128;switch(t+=Et(e.id)+Et(e.parentId??void 0)+Et(e.timestamp),e.type){case"message":return t+sh(e.message);case"compaction":return t+=Et(e.summary),t+=Et(e.firstKeptEntryId),t+=Et(e.reason),t+=Et(e.artifactLedgerId),e.details!==void 0&&(t+=Jr(e.details)),e.memorySeed!==void 0&&(t+=Jr(e.memorySeed)),t;case"branch_summary":return t+=Et(e.summary),t+=Et(e.fromId),e.details!==void 0&&(t+=Jr(e.details)),t;case"label":return t+=Et(e.targetId),t+=Et(e.label),t;case"archive_marker":return t+=Et(e.archiveBatchId),t+=Et(e.summary),t+=8,t;default:return t}}i(tf,"estimateEntryBytes");function pO(e){let t={},n=[];for(let r=0;r<e.length;r++){let s=e[r],a=sh(s);n.push({index:r,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((r,s)=>s.bytes-r.bytes),{totalBytes:n.reduce((r,s)=>r+s.bytes,0),biggest:n.slice(0,5),byRole:t}}i(pO,"buildMessageBreakdown");function nf(){return rh}i(nf,"memDiagEnabled");function of(e,t){if(!rh)return;e==="turn-start"&&th++;let n=process.memoryUsage(),o=new Date().toISOString(),r=t.biggestMessages,s=["",`\u2550\u2550\u2550 [MEMDIAG] turn=${th} phase=${e} @${o} \u2550\u2550\u2550`,` V8 heap: used=${ht(n.heapUsed)} total=${ht(n.heapTotal)} rss=${ht(n.rss)} ext=${ht(n.external)}`," \u2500\u2500 Data breakdown \u2500\u2500",` context.messages: ${t.messageCount} msgs, ${ht(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: ${ht(t.lineageNonMessageBytes)} (compaction.details/memorySeed + branch_summary payloads)`,` lineage orphan messages: ${t.lineageOrphanMessageCount} msgs, ${ht(t.lineageOrphanMessageBytes)} (in lineage but not in context.messages \u2014 branches/pruned)`,` UI history: ${t.historyItemCount} items, ${ht(t.historyTextBytes)}`,` foreground turn: ${t.foregroundItemCount} items, ${ht(t.foregroundTextBytes)}`,` streaming response: ${ht(t.streamingResponseBytes)}`,` streaming thinking: ${ht(t.streamingThinkingBytes)}`,` persisted UI history: ${t.persistedUiHistoryCount} items, ${ht(t.persistedUiHistoryBytes)}`];if(r.length>0){s.push(" \u2500\u2500 Top 5 biggest messages \u2500\u2500");for(let d of r)s.push(` [${d.index}] role=${d.role} ${ht(d.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=rv.getHeapSpaceStatistics();for(let d of c)d.space_used_size>1024*1024&&s.push(` ${d.space_name.padEnd(25)} used=${ht(d.space_used_size)} allocated=${ht(d.space_size)}`);if(s.push(" \u2500\u2500 Summary \u2500\u2500"),s.push(` tracked data total: ${ht(a)}`),s.push(` V8 heap used: ${ht(n.heapUsed)}`),s.push(` unaccounted (overhead): ${ht(n.heapUsed-a)}`),s.push(" (React/Ink tree, provider SDK buffers, module metadata,"),s.push(' tokenizer caches, source maps \u2014 see "Blind spots" note)'),mO()){let d=process.memoryUsage();s.push(` after forced GC: heap=${ht(d.heapUsed)} (freed ${ht(n.heapUsed-d.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(oh>=2)try{let d=iv(ih,`heap-turn${th}-${e}.heapsnapshot`);rv.writeHeapSnapshot(d),s.push(` heap snapshot: ${d}`)}catch{s.push(" heap snapshot: FAILED")}fO(s.join(`
373
- `))}i(of,"memDiagSnapshot");function rf(e,t,n){let o=pO(e),r=new Set(e),s=0,a=0,c=0,l=0,d=0,m=0,p=0,g=0,x=t?.entries??[];for(let b of x)switch(b.type){case"message":g++,r.has(b.message)||(c++,a+=sh(b.message));break;case"compaction":l++,s+=tf(b);break;case"branch_summary":d++,s+=tf(b);break;case"label":m++,s+=tf(b);break;case"archive_marker":p++,s+=tf(b);break}let h=0;for(let b of n.historyItems)h+=Et(b.text);let T=0;for(let b of n.foregroundItems)T+=Et(b.text);let w=0;for(let b of n.persistedUiHistory)w+=Et(b.text);return{messageCount:e.length,messageBytes:o.totalBytes,biggestMessages:o.biggest,lineageEntryCount:x.length,lineageMessageEntryCount:g,lineageCompactionCount:l,lineageBranchSummaryCount:d,lineageLabelCount:m,lineageArchiveMarkerCount:p,lineageNonMessageBytes:s,lineageOrphanMessageBytes:a,lineageOrphanMessageCount:c,historyItemCount:n.historyItems.length,historyTextBytes:h,foregroundItemCount:n.foregroundItems.length,foregroundTextBytes:T,streamingResponseBytes:Et(n.streamingResponse),streamingThinkingBytes:Et(n.streamingThinking),persistedUiHistoryCount:n.persistedUiHistory.length,persistedUiHistoryBytes:w}}i(rf,"buildMemDiagBreakdown");function lv(){if(rh){av();try{let e=typeof globalThis.gc=="function",t=[`[MEMDIAG] Session started at ${new Date().toISOString()}`,`[MEMDIAG] Level=${oh} 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(`
374
- `);dO(sv,t+`
375
- `)}catch{}}}i(lv,"memDiagReset");import gO from"node:fs";import ch from"node:path";var hO={".gif":"image/gif",".jpeg":"image/jpeg",".jpg":"image/jpeg",".png":"image/png",".webp":"image/webp"},yO=/@(?:"([^"]+)"|'([^']+)'|([^\s]+))/g;function xO(e){return hO[ch.extname(e).toLowerCase()]}i(xO,"resolveImageMediaType");var ah="[Image unavailable]";function wO(e){return""}i(wO,"buildImageAnchor");function bc(e,t){let n=[],o=[],r=new Set,s=new Map,a=new Set,c=[],l=0;for(let m of e.matchAll(yO)){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 x=xO(g);if(!x){c.push(m[0]),l=p+m[0].length;continue}let h=ch.resolve(t,g);try{if(!gO.statSync(h).isFile()){a.has(h)||(o.push(`[Image input skipped] ${g} is not a file.`),a.add(h)),c.push(ah),l=p+m[0].length;continue}}catch{a.has(h)||(o.push(`[Image input missing] ${g} was not found from ${t}.`),a.add(h)),c.push(ah),l=p+m[0].length;continue}if(!r.has(h)){r.add(h);let T=wO(n.length+1);s.set(h,T),n.push({kind:"image",path:h,mediaType:x,source:"user-inline",description:`Attached image ${ch.basename(h)}`})}c.push(s.get(h)??ah),l=p+m[0].length}c.push(e.slice(l));let d=c.join("");return{promptText:d,messageContent:Dx(d,n),inputArtifacts:n,warnings:o}}i(bc,"preparePromptInputArtifacts");function uv(e){let t=SO(e.stage),n=TO(e);return{type:"info",icon:"\u{1F4E1}",text:n?`[RepoIntel] ${t} \xB7 ${n}`:`[RepoIntel] ${t}`,tightSpacing:!0}}i(uv,"createRepoIntelTraceHistoryItem");function SO(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(SO,"stageDisplayName");function TO(e){let t=[],n=e.capability;n&&(t.push(`mode=${n.mode}`),n.status!=="ok"&&t.push(`status=${n.status}`));let o=e.trace;return o&&(o.daemonLatencyMs!==void 0&&t.push(`daemon ${o.daemonLatencyMs}ms`),o.cliLatencyMs!==void 0&&t.push(`cli ${o.cliLatencyMs}ms`),o.cacheHit!==void 0&&t.push(o.cacheHit?"cache hit":"cache miss"),o.capsuleEstimatedTokens!==void 0&&t.push(`${CO(o.capsuleEstimatedTokens)} tokens`)),t.length===0&&e.summary?bO(e.summary):t.join(" \xB7 ")}i(TO,"buildRepoIntelDetailLine");function CO(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(CO,"formatTokens");function bO(e){return e.replace(/^stage=[^|]+\|\s*/,"").trim()}i(bO,"stripSummaryStagePrefix");function dv(e,t,n,o){let r=e?.gitRoot??t??void 0,s=e?.executionCwd??r??process.cwd();return{...e,gitRoot:r,executionCwd:s,contextTokenSnapshot:n,taskSurface:"repl",skillsPrompt:o}}i(dv,"buildManagedRunContext");var vO=["global","mode","navigation","editing"],IO={global:["showHelp","interrupt"],mode:["toggleThinking","toggleTranscriptMode","togglePermissionMode","toggleAgentMode"],navigation:["openTranscriptSearch","historyUp","historyDown","moveToStart","moveToEnd"],editing:["acceptCompletion","cancelInput","newline","killLineRight","killLineLeft","deleteWordLeft"]},kO={global:"Global",mode:"Modes",navigation:"Navigation",editing:"Editing"},RO={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 EO(e){let t=lo(),n=t.getAllShortcuts().find(r=>r.definition.id===e);if(n?.effectiveBindings?.length)return t.formatBindings(n.effectiveBindings);let o=Ps.find(r=>r.id===e);if(o?.defaultBindings?.length)return t.formatBindings(o.defaultBindings)}i(EO,"resolveShortcutBindingLabel");function MO(e){return`${EO(e.id)??e.id} ${e.name}`}i(MO,"buildMenuItemLabel");function AO(e){return lo().getAllShortcuts().find(o=>o.definition.id===e)?.definition??Ps.find(o=>o.id===e)}i(AO,"resolveShortcutDefinition");function sf(){return[...vO.map(t=>{let n=IO[t].map(o=>AO(o)).filter(o=>!!o).map(o=>({id:o.id,label:MO(o)}));return{id:t,title:kO[t],items:n}}).filter(t=>t.items.length>0),RO]}i(sf,"buildHelpMenuSections");var lh=2,fv=1,mv=4;function tt(e,t){let n=Qt(e.length>0?e.split(`
376
- `):[""],Math.max(1,t),0,0);return Math.max(1,n.visualLines.length)}i(tt,"wrapLineCount");function _O(e,t,n=">"){let o=n.length+1,r=Math.max(20,t-o),s=Qt(e.length>0?e.split(`
377
- `):[""],r,0,0);return Math.max(1,s.visualLines.length)+2}i(_O,"calculateInputPromptRows");function pv(e){let{terminalRows:t,terminalWidth:n,windowedTranscript:o=!1,inputText:r,inputPrompt:s=">",footerHeaderText:a,activitySummary:c,pendingInputSummary:l,stashNoticeSummary:d,notificationSummary:m,statusNoticeSummary:p,workStripText:g,suggestionsReserved:x,suggestionsMode:h="inline",showHelp:T,statusBarText:w,confirmPrompt:b,confirmInstruction:O,uiRequest:P,dialogMode:N="inline",historySearch:K,maxVisibleSelectOptions:W=5,reviewHint:v,todoSurfaceRows:Z=0,activityBarVisible:Se=!1}=e,z=Math.max(0,Math.floor(Z)),re=a?tt(a,Math.max(1,n-2)):0,A=c?tt(c,Math.max(1,n-2)):0,k=Se?Math.max(1,A):A,_=l?tt(l,Math.max(1,n-2)):0,be=d?tt(d,Math.max(1,n-2)):0,Pe=m?tt(m,Math.max(1,n-2)):0,ye=p?tt(p,Math.max(1,n-2)):0,le=g?tt(g,Math.max(1,n-2)):0,Ae=_O(r,n,s),ae=x?8:0,q=T?fv+mv+sf().reduce(($,U)=>$+tt(U.title,Math.max(1,n-lh))+tt(U.items.map(J=>J.label).join(" | "),Math.max(1,n-lh)),0):0,Y=tt(w,Math.max(1,n-2)),Re=0;if(b&&O){let $=Math.max(1,n-4);Re=3+tt(`[Confirm] ${b}`,$)+tt(O,$)}let ce=0,lt=0;if(P){let $=Math.max(1,n-4);P.kind==="select"?(lt=Math.min(W,P.options.length),ce=3+tt(`[Select] ${P.title}`,$)+P.options.slice(0,lt).reduce((U,J,Ee)=>U+tt(`${Ee+1}. ${J.label}${J.description?` - ${J.description}`:""}`,$),0)+(P.options.length>lt?2:0)+tt(`Choice: ${P.buffer||"(type a number)"}`,$)+1+(P.error?tt(P.error,$):0)):ce=3+tt(`[Input] ${P.prompt}`,$)+(P.defaultValue!==void 0?tt(`Default: ${P.defaultValue}`,$):0)+tt(`Value: ${P.buffer||"(type your response)"}`,$)+1+(P.error?tt(P.error,$):0)}let ze=0;if(K){let $=Math.max(1,n-4);ze=3+tt(`Query: ${K.query||"(type to search)"}`,$)+(K.matchCount===0?tt("No matches yet",$):tt(`${Math.max(1,K.matchCount)} matches`,$)+tt(K.selectedExcerpt||"",$))+1}let Oe=v?tt(v,Math.max(1,n-2)):0,ue=re+k+z+_+be+Pe+Ae+q+ye+Oe+(h==="inline"?ae:0)+(N==="inline"?Re+ce+ze:0),Mt=(h==="overlay"?ae:0)+(N==="overlay"?Re+ce+ze:0),bt=ue+le+Y,Q=Math.max(1,t-bt);return{messageRows:Q,reservedBottomRows:bt,headerRows:re,activityRows:k,pendingInputRows:_,stashNoticeRows:be,notificationRows:Pe,workStripRows:le,inputRows:Ae,suggestionsRows:ae,helpRows:q,statusNoticeRows:ye,statusRows:Y,confirmRows:Re,uiRequestRows:ce,historySearchRows:ze,footerRows:ue,overlayRows:Mt,visibleSelectOptions:lt,reviewHintRows:Oe,todoSurfaceRows:z,slots:[{name:"transcript",rows:Q},{name:"footer",rows:ue},{name:"overlay",rows:Mt},{name:"status",rows:Y},{name:"task-bar",rows:le}]}}i(pv,"calculateViewportBudget");function gv(e,t={}){let n=Gi(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(gv,"createTranscriptDisplayState");function hv(e){return{...e,surface:"transcript",jumpToLatestAvailable:e.pendingLiveUpdates>0}}i(hv,"enterTranscriptMode");function yv(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(yv,"exitTranscriptMode");function xv(e,t){let n=Math.max(0,t);return{...e,pendingLiveUpdates:n,jumpToLatestAvailable:e.surface==="transcript"?n>0:e.scrollAnchor>0}}i(xv,"setTranscriptPendingLiveUpdates");function wv(e,t){let n=Math.max(0,t);return{...e,scrollAnchor:n,jumpToLatestAvailable:e.surface==="transcript"?e.pendingLiveUpdates>0:n>0}}i(wv,"setTranscriptScrollAnchor");function Sv(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(Sv,"jumpTranscriptToLatest");function Tv(e,t){return{...e,stickyPromptVisible:t}}i(Tv,"setTranscriptStickyPromptVisible");function Os(e,t){return{...e,selectedItemId:t,selectionMode:t?"message":"none"}}i(Os,"setTranscriptSelectedItem");function Cv(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(Cv,"openTranscriptSearch");function bv(e){return{...e,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0}}i(bv,"closeTranscriptSearch");function vv(e,t){return{...e,currentMatchIndex:Math.max(-1,t)}}i(vv,"setTranscriptSearchMatchIndex");function Iv(e){return e.supportsFullscreenLayout&&e.ownsViewportByDefault}i(Iv,"shouldWindowTranscript");function kv(e){return e.surface==="transcript"}i(kv,"shouldPauseLiveTranscript");function uh(e){return e.supportsSelection}i(uh,"ownsTranscriptSelectionPath");function af(e,t,n){if(!(!uh(e)||!n))return t.includes(n)?n:void 0}i(af,"resolveTranscriptSelectedItemId");function Rv(e){return e.supportsSelection&&e.supportsCopyOnSelect}i(Rv,"supportsPassiveTranscriptCopyOnSelect");function Ev(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(Ev,"buildTranscriptBrowseHint");var Mv="Slash commands cannot be queued mid-task. Press Esc to abort the current task, then run the command.",Av="slash-guard";function _v(e){return e.trimStart().startsWith("/")}i(_v,"isSlashCommandText");var $O=`
378
-
379
- ---
380
-
381
- `;async function $v(e){let{initialPrompt:t,runRound:n,shiftPendingPrompt:o,onRoundComplete:r,onBeforeQueuedRound:s,shouldContinue:a=i(()=>!0,"shouldContinue")}=e,c=t,l=await n(c);for(;;){if(await r?.(l),!a(l))return l;let d=[];for(;;){let m=o();if(m===void 0)break;let p=typeof m=="string"?m.trim():"";p.length>0&&d.push(p)}if(d.length===0)return l;c=d.length===1?d[0]:d.join($O),await s?.(c),l=await n(c)}}i($v,"runQueuedPromptSequence");function Lv(e){return e.itemsLength>0||e.currentResponse.length>0||e.thinkingContent.length>0||e.activeToolCallsLength>0}i(Lv,"hasTranscriptInputActivity");function PO(e){return e.keyName==="mouse"&&e.hasMouse&&e.usesManagedMouseClicks&&e.supportsMouseTracking&&e.usesRendererMouseTracking}i(PO,"shouldHandleManagedTranscriptMouse");function Pv(e){return e.usesManagedMouseWheel&&e.supportsWheelHistory&&e.hasTranscript}i(Pv,"shouldHandleManagedTranscriptWheel");function Ov(e){if(PO({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"?Pv({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?{kind:"scroll-by",delta:e.reviewWheelStep}:{kind:"none"}:e.keyName==="wheeldown"?Pv({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(Ov,"resolveTranscriptPointerAction");function LO(e){return e.isTranscriptMode&&e.hasTextSelection}i(LO,"shouldDeferInterruptToTranscriptSelectionCopy");function Dv(e){return e.ctrl&&e.keyName==="c"?LO({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(Dv,"resolveStreamingInterruptAction");function Nv(e){let{key:t,isTranscriptMode:n,isHistorySearchActive:o,historySearchMatchCount:r,hasTextSelection:s,hasFocusedItem:a,canCopySelectedItem:c,canCopySelectedToolInput:l,canToggleSelectedDetail:d,canCycleTranscriptSelection:m}=e;if(t.name==="pageup")return{kind:"scroll-page-up"};if(o){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&&!o&&!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"?d?{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"?r===0?{kind:"none"}:{kind:"search-match-nav",direction:t.shift?"prev":"next"}:{kind:"none"}:{kind:"none"}}i(Nv,"resolveTranscriptKeyboardAction");function Bv(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(Bv,"executeTranscriptKeyboardAction");function Zr(e){let t=/\u001b\[[0-9;?]*[ -/]*[@-~]/g,n=/\u001b\][^\u0007\u001b]*(?:\u0007|\u001b\\)/g,o=/\u001b[@-_]/g;return e.replace(t,"").replace(n,"").replace(o,"")}i(Zr,"stripAnsi");function OO(e){return e.tools.map(n=>`tool: ${n.name}`).join(`
382
- `)}i(OO,"serializeToolGroup");function DO(e){switch(e.type){case"thinking":return null;case"user":return`user: ${Zr(e.text)}`;case"assistant":return`assistant: ${Zr(e.text)}`;case"system":return`system: ${Zr(e.text)}`;case"info":return`info: ${Zr(e.text)}`;case"error":return`error: ${Zr(e.text)}`;case"event":return`event: ${Zr(e.text)}`;case"hint":return`hint: ${Zr(e.text)}`;case"tool_group":return OO(e);default:return e}}i(DO,"serializeOne");function NO(e){let t=[];for(let n of e){let o=DO(n);o!==null&&o!==""&&t.push(o)}return t.join(`
383
-
384
- `)}i(NO,"serializeTranscriptForScrollback");function Hv(e){let{items:t,writeToScrollback:n,exitAltScreen:o,enterAltScreen:r}=e,s=NO(t);o(),s.length>0&&n(`${s}
385
- `),r()}i(Hv,"dumpTranscriptToNativeScrollback");function BO(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(`
386
- `)}).join(`
387
- `);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return e.text;default:return""}}i(BO,"buildSearchText");function HO(e,t){let n=e.replace(/\s+/g," ").trim();if(!n)return"";let o=n.toLowerCase(),r=t.toLowerCase(),s=o.indexOf(r);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?"...":"",d=c<n.length?"...":"";return`${l}${n.slice(a,c)}${d}`}i(HO,"buildExcerpt");function Fv(e){return e.map((t,n)=>({itemId:t.id,itemIndex:n,searchText:BO(t)}))}i(Fv,"createTranscriptSearchIndex");function Wv(e,t){let n=t.trim().toLowerCase();return n?e.flatMap(o=>{let r=o.searchText;return r.toLowerCase().includes(n)?[{itemId:o.itemId,itemIndex:o.itemIndex,excerpt:HO(r,t.trim())}]:[]}):[]}i(Wv,"searchTranscriptIndex");function dh(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(dh,"stepTranscriptSearchMatch");function Uv(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(Uv,"buildTranscriptSearchSummary");function jv(e,t,n){if(t.length===0||!n)return 0;let o=t.findIndex(a=>a.itemId===n);if(o>=0)return o;let r=e.find(a=>a.itemId===n)?.itemIndex;if(r===void 0)return 0;let s=t.findIndex(a=>a.itemIndex>=r);return s>=0?s:0}i(jv,"resolveTranscriptSearchMatchIndex");function Gv(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:FO(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(Gv,"buildTranscriptSelectionSummary");function FO(e){return e.tools.length===1?`Tool call: ${e.tools[0]?.name??"tool"}`:`Tool group: ${e.tools.length} calls`}i(FO,"summarizeToolGroup");function Kv(e){return e.map(t=>t.id)}i(Kv,"getSelectableTranscriptItemIds");function Vv(e,t,n){if(e.length===0)return;if(!t)return n==="next"?e[0]:e[e.length-1];let o=e.indexOf(t);return o===-1?n==="next"?e[0]:e[e.length-1]:n==="next"?e[Math.min(e.length-1,o+1)]:e[Math.max(0,o-1)]}i(Vv,"moveTranscriptSelection");function fh(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(`
388
- `)}).join(`
389
-
390
- `);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return e.text;default:return}}i(fh,"buildTranscriptCopyText");function zv(e){if(!e||e.type!=="tool_group")return;let t=e.tools.map(n=>{if(!n.input)return;let o=typeof n.input=="string"?n.input:JSON.stringify(n.input,null,2);if(o?.trim())return[`Tool: ${n.name}`,o].join(`
391
- `)}).filter(n=>!!n);return t.length>0?t.join(`
392
-
393
- `):void 0}i(zv,"buildTranscriptToolInputCopyText");import{useCallback as vc,useRef as WO,useState as Xv}from"react";function Yv(e){let{state:t,ownsViewport:n,isAwaitingUserInteraction:o,isHistorySearchActive:r,isTranscriptMode:s,historySearchQuery:a}=e,c=Ev(t),l;if(t.supportsStickyPrompt&&t.stickyPromptVisible)if(r){let m=a.trim();l={visible:!0,label:m?`Searching transcript for "${m}"`:"Searching transcript"}}else s?l={visible:!0,label:"Transcript Mode"}:o&&(l={visible:!0,label:"Interaction active"});let d;return n&&t.supportsViewportChrome&&(s&&t.pendingLiveUpdates>0?d={visible:!0,label:t.pendingLiveUpdates===1?"1 new update":`${t.pendingLiveUpdates} new updates`,hint:"Ctrl+O",tone:"accent"}:!s&&t.jumpToLatestAvailable&&(d={visible:!0,label:"Back to live",hint:"End",tone:"accent"})),{browseHintText:c,stickyHeader:l,jumpToLatest:d}}i(Yv,"buildTranscriptChromeModel");function qv(e){return Math.max(1,e-2)}i(qv,"resolveTranscriptPageSize");function Qv(e){return Math.max(3,Math.floor(e/4))}i(Qv,"resolveTranscriptWheelStep");function UO(e,t){return Math.max(0,e+t)}i(UO,"incrementTranscriptScrollOffset");function Jv(e,t,n){let o=Math.max(0,t-n);return Math.min(Math.max(0,e),o)}i(Jv,"clampTranscriptScrollOffset");function Zv(){let e=WO(null),[t,n]=Xv(0),[o,r]=Xv(!0),s=vc(m=>{n(Math.max(0,m))},[]),a=vc(m=>{r(m)},[]),c=vc(m=>{if(e.current){e.current.scrollTo(m);return}n(Math.max(0,m)),r(m===0)},[]),l=vc(m=>{if(e.current){e.current.scrollBy(m);return}n(p=>UO(p,m)),r(!1)},[]),d=vc(()=>{if(e.current){e.current.scrollToBottom();return}n(0),r(!0)},[]);return{scrollRef:e,scrollOffset:t,sticky:o,setScrollOffset:n,setSticky:r,handleScrollTopChange:s,handleStickyChange:a,scrollTo:c,scrollBy:l,scrollToBottom:d}}i(Zv,"useTranscriptViewportScrollController");function e0(e){let{items:t,renderModel:n,terminalWidth:o,transcriptMaxLines:r,viewportRows:s,itemId:a,visibleRows:c,expandedItemKeys:l,showDetailedTools:d=!1}=e;if(!a||c.length===0)return!1;let p=(n?.sections??Cs(t,o,r,d,l)).find(h=>h.key===a);if(!p||p.rows.length===0)return!1;let g=new Set(c.map(h=>h.key)),x=Math.max(0,s??0);return x>0&&p.rows.length<=x?p.rows.every(h=>g.has(h.key)):g.has(p.rows[0]?.key??"")}i(e0,"isTranscriptItemVisible");function t0(e){let{items:t,renderModel:n,terminalWidth:o,transcriptMaxLines:r,viewportRows:s,itemId:a,expandedItemKeys:c,showDetailedTools:l=!1}=e,d=n?.sections??Cs(t,o,r,l,c);return GC(d,a,s)}i(t0,"resolveTranscriptSelectionOffset");function n0(e){let{items:t,renderModel:n,selectedItemId:o,terminalWidth:r=80,transcriptMaxLines:s=1e3,viewportRows:a,scrollOffset:c=0,expandedItemKeys:l,showDetailedTools:d=!1,preferViewportAnchor:m=!1}=e;if(o&&t.some(p=>p.id===o))return o;if(m&&c>0&&a&&a>0){let p=n?.sections??Cs(t,r,s,d,l),g=n?.rows??zr(p),h=fg(g,a,c)[0]?.key,T=h?p.find(w=>w.rows.some(b=>b.key===h)):void 0;if(T?.key)return T.key}return t[t.length-1]?.id}i(n0,"resolveTranscriptSearchAnchorItemId");function o0(e){let t=Ba(e.stickyHeader),n=Ru(t,e.width),o=Math.max(0,e.topChromeRows??0);return{contentWindow:e.window,topOffsetRows:n+o,stickyHeaderRows:n,topChromeRows:o}}i(o0,"resolveTranscriptOwnedWindowGeometry");function jO(e){return e.text===" "?"":e.text}i(jO,"normalizeTranscriptRowText");function mh(e){let t=new Map;return e.forEach((n,o)=>{t.set(n.key,o)}),t}i(mh,"buildTranscriptRowIndexByKey");function GO(e,t={}){let n=Math.max(0,e.indent??0),o=e.spinner&&t.animateSpinners!==!1?2:0;return 1+n+o}i(GO,"resolveTranscriptTextStartColumn");function r0(e,t={}){let n=Math.max(0,t.topOffsetRows??0),o=t.rowIndexByKey??mh(t.allRows??e),r=e.map((s,a)=>{let c=jO(s),l=GO(s,t),d=rr(c);return{key:s.key,row:s,modelRowIndex:o.get(s.key)??a,screenRow:n+a+1,text:c,textLength:d,textStartColumn:l,textEndColumn:l+XC(c)}});return{rows:r,topRow:r[0]?.screenRow??n+1,bottomRow:r[r.length-1]?.screenRow??n,viewportHeight:Math.max(0,t.viewportHeight??e.length)}}i(r0,"buildTranscriptScreenBuffer");function KO(e,t){let n=Math.max(1,Math.floor(t));return YC(e.text,n-e.textStartColumn)}i(KO,"clampTextColumn");function ph(e,t){return{screenRow:e,point:{rowKey:e.key,modelRowIndex:e.modelRowIndex,column:KO(e,t)}}}i(ph,"toHit");function gh(e,t,n){let o=e.rows.find(r=>r.screenRow===t);return o?ph(o,n):void 0}i(gh,"hitTestTranscriptScreen");function hh(e,t,n){if(e.rows.length!==0)return t<=e.topRow?ph(e.rows[0],n):t>=e.bottomRow?ph(e.rows[e.rows.length-1],n):gh(e,t,n)}i(hh,"clampTranscriptScreenHit");function i0(e){return e.text===" "?"":e.text}i(i0,"normalizeTranscriptRowText");function s0(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i(s0,"comparePoints");function a0(e,t,n,o={}){if(e.length===0)return;let[r,s]=s0(t,n)<=0?[t,n]:[n,t],a=o.selectFullRowOnCollapsed===!0,c=s0(t,n)===0,l=e[r.modelRowIndex],d=e[s.modelRowIndex];if(!l||!d)return;let m=a&&c?{...r,column:0}:r,p=a&&c?{...s,column:rr(i0(d))}:s,g=new Map,x=[],h=0;for(let T=m.modelRowIndex;T<=p.modelRowIndex;T+=1){let w=e[T];if(!w)continue;let b=i0(w),O=rr(b),P=T===m.modelRowIndex?m.column:0,N=T===p.modelRowIndex?p.column:O,K=Math.max(0,Math.min(P,O)),W=Math.max(K,Math.min(N,O)),v=bs(b,K,W);W>K&&(g.set(w.key,{start:K,end:W}),h+=W-K),x.push(v)}if(g.size!==0)return{anchor:t,focus:n,rowRanges:g,rowCount:x.length,charCount:h,text:x.join(`
394
- `)}}i(a0,"buildTranscriptScreenSelection");function c0(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(c0,"buildTranscriptScreenSelectionSummary");function l0(e,t){return e.rows.length===0?0:t<e.topRow?1:t>e.bottomRow?-1:0}i(l0,"resolveTranscriptDragEdgeScrollDirection");function cf(e){return e?e.map(t=>({label:t.label,value:t.value,description:t.description})):[]}i(cf,"toSelectOptions");function yh(e){return e.question}i(yh,"getAskUserDialogTitle");function VO(e){switch(e){case"confirm":return X("waiting.confirm");case"select":return X("waiting.select");case"input":return X("waiting.input")}}i(VO,"formatPromptWaitingText");function u0(e){return e.waitingReason==="confirm"?X("placeholder.confirm"):e.waitingReason==="select"?X("placeholder.select"):e.waitingReason==="input"?X("placeholder.input"):e.isLoading?e.canQueueFollowUps?X("placeholder.queue"):X("placeholder.busy"):X("placeholder.idle")}i(u0,"buildPromptPlaceholderText");function d0(e){if(e.isTranscriptMode)return;if(e.waitingReason)return{kind:"waiting",text:VO(e.waitingReason),showSpinner:!1};if(!e.isLoading)return;let t=gg({activeToolCount:e.streamingState.activeToolCalls.filter(n=>n.status===L.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(d0,"buildPromptActivityViewModel");function f0(e,t,n){if(e){if(e.userOverrideContextWindow!==void 0)return e.contextWindow===e.userOverrideContextWindow?e:{...e,contextWindow:e.userOverrideContextWindow};try{let r=n(t.provider)?.getEffectiveContextWindow?.(t.model);if(r!==void 0&&r!==e.contextWindow)return{...e,contextWindow:r};if(r!==void 0)return e}catch{}return e}}i(f0,"resolveEffectiveCompactionInfo");function m0(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===L.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(m0,"buildSurfaceStatusBarProps");function p0(e){let t=uh(e.state),n=t?af(e.state,e.selectableItemIds,e.selectedItemId):void 0,o=n?e.selectableItemIds.indexOf(n):-1;return{selectionEnabled:t,selectedItemId:n,selectedItemIndex:o,position:n?{current:Math.max(1,o+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&&Rv(e.state)},toggleDetail:t&&!!n,navigationCapabilities:{selection:t&&!!n&&e.selectableItemIds.length>0}}}i(p0,"buildTranscriptSelectionRuntimeState");function g0(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(g0,"buildTranscriptSelectionViewModel");function h0(e){return{query:e.query,matches:e.matches,currentMatchIndex:e.currentMatchIndex,anchorItemId:e.anchorItemId,statusText:e.useOverlaySurface?void 0:e.statusText}}i(h0,"buildTranscriptSearchViewModel");function zO(e,t){return e===0?0:t<0?-1:Math.min(t,e-1)}i(zO,"clampTranscriptSearchSelectedIndex");function XO(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(XO,"buildTranscriptSearchDetailText");function y0(e){let t=zO(e.matches.length,e.selectedIndex),n=Uv(e.matches,t),o=XO({isHistorySearchActive:e.isHistorySearchActive,historySearchQuery:e.historySearchQuery,matches:e.matches,clampedSelectedIndex:t});return{clampedSelectedIndex:t,statusText:n,detailText:o,searchState:h0({query:e.historySearchQuery,matches:e.matches,currentMatchIndex:t,anchorItemId:e.anchorItemId,statusText:n,useOverlaySurface:e.useOverlaySurface})}}i(y0,"buildTranscriptSearchChrome");function YO(e=!1){return`\u2190/\u2192 enter select mode | Ctrl+E ${e?"collapse":"show all"} | Mouse drag selects text`}i(YO,"buildDefaultTranscriptSecondaryText");function x0(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(x0,"buildFooterNotifications");function w0(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(w0,"buildBaseFooterNotices");function S0(e){if(e.inputText.trim()&&(e.isTranscriptMode||e.isHistorySearchActive))return"Draft preserved while viewing transcript"}i(S0,"buildStashNoticeText");function T0(e){return[...e]}i(T0,"buildPromptFooterNotices");function qO(e){let n=(e.isHistorySearchActive?[e.historySearchDetailText]:[e.selectionSummary,e.actionSummary]).filter(o=>!!(o&&o.trim().length>0));return n.length===0?YO(e.showAllActive):n.join(" | ")}i(qO,"buildTranscriptFooterSecondaryText");function QO(e){let t=[];return e&&t.push(e),t}i(QO,"buildTranscriptFooterBudgetNotices");function C0(e){let t=e.selectionState?.copyCapabilities,n=e.selectionState?.navigationCapabilities,r=c0(e.textSelection),s=e.textSelection?Is({copyMessage:!0,copyToolInput:!1,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!1,selectionNavigation:!1,matchNavigation:!1,dismissAction:"clear"}):e.selectionState?.itemSummary?Is({copyMessage:!!t?.message,copyToolInput:!!t?.toolInput,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!!e.selectionState?.toggleDetail,selectionNavigation:!!n?.selection,matchNavigation:!1,dismissAction:"clear"}):void 0,a=qO({isHistorySearchActive:e.isHistorySearchActive,historySearchDetailText:e.historySearchDetailText,selectionSummary:r,actionSummary:s,showAllActive:e.showAllActive,baseFooterNotices:e.baseFooterNotices});return{selectionSummary:r,actionSummary:s,secondaryText:a,budgetNotices:QO(a)}}i(C0,"buildTranscriptFooterViewModel");import{jsx as T6,jsxs as C6}from"react/jsx-runtime";function b0(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(b0,"formatAmaWorkStripText");function v0(e){return e.replace(/^\[[^\]]+\]\s*/,"").trim()}i(v0,"stripLiveActivityPrefix");function I0(e){let t=[],n=e.showPrimary??!0;if(e.isLoading&&n){let l=e.currentTool?v0(fd(e.currentTool,e.toolInputContent??"",e.toolInputCharCount??0)):void 0,d=e.liveActivityLabel?v0(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}):d?t.push({id:"primary-live-activity",label:d,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[o,r,s,...a]=t,c=[o,r,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(I0,"buildBackgroundTaskViewModel");function k0(e,t){if(!(!t||!e||e.agentMode!=="ama"))return b0(e.childFanoutClass,e.childFanoutCount)}i(k0,"buildAmaWorkStripFromStatus");function xh(e){let t=k0(e.status,e.isLoading);return{workStripText:t,backgroundTask:I0({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(xh,"buildAmaSummaryViewModel");function wh(e){return{...e,items:[...e.items],managedLiveEvents:[...e.managedLiveEvents??[]]}}i(wh,"captureTranscriptSnapshot");function R0(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(R0,"countPendingTranscriptUpdates");function E0(e){return e.snapshot?[...e.snapshot.items]:e.surface==="transcript"?[...e.transcriptItems]:[...e.promptItems]}i(E0,"resolveTranscriptSurfaceItems");function M0(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:o,...r}=n;t.push(r);break}default:break}return t}i(M0,"buildPromptSurfaceItems");function A0(e,t){return e.enabled?t==="transcript"?e.transcriptShell:e.promptShell:"main-screen"}i(A0,"resolveFullscreenShellMode");function JO(e,t){return e.enabled&&A0(e,t)==="virtual"}i(JO,"shouldUseRendererViewportShell");function _0(e,t){let n=A0(e,t),o=e.enabled&&n==="virtual",r=e.enabled&&n==="virtual",s=o&&(e.mouseWheel||e.mouseClicks),a=s&&e.mouseClicks,c=r&&e.mouseWheel;return{shellMode:n,usesAlternateScreenShell:o,usesRendererViewportShell:r,usesRendererMouseTracking:s,usesManagedMouseClicks:a,usesManagedMouseWheel:c,usesManagedSelection:r,usesManagedWheelHistory:c,usesNativeMainScreenScrollback:!r}}i(_0,"resolveTranscriptInteractionPolicy");function $0(e,t,n){return JO(e,t)?t==="transcript"||n:!1}i($0,"shouldOwnTranscriptViewport");var ZO=500,eD=1,tD=/[\p{L}\p{N}_/.\-+~\\]/u;function nD(e){return e.text===" "?"":e.text}i(nD,"normalizeTranscriptRowText");function P0(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i(P0,"comparePoints");function Sh(e){return e===""||/\s/.test(e)?0:tD.test(e)?1:2}i(Sh,"charClass");function L0(e){let t=e.timeoutMs??ZO,n=e.distance??eD,o=e.time-e.previous.time<=t,r=Math.abs(e.row-e.previous.row)<=n&&Math.abs(e.column-e.previous.column)<=n,s=o&&r?Math.min(3,e.previous.count+1):1;return{time:e.time,row:e.row,column:e.column,count:s}}i(L0,"resolveTranscriptMultiClickState");function lf(e,t,n){let o=e[t.modelRowIndex];if(!o)return;let r=nD(o);if(n==="line")return{kind:n,start:{...t,column:0},end:{...t,column:rr(r)}};let s=rr(r);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=Sh(Sd(r,a)),l=a,d=a+1;for(;l>0&&Sh(Sd(r,l-1))===c;)l-=1;for(;d<s&&Sh(Sd(r,d))===c;)d+=1;return{kind:n,start:{...t,column:l},end:{...t,column:d}}}i(lf,"resolveTranscriptSelectionSpanAt");function Th(e,t){return P0(t.end,e.start)<0?{anchor:e.end,focus:t.start}:P0(t.start,e.end)>0?{anchor:e.start,focus:t.end}:{anchor:e.start,focus:e.end}}i(Th,"extendTranscriptSelectionSpan");var D0="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 Ch(e,t){if(en(e))return[t.getGuardrail()]}i(Ch,"buildAutoModeGuardrails");function rD(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:e.thinking===!0||t.thinking===!0?"auto":"off"}i(rD,"resolveInitialReasoningMode");function iD(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,o]=t,r=n.startsWith("[")?`${n} ${o}`:`${n} / ${o}`;return r.length>220?`${r.slice(0,217)}...`:r}i(iD,"buildManagedTranscriptCompactText");function N0(e){let t=iD(e);return{type:"event",icon:Xg(e)?"\u2713":">",text:e,...t&&t!==e?{compactText:t}:{}}}i(N0,"toManagedTranscriptEventItem");function cr(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(cr,"toCreatableHistoryItem");function Ih(e){return IT(e)?"":er(e).trim()}i(Ih,"sanitizeInterruptedAssistantText");function B0(e){return!!(e?.activeWorkerId&&!e.childFanoutClass&&(e.phase==="preflight"||e.phase==="worker"))}i(B0,"isForegroundManagedStreamingStatus");function sD(e,t,n){let o=[],r=n?.infoItems??[],s=kh({thinking:e,toolCalls:n?.toolCalls,toolNames:n?.toolNames});for(let c of r){let l=c.trim();l&&o.push({type:"info",text:l})}o.push(...s);let a=Ih(t);return a&&o.push({type:"assistant",text:`${a}
395
-
396
- [Interrupted]`}),o}i(sD,"buildInterruptedPersistenceItems");function kh({thinking:e,response:t,toolCalls:n,toolNames:o}){let r=[],s=e?.trim()??"",a=t?.trim()??"",c=n&&n.length>0?[...n]:[],l=o&&o.length>0?[...o]:[];return s&&r.push({type:"thinking",text:s}),c.length>0?r.push({type:"tool_group",tools:c}):!s&&!a&&l.length>0&&r.push({type:"info",icon:"*",text:`Tools: ${l.join(", ")}`}),a&&r.push({type:"assistant",text:a}),r}i(kh,"buildRoundHistoryItems");function j0(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(j0,"toPersistedUiHistoryItem");var H0=150,F0=50,W0=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1";function ei(e){if(e.length===0)return[];let t=[];for(let o=0;o<e.length;o+=1)e[o]?.type==="user"&&t.push(o);let n=[...e];if(t.length>F0){let o=t[t.length-F0]??0;n=e.slice(o)}if(n.length>H0){let o=n.slice(-H0),r=o.findIndex(s=>s.type==="user");n=r>0?o.slice(r):o}return[...n]}i(ei,"trimPersistedUiHistorySnapshot");function Ds(e){if(e)return ei(e)}i(Ds,"normalizePersistedUiHistory");function U0(e){return ei(e.map(t=>j0(t)).filter(t=>!!t))}i(U0,"serializeUiHistorySnapshot");function aD(e){return e.map(t=>j0(t)).filter(t=>!!t)}i(aD,"serializeCreatableHistoryItems");function uf(e,t){return t.length===0?ei(e):ei([...e,...aD(t)])}i(uf,"appendPersistedUiHistorySnapshot");function df(e,t,n){console.log((e==="block"?Ve.red:Ve.yellow)(t)),n.forEach(o=>console.log(Ve.dim(o)))}i(df,"logSessionTransitionGuard");var bh=i(({config:e,sessionId:t,workingDir:n,terminalWidth:o,compactionInfo:r})=>{let s=ee("dark"),a=e.model??vn(e.provider)??e.provider,c=kr(e.provider,e.model),l=Kl(c),d=Math.min(60,o-4),m=r?Math.round(r.contextWindow/1e3):0,p=r?Math.round(r.contextWindow*r.triggerPercent/100/1e3):0;return Yt(I,{flexDirection:"column",marginBottom:1,children:[qg.map((g,x)=>se(C,{color:s.colors.primary,children:g},x)),Yt(I,{children:[Yt(C,{bold:!0,color:s.colors.text,children:[" v",Bi]}),se(C,{dimColor:!0,children:" | "}),Yt(C,{color:s.colors.success,children:[e.provider,"/",a]}),se(C,{dimColor:!0,children:` [${l}]`}),se(C,{dimColor:!0,children:" | "}),se(C,{color:s.colors.primary,children:e.agentMode.toUpperCase()}),se(C,{dimColor:!0,children:" | "}),se(C,{color:s.colors.accent,children:e.permissionMode}),e.reasoningMode!=="off"&&se(C,{color:s.colors.warning,children:` +reason:${e.reasoningMode}`})]}),r&&Yt(I,{children:[se(C,{dimColor:!0,children:" Context: "}),Yt(C,{dimColor:!0,children:[m,"k"]}),se(C,{dimColor:!0,children:" | Compaction: "}),se(C,{color:r.enabled?s.colors.success:void 0,dimColor:!r.enabled,children:r.enabled?"on":"off"}),se(C,{dimColor:!0,children:` @ ${r.triggerPercent}% (${p}k)`})]}),Yt(C,{dimColor:!0,children:[" ","-".repeat(d)]}),Yt(I,{children:[se(C,{dimColor:!0,children:" Session: "}),se(C,{color:s.colors.accent,children:t}),se(C,{dimColor:!0,children:" | Working: "}),se(C,{dimColor:!0,children:n})]}),Yt(C,{dimColor:!0,children:[" ","-".repeat(d)]})]})},"Banner");function cD(e){let t=e.config.model??vn(e.config.provider)??e.config.provider,n=kr(e.config.provider,e.config.model),o=Kl(n),r=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${Bi} | ${e.config.provider}/${t} [${o}] | ${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,d=` Session: ${e.sessionId} | Working: ${e.workingDir}`,m=` ${"-".repeat(r)}`,p=[],g=i(h=>{let T=Qt(h.length>0?h.split(`
397
- `):[""],Math.max(1,e.terminalWidth),0,0);return T.visualLines.length>0?T.visualLines:[""]},"wrapBannerLine"),x=i((h,T,w)=>{g(T).forEach((b,O)=>{p.push({key:`${h}-${O}`,text:b,...w})})},"pushLineRows");return qg.forEach((h,T)=>{x(`banner-logo-${T}`,h,{color:"primary"})}),x("banner-version",c,{color:"text",bold:!0}),l&&x("banner-compaction",l,{color:"dim"}),x("banner-divider-top",m,{color:"dim"}),x("banner-session",d,{color:"dim"}),x("banner-divider-bottom",m,{color:"dim"}),p.push({key:"banner-blank",text:" "}),{key:"banner",rows:p}}i(cD,"buildBannerTranscriptSection");function vh(e,t){return t?{...e,sections:[t,...e.sections],rows:[...t.rows,...e.rows]}:e}i(vh,"prependTranscriptSection");var lD=i(({options:e,config:t,context:n,storage:o,rendererMode:r,fullscreenPolicy:s,onExit:a,compactionInfo:c,autoModeBootstrap:l,setAutoModeAskUser:d,setAutoModeEngineChange:m,setCurrentConfigRef:p,onAgentsFilesReload:g,teamModeHandle:x})=>{let{exit:h}=qo(),{stdout:T}=eo(),{stdin:w,setRawMode:b,isRawModeSupported:O}=Da(),P=ss(),{history:N}=mc(),K=O0.useRef(null),W=O0.useRef(Wx()),{addHistoryItem:v,addHistoryItems:Z,clearHistory:Se,setSessionId:z}=pc(),re=he(N),A=he(U0(N));He(()=>{re.current=N,A.current=U0(N)},[N]),He(()=>{lv()},[]),He(()=>{KT()},[]);let k=T.columns||80,_=yc(),be=he(_);He(()=>{be.current=_},[_]);let{startStreaming:Pe,stopStreaming:ye,abort:le,startThinking:Ae,appendThinkingChars:ae,appendThinkingContent:q,stopThinking:Y,clearThinkingContent:Re,setCurrentTool:ce,appendToolInputChars:lt,appendToolInputContent:ze,clearToolInputContent:Oe,clearResponse:ue,appendResponse:Mt,getSignal:bt,getFullResponse:Q,getThinkingContent:M,startNewIteration:$,clearIterationHistory:U,startCompacting:J,stopCompacting:Ee,setMaxIter:ot,addPendingInput:ve,removeLastPendingInput:De,shiftPendingInput:At,consumePendingInputs:ie}=xc(),[te,Ge]=We(!1),[D,Je]=We(t),rn=me(()=>f0(c,{provider:D.provider,model:D.model},Cr),[c,D.provider,D.model]),[oi,Lo]=We(!0),[vf,RN]=We(!0),[Nc,Bc]=We(0),[If,Ws]=We(!1),[Wh,Kn]=We(null),tk=me(()=>Mr(),[]),Us=he(null),Hc=he(null),Uh=he(Promise.resolve()),Fc=he(null),dr=he({requested:!1,uiHistoryOverride:void 0}),ri=he(null),js=he(!1),Gs=he(null),[kf,Wc]=We(!0),[Rf,Uc]=We(""),[Ne,Vn]=We(()=>gv(tk,{rendererMode:r})),[vt,Ef]=We(!1),[nk,ok]=We(0),{scrollRef:rk,scrollOffset:Pn,sticky:Mf,setScrollOffset:ik,handleScrollTopChange:sk,handleStickyChange:ak,scrollTo:jc,scrollBy:Gc,scrollToBottom:Kc}=Zv(),Af=he(null),Vc=he(null),Ks=he([]),zc=he([]),ii=he(null),Ln=he(null),jh=he({time:0,row:-1,column:-1,count:0}),[Xc,_f]=We(void 0),[fr,$f]=We(void 0),[si,Gh]=We(void 0),[sn,ck]=We(()=>new Set),[Pf,Kh]=We(null),[Dt,Vh]=We(null),[j,Lf]=We(null),[Yc,Oo]=We([]),ai=me(()=>{for(let f of Yc)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}},[Yc]),[EN,Vs]=We([]),[zs,lk]=We([]),[qc,dt]=We(void 0),[mr,Qc]=We(void 0),rt=he(null),Of=he(null),pr=he([]),ci=he([]),Gt=he([]),Df=he(new Set),nt=he({}),ft=he({activeToolGroupTools:[]}),zh=he(0),Jc=he({itemId:void 0,kind:"thinking",pendingText:""}),On=he(null),uk=80,dk=20,fk=he(null),Zc=me(()=>[...N,...zs],[N,zs]),Nf=me(()=>{let f=UC(Zc,fk);return f===0?Zc:Zc.slice(f)},[Zc]),el=me(()=>jC(Nf,dk),[Nf]),li=Nf,Nt=he(null),zn=he(null),Xn=he([]),Bt=he([]),[gr,mk]=We([]),mo=he([]),hn=V(f=>{mo.current=f,mk(f)},[]),Xh=V(f=>{pr.current=f,Vs(f)},[]),ui=V(f=>{Gt.current=f,lk(f)},[]),Yh=V(f=>{let y=f([...Gt.current]);ui(y)},[ui]),qh=V(f=>{f.length!==0&&ui([...Gt.current,...f])},[ui]),tl=V(f=>{let y=ft.current,S=y.activeToolGroupTools.some(E=>E.status===L.Executing);ft.current={...f?.clearOwner?{}:{workerId:y.workerId,workerTitle:y.workerTitle},...S?{activeToolGroupItemId:y.activeToolGroupItemId,activeToolGroupTools:y.activeToolGroupTools}:{activeToolGroupTools:[]}},f?.clearOwner&&(nt.current={})},[]),nl=V(f=>{for(let y of f)y.type==="user"&&typeof y.id=="string"&&Df.current.add(y.id)},[]),Xs=V(()=>{Jc.current={itemId:void 0,kind:"thinking",pendingText:""},On.current&&(clearTimeout(On.current),On.current=null);let f=kg(Gt.current,Df.current);if(f.length>0){for(let y of f)Df.current.add(y.id);ri.current?.(f.map(y=>cr(y)))}tl({clearOwner:!0}),ui([])},[tl,ui]),ol=V(f=>(zh.current+=1,`managed-foreground-${f}-${zh.current}`),[]),yn=V(f=>(qh([f]),f.id),[qh]),hr=V((f,y)=>{nt.current.workerId?yn({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()}):v(f)},[v,yn]),po=V((f,y)=>{if(!f)return;let S;return Yh(E=>E.map(R=>R.id!==f?R:(S=y(R),S))),S},[Yh]),di=V((f,y)=>{let S=ft.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 E=Date.now(),R=y?.trim()?`[${y.trim()}] `:"",B=S.activeToolGroupTools.some(G=>G.status===L.Executing);if(f==="thinking"){let G=yn({id:ol("thinking"),type:"thinking",timestamp:E,text:R});return ft.current={...ft.current,activeKind:"thinking",activeThinkingItemId:G,currentTurnThinkingItemId:G,activeAssistantItemId:void 0,...B?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},G}if(f==="assistant"){let G=yn({id:ol("assistant"),type:"assistant",timestamp:E,text:R});return ft.current={...ft.current,activeKind:"assistant",activeThinkingItemId:void 0,activeAssistantItemId:G,...B?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},G}let H=yn({id:ol("tool_group"),type:"tool_group",timestamp:E,tools:[]});return ft.current={...ft.current,activeKind:"tool_group",activeThinkingItemId:void 0,activeAssistantItemId:void 0,activeToolGroupItemId:H,activeToolGroupTools:[]},H},[yn,ol]),go=V(()=>{On.current&&(clearTimeout(On.current),On.current=null);let f=Jc.current;if(!f.pendingText||!f.itemId)return;let y=f.pendingText,S=f.itemId,E=f.kind;f.pendingText="",po(S,R=>R.type!==E?R:{...R,text:`${R.text}${y}`})},[po]),Qh=V(()=>{On.current||(On.current=setTimeout(go,uk))},[go]),rl=V((f,y)=>{if(!y)return;let S=ft.current.workerTitle,E=di(f,S),R=Jc.current;R.itemId===E&&R.kind===f?R.pendingText+=y:(go(),R.itemId=E,R.kind=f,R.pendingText=y),Qh()},[di,go,Qh]),Jh=V(f=>{let y=f.trim();if(!y)return;let S=Jc.current;S.kind==="thinking"&&S.pendingText&&(S.pendingText="",On.current&&(clearTimeout(On.current),On.current=null));let E=ft.current.workerTitle?.trim(),R=E?`[${E}] ${y}`:y,B=ft.current.currentTurnThinkingItemId;if(B){po(B,G=>G.type==="thinking"?{...G,text:R}:G);return}let H=di("thinking",ft.current.workerTitle);po(H,G=>G.type==="thinking"?{...G,text:R}:G)},[di,po]),Dn=V(f=>{go();let y=ft.current;if(y.activeToolGroupItemId&&y.activeToolGroupTools.some(H=>H.id===f.id)){let H=y.activeToolGroupTools.map(oe=>oe.id===f.id?f:oe),G=H.every(oe=>oe.status===L.Success||oe.status===L.Error||oe.status===L.Cancelled);ft.current={...y,...G?{activeToolGroupItemId:void 0,activeToolGroupTools:[]}:{activeToolGroupTools:H}},po(y.activeToolGroupItemId,oe=>oe.type==="tool_group"?{...oe,tools:H}:oe);return}let S=Gt.current;for(let H=S.length-1;H>=0;H-=1){let G=S[H];if(G.type!=="tool_group"||!G.tools.some(Te=>Te.id===f.id))continue;let oe=G.tools.map(Te=>Te.id===f.id?f:Te);po(G.id,Te=>Te.type==="tool_group"?{...Te,tools:oe}:Te);return}let E=di("tool_group",y.workerTitle),B=y.activeKind==="tool_group"&&y.activeToolGroupItemId===E?y.activeToolGroupTools.some(H=>H.id===f.id)?y.activeToolGroupTools.map(H=>H.id===f.id?f:H):[...y.activeToolGroupTools,f]:[f];ft.current={...ft.current,activeKind:"tool_group",activeToolGroupItemId:E,activeToolGroupTools:B},po(E,H=>H.type==="tool_group"?{...H,tools:B}:H)},[di,po,go]),pk=V(f=>{go();let y=ft.current,S=y.activeToolGroupTools.some(B=>B.status===L.Executing),E=mo.current.filter(B=>B.status===L.Executing),R=new Set(E.map(B=>B.id));ft.current={workerId:f?.workerId,workerTitle:f?.workerTitle,...S?{activeToolGroupItemId:y.activeToolGroupItemId,activeToolGroupTools:y.activeToolGroupTools}:{activeToolGroupTools:[]}},nt.current={workerId:f?.workerId,workerTitle:f?.workerTitle},Xn.current=[],Bt.current=Bt.current.filter(B=>R.has(B.id)),hn(E),Oe(),ce(void 0),Y(),Re(),ue(),dt(void 0)},[go,Oe,ue,Re,ce,hn,dt,Y]),gk=V(f=>{if(f.length===0)return[];let y=[],S=[...pr.current],E=[...ci.current];for(let R of f){let B=R.item,H=S.findIndex(G=>G.id===B.id);if(H>=0){let G=S[H];Jd(G,B)||(S=S.map((oe,Te)=>Te===H?{...B,timestamp:G.timestamp}:oe))}else S=[...S,B].slice(-12),y.push(B);if(R.persistToHistory){let G=E.findIndex(oe=>oe.id===B.id);if(G>=0){let oe=E[G];Jd(oe,B)||(E=E.map((Te,mt)=>mt===G?{...B,timestamp:oe.timestamp}:Te))}else E=[...E,B].slice(-48)}}return ci.current=E,(y.length>0||S.some((R,B)=>!Jd(R,pr.current[B]??R)||R.id!==pr.current[B]?.id))&&Xh(S),y},[Xh]),il=V(f=>{if(Bt.current.findIndex(S=>S.id===f.id)===-1){Bt.current=[...Bt.current,f];return}Bt.current=Bt.current.map(S=>S.id===f.id?f:S)},[]),Do=V(f=>{let y=mo.current.filter(S=>S.status===L.Executing);if(y.length!==0){if(f){let S=zg(f);for(let E=y.length-1;E>=0;E-=1){let R=y[E];if(zg(R.name)===S)return R}}return y[y.length-1]}},[]),fi=V(()=>{let f=Do();ce(f?Vg(f.name):void 0)},[Do,ce]),Zh=V(f=>(il(f),hn([...mo.current.filter(y=>y.id!==f.id),f]),fi(),f),[hn,fi,il]),mi=V((f,y)=>{let S=mo.current.find(R=>R.id===f);if(!S)return null;let E=y(S);return il(E),hn(mo.current.map(R=>R.id===f?E:R)),fi(),E},[hn,fi,il]),ey=V((f,y,S)=>{if(f){let R=mi(f,S);if(R)return R}let E=Do(y);return E?mi(E.id,S):null},[Do,mi]),sl=V((f,y,S,E,R)=>{let B=f??Do(R)?.id;return B?mi(B,H=>({...H,status:y,endTime:Date.now(),error:S,output:E})):null},[Do,mi]),Ys=V((f,y)=>{let S=Date.now(),E=new Map;for(let R of mo.current){if(R.status!==L.Executing)continue;let B=y(R);E.set(R.id,{...R,status:f,endTime:S,...B})}return E.size===0?[]:(Bt.current=Bt.current.map(R=>E.get(R.id)??R),hn(mo.current.map(R=>E.get(R.id)??R)),fi(),[...E.values()])},[hn,fi]),No=V(()=>{hn([])},[hn]),{showHelp:ty,toggleHelp:hk,setShowHelp:ny}=Zg(),yk=V(f=>{Uc(f),Wc(f.trim().length===0)},[]),al=Kr(),oy=me(()=>al?al.state.visible&&al.suggestions.length>0:!1,[al]),[qs,ry]=We(!1),iy=he(Nc),Qs=V(()=>{Nt.current&&(clearTimeout(Nt.current),Nt.current=null),zn.current&&(clearTimeout(zn.current),zn.current=null)},[]);He(()=>{oy&&!qs&&ry(!0)},[oy,qs]),He(()=>{Nc!==iy.current&&(iy.current=Nc,qs&&ry(!1))},[Nc,qs]);let[Qe,cl]=We(null),yr=he(null),[Me,Nn]=We(null),ll=he(null),ul=he(Me);ul.current=Me;let[Kt,pi]=We(""),[dl,Bn]=We(0),Bf=he(""),Js=he(void 0),sy=me(()=>{if(!rn)return;let{contextWindow:f,triggerPercent:y}=rn;return{currentTokens:Wh??n.contextTokenSnapshot?.currentTokens??br(n.messages),contextWindow:f,triggerPercent:y}},[n.messages,n.contextTokenSnapshot,rn,Wh]),Zs=me(()=>{if(!Qe)return;let f=!!Qe.input._alwaysConfirm,y=D.permissionMode==="accept-edits"&&!f;return f?X("confirm.instruction.protected"):y?X("confirm.instruction.always"):X("confirm.instruction.basic")},[Qe,D.permissionMode]),it=Ne.searchMode==="history",ne=Ne.surface==="transcript",Bo=!!Qe||!!Me||it,yt=ne?vt?NC:1e3:12,Ho=_0(s,Ne.surface),ay=Ho.shellMode,Hf=Ho.usesAlternateScreenShell,gi=Ho.usesRendererViewportShell,fl=Ho.usesRendererMouseTracking,cy=Ho.usesManagedMouseClicks,ly=Ho.usesManagedMouseWheel,Ff=Ho.usesManagedSelection,xt=$0(s,Ne.surface,Iv(Ne)),uy=kv(Ne),ml=qs&&!ne,dy=V(()=>wh({items:li,managedLiveEvents:[],isLoading:te,isThinking:_.isThinking,thinkingCharCount:_.thinkingCharCount,thinkingContent:_.thinkingContent,currentResponse:_.currentResponse,currentTool:_.currentTool,activeToolCalls:gr,toolInputCharCount:_.toolInputCharCount,toolInputContent:_.toolInputContent,lastLiveActivityLabel:qc,workStripText:mr,iterationHistory:_.iterationHistory,currentIteration:_.currentIteration,isCompacting:_.isCompacting}),[li,te,_.isThinking,_.thinkingCharCount,_.thinkingContent,_.currentResponse,_.currentTool,gr,_.toolInputCharCount,_.toolInputContent,qc,mr,_.iterationHistory,_.currentIteration,_.isCompacting]);He(()=>{if(ne){Kh(f=>f??dy());return}Kh(null)},[dy,ne]);let ea=me(()=>R0({isTranscriptMode:ne,snapshot:Pf,currentItemsLength:li.length,currentManagedLiveEventsLength:0,isLoading:te,currentResponse:_.currentResponse,thinkingContent:_.thinkingContent,activeToolCallsLength:gr.length}),[gr.length,te,ne,li.length,_.currentResponse,_.thinkingContent,Pf]),_t=ne?Pf:null,Wf=me(()=>M0(el),[el]),xk=me(()=>!!(zs.length>0||B0(j)),[zs.length,j]),pl=zs.length>0,Ht=s.streamingPreview&&xk,hi=me(()=>E0({surface:"transcript",snapshot:_t,promptItems:el,transcriptItems:li}),[_t,el,li]),ta=me(()=>{if(!ne||vt||hi.length<=dg)return hi;let f=hi.slice(-dg),y=hi.length-f.length;return[VC(y,f[0]?.timestamp),...f]},[hi,ne,vt]),st=_t?.isLoading??te,Ze=s.streamingPreview?{isThinking:Ht?!1:_.isThinking,thinkingCharCount:Ht?0:_.thinkingCharCount,thinkingContent:Ht?"":_.thinkingContent,currentResponse:Ht?"":_.currentResponse,currentTool:Ht?void 0:_.currentTool,activeToolCalls:Ht?[]:gr,toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:Ht?qc:void 0,iterationHistory:[],currentIteration:_.currentIteration,isCompacting:!1}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:_.currentIteration,isCompacting:!1},xe=s.streamingPreview?{isThinking:Ht?!1:_t?.isThinking??_.isThinking,thinkingCharCount:Ht?0:_t?.thinkingCharCount??_.thinkingCharCount,thinkingContent:Ht?"":_t?.thinkingContent??_.thinkingContent,currentResponse:Ht?"":_t?.currentResponse??_.currentResponse,currentTool:Ht?void 0:_t?.currentTool??_.currentTool,activeToolCalls:Ht?[]:_t?.activeToolCalls??gr,toolInputCharCount:Ht?0:_t?.toolInputCharCount??_.toolInputCharCount,toolInputContent:Ht?"":_t?.toolInputContent??_.toolInputContent,managedLiveEvents:[],lastLiveActivityLabel:_t?.lastLiveActivityLabel??qc,iterationHistory:Ht?[]:_t?.iterationHistory??_.iterationHistory,currentIteration:_t?.currentIteration??_.currentIteration,isCompacting:_t?.isCompacting??_.isCompacting}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:_t?.currentIteration??_.currentIteration,isCompacting:!1},ho=ne?fr:Xc,fy=!!Xc,my=V(()=>wh({items:Wf,managedLiveEvents:[],isLoading:te,isThinking:Ze.isThinking,thinkingCharCount:Ze.thinkingCharCount,thinkingContent:Ze.thinkingContent,currentResponse:Ze.currentResponse,currentTool:Ze.currentTool,activeToolCalls:Ze.activeToolCalls,toolInputCharCount:Ze.toolInputCharCount,toolInputContent:Ze.toolInputContent,lastLiveActivityLabel:Ze.lastLiveActivityLabel,iterationHistory:Ze.iterationHistory,currentIteration:Ze.currentIteration,isCompacting:Ze.isCompacting}),[te,Wf,Ze.activeToolCalls,Ze.currentIteration,Ze.currentResponse,Ze.currentTool,Ze.isCompacting,Ze.isThinking,Ze.iterationHistory,Ze.lastLiveActivityLabel,Ze.thinkingCharCount,Ze.thinkingContent,Ze.toolInputCharCount,Ze.toolInputContent]);He(()=>{if(!fy){Vh(null);return}Vh(f=>f??my())},[my,fy]);let na=Dt?.items??Wf,Vt=Dt?.isLoading??te,Ie=Dt?{isThinking:Dt.isThinking,thinkingCharCount:Dt.thinkingCharCount,thinkingContent:Dt.thinkingContent,currentResponse:Dt.currentResponse,currentTool:Dt.currentTool,activeToolCalls:Dt.activeToolCalls,toolInputCharCount:Dt.toolInputCharCount,toolInputContent:Dt.toolInputContent,managedLiveEvents:Dt.managedLiveEvents,lastLiveActivityLabel:Dt.lastLiveActivityLabel,iterationHistory:Dt.iterationHistory,currentIteration:Dt.currentIteration,isCompacting:Dt.isCompacting}:Ze,$t=ne?ta:na,Yn=ne?st:Vt,Ue=ne?xe:Ie,py=Vt&&!_.currentResponse&&!_.thinkingContent&&gr.length===0,xr=me(()=>({config:D,sessionId:n.sessionId,workingDir:e.context?.gitRoot||process.cwd(),terminalWidth:k,compactionInfo:rn??void 0}),[rn,n.sessionId,D,e.context?.gitRoot,k]),yi=me(()=>s.enabled&&vf?cD(xr):void 0,[xr,s.enabled,vf]),Uf=me(()=>gd({items:na,viewportWidth:k,maxLines:yt,showDetailedTools:!1,showAllContent:!1,windowed:!1}),[na,k,yt]),gl=me(()=>{let f=hd({activeItems:Uf.activeItems,viewportWidth:k,isLoading:Vt,maxLines:yt,isThinking:Ie.isThinking,thinkingCharCount:Ie.thinkingCharCount,thinkingContent:Ie.thinkingContent,streamingResponse:Ie.currentResponse,currentTool:Ie.currentTool,activeToolCalls:Ie.activeToolCalls,toolInputCharCount:Ie.toolInputCharCount,toolInputContent:Ie.toolInputContent,iterationHistory:Ie.iterationHistory,currentIteration:Ie.currentIteration,isCompacting:Ie.isCompacting,managedAgentMode:D.agentMode,managedPhase:Vt?j?.phase:void 0,managedHarnessProfile:Vt?j?.harnessProfile:void 0,managedWorkerTitle:Vt?j?.activeWorkerTitle:void 0,managedRound:Vt?j?.currentRound:void 0,managedMaxRounds:Vt?j?.maxRounds:void 0,managedGlobalWorkBudget:Vt?j?.globalWorkBudget:void 0,managedBudgetUsage:Vt?j?.budgetUsage:void 0,managedBudgetApprovalRequired:Vt?j?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Ie.lastLiveActivityLabel,currentTodoActiveForm:ai,showFullThinking:!1,showDetailedTools:!1,showAllContent:!1,showLiveProgressRows:py});return vh(ug(yd(Uf,f)),yi)},[D.agentMode,Vt,Ie.activeToolCalls,Ie.currentIteration,Ie.currentTool,Ie.isCompacting,Ie.currentResponse,Ie.isThinking,Ie.iterationHistory,Ie.lastLiveActivityLabel,Ie.thinkingCharCount,Ie.thinkingContent,Ie.toolInputCharCount,Ie.toolInputContent,j?.activeWorkerTitle,j?.budgetApprovalRequired,j?.budgetUsage,j?.currentRound,j?.globalWorkBudget,j?.harnessProfile,j?.maxRounds,j?.phase,py,Uf,yi,k,yt,ai]),jf=me(()=>gd({items:ta,viewportWidth:k,maxLines:yt,showDetailedTools:vt,showAllContent:vt,windowed:!1}),[ta,k,yt,vt]),hl=me(()=>{if(!ne||gi)return;let f=hd({activeItems:jf.activeItems,viewportWidth:k,isLoading:st,maxLines:yt,isThinking:xe.isThinking,thinkingCharCount:xe.thinkingCharCount,thinkingContent:xe.thinkingContent,streamingResponse:xe.currentResponse,currentTool:xe.currentTool,activeToolCalls:xe.activeToolCalls,toolInputCharCount:xe.toolInputCharCount,toolInputContent:xe.toolInputContent,iterationHistory:xe.iterationHistory,currentIteration:xe.currentIteration,isCompacting:xe.isCompacting,managedAgentMode:D.agentMode,managedPhase:st?j?.phase:void 0,managedHarnessProfile:st?j?.harnessProfile:void 0,managedWorkerTitle:st?j?.activeWorkerTitle:void 0,managedRound:st?j?.currentRound:void 0,managedMaxRounds:st?j?.maxRounds:void 0,managedGlobalWorkBudget:st?j?.globalWorkBudget:void 0,managedBudgetUsage:st?j?.budgetUsage:void 0,managedBudgetApprovalRequired:st?j?.budgetApprovalRequired:void 0,lastLiveActivityLabel:xe.lastLiveActivityLabel,currentTodoActiveForm:ai,showFullThinking:!0,showDetailedTools:vt,showAllContent:vt,showLiveProgressRows:!pl,expandedItemKeys:sn});return vh(ug(yd(jf,f)),yi)},[D.agentMode,sn,pl,yi,ne,j?.activeWorkerTitle,j?.budgetApprovalRequired,j?.budgetUsage,j?.currentRound,j?.globalWorkBudget,j?.harnessProfile,j?.maxRounds,j?.phase,k,st,yt,jf,xe.activeToolCalls,xe.currentIteration,xe.currentResponse,xe.currentTool,xe.isCompacting,xe.isThinking,xe.iterationHistory,xe.lastLiveActivityLabel,xe.thinkingCharCount,xe.thinkingContent,xe.toolInputCharCount,xe.toolInputContent,vt,gi,ai]),oa=me(()=>{if(xt)return ne?vh(xd({items:$t,viewportWidth:k,isLoading:Yn,maxLines:yt,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:Yn?j?.phase:void 0,managedHarnessProfile:Yn?j?.harnessProfile:void 0,managedWorkerTitle:Yn?j?.activeWorkerTitle:void 0,managedRound:Yn?j?.currentRound:void 0,managedMaxRounds:Yn?j?.maxRounds:void 0,managedGlobalWorkBudget:Yn?j?.globalWorkBudget:void 0,managedBudgetUsage:Yn?j?.budgetUsage:void 0,managedBudgetApprovalRequired:Yn?j?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Ue.lastLiveActivityLabel,currentTodoActiveForm:ai,windowed:!0,showFullThinking:ne,showDetailedTools:vt,showAllContent:vt,showLiveProgressRows:ne&&!pl,expandedItemKeys:ne?sn:void 0}),yi):gl},[D.agentMode,Yn,$t,pl,yi,Ue.activeToolCalls,Ue.currentIteration,Ue.currentResponse,Ue.currentTool,Ue.isCompacting,Ue.isThinking,Ue.iterationHistory,Ue.lastLiveActivityLabel,Ue.thinkingCharCount,Ue.thinkingContent,Ue.toolInputCharCount,Ue.toolInputContent,sn,ne,j?.activeWorkerTitle,j?.budgetApprovalRequired,j?.budgetUsage,j?.currentRound,j?.globalWorkBudget,j?.harnessProfile,j?.maxRounds,j?.phase,gl,te,ne,k,yt,xt,vt,ai]),qn=me(()=>oa??hl,[oa,hl]),ra=me(()=>xh({status:j,isLoading:te,agentMode:D.agentMode}),[D.agentMode,te,j]).workStripText,ia=_t?.workStripText??mr,xi=me(()=>xh({status:j,isLoading:te,agentMode:D.agentMode,parallelTextOverride:ia}),[D.agentMode,ia,te,j]),wr=me(()=>Kv($t).filter(f=>f!==wd),[$t]),Ye=me(()=>af(Ne,wr,Ne.selectedItemId),[wr,Ne]),an=me(()=>$t.find(f=>f.id===Ye),[$t,Ye]),gy=me(()=>({...Ne,supportsSelection:Ne.supportsSelection&&xt,supportsCopyOnSelect:Ne.supportsCopyOnSelect&&xt}),[Ne,xt]),xn=me(()=>p0({state:gy,selectableItemIds:wr,selectedItemId:Ye,selectedItemType:an?.type,isExpanded:Ye?sn.has(Ye):!1}),[sn,wr,an?.type,Ye,gy]),hy=xn.selectionEnabled,yy=xn.copyCapabilities.copyOnSelect,_N=xn.selectedItemIndex,xy=me(()=>Gv(an),[an]),yl=me(()=>Fv($t.filter(f=>!mg(f))),[$t]),It=me(()=>Wv(yl,Kt),[yl,Kt]),xl=me(()=>y0({isHistorySearchActive:it,historySearchQuery:Kt,matches:It,selectedIndex:dl,anchorItemId:Ne.searchAnchorItemId,useOverlaySurface:Ne.supportsOverlaySurface&&Ne.supportsSearchViewport&&xt}),[It,Kt,dl,it,Ne.searchAnchorItemId,Ne.supportsOverlaySurface,Ne.supportsSearchViewport,xt]),Fo=xl.clampedSelectedIndex,wy=xl.statusText,Gf=xl.detailText,Sy=xl.searchState,$N=xn.detailState==="expanded",wl=xn.selectionEnabled&&wr.length>0&&!ho,wi=xn.copyCapabilities.message,Sl=xn.copyCapabilities.toolInput,Tl=xn.toggleDetail;He(()=>{if(ra){if(zn.current&&(clearTimeout(zn.current),zn.current=null),mr===ra)return;if(mr){Nt.current&&(clearTimeout(Nt.current),Nt.current=null),Qc(ra);return}Nt.current&&clearTimeout(Nt.current),Nt.current=setTimeout(()=>{Qc(ra),Nt.current=null},400);return}if(!mr){Nt.current&&(clearTimeout(Nt.current),Nt.current=null);return}Nt.current&&(clearTimeout(Nt.current),Nt.current=null),zn.current&&clearTimeout(zn.current),zn.current=setTimeout(()=>{Qc(void 0),zn.current=null},300)},[Qs,ra,mr]),He(()=>()=>{Qs()},[Qs]);let Wo=me(()=>Yv({state:Ne,ownsViewport:xt,isAwaitingUserInteraction:Bo,isHistorySearchActive:it,isTranscriptMode:ne,historySearchQuery:Kt}),[Kt,Bo,it,ne,Ne,xt]);He(()=>{Vn(f=>{let y=wv(f,Pn);return y=xv(y,ea),y=Tv(y,s.enabled&&xt?!Mf||it||Bo:ne||it||Bo),y=vv(y,Fo),y})},[Fo,s.enabled,Pn,Bo,it,ne,ea,xt,Mf]),He(()=>{dl!==Fo&&Bn(Fo)},[Fo,dl]),He(()=>{if(!it){Bf.current=Kt;return}if(Kt===Bf.current)return;Bf.current=Kt;let f=jv(yl,It,Ne.searchAnchorItemId);Bn(f)},[It,Kt,it,Ne.searchAnchorItemId,yl]);let Ty=ne?xe:{isThinking:Ie.isThinking,thinkingCharCount:Ie.thinkingCharCount,currentTool:Ie.currentTool,activeToolCalls:Ie.activeToolCalls,toolInputCharCount:Ie.toolInputCharCount,toolInputContent:Ie.toolInputContent,currentIteration:Ie.currentIteration,isCompacting:Ie.isCompacting},sa=ne?st:Vt,[Kf,Vf]=We(()=>en(D.permissionMode)?l.getGuardrail().getEngine():void 0),Cl=me(()=>m0({sessionId:n.sessionId,permissionMode:D.permissionMode,agentMode:D.agentMode,provider:D.provider,model:D.model??vn(D.provider)??D.provider,thinking:D.thinking,reasoningMode:D.reasoningMode,reasoningCapability:Kl(kr(D.provider,D.model)),isTranscriptMode:ne,streamingState:Ty,maxIter:_.maxIter,contextUsage:sy,isLoading:sa,managedState:{phase:j?.phase,harnessProfile:j?.harnessProfile,workerTitle:j?.activeWorkerTitle,round:j?.currentRound,maxRounds:j?.maxRounds,globalWorkBudget:j?.globalWorkBudget,budgetUsage:j?.budgetUsage,budgetApprovalRequired:j?.budgetApprovalRequired,idleWaiting:j?.idleWaiting,idleWaitingPendingCount:j?.idleWaitingPendingCount},autoModeEngine:Kf}),[n.sessionId,D.permissionMode,D.agentMode,D.provider,D.model,D.thinking,D.reasoningMode,ne,Ty,_.maxIter,sy,sa,j?.phase,j?.harnessProfile,j?.activeWorkerTitle,j?.currentRound,j?.maxRounds,j?.globalWorkBudget,j?.budgetUsage,j?.budgetApprovalRequired,j?.idleWaiting,j?.idleWaitingPendingCount,Kf]),zf=Qe?"confirm":Me?.kind,Uo=me(()=>d0({isTranscriptMode:ne,isLoading:sa,streamingState:Ie,managedState:sa?{phase:j?.phase,harnessProfile:j?.harnessProfile,workerTitle:j?.activeWorkerTitle}:void 0,waitingReason:zf}),[Ie.activeToolCalls,Ie.currentTool,Ie.isCompacting,Ie.isThinking,Ie.thinkingCharCount,Ie.toolInputCharCount,Ie.toolInputContent,ne,j?.activeWorkerTitle,j?.harnessProfile,j?.phase,zf,sa]),Xf=Uo?.text,yo=me(()=>Bb(Yc,{now:Date.now(),lastAllCompletedAt:null}),[Yc]),Cy=he(!1);He(()=>{Cy.current&&!te&&Oo(f=>f.length>0?[]:f),Cy.current=te},[te]);let Yf=me(()=>vd(Cl),[Cl]),by=me(()=>Yf,[Yf]),vy=by.text,wk=me(()=>yb(_.pendingInputs),[_.pendingInputs]),qf=me(()=>Hb({isHistorySearchActive:it,isTranscriptMode:ne,pendingInputCount:_.pendingInputs.length,buffering:Ne.buffering,pendingLiveUpdates:ea}),[it,ne,ea,_.pendingInputs.length,Ne.buffering]),Iy=qf.leftItems,ky=qf.rightItems,Ry=qf.summary,bl=me(()=>w0({historySearchQuery:Kt,pendingInputCount:_.pendingInputs.length}),[Kt,_.pendingInputs.length]),vl=me(()=>x0({historySearchQuery:Kt,isHistorySearchActive:it,historySearchMatchCount:It.length,pendingInputCount:_.pendingInputs.length,maxPendingInputs:5}),[It.length,Kt,it,_.pendingInputs.length]),Ey=me(()=>vl.map(f=>f.text).join(" | "),[vl]),Il=me(()=>S0({inputText:Rf,isTranscriptMode:ne,isHistorySearchActive:it}),[Rf,it,ne]),My=Ne.supportsOverlaySurface&&Ne.supportsSearchViewport&&xt,kl=me(()=>g0({runtime:xn,itemSummary:xy}),[xy,xn]),Qf=me(()=>T0(bl),[bl]),Ay=me(()=>C0({textSelection:ho,selectionState:kl,isHistorySearchActive:it,historySearchDetailText:Gf,historySearchHasMatches:!!wy&&It.length>0,showAllActive:vt,baseFooterNotices:bl}),[ho,bl,Gf,It.length,wy,it,vt,kl]),Sk=Ay.secondaryText,Tk=Ay.budgetNotices,_y=ne?Tk:Qf,$y=T.rows??24,Py=ne?"":Rf,Ly=ne?void 0:wk,Oy=ia,Dy=ne?!1:ty,zt=me(()=>pv({terminalRows:$y,terminalWidth:k,windowedTranscript:gi,inputText:Py,footerHeaderText:Ry,activitySummary:ne?void 0:Xf,activityBarVisible:ne?!1:!!Xf||te&&yo.shouldRender,todoSurfaceRows:ne?0:te&&yo.shouldRender?yo.rows.length:0,pendingInputSummary:Ly,stashNoticeSummary:Il,notificationSummary:Ey,statusNoticeSummary:_y.join(" | "),workStripText:Oy,suggestionsReserved:ml,suggestionsMode:"inline",showHelp:Dy,statusBarText:vy,confirmPrompt:Qe?.prompt,confirmInstruction:Zs,dialogMode:"inline",reviewHint:s.enabled&&xt?void 0:Wo.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}),[$y,k,Py,Ry,Xf,Ly,Il,Ey,_y,Oy,ml,My,Dy,vy,Qe,Zs,s.enabled,Wo.browseHintText,xt,Me]),Ck=me(()=>se(Mg,{reserveSpace:ml,width:k,hidden:ne,mode:"inline"}),[ml,k,ne,My]),aa=me(()=>qv(zt.messageRows),[zt.messageRows]),Ny=me(()=>Qv(aa),[aa]),Si=!uy&&s.transcriptSpinnerAnimation,ca=qn?qn.rows.length+qn.previewRows.length:nk,Rl=V(f=>{qn||ok(f.scrollHeight)},[qn]),la=V(f=>o0({window:f,stickyHeader:Wo.stickyHeader,width:k,topChromeRows:0}),[k,Wo.stickyHeader]),Ti=V((f=Ks.current,y=zc.current,S=Af.current?la(Af.current):Vc.current)=>{if(!S||f.length===0){ii.current=null;return}Vc.current=S,ii.current=r0(f,{allRows:y,rowIndexByKey:mh(y),topOffsetRows:S.topOffsetRows,viewportHeight:S.contentWindow.viewportHeight,animateSpinners:Si})},[la,Si]),ua=V(()=>{let f=Vc.current;return f?.contentWindow.viewportHeight&&f.contentWindow.viewportHeight>0?f.contentWindow.viewportHeight:zt.messageRows},[zt.messageRows]),bk=V(f=>{Af.current=f;let y=la(f);Vc.current=y,Ti(Ks.current,zc.current,y)},[Ti,la]),El=V(f=>{Ks.current=f.rows,zc.current=f.allRows,Ti(f.rows,f.allRows)},[Ti]),Ft=V(()=>{Ln.current=null,_f(void 0),$f(void 0)},[]),Jf=V(()=>{Ft(),Vn(f=>Os(f,void 0))},[Ft]);He(()=>{Ti()},[Ti]),He(()=>{ik(f=>Jv(f,ca,zt.messageRows))},[ca,zt.messageRows]),He(()=>{if(!si)return;let f=setTimeout(()=>{Gh(void 0)},2e3);return()=>{clearTimeout(f)}},[si]);let xo=V((f,y="success")=>{let S=f?.trim();S&&Gh({text:S,tone:y})},[]),Ci=V((f,y)=>{let S=y instanceof Error?y.message:String(y);return`${f}: ${S}`},[]),Ml=V(async f=>{let y=f??ho;if(!y)return!1;let S=y.text.trimEnd();if(!S)return!1;try{return await Wr(S,{terminalWrite:P}),xo(`Copied ${y.rowCount} selected line${y.rowCount===1?"":"s"} to clipboard.`,"success"),!0}catch(E){return xo(Ci("Failed to copy transcript selection",E),"warning"),!1}},[ho,Ci,xo,P]),bi=V(f=>{if(!f||e0({items:$t,renderModel:qn,terminalWidth:k,transcriptMaxLines:yt,viewportRows:ua(),itemId:f,visibleRows:Ks.current,expandedItemKeys:sn,showDetailedTools:!1}))return;let y=t0({items:$t,renderModel:qn,terminalWidth:k,transcriptMaxLines:yt,viewportRows:ua(),itemId:f,expandedItemKeys:sn,showDetailedTools:!1});jc(y)},[$t,k,yt,qn,sn,ua,jc,Ks]),By=V(f=>{Vn(y=>Os(y,f)),f&&bi(f)},[bi]),Zf=V(f=>{f&&bi(f)},[bi]),Hy=V(f=>{if(!wl)return;let y=Vv(wr,Ye,f);y&&By(y)},[wl,wr,Ye,By]),Fy=V(()=>{!Tl||!Ye||(ck(f=>{let y=new Set(f);return y.has(Ye)?y.delete(Ye):y.add(Ye),y}),bi(Ye))},[bi,Tl,Ye]),Wy=V(async()=>{if(!wi||!an)return;let f=fh(an);if(f)try{await Wr(f,{terminalWrite:P}),xo("Copied selected transcript entry to clipboard.","success")}catch(y){xo(Ci("Failed to copy transcript entry",y),"warning")}},[Ci,wi,an,xo,P]),Uy=V(async()=>{if(!Sl||!an)return;let f=zv(an);if(f)try{await Wr(f,{terminalWrite:P}),xo("Copied selected tool args to clipboard.","success")}catch(y){xo(Ci("Failed to copy tool args",y),"warning")}},[Ci,Sl,an,xo,P]),da=V(()=>zc.current,[]),jy=V((f,y)=>{if(!s.enabled||!xt)return;let S=ii.current;return S?gh(S,f,y):void 0},[s.enabled,xt]),vi=V((f,y,S)=>{let E=da(),R=a0(E,f,y,{animateSpinners:Si,selectFullRowOnCollapsed:S?.selectFullRowOnCollapsed});ne?$f(R):_f(R);let B=E[Math.max(0,Math.min(y.modelRowIndex,E.length-1))];return S?.updateSelectedItem&&B?.itemId&&Vn(H=>Os(H,B.itemId)),R},[ne,da,Si]),Gy=V((f,y)=>{if(!f)return;Ln.current=null;let S={...f,focus:y?.focusPoint??f.focus};if(!(S.mode!=="char"||S.didDrag)){Ft();return}let R=vi(S.anchor,S.focus,{selectFullRowOnCollapsed:!1,updateSelectedItem:!1});if(!R){Ft();return}return y?.copySelection!==!1&&Ml(R),R},[Ft,Ml,vi]),em=V(()=>{if(!ne||!$t.length||Qe||Me)return;Ft();let f=n0({items:$t,selectedItemId:Ye,renderModel:qn,terminalWidth:k,transcriptMaxLines:yt,viewportRows:ua(),scrollOffset:Pn,expandedItemKeys:sn,showDetailedTools:!1,preferViewportAnchor:!0});Vn(y=>Cv(y,{anchorItemId:f,initialMatchIndex:0})),pi(""),Bn(0)},[Qe,$t,sn,Pn,ne,Ye,qn,k,yt,Me,ua,Ft]),tm=V(()=>{Vn(f=>bv(f)),pi(""),Bn(0),Ft()},[Ft]),Al=V(()=>{!it||It.length===0||Bn(-1)},[It.length,it]),Ky=me(()=>{if(!Qe)return null;if(Qe.tool==="exit_plan_mode"){let f=typeof Qe.input.plan=="string"?Qe.input.plan:void 0;return{prompt:Qe.prompt.split(`
398
- `,1)[0]??Qe.prompt,instruction:Zs,planContent:f}}return{prompt:Qe.prompt,instruction:Zs}},[Zs,Qe]),Vy=me(()=>Me?Me.kind==="select"?{kind:"select",title:Me.title,options:Me.options,buffer:Me.buffer,error:Me.error,visibleSelectOptions:zt.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,zt.visibleSelectOptions]),vk=me(()=>se(_g,{confirm:Ky,request:Vy}),[Ky,Vy]),nm=me(()=>{if(si)return se(Db,{text:si.text,tone:si.tone})},[si]),om=me(()=>{if(nm)return se(I,{flexDirection:"column",width:"100%",children:nm})},[nm]),_l=V(()=>{Vn(f=>Sv(yv(f))),Ef(!1),Kc(),pi(""),Bn(0),Ft()},[Ft,Kc]),zy=V(()=>{ne&&Ef(f=>!f)},[ne]),Ik=V(()=>{if(ne){_l();return}Ef(!1),Vn(f=>hv(f)),pi(""),Bn(0),Ft()},[Ft,_l,ne]);He(()=>{hy||!Ne.selectedItemId||Vn(f=>Os(f,void 0))},[hy,Ne.selectedItemId]),He(()=>{if(!ne||!wi||!yy){Js.current=void 0;return}if(fr||!Ye||!an)return;if(!Js.current){Js.current=Ye;return}if(Js.current===Ye)return;Js.current=Ye;let f=fh(an);f&&Wr(f,{terminalWrite:P}).catch(()=>{})},[ne,an,Ye,wi,yy,fr,P]),He(()=>{if(T?.isTTY!==!0)return;let f=Su(T);f?.setShellMode?.(ay,fl),Hf||f?.setAltScreenActive?.(!1)},[ay,T,Hf,fl]);let qe=he({...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,persistedByHost:!0},guardrails:Ch(D.permissionMode,l)}),wn=he(D.permissionMode);He(()=>{wn.current=D.permissionMode},[D.permissionMode]);let Xy=he(ds()),rm=he(D);He(()=>{rm.current=D},[D]);let im=he(null);im.current===null&&(im.current=jl({getProvider:i(()=>Cr(rm.current.provider),"getProvider"),getModel:i(()=>rm.current.model??"","getModel")}));let Yy=he(_u());He(()=>{D.permissionMode==="auto-in-project"&&Yy.current()},[]);let sm=V(f=>{Je(y=>({...y,permissionMode:f})),wn.current=f,qe.current={...qe.current,guardrails:Ch(f,l)},Vf(en(f)?l.getGuardrail().getEngine():void 0),f==="auto-in-project"&&Yy.current()},[l]),qy=he(_.pendingInputs),et=he(!1),fa=he(0),$l=V(()=>{if(js.current)return;let f=Of.current?.trim(),y=re.current.length>0?re.current[re.current.length-1]:void 0,S=y&&"text"in y&&typeof y.text=="string"?y.text.trim():void 0,R=Gt.current.length>0?[...Gt.current.map(B=>cr(B)),...f&&f!==S?[{type:"info",text:f}]:[]]:[...Gt.current.map(B=>cr(B)),...sD(M(),Q(),{toolCalls:Bt.current,toolNames:Xn.current,infoItems:f&&f!==S?[f]:[]})];R.length!==0&&(js.current=!0,nl(Gt.current),ri.current?.(R))},[Q,M,nl]);He(()=>{qy.current=_.pendingInputs},[_.pendingInputs]);let Qy=V(()=>{et.current=!0,le(),ye(),Y(),Re(),Oe(),ue(),ce(void 0),No(),dt(void 0),Xs(),pr.current=[],ci.current=[],Vs([]),Ge(!1)},[le,ue,Re,Oe,No,Xs,ce,Vs,Ge,dt,ye,Y]),Pl=he(0),kk=500;fn(Ut.Critical,f=>{if(!te)return!1;switch(Dv({keyName:f.name,ctrl:!!f.ctrl,isTranscriptMode:ne,isAwaitingUserInteraction:Bo,isInputEmpty:kf,pendingInputCount:_.pendingInputs.length,hasTranscriptTextSelection:!!fr,timeSinceLastEscapeMs:Date.now()-Pl.current,doubleEscapeIntervalMs:kk}).kind){case"interrupt":return Pl.current=0,$l(),Qy(),!0;case"pop-pending-input":return De(),Pl.current=0,!0;case"arm-double-escape":return Pl.current=Date.now(),!0;default:break}return!1},[te,ne,Bo,kf,_.pendingInputs.length,De,$l,Qy]),fn(Ut.Critical,f=>{let y=Lv({itemsLength:$t.length,currentResponse:Ue.currentResponse,thinkingContent:Ue.thinkingContent,activeToolCallsLength:Ue.activeToolCalls.length}),S=Ov({keyName:f.name,hasTranscript:y,historyScrollOffset:Pn,reviewPageSize:aa,reviewWheelStep:Ny,hasMouse:!!f.mouse,mouseButton:f.mouse?.button,mouseAction:f.mouse?.action,usesManagedMouseClicks:cy,supportsMouseTracking:Ne.supportsMouseTracking,usesRendererMouseTracking:fl,usesManagedMouseWheel:ly,supportsWheelHistory:Ne.supportsWheelHistory});if(S.kind==="mouse-phase"){let R=f.mouse;if(!R)return!1;S.phase==="press"&&Ln.current&&Gy(Ln.current);let B=jy(R.row,R.column);if(S.phase==="press"){if(!B||!y)return ho||Ye?(Jf(),!0):(Ft(),!1);let H=L0({previous:jh.current,time:Date.now(),row:R.row,column:R.column});jh.current=H;let G=H.count>=3?"line":H.count===2?"word":"char";if(Al(),Vn(oe=>Os(oe,void 0)),ne?$f(void 0):_f(void 0),G!=="char"){let oe=lf(da(),B.point,G);if(oe)return Ln.current={anchor:oe.start,focus:oe.end,didDrag:!1,mode:G,anchorSpan:oe},vi(oe.start,oe.end,{updateSelectedItem:!1}),!0}return Ln.current={anchor:B.point,focus:B.point,didDrag:!1,mode:"char"},!0}if(!Ln.current)return!1;if(S.phase==="drag"){let H=ii.current,G=H?l0(H,R.row):0;G!==0&&Gc(G);let oe=B??(H?hh(H,R.row,R.column):void 0);if(!oe)return!1;let Te=Ln.current;if(Te.mode!=="char"&&Te.anchorSpan){let mt=lf(da(),oe.point,Te.mode);if(!mt)return!1;let Wt=Th(Te.anchorSpan,mt);return Ln.current={...Te,anchor:Wt.anchor,focus:Wt.focus,didDrag:!0},vi(Wt.anchor,Wt.focus,{updateSelectedItem:!1}),!0}return Ln.current={...Te,focus:oe.point,didDrag:!0},vi(Te.anchor,oe.point,{updateSelectedItem:!1}),!0}if(S.phase==="release"){let H=Ln.current,G=H.focus,Te=(B??(ii.current?hh(ii.current,R.row,R.column):void 0))?.point??G;if(H.mode!=="char"&&H.anchorSpan){let mt=lf(da(),Te,H.mode);if(mt){let Wt=Th(H.anchorSpan,mt);H.anchor=Wt.anchor,Te=Wt.focus}}return Gy(H,{focusPoint:Te}),!0}}if(S.kind==="scroll-by")return Al(),Gc(S.delta),!0;if(S.kind==="consume")return!0;let E=Nv({key:f,isTranscriptMode:ne,isHistorySearchActive:it,historySearchMatchCount:It.length,hasTextSelection:!!ho,hasFocusedItem:!!Ye,canCopySelectedItem:wi,canCopySelectedToolInput:Sl,canToggleSelectedDetail:Tl,canCycleTranscriptSelection:wl});return Bv({action:E,hasTranscript:y,isTranscriptMode:ne,pageScrollDelta:aa,disarmHistorySearchSelection:Al,scrollTranscriptBy:Gc,closeHistorySearchSurface:tm,backspaceHistorySearchQuery:i(()=>{pi(R=>R.slice(0,-1)),Bn(0)},"backspaceHistorySearchQuery"),stepHistorySearchSelection:i(R=>{Bn(B=>dh(It.length,B,R))},"stepHistorySearchSelection"),submitHistorySearchSelection:i(()=>{let R=It[Fo];R&&(Zf(R.itemId),tm())},"submitHistorySearchSelection"),appendHistorySearchQuery:i(R=>{pi(B=>B+R),Bn(0)},"appendHistorySearchQuery"),openHistorySearchSurface:em,clearTranscriptSelectionFocus:Jf,exitTranscriptModeSurface:_l,toggleTranscriptShowAll:zy,scrollTranscriptHome:i(()=>{jc(Math.max(0,ca-zt.messageRows))},"scrollTranscriptHome"),scrollTranscriptToBottom:i(()=>{Kc(),Ft()},"scrollTranscriptToBottom"),cycleTranscriptSelection:Hy,copySelectedTranscriptText:i(()=>{Ml()},"copySelectedTranscriptText"),copySelectedTranscriptItem:i(()=>{Wy()},"copySelectedTranscriptItem"),copySelectedTranscriptToolInput:i(()=>{Uy()},"copySelectedTranscriptToolInput"),toggleSelectedTranscriptDetail:Fy,navigateSearchMatch:i(R=>{Bn(B=>{let H=dh(It.length,B,R),G=It[H];return G&&Zf(G.itemId),H})},"navigateSearchMatch"),dumpTranscriptToScrollback:i(()=>{Hv({items:$t.filter(R=>!mg(R)),exitAltScreen:i(()=>{P(ku({mouseTracking:!0}))},"exitAltScreen"),writeToScrollback:i(R=>{P(R)},"writeToScrollback"),enterAltScreen:i(()=>{P(Iu({mouseTracking:!0,clearOnEnter:!1}))},"enterAltScreen")})},"dumpTranscriptToScrollback")})},[ne,$t,Ue.currentResponse,Ue.thinkingContent,Ue.activeToolCalls,Pn,ca,aa,Ny,Ye,Jf,_l,zy,Ne,Gc,jc,Kc,wl,Fo,Ft,Ml,It,em,tm,Al,Hy,wi,Wy,Sl,Uy,Tl,Fy,Zf,ho,jy,Ne.supportsMouseTracking,fr,cy,ly,Ff,gi,fl,vi,zt.messageRows]),fn(f=>{if(!Qe)return!1;let y=f.sequence.trim().toLowerCase(),S=!!Qe.input._alwaysConfirm,E=D.permissionMode==="accept-edits"&&!S,R=i(B=>{let H=`${X("dialog.confirm")} ${Qe.prompt}
399
- \u2192 ${X(`confirm.result.${B}`)}`;!!nt.current.workerId?yn({id:`confirm-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"info",text:H,timestamp:Date.now()}):v({type:"info",text:H})},"recordConfirmResult");return y==="y"||y==="yes"?(R("approved"),cl(null),yr.current?.({confirmed:!0}),yr.current=null,!0):E&&(y==="a"||y==="always")?(R("approved_always"),cl(null),yr.current?.({confirmed:!0,always:!0}),yr.current=null,!0):y==="n"||y==="no"||f.name==="escape"?(R("denied"),cl(null),yr.current?.({confirmed:!1}),yr.current=null,!0):f.insertable||f.name==="return"},{isActive:!!Qe,priority:Ut.Critical});let Ll=V(f=>{Nn(null),ll.current?.(f),ll.current=null},[]),Ii=V((f,y,S)=>y.length===0?Promise.resolve(void 0):new Promise(E=>{ll.current=E,Nn({kind:"select",title:f,options:y,buffer:"",focusedIndex:0,selectedIndices:[],multiSelect:S})}),[]),Rk=V((f,y)=>Ii(f,y.map(S=>({label:S,value:S}))),[Ii]),Jy=V(async f=>{let y=f.options?cf(f.options):[];return await Ii(yh(f),y,f.multiSelect)??ym},[Ii]);He(()=>{let f=!1;return(async()=>{let{bindAskUserForConstruction:y}=await import("./construction-bootstrap-OB5SDNBD.js");f||y(Jy)})(),()=>{f=!0,(async()=>{let{bindAskUserForConstruction:y}=await import("./construction-bootstrap-OB5SDNBD.js");y(null)})()}},[Jy]);let Zy=V((f,y)=>new Promise(S=>{ll.current=S,Nn({kind:"input",prompt:f,defaultValue:y,buffer:""})}),[]);fn(f=>{let y=ul.current;if(!y)return!1;if(f.name==="escape")return Ll(void 0),!0;if(y.kind==="select"){let S=y.options.length;if(f.name==="up"||f.sequence==="k")return Nn(E=>E&&E.kind==="select"?{...E,focusedIndex:(E.focusedIndex-1+S)%S,error:void 0}:E),!0;if(f.name==="down"||f.sequence==="j")return Nn(E=>E&&E.kind==="select"?{...E,focusedIndex:(E.focusedIndex+1)%S,error:void 0}:E),!0;if(f.sequence===" "&&y.multiSelect)return Nn(E=>{if(!E||E.kind!=="select")return E;let R=E.focusedIndex,B=E.selectedIndices.includes(R)?E.selectedIndices.filter(H=>H!==R):[...E.selectedIndices,R];return{...E,selectedIndices:B,error:void 0}}),!0;if(f.name==="return"){let E=ul.current;if(!E||E.kind!=="select")return!1;if(E.multiSelect){if(E.selectedIndices.length===0)return Nn(B=>B&&B.kind==="select"?{...B,error:X("select.multiselect_empty")}:B),!0;let R=E.selectedIndices.sort((B,H)=>B-H).map(B=>E.options[B]?.value).filter(Boolean).join(", ");Ll(R)}else Ll(E.options[E.focusedIndex]?.value);return!0}if(/^[1-9]$/.test(f.sequence)){let E=Number.parseInt(f.sequence,10)-1;if(E>=0&&E<S)return y.multiSelect?Nn(R=>{if(!R||R.kind!=="select")return R;let B=R.selectedIndices.includes(E)?R.selectedIndices.filter(H=>H!==E):[...R.selectedIndices,E];return{...R,focusedIndex:E,selectedIndices:B,error:void 0}}):Nn(R=>R&&R.kind==="select"?{...R,focusedIndex:E,error:void 0}:R),!0}return!1}if(f.name==="return"){let S=ul.current;if(!S||S.kind!=="input")return!1;let E=S.buffer.trim();return Ll(E===""?S.defaultValue??void 0:E),!0}return f.name==="backspace"||f.name==="delete"?(Nn(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?(Nn(S=>S&&S.kind==="input"?{...S,buffer:S.buffer+f.sequence,error:void 0}:S),!0):!1},{isActive:!!Me,priority:Ut.Critical}),He(()=>{if(n.messages.length>0&&N.length===0){if(n.uiHistory?.length){let y=ei(n.uiHistory);y.length!==n.uiHistory.length&&(n.uiHistory=y),Z(y.map(S=>({type:S.type,text:S.text,...S.icon?{icon:S.icon}:{},...S.compactText?{compactText:S.compactText}:{}})));return}let f=n.messages.flatMap(y=>za(y).map(Va));Z(f)}},[n.messages,n.uiHistory,N.length,Z]),He(()=>{vr(n.gitRoot)},[n.gitRoot]),He(()=>{process.env.KODAX_PREWARM_REPO_INTELLIGENCE!=="0"&&kx({executionCwd:n.gitRoot??process.cwd(),gitRoot:n.gitRoot??void 0},{mode:D.repoIntelligenceMode})},[n.gitRoot,D.repoIntelligenceMode]);let am=V(()=>({onThinkingDelta:i(f=>{if(et.current)return;_.currentTool&&(ce(void 0),Oe());let{header:y}=Jb(M()+f),S=y?`[Thinking: ${y}]`:"[Thinking]";dt(Qd(rt.current?.activeWorkerTitle?`[${rt.current.activeWorkerTitle}] ${S}`:S,rt.current?.activeWorkerTitle)),ae(f.length),q(f),nt.current.workerId&&rl("thinking",f)},"onThinkingDelta"),onThinkingEnd:i(f=>{if(et.current)return;let y=M(),S=Yb(y,f);S&&S!==y&&(Re(),Ae(),ae(S.length),q(S)),nt.current.workerId&&Jh(S),Y()},"onThinkingEnd"),onTextDelta:i(f=>{et.current||(_.currentTool&&(ce(void 0),Oe()),Y(),dt(void 0),Mt(f),nt.current.workerId&&rl("assistant",f))},"onTextDelta"),onToolUseStart:i(f=>{if(et.current)return;Xn.current.includes(f.name)||(Xn.current=[...Xn.current,f.name]);let y=rt.current?.activeWorkerTitle?`[${rt.current.activeWorkerTitle}] `:"",S={id:f.id,name:`${y}${f.name}`,status:L.Executing,startTime:Date.now(),input:f.input};Zh(S),nt.current.workerId&&Dn(S),dt(_o(S,rt.current?.activeWorkerTitle))},"onToolUseStart"),onToolInputDelta:i((f,y,S)=>{if(et.current)return;lt(y.length),ze(y);let E=ey(S?.toolId,f,R=>{let B=R.preview??"",H=Vb(`${B}${y}`);return{...R,preview:H||void 0,input:R.input?H?{...R.input,preview:H}:{...R.input}:H?{preview:H}:void 0}});E&&(nt.current.workerId&&Dn(E),dt(_o(E,rt.current?.activeWorkerTitle)))},"onToolInputDelta"),onToolResult:i(f=>{if(et.current)return;let y=typeof f.content=="string"?f.content:String(f.content??""),S=zb(y);if(/^\[(?:Tool Error|Error)\]/.test(y)){let R=sl(f.id,L.Error,S,S,f.name);R&&(nt.current.workerId&&Dn(R),dt(_o(R,rt.current?.activeWorkerTitle)));return}if(/^\[(?:Cancelled|Blocked)\]/.test(y)){let R=sl(f.id,L.Cancelled,void 0,S,f.name);R&&(nt.current.workerId&&Dn(R),dt(_o(R,rt.current?.activeWorkerTitle)));return}let E=sl(f.id,L.Success,void 0,S||void 0,f.name);E&&(nt.current.workerId&&Dn(E),dt(_o(E,rt.current?.activeWorkerTitle)))},"onToolResult"),onToolProgress:i(f=>{if(et.current)return;let y=f.message.length>100?f.message.slice(0,97)+"...":f.message,S=mi(f.id,E=>({...E,preview:y,progressLines:[...(E.progressLines??[]).slice(-4),y]}));S&&nt.current.workerId&&Dn(S),dt(y)},"onToolProgress"),onStreamEnd:i(()=>{if(et.current)return;let f=Ys(L.Cancelled,()=>({error:"Stream ended before the tool completed.",output:void 0})),y=f[f.length-1];nt.current.workerId&&f.forEach(S=>Dn(S)),y&&dt(_o(y,rt.current?.activeWorkerTitle)),Y(),Oe(),ce(void 0)},"onStreamEnd"),hasPendingInputs:i(()=>qy.current.length>0,"hasPendingInputs"),onMidTurnUserMessages:i(f=>{if(!et.current)for(let y of f){let S=y.trim();S&&(nt.current.workerId?yn({id:`mid-turn-user-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"user",text:S,timestamp:Date.now()}):v({type:"user",text:S}))}},"onMidTurnUserMessages"),onError:i(f=>{let y=Do();y?.name&&dt(_o(y,rt.current?.activeWorkerTitle));let S=Ys(L.Error,()=>({error:f.message,output:void 0})),E=S[S.length-1];nt.current.workerId&&S.forEach(mt=>Dn(mt)),E&&dt(_o(E,rt.current?.activeWorkerTitle));let R=cx(f),B=["Transient","Permanent","Tool Call ID","User Abort"];if(R.category===ya.USER_ABORT)return;let G=[`\u274C API Error (${B[R.category]||"Unknown"}): ${f.message}`];R.shouldCleanup&&G.push(" \u{1F9F9} Cleaned incomplete tool calls"),R.category===ya.PERMANENT?(G.push(" \u{1F4A1} This error requires manual intervention. Please check:"),f.message.includes("auth")||f.message.includes("401")?(G.push(" - Your API key is valid"),G.push(" - Run /config to check provider settings")):f.message.includes("400")?(G.push(" - The request parameters are correct"),G.push(" - Try restarting the conversation")):G.push(" - The error details above")):R.category===ya.TRANSIENT?G.push(" \u23F3 Retries exhausted. Press Enter to continue the conversation"):R.category===ya.TOOL_CALL_ID&&G.push(" \u2705 Session cleaned, ready to continue");let oe=G.join(`
400
- `);!!nt.current.workerId?yn({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:oe,timestamp:Date.now()}):v({type:"error",text:oe})},"onError"),onRetry:i((f,y,S)=>{if(et.current)return;if(!!nt.current.workerId){let R=Vd(f,y,S);yn({...R,id:`retry-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()})}else Wg(v,f,y,S)},"onRetry"),onProviderRecovery:i(f=>{if(et.current)return;let y=!!nt.current.workerId,S=Q().trim();if(S&&(y?rl("assistant",S):v({type:"assistant",text:S})),ue(),Re(),Y(),Oe(),ce(void 0),No(),dt(void 0),y){let E=zd(f);yn({...E,id:`recovery-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()})}else Ug(v,f)},"onProviderRecovery"),onManagedTaskStatus:i(f=>{if(et.current)return;let y=nt.current;if(B0(f)){if(y.workerId&&y.workerId!==f.activeWorkerId)pk({workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle});else if(y.workerId!==f.activeWorkerId){let H=ft.current,G=H.activeToolGroupTools.some(oe=>oe.status===L.Executing);ft.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle,...G?{activeToolGroupItemId:H.activeToolGroupItemId,activeToolGroupTools:H.activeToolGroupTools}:{activeToolGroupTools:[]}},nt.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle}}}rt.current=f,Lf(f);let S=Qb(f);gk(S);let E=$s(f),B=$s(f,{expanded:!0})??E;B&&(Of.current=B)},"onManagedTaskStatus"),onProviderRateLimit:i((f,y,S)=>{et.current||hr({type:"info",icon:"\u23F3",text:`[Rate Limit] Retrying in ${S/1e3}s (${f}/${y})...`},"ratelimit")},"onProviderRateLimit"),onRetryAfter:i(f=>{if(et.current)return;let y=Math.round(f.waitMs/1e3),S=f.source==="exponential-backoff"?"no-header \u2192 backoff":f.source,E=f.reason==="overloaded"?"Overloaded":"Rate limited";hr({type:"info",icon:"\u23F3",text:`[${E}] (${f.provider}) \u2014 retrying in ${y}s [${S}] (${f.attempt}/${f.maxAttempts})`},"ratelimit")},"onRetryAfter"),onRepoIntelligenceTrace:i(f=>{et.current||hr(uv(f),"repointel-trace")},"onRepoIntelligenceTrace"),onTodoUpdate:i(f=>{et.current||Oo(f)},"onTodoUpdate"),onScoutSuspiciousCompletion:i(f=>{et.current||W0&&hr({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(et.current)return;if(y&&ot(y),rt.current?.globalWorkBudget){let Te={...rt.current,budgetUsage:Math.min(rt.current.globalWorkBudget,(rt.current.budgetUsage??0)+1)};rt.current=Te,Lf(Te)}let S=f>1?M().trim():"",E=f>1?Ih(Q()):"",R=f>1?[...Xn.current]:[],B=f>1?[...Bt.current]:[],H=!!nt.current.workerId;$(f),H&&tl({clearOwner:!1});let G=mo.current.filter(Te=>Te.status===L.Executing),oe=new Set(G.map(Te=>Te.id));if(Xn.current=[],Bt.current=Bt.current.filter(Te=>oe.has(Te.id)),hn(G),Oe(),ce(void 0),dt(Qd(rt.current?.activeWorkerTitle?`[Thinking] [${rt.current.activeWorkerTitle}]`:void 0,rt.current?.activeWorkerTitle)),Ae(),f>1&&!H){let Te=kh({thinking:S,response:E,toolCalls:B,toolNames:R});ri.current?ri.current(Te):Z([...Te])}},"onIterationStart"),beforeToolExecute:i(async(f,y)=>{let S=wn.current,E=Nr(S),R=Xy.current,B=n.gitRoot;if(Ux(W.current,f,y))return`[Skipped] Previously denied operation. ${jx(W.current)}`;if(S==="plan"&&(En.has(f)||f==="undo"))return`[Blocked] Tool '${f}' is not allowed in plan mode (read-only). ${D0}`;if(S==="plan"&&f==="bash"){let H=y.command??"";if(Un(H))return`[Blocked] Bash write operation not allowed in plan mode: ${H.slice(0,50)}... ${D0}`}if(f==="bash"){let H=y.command??"";if(Wn(H))return!0}if(en(S)&&Kf==="llm")return!0;if(f==="bash"){let H=y.command??"",G=Fx(H);if(G.level==="dangerous"){let oe=await Sr(f,{...y,_dangerousCommand:!0});return oe.confirmed?oe.confirmed:(W.current=Sm(W.current,f,y,G.reason),`[Blocked] Dangerous command requires confirmation: ${G.reason}`)}}if(B){let H=!1;if(En.has(f)){let G=y.path;G&&no(G,B)&&(H=!0)}if(f==="bash"){let G=y.command;G&&Ip(G,B)&&(H=!0)}if(H){let G=await Sr(f,{...y,_alwaysConfirm:!0});if(wn.current==="plan"&&(En.has(f)||f==="undo"))return!1;if(wn.current==="plan"&&f==="bash"){let oe=y.command??"";if(Un(oe))return!1}return G.confirmed}}if(E.has(f)){if(S==="accept-edits"&&f==="bash"&&await Jo(f,y,R,im.current??void 0))return!0;let H=await Sr(f,y);if(wn.current==="plan"&&(En.has(f)||f==="undo"))return!1;if(wn.current==="plan"&&f==="bash"){let G=y.command??"";if(Un(G))return!1}if(!H.confirmed)return v({type:"info",text:X("cancelled")}),W.current=Sm(W.current,f,y),!1;H.always&&S==="accept-edits"&&(Uu(f,y,!1),Xy.current=ds())}return!0},"beforeToolExecute"),askUser:i(async f=>{let y=f.options?cf(f.options):[],S=await Ii(yh(f),y,f.multiSelect);return S===void 0?ym:S},"askUser"),exitPlanMode:i(async f=>wn.current!=="plan"?"not-in-plan-mode":(await Sr("exit_plan_mode",{plan:f})).confirmed?(sm("accept-edits"),!0):!1,"exitPlanMode"),askUserMulti:i(async f=>{let y=f.questions,S={},E="__back__",R=0;for(;R<y.length;){let B=y[R],H=cf(B.options);R>0&&H.push({label:X("select.back_prev"),value:E});let G=`[${R+1}/${y.length}] ${B.question}`,oe=await Ii(G,H,B.multiSelect);if(oe===void 0)return;if(oe===E){R--;continue}S[B.question]=oe,R++}return S},"askUserMulti"),askUserInput:i(async f=>Zy(f.question,f.default),"askUserInput"),onCompactStart:i(()=>{J()},"onCompactStart"),onCompactStats:i(f=>{Us.current=f.tokensBefore,Kn(f.tokensAfter)},"onCompactStats"),onCompactedMessages:i((f,y)=>{n.messages=f,y?.artifactLedger&&y.artifactLedger.length>0&&(n.artifactLedger=xa(n.artifactLedger??[],y.artifactLedger)),n.lineage=y?.anchor?Sx(n.lineage,f,y.anchor,y.postCompactAttachments??[]):bn(f,n.lineage);let S=br(f);n.contextTokenSnapshot={currentTokens:S,baselineEstimatedTokens:S,source:"estimate"},ao(n),Kn(S),Hc.current?.().catch(()=>{})},"onCompactedMessages"),onCompact:i(f=>{Ee();let y=Us.current??f;Us.current=null;let S=Math.round(y/1e3);hr({type:"info",icon:"\u2728",text:`Context auto-compacted (was ~${S}k tokens)`},"compact")},"onCompact"),onCompactEnd:i(()=>{Us.current=null,Ee()},"onCompactEnd"),onIterationEnd:i(f=>{f.scope!=="worker"&&(n.contextTokenSnapshot=f.contextTokenSnapshot),Kn(f.tokenCount)},"onIterationEnd")}),[ae,q,Y,Mt,ce,lt,ze,Oe,$,Ae,D,n,J,Ee,v,Re,M,Q,tl,dt,rl,Jh,Dn,Zh,ey,sl,Ys,Do,No,hn,_.currentTool]),Sr=i((f,y)=>{let S=Kb(f,y);return go(),new Promise(E=>{yr.current=E,cl({tool:f,input:y,prompt:S})})},"showConfirmDialog");He(()=>(d(async(f,y,S)=>(await Sr(f.name,{...f.input,_reason:`[auto-mode] ${y}`,...S&&S.length>0?{_classifierSignals:S}:{}})).confirmed?"allow":"block"),m(f=>{Vf(f)}),()=>{d(null),m(null)}),[]),He(()=>{p(D)},[D,p]);let ma=i(async(f,y,S=n.lineage?kt(n.lineage,n.lineage.activeEntryId):n.messages,E)=>{let R={...am(),getCostReport:K},H=So(n.gitRoot).getSystemPromptSnippet(),G=dv(f.context,n.gitRoot,n.contextTokenSnapshot,H);E&&E.length>0&&(G.inputArtifacts=[...E]),G.planModeBlockCheck=(oe,Te)=>wn.current!=="plan"?null:Eo(oe,Te,n.gitRoot??process.cwd());try{return await Sa({...f,session:{...f.session,initialMessages:S},context:G,events:R,abortSignal:bt()},y)}finally{Mx()}},"runAgentRound"),wo=V(f=>{let y=bn([...f],n.lineage);return n.lineage=y,y},[n]),pa=V(async f=>{if(n.messages.length===0)return;let y=us(n.messages),S=ei(f??A.current);A.current=S,n.title=y,n.uiHistory=S;let E=n.lineage??wo(n.messages);n.lineage=E;let R={messages:n.messages,title:y,gitRoot:n.gitRoot??"",uiHistory:S,lineage:E,artifactLedger:n.artifactLedger};"appendSessionDelta"in o&&typeof o.appendSessionDelta=="function"?await o.appendSessionDelta(n.sessionId,R):await o.save(n.sessionId,R),nf()&&of("persist",rf(n.messages,E,{historyItems:re.current,foregroundItems:Gt.current,streamingResponse:be.current.currentResponse,streamingThinking:be.current.thinkingContent,persistedUiHistory:A.current}))},[n,wo,o]),cm=V(()=>{if(Fc.current)return Fc.current;let f=(async()=>{try{for(;dr.current.requested;){dr.current.requested=!1;let y=dr.current.uiHistoryOverride;dr.current.uiHistoryOverride=void 0,await pa(y)}}finally{Fc.current=null,dr.current.requested&&cm()}})();return Fc.current=f,Uh.current=f,f},[pa]),ki=V(f=>{if(f!==void 0){let y=ei(f);A.current=y,dr.current.uiHistoryOverride=y}return dr.current.requested=!0,cm()},[cm]),Ek=V(async()=>{if(Gs.current)return Gs.current;let f=(async()=>{et.current=!0,le(),ye(),Y(),Re(),Oe(),ue(),ce(void 0),Ge(!1),await Uh.current.catch(()=>{}),await Hc.current?.().catch(()=>{}),Lo(!1),O&&w?.isRaw&&b(!1),w?.pause?.(),w?.unref?.(),h(),a()})();return Gs.current=f.finally(()=>{Gs.current=null}),Gs.current},[le,ue,Re,Oe,h,O,a,ce,Ge,b,w,ye,Y]);He(()=>(Hc.current=ki,()=>{Hc.current=null}),[ki]);let ex=V(f=>{if(f.length===0)return;let y=uf(A.current,f);A.current=y,ki(y)},[ki]),ga=V(f=>{f.length!==0&&(Z([...f]),ex(f))},[Z,ex]),Ol=V(f=>{f.length!==0&&(Z([...f]),A.current=uf(A.current,f))},[Z]);He(()=>(ri.current=ga,()=>{ri.current=null}),[ga]);let tx=V(async f=>{n.messages=f.messages,n.contextTokenSnapshot=f.contextTokenSnapshot,wo(f.messages);let y=f.success===!1&&!f.interrupted,S=M().trim(),E=vT(f.messages,Q(),f.managedTask?.verdict.summary,f.lastText),R=[...Gt.current],B=R.length>0;nl(R);let H=B&&R.some(de=>de.type==="assistant"&&"text"in de&&er(String(de.text??"")).length>0),G=!y&&E&&!H,oe=[...ci.current],Te=y?[]:oe.length===0?W0?Yg(f):Yg(f).filter(de=>!Xg(de)):[],mt=B?[]:kh({thinking:S,response:void 0,toolCalls:Bt.current,toolNames:Xn.current}),Wt=[...R.map(de=>cr(de)),...mt,...y?[]:oe.map(de=>cr(de)),...Te.map(de=>N0(de)),...G?[{type:"assistant",text:f.interrupted?`${E}
401
-
402
- [Interrupted]`:E}]:!E&&!H&&!f.interrupted&&!y?[{type:"info",text:"[No response text was produced for this round]"}]:[]],ha=uf(A.current,Wt);Re(),ue();let Be=[...R.map(de=>cr(de)),...mt,...y?[]:[...Te.map(de=>N0(de)),...oe.map(de=>cr(de))],...G?[{type:"assistant",text:f.interrupted?`${E}
403
-
404
- [Interrupted]`:E}]:!E&&!H&&!f.interrupted&&!y?[{type:"info",text:"[No response text was produced for this round]"}]:[]];Z(Be),Xn.current=[],Bt.current=[],No(),Oe(),ce(void 0),dt(void 0),Xs(),pr.current=[],ci.current=[],Vs([]),U(),ki(ha).catch(()=>{})},[Z,U,Oe,ue,Re,n,Q,M,ki,wo,No,Xs,ce,dt,_.currentIteration]),Dl=V(async f=>{let y=f.trim();y&&(v({type:"user",text:y}),Bc(S=>S+1),ao(n))},[v,n]),Nl=V(async(f,y)=>{let S=fa.current;et.current=!1,js.current=!1,Ws(!0);try{return await $v({initialPrompt:f,runRound:y,shiftPendingPrompt:At,onRoundComplete:i(async E=>{fa.current===S&&await tx(E)},"onRoundComplete"),onBeforeQueuedRound:i(async E=>{et.current=!1,js.current=!1,await Dl(E)},"onBeforeQueuedRound"),shouldContinue:i(E=>!et.current&&E.success!==!1,"shouldContinue")})}finally{Ws(!1)}},[tx,At,Dl]),lm=V(async()=>{let f=At();if(!f||!f.trim())return;let y=f.trim();await Dl(y),await Nl(y,async S=>ma(qe.current,S))},[ma,Nl,At,Dl]),um=V(f=>{let y=f[f.length-1];if(y?.role!=="assistant")return;let S=za(y);Z(S.map(Va))},[Z]),nx=V(async(f,y)=>{let S=await ef({...qe.current,provider:D.provider,thinking:D.thinking,reasoningMode:D.reasoningMode},f,y,E=>v({type:"info",text:E}));if(S.mode==="manual"){S.manualOutput&&v({type:"info",text:S.manualOutput}),await S.finalize();return}if(!S.prompt||!S.options){await S.finalize();return}Ws(!0);try{let E=S.mode==="fork"?[]:n.lineage?kt(n.lineage,n.lineage.activeEntryId):n.messages,R=fa.current,B=await ma(S.options,S.prompt,E);if(fa.current!==R)await S.finalize();else{let H=A.current,G=[];if(S.mode==="fork"){let oe=B.messages.find(mt=>mt.role==="user");oe&&n.messages.push(oe);let Te=B.messages.slice().reverse().find(mt=>mt.role==="assistant");if(Te){n.messages.push({role:"assistant",content:Te.content}),wo(n.messages);for(let mt of za(Te)){let Wt=Va(mt);v(Wt),G.push(Wt)}}}else{n.messages=B.messages,n.contextTokenSnapshot=B.contextTokenSnapshot,wo(B.messages),um(B.messages);let oe=B.messages[B.messages.length-1];if(oe?.role==="assistant")for(let Te of za(oe))G.push(Va(Te))}await pa(uf(H,G)),nf()&&of("round-end",rf(n.messages,n.lineage,{historyItems:re.current,foregroundItems:Gt.current,streamingResponse:be.current.currentResponse,streamingThinking:be.current.thinkingContent,persistedUiHistory:A.current})),await S.finalize()}}catch(E){let R=E instanceof Error?E:new Error(String(E));throw await S.finalize(R),Ws(!1),R}Ws(!1),await lm()},[v,um,n,D.provider,D.thinking,lm,pa,wo,ma]),Mk=V(async f=>{for(let y of f.pastedContents)if(y.type==="text"&&!y.content&&y.contentHash)try{let S=await Qu(y.contentHash);S&&(y.content=S)}catch{}},[]),Ak=V(async f=>{let{displayText:y,fullText:S,pastedContents:E}=f;if(!S.trim()||!oi||Qe||Me)return;for(let Be of E){if(Be.type!=="text"||Be.content.length<1024)continue;let de=jT(Be.content);GT(de,Be.content)}if(ny(!1),te){if(!If)return;if(_.pendingInputs.length>=5){hr({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(_v(S)){hr({type:"info",icon:"\u26A0",text:Mv},Av);return}let Be=_.currentTool;if(Be&&Ul(Be)?.interruptBehavior==="cancel"){ve(S),le({preservePendingInputs:!0}),Uc(""),Wc(!0),Bc(cn=>cn+1),ao(n);return}ve(S),Uc(""),Wc(!0),Bc(de=>de+1),ao(n);return}let R=Ih(Q()),B=Gt.current.map(Be=>cr(Be)),H=B.length>0;B.length>0&&(nl(Gt.current),Ol(B)),!H&&R&&Ol([{type:"assistant",text:R+`
405
-
406
- [Interrupted]`}]),Ol([{type:"user",text:y}]),Uc(""),Wc(!0),Bc(Be=>Be+1),nf()&&of("turn-start",rf(n.messages,n.lineage,{historyItems:re.current,foregroundItems:Gt.current,streamingResponse:be.current.currentResponse,streamingThinking:be.current.thinkingContent,persistedUiHistory:A.current})),Ge(!0),et.current=!1,js.current=!1,++fa.current,Lf(null),rt.current=null,Of.current=null,dt(void 0),Xs(),pr.current=[],ci.current=[],Vs([]),Qs(),Qc(void 0),Xn.current=[],Bt.current=[],No(),ue(),Oe(),ce(void 0),U(),Pe(),ao(n),await new Promise(Be=>setTimeout(Be,50));let G=gs(S.trim());if(G){let Be={exit:Ek,saveSession:i(async()=>{if(n.messages.length>0){let F=us(n.messages);n.title=F;let fe=n.lineage??wo(n.messages);n.lineage=fe,await o.save(n.sessionId,{messages:n.messages,title:F,gitRoot:n.gitRoot??"",uiHistory:A.current,lineage:fe,artifactLedger:n.artifactLedger})}},"saveSession"),startNewSession:i(()=>{let F=Sc(),fe=new Date().toISOString();n.sessionId=F,n.title="",n.uiHistory=[],n.contextTokenSnapshot=void 0,n.lineage=void 0,n.artifactLedger=void 0,A.current=[],n.createdAt=fe,n.lastAccessed=fe,qe.current.session={...qe.current.session,id:F},Kn(null),Se(),Oo([]),qu()?.reset(),z(F),x?.writer.update({sessionId:F})},"startNewSession"),loadSession:i(async F=>{let fe=await o.load(F);return fe?Qr(D,"Resuming a saved session",df)?(n.messages=fe.messages,n.uiHistory=Ds(fe.uiHistory),n.lineage=fe.lineage,n.artifactLedger=fe.artifactLedger,n.title=fe.title,n.sessionId=F,n.contextTokenSnapshot=void 0,A.current=n.uiHistory??[],Kn(null),Se(),Oo([]),z(F),x?.writer.update({sessionId:F}),console.log(Ve.green(`[Session loaded: ${F}]`)),"loaded"):"blocked":"missing"},"loadSession"),listSessions:i(async()=>{let F=await o.list(n.gitRoot??void 0);if(F.length===0){console.log(Ve.dim(`
407
- [No saved sessions]`));return}console.log(Ve.bold(`
408
- Recent Sessions:
409
- `));for(let fe of F.slice(0,10))console.log(` ${Ve.cyan(fe.id)} ${Ve.dim(`(${fe.msgCount} messages)`)} ${fe.title.slice(0,40)}`);console.log()},"listSessions"),clearHistory:i(()=>{n.uiHistory=[],Se(),Oo([])},"clearHistory"),printHistory:i(()=>{if(n.messages.length===0){console.log(Ve.dim(`
410
- [No conversation history]`));return}console.log(Ve.bold(`
411
- Conversation History:
412
- `));let F=n.messages.slice(-20);for(let fe=0;fe<F.length;fe++){let ke=F[fe],Ri=Ve.cyan(ke.role.padEnd(10)),ix=Xa(ke.content),Ok=ix.slice(0,60).replace(/\n/g," "),Dk=ix.length>60?"...":"";console.log(` ${(fe+1).toString().padStart(2)}. ${Ri} ${Ok}${Dk}`)}console.log()},"printHistory"),switchProvider:i((F,fe)=>{Je(ke=>({...ke,provider:F,model:fe})),qe.current.provider=F,qe.current.model=fe},"switchProvider"),setThinking:i(F=>{let fe=F?"auto":"off";Je(ke=>({...ke,thinking:F,reasoningMode:fe})),qe.current.thinking=F,qe.current.reasoningMode=fe},"setThinking"),setReasoningMode:i(F=>{let fe=F!=="off";Je(ke=>({...ke,thinking:fe,reasoningMode:F})),qe.current.thinking=fe,qe.current.reasoningMode=F},"setReasoningMode"),setAgentMode:i(F=>{Je(fe=>({...fe,agentMode:F})),qe.current.agentMode=F},"setAgentMode"),setPermissionMode:i(F=>{sm(F)},"setPermissionMode"),setRepoIntelligenceRuntime:i(F=>{Je(fe=>({...fe,...F.mode!==void 0?{repoIntelligenceMode:F.mode}:{},...F.endpoint!==void 0?{repointelEndpoint:F.endpoint??void 0}:{},...F.bin!==void 0?{repointelBin:F.bin??void 0}:{},...F.trace!==void 0?{repoIntelligenceTrace:F.trace}:{}})),F.mode!==void 0&&(process.env.KODAX_REPO_INTELLIGENCE_MODE=F.mode,qe.current.context={...qe.current.context,repoIntelligenceMode:F.mode}),F.trace!==void 0&&(F.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,qe.current.context={...qe.current.context,repoIntelligenceTrace:F.trace}),F.endpoint!==void 0&&(F.endpoint?process.env.KODAX_REPOINTEL_ENDPOINT=F.endpoint:delete process.env.KODAX_REPOINTEL_ENDPOINT),F.bin!==void 0&&(F.bin?process.env.KODAX_REPOINTEL_BIN=F.bin:delete process.env.KODAX_REPOINTEL_BIN)},"setRepoIntelligenceRuntime"),deleteSession:i(async F=>{await o.delete?.(F)},"deleteSession"),deleteAllSessions:i(async()=>{await o.deleteAll?.(n.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:i(async()=>{let F=await o.getLineage?.(n.sessionId);if(!F){console.log(Ve.dim(`
413
- [No session tree available for this session]`));return}let fe=Yd(Fl(F));console.log(Ve.bold(`
414
- Session Tree:
415
- `)),fe.forEach(ke=>console.log(` ${ke}`)),console.log()},"printSessionTree"),switchSessionBranch:i(async F=>{if(!Qr(D,"Switching session branches",df))return"blocked";let ke=await o.setActiveEntry?.(n.sessionId,F,{summarizeCurrentBranch:!0});return ke?(n.messages=ke.messages,n.uiHistory=Ds(ke.uiHistory),n.title=ke.title,n.contextTokenSnapshot=void 0,A.current=n.uiHistory??[],Kn(null),Se(),Oo([]),console.log(Ve.green(`
416
- [Switched to tree entry: ${F}]`)),console.log(Ve.dim(` Messages: ${ke.messages.length}`)),"switched"):"missing"},"switchSessionBranch"),labelSessionBranch:i(async(F,fe)=>{if(!await o.setLabel?.(n.sessionId,F,fe))return!1;let Ri=fe&&fe.trim()?`checkpoint label set: ${fe.trim()}`:"checkpoint label cleared";return console.log(Ve.green(`
417
- [${Ri}]`)),!0},"labelSessionBranch"),forkSession:i(async F=>{if(!Qr(D,"Forking a session branch",df))return"blocked";let ke=await o.fork?.(n.sessionId,F);if(!ke)return"failed";n.sessionId=ke.sessionId,n.messages=ke.data.messages,n.uiHistory=Ds(ke.data.uiHistory),n.title=ke.data.title,n.contextTokenSnapshot=void 0,A.current=n.uiHistory??[];let Ri=new Date().toISOString();return n.createdAt=Ri,n.lastAccessed=Ri,qe.current.session={...qe.current.session,id:ke.sessionId},Kn(null),Se(),Oo([]),z(ke.sessionId),x?.writer.update({sessionId:ke.sessionId}),console.log(Ve.green(`
418
- [Forked session: ${ke.sessionId}]`)),console.log(Ve.dim(` Messages: ${ke.data.messages.length}`)),"forked"},"forkSession"),rewindSession:i(async F=>{if(!Qr(D,"Rewinding session",df))return"blocked";let ke=await o.rewind?.(n.sessionId,F);return ke?(n.messages=ke.messages,n.uiHistory=Ds(ke.uiHistory),n.title=ke.title,n.contextTokenSnapshot=void 0,A.current=n.uiHistory??[],Kn(null),Se(),Oo([]),console.log(Ve.green(`
419
- [Rewound session${F?` to ${F}`:" to previous turn"}]`)),console.log(Ve.dim(` Messages: ${ke.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:i(()=>K.current?.()??null,"getCostReport"),getAutoModeStats:i(()=>{if(en(wn.current))return l.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:i(F=>{en(wn.current)&&(l.getGuardrail().setEngine(F),Vf(F))},"setAutoModeEngine"),createKodaXOptions:i(()=>({...qe.current,provider:D.provider,model:D.model,thinking:D.thinking,reasoningMode:D.reasoningMode,agentMode:D.agentMode,guardrails:Ch(wn.current,l),events:am()}),"createKodaXOptions"),reloadAgentsFiles:i(async()=>{let F=await xm({cwd:process.cwd(),projectRoot:n.gitRoot??void 0});return g(F),F},"reloadAgentsFiles"),startCompacting:i(()=>{J()},"startCompacting"),stopCompacting:i(()=>{Ee()},"stopCompacting"),onCompactStats:i(F=>{Us.current=F.tokensBefore,Kn(F.tokensAfter)},"onCompactStats"),confirm:i(async F=>(await Sr("confirm",{_alwaysConfirm:!0,_message:F})).confirmed,"confirm"),ui:{select:i(async(F,fe)=>Rk(F,fe),"select"),confirm:i(async F=>(await Sr("confirm",{_alwaysConfirm:!0,_message:F})).confirmed,"confirm"),input:i(async(F,fe)=>Zy(F,fe),"input")}},de=[],cn=console.log;console.log=(...F)=>{let fe=F.map(ke=>typeof ke=="string"?ke:String(ke)).join(" ");de.push(fe)};let Sn;try{let F=await hs(G,n,Be,D);typeof F=="object"&&F!==null&&"invocation"in F&&(Sn=F.invocation)}finally{console.log=cn}if(de.length>0&&v({type:"info",text:de.join(`
420
- `)}),Sn){Ge(!1),ye(),Ge(!0),Pe(),Ae();try{await nx(Sn,S.trim())}catch(F){let fe=F instanceof Error?F:new Error(String(F)),ke=fe.name==="AbortError"||fe.message.includes("aborted")||fe.message.includes("ABORTED");console.log=cn,ke?$l():ga([{type:"error",text:fe.message}])}finally{Ge(!1),ye(),Re()}return}Ge(!1),ye();return}let oe=await Fg(S.trim());if(S.trim().startsWith("!")&&Cc(oe)){Ge(!1),ye();return}let Te=qe.current.context?.executionCwd??process.cwd(),mt=i(Be=>{Be.length!==0&&ga(Be.map(de=>({type:"info",text:de})))},"emitArtifactWarnings");Ae();let Wt=[],ha=console.log;console.log=(...Be)=>{let de=Be.map(cn=>typeof cn=="string"?cn:String(cn)).join(" ");Wt.push(de)};try{await Nl(oe,async Be=>{let de=bc(Be,qe.current.context?.executionCwd??process.cwd());return mt(de.warnings),ma(qe.current,de.promptText,n.messages,de.inputArtifacts)})}catch(Be){let de=Be instanceof Error?Be:new Error(String(Be));if(de.name==="AbortError"||de.message.includes("aborted")||de.message.includes("ABORTED"))console.log=ha,$l();else{let Sn=de.message;de.message.includes("rate limit")||de.message.includes("Rate limit")?Sn=`[Rate Limit] ${de.message}
421
- Suggestion: Wait a moment and try again, or switch provider with /mode`:de.message.includes("API key")||de.message.includes("not configured")?Sn=`[Configuration Error] ${de.message}
422
- Suggestion: Set the required API key environment variable`:de.message.includes("network")||de.message.includes("ECONNREFUSED")||de.message.includes("ETIMEDOUT")?Sn=`[Network Error] ${de.message}
423
- Suggestion: Check your internet connection`:(de.message.includes("token")||de.message.includes("context too long"))&&(Sn=`[Context Error] ${de.message}
424
- Suggestion: Use /clear to start fresh`),console.log=ha,nt.current.workerId?yn({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:Sn,timestamp:Date.now()}):ga([{type:"error",text:Sn}])}}finally{if(console.log=ha,Wt.length>0){let de=Wt.filter((cn,Sn,F)=>F.indexOf(cn)===Sn);v({type:"info",text:de.join(`
425
- `)})}if(!et.current){let de=Ys(L.Cancelled,()=>({error:"Run ended before the tool result was observed.",output:void 0}));de.length>0&&nt.current.workerId&&de.forEach(cn=>Dn(cn))}Ge(!1),ye(),ue(),Re();let Be=br(n.messages);n.contextTokenSnapshot={currentTokens:Be,baselineEstimatedTokens:Be,source:"estimate"},Kn(Be)}},[oi,n,D,If,_.pendingInputs.length,o,Qe,Me,h,a,v,Se,Pe,ye,ue,am,nx,bt,Q,M,Ol,um,pa,wo,Nl,lm,J,Ee,No,Ys,Dn,Qs]),_k=se(Pd,{left:se(_d,{items:Iy}),right:se($d,{items:ky}),queued:se(Pg,{pendingInputs:_.pendingInputs}),stashNotice:se(Fd,{text:Il}),notifications:se(Hd,{notifications:vl}),inlineNotices:Qf.length>0?se(Lg,{notices:Qf}):void 0,activityBar:Uo||te&&yo.shouldRender?Yt(I,{paddingX:1,flexDirection:"row",children:[Yt(I,{flexGrow:1,children:[Uo?.showSpinner?se(_n,{color:ee("dark").colors.accent}):null,Uo?Yt(C,{color:Uo.kind==="waiting"?ee("dark").colors.warning:ee("dark").colors.accent,children:[Uo.showSpinner?" ":"",Uo.text]}):null,Uo?.showSpinner&&_.roundStartedAt!=null?se(TC,{roundStartedAt:_.roundStartedAt,charCount:_.currentResponse.length,theme:ee("dark")}):null]}),te&&yo.shouldRender?se(C,{dimColor:!0,children:`${yo.completedCount}/${yo.totalCount} completed`}):null]}):void 0,todoSurface:te&&yo.shouldRender?se(I,{paddingX:1,children:se(Nb,{viewModel:yo})}):void 0,composer:se(bg,{onSubmit:Ak,onHistoryRecall:Mk,onPopPendingInputs:i(()=>{let f=ie();if(f.length!==0)return f.join(`
426
- ---
427
- `)},"onPopPendingInputs"),prompt:">",placeholder:u0({isLoading:te,canQueueFollowUps:If,waitingReason:zf}),focus:!Qe&&!Me&&!it,cwd:process.cwd(),gitRoot:e.context?.gitRoot||n.gitRoot,onInputChange:yk}),inlineSuggestions:Ck,helpSurface:ty?se(Ig,{sections:sf()}):void 0,taskBar:ia?se(Wd,{items:xi.backgroundTask.items,overflowLabel:xi.backgroundTask.overflowLabel,ctaHint:xi.backgroundTask.ctaHint,showSpinner:te}):void 0,statusLine:se(I,{children:se(vs,{...Cl,viewModel:by})}),inlineDialogs:vk}),$k=se(Pd,{left:se(_d,{items:Iy}),right:se($d,{items:ky}),stashNotice:se(Fd,{text:Il}),notifications:se(Hd,{notifications:vl}),composer:se(Pb,{searchActive:it,selectionActive:!!(ho||Ye),showAllActive:vt,searchQuery:Kt,searchCurrent:It.length>0?Fo+1:0,searchCount:It.length,searchDetailText:Gf,pendingLiveUpdates:ea,secondaryText:Sk}),taskBar:ia?se(Wd,{items:xi.backgroundTask.items,overflowLabel:xi.backgroundTask.overflowLabel,ctaHint:xi.backgroundTask.ctaHint,showSpinner:st}):void 0,statusLine:se(I,{children:se(vs,{...Cl,viewModel:Yf})})}),dm=V(f=>se(Lb,{banner:f?.bannerVisible?se(bh,{...xr}):void 0,items:na,isLoading:Vt,viewportRows:zt.messageRows,viewportWidth:k,scrollOffset:Pn,windowed:!!f?.rendererWindow,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?oa:gl,maxLines:yt,selectedTextRanges:Ff?Xc?.rowRanges:void 0,onMetricsChange:Rl,onVisibleRowsChange:El}),[xr,na,Vt,Rl,El,Pn,gl,k,yt,Xc?.rowRanges,zt.messageRows,Ff]),fm=V(f=>se(Ob,{banner:f?.bannerVisible?se(bh,{...xr}):void 0,items:ta,browse:{hintText:Wo.browseHintText},selection:kl,search:Sy,isLoading:st,isThinking:xe.isThinking,thinkingCharCount:xe.thinkingCharCount,thinkingContent:xe.thinkingContent,streamingResponse:xe.currentResponse,currentTool:xe.currentTool,activeToolCalls:xe.activeToolCalls,toolInputCharCount:xe.toolInputCharCount,toolInputContent:xe.toolInputContent,iterationHistory:xe.iterationHistory,currentIteration:xe.currentIteration,isCompacting:xe.isCompacting,agentMode:D.agentMode,managedPhase:st?j?.phase:void 0,managedHarnessProfile:st?j?.harnessProfile:void 0,managedWorkerTitle:st?j?.activeWorkerTitle:void 0,managedRound:st?j?.currentRound:void 0,managedMaxRounds:st?j?.maxRounds:void 0,managedGlobalWorkBudget:st?j?.globalWorkBudget:void 0,managedBudgetUsage:st?j?.budgetUsage:void 0,managedBudgetApprovalRequired:st?j?.budgetApprovalRequired:void 0,lastLiveActivityLabel:xe.lastLiveActivityLabel,viewportRows:zt.messageRows,viewportWidth:k,scrollOffset:Pn,windowed:!!f?.windowed,animateSpinners:!!f?.rendererWindow&&Si,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?oa:hl,maxLines:yt,showDetailedTools:vt,showAllContent:vt,selectedItemId:xn.selectionEnabled?Ye:void 0,selectedTextRanges:fr?.rowRanges,expandedItemKeys:xn.selectionEnabled?sn:void 0,onMetricsChange:Rl,onVisibleRowsChange:El}),[xr,D.agentMode,st,sn,s.transcriptSpinnerAnimation,Rl,El,Pn,uy,j?.activeWorkerTitle,j?.budgetApprovalRequired,j?.budgetUsage,j?.currentRound,j?.globalWorkBudget,j?.harnessProfile,j?.maxRounds,j?.phase,oa,hl,Wo.browseHintText,Ye,kl,k,Si,ta,yt,xe.activeToolCalls,xe.currentIteration,xe.currentResponse,xe.currentTool,xe.isCompacting,xe.isThinking,xe.iterationHistory,xe.lastLiveActivityLabel,xe.thinkingCharCount,xe.thinkingContent,xe.toolInputCharCount,xe.toolInputContent,fr?.rowRanges,Sy,vt,zt.messageRows]),Pk=ne?fm({bannerVisible:!1,windowed:xt}):dm({bannerVisible:!1}),ox=ne?$k:_k,Lk=s.enabled&&gi,rx=Yt(I,{flexDirection:"column",width:k,flexShrink:0,flexGrow:Lk?1:0,children:[se(eh,{currentConfig:D,setCurrentConfig:Je,isLoading:te,abort:le,stopThinking:Y,clearThinkingContent:Re,setCurrentTool:ce,setIsLoading:Ge,onToggleHelp:hk,setShowHelp:ny,onSetThinking:i(f=>{qe.current.thinking=f},"onSetThinking"),onSetReasoningMode:i(f=>{qe.current.reasoningMode=f,qe.current.thinking=f!=="off"},"onSetReasoningMode"),onToggleTranscriptMode:Ik,onOpenTranscriptSearch:em,canOpenTranscriptSearch:ne&&!Qe&&!Me,isInteractiveDialogActive:!!(Qe||Me),onSetAgentMode:i(f=>{qe.current.agentMode=f},"onSetAgentMode"),onSetPermissionMode:i(f=>{sm(f)},"onSetPermissionMode"),isInputEmpty:kf,onSavePermissionMode:Qa}),vf&&(s.enabled?null:se(os,{items:[1],children:i(()=>se(bh,{...xr},"banner"),"children")})),gi?se(wg,{width:k,stickyHeader:Wo.stickyHeader,jumpToLatest:Wo.jumpToLatest,transcript:!s.enabled||!xt?ne?fm({bannerVisible:!1}):dm({bannerVisible:!1}):void 0,renderTranscriptWindow:s.enabled&&xt?f=>(()=>{let S=la(f).contentWindow;return ne?fm({bannerVisible:!1,windowed:!0,rendererWindow:S}):dm({bannerVisible:!1,rendererWindow:S})})():void 0,overlay:om,scrollTop:Pn,scrollHeight:ca,viewportHeight:zt.messageRows,stickyScroll:!ne&&!Bo&&Mf,scrollRef:rk,onWindowChange:bk,onScrollTopChange:sk,onStickyChange:ak,footer:ox}):Yt(oD,{children:[Yt(I,{flexDirection:"column",flexGrow:1,children:[Pk,om?se(I,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:om}):null]}),ox]})]});return Hf?se(rp,{mouseTracking:Ho.usesRendererMouseTracking,children:rx}):rx},"InkREPLInner"),uD=i(e=>{let t=process.cwd(),n=e.options?.context?.gitRoot??void 0;return se(Dd,{children:se(Ud,{children:se(Au,{children:se(Jg,{children:se(Qp,{cwd:t,gitRoot:n,children:se(lD,{...e})})})})})})},"InkREPL");function dD(){return process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function"}i(dD,"isRawModeSupported");async function Rh(e){if(!dD())throw new gm("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 Ms,n=Mr(),o=Ar(),r=_r(n,o),{prepareRuntimeConfig:s,getGitRoot:a}=await import("./utils-CHXCBR3Q.js"),{loadCompactionConfig:c}=await import("./compaction-config-WCNGYWT3.js"),{resolveProvider:l}=await import("./dist-C2VOGY5Z.js"),d=s(),m=e.provider??d.provider??Bl,p=e.model??d.model,g=rD(e,d),x=e.agentMode??d.agentMode??"ama",h=g!=="off",T=to(d.permissionMode,"accept-edits")??"accept-edits",w=Wl(),b=d.repoIntelligenceTrace===!0,O={provider:m,model:p,thinking:h,reasoningMode:g,agentMode:x,permissionMode:T,repoIntelligenceMode:w.mode,repointelEndpoint:w.endpoint,repointelBin:w.bin,repoIntelligenceTrace:b},P=e.session?.id,N=[],K,W,v,Z="",Se=await a().catch(()=>null)??void 0,z=Hl({meta:{cwd:process.cwd(),startedAt:Date.now()}});if(z){let ae=i(()=>{z.shutdown()},"teamModeCleanup");process.on("exit",ae),process.on("SIGTERM",ae)}try{let{bootstrapConstructionRuntime:ae}=await import("./construction-bootstrap-OB5SDNBD.js"),q=await ae(Se??process.cwd());if(q.loaded>0||q.failed>0||q.tampered>0){let Y=q.failed>0?`; ${q.failed} failed (see warnings above)`:"",Re=q.tampered>0?`; ${q.tampered} skipped due to manifest contentHash mismatch \u2014 re-stage and re-activate to re-approve`:"";console.log(Ve.dim(`[Constructed] Rehydrated ${q.loaded} active tool(s)${Y}${Re}.`))}if(q.markdownLoaded>0||q.markdownFailures.length>0){console.log(Ve.dim(`[Agents] Loaded ${q.markdownLoaded} markdown agent(s).`));for(let Y of q.markdownFailures)console.warn(Ve.yellow(`[Agents] Skipped ${Y.path}: ${Y.reason}`))}}catch(ae){console.warn(Ve.yellow(`[Constructed] Bootstrap failed: ${ae.message}. Self-construction disabled this session.`))}let re;try{let ae=await c(Se),q=l(m);re={contextWindow:ae.contextWindow??q.getContextWindow?.()??2e5,triggerPercent:ae.triggerPercent,enabled:ae.enabled,userOverrideContextWindow:ae.contextWindow}}catch{}if(e.session?.id&&!e.session.resume){let ae=await t.load(e.session.id);ae&&(N=ae.messages,K=Ds(ae.uiHistory),W=ae.lineage,v=ae.artifactLedger,Z=ae.title,P=e.session.id,console.log(Ve.green(`[Session loaded: ${e.session.id}]`)))}else if(e.session?.resume||e.session?.autoResume){let ae=await t.list(Se);if(ae.length>0){let q=ae[0];if(q){let Y=await t.load(q.id);Y&&(N=Y.messages,K=Ds(Y.uiHistory),W=Y.lineage,v=Y.artifactLedger,Z=Y.title,P=q.id,console.log(Ve.green(`[Continuing session: ${q.id}]`)))}}}let A=await wc({sessionId:P,gitRoot:Se,existingMessages:N,existingUiHistory:K,existingLineage:W,existingArtifactLedger:v});A.title=Z,z?.writer.update({sessionId:A.sessionId});let _={current:await xm({cwd:process.cwd(),projectRoot:Se??void 0})},be={current:null},Pe={current:null},ye={current:O},le=Wu(),Ae=await Tc({askUser:i(async(ae,q,Y)=>{let Re=be.current;return Re?Re(ae,q,Y):"block"},"askUser"),projectRoot:Se??process.cwd(),getAgentsFiles:i(()=>_.current,"getAgentsFiles"),getCurrentProviderName:i(()=>ye.current.provider,"getCurrentProviderName"),getCurrentModel:i(()=>ye.current.model,"getCurrentModel"),getCurrentPermissionMode:i(()=>ye.current.permissionMode,"getCurrentPermissionMode"),autoModeSettings:le,log:i((ae,q)=>{ae==="warn"?console.warn(Ve.yellow(q)):console.log(Ve.dim(q))},"log"),onEngineChange:i(ae=>{Pe.current?.(ae)},"onEngineChange"),extraCollectors:[ja]});try{let ae=process.stdout,q=process.stdin;import("./paste-5DSTHQGK.js").then(ze=>ze.prunePasteTmpDir()).catch(()=>{});let Y=!1,{waitUntilExit:Re,cleanup:ce}=bu(se(uD,{options:e,config:O,context:A,storage:t,compactionInfo:re,rendererMode:o,fullscreenPolicy:r,autoModeBootstrap:Ae,setAutoModeAskUser:i(ze=>{be.current=ze},"setAutoModeAskUser"),setAutoModeEngineChange:i(ze=>{Pe.current=ze},"setAutoModeEngineChange"),setCurrentConfigRef:i(ze=>{ye.current=ze},"setCurrentConfigRef"),onAgentsFilesReload:i(ze=>{_.current=ze},"onAgentsFilesReload"),teamModeHandle:z,onExit:i(()=>{Y=!0},"onExit")}),{stdout:ae,stdin:q,exitOnCtrlC:!1,patchConsole:!1,maxFps:30,shellMode:r.enabled?r.promptShell:"main-screen"});await Re(),ce(),z?.shutdown(),q.isTTY===!0&&typeof q.setRawMode=="function"&&q.isRaw&&q.setRawMode(!1),q.pause?.(),q.unref?.(),Y&&console.log(Ve.dim(`
428
- [Exiting KodaX...]`));let lt=e.hardExitOnClose??process.env.VITEST!=="true";if(Y&&lt){let ze=process.exitCode??0,Oe=!1,ue=i(()=>{Oe||(Oe=!0,process.exit(ze))},"requestProcessExit");setTimeout(ue,0).unref?.(),ae.write("",ue);return}}catch(ae){throw ae instanceof Error&&ae.message.includes("Raw mode")?new gm("Interactive mode failed to start.",['kodax -p "your task" # Run a single task',"kodax -c # Continue last session"]):ae}}i(Rh,"runInkInteractiveMode");import gn from"chalk";var G0=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],K0=["\x1B[36m","\x1B[35m","\x1B[34m"],kc=null,Ns=!1;function Ic(){let e=0,t=0,n=!1,o="Thinking...",r=i(()=>{if(n)return;let c=K0[t%K0.length],l="\x1B[0m",d=G0[e%G0.length];process.stdout.write(`\r${c}${d}${l} ${o}`)},"renderFrame"),s=setInterval(()=>{e++,e%10===0&&t++,r()},80);r();let a={stop:i(()=>{n||(n=!0,clearInterval(s),process.stdout.write("\r\x1B[K"))},"stop"),isStopped:i(()=>n,"isStopped"),updateText:i(c=>{o=c},"updateText")};return kc=a,a}i(Ic,"startWaitingDots");function fD(e=!0){let t=null,n=0,o=!1;return{onSessionStart:i(s=>{console.log(e?gn.cyan(`[KodaX] Provider: ${s.provider} | Session: ${s.sessionId}`):gn.cyan(`[KodaX] Provider: ${s.provider}`))},"onSessionStart"),onTextDelta:i(s=>{t&&(t.stop(),t=null),n=0,process.stdout.write(s),o=!0},"onTextDelta"),onThinkingDelta:i(s=>{n+=s.length,t||(t=Ic()),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(gn.dim(`[Thinking] ${c}`))}},"onThinkingEnd"),onToolUseStart:i(s=>{t||(Ns||(process.stdout.write(`
429
- `),Ns=!0),t=Ic()),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())&&(Ns||(process.stdout.write(`
430
- `),Ns=!0,o=!1),t=Ic(),t.updateText(`Receiving ${s}... (${l} chars)`))},"onToolInputDelta"),onToolResult:i(s=>{t&&(t.stop(),t=null),console.log(gn.green(`[Result] ${s.content.slice(0,300)}${s.content.length>300?"...":""}`))},"onToolResult"),onRepoIntelligenceTrace:i(s=>{t&&(t.stop(),t=null),console.log(gn.dim(`[RepoIntel] ${s.summary}`))},"onRepoIntelligenceTrace"),onStreamEnd:i(()=>{kc&&!kc.isStopped()&&kc.stop(),kc=null,Ns=!1,o&&(console.log(),o=!1),(!t||t.isStopped())&&(t=Ic(),t.updateText("Processing..."))},"onStreamEnd"),onIterationStart:i((s,a)=>{t&&!t.isStopped()&&t.stop(),Ns=!1,o=!1,console.log(gn.magenta(`
431
- [Assistant]`)),t=Ic()},"onIterationStart"),onCompactStart:i(()=>{console.log(gn.dim(`
432
- [KodaX] Compacting context...`))},"onCompactStart"),onCompact:i(s=>{console.log(gn.dim(`[KodaX] Compaction finished (${s} tokens).`))},"onCompact"),onCompactEnd:i(()=>{},"onCompactEnd"),onRetry:i((s,a,c)=>{console.log(gn.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(gn.yellow(`[KodaX] ${a} (${s.errorClass}, ${s.stage})`))},"onProviderRecovery"),onComplete:i(()=>{t&&(t.stop(),t=null),console.log(gn.green(`
433
- [KodaX] Done!`))},"onComplete"),onError:i(s=>{t&&(t.stop(),t=null),console.log(gn.red(`
434
- [Error] ${s.message}`))},"onError"),onScoutSuspiciousCompletion:i(s=>{console.log(gn.yellow(`
435
- [Scout] Completion marked uncertain \u2014 signals: ${s.signals.join(", ")}. Verify the result before continuing.`))},"onScoutSuspiciousCompletion"),beforeToolExecute:i(async(s,a)=>!0,"beforeToolExecute")}}i(fD,"createCliEvents");function ct(e,t){e.write(`${JSON.stringify(t)}
436
- `)}i(ct,"writeJsonLine");function mD(e){return{type:"error",name:e.name,message:e.message,stack:e.stack}}i(mD,"serializeError");function pD(e={}){let t=e.stdout??process.stdout,n=e.stderr??process.stderr;return{onSessionStart:i(o=>{ct(t,{type:"session.start",provider:o.provider,sessionId:o.sessionId})},"onSessionStart"),onIterationStart:i((o,r)=>{ct(t,{type:"iteration.start",iter:o,maxIter:r})},"onIterationStart"),onIterationEnd:i(o=>{ct(t,{type:"iteration.end",iter:o.iter,maxIter:o.maxIter,tokenCount:o.tokenCount,tokenSource:o.tokenSource,usage:o.usage,contextTokenSnapshot:o.contextTokenSnapshot})},"onIterationEnd"),onTextDelta:i(o=>{ct(t,{type:"text.delta",text:o})},"onTextDelta"),onThinkingDelta:i(o=>{ct(t,{type:"thinking.delta",text:o})},"onThinkingDelta"),onThinkingEnd:i(o=>{ct(t,{type:"thinking.end",thinking:o})},"onThinkingEnd"),onToolUseStart:i(o=>{ct(t,{type:"tool.start",id:o.id,name:o.name,input:o.input})},"onToolUseStart"),onToolInputDelta:i((o,r,s)=>{ct(t,{type:"tool.input.delta",toolName:o,partialJson:r,toolId:s?.toolId})},"onToolInputDelta"),onToolResult:i(o=>{ct(t,{type:"tool.result",id:o.id,name:o.name,content:o.content})},"onToolResult"),onStreamEnd:i(()=>{ct(t,{type:"stream.end"})},"onStreamEnd"),onCompactStart:i(()=>{ct(t,{type:"compact.start"})},"onCompactStart"),onCompact:i(o=>{ct(t,{type:"compact.finish",estimatedTokens:o})},"onCompact"),onCompactStats:i(o=>{ct(t,{type:"compact.stats",tokensBefore:o.tokensBefore,tokensAfter:o.tokensAfter})},"onCompactStats"),onCompactEnd:i(()=>{ct(t,{type:"compact.end"})},"onCompactEnd"),onRetry:i((o,r,s)=>{ct(t,{type:"retry",reason:o,attempt:r,maxAttempts:s})},"onRetry"),onProviderRecovery:i(o=>{ct(t,{type:"provider.recovery",stage:o.stage,reasonCode:o.errorClass,attempt:o.attempt,maxAttempts:o.maxAttempts,delayMs:o.delayMs,nextAt:Date.now()+o.delayMs,recoveryAction:o.recoveryAction,fallbackUsed:o.fallbackUsed})},"onProviderRecovery"),onProviderRateLimit:i((o,r,s)=>{ct(t,{type:"provider.rate_limit",attempt:o,maxRetries:r,delayMs:s})},"onProviderRateLimit"),onRepoIntelligenceTrace:i(o=>{ct(t,{type:"repo_intelligence.trace",stage:o.stage,summary:o.summary,capability:o.capability,trace:o.trace})},"onRepoIntelligenceTrace"),onToolProgress:i(o=>{ct(t,{type:"tool.progress",id:o.id,message:o.message})},"onToolProgress"),onManagedTaskStatus:i(o=>{ct(t,{type:"managed_task.status",agentMode:o.agentMode,harnessProfile:o.harnessProfile,phase:o.phase,activeWorkerId:o.activeWorkerId,activeWorkerTitle:o.activeWorkerTitle,childFanoutClass:o.childFanoutClass,childFanoutCount:o.childFanoutCount,currentRound:o.currentRound,maxRounds:o.maxRounds,note:o.note,detailNote:o.detailNote,globalWorkBudget:o.globalWorkBudget,budgetUsage:o.budgetUsage,budgetApprovalRequired:o.budgetApprovalRequired})},"onManagedTaskStatus"),onScoutSuspiciousCompletion:i(o=>{ct(t,{type:"scout.suspicious_completion",confidence:o.confidence,signals:o.signals,sessionId:o.sessionId,lastTextPreview:o.lastTextPreview})},"onScoutSuspiciousCompletion"),onComplete:i(()=>{ct(t,{type:"complete"})},"onComplete"),onError:i(o=>{ct(n,mD(o))},"onError")}}i(pD,"createJsonEvents");import{jsx as ut,jsxs as nn}from"react/jsx-runtime";import wD,{useMemo as Rc}from"react";var Eh=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@.*$/,V0=/^---\s+(.+)$/;function z0(e){if(!e)return[];let t=e.split(`
437
- `),n=[],o=[],r=[],s=!1,a=null,c=null,l=0,d=0,m=i(()=>{if(o.length===0)return;let g=o.join(`
438
- `);g.length>0&&n.push({kind:"text",text:g}),o=[]},"flushText"),p=i(()=>{r.length!==0&&(n.push({kind:"diff",text:r.join(`
439
- `),addedLines:l,removedLines:d,filePath:c}),r=[],l=0,d=0,c=null)},"flushDiff");for(let g=0;g<t.length;g++){let x=t[g];if(!s){let w=V0.exec(x);if(w){let b=Math.min(g+3,t.length-1),O=!1;for(let P=g+1;P<=b;P++)if(t[P]?.startsWith("+++ ")||Eh.test(t[P]??"")){O=!0;break}if(O){m(),s=!0,a=w[1]??null,c=a,r.push(x);continue}}if(Eh.test(x)){m(),s=!0,r.push(x);continue}o.push(x);continue}let h=V0.exec(x);if(h){let w=Math.min(g+3,t.length-1),b=!1;for(let O=g+1;O<=w;O++)if(t[O]?.startsWith("+++ ")||Eh.test(t[O]??"")){b=!0;break}if(b){p(),c=h[1]??null,r.push(x);continue}}let T=x[0];if(T==="+"||T==="-"||T===" "||T==="@"||x===""){T==="+"&&!x.startsWith("+++ ")&&l++,T==="-"&&!x.startsWith("--- ")&&d++,r.push(x);continue}p(),s=!1,a=null,o.push(x)}return p(),m(),n}i(z0,"parseUnifiedDiff");function X0(e){return e?/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/m.test(e):!1}i(X0,"containsUnifiedDiff");import{jsxs as Bs,jsx as gD}from"react/jsx-runtime";import hD from"react";function yD(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(yD,"classifyLine");function xD(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(xD,"colorFor");var Mh=hD.memo(({text:e,addedLines:t,removedLines:n,filePath:o,theme:r,maxLines:s=16,extremeThreshold:a=200})=>{let c=r??ee("dark"),l=e.split(`
440
- `),d=l.map(yD),m=`(${t>0?`+${t}`:"\xB10"} ${n>0?`-${n}`:""})`.trim();if(l.length>a)return Bs(I,{flexDirection:"column",marginLeft:4,children:[o&&Bs(C,{dimColor:!0,children:[o," ",m]}),Bs(C,{dimColor:!0,children:["[diff too large to render inline \u2014 ",l.length," lines, ",t,"+ / ",n,"-]"]})]});let p,g=0;if(l.length>s){let x=Math.floor(s/2),h=d.slice(0,x),T=d.slice(-x);g=l.length-h.length-T.length,p=[...h,{text:"",kind:"context"},...T]}else p=d;return Bs(I,{flexDirection:"column",marginLeft:4,children:[o&&Bs(C,{dimColor:!0,children:[o," ",m]}),p.map((x,h)=>{if(h===Math.floor(s/2)&&g>0&&x.kind==="context"&&x.text==="")return Bs(C,{dimColor:!0,children:["... ",g," lines collapsed ..."]},`collapse-${h}`);let w=xD(x.kind,c);return gD(C,{color:w,children:x.text||" "},h)})]})});Mh.displayName="DiffHunk";function Y0(e){switch(e){case L.Scheduled:return"\u25CB";case L.Validating:return"\u25D0";case L.AwaitingApproval:return"\u23F8";case L.Executing:return"\u25CF";case L.Success:return"\u2713";case L.Error:return"\u2717";case L.Cancelled:return"\u2298";default:return"?"}}i(Y0,"getStatusIcon");function q0(e,t){switch(e){case L.Scheduled:case L.Validating:return t.colors.dim;case L.AwaitingApproval:return t.colors.accent;case L.Executing:return t.colors.primary;case L.Success:return t.colors.success??t.colors.primary;case L.Error:return t.colors.error;case L.Cancelled:return t.colors.dim;default:return t.colors.text}}i(q0,"getStatusColor");function SD(e,t){if(!t)return"";let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(SD,"formatDuration");function TD(e){if(!e)return"";let t=JSON.stringify(e);return t.length<=50?t:t.slice(0,47)+"..."}i(TD,"formatInputSummary");var CD=i(({status:e,theme:t})=>{let n=t??Rc(()=>ee("dark"),[]),o=Y0(e),r=q0(e,n);return ut(C,{color:r,children:o})},"ToolStatusBadge"),Q0=i(({progress:e,width:t=20,theme:n})=>{let o=n??Rc(()=>ee("dark"),[]),r=Math.max(0,Math.min(100,e)),s=Math.round(r/100*t),a=t-s,c="\u2588".repeat(s),l="\u2591".repeat(a);return nn(I,{children:[ut(C,{color:o.colors.primary,children:c}),ut(C,{dimColor:!0,children:l}),nn(C,{children:[" ",r,"%"]})]})},"ToolProgressBar"),J0=i(({tool:e,collapsed:t=!1,theme:n})=>{let o=n??Rc(()=>ee("dark"),[]),r=Y0(e.status),s=q0(e.status,o),a=TD(e.input),c=SD(e.startTime,e.endTime);return t?nn(I,{children:[nn(C,{color:s,children:[r," "]}),ut(C,{color:o.colors.text,children:e.name})]}):nn(I,{flexDirection:"column",marginLeft:2,children:[nn(I,{children:[nn(C,{color:s,children:[r," "]}),ut(C,{color:o.colors.text,bold:!0,children:e.name}),a&&nn(C,{dimColor:!0,children:[" ",a]})]}),e.progress!==void 0&&e.status===L.Executing&&ut(I,{marginLeft:2,children:ut(Q0,{progress:e.progress,theme:o})}),e.progressLines&&e.progressLines.length>0&&e.status===L.Executing&&ut(I,{flexDirection:"column",marginLeft:2,children:e.progressLines.slice(-5).map((l,d)=>ut(C,{dimColor:!0,children:l},d))}),e.error&&ut(I,{marginLeft:2,children:ut(C,{color:o.colors.error,children:e.error})}),e.status===L.Success&&typeof e.output=="string"&&e.output.length>0&&ut(Z0,{output:e.output,theme:o}),c&&e.status!==L.Executing&&ut(I,{marginLeft:2,children:nn(C,{dimColor:!0,children:["Completed in ",c]})})]})},"ToolCallDisplay"),Z0=wD.memo(({output:e,theme:t})=>{if(!X0(e))return ut(I,{marginLeft:2,children:ut(C,{dimColor:!0,children:e})});let n=z0(e);return ut(I,{flexDirection:"column",marginLeft:2,children:n.map((o,r)=>o.kind==="text"?ut(C,{dimColor:!0,children:o.text},r):ut(Mh,{text:o.text,addedLines:o.addedLines,removedLines:o.removedLines,filePath:o.filePath,theme:t},r))})});Z0.displayName="ToolOutputBlock";var bD=i(({tools:e,collapsed:t=!1,title:n,theme:o})=>{let r=o??Rc(()=>ee("dark"),[]);if(e.length===0)return null;let s=Rc(()=>{let c={[L.Scheduled]:0,[L.Validating]:0,[L.AwaitingApproval]:0,[L.Executing]:0,[L.Success]:0,[L.Error]:0,[L.Cancelled]:0};for(let l of e)c[l.status]++;return c},[e]),a=n??"Tools";if(t){let c=s[L.Success],l=s[L.Error],d=s[L.Executing]+s[L.Scheduled]+s[L.Validating];return ut(I,{flexDirection:"column",marginBottom:1,children:nn(I,{children:[ut(C,{color:r.colors.accent,bold:!0,children:a}),nn(C,{dimColor:!0,children:[" ","(",e.length," tools",c>0&&`, ${c} succeeded`,l>0&&`, ${l} failed`,d>0&&`, ${d} running`,")"]})]})})}return nn(I,{flexDirection:"column",marginBottom:1,children:[nn(I,{children:[ut(C,{color:r.colors.accent,bold:!0,children:a}),nn(C,{dimColor:!0,children:[" ","(",e.length," ",e.length===1?"tool":"tools",")"]})]}),e.map(c=>ut(J0,{tool:c,theme:r},c.id))]})},"ToolGroup");import{jsxs as eI,jsx as vD}from"react/jsx-runtime";var ID=i(({pendingInputs:e})=>{let t=hb(e);if(!t)return null;let n=ee("dark");return eI(I,{children:[eI(C,{color:n.colors.hint,children:["\u23F3"," "]}),vD(C,{color:n.colors.dim,children:t})]})},"PendingInputsIndicator");import*as tI from"child_process";var Ec;function kD(){if(process.platform!=="win32")return null;if(Ec!==void 0)return Ec;try{Ec=tI.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{Ec=null}return Ec}i(kD,"detectWindowsCodePage");function ff(){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(ff,"supportsTrueColor");function nI(){if(ff())return!0;let e=process.env.TERM||"";return e.includes("256color")||e==="xterm-256color"||e==="screen-256color"||e==="tmux-256color"}i(nI,"supports256Colors");function Po(){let e=process.env,t=e.LC_ALL||"",n=e.LC_CTYPE||"",o=e.LANG||"";if(t==="C"||t==="POSIX"||n==="C"||n==="POSIX"||o==="C"||o==="POSIX")return!1;let r=`${t}|${n}|${o}`.toLowerCase();return r.includes("utf-8")||r.includes("utf8")?!0:process.platform==="win32"?e.WT_SESSION||e.TERM_PROGRAM==="vscode"?!0:kD()==="65001":!0}i(Po,"supportsUnicode");function oI(){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(oI,"supportsEmoji");function rI(){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(rI,"getTerminalWidth");function iI(){let e=process.env;return!!(e.NO_COLOR||e.TERM==="dumb"||e.CI)}i(iI,"isScreenReader");function RD(){return process.stdout?.isTTY??!1}i(RD,"isTTY");function ED(){return{trueColor:ff(),colors256:nI(),unicode:Po(),emoji:oI(),tty:RD(),columns:rI(),screenReader:iI()}}i(ED,"detectTerminalCapabilities");var Mc=class{static{i(this,"ConsoleCapturer")}captured=[];originalLog=null;start(){this.captured=[],this.originalLog=console.log,console.log=(...t)=>{let n=t.map(o=>typeof o=="string"?o:String(o)).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 MD(e){let t=new Mc;t.start();try{let n=await e(),o=t.stop();return{result:n,captured:o}}finally{t.stop()}}i(MD,"withCapture");function AD(e){let t=new Mc;t.start();try{let n=e(),o=t.stop();return{result:n,captured:o}}finally{t.stop()}}i(AD,"withCaptureSync");import*as wI from"readline";import ge from"chalk";import Gn from"chalk";var _D=[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel the action",value:"no"}],$D=[{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 PD(e,t=!0){return e.map(n=>{let o=Gn.dim(`[${n.key}]`);return t?`${o} ${Gn.cyan(n.label)} ${Gn.dim(`- ${n.description}`)}`:`${o} ${n.label}`}).join(" ")}i(PD,"formatOptions");function Hs(){return process.stdout.columns??80}i(Hs,"getTerminalWidth");function LD(){return Po()}i(LD,"supportsUnicode");function OD(){let e=LD();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(OD,"getSymbols");async function DD(e,t){let{message:n,default:o,options:r,showDescription:s=!0}=t,a=r??_D,c=PD(a,s);console.log(),console.log(Gn.cyan(`? ${n}`));let l=Hs();if(c.length>l-4)for(let d of a){let m=Gn.dim(` [${d.key}]`);console.log(`${m} ${Gn.cyan(d.label)}`),s&&console.log(Gn.dim(` ${d.description}`))}else console.log(Gn.dim(` ${c}`));return new Promise(d=>{let m=o?` (${o})`:"";e.question(Gn.dim(` Choose${m}: `),p=>{let g=p.trim().toLowerCase()||o||"",x=a.find(h=>h.key===g||h.value===g||h.label.toLowerCase()===g);d(x?x.value:g===""?"no":g)})})}i(DD,"confirmEnhanced");async function Ac(e,t,n,o){let{isOutsideProject:r=!1,isProtectedPath:s=!1,permissionMode:a="accept-edits"}=o??{},c=OD(),l,d,m={...n,...r?{_outsideProject:!0}:{},...s?{_alwaysConfirm:!0}:{}},p=qd(t,m),g=p.details.map(h=>` ${Gn.dim(h)}`);r||s?(l=`${Gn.yellow(c.warning)} Safety Warning`,g.length>0&&(l+=`
441
- ${g.join(`
442
- `)}`),d=[{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+=`
443
- ${g.join(`
444
- `)}`),d=a==="accept-edits"?$D:[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]);let x=await DD(e,{message:l,default:"n",options:d});return x==="always"?{confirmed:!0,always:!0}:{confirmed:x==="yes"}}i(Ac,"confirmToolExecution");import on from"chalk";var mf=/\x1b\[[0-9;]*m/g,uo={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 ND(e,t){if(t<=0)return"";let n="",o=0,r=0;for(;r<e.length&&o<t;){mf.lastIndex=r;let s=mf.exec(e);if(s&&s.index===r){n+=s[0],r+=s[0].length;continue}n+=e[r],o+=1,r+=1}return n}i(ND,"truncateAnsi");function sI(e){return mf.lastIndex=0,e.replace(mf,"")}i(sI,"stripAnsi");function BD(e,t=Hs()){let n=[],o=e.sessionId.slice(0,6);n.push(on.dim(`#${o}`));let r=e.permissionMode==="plan"?on.blue:e.permissionMode==="accept-edits"?on.cyan:e.permissionMode==="auto-in-project"?on.magenta:on.green,s=as(e.permissionMode),c=(e.permissionMode==="auto"||e.permissionMode==="auto-in-project")&&e.autoModeEngine?e.autoModeEngine==="llm"?on.green("[LLM]"):on.yellow("[RULES]"):"";if(n.push(r(s)+c),e.reasoningMode&&n.push(on.yellow(`reason:${e.reasoningMode}`)),n.push(on.cyan(e.provider)),e.tokenUsage){let m=e.tokenUsage.total,p=m>=1e3?`${(m/1e3).toFixed(1)}k`:String(m);n.push(on.dim(`${p}t`))}if(e.currentTool&&n.push(on.magenta(`tool:${e.currentTool}`)),e.projectInfo){let{completedFeatures:m,totalFeatures:p}=e.projectInfo,g=p>0?Math.round(m/p*100):0;n.push(on.dim(`${m}/${p} [${g}%]`))}e.messageCount!==void 0&&n.push(on.dim(`${e.messageCount} msgs`));let l=n.join(on.dim(" | ")),d=t-1;return sI(l).length>d&&(l=`${ND(l,Math.max(0,d-3))}...`),l}i(BD,"buildStatusBarContent");var pf=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=Hs(),n=BD(this.state,t),o=n+" ".repeat(Math.max(0,t-sI(n).length));process.stdout.write(uo.SAVE_CURSOR+uo.MOVE_TO_BOTTOM+uo.CLEAR_LINE+uo.REVERSE+o+uo.RESET+uo.RESTORE_CURSOR)}clear(){process.stdout.write(uo.SAVE_CURSOR+uo.MOVE_TO_BOTTOM+uo.CLEAR_LINE+uo.RESTORE_CURSOR)}};function aI(e,t,n,o,r="off"){return{sessionId:e,permissionMode:t,reasoningMode:r,provider:n,model:o}}i(aI,"createStatusBarState");function cI(){if(!process.stdout.isTTY||Ui())return!1;let e=process.env.TERM??"",t=process.env.TERM_PROGRAM??"",n=["xterm","xterm-256color","screen","screen-256color","tmux","tmux-256color","vt100","vt220"],o=["iTerm.app","Terminal.app","Apple_Terminal","vscode","Hyper","Alacritty","kitty","Windows Terminal"];return n.some(r=>e.startsWith(r))||o.includes(t)||process.env.WT_SESSION!==void 0}i(cI,"supportsStatusBar");import m7 from"chalk";function lI(){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(lI,"getUnicodeSymbols");function Ah(){return{prompt:">",success:"[OK]",error:"[X]",warning:"[!]",info:"[i]",arrow:"->",bullet:"*",check:"[v]",cross:"[x]",spinner:["|","/","-","\\","|","/","-","\\"]}}i(Ah,"getAsciiSymbols");var uI={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:Po()?lI():Ah(),spinner:{frames:Po()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},HD={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:Po()?lI():Ah(),spinner:{frames:Po()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},FD={name:"minimal",description:"Minimal theme without colors (for CI or limited terminals)",colors:{primary:"",secondary:"",accent:"",text:"",dim:"",success:"",warning:"",error:"",info:""},symbols:Ah(),spinner:{frames:[".","o","O","0","O","o"],interval:120}},WD={dark:uI,light:HD,minimal:FD},dI=uI;function ti(){return dI}i(ti,"getCurrentTheme");function _c(e){let t=WD[e];return t?(dI=t,!0):!1}i(_c,"setTheme");function UD(){if(!process.stdout.isTTY){_c("minimal");return}let e=process.env;if(e.WT_SESSION!==void 0||e.TERM_PROGRAM==="vscode"){_c("dark");return}_c("dark")}i(UD,"autoSelectTheme");UD();var gf=class{static{i(this,"ReadlineUIContext")}rl;constructor(t){this.rl=t}async select(t,n){if(n.length!==0)return console.log(`
445
- ${t}`),console.log("\u2500".repeat(t.length)),n.forEach((o,r)=>{console.log(` ${r+1}. ${o}`)}),console.log(" 0. Cancel"),console.log(""),new Promise(o=>{this.rl.question("Enter choice (0 to cancel): ",r=>{let s=r.trim();if(s==="0"||s===""){o(void 0);return}let a=parseInt(s,10)-1;if(isNaN(a)||a<0||a>=n.length){console.log("Invalid choice. Please try again."),o(void 0);return}o(n[a])})})}async confirm(t){return new Promise(n=>{this.rl.question(`${t} (y/N): `,o=>{let r=o.trim().toLowerCase();n(r==="y"||r==="yes")})})}async input(t,n){let o=n?`${t} [${n}]: `:`${t}: `;return new Promise(r=>{this.rl.question(o,s=>{let a=s.trim();if(a===""&&n!==void 0){r(n);return}r(a||void 0)})})}};import*as fI from"child_process";import*as Pc from"path";import*as $c from"fs";import*as mI from"os";import fo from"chalk";function pI(e,t){let n=ti(),o=e==="plan"?fo.hex(n.colors.warning):fo.hex(n.colors.success),r=t.model??vn(t.provider)??t.provider,s=Hs();if(s<60){let c=e==="plan"?"?":n.symbols.prompt;return o(`${c} `)}else if(s<100){let c=t.reasoningMode!=="off"?t.reasoningMode[0]?.toUpperCase()??"R":"",l=c?fo.hex(n.colors.dim)(`[${c}]`):"";return o(`kodax:${e}${l}> `)}let a=t.reasoningMode!=="off"?fo.hex(n.colors.info)(`[reason:${t.reasoningMode}]`):"";return o(`kodax:${e} (${t.provider}:${r})${a}> `)}i(pI,"getPrompt");async function gI(e,t){let n=ti(),o=[],r=await new Promise(a=>{e.question(t,a)});if(r===""||r.toLowerCase()==="/e")return await _h(o.join(`
446
- `));for(o.push(r);jD(o.join(`
447
- `));){let a=fo.hex(n.colors.dim)("... "),c=await new Promise(l=>{e.question(a,l)});o.push(c)}return o.join(`
448
- `).replace(/\\\n/g,`
449
- `)}i(gI,"askInput");async function _h(e){let t=Pc.join(mI.tmpdir(),"kodax"),n=Pc.join(t,`input-${Date.now()}-${Math.random().toString(36).slice(2)}.txt`);try{await $c.promises.mkdir(t,{recursive:!0}),await $c.promises.writeFile(n,e,"utf-8");let o=process.env.EDITOR??process.env.VISUAL??(process.platform==="win32"?"notepad.exe":"nano");if(o.includes("/")||o.includes("\\")||o.includes("&&")||o.includes("|")){let a=Pc.basename(o);console.log(fo.yellow(`
450
- [Security] Editor path sanitized: ${a}`)),o=a}console.log(fo.dim(`
451
- [Opening editor: ${o}]`));let r=process.platform==="win32"&&(o.toLowerCase()==="notepad"||o.toLowerCase()==="notepad.exe");return console.log(r?fo.dim(`Note: Please close Notepad manually after editing to continue.
452
- `):fo.dim(`Save and close the editor to continue...
453
- `)),fI.spawnSync(o,[n],{stdio:"inherit",timeout:3e5,shell:!1}),(await $c.promises.readFile(n,"utf-8")).trim()}catch(o){let r=o instanceof Error?o:new Error(String(o));return console.log(fo.red(`
454
- [Editor Error] ${r.message}`)),e}finally{try{await $c.promises.unlink(n)}catch{}}}i(_h,"openExternalEditor");function jD(e){if(e.endsWith("\\")&&!e.endsWith("\\\\"))return!0;let t={"(":0,"[":0,"{":0},n={")":"(","]":"[","}":"{"},o=null;for(let r=0;r<e.length;r++){let s=e[r];if((s==='"'||s==="'"||s==="`")&&e[r-1]!=="\\"){o===s?o=null:o===null&&(o=s);continue}if(!o){if(s in t)t[s]++;else if(s in n){let a=n[s];a&&t[a]--}}}return!!(Object.values(t).some(r=>r>0)||o)}i(jD,"needsContinuation");import je from"chalk";function hI(e){e?.workspaceRoot&&(console.log(je.dim(` Workspace: ${mn(e)}`)),console.log(je.dim(` Use /status workspace for runtime details.
455
- `)))}i(hI,"printWorkspaceEntryNotice");function yI(e,t,n,o){let r=ti(),s=e.model??vn(e.provider)??e.provider;if(console.log(je.hex(r.colors.primary)(`
456
- `+`
457
- \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
458
- \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
459
- \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
460
- \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
461
- \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
462
- \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(je.hex(r.colors.text)(`
463
- v${Bi} | AI Coding Agent | ${e.provider}:${s}`)),console.log(je.hex(r.colors.dim)(`
464
- \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(je.hex(r.colors.dim)(" Mode: ")+je.hex(r.colors.primary)(t)+je.hex(r.colors.dim)(" | Reasoning: ")+(e.reasoningMode==="off"?je.hex(r.colors.dim)("off"):je.hex(r.colors.success)(e.reasoningMode))),n){let c=Math.round(n.contextWindow/1e3),l=Math.round(n.contextWindow*n.triggerPercent/100/1e3),d=n.enabled?je.hex(r.colors.success)("on"):je.hex(r.colors.dim)("off");console.log(je.hex(r.colors.dim)(` Context: ${c}k | Compaction: `)+d+je.hex(r.colors.dim)(` @ ${n.triggerPercent}% (${l}k)`))}if(console.log(je.hex(r.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
465
- `)),o){let c=o.length;console.log(je.hex(r.colors.dim)(" Project Rules: ")+je.hex(r.colors.success)(`${c} rule file(s) loaded`)),console.log(je.hex(r.colors.dim)(` Use /reload to refresh rules
466
- `))}console.log(je.hex(r.colors.dim)(" Quick tips:")),console.log(je.hex(r.colors.primary)(" /help ")+je.hex(r.colors.dim)("Show all commands")),console.log(je.hex(r.colors.primary)(" /mode ")+je.hex(r.colors.dim)("Switch permission mode")),console.log(je.hex(r.colors.primary)(" /clear ")+je.hex(r.colors.dim)("Clear conversation")),console.log(je.hex(r.colors.primary)(" @path ")+je.hex(r.colors.dim)("Attach image to context")),console.log(je.hex(r.colors.primary)(" !cmd ")+je.hex(r.colors.dim)("Run read-only shell command")),console.log(je.hex(r.colors.dim)(`
467
- Keyboard: Tab (complete) | Esc+Esc (edit last) | Ctrl+T (reasoning) | Ctrl+E (editor) | Ctrl+R (history)
468
- `))}i(yI,"printStartupBanner");var Ph=class{static{i(this,"MemorySessionStorage")}sessions=new Map;async save(t,n){let o=this.sessions.get(t),r=bn(n.messages,n.lineage??o?.data.lineage);this.sessions.set(t,{createdAt:o?.createdAt??new Date().toISOString(),data:{...structuredClone(n),scope:n.scope??o?.data.scope??"user",uiHistory:n.uiHistory??o?.data.uiHistory,extensionState:n.extensionState??o?.data.extensionState,extensionRecords:n.extensionRecords??o?.data.extensionRecords,lineage:r}})}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,o){let r=this.sessions.get(t);if(!r?.data.lineage)return null;let s=$i(r.data.lineage,n,o);if(!s)return null;let a={...structuredClone(r.data),messages:kt(s),lineage:s};return this.sessions.set(t,{...r,data:a}),structuredClone(a)}async setLabel(t,n,o){let r=this.sessions.get(t);if(!r?.data.lineage)return null;let s=Pi(r.data.lineage,n,o);if(!s)return null;let a={...structuredClone(r.data),lineage:s};return this.sessions.set(t,{...r,data:a}),structuredClone(a)}async fork(t,n,o){let r=this.sessions.get(t);if(!r?.data.lineage)return null;let s=Di(r.data.lineage,n);if(!s)return null;let a=o?.sessionId??await _i(),c={messages:kt(s),title:o?.title??r.data.title,gitRoot:r.data.gitRoot,runtimeInfo:r.data.runtimeInfo?structuredClone(r.data.runtimeInfo):void 0,scope:r.data.scope??"user",extensionState:r.data.extensionState?structuredClone(r.data.extensionState):void 0,extensionRecords:r.data.extensionRecords?structuredClone(r.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 o=this.sessions.get(t);if(!o?.data.lineage)return null;let r=n??Li(o.data.lineage);if(!r)return null;let s=Oi(o.data.lineage,r);if(!s)return null;let a={...o.data,messages:kt(s),lineage:s};return this.sessions.set(t,{...o,data:a}),structuredClone(a)}async list(t){return Array.from(this.sessions.entries()).filter(([,n])=>(n.data.scope??"user")==="user").map(([n,o])=>({id:n,title:o.data.title,msgCount:o.data.lineage?Ir(o.data.lineage):o.data.messages.length,...o.data.runtimeInfo?{runtimeInfo:structuredClone(o.data.runtimeInfo)}:{}}))}async delete(t){this.sessions.delete(t)}async deleteAll(t){this.sessions.clear()}};function $h(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($h,"applyRuntimeContext");function GD(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:(e.thinking===!0||t.thinking===!0,"auto")}i(GD,"resolveInitialReasoningMode");var Lh={current:null};async function KD(e){let t=await ms({cwd:process.cwd()}),n=t.workspaceRoot??await Rr()??void 0,o=e.storage??new Ph,r=Hl({meta:{cwd:process.cwd(),startedAt:Date.now()}}),s=Im(),a=e.provider??s.provider??Bl,c=e.model??s.model,l=GD(e,s),d=e.agentMode??s.agentMode??"ama",m=l!=="off",p=to(s.permissionMode,"accept-edits")??"accept-edits",g=_u();p==="auto-in-project"&&g();let x=Wl(),h=s.theme;h&&_c(h);let T=ti(),w={provider:a,model:c,thinking:m,reasoningMode:l,agentMode:d,permissionMode:p,repoIntelligenceMode:x.mode,repointelEndpoint:x.endpoint,repointelBin:x.bin,repoIntelligenceTrace:x.trace,fallbackProviders:s.fallbackProviders},b=p,O=ds(),P=0,N="",K=!1,W=500,v=await wc({sessionId:e.session?.id,gitRoot:n,runtimeInfo:t});r?.writer.update({sessionId:v.sessionId});let Z=i(M=>Qr(w,M,($,U,J)=>{console.log(($==="block"?ge.red:ge.yellow)(`
469
- ${U}`));for(let Ee of J)console.log(ge.dim(Ee));console.log()}),"guardSessionTransition"),Se=await Vl(n??void 0),{resolveProvider:z}=await import("./dist-C2VOGY5Z.js"),re=z(w.provider),A=Se.contextWindow??re.getEffectiveContextWindow?.(w.model)??re.getContextWindow?.()??2e5,{loadAgentsFiles:k}=await import("./dist-C2VOGY5Z.js"),_=i(async()=>k({cwd:process.cwd(),projectRoot:v.gitRoot??void 0}),"reloadAgentsFiles"),be=await _();yI(w,w.permissionMode,{contextWindow:A,triggerPercent:Se.triggerPercent,enabled:Se.enabled},be),hI(t);let Pe=oC(()=>v.gitRoot??process.cwd()),ye=wI.createInterface({input:process.stdin,output:process.stdout,terminal:process.stdout.isTTY??!0,historySize:100,completer:i((M,$)=>{Pe(M).then(U=>{$(null,U)}).catch(()=>{$(null,[[],M])})},"completer")}),le=Wu(),Ae=await Tc({askUser:i(async(M,$,U)=>(await Ac(ye,M.name,{...M.input,...U&&U.length>0?{_classifierSignals:U}:{}},{permissionMode:b,reason:`[auto-mode] ${$}`})).confirmed?"allow":"block","askUser"),projectRoot:n??process.cwd(),getAgentsFiles:i(()=>be,"getAgentsFiles"),getCurrentProviderName:i(()=>w.provider,"getCurrentProviderName"),getCurrentModel:i(()=>w.model,"getCurrentModel"),getCurrentPermissionMode:i(()=>b,"getCurrentPermissionMode"),autoModeSettings:le,log:i((M,$)=>{M==="warn"?console.warn(ge.yellow($)):console.log(ge.dim($))},"log"),onEngineChange:i(M=>{en(b)&&Y?.update({autoModeEngine:M})},"onEngineChange"),extraCollectors:[ja]}),ae=jl({getProvider:i(()=>z(w.provider),"getProvider"),getModel:i(()=>w.model??"","getModel")}),q=w.model??vn(w.provider)??w.provider,Y=null;cI()&&(Y=new pf(aI(v.sessionId,w.permissionMode,w.provider,q,w.reasoningMode)),en(b)&&Y.update({autoModeEngine:Ae.getGuardrail().getEngine()}));let Re=`
470
- Keyboard Shortcuts:
471
- Tab Auto-complete (@paths, /commands)
472
- Esc+Esc Edit last message
473
- Ctrl+T Cycle reasoning mode
474
- Ctrl+E Open external editor
475
- Ctrl+R Search command history (built-in)
476
- Ctrl+C Cancel current input
477
- Ctrl+D Exit REPL`,ce=i(()=>{console.log(ge.dim(Re))},"_printKeyboardShortcuts");process.stdin.isTTY&&process.stdin.on("keypress",(M,$)=>{if($&&$.name==="escape"){let U=Date.now();U-P<W&&N&&(K=!0,console.log(ge.dim(`
478
- [Opening editor with last message...]`)),ye.pause()),P=U}});let ze=So(n).getSystemPromptSnippet(),Oe=!0,ue={...e,reasoningMode:l,thinking:m,context:{...e.context,gitRoot:n,executionCwd:t.executionCwd,repoIntelligenceMode:x.mode,repoIntelligenceTrace:x.trace,skillsPrompt:ze},session:{...e.session,id:v.sessionId,persistedByHost:!0}};Lh.current=null;let Mt={exit:i(()=>{Oe=!1,r?.shutdown(),ye.close()},"exit"),saveSession:i(async()=>{if(v.messages.length>0){let M=Lc(v.messages);v.title=M,await o.save(v.sessionId,{messages:v.messages,title:M,gitRoot:v.gitRoot??"",runtimeInfo:v.runtimeInfo,artifactLedger:v.artifactLedger})}},"saveSession"),startNewSession:i(()=>{v.sessionId=Sc(),v.title="",v.contextTokenSnapshot=void 0,v.artifactLedger=void 0,v.createdAt=new Date().toISOString(),v.lastAccessed=v.createdAt,$h(v,ue,t),ue.session={...ue.session,id:v.sessionId},Y?.update({sessionId:v.sessionId,messageCount:0}),r?.writer.update({sessionId:v.sessionId})},"startNewSession"),loadSession:i(async M=>{let $=await o.load(M);if($){if(!Z("Resuming a saved session"))return"blocked";let U=await ms({cwd:process.cwd()}),J=ec($),Ee=J??U;return J?.workspaceRoot&&!XT(J)?(console.log(ge.yellow(`
479
- [Saved workspace unavailable]`)),console.log(ge.dim(` Session workspace: ${mn(J)}`)),console.log(ge.dim(` Falling back to current workspace: ${mn(U)}`)),Ee=U):J?.workspaceRoot&&U.workspaceRoot&&J.workspaceRoot!==U.workspaceRoot&&(console.log(ge.cyan(`
480
- [Loading sibling workspace session]`)),console.log(ge.dim(` Current workspace: ${mn(U)}`)),console.log(ge.dim(` Session workspace: ${mn(J)}`))),v.messages=$.messages,v.title=$.title,v.sessionId=M,v.contextTokenSnapshot=void 0,v.artifactLedger=$.artifactLedger,v.lastAccessed=new Date().toISOString(),$h(v,ue,Ee),ue.session={...ue.session,id:M},Y?.update({sessionId:M,messageCount:$.messages.length}),r?.writer.update({sessionId:M}),console.log(ge.green(`
481
- [Loaded session: ${M}]`)),console.log(ge.dim(` Messages: ${$.messages.length}`)),v.runtimeInfo?.workspaceRoot&&console.log(ge.dim(` Workspace: ${mn(v.runtimeInfo)}`)),"loaded"}return"missing"},"loadSession"),listSessions:i(async()=>{let M=await o.list(v.gitRoot??void 0);if(M.length===0){console.log(ge.dim(`
482
- [No saved sessions]`));return}console.log(ge.bold(`
483
- Recent Sessions:
484
- `)),v.runtimeInfo?.workspaceRoot&&(console.log(ge.dim(` Current workspace: ${mn(v.runtimeInfo)}`)),console.log());for(let $ of M.slice(0,10))if(console.log(` ${ge.cyan($.id)} ${ge.dim(`(${$.msgCount} messages)`)} ${$.title.slice(0,40)}`),$.runtimeInfo?.workspaceRoot){let J=v.runtimeInfo?.workspaceRoot===$.runtimeInfo.workspaceRoot?" (current workspace)":"";console.log(ge.dim(` workspace: ${mn($.runtimeInfo)}${J}`))}console.log()},"listSessions"),clearHistory:i(()=>{v.messages=[],v.contextTokenSnapshot=void 0},"clearHistory"),printHistory:i(()=>{if(v.messages.length===0){console.log(ge.dim(`
485
- [No conversation history]`));return}console.log(ge.bold(`
486
- Conversation History:
487
- `));let M=v.messages.slice(-20);for(let $=0;$<M.length;$++){let U=M[$],J=ge.cyan(U.role.padEnd(10)),Ee=typeof U.content=="string"?U.content:"[Complex content]",ot=Ee.slice(0,60).replace(/\n/g," "),ve=Ee.length>60?"...":"";console.log(` ${($+1).toString().padStart(2)}. ${J} ${ot}${ve}`)}console.log()},"printHistory"),switchProvider:i((M,$)=>{w.provider=M,w.model=$,ue.provider=M,ue.model=$;let U=$??vn(M);if(!U)try{U=ax(M)?.getModel()??M}catch{U=M}Y?.update({provider:M,model:U})},"switchProvider"),setThinking:i(M=>{w.thinking=M,ue.thinking=M,w.reasoningMode=M?"auto":"off",ue.reasoningMode=w.reasoningMode,Y?.update({reasoningMode:w.reasoningMode})},"setThinking"),setReasoningMode:i(M=>{let $=M!=="off";w.reasoningMode=M,w.thinking=$,ue.reasoningMode=M,ue.thinking=$,Y?.update({reasoningMode:M})},"setReasoningMode"),setPermissionMode:i(M=>{w.permissionMode=M,b=M;let $=en(M)?Ae.getGuardrail().getEngine():void 0;Y?.update({permissionMode:M,autoModeEngine:$}),M==="auto-in-project"&&g()},"setPermissionMode"),setRepoIntelligenceRuntime:i(M=>{M.mode!==void 0&&(w.repoIntelligenceMode=M.mode,process.env.KODAX_REPO_INTELLIGENCE_MODE=M.mode,ue.context={...ue.context,repoIntelligenceMode:M.mode}),M.trace!==void 0&&(w.repoIntelligenceTrace=M.trace,M.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,ue.context={...ue.context,repoIntelligenceTrace:M.trace}),M.endpoint!==void 0&&(w.repointelEndpoint=M.endpoint??void 0,M.endpoint?process.env.KODAX_REPOINTEL_ENDPOINT=M.endpoint:delete process.env.KODAX_REPOINTEL_ENDPOINT),M.bin!==void 0&&(w.repointelBin=M.bin??void 0,M.bin?process.env.KODAX_REPOINTEL_BIN=M.bin:delete process.env.KODAX_REPOINTEL_BIN)},"setRepoIntelligenceRuntime"),deleteSession:i(async M=>{await o.delete?.(M)},"deleteSession"),deleteAllSessions:i(async()=>{await o.deleteAll?.(v.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:i(async()=>{let M=await o.getLineage?.(v.sessionId);if(!M){console.log(ge.dim(`
488
- [No session tree available for this session]`));return}let $=Yd(Fl(M));console.log(ge.bold(`
489
- Session Tree:
490
- `));for(let U of $)console.log(` ${U}`);console.log()},"printSessionTree"),switchSessionBranch:i(async M=>{if(!Z("Switching session branches"))return"blocked";let $=await o.setActiveEntry?.(v.sessionId,M,{summarizeCurrentBranch:!0});return $?(v.messages=$.messages,v.title=$.title,v.contextTokenSnapshot=void 0,Y?.update({messageCount:v.messages.length}),console.log(ge.green(`
491
- [Switched to tree entry: ${M}]`)),console.log(ge.dim(` Messages: ${$.messages.length}`)),"switched"):"missing"},"switchSessionBranch"),labelSessionBranch:i(async(M,$)=>{if(!await o.setLabel?.(v.sessionId,M,$))return!1;let J=$&&$.trim()?`checkpoint label set: ${$.trim()}`:"checkpoint label cleared";return console.log(ge.green(`
492
- [${J}]`)),!0},"labelSessionBranch"),forkSession:i(async M=>{if(!Z("Forking a session branch"))return"blocked";let $=await o.fork?.(v.sessionId,M);return $?(v.sessionId=$.sessionId,v.messages=$.data.messages,v.title=$.data.title,v.contextTokenSnapshot=void 0,v.createdAt=new Date().toISOString(),v.lastAccessed=v.createdAt,$h(v,ue,ec($.data)??v.runtimeInfo),ue.session={...ue.session,id:$.sessionId},Y?.update({sessionId:$.sessionId,messageCount:v.messages.length}),console.log(ge.green(`
493
- [Forked session: ${$.sessionId}]`)),console.log(ge.dim(` Messages: ${$.data.messages.length}`)),"forked"):"failed"},"forkSession"),rewindSession:i(async M=>{if(!Z("Rewinding session"))return"blocked";let $=await o.rewind?.(v.sessionId,M);return $?(v.messages=$.messages,v.title=$.title,v.contextTokenSnapshot=void 0,v.lastAccessed=new Date().toISOString(),Y?.update({messageCount:v.messages.length}),console.log(ge.green(`
494
- [Rewound session${M?` to ${M}`:" to previous turn"}]`)),console.log(ge.dim(` Messages: ${$.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:i(()=>Lh.current?.()??null,"getCostReport"),getAutoModeStats:i(()=>{if(en(b))return Ae.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:i(M=>{en(b)&&(Ae.getGuardrail().setEngine(M),Y?.update({permissionMode:b}))},"setAutoModeEngine"),createKodaXOptions:i(()=>{let M=i((U,J)=>b!=="plan"?null:Eo(U,J,n??process.cwd()),"planModeBlockCheck"),$=en(b)?[Ae.getGuardrail()]:void 0;return{...ue,provider:w.provider,model:w.model,thinking:w.thinking,reasoningMode:w.reasoningMode,guardrails:$,context:{...ue.context,planModeBlockCheck:M},events:{...ue.events,exitPlanMode:i(async U=>b!=="plan"?"not-in-plan-mode":(await Ac(ye,"exit_plan_mode",{plan:U},{isProtectedPath:!1,permissionMode:b})).confirmed?(w.permissionMode="accept-edits",b="accept-edits",Y?.update({permissionMode:"accept-edits"}),!0):!1,"exitPlanMode"),beforeToolExecute:i(async(U,J)=>{let Ee=b,ot=Nr(Ee);if(Ee==="plan"){let ve=Eo(U,J,n??process.cwd());if(ve)return console.log(ge.yellow(ve)),`${ve} 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 ve=J.command??"";if(Wn(ve))return!0}if(n&&En.has(U)){let ve=J.path;if(ve&&no(ve,n))return(await Ac(ye,U,J,{isProtectedPath:!0,permissionMode:Ee})).confirmed?!0:(console.log(ge.dim("[Cancelled] Operation on protected path requires confirmation")),!1)}if(ot.has(U)){if(Ee==="accept-edits"&&U==="bash"&&await Jo(U,J,O,ae))return!0;let ve=await Ac(ye,U,J,{isOutsideProject:J._outsideProject===!0,reason:J._reason,permissionMode:Ee});if(!ve.confirmed)return console.log(ge.dim("[Cancelled] Operation cancelled by user")),!1;ve.always&&Ee==="accept-edits"&&(Uu(U,J,!1),O=ds())}return!0},"beforeToolExecute")}}},"createKodaXOptions"),reloadAgentsFiles:i(async()=>(be=await _(),be),"reloadAgentsFiles"),readline:ye,ui:new gf(ye)};ye.on("SIGINT",async()=>{console.log(ge.dim(`
495
-
496
- [Press /exit to quit]`)),ye.prompt()});let bt=i(()=>{Y?.hide(),r?.shutdown(),ye.close()},"cleanup");process.on("exit",bt),process.on("SIGTERM",bt);let Q=i(async(M,$)=>{if(!M||typeof M!="object"||!M.invocation)return;let U=await ef({...ue,provider:w.provider,thinking:w.thinking,reasoningMode:w.reasoningMode},M.invocation,$,J=>console.log(ge.dim(`
497
- ${J}`)));if(U.mode==="manual"){U.manualOutput&&console.log(ge.yellow(`
498
- ${U.manualOutput}
499
- `)),await U.finalize();return}if(!U.prompt||!U.options){await U.finalize();return}try{let J=U.mode==="fork"?[]:v.messages,Ee=await xI(U.options,v,U.prompt,J);if(U.mode==="fork"){let ot=Ya(Ee.messages);ot.trim()&&(console.log(`
500
- ${ot}
501
- `),v.messages.push({role:"assistant",content:ot}))}else v.messages=Ee.messages,v.contextTokenSnapshot=Ee.contextTokenSnapshot;if(Y?.update({messageCount:v.messages.length}),v.messages.length>0){let ot=Lc(v.messages);v.title=ot,await o.save(v.sessionId,{messages:v.messages,title:ot,gitRoot:v.gitRoot??"",runtimeInfo:v.runtimeInfo})}await U.finalize()}catch(J){throw await U.finalize(J instanceof Error?J:new Error(String(J))),J}},"handleCommandResult");for(;Oe;){if(K&&N){K=!1,ye.resume();let ve=await _h(N);if(ve&&ve.trim()&&ve!==N){console.log(ge.dim(`
502
- [Edited message ready to send]`));let De=ve.trim();ao(v);let At=gs(De);if(At){let D=await hs(At,v,Mt,w);await Q(D,De);continue}let ie=await Oh(De);if(De.startsWith("!")&&Cc(ie))continue;let te=bc(ie,ue.context?.executionCwd??process.cwd());for(let D of te.warnings)console.log(ge.yellow(`
503
- ${D}`));v.messages.push({role:"user",content:te.messageContent}),N=De,Y?.update({messageCount:v.messages.length});let Ge=v.lineage?Hx({getLineage:i(()=>v.lineage,"getLineage"),setLineage:i(D=>{v.lineage=D},"setLineage"),saveSession:i(async()=>{await o.save(v.sessionId,{messages:v.messages,title:v.title??Lc(v.messages),gitRoot:v.gitRoot??"",runtimeInfo:v.runtimeInfo,artifactLedger:v.artifactLedger,lineage:v.lineage})},"saveSession"),getLatestUsage:i(()=>{},"getLatestUsage"),getTurnStartMs:i(()=>{},"getTurnStartMs"),getPermissionMode:i(()=>b,"getPermissionMode"),hasPendingUserInput:i(()=>Cn().has({agentId:void 0,maxPriority:"user",mode:"prompt"}),"hasPendingUserInput"),verifyComplete:i(async()=>({ok:!0}),"verifyComplete")}):void 0;try{let D=await Sa({...ue,provider:w.provider,thinking:w.thinking,reasoningMode:w.reasoningMode,session:{...ue.session,initialMessages:v.lineage?kt(v.lineage,v.lineage.activeEntryId):v.messages},context:{...ue.context,taskSurface:"repl",planModeBlockCheck:i((Je,rn)=>b!=="plan"?null:Eo(Je,rn,n??process.cwd()),"planModeBlockCheck"),...te.inputArtifacts.length>0?{inputArtifacts:te.inputArtifacts}:{},...Ge?{goalRuntime:Ge}:{}}},ie);if(v.messages=D.messages,v.contextTokenSnapshot=D.contextTokenSnapshot,v.artifactLedger=xa(v.artifactLedger??[],D.artifactLedger??hm(D.messages)),v.messages.length>0){let Je=Lc(v.messages);v.title=Je,await o.save(v.sessionId,{messages:v.messages,title:Je,gitRoot:v.gitRoot??"",runtimeInfo:v.runtimeInfo,artifactLedger:v.artifactLedger})}}catch(D){let Je=D instanceof Error?D:new Error(String(D));v.messages.pop(),console.log(ge.red(`
504
- [Error] ${Je.message}`))}continue}else ve===N&&console.log(ge.dim(`
505
- [No changes made, continuing...]`))}let M=pI(w.permissionMode,w),$=await gI(ye,M);if(!Oe)break;let U=$.trim();if(!U)continue;ao(v);let J=gs(U);if(J){let ve=await hs(J,v,Mt,w);await Q(ve,U);continue}let Ee=await Oh(U);if(U.startsWith("!")&&Cc(Ee))continue;let ot=bc(Ee,ue.context?.executionCwd??process.cwd());for(let ve of ot.warnings)console.log(ge.yellow(`
506
- ${ve}`));v.messages.push({role:"user",content:ot.messageContent}),N=U,Y?.update({messageCount:v.messages.length});try{let ve=await xI(ue,v,Ee,v.messages,ot.inputArtifacts);if(v.messages=ve.messages,v.contextTokenSnapshot=ve.contextTokenSnapshot,v.artifactLedger=xa(v.artifactLedger??[],ve.artifactLedger??hm(ve.messages)),Y?.update({messageCount:v.messages.length}),v.messages.length>0){let De=Lc(v.messages);v.title=De,await o.save(v.sessionId,{messages:v.messages,title:De,gitRoot:v.gitRoot??"",runtimeInfo:v.runtimeInfo,artifactLedger:v.artifactLedger})}}catch(ve){let De=ve instanceof Error?ve:new Error(String(ve));v.messages.pop(),De.message.includes("rate limit")||De.message.includes("Rate limit")?(console.log(ge.yellow(`
507
- [Rate Limit] ${De.message}`)),console.log(ge.dim(`Suggestion: Wait a moment and try again, or switch provider with /mode
508
- `))):De.message.includes("API key")||De.message.includes("not configured")?(console.log(ge.red(`
509
- [Configuration Error] ${De.message}`)),console.log(ge.dim(`Suggestion: Set the required API key environment variable
510
- `))):De.message.includes("network")||De.message.includes("ECONNREFUSED")||De.message.includes("ETIMEDOUT")?(console.log(ge.red(`
511
- [Network Error] ${De.message}`)),console.log(ge.dim(`Suggestion: Check your internet connection and try again
512
- `))):De.message.includes("token")||De.message.includes("context too long")?(console.log(ge.yellow(`
513
- [Context Error] ${De.message}`)),console.log(ge.dim(`Suggestion: Use /clear to start a fresh conversation
514
- `))):(console.log(ge.red(`
515
- [Error] ${De.message}`)),console.log(ge.dim(`Your message was not sent. Please try again.
516
- `)))}}}i(KD,"runInteractiveMode");async function Oh(e){let t=e.match(/@[\w./-]+/g);if(t)for(let n of t){let o=n.slice(1)}if(e.startsWith("!")){let n=e.slice(1).trim();return Kd(n,{cwd:process.cwd()})}return e}i(Oh,"processSpecialSyntax");async function xI(e,t,n,o=t.messages,r){let s={...e.events??{},getCostReport:Lh};return Sa({...e,events:s,session:{...e.session,initialMessages:o},context:{...e.context,contextTokenSnapshot:t.contextTokenSnapshot,taskSurface:"repl",...r&&r.length>0?{inputArtifacts:[...r]}:{}}},n)}i(xI,"runAgentRound");function Lc(e){return us(e)}i(Lc,"extractTitle");import hf from"node:fs";import VD from"node:path";function zD(){let e=xf();return wf(e).map(n=>yf(n))}i(zD,"listCustomProviders");function XD(e){if(typeof e!="string"||e.length===0)return;let t=wf(xf()).find(n=>n.name===e);return t?yf(t):void 0}i(XD,"getCustomProviderConfig");function YD(e){sx(e);let t=yf(e),n=xf(),o=wf(n),r=o.findIndex(a=>a.name===t.name),s=r>=0?o.map((a,c)=>c===r?t:a):[...o,t];return TI({...n,customProviders:s}),pm(s),yf(t)}i(YD,"upsertCustomProvider");function qD(e){if(typeof e!="string"||e.length===0)return!1;let t=xf(),n=wf(t),o=n.filter(r=>r.name!==e);return o.length===n.length?!1:(TI({...t,customProviders:o}),pm(o),!0)}i(qD,"removeCustomProvider");function SI(){return Tn("config.json")}i(SI,"configFilePath");function xf(){let e=SI();if(!hf.existsSync(e))return{};try{let t=JSON.parse(hf.readFileSync(e,"utf-8"));return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}i(xf,"readWholeConfig");function TI(e){let t=SI();hf.mkdirSync(VD.dirname(t),{recursive:!0}),hf.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}i(TI,"writeWholeConfig");function wf(e){let t=e.customProviders;return Array.isArray(t)?t:[]}i(wf,"extractCustomProviders");function yf(e){return structuredClone(e)}i(yf,"cloneCustomProvider");import Sf from"node:fs";import QD from"node:path";function JD(){let e=Tf();return nN(Cf(e))}i(JD,"listMcpServers");function ZD(e){if(typeof e!="string"||e.length===0)return;let n=Cf(Tf())[e];return n?Dh(n):void 0}i(ZD,"getMcpServerConfig");function eN(e,t){if(typeof e!="string"||e.length===0)throw new TypeError("upsertMcpServer: name must be a non-empty string");CI(e,t);let n=Dh(t),o=Tf(),s={...Cf(o),[e]:n};return vI({...o,mcpServers:s}),Dh(n)}i(eN,"upsertMcpServer");function tN(e){if(typeof e!="string"||e.length===0)return!1;let t=Tf(),n=Cf(t);if(!(e in n))return!1;let o={};for(let r of Object.keys(n))r!==e&&(o[r]=n[r]);return vI({...t,mcpServers:o}),!0}i(tN,"removeMcpServer");function CI(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(CI,"validateMcpServerConfig");function bI(){return Tn("config.json")}i(bI,"configFilePath");function Tf(){let e=bI();if(!Sf.existsSync(e))return{};try{let t=JSON.parse(Sf.readFileSync(e,"utf-8"));return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}i(Tf,"readWholeConfig");function vI(e){let t=bI();Sf.mkdirSync(QD.dirname(t),{recursive:!0}),Sf.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}i(vI,"writeWholeConfig");function Cf(e){let t=e.mcpServers;return!t||typeof t!="object"||Array.isArray(t)?{}:t}i(Cf,"extractMcpServers");function Dh(e){return structuredClone(e)}i(Dh,"cloneMcpServerConfig");function nN(e){return structuredClone(e)}i(nN,"cloneMcpServers");import Ot from"fs/promises";import Hh from"fs";import Oc from"path";import EI from"chalk";var oN=new Set(["user","assistant","system"]);function Ct(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}i(Ct,"isRecord");function ni(e){if(e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return!0;if(Array.isArray(e))return e.every(ni);if(!Ct(e))return!1;let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null?!1:Object.values(e).every(ni)}i(ni,"isKodaXJsonValue");function II(e){return Ct(e)&&typeof e.id=="string"&&typeof e.extensionId=="string"&&typeof e.type=="string"&&typeof e.ts=="number"&&(e.data===void 0||ni(e.data))&&(e.dedupeKey===void 0||typeof e.dedupeKey=="string")}i(II,"isKodaXExtensionSessionRecord");function kI(e){return Ct(e)?Object.values(e).every(t=>Ct(t)?Object.values(t).every(ni):!1):!1}i(kI,"isKodaXExtensionSessionState");function rN(e){if(!Ct(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"&&Ct(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(rN,"isKodaXContentBlock");function Nh(e){return!Ct(e)||typeof e.role!="string"||!oN.has(e.role)?!1:typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(rN)}i(Nh,"isKodaXMessage");function RI(e){return Ct(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(RI,"isSessionErrorMetadata");function iN(e){return Ct(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(iN,"isKodaXSessionUiHistoryItem");function Bh(e){return Array.isArray(e)&&e.every(iN)}i(Bh,"isKodaXSessionUiHistory");function sN(e){return!Ct(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||Bh(e.uiHistory))&&(e.scope===void 0||typeof e.scope=="string")}i(sN,"isPersistedMetaUpdateLine");function MI(e,t){t!==0&&process.stderr.write(`[KodaX] Skipped ${t} malformed session record(s) from ${Oc.basename(e)}.
517
- `)}i(MI,"warnMalformedSessionData");function lr(e){process.stderr.write(`${e}
518
- `)}i(lr,"writeStorageNotice");function AI(e){return{_type:"extension_record",...e}}i(AI,"toExtensionRecordLine");function _I(e){return{_type:"lineage_entry",entry:e}}i(_I,"toLineageEntryLine");function $I(e){return{_type:"artifact_ledger_entry",entry:e}}i($I,"toArtifactLedgerLine");function aN(e){return Ct(e)&&e._type==="extension_record"&&II(e)}i(aN,"isPersistedExtensionRecordLine");function cN(e){return Ct(e)&&typeof e.id=="string"&&(e.parentId===null||typeof e.parentId=="string")&&typeof e.timestamp=="string"&&typeof e.type=="string"}i(cN,"hasEntryBase");function lN(e){if(!cN(e))return!1;let t=e;switch(t.type){case"message":return Nh(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||ni(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(lN,"isKodaXSessionEntry");function uN(e){return Ct(e)&&e._type==="lineage_entry"&&lN(e.entry)}i(uN,"isPersistedLineageEntryLine");function dN(e){return Ct(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||ni(e.metadata))}i(dN,"isKodaXSessionArtifactLedgerEntry");function fN(e){return Ct(e)&&e._type==="artifact_ledger_entry"&&dN(e.entry)}i(fN,"isPersistedArtifactLedgerLine");function NI(e){return Ct(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(NI,"isKodaXSessionRuntimeInfo");function PI(e,t){return process.platform==="win32"||process.platform==="darwin"?e.toLowerCase()===t.toLowerCase():e===t}i(PI,"pathsEqual");function mN(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(mN,"getLastNavigableEntryId");function pN(e){if(e.lineageEntries.length>0)return{version:2,activeEntryId:e.meta?.activeEntryId??mN(e.lineageEntries),entries:e.lineageEntries};if(e.legacyMessages.length!==0)return bn(e.legacyMessages)}i(pN,"buildLineage");function LI(e){return typeof e=="string"?`t:${e}`:`j:${JSON.stringify(e)}`}i(LI,"serializeMessageContentForCompare");function gN(e,t){return e===t?!0:e.role===t.role&&LI(e.content)===LI(t.content)}i(gN,"sameMessageByContent");function hN(e,t){if(e.lineage)return e.lineage;if(t){let n=kt(t),o=e.messages;if(o.length<=n.length&&o.every((s,a)=>gN(s,n[a])))return t}return bn(e.messages,t)}i(hN,"resolveSnapshotLineage");function yN(e){let t=pN(e);return{createdAt:e.meta?.createdAt,data:{messages:t?kt(t):[...e.legacyMessages],title:e.meta?.title??"",gitRoot:e.meta?.gitRoot??"",runtimeInfo:NI(e.meta?.runtimeInfo)?{...e.meta.runtimeInfo}:void 0,scope:e.meta?.scope??"user",uiHistory:Bh(e.meta?.uiHistory)?e.meta.uiHistory.map(n=>({...n})):void 0,errorMetadata:RI(e.meta?.errorMetadata)?{...e.meta.errorMetadata}:void 0,extensionState:kI(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(yN,"buildSessionData");function xN(e,t,n,o){return{_type:"meta",title:t.title,id:e,gitRoot:t.gitRoot,runtimeInfo:t.runtimeInfo?{...t.runtimeInfo}:void 0,createdAt:o??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?Ir(n):t.messages.length}}i(xN,"createSessionMeta");async function wN(e){let t;try{t=await Ot.readFile(e,"utf-8")}catch(s){if(s?.code==="ENOENT")return null;throw s}let n=t.trim();if(!n)return null;let o={legacyMessages:[],lineageEntries:[],artifactLedger:[],extensionRecords:[],malformedCount:0},r=n.split(`
519
- `);for(let s=0;s<r.length;s+=1)try{let a=JSON.parse(r[s]);if(s===0&&Ct(a)&&a._type==="meta"){o.meta=a;continue}if(sN(a)){o.meta&&(a.title!==void 0&&(o.meta.title=a.title),a.activeEntryId!==void 0&&(o.meta.activeEntryId=a.activeEntryId),a.activeMessageCount!==void 0&&(o.meta.activeMessageCount=a.activeMessageCount),a.uiHistory!==void 0&&(o.meta.uiHistory=a.uiHistory),a.scope!==void 0&&(o.meta.scope=a.scope));continue}if(uN(a)){o.lineageEntries.push(a.entry);continue}if(fN(a)){o.artifactLedger.push(a.entry);continue}if(aN(a)){o.extensionRecords.push({id:a.id,extensionId:a.extensionId,type:a.type,ts:a.ts,data:a.data,dedupeKey:a.dedupeKey});continue}if(Nh(a)){o.legacyMessages.push(a);continue}o.malformedCount+=1}catch{o.malformedCount+=1}return o}i(wN,"readPersistedSessionFile");var OI=65536;async function SN(e){let t;try{t=await Ot.open(e,"r");let n=Buffer.allocUnsafe(OI),{bytesRead:o}=await t.read(n,0,OI,0);if(o===0)return null;let r=n.toString("utf8",0,o),s=r.indexOf(`
520
- `);if(s>=0)return r.slice(0,s).trim();let a=await Ot.readFile(e,"utf-8"),c=a.indexOf(`
521
- `);return(c>=0?a.slice(0,c):a).trim()}catch{return null}finally{await t?.close()}}i(SN,"readSessionFirstLine");async function DI(e){try{let t=(await Ot.readFile(e,"utf-8")).trim();return t?t.split(`
522
- `).length:0}catch{return 0}}i(DI,"countSessionLines");var ur=class{static{i(this,"FileSessionStorage")}sessionsDir;constructor(t){this.sessionsDir=t?.sessionsDir??Ta}writeQueues=new Map;serializedWrite(t,n){let r=(this.writeQueues.get(t)??Promise.resolve()).then(n,()=>n());return this.writeQueues.set(t,r),r}appendState=new Map;syncAppendState(t,n,o){let r=this.appendState.get(t);this.appendState.set(t,{lineageCount:n.lineage?.entries.length??r?.lineageCount??0,artifactCount:n.artifactLedger?.length??r?.artifactCount??0,extensionCount:n.extensionRecords?.length??r?.extensionCount??0,metaUpdateCount:o??r?.metaUpdateCount??0})}getSessionFilePath(t){return Oc.join(this.sessionsDir,`${t}.jsonl`)}getArchiveFilePath(t){return Oc.join(this.sessionsDir,`${t}.archive.jsonl`)}async readSession(t){let n=this.getSessionFilePath(t),o=await wN(n);return o?(MI(n,o.malformedCount),yN(o)):null}async writeSessionInternal(t,n,o){await Ot.mkdir(this.sessionsDir,{recursive:!0});let r=this.getSessionFilePath(t),s=`${r}.${process.pid}.${Date.now()}.tmp`,a=n.lineage??bn(n.messages),c=xN(t,n,a,o);try{let l=await Ot.open(s,"w");try{await l.write(JSON.stringify(c)+`
523
- `);for(let d of a.entries)await l.write(JSON.stringify(_I(d))+`
524
- `);for(let d of n.artifactLedger??[])await l.write(JSON.stringify($I(d))+`
525
- `);for(let d of n.extensionRecords??[])await l.write(JSON.stringify(AI(d))+`
526
- `)}finally{await l.close()}await Ot.rename(s,r)}finally{Hh.existsSync(s)&&await Ot.unlink(s).catch(()=>{})}}async mergeAndWriteInternal(t,n){let o=await this.readSession(t),r={...n,scope:n.scope??o?.data.scope??"user",uiHistory:n.uiHistory??o?.data.uiHistory,extensionState:n.extensionState??o?.data.extensionState,artifactLedger:n.artifactLedger??o?.data.artifactLedger,extensionRecords:n.extensionRecords??o?.data.extensionRecords,runtimeInfo:n.runtimeInfo??o?.data.runtimeInfo,errorMetadata:n.errorMetadata??o?.data.errorMetadata,lineage:hN(n,o?.data.lineage)};await this.writeSessionInternal(t,r,o?.createdAt),this.syncAppendState(t,r)}async appendSessionDelta(t,n){let o=this.getSessionFilePath(t);if(!Hh.existsSync(o)||!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),d=[];for(let p of a)d.push(JSON.stringify(_I(p)));for(let p of c)d.push(JSON.stringify($I(p)));for(let p of l)d.push(JSON.stringify(AI(p)));let m={_type:"meta_update",title:n.title,activeEntryId:n.lineage.activeEntryId,activeMessageCount:Ir(n.lineage),...n.uiHistory!==void 0?{uiHistory:n.uiHistory}:{},...n.scope!==void 0?{scope:n.scope}:{}};d.push(JSON.stringify(m)),d.length>0&&await Ot.appendFile(o,`
527
- `+d.join(`
528
- `),"utf-8"),this.syncAppendState(t,n,s.metaUpdateCount+1)});let r=this.appendState.get(t);r&&this.shouldRunMaintenance(r)&&this.runMaintenance(t).catch(s=>{process.stderr.write(`[KodaX] Archive maintenance failed: ${String(s)}
529
- `)})}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:o,archivedEntries:r,archiveBatchId:s}=Tx(n.data.lineage);if(r.length===0){await this.writeSessionInternal(t,n.data,n.createdAt),this.syncAppendState(t,n.data,0);return}let a=this.getArchiveFilePath(t),c=await Ot.open(a,"a");try{await c.write(JSON.stringify({_type:"archive_batch",archiveBatchId:s,sessionId:t,archivedAt:new Date().toISOString(),entryCount:r.length})+`
530
- `);for(let d of r)await c.write(JSON.stringify({_type:"archived_entry",archiveBatchId:s,entry:d})+`
531
- `)}finally{await c.close()}let l={...n.data,lineage:o};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:o,createdAt:r}=n,s=this.getSessionFilePath(t),a=await Rr(),c=await ms(),l=ec(o);if((c.canonicalRepoRoot&&l?.canonicalRepoRoot&&!Ju(c,l)||a&&o.gitRoot&&a!==o.gitRoot&&!Ju(c,{canonicalRepoRoot:o.gitRoot}))&&(lr(EI.yellow(`
532
- [Warning] Session project mismatch:`)),c.workspaceRoot&&lr(` Current workspace: ${c.workspaceRoot}`),l?.workspaceRoot&&lr(` Session workspace: ${l.workspaceRoot}`),c.canonicalRepoRoot&&lr(` Current repo: ${c.canonicalRepoRoot}`),l?.canonicalRepoRoot?lr(` Session repo: ${l.canonicalRepoRoot}`):o.gitRoot&&lr(` Session repo: ${o.gitRoot}`),lr(` Continuing anyway...
533
- `)),o.errorMetadata?.consecutiveErrors&&o.errorMetadata.consecutiveErrors>0){let m=ux(o.messages);if(m!==o.messages){lr(EI.cyan("[Session Recovery] Cleaned incomplete tool calls from previous session"));let p={...o,messages:m,errorMetadata:{...o.errorMetadata,consecutiveErrors:0},lineage:bn(m,o.lineage)};return await this.serializedWrite(t,async()=>{await this.writeSessionInternal(t,p,r),this.syncAppendState(t,p)}),p}}return MI(s,0),o}async getLineage(t){return(await this.readSession(t))?.data.lineage??null}async setActiveEntry(t,n,o){let r=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=$i(s.data.lineage,n,o);if(!a)return;let c={...s.data,messages:kt(a),lineage:a};await this.writeSessionInternal(t,c,s.createdAt),this.syncAppendState(t,c),r=c}),r}async rewind(t,n){let o=null;return await this.serializedWrite(t,async()=>{let r=await this.readSession(t);if(!r?.data.lineage)return;let s=n??Li(r.data.lineage);if(!s)return;let a=Oi(r.data.lineage,s);if(!a)return;let c={...r.data,messages:kt(a),lineage:a};await this.writeSessionInternal(t,c,r.createdAt),this.syncAppendState(t,c),o=c}),o}async setLabel(t,n,o){let r=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=Pi(s.data.lineage,n,o);if(!a)return;let c={...s.data,lineage:a};await this.writeSessionInternal(t,c,s.createdAt),this.syncAppendState(t,c),r=c}),r}async fork(t,n,o){let r=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=Di(s.data.lineage,n);if(!a)return;let c=o?.sessionId??await _i(),l={messages:kt(a),title:o?.title??s.data.title,gitRoot:s.data.gitRoot,uiHistory:s.data.uiHistory?s.data.uiHistory.map(d=>({...d})):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),r={sessionId:c,data:l}}),r}async list(t){await Ot.mkdir(this.sessionsDir,{recursive:!0});let n=t??await Rr(),o=await ms({cwd:n??process.cwd()}),r=(await Ot.readdir(this.sessionsDir)).filter(l=>l.endsWith(".jsonl")&&!l.endsWith(".archive.jsonl")&&!l.startsWith("archived-")),s=[],a=i(async l=>{try{let d=Oc.join(this.sessionsDir,l),m=await SN(d);if(!m)return null;let p=JSON.parse(m);if(Ct(p)&&p._type==="meta"){let x=typeof p.gitRoot=="string"?p.gitRoot:"",h=NI(p.runtimeInfo)?p.runtimeInfo:void 0,T=p.scope==="managed-task-worker"?"managed-task-worker":"user";if(n){let O=Ju(o,h),P=h?.workspaceRoot?PI(h.workspaceRoot,o.workspaceRoot??""):PI(x,n);if(!O&&!P)return null}if(T!=="user")return null;let w=typeof p.extensionRecordCount=="number"&&p.extensionRecordCount>0?p.extensionRecordCount:0,b=typeof p.activeMessageCount=="number"&&p.activeMessageCount>=0?p.activeMessageCount:Math.max(0,await DI(d)-1-w);return{id:l.replace(".jsonl",""),title:typeof p.title=="string"?p.title:"",msgCount:b,createdAt:typeof p.createdAt=="string"?p.createdAt:void 0,runtimeInfo:h?{...h}:void 0}}let g=await DI(d);return{id:l.replace(".jsonl",""),title:"",msgCount:g}}catch{return null}},"parseSessionFile"),c=48;for(let l=0;l<r.length;l+=c){let d=await Promise.all(r.slice(l,l+c).map(a));for(let m of d)m&&s.push(m)}return s.sort((l,d)=>{let m=l.createdAt?Date.parse(l.createdAt):Number.NaN,p=d.createdAt?Date.parse(d.createdAt):Number.NaN;return Number.isFinite(m)&&Number.isFinite(p)&&m!==p?p-m:Number.isFinite(p)&&!Number.isFinite(m)?1:Number.isFinite(m)&&!Number.isFinite(p)?-1:d.id.localeCompare(l.id)}).slice(0,10).map(({id:l,title:d,msgCount:m,runtimeInfo:p})=>p?{id:l,title:d,msgCount:m,runtimeInfo:p}:{id:l,title:d,msgCount:m})}async delete(t){let n=this.getSessionFilePath(t);Hh.existsSync(n)&&await Ot.unlink(n)}async deleteAll(t){let n=t??await Rr(),o=await this.list(n??void 0);for(let r of o)await this.delete(r.id)}async cleanupOldSessions(t){if(!Number.isFinite(t)||t<=0)return 0;let n=0;try{await Ot.mkdir(this.sessionsDir,{recursive:!0});let o=Date.now()-t*24*60*60*1e3,r=(await Ot.readdir(this.sessionsDir)).filter(s=>s.endsWith(".jsonl"));for(let s of r){let a=Oc.join(this.sessionsDir,s);try{(await Ot.stat(a)).mtimeMs<o&&(await Ot.unlink(a),n++)}catch{continue}}}catch{}return n}};import Dc from"node:fs";import Fh from"node:fs/promises";import BI from"node:path";function Fs(e){return e!==void 0?new ur({sessionsDir:e}):new ur}i(Fs,"getStorage");function HI(e){return e??Ta}i(HI,"resolveSessionsDir");async function FI(e){return WI(e,void 0)}i(FI,"listSessions");async function WI(e,t){try{let n=HI(t),o=e?.projectRoot,r=Fs(t);await Fh.mkdir(n,{recursive:!0});let s=e?.scope??"user",a=e?.includeArchived??!1,c=e?.limit??50,l=e?.before?Date.parse(e.before):void 0;if(s==="user"&&!o&&l===void 0&&!a)return(await r.list(o)).slice(0,c).map(TN);let d=(await Fh.readdir(n)).filter(p=>p.endsWith(".jsonl")&&(a||!p.startsWith("archived-"))),m=[];for(let p of d)try{let g=(await Fh.readFile(BI.join(n,p),"utf-8")).trim(),x=g.split(`
534
- `)[0];if(!x)continue;let h=JSON.parse(x);if(h===null||typeof h!="object"||h._type!=="meta")continue;let T=h,w=T.scope==="managed-task-worker"?"managed-task-worker":"user";if(s==="user"&&w!=="user"||s==="managed-task-worker"&&w!=="managed-task-worker")continue;let b=typeof T.createdAt=="string"?T.createdAt:void 0;if(l!==void 0&&b!==void 0){let v=Date.parse(b);if(!Number.isNaN(v)&&v>=l)continue}let O=g.split(`
535
- `).length,P=typeof T.extensionRecordCount=="number"&&T.extensionRecordCount>0?T.extensionRecordCount:0,N=typeof T.activeMessageCount=="number"&&T.activeMessageCount>=0?T.activeMessageCount:Math.max(0,O-1-P),K=T.runtimeInfo!==null&&typeof T.runtimeInfo=="object"?UI(T.runtimeInfo):void 0,W=typeof T.gitRoot=="string"?T.gitRoot:void 0;m.push({id:p.replace(".jsonl",""),title:typeof T.title=="string"?T.title:"",msgCount:N,createdAt:b,runtimeInfo:K??(W?{gitRoot:W}:void 0),_createdAtMs:b?Date.parse(b):void 0})}catch{continue}return m.sort((p,g)=>{let x=p._createdAtMs,h=g._createdAtMs;return Number.isFinite(x)&&Number.isFinite(h)&&x!==h?h-x:Number.isFinite(h)&&!Number.isFinite(x)?1:Number.isFinite(x)&&!Number.isFinite(h)?-1:g.id.localeCompare(p.id)}),m.slice(0,c).map(({id:p,title:g,msgCount:x,createdAt:h,runtimeInfo:T})=>({id:p,title:g,msgCount:x,...h!==void 0?{createdAt:h}:{},...T!==void 0?{runtimeInfo:T}:{}}))}catch{return[]}}i(WI,"listSessionsImpl");function UI(e){if(!(!e.workspaceRoot&&!e.canonicalRepoRoot))return{...e.workspaceRoot?{workspaceRoot:e.workspaceRoot}:{},...e.canonicalRepoRoot?{gitRoot:e.canonicalRepoRoot}:{}}}i(UI,"extractRuntimeInfoSummary");function TN(e){let t=e.runtimeInfo?UI(e.runtimeInfo):void 0;return{id:e.id,title:e.title,msgCount:e.msgCount,...t!==void 0?{runtimeInfo:t}:{}}}i(TN,"toSessionSummary");async function jI(e){return GI(e,void 0)}i(jI,"loadSession");async function GI(e,t){try{return await Fs(t).load(e)}catch{return null}}i(GI,"loadSessionImpl");async function KI(e,t){return VI(e,t,void 0)}i(KI,"forkSession");async function VI(e,t,n){try{return await Fs(n).fork(e,t?.selector,{sessionId:t?.sessionId,title:t?.title})}catch{return null}}i(VI,"forkSessionImpl");async function zI(e,t){return XI(e,t,void 0)}i(zI,"rewindSession");async function XI(e,t,n){try{return await Fs(n).rewind(e,t?.selector)}catch{return null}}i(XI,"rewindSessionImpl");async function YI(e,t){return qI(e,t,void 0)}i(YI,"setActiveEntry");async function qI(e,t,n){try{return await Fs(n).setActiveEntry(e,t)}catch{return null}}i(qI,"setActiveEntryImpl");async function bf(){try{return lx({excludePid:process.pid}).map(t=>({pid:t.pid,startedAt:t.state.meta.startedAt,cwd:t.state.meta.cwd,sessionId:t.state.sessionId}))}catch{return[]}}i(bf,"listRunningSessions");async function QI(e){return JI(e,void 0)}i(QI,"deleteSession");async function JI(e,t){try{let o=(await bf()).find(r=>r.sessionId===e);return o?{error:{code:"session_running",runningProcess:{pid:o.pid,startedAt:o.startedAt}}}:(await Fs(t).delete(e),{ok:!0})}catch{return{ok:!0}}}i(JI,"deleteSessionImpl");function ZI(e){return ek(e,void 0)}i(ZI,"watchSessions");function ek(e,t){let n=HI(t);return process.platform==="win32"?IN(e,n):bN(e,n)}i(ek,"watchSessionsImpl");function CN(e){return e.endsWith(".jsonl")?e.slice(0,-6):null}i(CN,"sessionIdFromFilename");function bN(e,t){let n=null,o=!1,r=new Map;function s(c,l){let d=r.get(l);d!==void 0&&clearTimeout(d);let m=setTimeout(()=>{r.delete(l),o||e({kind:c,sessionId:l})},100);r.set(l,m)}i(s,"emitDebounced");function a(){if(!o)try{if(!Dc.existsSync(t)){setTimeout(a,1e3);return}n=Dc.watch(t,(c,l)=>{if(!l)return;let d=CN(l);if(!d)return;let m=c==="rename"?vN(t,l):"change";s(m,d)}),n.on("error",()=>{n?.close(),n=null,o||setTimeout(a,1e3)})}catch{}}return i(a,"startWatch"),a(),{close(){o=!0,n?.close(),n=null;for(let c of r.values())clearTimeout(c);r.clear()}}}i(bN,"watchSessionsPosix");function vN(e,t){try{return Dc.statSync(BI.join(e,t)),"add"}catch{return"remove"}}i(vN,"detectRenameKind");function IN(e,t){let n=!1,o=new Set;function r(){try{return Dc.existsSync(t)?new Set(Dc.readdirSync(t).filter(a=>a.endsWith(".jsonl")).map(a=>a.slice(0,-6))):new Set}catch{return new Set}}i(r,"buildSnapshot"),o=r();let s=setInterval(()=>{if(n)return;let a=r();for(let c of a)o.has(c)||e({kind:"add",sessionId:c});for(let c of o)a.has(c)||e({kind:"remove",sessionId:c});o=a},1e3);return{close(){n=!0,clearInterval(s)}}}i(IN,"watchSessionsWindows");function kN(e){let t=e?.sessionsDir,n=t!==void 0?new ur({sessionsDir:t}):new ur;return t===void 0?{listSessions:FI,loadSession:jI,forkSession:KI,rewindSession:zI,setActiveEntry:YI,deleteSession:QI,listRunningSessions:bf,watchSessions:ZI,storage:n}:{listSessions:i(o=>WI(o,t),"listSessions"),loadSession:i(o=>GI(o,t),"loadSession"),forkSession:i((o,r)=>VI(o,r,t),"forkSession"),rewindSession:i((o,r)=>XI(o,r,t),"rewindSession"),setActiveEntry:i((o,r)=>qI(o,r,t),"setActiveEntry"),deleteSession:i(o=>JI(o,t),"deleteSession"),listRunningSessions:bf,watchSessions:i(o=>ek(o,t),"watchSessions"),storage:n}}i(kN,"createSessionManager");export{Fi as a,Wi as b,ba as c,Ui as d,va as e,km as f,Er as g,Mr as h,ji as i,Ar as j,Xl as k,_r as l,Gi as m,Yl as n,ql as o,Ki as p,ln as q,Qn as r,Jn as s,jk as t,qt as u,Ia as v,Mm as w,Am as x,Qt as y,_m as z,$m as A,rw as B,iw as C,ee as D,UN as E,dp as F,eA as G,Mu as H,Ha as I,GS as J,iA as K,sA as L,dn as M,L as N,HU as O,Ut as P,mp as Q,gp as R,Au as S,hp as T,zS as U,Fa as V,as as W,Nr as X,yp as Y,to as Z,Wn as _,Un as $,Jo as aa,Du as ba,no as ca,Bu as da,Hr as ea,Ep as fa,Eo as ga,Xa as ha,us as ia,r_ as ja,Hp as ka,gs as la,hs as ma,Qp as na,Kr as oa,rd as pa,Jp as qa,sc as ra,eg as sa,ws as ta,tP as ua,_n as va,CC as wa,bC as xa,cP as ya,lP as za,YP as Aa,Xr as Ba,JP as Ca,vs as Da,xL as Ea,SL as Fa,TL as Ga,wg as Ha,Sg as Ia,bL as Ja,Cg as Ka,bg as La,_d as Ma,$d as Na,Pd as Oa,Ig as Pa,Od as Qa,Ld as Ra,Rg as Sa,Dd as Ta,mc as Ua,pc as Va,mb as Wa,Bd as Xa,Mg as Ya,_g as Za,Pg as _a,Hd as $a,Lg as ab,Fd as bb,Wd as cb,Bg as db,Ud as eb,yc as fb,xc as gb,Eb as hb,QL as ib,JL as jb,Ab as kb,n1 as lb,o1 as mb,wc as nb,ao as ob,Tc as pb,Ms as qb,r1 as rb,Kd as sb,a1 as tb,c1 as ub,Vd as vb,Wg as wb,zd as xb,Ug as yb,Rh as zb,fD as Ab,pD as Bb,CD as Cb,Q0 as Db,J0 as Eb,bD as Fb,ID as Gb,ff as Hb,nI as Ib,Po as Jb,oI as Kb,rI as Lb,iI as Mb,ED as Nb,Mc as Ob,MD as Pb,AD as Qb,KD as Rb,Oh as Sb,zD as Tb,XD as Ub,YD as Vb,qD as Wb,JD as Xb,ZD as Yb,eN as Zb,tN as _b,CI as $b,ur as ac,FI as bc,jI as cc,KI as dc,zI as ec,YI as fc,bf as gc,QI as hc,ZI as ic,kN as jc};