@kodax-ai/kodax 0.7.45 → 0.7.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/CHANGELOG.md +57 -1
  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-FKB7BWQT.js → chunk-2SMCCP44.js} +1 -1
  6. package/dist/chunks/chunk-66B6ZOU7.js +31 -0
  7. package/dist/chunks/chunk-ARUWXX25.js +2 -0
  8. package/dist/chunks/chunk-KRHAO2T3.js +567 -0
  9. package/dist/chunks/chunk-QZFZIGPF.js +2 -0
  10. package/dist/chunks/{chunk-X6EHEQWP.js → chunk-VGRG2F6H.js} +301 -263
  11. package/dist/chunks/chunk-VX6HN3JP.js +415 -0
  12. package/dist/chunks/{compaction-config-WCNGYWT3.js → compaction-config-YU7SI6L6.js} +1 -1
  13. package/dist/chunks/{construction-bootstrap-OB5SDNBD.js → construction-bootstrap-6UN3OY7X.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-DS2KIZQG.js +2 -0
  17. package/dist/chunks/dist-IDNOAB4M.js +2 -0
  18. package/dist/chunks/{utils-CHXCBR3Q.js → utils-3ISOUEFC.js} +1 -1
  19. package/dist/index.d.ts +15 -12
  20. package/dist/index.js +5 -5
  21. package/dist/kodax_cli.js +986 -926
  22. package/dist/provider-capabilities.json +32 -23
  23. package/dist/sdk-agent.d.ts +42 -11
  24. package/dist/sdk-agent.js +1 -1
  25. package/dist/sdk-coding.d.ts +74 -14
  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.d.ts +1 -1
  30. package/dist/sdk-mcp.js +1 -1
  31. package/dist/sdk-repl.d.ts +19 -9
  32. package/dist/sdk-repl.js +2 -2
  33. package/dist/sdk-session.d.ts +27 -6
  34. package/dist/sdk-session.js +1 -1
  35. package/dist/sdk-skills.js +1 -1
  36. package/dist/types-chunks/{base.d-FUJahC0i.d.ts → base.d-BdJKSPO2.d.ts} +18 -1
  37. package/dist/types-chunks/{bash-prefix-extractor.d-HrTUwtV7.d.ts → bash-prefix-extractor.d-D6hL0Cuv.d.ts} +284 -6
  38. package/dist/types-chunks/{file-tracker.d-DOfaoCbJ.d.ts → file-tracker.d-BNTIvsdb.d.ts} +11 -4
  39. package/dist/types-chunks/{manager.d-87belpiS.d.ts → manager.d-U3UEwY1P.d.ts} +15 -0
  40. package/dist/types-chunks/{resolver.d-OMwxURit.d.ts → resolver.d-DkgJlEzr.d.ts} +79 -3
  41. package/dist/types-chunks/{storage.d-BvTdjYQF.d.ts → storage.d-B1Jk6ryM.d.ts} +79 -4
  42. package/dist/types-chunks/{types.d-HBbWT-iA.d.ts → types.d-B_MIIApc.d.ts} +1 -1
  43. package/dist/types-chunks/{types.d-B1uGoVTE.d.ts → types.d-Cf-GCzac.d.ts} +82 -1
  44. package/dist/types-chunks/{types.d-DM8zEJgF.d.ts → types.d-D2RNa5Y7.d.ts} +2 -2
  45. package/dist/types-chunks/{utils.d-DSEX6Rq1.d.ts → utils.d-umRKgMAu.d.ts} +19 -5
  46. package/package.json +2 -1
  47. package/dist/chunks/chunk-CZHIUJQS.js +0 -535
  48. package/dist/chunks/chunk-FT2XFFNP.js +0 -2
  49. package/dist/chunks/chunk-IJUB7QXG.js +0 -425
  50. package/dist/chunks/chunk-PGF5EZ7C.js +0 -31
  51. package/dist/chunks/devtools-EYGFOXEU.js +0 -2
  52. package/dist/chunks/dist-C2VOGY5Z.js +0 -2
  53. package/dist/chunks/dist-Q2PQM7U7.js +0 -2
@@ -0,0 +1,567 @@
1
+ // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
+ import{A as Jw,B as Qw,C as Zw,a as Z,c as ja,j as Zi,k as Mn,l as es,m as Wo,n as Yw,o as qw,p as yu,q as sp,r as xu,s as ap,t as cp,u as lp,w as Ga,x as up,y as Kn,z as Uo}from"./chunk-QZFZIGPF.js";import{a as wu}from"./chunk-2SMCCP44.js";import{n as eS,o as tS,p as nS}from"./chunk-EVIDQWMF.js";import{Ab as Er,Da as Lw,Ec as Fw,Fb as hu,Fc as Ww,Ia as Pw,Ib as Dw,Jd as zw,Ka as $w,Kb as Nw,La as Ow,Mb as Bw,Oa as op,R as Rw,S as pu,U as Wa,V as Ew,ba as Mw,c as ep,d as Ha,dc as Hw,de as Xw,e as uw,g as np,gd as Uw,ge as gu,hd as Ua,sa as Aw,sd as jw,t as kw,ta as rp,td as Gw,ua as _w,vd as ip,wd as Kw,xd as Vw}from"./chunk-VGRG2F6H.js";import{S as du,ca as cw,ea as Zm,fa as lw,j as Do,sa as No,ta as ji,ua as Gi}from"./chunk-66B6ZOU7.js";import{Bc as Yi,Cc as qi,Dc as Ji,Ec as mu,Fc as Fo,Gc as bw,Ic as Qi,Jc as vw,La as Rn,Nb as xw,Nc as tp,Ob as ww,Oc as Fa,Pb as Sw,Yc as Iw,ac as Rr,bb as dw,bc as Ho,gb as fu,gc as Tw,ib as fw,k as Bo,lc as Vi,mb as mw,nb as pw,ob as hw,pb as gw,rb as yw,tc as En,va as Ki,vc as At,wa as kn,xc as zi,yc as Xi,zc as Cw}from"./chunk-VX6HN3JP.js";import{a as i,b as Qm,c as WE}from"./chunk-V4WSBIXB.js";var tC=Qm((DK,eC)=>{"use strict";eC.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 cC=Qm((BK,aC)=>{"use strict";var sC="(?:"+["\\|\\|","\\&\\&",";;","\\|\\&","\\<\\(","\\<\\<\\<",">>",">\\&","<\\&","[&;()|<>]"].join("|")+")",nC=new RegExp("^"+sC+"$"),rC="|&;()<> \\t",TL='"((\\\\"|[^"])*?)"',CL="'((\\\\'|[^'])*?)'",bL=/^#$/,oC="'",iC='"',oh="$",Qo="",vL=4294967296;for(ih=0;ih<4;ih++)Qo+=(vL*Math.random()).toString(16);var ih,IL=new RegExp("^"+Qo);function kL(e,t){for(var n=t.lastIndex,r=[],o;o=t.exec(e);)r.push(o),t.lastIndex===o.index&&(t.lastIndex+=1);return t.lastIndex=n,r}i(kL,"matchAll");function RL(e,t,n){var r=typeof e=="function"?e(n):e[n];return typeof r>"u"&&n!=""?r="":typeof r>"u"&&(r="$"),typeof r=="object"?t+Qo+JSON.stringify(r)+Qo:t+r}i(RL,"getVar");function EL(e,t,n){n||(n={});var r=n.escape||"\\",o="(\\"+r+`['"`+rC+`]|[^\\s'"`+rC+"])+",s=new RegExp(["("+sC+")","("+o+"|"+TL+"|"+CL+")+"].join("|"),"g"),a=kL(e,s);if(a.length===0)return[];t||(t={});var c=!1;return a.map(function(l){var u=l[0];if(!u||c)return;if(nC.test(u))return{op:u};var m=!1,p=!1,h="",g=!1,y;function x(){y+=1;var I,A,$=u.charAt(y);if($==="{"){if(y+=1,u.charAt(y)==="}")throw new Error("Bad substitution: "+u.slice(y-2,y+1));if(I=u.indexOf("}",y),I<0)throw new Error("Bad substitution: "+u.slice(y));A=u.slice(y,I),y=I}else if(/[*@#?$!_-]/.test($))A=$,y+=1;else{var F=u.slice(y);I=F.match(/[^\w\d_]/),I?(A=F.slice(0,I.index),y+=I.index-1):(A=F,y=u.length)}return RL(t,"",A)}for(i(x,"parseEnvVar"),y=0;y<u.length;y++){var w=u.charAt(y);if(g=g||!m&&(w==="*"||w==="?"),p)h+=w,p=!1;else if(m)w===m?m=!1:m==oC?h+=w:w===r?(y+=1,w=u.charAt(y),w===iC||w===r||w===oh?h+=w:h+=r+w):w===oh?h+=x():h+=w;else if(w===iC||w===oC)m=w;else{if(nC.test(w))return{op:u};if(bL.test(w)){c=!0;var T={comment:e.slice(l.index+y+1)};return h.length?[h,T]:[T]}else w===r?p=!0:w===oh?h+=x():h+=w}}return g?{op:"glob",pattern:h}:h}).reduce(function(l,u){return typeof u>"u"?l:l.concat(u)},[])}i(EL,"parseInternal");aC.exports=i(function(t,n,r){var o=EL(t,n,r);return typeof n!="function"?o:o.reduce(function(s,a){if(typeof a=="object")return s.concat(a);var c=a.split(RegExp("("+Qo+".*?"+Qo+")","g"));return c.length===1?s.concat(c[0]):s.concat(c.filter(Boolean).map(function(l){return IL.test(l)?JSON.parse(l.split(Qo)[1]):l}))},[])},"parse")});var lC=Qm(sh=>{"use strict";sh.quote=tC();sh.parse=cC()});import{spawnSync as UE}from"node:child_process";function Su(e){return e==="1"||e?.toLowerCase()==="true"}i(Su,"isTruthyEnv");function rS(e){return e==="0"||e?.toLowerCase()==="false"}i(rS,"isFalseyEnv");function ts(e=process.env){return e.TERM_PROGRAM?.toLowerCase()==="vscode"||!!e.VSCODE_GIT_IPC_HANDLE||!!e.VSCODE_INJECTION}i(ts,"isVsCodeTerminalHostEnv");function ns(e={}){let t=e.env??process.env;return(e.platform??process.platform)==="win32"||!!t.WT_SESSION}i(ns,"hasCursorUpViewportYankRisk");function jE(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}i(jE,"isSshSession");function Ka(e={}){let t=e.env??process.env;return Su(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&jE(t)}i(Ka,"isRemoteConptyHost");function rs(e={}){let t=e.env??process.env;return ns(e)||ts(t)}i(rs,"hasMainScreenRenderScrollRisk");function GE(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}i(GE,"isTmuxControlModeEnvHeuristic");var Mr;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(GE(t))return!0;if(!(t===process.env&&n===process.platform))return!1;if(Mr!==void 0||(Mr=!1,!t.TMUX)||t.TERM_PROGRAM&&t.TERM_PROGRAM!=="iTerm.app")return Mr;try{let o=UE("tmux",["display-message","-p","#{client_control_mode}"],{encoding:"utf8",timeout:2e3});o.status===0&&(Mr=o.stdout.trim()==="1")}catch{Mr=!1}return Mr}i(Va,"isTmuxControlMode");function dp(){Mr=void 0}i(dp,"resetTmuxControlModeProbeForTesting");function jo(e={}){let t=e.env??process.env,n=e.isTTY??process.stdout.isTTY===!0,r=e.rawModeSupported??(process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function");return!n||!r||t.TERM==="dumb"||t.CI==="true"?"unsupported_control_host":Va(e)?"tmux_control_mode":ts(t)?"xtermjs_host":Ka(e)?"remote_conpty_host":ns(e)?"degraded_vt":"native_vt"}i(jo,"detectTerminalRenderHost");var Go=jo;function os(e={}){let t=e.env??process.env;if(Su(t.KODAX_FORCE_INK))return"legacy";let n=t.KODAX_TUI_RENDERER?.trim().toLowerCase();return n==="legacy"||n==="owned"||n==="auto"?n:"auto"}i(os,"resolveConfiguredTuiRendererMode");function Ko(e={}){let t=os(e);if(t==="legacy"||t==="owned")return t;let n=jo(e);return n==="unsupported_control_host"||n==="tmux_control_mode"?"legacy":"owned"}i(Ko,"resolveEffectiveTuiRendererMode");function Tu(e={}){let t=e.env??process.env;if(Su(t.KODAX_FORCE_CLASSIC_REPL))return"classic";let n=os({env:t});if(n==="legacy"||n==="owned")return"ink";let r=jo(e);return r==="unsupported_control_host"||r==="tmux_control_mode"?"classic":"ink"}i(Tu,"resolveInteractiveSurfacePreference");var KE={enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!0},oS={enabled:!0,promptShell:"main-screen",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!1,transcriptSpinnerAnimation:!0};function Vo(e,t="owned",n={}){let r=n.env??process.env;return rS(r.KODAX_FULLSCREEN)?t==="owned"&&e!=="tmux_control_mode"&&e!=="unsupported_control_host"?oS:KE:VE(e,t)}i(Vo,"resolveFullscreenPolicy");function VE(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 oS;default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}}i(VE,"buildFullscreenPolicy");function is(e,t={}){let n=t.rendererMode??"owned",r=Vo(e,n,{env:t.env}),o=e!=="unsupported_control_host"&&e!=="tmux_control_mode";return{profile:e,ownsViewportByDefault:r.enabled&&r.promptShell==="virtual",supportsMouseTracking:r.mouseWheel||r.mouseClicks,bufferingMode:r.streamingPreview?"live":"buffered-fallback",supportsFullscreenLayout:r.enabled,supportsOverlaySurface:r.enabled,supportsSelection:o,supportsCopyOnSelect:!1,supportsWheelHistory:r.mouseWheel,supportsViewportChrome:r.enabled,supportsSearchViewport:r.enabled,supportsStickyPrompt:r.enabled}}i(is,"getTerminalHostCapabilities");function Cu(e={}){return Ko(e)==="owned"}i(Cu,"isOwnedRendererPreferred");function bu(e={}){let t=e.env??process.env;return Su(t.KODAX_FORCE_CLASSIC_REPL)&&!rS(t.KODAX_FORCE_CLASSIC_REPL)}i(bu,"isClassicReplForced");var ss=class{static{i(this,"LRUCache")}capacity;cache;constructor(t){this.capacity=t,this.cache=new Map}get(t){if(!this.cache.has(t))return;let n=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,n),n}set(t,n){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.capacity){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(t,n)}has(t){return this.cache.has(t)}delete(t){return this.cache.delete(t)}clear(){this.cache.clear()}get size(){return this.cache.size}},fp=1,mp=2,zE=1e3,iS;function vu(){if(!(typeof Intl>"u"||typeof Intl.Segmenter!="function"))return iS??=new Intl.Segmenter("en",{granularity:"grapheme"}),iS}i(vu,"getGraphemeSegmenter");function pn(e){if(!e)return 0;let t=vu();if(t){let n=0;for(let r of t.segment(e))n++;return n}return[...e].length}i(pn,"getCodePointLength");function or(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(or,"isWideChar");function ir(e){if(!e)return 0;let t=0,n=vu();if(n)for(let r of n.segment(e))t+=or(r.segment)?mp:fp;else for(let r of e)t+=or(r)?mp:fp;return t}i(ir,"getVisualWidth");function XE(e,t){if(!e||t<0)return"";let n=vu();if(n){let o=0;for(let s of n.segment(e)){if(o===t)return s.segment;o++}return""}let r=[...e];return t>=r.length?"":r[t]}i(XE,"getCharAtCodePoint");function en(e){if(!e)return[];let t=vu();if(t){let n=[];for(let r of t.segment(e))n.push(r.segment);return n}return[...e]}i(en,"splitByCodePoints");function YE(e,t,n){return en(e).slice(t,n).join("")}i(YE,"sliceByCodePoints");function sS(e,t){let n=Math.max(0,t),r=en(e),o=0,s=0;for(;o<r.length;){let a=or(r[o])?mp:fp;if(s+a>n)break;s+=a,o++}return{before:r.slice(0,o).join(""),current:r[o]??"",after:r.slice(o+1).join("")}}i(sS,"splitAtVisualColumn");function za(e,t,n=!1){if(!e||t<=0)return"";let r="\u2026",s=n?t-1:t,a="",c=0,l=en(e);for(let u of l){let m=or(u)?2:1;if(c+m>s)break;a+=u,c+=m}return n&&a.length<e.length&&(a+=r),a}i(za,"truncateByVisualWidth");var pp=new ss(zE);function hp(e){let t=pp.get(e);if(t!==void 0)return t;let n=ir(e);return pp.set(e,n),n}i(hp,"getVisualWidthCached");function tn(e,t,n,r){let o=[],s=[],a=[];for(let c=0;c<e.length;c++){let l=e[c]||"";if(s[c]=[],l.length===0){o.push("");let p=o.length-1;s[c].push([p,0]),a.push([c,0]);continue}let u=0,m=en(l);for(;u<m.length;){let p="",h=0,g=u,y=-1;for(let x=u;x<m.length;x++){let w=m[x],T=or(w)?2:1;if(h+T>t){y>=0&&x-u>0?(p=m.slice(u,y).join(""),h=m.slice(u,y).reduce((I,A)=>I+(or(A)?2:1),0),g=y):p.length===0&&T>t&&(p=w,h=T,g=x+1);break}p+=w,h+=T,g=x+1,w===" "&&(y=x+1)}if(p.length>0||o.length===0){let x=u,w=o.length;o.push(p),s[c].push([w,x]),a.push([c,x])}u=g}}return{visualLines:o,logicalToVisualMap:s,visualToLogicalMap:a}}i(tn,"calculateVisualLayout");function gp(e,t){let{logicalToVisualMap:n,visualLines:r}=e;if(r.length===0)return[0,0];let[o,s]=t,a=n[o];if(!a||a.length===0)return[0,0];let c;for(let[g,y]of a)if(y<=s)c=[g,y];else break;let[l,u]=c??a[0],m=r[l]??"",p=Math.max(0,s-u),h=ir(YE(m,0,p));return[l,h]}i(gp,"calculateVisualCursorFromLayout");var yp={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"]}},aS={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 cS={dark:yp,minimal:aS};function re(e="dark"){return cS[e]??yp}i(re,"getTheme");function CW(){return Object.keys(cS)}i(CW,"getThemeNames");import{jsx as on,jsxs as _n,Fragment as iL}from"react/jsx-runtime";import{useMemo as rd}from"react";import{jsx as BT}from"react/jsx-runtime";import{createContext as $_,useContext as qo,useEffect as xs,useMemo as NT,useState as O_,useCallback as HT,useRef as Xu}from"react";import{Stream as u_}from"node:stream";import{openSync as d_,writeSync as IT}from"node:fs";import{performance as f_}from"node:perf_hooks";import{tmpdir as m_}from"node:os";import{join as p_}from"node:path";import xp,{forwardRef as QE,useContext as ZE}from"react";import{createContext as qE}from"react";var as=qE({isScreenReaderEnabled:!1});import{createContext as JE}from"react";var Iu=JE(void 0);var lS=QE(({children:e,backgroundColor:t,"aria-label":n,"aria-hidden":r,"aria-role":o,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:l}=ZE(as),u=n?xp.createElement("ink-text",null,n):void 0;if(l&&r)return null;let m=xp.createElement("ink-box",{ref:c,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:0,flexShrink:1,...a,backgroundColor:t,overflowX:a.overflowX??a.overflow??"visible",overflowY:a.overflowY??a.overflow??"visible"},internal_accessibility:{role:o,state:s}},l&&u?u:e);return t?xp.createElement(Iu.Provider,{value:t},m):m});lS.displayName="Box";var An=lS;import rM,{useContext as uS}from"react";import cs from"chalk";import to from"chalk";var eM=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,tM=/^ansi256\(\s?(\d+)\s?\)$/;function nM(e){return e in to}i(nM,"isNamedColor");function Vn(e,t,n){if(!t)return e;if(nM(t)){let r=to;if(n==="foreground")return r[t]?.(e)??e;let o=`bg${t[0].toUpperCase()+t.slice(1)}`;return r[o]?.(e)??e}if(t.startsWith("#"))return n==="foreground"?to.hex(t)(e):to.bgHex(t)(e);if(t.startsWith("ansi256")){let r=tM.exec(t);if(!r)return e;let o=Number(r[1]);return n==="foreground"?to.ansi256(o)(e):to.bgAnsi256(o)(e)}if(t.startsWith("rgb")){let r=eM.exec(t);if(!r)return e;let o=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?to.rgb(o,s,a)(e):to.bgRgb(o,s,a)(e)}return e}i(Vn,"colorize");function nn({color:e,backgroundColor:t,dimColor:n=!1,bold:r=!1,italic:o=!1,underline:s=!1,strikethrough:a=!1,inverse:c=!1,wrap:l="wrap",children:u,"aria-label":m,"aria-hidden":p=!1,internal_cursorAnchor:h=!1}){let{isScreenReaderEnabled:g}=uS(as),y=uS(Iu),x=g&&m?m:u;if(x==null)return null;let w=i(T=>{let I=T;n&&(I=cs.dim(I)),e&&(I=Vn(I,e,"foreground"));let A=t??y;return A&&(I=Vn(I,A,"background")),r&&(I=cs.bold(I)),o&&(I=cs.italic(I)),s&&(I=cs.underline(I)),a&&(I=cs.strikethrough(I)),c&&(I=cs.inverse(I)),I},"transform");return g&&p?null:rM.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:l},internal_transform:w,...h?{internal_cursorAnchor:!0}:{}},g&&m?m:u)}i(nn,"Text");import oM,{useLayoutEffect as iM,useMemo as dS,useState as sM}from"react";function wp({items:e,children:t,style:n}){let[r,o]=sM(0),s=dS(()=>e.slice(r),[e,r]);iM(()=>{o(e.length)},[e.length]);let a=s.map((l,u)=>t(l,r+u)),c=dS(()=>({position:"absolute",flexDirection:"column",...n}),[n]);return oM.createElement("ink-box",{internal_static:!0,style:c},a)}i(wp,"Static");import Yo from"node:process";import CT from"react";import{throttle as KA}from"es-toolkit/compat";import rn from"ansi-escapes";import ro from"is-in-ci";import VA from"auto-bind";import{onExit as zA}from"signal-exit";import XA from"patch-console";import{LegacyRoot as YA,ConcurrentRoot as qA}from"react-reconciler/constants.js";import JA from"yoga-layout";import QA from"wrap-ansi";import ZA from"terminal-size";import aM from"node:process";var ku=i(()=>aM.env.DEV==="true","isDev");import $M from"react-reconciler";import{DefaultEventPriority as OM,NoEventPriority as RS}from"react-reconciler/constants.js";import*as no from"scheduler";import bS from"yoga-layout";import{createContext as DM}from"react";import CM from"yoga-layout";import cM from"widest-line";var fS=new Map,lM=i(e=>{if(e.length===0)return{width:0,height:0};let t=fS.get(e);if(t)return t;let n=cM(e),r=e.split(`
3
+ `).length,o={width:n,height:r};return fS.set(e,o),o},"measureText"),Sp=lM;import uM from"wrap-ansi";import dM from"cli-truncate";var mS={},fM=i((e,t,n)=>{let r=e+String(t)+String(n),o=mS[r];if(o)return o;let s=e;if(n==="wrap"&&(s=uM(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=dM(e,t,{position:a})}return mS[r]=s,s},"wrapText"),Ru=fM;var mM=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),pM=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),hM=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),gS=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),gM=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),yS=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),pS=i((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!mM(c))break;n++}let r=e.slice(t,n),o=n;for(;n<e.length;){let c=e[n];if(!pM(c))break;n++}let s=e.slice(o,n),a=e[n];if(!(a===void 0||!hM(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),hS=i((e,t,n)=>{for(let r=t;r<e.length;r++){let o=e[r];if(n&&o==="\x07"||o==="\x9C")return r+1;if(o==="\x1B"){let s=e[r+1];if(s==="\x1B"){r++;continue}if(s==="\\")return r+2}}},"findControlStringTerminatorIndex"),yM=i((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!gS(s))break;n++}let r=e.slice(t,n),o=e[n];if(!(o===void 0||!gM(o)))return{endIndex:n+1,intermediateString:r,finalCharacter:o}},"readEscapeSequence"),xM=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"),wM=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"),Tp=i(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(yS(t))return!0;return!1},"hasAnsiControlCharacters"),ls=i((e,t,n,r)=>(r>n&&e.push({type:"text",value:t.slice(n,r)}),e.push({type:"invalid",value:t.slice(r)}),e),"malformedFromIndex"),xS=i(e=>{if(!Tp(e))return[{type:"text",value:e}];let t=[],n=0;for(let r=0;r<e.length;){let o=e[r];if(o===void 0)break;if(o==="\x1B"){let a=e[r+1];if(a===void 0)return ls(t,e,n,r);if(a==="["){let u=pS(e,r+2);if(u===void 0)return ls(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,u.endIndex),parameterString:u.parameterString,intermediateString:u.intermediateString,finalCharacter:u.finalCharacter}),r=u.endIndex,n=r;continue}let c=xM(a);if(c!==void 0){let u=hS(e,r+2,c.allowBellTerminator);if(u===void 0)return ls(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:c.type,value:e.slice(r,u)}),r=u,n=r;continue}let l=yM(e,r+1);if(l===void 0){if(gS(a))return ls(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),r++,n=r;continue}r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"esc",value:e.slice(r,l.endIndex),intermediateString:l.intermediateString,finalCharacter:l.finalCharacter}),r=l.endIndex,n=r;continue}if(o==="\x9B"){let a=pS(e,r+1);if(a===void 0)return ls(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,a.endIndex),parameterString:a.parameterString,intermediateString:a.intermediateString,finalCharacter:a.finalCharacter}),r=a.endIndex,n=r;continue}let s=wM(o);if(s!==void 0){let a=hS(e,r+1,s.allowBellTerminator);if(a===void 0)return ls(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:s.type,value:e.slice(r,a)}),r=a,n=r;continue}if(o==="\x9C"){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"st",value:o}),r++,n=r;continue}if(yS(o)){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"c1",value:o}),r++,n=r;continue}r++}return n<e.length&&t.push({type:"text",value:e.slice(n)}),t},"tokenizeAnsi");var SM=/^[\d:;]*$/,TM=i(e=>{if(!Tp(e))return e;let t="";for(let n of xS(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&SM.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),wS=TM;var SS=i(e=>{let t="";for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r===void 0)continue;let o="";r.nodeName==="#text"?o=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(o=SS(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o,n))),t+=o}return wS(t)},"squashTextNodes"),Xa=SS;var Eu=i(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:CM.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(bM.bind(null,t)),t},"createNode"),Mu=i((e,t)=>{t.parentNode&&Ya(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")&&Au(e)},"appendChildNode"),Cp=i((e,t,n)=>{t.parentNode&&Ya(t.parentNode,t),t.parentNode=e;let r=e.childNodes.indexOf(n);r>=0?(e.childNodes.splice(r,0,t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,r)):(e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Au(e)},"insertBeforeNode"),Ya=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")&&Au(e)},"removeChildNode"),bp=i((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),vp=i((e,t)=>{e.style=t},"setStyle"),TS=i(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return qa(t,e),t},"createTextNode"),bM=i(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:Xa(e),r=Sp(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let o=e.style?.textWrap??"wrap",s=Ru(n,t,o);return Sp(s)},"measureTextNode"),CS=i(e=>{if(e?.parentNode)return e.yogaNode??CS(e.parentNode)},"findClosestYogaNode"),Au=i(e=>{CS(e)?.markDirty()},"markNodeAsDirty"),qa=i((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,Au(e)},"setTextNodeValue");import Te from"yoga-layout";var IM=i((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?Te.POSITION_TYPE_ABSOLUTE:Te.POSITION_TYPE_RELATIVE),"top"in t&&e.setPosition(Te.EDGE_TOP,t.top??0),"bottom"in t&&e.setPosition(Te.EDGE_BOTTOM,t.bottom??0),"left"in t&&e.setPosition(Te.EDGE_LEFT,t.left??0),"right"in t&&e.setPosition(Te.EDGE_RIGHT,t.right??0)},"applyPositionStyles"),kM=i((e,t)=>{"margin"in t&&e.setMargin(Te.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(Te.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(Te.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(Te.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(Te.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(Te.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(Te.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),RM=i((e,t)=>{"padding"in t&&e.setPadding(Te.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(Te.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(Te.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(Te.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(Te.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(Te.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(Te.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),EM=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(Te.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(Te.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(Te.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(Te.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(Te.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(Te.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(Te.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(Te.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(Te.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(Te.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(Te.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(Te.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(Te.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(Te.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(Te.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(Te.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(Te.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(Te.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(Te.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(Te.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(Te.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),MM=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"),AM=i((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?Te.DISPLAY_FLEX:Te.DISPLAY_NONE)},"applyDisplayStyles"),_M=i((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(Te.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(Te.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(Te.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(Te.EDGE_RIGHT,n)}},"applyBorderStyles"),LM=i((e,t)=>{"gap"in t&&e.setGap(Te.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(Te.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(Te.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),PM=i((e,t={})=>{IM(e,t),kM(e,t),RM(e,t),EM(e,t),MM(e,t),AM(e,t),_M(e,t),LM(e,t)},"styles"),Ip=PM;if(ku())try{await import("./devtools-YINBSZC7.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 vS=i((e,t)=>{if(e===t)return;if(!e)return t;let n={},r=!1;for(let o of Object.keys(e))(!t||!Object.hasOwn(t,o))&&(n[o]=void 0,r=!0);if(t)for(let o of Object.keys(t))t[o]!==e[o]&&(n[o]=t[o],r=!0);return r?n:void 0},"diff"),IS=i(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),_u=RS,kp,kS={name:void 0,version:void 0},Ar=$M({getRootHostContext:i(()=>({isInsideText:!1}),"getRootHostContext"),prepareForCommit:i(()=>null,"prepareForCommit"),preparePortalMount:i(()=>null,"preparePortalMount"),clearContainer:i(()=>!1,"clearContainer"),resetAfterCommit(e){if(typeof e.onComputeLayout=="function"&&e.onComputeLayout(),e.isStaticDirty){e.isStaticDirty=!1,typeof e.onImmediateRender=="function"&&e.onImmediateRender();return}typeof e.onRender=="function"&&e.onRender()},getChildHostContext(e,t){let n=e.isInsideText,r=t==="ink-text"||t==="ink-virtual-text";return n===r?e:{isInsideText:r}},shouldSetTextContent:i(()=>!1,"shouldSetTextContent"),createInstance(e,t,n,r){if(r.isInsideText&&e==="ink-box")throw new Error("<Box> can\u2019t be nested inside <Text> component");let o=e==="ink-text"&&r.isInsideText?"ink-virtual-text":e,s=Eu(o);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){vp(s,c),s.yogaNode&&Ip(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_cursorAnchor"){s.internal_cursorAnchor=c;continue}if(a==="internal_static"){kp=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}bp(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 TS(e)},resetTextContent(){},hideTextInstance(e){qa(e,"")},unhideTextInstance(e,t){qa(e,t)},getPublicInstance:i(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(bS.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(bS.DISPLAY_FLEX)},appendInitialChild:Mu,appendChild:Mu,insertBefore:Cp,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:no.unstable_scheduleCallback,cancelCallback:no.unstable_cancelCallback,shouldYield:no.unstable_shouldYield,now:no.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:i(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:i(()=>null,"getInstanceFromScope"),appendChildToContainer:Mu,insertInContainerBefore:Cp,removeChildFromContainer(e,t){Ya(e,t),IS(t.yogaNode)},commitUpdate(e,t,n,r){kp&&e.internal_static&&(kp.isStaticDirty=!0);let o=vS(n,r),s=vS(n.style,r.style);if(!(!o&&!s)){if(o)for(let[a,c]of Object.entries(o)){if(a==="style"){vp(e,c);continue}if(a==="internal_transform"){e.internal_transform=c;continue}if(a==="internal_cursorAnchor"){e.internal_cursorAnchor=c;continue}if(a==="internal_static"){e.internal_static=!0;continue}bp(e,a,c)}s&&e.yogaNode&&Ip(e.yogaNode,s)}},commitTextUpdate(e,t,n){qa(e,n)},removeChild(e,t){Ya(e,t),IS(t.yogaNode)},setCurrentUpdatePriority(e){_u=e},getCurrentUpdatePriority:i(()=>_u,"getCurrentUpdatePriority"),resolveUpdatePriority(){return _u!==RS?_u:OM},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:DM(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:kS.name,rendererVersion:kS.version});import WM from"widest-line";import UM from"indent-string";import us from"yoga-layout";import Lu from"yoga-layout";var NM=i(e=>e.getComputedWidth()-e.getComputedPadding(Lu.EDGE_LEFT)-e.getComputedPadding(Lu.EDGE_RIGHT)-e.getComputedBorder(Lu.EDGE_LEFT)-e.getComputedBorder(Lu.EDGE_RIGHT),"getMaxWidth"),ES=NM;import BM from"cli-boxes";import Pu from"chalk";var HM=i((e,t,n,r)=>{if(n.style.borderStyle){let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?BM[n.style.borderStyle]:n.style.borderStyle,c=n.style.borderTopColor??n.style.borderColor,l=n.style.borderBottomColor??n.style.borderColor,u=n.style.borderLeftColor??n.style.borderColor,m=n.style.borderRightColor??n.style.borderColor,p=n.style.borderTopDimColor??n.style.borderDimColor,h=n.style.borderBottomDimColor??n.style.borderDimColor,g=n.style.borderLeftDimColor??n.style.borderDimColor,y=n.style.borderRightDimColor??n.style.borderDimColor,x=n.style.borderTop!==!1,w=n.style.borderBottom!==!1,T=n.style.borderLeft!==!1,I=n.style.borderRight!==!1,A=o-(T?1:0)-(I?1:0),$=x?Vn((T?a.topLeft:"")+a.top.repeat(A)+(I?a.topRight:""),c,"foreground"):void 0;x&&p&&($=Pu.dim($));let F=s;x&&(F-=1),w&&(F-=1);let D=(Vn(a.left,u,"foreground")+`
12
+ `).repeat(F);g&&(D=Pu.dim(D));let v=(Vn(a.right,m,"foreground")+`
13
+ `).repeat(F);y&&(v=Pu.dim(v));let z=w?Vn((T?a.bottomLeft:"")+a.bottom.repeat(A)+(I?a.bottomRight:""),l,"foreground"):void 0;w&&h&&(z=Pu.dim(z));let fe=x?1:0;$&&r.write(e,t,$,{transformers:[]}),T&&r.write(e,t+fe,D,{transformers:[]}),I&&r.write(e+o-1,t+fe,v,{transformers:[]}),z&&r.write(e,t+s-1,z,{transformers:[]})}},"renderBorder"),MS=HM;var FM=i((e,t,n,r)=>{if(!n.style.backgroundColor)return;let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=n.style.borderStyle&&n.style.borderLeft!==!1?1:0,c=n.style.borderStyle&&n.style.borderRight!==!1?1:0,l=n.style.borderStyle&&n.style.borderTop!==!1?1:0,u=n.style.borderStyle&&n.style.borderBottom!==!1?1:0,m=o-a-c,p=s-l-u;if(!(m>0&&p>0))return;let h=Vn(" ".repeat(m),n.style.backgroundColor,"background");for(let g=0;g<p;g++)r.write(e+a,t+l+g,h,{transformers:[]})},"renderBackground"),AS=FM;var jM=i((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),o=n.getComputedTop();t=`
14
+ `.repeat(o)+UM(t,r)}return t},"applyPaddingToText"),$u=i((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===us.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=Xa(e);else if(e.nodeName==="ink-box"||e.nodeName==="ink-root"){let r=e.style.flexDirection==="row"||e.style.flexDirection==="row-reverse"?" ":`
15
+ `;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>$u(s,{parentRole:e.internal_accessibility?.role,skipStaticElements:t.skipStaticElements})).filter(Boolean).join(r)}if(e.internal_accessibility){let{role:r,state:o}=e.internal_accessibility;if(o){let a=Object.keys(o).filter(c=>o[c]).join(", ");a&&(n=`(${a}) ${n}`)}r&&r!==t.parentRole&&(n=`${r}: ${n}`)}return n},"renderNodeToScreenReaderOutput"),_S=i((e,t,n)=>{let{offsetX:r=0,offsetY:o=0,transformers:s=[],skipStaticElements:a}=n;if(a&&e.internal_static)return;let{yogaNode:c}=e;if(c){if(c.getDisplay()===us.DISPLAY_NONE)return;let l=r+c.getComputedLeft(),u=o+c.getComputedTop();e.internal_cursorAnchor&&(t.cursorPosition={x:l,y:u});let m=s;if(typeof e.internal_transform=="function"&&(m=[e.internal_transform,...s]),e.nodeName==="ink-text"){let h=Xa(e);if(h.length>0){let g=WM(h),y=ES(c);if(g>y){let x=e.style.textWrap??"wrap";h=Ru(h,y,x)}h=jM(e,h),t.write(l,u,h,{transformers:m})}return}let p=!1;if(e.nodeName==="ink-box"){AS(l,u,e,t),MS(l,u,e,t);let h=e.style.overflowX==="hidden"||e.style.overflow==="hidden",g=e.style.overflowY==="hidden"||e.style.overflow==="hidden";if(h||g){let y=h?l+c.getComputedBorder(us.EDGE_LEFT):void 0,x=h?l+c.getComputedWidth()-c.getComputedBorder(us.EDGE_RIGHT):void 0,w=g?u+c.getComputedBorder(us.EDGE_TOP):void 0,T=g?u+c.getComputedHeight()-c.getComputedBorder(us.EDGE_BOTTOM):void 0;t.clip({x1:y,x2:x,y1:w,y2:T}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let h of e.childNodes)_S(h,t,{offsetX:l,offsetY:u,transformers:m,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),Rp=_S;import GM from"slice-ansi";import KM from"string-width";import{styledCharsFromTokens as VM,styledCharsToString as zM,tokenize as XM}from"@alcalzone/ansi-tokenize";var Ep=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=VM(XM(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=KM(t),this.widths.set(t,n)),n}getWidestLine(t){let n=this.blockWidths.get(t);if(n===void 0){let r=0;for(let o of t.split(`
16
+ `))r=Math.max(r,this.getStringWidth(o));n=r,this.blockWidths.set(t,n)}return n}},ds=class{static{i(this,"Output")}width;height;operations=[];caches=new Ep;constructor(t){let{width:n,height:r}=t;this.width=n,this.height=r}write(t,n,r,o){let{transformers:s}=o;r&&this.operations.push({type:"write",x:t,y:n,text:r,transformers:s})}clip(t){this.operations.push({type:"clip",clip:t})}unclip(){this.operations.push({type:"unclip"})}getGrid(){let t=[];for(let r=0;r<this.height;r++){let o=[];for(let s=0;s<this.width;s++)o.push({type:"char",value:" ",fullWidth:!1,styles:[]});t.push(o)}let n=[];for(let r of this.operations)if(r.type==="clip"&&n.push(r.clip),r.type==="unclip"&&n.pop(),r.type==="write"){let{text:o,transformers:s}=r,{x:a,y:c}=r,l=o.split(`
17
+ `),u=n.at(-1);if(u){let p=typeof u?.x1=="number"&&typeof u?.x2=="number",h=typeof u?.y1=="number"&&typeof u?.y2=="number";if(p){let g=this.caches.getWidestLine(o);if(a+g<u.x1||a>u.x2)continue}if(h){let g=l.length;if(c+g<u.y1||c>u.y2)continue}if(p&&(l=l.map(g=>{let y=a<u.x1?u.x1-a:0,x=this.caches.getStringWidth(g),w=a+x>u.x2?u.x2-a:x;return GM(g,y,w)}),a<u.x1&&(a=u.x1)),h){let g=c<u.y1?u.y1-c:0,y=l.length,x=c+y>u.y2?u.y2-c:y;l=l.slice(g,x),c<u.y1&&(c=u.y1)}}let m=0;for(let[p,h]of l.entries()){let g=t[c+m];if(!g)continue;for(let w of s)h=w(h,p);let y=this.caches.getStyledChars(h),x=a;for(let w of y){g[x]=w;let T=Math.max(1,this.caches.getStringWidth(w.value));if(T>1)for(let I=1;I<T;I++)g[x+I]={type:"char",value:"",fullWidth:!1,styles:w.styles};x+=T}m++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let o=r.filter(s=>s!==void 0);return zM(o).trimEnd()}).join(`
18
+ `),height:t.length}}};var _r={Single:0,Wide:1,SpacerTail:2},sr={char:" ",width:_r.Single,style:"",hyperlink:void 0};function LS(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(sr);return{width:e,height:t,cells:n}}i(LS,"createScreen");function fs(e,t,n){if(!(t<0||n<0||t>=e.width||n>=e.height))return e.cells[n*e.width+t]}i(fs,"cellAt");function PS(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(sr),r=!1;return{width:e,height:t,setCellAt(o,s,a){if(r)throw new Error("ScreenBuilder.setCellAt called after build()");if(o<0||s<0||o>=e||s>=t)throw new RangeError(`ScreenBuilder.setCellAt out of bounds: (${o}, ${s}) on ${e}x${t}`);n[s*e+o]=a},build(){if(r)throw new Error("ScreenBuilder.build called twice");return r=!0,{width:e,height:t,cells:n}}}}i(PS,"createScreenBuilder");function*Ou(e,t){let n=Math.max(e.width,t.width),r=Math.max(e.height,t.height);for(let o=0;o<r;o++)for(let s=0;s<n;s++){let a=fs(e,s,o),c=fs(t,s,o);YM(a,c)||(yield{x:s,y:o,prev:a,next:c})}}i(Ou,"diffEach");function $S(e,t,n,r){if(r===0||e.height===0)return e;let o=Math.max(0,t),s=Math.min(e.height-1,n);if(o>s)return e;let a=e.width,c=e.cells.slice(),l=s-o+1,u=i(m=>{for(let p=0;p<a;p++)c[m*a+p]=sr},"blankRow");if(Math.abs(r)>=l){for(let m=o;m<=s;m++)u(m);return{...e,cells:c}}if(r>0){for(let m=o;m<=s-r;m++)for(let p=0;p<a;p++)c[m*a+p]=e.cells[(m+r)*a+p]??sr;for(let m=s-r+1;m<=s;m++)u(m)}else{let m=-r;for(let p=s;p>=o+m;p--)for(let h=0;h<a;h++)c[p*a+h]=e.cells[(p-m)*a+h]??sr;for(let p=o;p<=o+m-1;p++)u(p)}return{...e,cells:c}}i($S,"shiftRowsRegion");function YM(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(YM,"cellsEqual");var Mp="\x1B]8;";function qM(e){return e.endsWith("\x07")?e.slice(0,-1):e}i(qM,"stripOsc8Terminator");function JM(e){if(!e.startsWith(Mp))return;let t=e.slice(Mp.length),n=t.indexOf(";");if(n<0)return;let r=t.slice(n+1),o=qM(r);return o.length>0?o:void 0}i(JM,"parseOsc8Url");function QM(e){if(e.value==="")return{char:"",width:_r.SpacerTail,style:"",hyperlink:void 0};let t="",n;for(let r of e.styles)if(r.code.startsWith(Mp)){let o=JM(r.code);o!==void 0&&(n=o)}else t+=r.code;return{char:e.value,width:e.fullWidth?_r.Wide:_r.Single,style:t,hyperlink:n}}i(QM,"styledCharToCell");function Du(e){let t=e.getGrid(),n=e.width,r=e.height,o=PS(n,r),s=Math.min(t.length,r);for(let a=0;a<s;a++){let c=t[a];if(!c)continue;let l=Math.min(c.length,n);for(let u=0;u<l;u++){let m=c[u];if(!m)continue;let p=QM(m);p.char===sr.char&&p.width===sr.width&&p.style===sr.style&&p.hyperlink===sr.hyperlink||o.setCellAt(u,a,p)}}return o.build()}i(Du,"outputToScreen");var ZM=i((e,t,n)=>{if(e.yogaNode){if(t){let h=$u(e,{skipStaticElements:!0}),g=h===""?0:h.split(`
19
+ `).length,y="";return e.staticNode&&(y=$u(e.staticNode,{skipStaticElements:!1})),{output:h,outputHeight:g,staticOutput:y?`${y}
20
+ `:"",frame:void 0}}let r=new ds({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});Rp(e,r,{skipStaticElements:!0});let o;e.staticNode?.yogaNode&&(o=new ds({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),Rp(e.staticNode,o,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=Du(r),l=n?.columns??e.yogaNode.getComputedWidth(),u=n?.rows??e.yogaNode.getComputedHeight(),m=r.cursorPosition,p={screen:c,viewport:{width:l,height:u},cursor:{x:0,y:c.height,visible:!1},...m?{inputCursor:{x:m.x,y:m.y}}:{}};return{output:s,outputHeight:a,staticOutput:o?`${o.get().output}
21
+ `:"",frame:p}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),Ap=ZM;function hn(...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(hn,"csi");function OS(e=1){return e===0?"":hn(e,"A")}i(OS,"cursorUp");function eA(e=1){return e===0?"":hn(e,"B")}i(eA,"cursorDown");function tA(e=1){return e===0?"":hn(e,"C")}i(tA,"cursorForward");function nA(e=1){return e===0?"":hn(e,"D")}i(nA,"cursorBack");function DS(e){return hn(e,"G")}i(DS,"cursorTo");var rA=hn("G"),NS=hn("H");function BS(e,t){let n="";return e<0?n+=nA(-e):e>0&&(n+=tA(e)),t<0?n+=OS(-t):t>0&&(n+=eA(t)),n}i(BS,"cursorMove");var oA=hn(2,"K");function HS(e){if(e<=0)return"";let t="";for(let n=0;n<e;n++)t+=oA,n<e-1&&(t+=OS(1));return t+=rA,t}i(HS,"eraseLines");var FS=hn("r"),WS="\x1B7",US="\x1B8";function jS(e,t){return hn(e,t,"r")}i(jS,"setScrollRegion");function GS(e=1){return hn(e,"S")}i(GS,"scrollUp");function KS(e=1){return hn(e,"T")}i(KS,"scrollDown");var Nu=hn(0,"m");function VS(e){return`\x1B]${e.join(";")}\x07`}i(VS,"osc");function iA(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(iA,"osc8Id");function Ja(e,t){if(!e)return Qa;let n={id:iA(e),...t??{}},r=Object.entries(n).map(([o,s])=>`${o}=${s}`).join(":");return VS(["8",r,e])}i(Ja,"link");var Qa=VS(["8","",""]);function _p(e){let{screen:t}=e;if(t.width===0||t.height===0)return[];let n=[],r="",o;for(let s=0;s<t.height;s++){let a="";for(let c=0;c<t.width;c++){let l=fs(t,c,s);!l||l.width===_r.SpacerTail||(l.hyperlink!==o&&(o!==void 0&&(a+=Qa),l.hyperlink!==void 0&&(a+=Ja(l.hyperlink)),o=l.hyperlink),l.style!==r&&(r!==""&&(a+=Nu),l.style!==""&&(a+=l.style),r=l.style),a+=l.char)}o!==void 0&&(a+=Qa,o=void 0),r!==""&&(a+=Nu,r=""),n.push(a.trimEnd())}return[{type:"stdout",content:n.join(`
22
+ `)}]}i(_p,"renderFullFrame");var sA=Object.freeze([]),aA=Object.freeze([]);function ms(e,t){if(e===t)return{patches:sA,current:e};let n=[];return e!==""&&n.push({type:"stdout",content:Nu}),t!==""&&n.push({type:"stdout",content:t}),{patches:n,current:t}}i(ms,"transitionStyle");function Bu(e,t){let n=ms(e,t),r="";for(let o of n.patches)o.type==="stdout"&&(r+=o.content);return{str:r,current:n.current}}i(Bu,"transitionStyleStr");function zo(e,t){if(e===t)return{patches:aA,current:e};let n=[];return e!==void 0&&n.push({type:"stdout",content:Qa}),t!==void 0&&n.push({type:"stdout",content:Ja(t)}),{patches:n,current:t}}i(zo,"transitionHyperlink");function zS(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(zS,"needsWidthCompensation");var ps=class{static{i(this,"VirtualScreen")}viewportWidth;cursor;diff;_cursorMut;_diffMut=[];constructor(t,n){this.viewportWidth=n,this._cursorMut={x:t.x,y:t.y},this.cursor=this._cursorMut,this.diff=this._diffMut}txn(t){let[n,r]=t(this.cursor);for(let o of n)this._diffMut.push(o);this._cursorMut.x+=r.dx,this._cursorMut.y+=r.dy}},Lr={type:"carriageReturn"},Za={type:"stdout",content:`
23
+ `};function Hu(e,t,n){let r=t.width===_r.Wide?2:1,o=e.viewportWidth,s=!1;return e.txn(a=>{let c=a.x;if(r===2&&c<o){let m=t.char.length>2?o:o+1;if(c+2>=m)return[[],{dx:0,dy:0}]}let l=[];n.length>0&&l.push({type:"stdout",content:n});let u=r===2&&zS(t.char);return u&&c+1<o&&(l.push({type:"cursorTo",col:c+2}),l.push({type:"stdout",content:" "}),l.push({type:"cursorTo",col:c+1})),l.push({type:"stdout",content:t.char}),u&&l.push({type:"cursorTo",col:c+r+1}),s=!0,c>=o?[l,{dx:r-c,dy:1}]:[l,{dx:r,dy:0}]}),s}i(Hu,"writeCellWithStyleStr");function ec(e,t,n){e.txn(r=>{let o=t-r.x,s=n-r.y;return r.x>=e.viewportWidth?[[Lr,{type:"cursorMove",x:t,y:s}],{dx:o,dy:s}]:s!==0?[[Lr,{type:"cursorMove",x:t,y:s}],{dx:o,dy:s}]:[[{type:"cursorMove",x:o,y:s}],{dx:o,dy:s}]})}i(ec,"moveCursorTo");function Fu(e,t,n,r,o=!1){let s="",a;for(let c=n;c<r;c++){if(e.cursor.y<c){let p=c-e.cursor.y;e.txn(h=>{let g=new Array(1+p);g[0]=Lr;for(let y=0;y<p;y++)g[1+y]=Za;return[g,{dx:-h.x,dy:p}]})}for(let p=0;p<t.screen.width;p++){let h=fs(t.screen,p,c);if(!h||h.width===_r.SpacerTail||h.char===" "&&h.style===""&&h.hyperlink===void 0)continue;ec(e,p,c);let g=zo(a,h.hyperlink);for(let x of g.patches)e.txn(()=>[[x],{dx:0,dy:0}]);a=g.current;let y=Bu(s,h.style);Hu(e,h,y.str)&&(s=y.current)}let l=ms(s,"");for(let p of l.patches)e.txn(()=>[[p],{dx:0,dy:0}]);s=l.current;let u=zo(a,void 0);for(let p of u.patches)e.txn(()=>[[p],{dx:0,dy:0}]);a=u.current;let m=c===r-1&&t.screen.height<=t.viewport.height&&(c+1>=t.viewport.height||o);e.txn(p=>m?[[Lr],{dx:-p.x,dy:0}]:[[Lr,Za],{dx:-p.x,dy:1}])}if(s!==""||a!==void 0){let c=ms(s,"");for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);let l=zo(a,void 0);for(let u of l.patches)e.txn(()=>[[u],{dx:0,dy:0}])}}i(Fu,"renderFrameSlice");function Lp(e,t){let n="";for(let r=0;r<e.width;r++){let o=fs(e,r,t);n+=o?.char??" "}return n.trimEnd()}i(Lp,"readLine");function Wu(e,t,n=!1){let r=new ps({x:0,y:0},e.viewport.width);Fu(r,e,0,e.screen.height,n);let o=[{type:"clearTerminal",reason:t}];for(let s of r.diff)o.push(s);return o}i(Wu,"fullResetSequence_CAUSES_FLICKER");function Pp(e,t){let n=e.cursor.y>=e.screen.height,r=t.screen.height>e.screen.height,o=t.screen.height<e.screen.height,s=n&&e.screen.height>=e.viewport.height,a=t.screen.height<=e.viewport.height,c=s?1:0;return{viewportY:r?Math.max(0,e.screen.height-e.viewport.height+c):Math.max(e.screen.height,t.screen.height)-t.viewport.height+c,cursorAtBottom:n,growing:r,shrinking:o,prevHadScrollback:s,nextFitsViewport:a}}i(Pp,"computeViewportState");function XS(e,t,n){if(t.viewport.height<e.viewport.height||e.viewport.width!==0&&t.viewport.width!==e.viewport.width)return{reset:!0,reason:"resize"};let r=Pp(e,t);if(r.prevHadScrollback&&r.nextFitsViewport&&r.shrinking)return{reset:!0,reason:"offscreen"};if(e.screen.height>=e.viewport.height&&e.screen.height>0&&r.cursorAtBottom&&!r.growing){let s=e.screen.height-e.viewport.height+1;for(let a of Ou(e.screen,t.screen))if(a.y<s)return{reset:!0,reason:"offscreen",trigger:{y:a.y,prevLine:n(e.screen,a.y),nextLine:n(t.screen,a.y)}}}return r.shrinking&&e.screen.height-t.screen.height>e.viewport.height?{reset:!0,reason:"offscreen"}:{reset:!1}}i(XS,"shouldFullReset");function YS(e,t,n){return!!(t&&t.width===2||e&&e.width===2&&!t||t&&n&&!e)}i(YS,"shouldSkipDiff");var Uu=class{static{i(this,"LogUpdate")}options;constructor(t){this.options=t}render(t,n,r={}){if(!this.options.isTTY)return _p(n);let o=r.inlineBottomAnchored??!1,s=qS(t,o),a=qS(n,o),c=XS(s,a,Lp);if(c.reset)return Wu(a,c.reason,o);let l=a.scrollHint;if(l&&r.altScreen&&r.decstbmSafe&&process.env.KODAX_SCROLL_DECSTBM==="1"&&l.delta!==0&&l.top>=0&&l.bottom<s.screen.height&&l.bottom<a.screen.height&&Math.abs(l.delta)<=l.bottom-l.top){let u={type:"scrollRegion",top:l.top,bottom:l.bottom,delta:l.delta},m={...s,screen:$S(s.screen,l.top,l.bottom,l.delta)};return[u,...JS(m,a,o)]}return JS(s,a,o)}reset(){}};function $p(e,t){for(let n of t)e.txn(()=>[[n],{dx:0,dy:0}])}i($p,"emitPatches");function QS(e,t,n){if(t!==""){let r=ms(t,"");$p(e,r.patches)}if(n!==void 0){let r=zo(n,void 0);$p(e,r.patches)}return{style:"",hyperlink:void 0}}i(QS,"resetStyleAndHyperlink");function cA(e,t,n){let r=t.screen.height-n.screen.height;e.txn(o=>[[{type:"clear",count:r},{type:"cursorMove",x:0,y:-1}],{dx:-o.x,dy:-r}])}i(cA,"applyShrink");function lA(e,t,n,r){let o="",s,a=!1;for(let c of Ou(t.screen,n.screen)){let{x:l,y:u,prev:m,next:p}=c;if(r.growing&&u>=t.screen.height)continue;let h=!!(p&&p.char===" "&&p.style===""&&p.hyperlink===void 0);if(!YS(m,p,h)){if(u<r.viewportY){a=!0;break}if(ec(e,l,u),p){let g=zo(s,p.hyperlink);$p(e,g.patches),s=g.current;let y=Bu(o,p.style);Hu(e,p,y.str)&&(o=y.current)}else if(m){let g=QS(e,o,s);o=g.style,s=g.hyperlink,e.txn(()=>[[{type:"stdout",content:" "}],{dx:1,dy:0}])}}}return{currentStyle:o,currentHyperlink:s,needsFullReset:a}}i(lA,"diffPass");function qS(e,t){let n=t?Math.max(0,Math.min(e.viewport.height-1,e.screen.height-1)):Math.max(0,e.viewport.height-1);return e.cursor.y<=n?e:{...e,cursor:{...e.cursor,y:n}}}i(qS,"clampRestingCursor");function uA(e,t){t.cursor.y>=t.screen.height?e.txn(n=>{let r=t.cursor.y-n.y;if(r>0){let s=new Array(1+r);s[0]=Lr;for(let a=0;a<r;a++)s[1+a]=Za;return[s,{dx:-n.x,dy:r}]}let o=t.cursor.y-n.y;return o!==0||n.x!==t.cursor.x?[[Lr,{type:"cursorMove",x:t.cursor.x,y:o}],{dx:t.cursor.x-n.x,dy:o}]:[[],{dx:0,dy:0}]}):ec(e,t.cursor.x,t.cursor.y)}i(uA,"restoreCursor");function JS(e,t,n=!1){let r=Pp(e,t),o=new ps(e.cursor,t.viewport.width);r.shrinking&&cA(o,e,t);let s=lA(o,e,t,r);return s.needsFullReset?Wu(t,"offscreen",n):(QS(o,s.currentStyle,s.currentHyperlink),r.growing&&Fu(o,t,e.screen.height,t.screen.height,n),uA(o,t),o.diff)}i(JS,"renderIncremental");var dA="\x1B[?25l",fA="\x1B[?25h",mA=`\x1B[2J${NS}`,pA="\x1B[?2026h",hA="\x1B[?2026l";function gA(e){switch(e.type){case"stdout":return e.content;case"carriageReturn":return"\r";case"cursorHide":return dA;case"cursorShow":return fA;case"cursorMove":return BS(e.x,e.y);case"cursorTo":return DS(e.col);case"clear":return HS(e.count);case"clearTerminal":return mA;case"hyperlink":return Ja(e.uri);case"scrollRegion":{let t=e.top+1,n=e.bottom+1,r=Math.abs(e.delta),o=e.delta>0?GS(r):KS(r);return WS+jS(t,n)+o+FS+US}}}i(gA,"patchToBytes");function ju(e,t,n=!1){let r="",o=!1;for(let s of t)s.type==="clearTerminal"&&(o=!0),r+=gA(s);if(r.length!==0){if(n&&o){e.write(pA+r+hA);return}e.write(r)}}i(ju,"applyDiff");function ZS(e,t,n={}){if(t===void 0)return!1;let r=e.cellLogUpdate.render(e.prevFrame,t,n);return ju(e.stdout,r,n.synchronized??!1),e.prevFrame=t,!0}i(ZS,"applyCellFrame");function tc(e,t){return{screen:LS(0,0),viewport:{width:t,height:e},cursor:{x:0,y:0,visible:!0}}}i(tc,"emptyFrame");import yA from"is-in-ci";var Pr="\x1B[?2026h",ar="\x1B[?2026l";function $r(e){return"isTTY"in e&&e.isTTY===!0&&!yA}i($r,"shouldSynchronize");var xA=new WeakMap,eT=xA;import{EventEmitter as BA}from"node:events";import HA from"node:process";import Xo,{useState as Np,useRef as hs,useCallback as wt,useMemo as gs,useEffect as xT}from"react";import FA from"cli-cursor";var wA=i(e=>e>=48&&e<=63,"isCsiParameterByte"),SA=i(e=>e>=32&&e<=47,"isCsiIntermediateByte"),nT=i(e=>e>=64&&e<=126,"isCsiFinalByte");function TA(e,t,n){let r=t+n+1,o=r;for(;o<e.length;o+=1){let s=e.codePointAt(o);if(s===void 0)return"pending";if(!(wA(s)||SA(s))&&!(s===91&&o===r))return nT(s)?{sequence:e.slice(t,o+1),nextIndex:o+1}:void 0}return"pending"}i(TA,"parseCsiSequence");function CA(e,t,n){let r=t+n+2;if(r>e.length)return"pending";let o=e.codePointAt(r-1);if(!(o===void 0||!nT(o)))return{sequence:e.slice(t,r),nextIndex:r}}i(CA,"parseSs3Sequence");function tT(e,t,n){let r=e[t+n];if(r===void 0)return"pending";if(r==="[")return TA(e,t,n);if(r==="O")return CA(e,t,n)}i(tT,"parseControlSequence");function bA(e,t){let n=e.codePointAt(t+1),r=n!==void 0&&n>65535?2:1,o=t+1+r;return{sequence:e.slice(t,o),nextIndex:o}}i(bA,"parseEscapedCodePoint");function vA(e){let t=[],n=0,r=i(o=>({events:t,pending:e.slice(o)}),"pendingFrom");for(;n<e.length;){let o=e.indexOf("\x1B",n);if(o===-1)return t.push(e.slice(n)),{events:t,pending:""};if(o>n&&t.push(e.slice(n,o)),o===e.length-1)return r(o);let s=tT(e,o,1);if(s==="pending")return r(o);if(s){t.push(s.sequence),n=s.nextIndex;continue}if(e[o+1]==="\x1B"){if(o+2>=e.length)return r(o);let l=tT(e,o,2);if(l==="pending")return r(o);if(l){t.push(l.sequence),n=l.nextIndex;continue}t.push(e.slice(o,o+2)),n=o+2;continue}let c=bA(e,o);t.push(c.sequence),n=c.nextIndex}return{events:t,pending:""}}i(vA,"parseKeypresses");function Gu(){let e="";return{push(t){let n=vA(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(Gu,"createInputParser");import{createContext as IA}from"react";var rT=IA({exit(){}});rT.displayName="InternalAppContext";var oT=rT;import{EventEmitter as kA}from"node:events";import{createContext as RA}from"react";var EA={isTTY:!1,isRaw:!1,on(){},off(){},pause(){},resume(){},setRawMode(){}},iT=RA({stdin:EA,internal_eventEmitter:new kA,setRawMode(){},isRawModeSupported:!1,internal_exitOnCtrlC:!0});iT.displayName="InternalStdinContext";var sT=iT;import{createContext as MA}from"react";var AA={isTTY:!1,columns:80,rows:24,write(){return!0},on(){},off(){}},aT=MA({stdout:AA,write(){}});aT.displayName="InternalStdoutContext";var cT=aT;import{createContext as _A}from"react";var LA={isTTY:!1,write(){return!0},on(){},off(){}},lT=_A({stderr:LA,write(){}});lT.displayName="InternalStderrContext";var uT=lT;import{createContext as PA}from"react";var dT=PA({activeId:void 0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){}});dT.displayName="InternalFocusContext";var fT=dT;import{createContext as $A}from"react";var mT=$A({setCursorPosition(){}});mT.displayName="InternalCursorContext";var pT=mT;import DA,{PureComponent as NA}from"react";import*as Ku from"node:fs";import{cwd as yT}from"node:process";import bt from"react";import hT from"stack-utils";import OA from"code-excerpt";var Op=i(e=>e?.replace(`file://${yT()}/`,""),"cleanupPath"),gT=new hT({cwd:yT(),internals:hT.nodeInternals()});function Dp({error:e}){let t=e.stack?e.stack.split(`
24
+ `).slice(1):void 0,n=t?gT.parseLine(t[0]):void 0,r=Op(n?.file),o,s=0;if(r&&n?.line&&Ku.existsSync(r)){let a=Ku.readFileSync(r,"utf8");if(o=OA(a,n.line),o)for(let{line:c}of o)s=Math.max(s,String(c).length)}return bt.createElement(An,{flexDirection:"column",padding:1},bt.createElement(An,null,bt.createElement(nn,{backgroundColor:"red",color:"white"}," ","ERROR"," "),bt.createElement(nn,null," ",e.message)),n&&r&&bt.createElement(An,{marginTop:1},bt.createElement(nn,{dimColor:!0},r,":",n.line,":",n.column)),n&&o&&bt.createElement(An,{marginTop:1,flexDirection:"column"},o.map(({line:a,value:c})=>bt.createElement(An,{key:a},bt.createElement(An,{width:s+1},bt.createElement(nn,{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," "),":")),bt.createElement(nn,{key:a,backgroundColor:a===n.line?"red":void 0,color:a===n.line?"white":void 0}," "+c)))),e.stack&&bt.createElement(An,{marginTop:1,flexDirection:"column"},e.stack.split(`
25
+ `).slice(1).map(a=>{let c=gT.parseLine(a);return c?bt.createElement(An,{key:a},bt.createElement(nn,{dimColor:!0},"- "),bt.createElement(nn,{dimColor:!0,bold:!0},c.function),bt.createElement(nn,{dimColor:!0,color:"gray","aria-label":`at ${Op(c.file)??""} line ${c.line} column ${c.column}`}," ","(",Op(c.file)??"",":",c.line,":",c.column,")")):bt.createElement(An,{key:a},bt.createElement(nn,{dimColor:!0},"- "),bt.createElement(nn,{dimColor:!0,bold:!0},a,"\\t"," "))})))}i(Dp,"ErrorOverview");var nc=class extends NA{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?DA.createElement(Dp,{error:this.state.error}):this.props.children}};var WA=" ",UA="\x1B[Z",jA="\x1B";function wT({children:e,stdin:t,stdout:n,stderr:r,writeToStdout:o,writeToStderr:s,exitOnCtrlC:a,onExit:c,setCursorPosition:l}){let[u,m]=Np(!0),[p,h]=Np(void 0),[,g]=Np([]),y=hs(0),x=hs(0),w=hs(new BA);w.current.setMaxListeners(1/0);let T=hs(void 0),I=hs(Gu()),A=hs(void 0),$=wt(()=>{A.current&&(clearImmediate(A.current),A.current=void 0)},[]),F=t.isTTY,D=wt(()=>{T.current&&(t.removeListener("readable",T.current),T.current=void 0)},[t]),v=wt(()=>{t.setRawMode(!1),D(),t.unref(),x.current=0,I.current.reset(),$()},[t,D,$]),z=wt(ee=>{F&&x.current>0&&v(),c(ee)},[F,v,c]),fe=wt(ee=>{if(ee===""&&a){z();return}ee===jA&&h(_=>_&&void 0)},[a,z]),se=wt(ee=>{fe(ee),w.current.emit("input",ee)},[fe]),ge=wt(()=>{$(),A.current=setImmediate(()=>{A.current=void 0;let ee=I.current.flushPendingEscape();ee&&se(ee)})},[$,se]),L=wt(()=>{$();let ee;for(;(ee=t.read())!==null;){let _=I.current.push(ee);for(let O of _)se(O)}I.current.hasPendingEscape()&&ge()},[t,se,$,ge]),k=wt(ee=>{if(!F)throw t===HA.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"),ee){x.current===0&&(t.ref(),t.setRawMode(!0),T.current=L,t.addListener("readable",L)),x.current++;return}x.current!==0&&--x.current===0&&v()},[F,t,L,v]),P=wt((ee,_)=>{let O=ee.findIndex(j=>j.id===_);for(let j=O+1;j<ee.length;j++){let te=ee[j];if(te?.isActive)return te.id}},[]),Re=wt((ee,_)=>{let O=ee.findIndex(j=>j.id===_);for(let j=O-1;j>=0;j--){let te=ee[j];if(te?.isActive)return te.id}},[]),_e=wt(()=>{g(ee=>(h(_=>{let O=ee.find(te=>te.isActive)?.id;return P(ee,_)??O}),ee))},[P]),Y=wt(()=>{g(ee=>(h(_=>{let O=ee.findLast(te=>te.isActive)?.id;return Re(ee,_)??O}),ee))},[Re]);xT(()=>{let ee=i(O=>{!u||y.current===0||(O===WA&&_e(),O===UA&&Y())},"handleTabNavigation");w.current.on("input",ee);let _=w.current;return()=>{_.off("input",ee)}},[u,_e,Y]);let V=wt(()=>{m(!0)},[]),ae=wt(()=>{m(!1)},[]),Q=wt(ee=>{g(_=>(_.some(j=>j?.id===ee)&&h(ee),_))},[]),J=wt((ee,{autoFocus:_})=>{g(O=>(y.current=O.length+1,[...O,{id:ee,isActive:!0}])),_&&h(O=>O??ee)},[]),q=wt(ee=>{h(_=>_===ee?void 0:_),g(_=>{let O=_.filter(j=>j.id!==ee);return y.current=O.length,O})},[]),Ie=wt(ee=>{g(_=>_.map(O=>O.id!==ee?O:{id:ee,isActive:!0}))},[]),ue=wt(ee=>{h(_=>_===ee?void 0:_),g(_=>_.map(O=>O.id!==ee?O:{id:ee,isActive:!1}))},[]);xT(()=>()=>{FA.show(n),F&&x.current>0&&v()},[n,F,v]);let et=gs(()=>({exit:z}),[z]),Ue=gs(()=>({stdin:t,setRawMode:k,isRawModeSupported:F,internal_exitOnCtrlC:a,internal_eventEmitter:w.current}),[t,k,F,a]),De=gs(()=>({stdout:n,write:o}),[n,o]),me=gs(()=>({stderr:r,write:s}),[r,s]),Pt=gs(()=>({setCursorPosition:l}),[l]),Rt=gs(()=>({activeId:p,add:J,remove:q,activate:Ie,deactivate:ue,enableFocus:V,disableFocus:ae,focusNext:_e,focusPrevious:Y,focus:Q}),[p,J,q,Ie,ue,V,ae,_e,Y,Q]);return Xo.createElement(oT.Provider,{value:et},Xo.createElement(sT.Provider,{value:Ue},Xo.createElement(cT.Provider,{value:De},Xo.createElement(uT.Provider,{value:me},Xo.createElement(fT.Provider,{value:Rt},Xo.createElement(pT.Provider,{value:Pt},Xo.createElement(nc,{onError:z},e)))))))}i(wT,"App");wT.displayName="InternalApp";var ST=wT;var GA={disambiguateEscapeCodes:1,reportEventTypes:2,reportAlternateKeys:4,reportAllKeysAsEscapeCodes:8,reportAssociatedText:16};function TT(e){let t=0;for(let n of e)t|=GA[n];return t}i(TT,"resolveFlags");var Or={shift:1,alt:2,ctrl:4,super:8,hyper:16,meta:32,capsLock:64,numLock:128};var Bp=i((e,t)=>(t<0?rn.cursorUp(-t):t>0?rn.cursorDown(t):"")+(e<0?rn.cursorBackward(-e):e>0?rn.cursorForward(e):""),"cursorMoveSeq"),Hp=i((e,t=!1)=>{let n=Math.max(0,e.screen.height-e.viewport.height),r=t?Math.max(0,Math.min(e.viewport.height-1,e.screen.height-1)):Math.max(0,e.viewport.height-1);return o=>({x:o.x,y:Math.min(Math.max(o.y-n,0),r)})},"toVisibleCursor"),Vu=i(()=>{},"noop"),e_=27,t_=91,n_=63,r_=117,o_=48,i_=57,s_=i(e=>e>=o_&&e<=i_,"isDigitByte"),bT=i((e,t)=>{if(e[t]!==e_||e[t+1]!==t_||e[t+2]!==n_)return;let n=t+3,r=n;for(;n<e.length&&s_(e[n]);)n++;if(n!==r){if(n===e.length)return{state:"partial"};if(e[n]===r_)return{state:"complete",endIndex:n}}},"matchKittyQueryResponse"),a_=i(e=>{for(let t=0;t<e.length;t++)if(bT(e,t)?.state==="complete")return!0;return!1},"hasCompleteKittyQueryResponse"),c_=i(e=>{let t=[],n=0;for(;n<e.length;){let r=bT(e,n);if(r?.state==="complete"){n=r.endIndex+1;continue}if(r?.state==="partial")break;t.push(e[n]),n++}return t},"stripKittyQueryResponsesAndTrailingPartial"),Fp=i(e=>e instanceof Error||Object.prototype.toString.call(e)==="[object Error]","isErrorInput"),l_=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){VA(this),this.options=t,this.rootNode=Eu("ink-root"),this.rootNode.onComputeLayout=this.calculateLayout,this.isScreenReaderEnabled=t.isScreenReaderEnabled??Yo.env.INK_SCREEN_READER==="true";let n=t.debug||this.isScreenReaderEnabled,r=t.maxFps??30,o=r>0?Math.max(1,Math.ceil(1e3/r)):0;if(n)this.rootNode.onRender=this.onRender,this.throttledOnRender=void 0;else{let a=KA(this.onRender,o,{leading:!0,trailing:!0});this.rootNode.onRender=()=>{this.hasPendingThrottledRender=!0,a()},this.throttledOnRender=a}this.rootNode.onImmediateRender=this.onRender,this.cellLogUpdate=new Uu({isTTY:!!t.stdout.isTTY}),this.prevFrame=tc(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?qA:YA;this.container=Ar.createContainer(this.rootNode,s,null,!1,null,"id",()=>{},()=>{},()=>{},()=>{}),this.unsubscribeExit=zA(this.unmount,{alwaysLast:!1}),ku()&&Ar.injectIntoDevTools(),t.patchConsole&&this.patchConsole(),ro||(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:ZA()?.columns??80,"getTerminalWidth");resized=i(()=>{let t=this.getTerminalWidth();if(t<this.lastTerminalWidth){this.returnCursorToRest();let n=this.altScreenActive?this.lastOutputHeight>0?rn.eraseLines(this.lastOutputHeight):"":this.eraseInlineLiveBlock();n.length>0&&this.options.stdout.write(n),this.lastOutput="",this.lastOutputToRender="",this.cellLogUpdate.reset(),this.prevFrame=tc(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(Fp(t)){this.unmount(t);return}this.exitResult=t,this.unmount()}},"handleAppExit");setCursorPosition=i(t=>{if(t===void 0){this.cursorPosition=void 0;return}let n=this.getTerminalWidth(),r=this.options.stdout.rows??24;if(n<=0||r<=0){this.cursorPosition=void 0;return}let o=Math.max(0,Math.min(t.x|0,n-1)),s=Math.max(0,Math.min(t.y|0,r-1));this.cursorPosition={x:o,y:s}},"setCursorPosition");resetOutputTracking=i(()=>{this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.cursorPosition=void 0,this.invalidateCellFrame()},"resetOutputTracking");usesVirtualShellOwnership=i((t={})=>t.altScreenActive??this.altScreenActive,"usesVirtualShellOwnership");beginShellTransition(t){this.shellTransitionPhase=t}setShellMode(t,n){let r=this.shellMode,o=this.mouseTrackingActive,s=this.usesVirtualShellOwnership(),a=n??!1;this.shellMode=t,this.mouseTrackingActive=a;let c=this.usesVirtualShellOwnership();(r!==t&&(s||c)||o!==a&&c)&&this.resetOutputTracking()}setAltScreenActive(t,n){let r=this.altScreenActive,o=this.mouseTrackingActive,s=this.usesVirtualShellOwnership(),a=n??!1;this.altScreenActive=t,this.mouseTrackingActive=a,this.shellTransitionPhase=void 0;let c=this.usesVirtualShellOwnership();(r!==t||o!==a&&(s||c))&&this.resetOutputTracking()}clearTextSelection(){}restoreLastOutput=i(()=>{if(this.prevFrame.screen.height===0)return;let t=tc(this.options.stdout.rows??24,this.getTerminalWidth()),n=this.cellLogUpdate.render(t,this.prevFrame);ju(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,JA.DIRECTION_LTR)},"calculateLayout");onRender=i(()=>{if(this.hasPendingThrottledRender=!1,this.isUnmounted)return;let t=performance.now(),n={rows:this.options.stdout.rows??24,columns:this.getTerminalWidth()},{output:r,outputHeight:o,staticOutput:s,frame:a}=Ap(this.rootNode,this.isScreenReaderEnabled,n);this.options.onRender?.({renderTime:performance.now()-t}),!ro&&!this.options.debug&&!this.isScreenReaderEnabled&&!this.cursorHidden&&(this.options.stdout.write(rn.cursorHide),this.cursorHidden=!0);let c=s&&s!==`
28
+ `;if(this.options.debug){c&&(this.fullStaticOutput+=s),this.options.stdout.write(this.fullStaticOutput+r);return}if(ro){c&&this.options.stdout.write(s),this.lastOutput=r,this.lastOutputToRender=r+`
29
+ `,this.lastOutputHeight=o;return}if(this.isScreenReaderEnabled){let w=$r(this.options.stdout);if(w&&this.options.stdout.write(Pr),c){let A=this.lastOutputHeight>0?rn.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(A+s),this.lastOutputHeight=0}if(r===this.lastOutput&&!c){w&&this.options.stdout.write(ar);return}let T=this.getTerminalWidth(),I=QA(r,T,{trim:!1,hard:!0});if(c)this.options.stdout.write(I);else{let A=this.lastOutputHeight>0?rn.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(A+I)}this.lastOutput=r,this.lastOutputToRender=I,this.lastOutputHeight=I===""?0:I.split(`
30
+ `).length,w&&this.options.stdout.write(ar);return}c&&(this.fullStaticOutput+=s);let u=!this.altScreenActive&&!!(a&&a.inputCursor)?[]:null,m=i(w=>{w&&(u?u.push(w):this.options.stdout.write(w))},"emit"),p=u?{write:m}:null;m(this.computeReturnToRestSeq());let h=this.altScreenActive,y=this.options.stdout.isTTY&&o>=this.options.stdout.rows&&h?r:r+`
31
+ `;if(this.lastOutputHeight>=this.options.stdout.rows&&h){if(Yo.env.KODAX_FULLSCREEN_CELLDIFF!=="0"&&this.altScreenActive&&this.fullStaticOutput===""){let I=$r(this.options.stdout);I&&this.options.stdout.write(Pr),this.applyCellFrame(a),I&&this.options.stdout.write(ar),this.lastOutput=r,this.lastOutputToRender=y,this.lastOutputHeight=o;return}let w=$r(this.options.stdout);w&&this.options.stdout.write(Pr);let T=this.fullStaticOutput+y;if(this.altScreenActive){let I=this.lastOutputHeight>0?rn.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(I+T)}else this.options.stdout.write(rn.clearTerminal+this.fullStaticOutput+r);this.lastOutput=r,this.lastOutputToRender=this.altScreenActive?T:y,this.lastOutputHeight=o,this.invalidateCellFrame(),w&&this.options.stdout.write(ar);return}let x=!u&&$r(this.options.stdout);try{if(c?(x&&m(Pr),m(this.eraseInlineLiveBlock()+s),this.invalidateCellFrame(),this.applyCellFrame(a,p),x&&m(ar)):!this.altScreenActive&&this.prevFrame&&this.prevFrame.screen.height!==a.screen.height&&this.lastOutputHeight>0&&o<=this.options.stdout.rows&&this.lastOutputHeight<this.options.stdout.rows?(x&&m(Pr),m(this.eraseInlineLiveBlock()),this.invalidateCellFrame(),this.applyCellFrame(a,p),x&&m(ar)):this.applyCellFrame(a,p),a?.inputCursor){let w=Hp(a,!this.altScreenActive),T=w(a.cursor),I=w(a.inputCursor),A=Bp(I.x-T.x,I.y-T.y);m(A),this.displayCursor=I}}finally{u&&this.flushCursorTxn(u)}this.lastOutput=r,this.lastOutputToRender=y,this.lastOutputHeight=o},"onRender");applyCellFrame=i((t,n=null)=>{let r={cellLogUpdate:this.cellLogUpdate,prevFrame:this.prevFrame,stdout:n??this.options.stdout},o=$r(this.options.stdout),s={altScreen:this.altScreenActive,decstbmSafe:o,synchronized:n?!1:o,inlineBottomAnchored:!this.altScreenActive},a=ZS(r,t,s);return this.prevFrame=r.prevFrame,a},"applyCellFrame");invalidateCellFrame=i(()=>{this.cellLogUpdate.reset(),this.prevFrame=tc(this.options.stdout.rows??24,this.getTerminalWidth())},"invalidateCellFrame");eraseInlineLiveBlock=i(()=>this.lastOutputHeight>0?rn.eraseLines(this.lastOutputHeight):"","eraseInlineLiveBlock");commitInlineScrollback=i(({mode:t,text:n})=>{if(this.altScreenActive||this.isUnmounted)return;let r=[],o=i(c=>{c&&r.push(c)},"emit"),s={write:o};o(this.computeReturnToRestSeq());let a=t==="rebuild"?"\x1B[2J\x1B[3J\x1B[H":this.eraseInlineLiveBlock();o(a+(n??"")),this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.fullStaticOutput="",this.invalidateCellFrame();try{this.calculateLayout();let c={rows:this.options.stdout.rows??24,columns:this.getTerminalWidth()},{output:l,outputHeight:u,frame:m}=Ap(this.rootNode,this.isScreenReaderEnabled,c);if(this.applyCellFrame(m,s),m?.inputCursor){let p=Hp(m,!this.altScreenActive),h=p(m.cursor),g=p(m.inputCursor),y=Bp(g.x-h.x,g.y-h.y);o(y),this.displayCursor=g}this.lastOutput=l,this.lastOutputToRender=l,this.lastOutputHeight=u}finally{this.flushCursorTxn(r)}},"commitInlineScrollback");flushCursorTxn(t){let n=t.join("");if(!n)return;let r=$r(this.options.stdout);this.options.stdout.write(r?Pr+n+ar:n)}render(t){let n=CT.createElement(as.Provider,{value:{isScreenReaderEnabled:this.isScreenReaderEnabled}},CT.createElement(ST,{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?Ar.updateContainer(n,this.container,null,Vu):(Ar.updateContainerSync(n,this.container,null,Vu),Ar.flushSyncWork())}computeReturnToRestSeq(){if(this.displayCursor&&this.prevFrame){let t=Hp(this.prevFrame,!this.altScreenActive)(this.prevFrame.cursor),n=Bp(t.x-this.displayCursor.x,t.y-this.displayCursor.y);return this.displayCursor=null,n}return""}returnCursorToRest(){let t=this.computeReturnToRestSeq();t&&this.options.stdout.write(t)}writeToStdout(t){if(this.isUnmounted)return;if(this.options.debug){this.options.stdout.write(t+this.fullStaticOutput+this.lastOutput);return}if(ro){this.options.stdout.write(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.options.stdout.write(t),this.invalidateCellFrame();return}let n=$r(this.options.stdout);n&&this.options.stdout.write(Pr),this.returnCursorToRest();let r=this.lastOutputHeight>0?rn.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(r+t),this.restoreLastOutput(),n&&this.options.stdout.write(ar)}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(ro){this.options.stderr.write(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.options.stderr.write(t),this.invalidateCellFrame();return}let n=$r(this.options.stdout);n&&this.options.stdout.write(Pr),this.returnCursorToRest();let r=this.lastOutputHeight>0?rn.eraseLines(this.lastOutputHeight):"";r.length>0&&this.options.stdout.write(r),this.options.stderr.write(t),this.restoreLastOutput(),n&&this.options.stdout.write(ar)}unmount(t){if(this.isUnmounted||this.isUnmounting)return;this.isUnmounting=!0,this.beforeExitHandler&&(Yo.off("beforeExit",this.beforeExitHandler),this.beforeExitHandler=void 0);let n=this.options.stdout,r=!n.destroyed&&!n.writableEnded&&(n.writable??!0);if(i(u=>{typeof u.flush=="function"&&(r?u.flush():typeof u.cancel=="function"&&u.cancel())},"settleThrottle")(this.throttledOnRender??{}),r&&(!this.throttledOnRender||!this.hasPendingThrottledRender&&this.fullStaticOutput==="")&&(this.calculateLayout(),this.onRender()),this.isUnmounted=!0,this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),this.cancelKittyDetection&&this.cancelKittyDetection(),r){if(this.kittyProtocolEnabled)try{this.options.stdout.write("\x1B[<u")}catch{}ro&&this.options.stdout.write(this.lastOutput+`
32
+ `)}this.kittyProtocolEnabled=!1,this.shellTransitionPhase=void 0,this.options.concurrent?Ar.updateContainer(null,this.container,null,Vu):(Ar.updateContainerSync(null,this.container,null,Vu),Ar.flushSyncWork()),eT.delete(this.options.stdout);let{exitResult:s}=this,a=i(()=>{Fp(t)?this.rejectExitPromise(t):this.resolveExitPromise(s)},"resolveOrReject"),c=t!==void 0&&!Fp(t),l=n._writableState!==void 0||n.writableLength!==void 0;c?a():r&&l?this.options.stdout.write("",a):setImmediate(a)}async waitUntilExit(){return this.exitPromise||=new Promise((t,n)=>{this.resolveExitPromise=t,this.rejectExitPromise=n}),this.beforeExitHandler||(this.beforeExitHandler=()=>{this.unmount()},Yo.once("beforeExit",this.beforeExitHandler)),this.exitPromise}clear(){if(!ro&&!this.options.debug){this.returnCursorToRest();let t=this.altScreenActive?this.lastOutputHeight>0?rn.eraseLines(this.lastOutputHeight):"":this.eraseInlineLiveBlock();t.length>0&&this.options.stdout.write(t),this.invalidateCellFrame()}}patchConsole(){this.options.debug||(this.restoreConsole=XA((t,n)=>{t==="stdout"&&this.writeToStdout(n),t==="stderr"&&(n.startsWith("The above error occurred")||this.writeToStderr(n))}))}initKittyKeyboard(){if(!this.options.kittyKeyboard)return;let t=this.options.kittyKeyboard,n=t.mode??"auto";if(n==="disabled"||!this.options.stdin.isTTY||!this.options.stdout.isTTY)return;let r=t.flags??["disambiguateEscapeCodes"];if(n==="enabled"){this.enableKittyProtocol(r);return}let o=Yo.env.TERM??"",s=Yo.env.TERM_PROGRAM??"",a="KITTY_WINDOW_ID"in Yo.env||o==="xterm-kitty"||s==="WezTerm"||s==="ghostty";!ro&&a&&this.confirmKittySupport(r)}confirmKittySupport(t){let{stdin:n,stdout:r}=this.options,o=[],s=i(()=>{this.cancelKittyDetection=void 0,clearTimeout(c),n.removeListener("data",a);let l=c_(o);o=[],l.length>0&&n.unshift(Buffer.from(l))},"cleanup"),a=i(l=>{let u=typeof l=="string"?Buffer.from(l):l;for(let m of u)o.push(m);a_(o)&&(s(),this.isUnmounted||this.enableKittyProtocol(t))},"onData");n.on("data",a);let c=setTimeout(s,200);this.cancelKittyDetection=s,r.write("\x1B[?u")}enableKittyProtocol(t){this.options.stdout.write(`\x1B[>${TT(t)}u`),this.kittyProtocolEnabled=!0}},vT=l_;var rc=class{static{i(this,"KodaXRenderer")}engineInstance;isConcurrent;constructor(t){this.engineInstance=new vT(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");commitInlineScrollback=i(t=>{this.engineInstance.commitInlineScrollback?.(t)},"commitInlineScrollback")};var oo=null;function kT(){if(oo===-1)return null;if(oo!==null)return oo;let e=process.env.KODAX_RENDER_TRACE;if(!e||e==="0"||e==="false")return oo=-1,null;let t=e==="1"||e==="true"?p_(m_(),`kodax-render-trace-${process.pid}.log`):e;try{return oo=d_(t,"a"),IT(oo,`=== KODAX render trace pid=${process.pid} ${new Date().toISOString()} platform=${process.platform} node=${process.version} ===
33
+ `),oo}catch{return oo=-1,null}}i(kT,"resolveTraceFd");function h_(e){let t=kT();if(t!==null)try{IT(t,e)}catch{}}i(h_,"traceLine");var zu=new WeakMap,g_={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},y_={isTTY:!1,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},x_={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function w_(e={}){return e instanceof u_?{stdout:e}:e}i(w_,"getOptions");function S_(e,t,n){let r=zu.get(e);return r?r.isConcurrent!==n&&console.warn(`Warning: render() was called with concurrent: ${n}, but the existing renderer for this stdout uses concurrent: ${r.isConcurrent}. The concurrent option only takes effect on the first render. Call unmount() first if you need to change the rendering mode.`):(r=t(),zu.set(e,r)),r}i(S_,"getInstance");function ys(e){return zu.get(e)}i(ys,"getRendererInstance");function Wp(e,t){let n={stdout:g_,stdin:x_,stderr:y_,debug:!1,exitOnCtrlC:!0,patchConsole:!1,maxFps:30,concurrent:!1,...w_(t)};if(kT()!==null){let s=n.stdout,a=s.write.bind(s),c=0,l=0;s.write=((h,...g)=>(c+=1,l+=typeof h=="string"?Buffer.byteLength(h,"utf8"):h?.length??0,a(h,...g)));let u=0,m=0,p=n.onRender;n.onRender=h=>{let g=f_.now(),y=u===0?0:g-u,x=s,w=x.columns??0,T=x.rows??0;return h_(`frame=${m} renderTime=${h.renderTime.toFixed(2)}ms interval=${y.toFixed(2)}ms writes=${c} bytes=${l} viewport=${w}x${T}
34
+ `),c=0,l=0,u=g,m+=1,p?.(h)}}let o=S_(n.stdout,()=>new rc(n),n.concurrent??!1);return o.render(e),{rerender:o.render,unmount(){o.unmount()},waitUntilExit:o.waitUntilExit,cleanup:i(()=>{zu.delete(n.stdout)},"cleanup"),clear:o.clear}}i(Wp,"render");var RT=An,ET=nn,MT=wp;import{Buffer as C_}from"node:buffer";var b_=/^(?:\x1b)([a-zA-Z0-9])$/,v_=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,_T={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"},LT=[...Object.values(_T),"backspace"],I_=i(e=>["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e),"isShiftKey"),k_=i(e=>["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e),"isCtrlKey"),PT=/^\x1b\[(\d+)(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/,R_=/^\x1b\[(\d+);(\d+):(\d+)([A-Za-z~])$/,E_={A:"up",B:"down",C:"right",D:"left",E:"clear",F:"end",H:"home",P:"f1",Q:"f2",R:"f3",S:"f4"},M_={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"},AT={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"},$T=i(e=>e>=0&&e<=1114111&&!(e>=55296&&e<=57343),"isValidCodepoint"),Up=i(e=>$T(e)?String.fromCodePoint(e):"?","safeFromCodePoint");function OT(e){return e===3?"release":e===2?"repeat":"press"}i(OT,"resolveEventType");function DT(e){return{ctrl:!!(e&Or.ctrl),shift:!!(e&Or.shift),meta:!!(e&Or.meta),option:!!(e&Or.alt),super:!!(e&Or.super),hyper:!!(e&Or.hyper),capsLock:!!(e&Or.capsLock),numLock:!!(e&Or.numLock)}}i(DT,"parseKittyModifiers");function A_(e){let t=PT.exec(e);if(!t)return null;let n=Number.parseInt(t[1],10),r=t[2]?Math.max(0,Number.parseInt(t[2],10)-1):0,o=t[3]?Number.parseInt(t[3],10):1,s=t[4];if(!$T(n))return null;let a;s&&(a=s.split(":").map(u=>Up(Number.parseInt(u,10))).join(""));let c,l;return n===32?(c="space",l=!0):n===13?(c="return",l=!0):AT[n]?(c=AT[n],l=!1):n>=1&&n<=26?(c=String.fromCodePoint(n+96),l=!1):(c=Up(n).toLowerCase(),l=!0),l&&!a&&(a=Up(n)),{name:c,...DT(r),eventType:OT(o),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:l,text:a}}i(A_,"parseKittyKeypress");function __(e){let t=R_.exec(e);if(!t)return null;let n=Number.parseInt(t[1],10),r=Math.max(0,Number.parseInt(t[2],10)-1),o=Number.parseInt(t[3],10),s=t[4],a=s==="~"?M_[n]:E_[s];return a?{name:a,...DT(r),eventType:OT(o),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:!1}:null}i(__,"parseKittySpecialKey");var jp="\x1B[200~",L_="\x1B[201~";function P_(e){if(!e.startsWith(jp))return null;let t=e.indexOf(L_,jp.length);return t===-1?null:e.slice(jp.length,t)}i(P_,"extractBracketedPaste");function Gp(e=""){let t=e,n;if(C_.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=P_(t);if(a!==null)return{name:"paste",ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,isPaste:!0,isPrintable:!1,text:a}}let r=A_(t);if(r)return r;let o=__(t);if(o)return o;if(PT.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=b_.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(n[1]??"");else if(n=v_.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=_T[c]??"",s.shift=I_(c)||s.shift,s.ctrl=k_(c)||s.ctrl}return s}i(Gp,"parseKeypress");var D_=50;function Yu(e){return{columns:e?.columns??80,rows:e?.rows??24}}i(Yu,"resolveTerminalSize");var io=$_(null),Kp={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")};var FT={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function N_(e){for(let t of e)if(t.rawMode)return!0;return!1}i(N_,"hasRawModeSubscribers");function B_({stdin:e,setRawMode:t,isRawModeSupported:n}){let r=new Set,o,s=!1,a=i(m=>{for(let p of r)p.listener(m)},"handleData"),c=i(()=>{if(s){try{t(!1)}catch{}s=!1}},"disableRawModeIfOwned"),l=i(()=>{o?.off?.("data",a),o=void 0,c()},"detachInput"),u=i(()=>{if(o&&o!==e&&l(),!e||r.size===0){l();return}if(o!==e&&(e.on?.("data",a),o=e),!(n&&N_(r))){c();return}if(e.isRaw===!1&&!s)try{t(!0),s=!0}catch{s=!1}},"syncInputOwnership");return{subscribe(m,p={}){let h={listener:m,rawMode:p.rawMode!==!1};return r.add(h),u(),()=>{r.delete(h),u()}},dispose(){r.clear(),l()}}}i(B_,"createTerminalInputController");var H_=i(({children:e,runtime:t})=>{let[n,r]=O_(()=>t.terminalSize);xs(()=>{if(r(Yu(t.stdout)),typeof t.stdout?.on!="function"||typeof t.stdout?.off!="function")return;let c=i(()=>{r(Yu(t.stdout))},"handleResize");return t.stdout.on("resize",c),()=>{t.stdout.off?.("resize",c)}},[t.stdout]);let o=HT(c=>typeof t.stdout?.write!="function"?!1:(t.stdout.write(c),!0),[t.stdout]),s=NT(()=>B_({stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported}),[t.stdin,t.isRawModeSupported,t.setRawMode]);xs(()=>()=>{s.dispose()},[s]);let a=NT(()=>({stdout:t.stdout,stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported,exit:t.exit,terminalSize:n,isTTY:t.stdout?.isTTY===!0,writeRaw:o,subscribeInput:s.subscribe}),[s.subscribe,t.exit,t.isRawModeSupported,t.setRawMode,t.stdin,t.stdout,s.subscribe,n,o]);return BT(io.Provider,{value:a,children:e})},"TuiRuntimeProvider");function F_(e){let t=e?.stdout??Kp,n=e?.stdin??FT,r=i(s=>{typeof n?.setRawMode=="function"&&n.setRawMode(s)},"setRawMode"),o;return{stdout:t,stdin:n,setRawMode:r,isRawModeSupported:typeof n?.setRawMode=="function",exit:i(()=>{o?.()},"exit"),terminalSize:Yu(t),isTTY:t?.isTTY===!0,writeRaw:i(s=>typeof t?.write!="function"?!1:(t.write(s),!0),"writeRaw"),subscribeInput:i(()=>()=>{},"subscribeInput"),attachExit(s){o=s}}}i(F_,"createRuntimeValue");function qu(e,t){let n=F_(t),r=Wp(BT(H_,{runtime:n,children:e}),t);return n.attachExit(r.unmount),r}i(qu,"render");var R=RT,b=ET,ws=MT;function W_(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&&LT.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(W_,"createCompatKeypress");function Ju(e,t={}){let{isActive:n=!0}=t,r=Xu(e),o=Xu(null),s=Xu(null);xs(()=>{r.current=e},[e]),xs(()=>{if(!n){o.current=null,s.current&&(clearTimeout(s.current),s.current=null);return}return o.current=Gu(),()=>{o.current?.reset(),o.current=null,s.current&&(clearTimeout(s.current),s.current=null)}},[n]);let a=HT(c=>{let{input:l,key:u}=W_(Gp(c));l==="c"&&u.ctrl||r.current(l,u)},[]);ic(c=>{if(!n)return;s.current&&(clearTimeout(s.current),s.current=null);let l=o.current,u=typeof c=="string"?c:c.toString("utf8"),m=l?.push(u)??[u];for(let p of m)a(p);u.length>0&&(s.current=setTimeout(()=>{let p=o.current?.flushPendingEscape();p&&a(p)},D_))},{isActive:n,rawMode:!0})}i(Ju,"useInput");function cr(){return{stdout:qo(io)?.stdout??Kp}}i(cr,"useStdout");function oc(){let e=qo(io),t=e?.stdin??FT,n=e?.setRawMode??(r=>{typeof t?.setRawMode=="function"&&t.setRawMode(r)});return{stdin:t,setRawMode:n,isRawModeSupported:e?.isRawModeSupported??typeof t?.setRawMode=="function"}}i(oc,"useStdin");function so(){return{exit:qo(io)?.exit??(()=>{})}}i(so,"useApp");function Ss(){return qo(io)?.stdout??Kp}i(Ss,"useTerminalOutput");function Ts(){let e=Ss();return qo(io)?.terminalSize??Yu(e)}i(Ts,"useTerminalSize");function Cs(){let e=Ss();return qo(io)?.writeRaw??(n=>typeof e?.write!="function"?!1:(e.write(n),!0))}i(Cs,"useTerminalWrite");function ic(e,t={}){let{isActive:n=!0,rawMode:r=!0}=t,o=qo(io),{stdin:s,setRawMode:a,isRawModeSupported:c}=oc(),l=Xu(e);xs(()=>{l.current=e},[e]),xs(()=>{if(!n||!s)return;if(o)return o.subscribeInput(h=>{l.current(h)},{rawMode:r});let u=s,m=u.isRaw;r&&c&&m===!1&&a(!0);let p=i(h=>{l.current(h)},"handleData");return u.on?.("data",p),()=>{if(u.off?.("data",p),r&&c&&m===!1)try{a(!1)}catch{}}},[o,s,n,r,c,a])}i(ic,"useTerminalInput");import{jsx as z_}from"react/jsx-runtime";import{useInsertionEffect as X_,useMemo as Y_}from"react";var U_="\x1B[?1049h",j_="\x1B[?1049l";var G_="\x1B[2J",K_="\x1B[?1000h\x1B[?1002h\x1B[?1006h",V_="\x1B[?1006l\x1B[?1002l\x1B[?1000l";function Qu(e={}){let t=e.mouseTracking!==!1,n=e.clearOnEnter===!0;return U_+(n?G_:"")+"\x1B[H"+(t?K_:"")}i(Qu,"buildAlternateScreenEnterSequence");function Zu(e={}){return(e.mouseTracking!==!1?V_:"")+j_}i(Zu,"buildAlternateScreenExitSequence");var Vp=i(({children:e,mouseTracking:t=!0,enabled:n=!0,clearOnEnter:r=!1})=>{let o=Ss(),{rows:s}=Ts(),a=Cs(),c=Y_(()=>n&&o.isTTY===!0,[n,o]);return X_(()=>{if(!c)return;let l=ys(o);if(l?.setShellMode?.("virtual",t),l?.beginShellTransition?.("enter-alt-screen"),!!a(Qu({mouseTracking:t,clearOnEnter:r})))return l?.setAltScreenActive?.(!0,t),()=>{l?.beginShellTransition?.("exit-alt-screen"),l?.clearTextSelection?.(),l?.setAltScreenActive?.(!1),a(Zu({mouseTracking:t}))}},[r,c,t,o,a]),z_(R,{flexDirection:"column",height:s,width:"100%",flexGrow:1,flexShrink:0,children:e})},"AlternateScreen");import{jsx as ao,jsxs as KT}from"react/jsx-runtime";import{jsx as J_}from"react/jsx-runtime";import Q_,{useEffect as zp,useImperativeHandle as Z_,useMemo as eL,useRef as ed,useCallback as ac,useState as tL}from"react";function q_(e,t,n){return Math.max(t,Math.min(e,n))}i(q_,"clamp");function sc(e){let t=Math.max(0,Math.floor(e.overscan??80)),n=Math.max(1,Math.floor(e.quantum??40)),r=Math.max(0,Math.floor(e.viewportHeight)),o=Math.max(0,Math.floor(e.contentHeight)),s=Math.max(0,o-r),a=q_(Math.floor(e.globalScrollTop),0,s),c=Math.floor(a/n),l=c*n,u=Math.max(0,l-t),m=Math.min(o,l+r+t),p=Math.max(0,m-u),h=a-u;return{blockTop:u,blockHeight:p,inBlockOffset:h,bin:c}}i(sc,"computeOverscanWindow");function WT(e,t,n){let r=sc({...n,globalScrollTop:e}),o=sc({...n,globalScrollTop:t});return r.bin===o.bin}i(WT,"staysWithinOverscanBlock");function UT(e){let t=e??void 0;for(;t?.parentNode;)t=t.parentNode;return t&&typeof t.onRender=="function"?(t.onRender(),!0):!1}i(UT,"scheduleRenderFromNode");function jT(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:td(t,t.scrollTop)}}i(jT,"normalizeScrollSnapshot");function GT(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&&e.overscanRows===t.overscanRows}i(GT,"areSnapshotsEqual");function nL(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&&e.inWindowScrollTop===t.inWindowScrollTop}i(nL,"areWindowsEqual");function td(e,t){let n=Math.max(0,e.scrollHeight-e.viewportHeight),r=e.clampMin??0,o=e.clampMax??n;return Math.max(r,Math.min(Math.floor(t),Math.min(n,o)))}i(td,"clampScrollTop");function Xp(e){let t=Math.max(0,e.viewportHeight),n=td(e,e.scrollTop),r=Math.max(0,e.scrollHeight-n),o=Math.max(0,r-t),s=Math.max(0,Math.floor(e.overscanRows??0));if(s>0&&t>0){let a=sc({globalScrollTop:o,viewportHeight:t,contentHeight:e.scrollHeight,overscan:s});return{start:a.blockTop,end:a.blockTop+a.blockHeight,scrollTop:n,scrollHeight:e.scrollHeight,viewportHeight:t,viewportTop:o,pendingDelta:e.pendingDelta,sticky:e.sticky,inWindowScrollTop:a.inBlockOffset}}return{start:o,end:r,scrollTop:n,scrollHeight:e.scrollHeight,viewportHeight:t,viewportTop:o,pendingDelta:e.pendingDelta,sticky:e.sticky,inWindowScrollTop:0}}i(Xp,"resolveScrollWindow");function rL(e){let t=td(e,e.scrollTop);return Math.max(0,e.scrollHeight-e.viewportHeight-t)}i(rL,"resolveNativeScrollTop");var Yp=i(({children:e,width:t,flexGrow:n=0,flexShrink:r=1,paddingTop:o=0,scrollTop:s=0,scrollHeight:a=0,viewportHeight:c=0,stickyScroll:l=!0,scrollRef:u,onScrollTopChange:m,onStickyChange:p,onWindowChange:h,renderWindow:g,overscanRows:y})=>{let x=ed(null),w=ed(new Set),T=ed(jT({scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,sticky:l,overscanRows:y})),[I,A]=tL(()=>Xp(T.current)),$=ed(null),F=ac(()=>{for(let Y of w.current)Y()},[]),D=ac((Y,V=!0)=>{let ae=T.current,Q=jT(Y),J=Xp(Q);return T.current=Q,A(q=>nL(q,J)?q:J),V&&!GT(ae,Q)&&F(),{previous:ae,snapshot:Q,window:J,changed:!GT(ae,Q)}},[F]),v=ac(Y=>{let V=T.current,ae=Math.max(0,Math.floor(V.overscanRows??0)),Q=x.current;if(ae<=0||!Q||V.viewportHeight<=0)return!1;let J=Math.max(0,V.scrollHeight-V.viewportHeight),q=$.current??td(V,V.scrollTop),Ie=Math.max(0,Math.min(Math.floor(q+Y),J));if(Ie===q)return!0;let ue=Math.max(0,V.scrollHeight-V.viewportHeight-q),et=Math.max(0,V.scrollHeight-V.viewportHeight-Ie),Ue={viewportHeight:V.viewportHeight,contentHeight:V.scrollHeight,overscan:ae};if(!WT(ue,et,Ue))return!1;let De=sc({...Ue,globalScrollTop:et});return Q.scrollTop=et,Q.attributes&&(Q.attributes.inWindowScrollTop=De.inBlockOffset),UT(Q)?($.current=Ie,V.sticky&&(T.current={...T.current,sticky:!1},p?.(!1)),F(),!0):!1},[F,p]),z=ac(Y=>{let V=x.current;V&&T.current.overscanRows&&(V.scrollTop=Y.viewportTop)},[]);zp(()=>{let Y=T.current,V={scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,clampMin:Y.clampMin,clampMax:Y.clampMax,sticky:l,overscanRows:y},ae=D(V);ae.previous.sticky!==l&&p?.(l),ae.window.scrollTop!==s&&m?.(ae.window.scrollTop)},[D,p,m,y,a,s,l,c]);let fe=ac(()=>{let Y=x.current;if(!Y)return;$.current=null;let V=typeof Y.scrollHeight=="number"?Math.max(0,Math.floor(Y.scrollHeight)):void 0,ae=typeof Y.scrollViewportHeight=="number"?Math.max(0,Math.floor(Y.scrollViewportHeight)):void 0,Q=typeof Y.scrollViewportTop=="number"?Math.max(0,Math.floor(Y.scrollViewportTop)):void 0;if(V===void 0||ae===void 0||Q===void 0)return;let J=Math.max(0,V-ae-Q),q=D({...T.current,scrollTop:J,scrollHeight:V,viewportHeight:ae});q.changed&&q.window.scrollTop!==q.previous.scrollTop&&m?.(q.window.scrollTop)},[D,m]);zp(()=>{fe()},[fe]);let se=eL(()=>({scrollTo(Y){$.current=null;let V=D({...T.current,scrollTop:Y,pendingDelta:0,sticky:!1});V.previous.sticky!==!1&&p?.(!1),z(V.window),m?.(V.window.scrollTop)},scrollBy(Y){if(v(Y))return;let V=$.current??T.current.scrollTop;$.current=null;let ae=D({...T.current,scrollTop:V+Y,pendingDelta:T.current.pendingDelta+Math.floor(Y),sticky:!1});ae.previous.sticky!==!1&&p?.(!1),z(ae.window),m?.(ae.window.scrollTop)},scrollToElement(Y,V=0){$.current=null;let ae=D({...T.current,scrollTop:Y-V,pendingDelta:0,sticky:!1});ae.previous.sticky!==!1&&p?.(!1),z(ae.window),m?.(ae.window.scrollTop)},scrollToBottom(){$.current=null;let Y=D({...T.current,scrollTop:0,pendingDelta:0,sticky:!0});z(Y.window),m?.(Y.window.scrollTop),Y.previous.sticky!==!0&&p?.(!0)},getScrollTop(){return $.current??T.current.scrollTop},getPendingDelta(){return T.current.pendingDelta},getScrollHeight(){return x.current?.scrollHeight??T.current.scrollHeight},getViewportHeight(){return x.current?.scrollViewportHeight??I.viewportHeight},getViewportTop(){return x.current?.scrollViewportTop??I.viewportTop},isSticky(){return T.current.sticky},subscribe(Y){return w.current.add(Y),()=>{w.current.delete(Y)}},setClampBounds(Y,V){$.current=null;let ae=D({...T.current,clampMin:Y,clampMax:V});z(ae.window),ae.window.scrollTop!==ae.previous.scrollTop&&m?.(ae.window.scrollTop)}}),[D,m,p,v,z]);Z_(u,()=>se,[se]),zp(()=>{h?.(I)},[h,I]);let ge=$.current!==null,L=ge?{...T.current,scrollTop:$.current}:T.current,k=ge?Xp(L):I,P=g?g(k):e,Re=Math.max(0,c+o),_e=rL(L);return Q_.createElement("ink-box",{ref:x,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:n,flexShrink:r,width:t,height:Re,paddingTop:o,overflowX:"visible",overflowY:"scroll"},scrollTop:_e,scrollHeight:T.current.scrollHeight,scrollViewportHeight:T.current.viewportHeight,scrollViewportTop:k.viewportTop,pendingScrollDelta:T.current.pendingDelta,virtualScrollWindowed:!!g,...T.current.overscanRows?{inWindowScrollTop:k.inWindowScrollTop}:{},...T.current.clampMin!==void 0?{scrollClampMin:T.current.clampMin}:{},...T.current.clampMax!==void 0?{scrollClampMax:T.current.clampMax}:{},...l?{stickyScroll:!0}:{}},J_(R,{flexDirection:"column",flexGrow:1,flexShrink:0,width:"100%",children:P}))},"ScrollBox");var oL=80;function cc(e){if(!(!e?.visible||!e.label))return e.hint?`${e.label}: ${e.hint}`:e.label}i(cc,"resolveFullscreenChromeSlotText");function nd(e,t){if(!e)return 0;let n=Math.max(1,(typeof t=="number"?t:oL)-2);return Math.max(1,tn(e.split(`
36
+ `),n,0,0).visualLines.length)}i(nd,"measureFullscreenChromeSlotRows");var qp=i(({top:e,topRows:t=0,scrollable:n,renderScrollableWindow:r,bottom:o,overlay:s,stickyHeader:a,jumpToLatest:c,width:l,scrollTop:u=0,scrollHeight:m=0,viewportHeight:p=0,stickyScroll:h=!0,scrollRef:g,onScrollTopChange:y,onStickyChange:x,onWindowChange:w,overscanRows:T})=>{let I=i((se,ge)=>ge?ao(R,{paddingX:1,children:ao(b,{dimColor:se?.tone!=="accent",children:ge})}):null,"renderChromeSlot"),A=cc(a),$=cc(c),F=nd(A,l),D=I(a,A),v=s?null:I(c,$),z=Math.max(0,e?t:0),fe=Math.max(0,p-F-z);return KT(R,{flexDirection:"column",width:l,flexGrow:1,flexShrink:0,children:[e?ao(R,{flexDirection:"column",flexShrink:0,children:e}):null,KT(R,{flexDirection:"column",flexGrow:1,overflowY:"hidden",children:[ao(Yp,{width:l,flexGrow:1,flexShrink:1,paddingTop:F,scrollTop:u,scrollHeight:m,viewportHeight:fe,stickyScroll:h,scrollRef:g,onScrollTopChange:y,onStickyChange:x,onWindowChange:w,renderWindow:r,overscanRows:T,children:n}),D?ao(R,{position:"absolute",top:0,left:0,right:0,flexDirection:"column",children:D}):null,v?ao(R,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:v}):null,s?ao(R,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:s}):null]}),ao(R,{flexDirection:"column",flexShrink:0,children:o})]})},"FullscreenLayout");import sL from"string-width";function aL(){return Ts().columns}i(aL,"useTerminalWidth");var Jp=i(({lines:e,cursorRow:t,cursorCol:n,prompt:r=">",placeholder:o="Type your message...",focus:s=!0,terminalFocused:a=!0,isPasting:c=!1,editingMode:l="idle",theme:u="dark",width:m})=>{let p=rd(()=>re(u),[u]),h=aL(),g=m??h,y=sL(r)+1,x=rd(()=>{let F=Math.max(20,g-y);return tn(e,F,t,n)},[e,g,t,n,y]),w=rd(()=>{if(!x)return null;let[F,D]=gp(x,[t,n]);return{row:F,col:D}},[x,t,n]),T=s&&a,I=c&&e.some(F=>F.length>0),A=x,$=w;return _n(R,{flexDirection:"column",borderStyle:"round",borderColor:p.colors.dim,borderTop:!0,borderBottom:!0,borderLeft:!1,borderRight:!1,width:m??"100%",children:[I?on(R,{children:on(b,{dimColor:!0,children:l==="pasting"?"Pasting input...":"Editing input..."})}):null,A.visualLines.length===0||A.visualLines.length===1&&A.visualLines[0]===""?_n(R,{children:[_n(b,{color:p.colors.primary,children:[r," "]}),T?_n(iL,{children:[on(b,{internal_cursorAnchor:!0,backgroundColor:p.colors.primary,color:"#000000",children:" "}),on(b,{dimColor:!0,children:o})]}):on(b,{dimColor:!0,children:o})]}):A.visualLines.map((F,D)=>{let v=D===$.row,z=D===0?r:" ".repeat(y-1);if(v&&T){let{before:fe,current:se,after:ge}=sS(F,$.col),L=se||" ";return _n(R,{children:[_n(b,{color:p.colors.primary,children:[z," "]}),on(b,{color:p.colors.text,children:fe}),on(b,{internal_cursorAnchor:!0,backgroundColor:p.colors.primary,color:"#000000",children:L}),on(b,{color:p.colors.text,children:ge})]},D)}return _n(R,{children:[_n(b,{color:p.colors.dim,children:[z," "]}),on(b,{color:p.colors.text,children:F})]},D)})]})},"TextInput"),cL=i(({value:e,cursorCol:t,prompt:n=">",placeholder:r,focus:o=!0,theme:s="dark"})=>{let a=rd(()=>re(s),[s]);if(!e)return _n(R,{children:[_n(b,{color:a.colors.primary,children:[n," "]}),r&&on(b,{dimColor:!0,children:r}),o&&on(b,{backgroundColor:a.colors.primary,color:"#000000",children:" "})]});let c=en(e),l=c.slice(0,t).join(""),u=c[t]??" ",m=c.slice(t+1).join("");return _n(R,{children:[_n(b,{color:a.colors.primary,children:[n," "]}),on(b,{color:a.colors.text,children:l}),on(b,{backgroundColor:a.colors.primary,color:"#000000",children:u}),on(b,{color:a.colors.text,children:m})]})},"SingleLineTextInput");var Qp={"[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"}},lL=/^\x1b\[([0-9]+);?([0-9]+)?([~A-Za-z])?/,uL=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/;function dL(e){switch(e&3){case 0:return"left";case 1:return"middle";case 2:return"right";default:return"unknown"}}i(dL,"parseMouseButton");function fL(e){return{shift:(e&1)!==0,alt:(e&2)!==0,ctrl:(e&4)!==0,meta:(e&8)!==0}}i(fL,"parseModifier");function od(e,t=!1){let n={name:"",sequence:e,ctrl:!1,meta:!1,shift:!1,insertable:!1,isPasted:!1};if(!e||e.length===0)return n;let r=e.match(uL);if(r){let[,o,s,a,c]=r,l=Number(o),u=Number(s),m=Number(a),p=l&28;return n.shift=(p&4)!==0,n.meta=(p&8)!==0,n.ctrl=(p&16)!==0,l===64?(n.name="wheelup",n.mouse={action:"wheel",button:"wheelup",row:m,column:u},n):l===65?(n.name="wheeldown",n.mouse={action:"wheel",button:"wheeldown",row:m,column:u},n):(n.name="mouse",n.mouse={action:c==="m"?"release":(l&32)!==0?"drag":"press",button:dL(l),row:m,column:u},n)}if(e===`\r
37
+ `)return n.name="newline",n;if(e==="\r")return n.name=t?"newline":"return",n;if(e===`
38
+ `)return n.name="newline",n;if(e===" ")return n.name="tab",n;if(e==="\b"||e==="\x7F")return n.name="backspace",n;if(e==="\x1B\b"||e==="\x1B\x7F")return n.name="backspace",n.meta=!0,n;if(e==="\x1B\r"||e===`\x1B
39
+ `)return n.name=e==="\x1B\r"?"return":"enter",n.shift=!0,n;if(e==="\x1B"||e==="\x1B\x1B")return n.name="escape",n.meta=e.length===2,n;if(e===" "||e==="\x1B ")return n.name="space",n.meta=e.length===2,n.insertable=!n.meta,n;if(e.length===1&&e.charCodeAt(0)<=26)return n.name=String.fromCharCode(e.charCodeAt(0)+96),n.ctrl=!0,n;if(e.length===1&&e>="0"&&e<="9"||e.length===1&&e>="a"&&e<="z")return n.name=e,n.insertable=!0,n;if(e.length===1&&e>="A"&&e<="Z")return n.name=e.toLowerCase(),n.shift=!0,n.insertable=!0,n;if(e.length===1&&e.charCodeAt(0)>=32)return n.name=e,n.insertable=!0,n;if(e.startsWith("\x1B")){let o=e.slice(1);if(o.length===1)return n.meta=!0,o>="a"&&o<="z"?(n.name=o,n.insertable=!0):o>="A"&&o<="Z"?(n.name=o.toLowerCase(),n.shift=!0,n.insertable=!0):o.charCodeAt(0)>=32&&(n.name=o,n.insertable=!0),n;let s=e.match(lL);if(s){let[,l,u,m]=s,p=m||"~",g=Qp[o];if(g)return Object.assign(n,g),n;let y="["+l+p+"]",x=Qp[y];if(x&&x.name){if(n.name=x.name,u){let w=parseInt(u,10)-1,T=fL(w);Object.assign(n,T)}return n}}let c=Qp[o];if(c)return Object.assign(n,c),n;if(e.startsWith("\x1B\x1B")){n.meta=!0;let l="\x1B"+e.slice(2),u=od(l);return n.name=u.name,n}}return n}i(od,"parseKeypress");var lc=class{static{i(this,"KeypressParser")}buffer="";listeners=[];flushing=!1;inBracketedPaste=!1;pasteAccumulator="";onKeypress(t){return this.listeners.push(t),()=>{let n=this.listeners.indexOf(t);n>=0&&this.listeners.splice(n,1)}}feed(t,n=!1){let r=typeof t=="string"?t:t.toString("utf8");this.buffer+=r,this.flushing=n,this.processBuffer()}processBuffer(){for(;this.buffer.length>0;){let t=this.extractNextSequence();if(!t){if(this.flushing&&this.buffer.length>0){let s=this.buffer;this.buffer="";let a=od(s,this.inBracketedPaste);this.emit(a)}break}let{sequence:n,remaining:r}=t;this.buffer=r;let o=od(n,this.inBracketedPaste);if(o.name==="paste_start"){this.inBracketedPaste=!0,this.pasteAccumulator="";continue}if(o.name==="paste_end"){this.inBracketedPaste=!1,this.flushPasteAccumulator();continue}this.emit(o)}}flushPasteAccumulator(){if(this.pasteAccumulator.length===0)return;let t={name:"paste",sequence:this.pasteAccumulator,ctrl:!1,meta:!1,shift:!1,insertable:!0,isPasted:!0};this.pasteAccumulator="";for(let n of this.listeners)n(t)}extractNextSequence(){if(this.buffer.length===0)return null;let t=this.buffer[0];if(t!=="\x1B")return t==="\r"&&this.buffer.length>=2&&this.buffer[1]===`
40
+ `?{sequence:this.buffer.slice(0,2),remaining:this.buffer.slice(2)}:{sequence:this.buffer[0],remaining:this.buffer.slice(1)};if(this.buffer.length===1)return this.flushing?{sequence:this.buffer,remaining:""}:null;let n=this.buffer[1];if(n!=="["&&n!=="O")return{sequence:this.buffer.slice(0,2),remaining:this.buffer.slice(2)};if(this.buffer.startsWith("\x1B[<")){let a=3;for(;a<this.buffer.length;){let c=this.buffer[a];if(!c)break;if(c>="0"&&c<="9"||c===";"||c==="<"){a++;continue}if(c==="M"||c==="m")return a++,{sequence:this.buffer.slice(0,a),remaining:this.buffer.slice(a)};break}return this.flushing?{sequence:this.buffer,remaining:""}:null}let r=2;for(;r<this.buffer.length;){let a=this.buffer[r];if(!a)break;if(a>="0"&&a<="9"||a===";"){r++;continue}if(a>="A"&&a<="Z"||a>="a"&&a<="z"||a==="~"){r++;break}break}let o=this.buffer[r-1];return o&&(o>="A"&&o<="Z"||o>="a"&&o<="z"||o==="~")?{sequence:this.buffer.slice(0,r),remaining:this.buffer.slice(r)}:this.flushing?{sequence:this.buffer.slice(0,r),remaining:this.buffer.slice(r)}:null}emit(t){if(this.inBracketedPaste){if(t.isPasted=!0,t.insertable){this.pasteAccumulator+=t.sequence;return}if(t.name==="newline"){this.pasteAccumulator+=`
41
+ `;return}return}for(let n of this.listeners)n(t)}clear(){this.buffer=""}};function VT(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(VT,"isFunctionKey");function mL(e){return e.ctrl||e.meta||VT(e)?!1:e.sequence.length===1&&e.sequence.charCodeAt(0)>=32}i(mL,"isPrintable");function pL(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(pL,"getKeyDisplayName");var gn;(function(e){e.Idle="idle",e.Responding="responding",e.WaitingForConfirmation="waiting_for_confirmation"})(gn||(gn={}));var N;(function(e){e.Scheduled="scheduled",e.Validating="validating",e.AwaitingApproval="awaiting_approval",e.Executing="executing",e.Success="success",e.Error="error",e.Cancelled="cancelled"})(N||(N={}));var IK={[N.Scheduled]:"\u25CB",[N.Validating]:"\u25CC",[N.AwaitingApproval]:"?",[N.Executing]:"\u25CB",[N.Success]:"\u2713",[N.Error]:"\u2717",[N.Cancelled]:"-"},zt;(function(e){e[e.Low=-100]="Low",e[e.Normal=0]="Normal",e[e.High=100]="High",e[e.Critical=200]="Critical"})(zt||(zt={}));var Zp={streamingState:gn.Idle,currentResponse:"",history:[],pendingToolCalls:[],sessionId:"",provider:"",model:"",isLoading:!1};import hL,{createContext as gL,useContext as yL,useEffect as zT,useCallback as xL,useRef as eh}from"react";var wL=50;function th(){let e=new Map,t=null,n=i(()=>(t===null&&(t=[...e.keys()].sort((r,o)=>o-r)),t),"getSortedPriorities");return{register(r,o){return e.has(r)||e.set(r,[]),e.get(r).push(o),t=null,()=>{let s=e.get(r);if(!s)return;let a=s.indexOf(o);a>=0&&s.splice(a,1),s.length===0&&e.delete(r),t=null}},dispatch(r){let o=n();for(let s of o){let a=e.get(s);if(a)for(let c=a.length-1;c>=0;c-=1){let l=a[c];if(l&&l(r)===!0)return!0}}return!1},size(){let r=0;for(let o of e.values())r+=o.length;return r}}}i(th,"createKeypressManager");var XT=gL(null);function id({children:e,enabled:t=!0}){let{stdout:n}=cr(),r=eh(th()),o=eh(null),s=eh(null),a=xL(c=>{t&&r.current.dispatch(c)},[t]);return zT(()=>{if(!t)return;n?.write?.("\x1B[?2004h");let c=new lc;o.current=c;let l=c.onKeypress(a);return()=>{s.current&&(clearTimeout(s.current),s.current=null),l(),o.current=null;try{n?.write?.("\x1B[?2004l")}catch{}}},[a,t,n]),ic(c=>{t&&(s.current&&clearTimeout(s.current),o.current?.feed(c),c.length!==0&&(s.current=setTimeout(()=>{o.current?.feed("",!0)},wL)))},{isActive:t,rawMode:!0}),hL.createElement(XT.Provider,{value:r.current},e)}i(id,"KeypressProvider");function nh(){let e=yL(XT);if(!e)throw new Error("useKeypressManager must be used within a KeypressProvider");return e}i(nh,"useKeypressManager");function yn(e,t,n=[]){let r=nh(),o=typeof e=="function",s,a,c;if(o){s=e;let l=t??{};c=l.isActive??!0;let u=l.priority;a=typeof u=="boolean"?u?zt.High:zt.Normal:u??zt.Normal}else a=typeof e=="boolean"?e?zt.High:zt.Normal:e,s=t,c=!0;zT(()=>c?r.register(a,s):void 0,[r,a,c,...o?[]:n])}i(yn,"useKeypress");function Ln(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(Ln,"createKeyMatcher");var YT={isEnter:Ln({name:"return"}),isEscape:Ln({name:"escape"}),isCtrlC:Ln({name:"c",ctrl:!0}),isCtrlD:Ln({name:"d",ctrl:!0}),isUp:Ln({name:"up"}),isDown:Ln({name:"down"}),isLeft:Ln({name:"left"}),isRight:Ln({name:"right"}),isBackspace:Ln({name:"backspace"}),isDelete:Ln({name:"delete"}),isTab:Ln({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 uc=["plan","accept-edits","auto","auto-in-project"];function sn(e){return e==="auto"||e==="auto-in-project"}i(sn,"isAutoMode");function bs(e){switch(e){case"plan":return"Plan";case"accept-edits":return"Edits";case"auto":case"auto-in-project":return"Auto"}}i(bs,"permissionModeDisplayName");var SL='[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 sd(e=console.warn){let t=!1;return()=>{t||(t=!0,e(SL))}}i(sd,"createAutoInProjectDeprecationEmitter");var qT=Nw(),Pn=new Set(qT.filter(e=>e.sideEffect==="mutates-fs"&&e.requiredParams.includes("path")).map(e=>e.name)),JT=new Set(qT.filter(e=>e.sideEffect!=="readonly").map(e=>e.name)),QT=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"]),ZT=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 Jo(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(Jo,"computeConfirmTools");function rh(e){return e!==void 0&&uc.includes(e)}i(rh,"isPermissionMode");function lr(e,t){return rh(e)?e:t}i(lr,"normalizePermissionMode");import ad from"fs";import vt from"path";import fc from"os";var fC=WE(lC(),1);var uC=new Set(["/dev/null","nul","NUL"]);function ah(e){return uC.has(e)||uC.has(e.toLowerCase())}i(ah,"isNullDevice");function dc(e){let t=e.trim();if(!t)return{statements:[],unparseable:!1};if(t.includes("`"))return{statements:[],unparseable:!0};let n;try{n=(0,fC.parse)(t)}catch{return{statements:[],unparseable:!0}}let r=[],o=[],s=[],a=[],c=null,l=!1,u=i(()=>{(s.length>0||a.length>0)&&(o.push({argv:s,redirections:a}),s=[],a=[])},"flushStage"),m=i(p=>{u(),o.length>0&&(r.push({precedingOp:c,stages:o}),o=[]),c=p},"flushStatement");for(let p=0;p<n.length;p+=1){let h=n[p];if(typeof h=="string"){s.push(h);continue}if("op"in h){let g=h.op;if(g==="&&"||g==="||"||g===";"){m(g);continue}if(g==="|"){u();continue}if(g==="&"){let y=n[p+1];if(y!==void 0&&typeof y!="string"&&"op"in y&&(y.op===">"||y.op===">>")){let x=n[p+2];if(typeof x!="string"){l=!0,p+=1;continue}a.push(dC(`&${y.op}`,x)),p+=2;continue}l=!0;continue}if(AL(g)){let y=null,x=s[s.length-1];x!==void 0&&/^[0-9]+$/.test(x)&&(y=x,s.pop());let w=n[p+1];if(typeof w!="string"){l=!0;continue}a.push(dC(y?`${y}${g}`:g,w)),p+=1;continue}if(g==="glob"){let y=h.pattern;typeof y=="string"?s.push(y):l=!0;continue}l=!0;continue}if("comment"in h)break;l=!0}return m(null),{statements:r,unparseable:l}}i(dc,"parseBashCommand");var ML=new Set([">",">>","<","<<","<<<","&>","&>>"]),mC=/^([0-9]+|&)(>>?|<<?)$/;function AL(e){return ML.has(e)||mC.test(e)}i(AL,"isRedirectionOp");function dC(e,t){let n=null,r=e,o=mC.exec(e);return o&&(n=o[1],r=o[2]),{op:e,fd:n,append:r===">>"||e==="&>>",input:r==="<"||r==="<<"||e==="<<<",target:t}}i(dC,"parseRedirection");var _L=vt.join(".agent","plan_mode_doc.md"),cd=new Map,ld=null;function LL(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\s+/g," ").toLowerCase();for(let n of ZT)if(t===n||t.startsWith(n+" ")){if(n==="sed"&&t.split(/\s+/).some(s=>s.startsWith("-i")||s==="--in-place"))return!1;if(n==="awk"){let o=t.split(/\s+/);if(o.includes("-f")||o.includes("--file"))return!1}if(["node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc","ruby","perl"].includes(n)){let o=t.split(/\s+/).slice(1);if(o.length>0&&!o.every(s=>/^(-v|--version|-h|--help)$/.test(s)))return!1}return!0}return!1}i(LL,"isSingleBashReadCommand");var PL=/^[a-zA-Z0-9]+$/;function $L(e){let t=e.trim();if(!t.endsWith("--help")||t.includes('"')||t.includes("'"))return!1;let n=!1;for(let r of t.split(/\s+/))if(r.startsWith("-"))if(r==="--help")n=!0;else return!1;else if(!PL.test(r))return!1;return n}i($L,"isHelpCommand");function zn(e){if(!e||!e.trim())return!1;if($L(e))return!0;let t=e.trim().replace(/\\\r?\n/g," "),n=dc(t);if(n.unparseable||n.statements.length===0)return!1;let r=n.statements.length>1||(n.statements[0]?.stages.length??0)>1;for(let o of n.statements){if(o.precedingOp!==null&&o.precedingOp!=="&&")return!1;for(let s of o.stages){for(let c of s.redirections)if(c.input||!ah(c.target))return!1;let a=s.argv.join(" ");if(a&&!(r&&s.argv[0]?.toLowerCase()==="cd"&&s.argv.length>=2)&&!LL(a))return!1}}return!0}i(zn,"isBashReadCommand");function lh(e){let t=e.trim();return t?zn(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(lh,"getDirectShellBypassBlockReason");var hC=new Set(["remove-item","set-content","add-content","out-file","new-item","copy-item","move-item","rename-item","ni"]);function Xn(e){if(!e||!e.trim())return!1;let t=dc(e);if(t.unparseable)return!1;for(let n of t.statements)for(let r of n.stages){let o=r.argv.map(s=>s.toLowerCase());if(o.length>0){let s=o[0],a=o.length>=2?`${o[0]} ${o[1]}`:null;for(let c of QT)if(c===s||a!==null&&c===a)return!0}for(let s of o)if(hC.has(s))return!0;for(let s of r.redirections)if(!s.input&&!ah(s.target))return!0}return!1}i(Xn,"isBashWriteCommand");function uh(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(uh,"parseAllowedToolPattern");function OL(e,t){if(t==="*")return!1;if(t.endsWith(":*")){let n=t.slice(0,-2);return e.startsWith(n)}return e===t}i(OL,"matchesBashPatternLegacy");function DL(e,t){if(t==="*")return!1;if(t.endsWith(":*")){let n=t.slice(0,-2);return e===n}return e===t}i(DL,"matchesBashPatternByExtractedPrefix");async function co(e,t,n,r,o){if(e.toLowerCase()!=="bash")return!1;let s=t.command??"",a=[];for(let c of n){let l=uh(c);if(l.tool==="bash"){if(l.pattern===null)return!0;a.push({pattern:l.pattern})}}if(a.length===0)return!1;if(r){let c;try{c=await r.extract(s,o)}catch{return!1}if(c.kind!=="prefix")return!1;for(let{pattern:l}of a)if(l&&DL(c.value,l))return!0;return!1}for(let{pattern:c}of a)if(c&&OL(s,c))return!0;return!1}i(co,"isToolCallAllowed");function dd(e,t,n){if(e.toLowerCase()!=="bash")return"";let r=t.command??"",o=r.split(" ");return o.length>1?`Bash(${o.slice(0,2).join(" ")}:*)`:`Bash(${r})`}i(dd,"generateSavePattern");function ur(e,t){try{let n=vt.resolve(e),r=vt.resolve(t),o=Ki(),s=vt.join(r,".kodax");return vs(n,s)||vs(n,o)?!0:!(vs(n,r)||xC().some(c=>vs(n,c)))}catch{return!1}}i(ur,"isAlwaysConfirmPath");function pC(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"&&NL.test(e)):!!(e.startsWith(".")&&/[/\\]/.test(e))}i(pC,"looksLikePath");var NL=/^\/[A-Za-z][A-Za-z0-9]*(?::[A-Za-z0-9]+)?$/;function BL(e){let t=[],n=/["']([^"']+)["']/g,r;for(;(r=n.exec(e))!==null;)t.push(r[1]);let o=/(?:^|\s)(\.\.?\/[^\s]+|\.\.?\\[^\s]+|[a-zA-Z]:\\[^\s]+|~\/[^\s]+|\.[^\s]*[/\\][^\s]*)/g;for(;(r=o.exec(e))!==null;)t.push(r[1]);return t}i(BL,"legacyRegexPathScan");function fd(e){let t=new Set,n=dc(e);if(!n.unparseable)for(let r of n.statements)for(let o of r.stages){for(let s of o.argv)pC(s)&&t.add(s);for(let s of o.redirections)pC(s.target)&&t.add(s.target)}for(let r of BL(e))t.add(r);return Array.from(t)}i(fd,"extractPathsFromCommand");function dh(e,t){let n=fd(e);for(let r of n)if(ur(r,t))return!0;return!1}i(dh,"isCommandOnProtectedPath");function ud(e){let t=vt.normalize(e);return process.platform==="win32"?t.toLowerCase():t}i(ud,"normalizePathForComparison");function HL(e,t){return ud(e)===ud(t)}i(HL,"pathsEqual");function vs(e,t){let n=ud(e),r=ud(t);return n===r||n.startsWith(r+vt.sep)}i(vs,"isPathInsideDirectory");function md(e,t){try{let n=vt.resolve(t),r=vt.resolve(n,yC(gC(e)));return vs(r,n)}catch{return!1}}i(md,"isPathInsideProject");function FL(e){let t=e.match(/[A-Za-z]:[\\/][^\s;|&<>(){}'"]+|\/[^\s;|&<>(){}'"]+/g);return t?t.filter(n=>!/^(?:\/dev\/|\/proc\/)/i.test(n)):[]}i(FL,"collectAbsolutePathCandidates");function fh(e){let t=vt.resolve(e),n=cd.get(t);if(n)return n;if(ad.existsSync(t)){let c=ad.realpathSync.native(t);return cd.set(t,c),c}let r=[],o=t;for(;!ad.existsSync(o);){let c=vt.dirname(o);if(c===o)return cd.set(t,t),t;r.unshift(vt.basename(o)),o=c}let s=ad.realpathSync.native(o),a=vt.join(s,...r);return cd.set(t,a),a}i(fh,"resolveExistingPathPrefix");function gC(e){return e==="~"?fc.homedir():e.startsWith(`~${vt.sep}`)||e.startsWith("~/")||e.startsWith("~\\")?vt.join(fc.homedir(),e.slice(2)):e}i(gC,"expandHomeDirectory");function yC(e){let t=fc.tmpdir(),n=[[/^%temp%/i,t],[/^%tmp%/i,t],[/^\$env:temp\b/i,t],[/^\$env:tmp\b/i,t],[/^\$tmpdir\b/i,t],[/^\$temp\b/i,t],[/^\$tmp\b/i,t]];for(let[r,o]of n)if(r.test(e))return e.replace(r,o);return e}i(yC,"expandSystemTempAlias");function WL(e,t){let n=vt.resolve(t??process.cwd()),r=yC(gC(e)),o=vt.isAbsolute(r)?vt.resolve(r):vt.resolve(n,r);return fh(o)}i(WL,"resolvePermissionPath");function xC(){if(ld)return ld;let e=new Set,t=[fc.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(fh(n))}catch{}return ld=Array.from(e),ld}i(xC,"getSystemTempDirectories");function mh(e){let t=fh(e??process.cwd());return{projectPlanDoc:vt.join(t,_L),systemTempDirs:xC()}}i(mh,"getPlanModeAllowedWritablePaths");function ch(e,t){let n=WL(e,t),{projectPlanDoc:r,systemTempDirs:o}=mh(t);return HL(n,r)?!0:o.some(s=>vs(n,s))}i(ch,"isPlanModeAllowedPath");function UL(e){let{projectPlanDoc:t,systemTempDirs:n}=mh(e),r=n[0]??fc.tmpdir();return`${t} or the system temp directory (${r})`}i(UL,"formatPlanModeAllowedLocations");var jL=new Set(["-a","--append","-i","--ignore-interrupts"]);function GL(e){let t=[];for(let n=1;n<e.argv.length;n+=1){let r=e.argv[n];jL.has(r)||r.startsWith("-")||t.push(r)}return t}i(GL,"collectTeeTargets");function KL(e){let t=[],n=1,r=!1;for(;n<e.argv.length;){let o=e.argv[n],s=o.toLowerCase();if(s==="-path"||s==="-literalpath"||s==="-destination"){let a=e.argv[n+1];if(a!==void 0&&!a.startsWith("-")){t.push(a),n+=2;continue}}!o.startsWith("-")&&!r&&(t.push(o),r=!0),n+=1}return t}i(KL,"collectPowerShellWriteTargets");function Zo(e){let t=new Set,n=i(o=>{let s=o?.trim();s&&t.add(s)},"pushTarget");for(let o of fd(e))n(o);let r=dc(e);if(r.unparseable)return Array.from(t);for(let o of r.statements)for(let s of o.stages){for(let c of s.redirections)c.input||n(c.target);let a=s.argv[0]?.toLowerCase();if(a){if(a==="tee")for(let c of GL(s))n(c);else if(hC.has(a))for(let c of KL(s))n(c)}}return Array.from(t)}i(Zo,"collectBashWriteTargets");function ph(e,t){if(!Xn(e))return{dangerous:!1};let n=new Set([...Zo(e),...FL(e)]);for(let r of n)if(!md(r,t))return{dangerous:!0,reason:`Command may modify file outside project: ${r}`};return{dangerous:!1}}i(ph,"getBashOutsideProjectWriteRisk");function Dr(e,t,n){let r=UL(n);if(Bw(e))return null;if(Pn.has(e)){let o=typeof t.path=="string"?t.path:"";return o?ch(o,n)?null:`[Blocked] Plan mode only allows file modifications in ${r}. Requested path: ${o}`:`[Blocked] Tool '${e}' is not allowed in plan mode unless it targets ${r}.`}if(e==="bash"){let o=t.command??"";if(!Xn(o))return null;let s=Zo(o);if(s.length===0)return`[Blocked] Plan mode only allows bash write operations when every target is either ${r}. Could not determine a safe target from: ${o.slice(0,80)}${o.length>80?"...":""}`;let a=s.find(c=>!ch(c,n));return a?`[Blocked] Plan mode only allows bash write operations in ${r}. Blocked target: ${a}`:null}return`[Blocked] Tool '${e}' has side effects and is not permitted in plan mode. Switch to accept-edits or auto mode to use it, or work within ${r}.`}i(Dr,"getPlanModeBlockReason");import lo from"node:path";import VL from"node:os";function Is(e,t){try{let n=lo.resolve(e),r=lo.resolve(t);return n===r?!0:n.startsWith(r+lo.sep)}catch{return!1}}i(Is,"isPathUnder");function zL(){try{return Ki()}catch{return}}i(zL,"safeGetAgentConfigHome");function wC(e,t){let n=zL();if(n&&Is(e,n))return"user-kodax";let r=lo.join(lo.resolve(t),".kodax");if(Is(e,r))return"project-kodax"}i(wC,"resolveProtectedZone");function XL(){let e=new Set;try{e.add(VL.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(XL,"getSystemTempDirs");var YL=new Set(["bash"]),mc={toolNames:YL,collect(e,t){let n=typeof e.input.command=="string"?e.input.command:"";if(!n||!t)return[];let r=[],o=new Set,s=new Set,a=XL(),c=lo.resolve(t);for(let l of fd(n)){let u;try{u=lo.resolve(t,l)}catch{continue}let m=wC(u,t);if(m){o.has(u)||(o.add(u),r.push({kind:"protected_path",path:l,zone:m}));continue}if(ur(l,t)){let p=a.some(g=>Is(u,g)),h=Is(u,c);!p&&!h&&!s.has(u)&&(s.add(u),r.push({kind:"outside_project",path:l}))}}for(let l of Zo(n)){let u;try{u=lo.resolve(t,l)}catch{continue}wC(u,t)||Is(u,c)||a.some(h=>Is(u,h))||r.push({kind:"shell_redirect_outside",target:l})}return r}};function gc(e){return e.type==="tool_summary"?{type:"event",text:e.text,icon:"tool"}:e}i(gc,"seedToHistoryItem");var qL="[Thinking]",JL="[/Thinking]",QL="Untitled Session",SC=50,ZL=60,CC="...",bC=["[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:"],vC=[/(?:^|\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:/],eP=/(^|\r?\n)\[Thinking\]\r?\n([\s\S]*?)\r?\n\[\/Thinking\](?=\r?\n|$)/g;function tP(e){let t=-1;for(let n of bC){let r=e.indexOf(n);r>=0&&(t===-1||r<t)&&(t=r)}for(let n of vC){let r=n.exec(e);r&&r.index>=0&&(t===-1||r.index<t)&&(t=r.index)}return t}i(tP,"findControlPlaneCutIndex");function nP(e){return bC.some(t=>e.includes(t))||vC.some(t=>t.test(e))}i(nP,"hasControlPlaneSignal");function IC(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(IC,"collectTextBlocks");function rP(e){return typeof e=="string"?e:Array.isArray(e)?IC(e).join(`
42
+ `):""}i(rP,"extractAssistantTextOnly");function hc(e,t,n){n.trim().length!==0&&e.push({type:t,text:n})}i(hc,"pushSeed");function TC(e){return e.replace(/^\n+/,"").replace(/\n+$/,"")}i(TC,"stripLegacyTagBoundaryNewlines");function oP(e){let t=e.name,n=e.input;if(!n)return`\u26A1 ${t}`;let r=t==="bash"?pc(String(n.command??"")):t==="read"||t==="write"||t==="edit"?pc(String(n.file_path??n.path??"")):t==="grep"||t==="glob"?pc(String(n.pattern??"")):t==="web_search"||t==="web_fetch"?pc(String(n.query??n.url??"")):void 0;return r?`\u26A1 ${t}(${r})`:`\u26A1 ${t}`}i(oP,"formatToolUseSummary");function pc(e,t=60){let n=e.replace(/\s+/g," ").trim();return n.length>t?`${n.slice(0,t)}...`:n}i(pc,"truncateToolHint");function iP(e){if(!e.includes(qL)||!e.includes(JL))return e.trim().length>0?[{type:"assistant",text:e}]:[];let t=[],n=0;for(let r of e.matchAll(eP)){let o=r.index??-1,s=r[1]??"",a=r[2]??"";if(o<0)continue;let c=o+s.length;hc(t,"assistant",TC(e.slice(n,c))),hc(t,"thinking",a),n=o+r[0].length}return hc(t,"assistant",TC(e.slice(n))),t.length===0?e.trim().length>0?[{type:"assistant",text:e}]:[]:t}i(iP,"parseLegacyAssistantContent");function sP(e){if(typeof e=="string")return iP(e);if(!Array.isArray(e))return[];let t=[],n=[],r=i(()=>{n.length!==0&&(hc(t,"assistant",n.join(`
43
+ `)),n.length=0)},"flushAssistantBuffer");for(let o of e)if(!(!o||typeof o!="object"||!("type"in o)))switch(o.type){case"text":"text"in o&&n.push(String(o.text));break;case"thinking":r(),"thinking"in o&&hc(t,"thinking",String(o.thinking));break;case"tool_use":if(r(),"name"in o){let s=oP(o);s&&t.push({type:"tool_summary",text:s})}break;case"tool_result":case"redacted_thinking":break;default:break}return r(),t}i(sP,"extractAssistantHistorySeeds");var aP=["You are the Scout role","You are the Generator role","You are the Planner role","You are the Evaluator role"],cP=/\r?\n?\`\`\`kodax[\w-]*[\s\S]*?\`\`\`\s*/g;function lP(e){return aP.some(t=>e.includes(t))}i(lP,"isManagedWorkerPrompt");function uP(e){return e.replace(cP,"").trim()}i(uP,"stripManagedProtocolBlocks");function yc(e){switch(e.role){case"assistant":return sP(e.content).map(n=>({...n,text:uP(n.text)})).filter(n=>n.text.length>0);case"user":{if(e._synthetic)return[];let t=xc(e.content);return t.trim().length===0||lP(t)?[]:[{type:"user",text:t}]}case"system":return[];default:return[]}}i(yc,"extractHistorySeedsFromMessage");function xc(e){return typeof e=="string"?e:Array.isArray(e)?IC(e).join(`
44
+ `):""}i(xc,"extractTextContent");function dP(e){let t=e.replace(/\s+/g," ").trim();return t?t.length>SC?`${t.slice(0,SC)}${CC}`:t:QL}i(dP,"formatSessionTitle");function wc(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.role!=="assistant")continue;let r=rP(n.content);if(r)return r}return""}i(wc,"extractLastAssistantText");function kC(e,t,n,r){let o=[wc(e),t.trim(),n?.trim()??"",r?.trim()??""];for(let s of o){let a=uo(s);if(a)return a}return""}i(kC,"resolveCompletedAssistantText");function uo(e){let t=e.trim();if(!t)return"";let n=tP(t);return n===0?"":(n>0?t.slice(0,n):t).trim()}i(uo,"sanitizeUserFacingAssistantText");function RC(e){let t=e.trim();return t.length>0&&uo(t).length===0&&nP(t)}i(RC,"isControlPlaneOnlyAssistantText");function ks(e){let t=e.find(r=>r.role==="user"),n=t?xc(t.content):"";return dP(n)}i(ks,"extractTitle");function fP(e,t=ZL){let n=e.replace(/\n/g," "),r=n.length>t?CC:"";return n.slice(0,t)+r}i(fP,"formatMessagePreview");import d from"chalk";import pd from"fs";import MC from"path";var hd=kn("config.json");function AC(){return MC.join(process.cwd(),".kodax","config.local.json")}i(AC,"getProjectConfigFile");function gd(e=process.env){let n=Sc(hd).autoMode??{},r=e.KODAX_AUTO_MODE_ENGINE?.trim(),o=r==="llm"||r==="rules"?r:void 0,s=n.engine==="llm"||n.engine==="rules"?n.engine:void 0,a=o??s??"llm",c=EC(n.classifierModel),l=EC(e.KODAX_AUTO_MODE_CLASSIFIER_MODEL),u=e.KODAX_AUTO_MODE_TIMEOUT_MS?.trim(),m=u!==void 0?Number(u):NaN,p=Number.isFinite(m)&&m>0?Math.floor(m):void 0,h=typeof n.timeoutMs=="number"&&n.timeoutMs>0?Math.floor(n.timeoutMs):void 0;return{engine:a,classifierModel:c,classifierModelEnv:l,timeoutMs:p??h}}i(gd,"loadAutoModeSettings");function EC(e){if(typeof e!="string")return;let t=e.trim();return t.length===0?void 0:t}i(EC,"nonEmptyString");function Sc(e){try{if(pd.existsSync(e))return JSON.parse(pd.readFileSync(e,"utf-8"))}catch{}return{}}i(Sc,"readJsonFile");function _C(e,t){pd.mkdirSync(MC.dirname(e),{recursive:!0}),pd.writeFileSync(e,JSON.stringify(t,null,2))}i(_C,"writeJsonFile");function Tc(e){let t=Sc(hd);_C(hd,{...t,permissionMode:e})}i(Tc,"savePermissionModeUser");function Rs(){let e=Sc(hd),t=Sc(AC()),n=e.alwaysAllowTools??[],r=t.alwaysAllowTools??[];return[...new Set([...n,...r])]}i(Rs,"loadAlwaysAllowTools");function yd(e,t,n=!1){let r=dd(e,t,n);if(!r)return;let o=AC(),s=Sc(o),a=s.alwaysAllowTools??[];a.includes(r)||_C(o,{...s,alwaysAllowTools:[...a,r]})}i(yd,"saveAlwaysAllowToolPattern");var Es=class{static{i(this,"CommandRegistry")}commands=new Map;aliases=new Map;register(t){let n=t.name.toLowerCase();if(this.commands.has(n))throw new Error(`Command "${t.name}" is already registered`);if(this.aliases.has(n)){let o=this.aliases.get(n);throw new Error(`Command "${t.name}" conflicts with existing alias for "${o}"`)}let r=new Set;for(let o of t.aliases??[]){let s=o.toLowerCase();if(s!==n){if(r.has(s))throw new Error(`Alias "${o}" is duplicated within command "${t.name}"`);if(this.commands.has(s))throw new Error(`Alias "${o}" conflicts with existing command "${s}"`);if(this.aliases.has(s)){let a=this.aliases.get(s);throw new Error(`Alias "${o}" is already registered for "${a}"`)}r.add(s)}}if(this.commands.set(n,{...t,source:t.source??"builtin"}),t.aliases)for(let o of t.aliases){let s=o.toLowerCase();s!==n&&this.aliases.set(s,n)}}unregister(t){let n=t.toLowerCase(),r=this.aliases.get(n)??n;if(!this.commands.has(r))return!1;let o=this.commands.get(r);if(o?.aliases)for(let s of o.aliases)this.aliases.delete(s.toLowerCase());return this.commands.delete(r),!0}get(t){let n=t.toLowerCase(),r=this.aliases.get(n)??n;return this.commands.get(r)}has(t){let n=t.toLowerCase(),r=this.aliases.get(n)??n;return this.commands.has(r)}getAll(t){let n=new Map;for(let[r,o]of this.commands)t&&o.source!==t||n.has(r)||n.set(r,{name:o.name,aliases:o.aliases,description:o.description,source:o.source??"builtin",usage:o.usage,priority:o.priority,location:o.location,path:o.path,userInvocable:o.userInvocable,disableModelInvocation:o.disableModelInvocation,allowedTools:o.allowedTools,context:o.context,agent:o.agent,argumentHint:o.argumentHint,model:o.model});return Array.from(n.values()).sort((r,o)=>r.name.localeCompare(o.name))}getBySource(t){return this.getAll(t)}getNames(){return Array.from(this.commands.keys()).sort()}clear(){this.commands.clear(),this.aliases.clear()}get size(){return this.commands.size}get aliasCount(){return this.aliases.size}},mP=new Es;import $n from"chalk";import{Buffer as OC}from"node:buffer";import{spawn as pP}from"node:child_process";import LC from"node:process";var ei="\x1B",hP="\x07",hh=`${ei}\\`;function PC(e,t){return e.SSH_CONNECTION?!1:t==="win32"||t==="darwin"||t==="linux"}i(PC,"shouldPreferNativeClipboard");function gP(e,t){let n=OC.from(e,"utf8").toString("base64"),r=t.TERM==="xterm-kitty"?hh:hP,o=`${ei}]52;c;${n}${r}`;return t.TMUX?`${ei}Ptmux;${o.replaceAll(ei,`${ei}${ei}`)}${hh}`:t.STY?`${ei}P${o}${hh}`:o}i(gP,"buildOscSequence");async function xd(e,t,n){return new Promise((r,o)=>{let s=pP(e,t,{stdio:["pipe","ignore","pipe"],windowsHide:!0}),a="";s.on("error",o),s.stderr?.on("data",c=>{a+=c.toString()}),s.on("close",c=>{if(c===0){r(!0);return}o(new Error(a.trim()||`${e} exited with code ${c??"unknown"}`))}),s.stdin?.write(n),s.stdin?.end()})}i(xd,"execClipboardCommand");function yP(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=OC.from(e,"utf8");return[["powershell",["-NoProfile","-NonInteractive","-Command",t],n],["pwsh",["-NoProfile","-NonInteractive","-Command",t],n],["cmd",["/c","chcp 65001 >nul & clip"],n]]}i(yP,"buildWindowsClipboardCandidates");async function $C(e,t,n){if(t.SSH_CONNECTION)return!1;switch(n){case"win32":{let r=yP(e);for(let[o,s,a]of r)try{if(await xd(o,s,a))return!0}catch{}return!1}case"darwin":return xd("pbcopy",[],e);case"linux":{let r=[["wl-copy",[]],["xclip",["-selection","clipboard"]],["xsel",["--clipboard","--input"]]];for(let[o,s]of r)try{if(await xd(o,s,e))return!0}catch{}return!1}default:return!1}}i($C,"tryNativeClipboard");async function xP(e,t){if(!t.TMUX)return!1;let n=t.LC_TERMINAL==="iTerm2"?["load-buffer","-"]:["load-buffer","-w","-"];try{return await xd("tmux",n,e)}catch{return!1}}i(xP,"tryTmuxClipboard");async function ti(e,t={}){let n=t.env??LC.env,r=t.platform??LC.platform,o=e.trimEnd(),s=gP(o,n);if(!o)throw new Error("Nothing to copy.");if(PC(n,r))try{if(await $C(o,n,r))return{path:"native"}}catch{}if(await xP(o,n))return{path:"tmux-buffer"};if(t.terminalWrite?.(s))return{path:"osc52"};if(!PC(n,r))try{if(await $C(o,n,r))return{path:"native"}}catch{}throw new Error("Unable to access any clipboard path.")}i(ti,"copyTextToClipboard");var gh={name:"copy",description:"Copy last assistant message to clipboard",usage:"/copy",handler:i(async(e,t)=>{let n=wc(t.messages);if(!n){console.log($n.yellow(`
45
+ No assistant message found to copy.`)),console.log($n.dim("The assistant needs to respond first before you can copy its message."));return}try{await ti(n);let r=n.length>50?n.slice(0,50)+"...":n;console.log($n.green(`
46
+ Copied to clipboard!`)),console.log($n.dim(`Preview: ${r}`))}catch(r){let o=r instanceof Error?r.message:String(r);console.log($n.red(`
47
+ Failed to copy to clipboard: ${o}`)),console.log($n.dim("You may need to check clipboard permissions or manually copy the message."))}},"handler"),detailedHelp:i(()=>{console.log($n.bold(`
48
+ /copy - Copy Last Assistant Message
49
+ `)),console.log("Usage:"),console.log($n.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($n.dim(" User: Explain how async/await works")),console.log($n.dim(" AI: [responds with explanation]")),console.log($n.cyan(" /copy")+$n.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 dr from"node:fs";import*as wd from"node:path";import be from"chalk";function wP(e){return e.runtimeInfo?.workspaceRoot??e.runtimeInfo?.executionCwd??process.cwd()}i(wP,"resolveCwd");function NC(e){let t;try{t=dr.readdirSync(e,{withFileTypes:!0})}catch(r){return r.code!=="ENOENT"&&console.error(`[memory] failed to read memory directory ${e}:`,r),[]}let n=[];for(let r of t){if(!r.isFile()||!r.name.endsWith(".md")||r.name==="MEMORY.md")continue;let o=wd.join(e,r.name),s="",a=0;try{s=dr.readFileSync(o,"utf-8"),a=dr.statSync(o).mtimeMs}catch(p){console.error(`[memory] failed to read ${o}:`,p);continue}let l=yw(s).frontmatter,u=l.name!==void 0||l.description!==void 0||l.type!==void 0,m=wd.basename(r.name,".md");n.push({filename:r.name,absPath:o,mtimeMs:a,title:l.name?.trim()||m,description:l.description?.trim()||m,type:l.type,parseOk:u})}return n}i(NC,"readTopicFiles");function SP(e){return e.map(t=>`- [${t.title}](${t.filename}) \u2014 ${t.description}`)}i(SP,"buildIndexLines");async function TP(e,t){console.log(be.cyan(`
53
+ [memory] per-project memory directory`)),console.log(be.dim(` ${e}`));let n=NC(e),r=n.filter(a=>!a.parseOk);console.log(be.dim(` ${n.length} topic file${n.length===1?"":"s"}`+(r.length>0?`, ${r.length} without parsable frontmatter`:"")));let o=!1,s="";try{s=dr.readFileSync(t,"utf-8"),o=!0}catch{o=!1}if(!o){console.log(be.yellow(`
54
+ MEMORY.md does not exist yet.`)),n.length>0?console.log(be.dim(" Run `/memory rebuild` to seed it from existing topic files.")):console.log(be.dim(" The LLM will create it on first save \u2014 no action needed.")),console.log();return}console.log(be.cyan(`
55
+ --- MEMORY.md ---`)),s.trim().length===0?console.log(be.dim(" (empty)")):console.log(s.trimEnd()),console.log(be.cyan(`--- end ---
56
+ `))}i(TP,"listMemory");async function CP(e,t){let n=!1;try{n=dr.statSync(e).isDirectory()}catch{n=!1}if(!n){console.log(be.yellow(`
57
+ [memory] memory directory does not exist yet \u2014 nothing to rebuild.`)),console.log(be.dim(` ${e}`)),console.log(be.dim(` The LLM will create both the directory and MEMORY.md on first save.
58
+ `));return}let r=NC(e);if(r.length===0){console.log(be.yellow(`
59
+ [memory] no topic files found \u2014 nothing to rebuild.`)),console.log(be.dim(` ${e}
60
+ `));return}let o=[...r].sort((l,u)=>u.mtimeMs-l.mtimeMs),a=SP(o).join(`
61
+ `)+`
62
+ `;dr.writeFileSync(t,a,"utf-8"),console.log(be.green(`
63
+ [memory] rebuilt MEMORY.md with ${o.length} entries (newest first).`)),console.log(be.dim(` ${t}`));let c=o.filter(l=>!l.parseOk);if(c.length>0){console.log(be.yellow(` ${c.length} file(s) had no parsable frontmatter \u2014 used filename as fallback:`));for(let l of c)console.log(be.dim(` - ${l.filename}`));console.log(be.dim(" Tip: add `---\\nname: ...\\ndescription: ...\\ntype: ...\\n---` at the top of those files."))}console.log()}i(CP,"rebuildMemory");function bP(e,t){console.log(be.cyan(`
64
+ [memory] open these paths in your editor:`)),console.log(be.dim(" index :"),t),console.log(be.dim(" dir :"),e),console.log(be.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(bP,"openMemory");function DC(){console.log(be.cyan(`
68
+ /memory - Inspect or rebuild per-project memory`)),console.log(be.dim(" /memory List MEMORY.md + memory directory")),console.log(be.dim(" /memory list Same as `/memory`")),console.log(be.dim(" /memory rebuild Regenerate MEMORY.md from topic frontmatter")),console.log(be.dim(" /memory open Print paths so you can open them in your editor")),console.log(be.dim(" /memory help Show this help")),console.log()}i(DC,"printHelp");function vP(){console.log(be.bold(`
69
+ /memory - Inspect or rebuild project memory
70
+ `)),console.log("Usage:"),console.log(be.cyan(" /memory ")+be.dim("Show MEMORY.md + topic file count")),console.log(be.cyan(" /memory list ")+be.dim("Alias for `/memory`")),console.log(be.cyan(" /memory rebuild ")+be.dim("Regenerate MEMORY.md (newest first by mtime)")),console.log(be.cyan(" /memory open ")+be.dim("Print the index + dir paths for editor use")),console.log(be.cyan(" /memory help ")+be.dim(`Show this help
71
+ `)),console.log("Description:"),console.log(be.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(be.dim(" \u2022 Rebuild ONLY rewrites MEMORY.md. Topic files are never touched.")),console.log(be.dim(" \u2022 Rebuild sorts entries by file mtime descending \u2014 the same")),console.log(be.dim(" natural-LRU order the LLM produces by prepending new entries.")),console.log(be.dim(" \u2022 Files missing or with malformed frontmatter still appear in")),console.log(be.dim(" the rebuilt index using their filename as fallback; the command")),console.log(be.dim(` prints a warning so you can fix the frontmatter.
76
+ `))}i(vP,"printDetailedHelp");var yh={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=wP(t),r=mw(n),o=pw(n),s=(e[0]??"list").toLowerCase();if(s==="help"||s==="--help"||s==="-h"){DC();return}if(s==="list"){await TP(r,o);return}if(s==="rebuild"){await CP(r,o);return}if(s==="open"){bP(r,o);return}console.log(be.yellow(`
77
+ [memory] unknown subcommand: ${s}`)),DC()},"handler"),detailedHelp:vP};import $e from"chalk";function BC(){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(BC,"printHelp");function IP(e){let t=null,n=[];for(let o=0;o<e.length;o++){let s=e[o];if(s==="--tokens"){let a=e[o+1];if(!a)return{error:"--tokens requires a value (e.g. `--tokens 50000`)"};let c=Number(a);if(!op(c))return{error:"--tokens value must be a positive integer"};t=c,o++;continue}if(s.startsWith("--tokens=")){let a=s.slice(9),c=Number(a);if(!op(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 r=n.join(" ").trim();return r?{objective:r,tokenBudget:t}:{error:"objective is required"}}i(IP,"parseCreateArgs");function kP(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(kP,"renderStatus");async function Cc(e,t,n,r){if(!e.lineage)throw new Error("session lineage unavailable \u2014 open or start a new session before using /goal");e.lineage=vw(e.lineage,n,r),await t.saveSession()}i(Cc,"persist");async function RP(e,t,n){if(!t.lineage){console.log($e.red("[/goal] no active session lineage"));return}let r=Qi(t.lineage);if(r&&r.status!=="complete"){console.log($e.yellow(`[/goal] a goal is already active (status: ${r.status}). Clear it first with \`/goal clear\` before creating a new one.`));return}let o=IP(e);if("error"in o){console.log($e.red(`[/goal] ${o.error}`));return}try{r&&r.status==="complete"&&await Cc(t,n,null,"cleared");let s=Pw(o.objective,o.tokenBudget);await Cc(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(RP,"doCreate");async function EP(e){if(!e.lineage){console.log($e.red("[/goal] no active session lineage"));return}let t=Qi(e.lineage);console.log(kP(t))}i(EP,"doStatus");async function MP(e,t){if(!e.lineage){console.log($e.red("[/goal] no active session lineage"));return}let n=Qi(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 r=$w(n);await Cc(e,t,r,"paused"),console.log($e.green("[/goal] paused"))}i(MP,"doPause");async function AP(e,t){if(!e.lineage){console.log($e.red("[/goal] no active session lineage"));return}let n=Qi(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 r=Ow(n);await Cc(e,t,r,"resumed"),console.log($e.green("[/goal] resumed"))}i(AP,"doResume");async function _P(e,t){if(!e.lineage){console.log($e.red("[/goal] no active session lineage"));return}if(!Qi(e.lineage)){console.log($e.yellow("[/goal] no goal to clear"));return}await Cc(e,t,null,"cleared"),console.log($e.green("[/goal] cleared"))}i(_P,"doClear");var HC={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 r=(e[0]??"status").toLowerCase();if(r==="help"||r==="--help"||r==="-h"){BC();return}if(r==="status"){await EP(t);return}if(r==="pause"){await MP(t,n);return}if(r==="resume"){await AP(t,n);return}if(r==="clear"){await _P(t,n);return}await RP(e,t,n)},"handler"),detailedHelp:BC};import Qt from"chalk";var xh={name:"new",description:"Start a new conversation session",usage:"/new",handler:i(async(e,t,n)=>{if(t.messages.length===0){console.log(Qt.yellow(`
95
+ Current session is already empty.`)),console.log(Qt.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(Qt.dim(`
96
+ Cancelled. Current session preserved.`));return}try{await n.saveSession(),console.log(Qt.dim(`
97
+ [Previous session saved]`))}catch{console.log(Qt.yellow(`
98
+ [Warning: Failed to save previous session]`))}n.startNewSession?.(),t.messages=[],n.clearHistory(),console.log(Qt.green(`
99
+ \u2713 Started new session`)),console.log(Qt.dim("Conversation history cleared. Ready for a fresh start!"))},"handler"),detailedHelp:i(()=>{console.log(Qt.bold(`
100
+ /new - Start New Session
101
+ `)),console.log("Usage:"),console.log(Qt.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(Qt.dim(" User: Help me refactor the authentication module")),console.log(Qt.dim(" AI: [provides refactoring help]")),console.log(Qt.cyan(" /new")),console.log(Qt.dim(" \u2713 Started new session")),console.log(Qt.dim(" User: Now I need help with database optimization")),console.log(Qt.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 LP}from"node:child_process";import{promisify as PP}from"node:util";var $P=PP(LP),wh=1e5;async function Sd(e,t){let{stdout:n}=await $P("git",e,{cwd:t,maxBuffer:67108864});return n}i(Sd,"git");async function OP(e){for(let t of["main","master","develop"])try{return await Sd(["rev-parse","--verify",t],e),t}catch{}return"HEAD"}i(OP,"detectBaseBranch");async function DP(e,t){let n=e[0];if(n==="base"){let r=await OP(t);return{diff:await Sd(["diff",`${r}...HEAD`],t),label:`changes against ${r}`}}return n==="sha"&&e[1]?{diff:await Sd(["show",e[1]],t),label:`commit ${e[1]}`}:{diff:await Sd(["diff","HEAD"],t),label:"uncommitted changes"}}i(DP,"getDiff");var FC={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(),r,o;try{({diff:r,label:o}=await DP(e,n))}catch(c){return{success:!1,message:`/review: git failed \u2014 ${c instanceof Error?c.message:String(c)}`}}if(!r.trim())return{success:!0,message:"No changes to review."};let s=r;return s.length>wh&&(s=`${s.slice(0,wh)}
105
+
106
+ [diff truncated to ${wh} chars \u2014 review the rest with a narrower scope]`),{success:!0,invocation:{prompt:[`Review the following ${o} 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 Cd(e){let t=e.match(/\r\n|\r|\n/g);return t?t.length:0}i(Cd,"getPastedTextRefNumLines");function NP(e,t){return t===0?`[Pasted text #${e}]`:`[Pasted text #${e} +${t} lines]`}i(NP,"formatPastedTextRef");function BP(e,t){return`[...Truncated text #${e} +${t} lines...]`}i(BP,"formatTruncatedTextRef");var HP=/\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;function FP(e){let t=[],n=new RegExp(HP.source,"g");for(let r of e.matchAll(n)){let o=Number.parseInt(r[2]??"0",10);!Number.isFinite(o)||o<=0||t.push({id:o,kind:r[1],match:r[0],index:r.index??0})}return t}i(FP,"parseReferences");function WP(e,t){let n=FP(e);if(n.length===0)return e;let r=i(s=>t instanceof Map?t.get(s):t[s],"getContent"),o=e;for(let s=n.length-1;s>=0;s--){let a=n[s];if(a.kind==="Image")continue;let c=r(a.id);!c||c.type!=="text"||(o=o.slice(0,a.index)+c.content+o.slice(a.index+a.match.length))}return o}i(WP,"expandPastedTextRefs");var UP=/\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]$/,jP=/^\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/;function GP(e,t){if(t>=e.length)return!0;let n=e[t];return!n||/\s/.test(n)}i(GP,"isAtWordBoundaryAfter");function KP(e,t){if(t===0)return!0;let n=e[t-1];return!n||/\s/.test(n)}i(KP,"isAtWordBoundaryBefore");function bd(e,t){if(t<=0||!GP(e,t))return null;let r=e.slice(0,t).match(UP);if(!r)return null;let o=t-r[0].length,s=Number.parseInt(r[2]??"0",10);return!Number.isFinite(s)||s<=0?null:{start:o,end:t,id:s,kind:r[1]}}i(bd,"findPlaceholderBeforeCursor");function vd(e,t){if(t>=e.length||!KP(e,t))return null;let r=e.slice(t).match(jP);if(!r)return null;let o=Number.parseInt(r[2]??"0",10);return!Number.isFinite(o)||o<=0?null:{start:t,end:t+r[0].length,id:o,kind:r[1]}}i(vd,"findPlaceholderAfterCursor");function WC(e){return e.length>800||Cd(e)>2}i(WC,"shouldReplacePasteWithPlaceholder");function UC(e,t){if(e.length<=1e4)return{truncatedText:e,placeholderContent:""};let n=Math.floor(1e3/2),r=Math.floor(1e3/2),o=e.slice(0,n),s=e.slice(-r),a=e.slice(n,-r),c=Cd(a),l=BP(t,c);return{truncatedText:o+l+s,placeholderContent:a}}i(UC,"maybeTruncateLongInput");var Sh=class{static{i(this,"PasteStore")}contents=new Map;nextId=1;registerText(t){let n=this.nextId++,r=Cd(t);return this.contents.set(n,{id:n,type:"text",content:t}),{id:n,placeholder:NP(n,r),numLines:r}}registerTruncatedText(t){let n=this.nextId++,r=Cd(t);return this.contents.set(n,{id:n,type:"text",content:t}),{id:n,numLines:r}}adopt(t){this.contents.set(t.id,t),t.id>=this.nextId&&(this.nextId=t.id+1)}peekNextId(){return this.nextId}get(t){return this.contents.get(t)}expand(t){return WP(t,this.contents)}snapshot(){return new Map(this.contents)}restore(t){this.contents.clear();for(let[n,r]of t)this.contents.set(n,r);for(let n of t.keys())n>=this.nextId&&(this.nextId=n+1)}reset(){this.contents.clear(),this.nextId=1}size(){return this.contents.size}export(){return Array.from(this.contents.values())}},Td=null;function jC(){return Td===null&&(Td=new Sh),Td}i(jC,"getOrCreateModulePasteStore");function Id(){return Td??void 0}i(Id,"getActivePasteStore");import{createHash as VP}from"node:crypto";import{mkdir as zP,readdir as XP,readFile as YP,stat as qP,unlink as JP,writeFile as QP}from"node:fs/promises";import*as Th from"node:path";var ZP="paste-cache",e$=720*60*60*1e3;function Ch(){return kn(ZP)}i(Ch,"getPasteCacheDir");function GC(e){return Th.join(Ch(),`${e}.txt`)}i(GC,"getPastePath");function KC(e){return VP("sha256").update(e).digest("hex").slice(0,16)}i(KC,"hashPastedText");async function VC(e,t){try{let n=Ch();return await zP(n,{recursive:!0}),await QP(GC(e),t,{encoding:"utf8",mode:384}),!0}catch{return!1}}i(VC,"storePastedText");async function kd(e){try{return await YP(GC(e),{encoding:"utf8"})}catch{return null}}i(kd,"retrievePastedText");async function zC(e=e$){let t=Ch(),n=Date.now()-e,r=0,o=0,s;try{s=await XP(t)}catch{return{scanned:r,removed:o}}for(let a of s){if(!a.endsWith(".txt"))continue;r+=1;let c=Th.join(t,a);try{(await qP(c)).mtimeMs<n&&(await JP(c),o+=1)}catch{}}return{scanned:r,removed:o}}i(zC,"cleanupOldPastes");import*as Eh from"path";import*as XC from"os";function t$(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}i(t$,"escapeRegExp");function n$(e,t){if(!e)return;let n=e.trim();if(!n.startsWith("/"))return;let r=new RegExp(`^/${t$(t)}(?:\\s+)?`,"i"),o=n.replace(r,"").trim();return o.length>0?o:void 0}i(n$,"deriveArgumentHintFromUsage");function bh(e,t="builtin"){return{...e,source:e.source??t,userInvocable:e.userInvocable??!0,disableModelInvocation:e.disableModelInvocation??!1,argumentHint:e.argumentHint??n$(e.usage,e.name)}}i(bh,"toCommandDefinition");function vh(e){for(let t of Ih)try{let n=bh(t,"builtin");e.register(n)}catch(n){console.error(`Failed to register command "${t.name}":`,n)}}i(vh,"registerBuiltinCommands");import*as Nr from"fs";import*as ni from"path";function r$(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(r$,"normalizeAliases");function o$(e){if(e==="critical"||e==="high"||e==="medium"||e==="low")return e}i(o$,"normalizePriority");function i$(e){return{disableModelInvocation:e["disable-model-invocation"]===!0,userInvocable:e["user-invocable"]!==!1,allowedTools:ww(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:Sw(e.hooks),frontmatter:e}}i(i$,"buildExecutionMetadata");function s$(e,t){try{let n=Nr.readFileSync(e,"utf-8"),[r,o]=xw(n),s=r??{},a=ni.basename(e,".md"),c=typeof s.name=="string"&&s.name.trim()?s.name.trim():a;if(!c||o.trim().length===0)return;let l=typeof s.description=="string"&&s.description.trim()?s.description.trim():`Custom command from ${t} level`;return{name:c,description:l,aliases:r$(s.aliases),priority:o$(s.priority),content:o.trim(),location:t,path:e,frontmatter:s,execution:i$(s)}}catch(n){console.error(`Error parsing command file ${e}:`,n);return}}i(s$,"parseCommandFile");function kh(e){let t=[],n=new Set;for(let r=0;r<e.length;r++){let o=e[r],s=typeof o=="string"?o:o.path,a=typeof o=="string"?r===0?"user":"project":o.location;if(!Nr.existsSync(s))continue;let c=ni.resolve(s);try{c=Nr.realpathSync.native?.(s)??Nr.realpathSync(s)}catch{c=ni.resolve(s)}if(!n.has(c)){n.add(c);try{let l=Nr.readdirSync(s);for(let u of l){if(!u.endsWith(".md"))continue;let m=ni.join(s,u),p=s$(m,a);p&&t.push(p)}}catch(l){console.error(`Error scanning directory ${s}:`,l)}}}return t}i(kh,"discoverCommands");function Rh(e,t){for(let n of e)try{t.register({name:n.name,aliases:n.aliases,description:n.description,source:"extension",priority:n.priority,location:n.location,path:n.path,userInvocable:n.execution.userInvocable,disableModelInvocation:n.execution.disableModelInvocation,allowedTools:n.execution.allowedTools,context:n.execution.context,agent:n.execution.agent,argumentHint:n.execution.argumentHint,model:n.execution.model,hooks:n.execution.hooks,frontmatter:n.frontmatter,handler:i(async()=>({success:!0,invocation:{...n.execution,prompt:n.content,source:"prompt",displayName:n.name,path:n.path}}),"handler")})}catch(r){console.error(`Error registering command ${n.name}:`,r)}}i(Rh,"registerDiscoveredCommands");function YC(e,t){vh(e);try{let n=XC.homedir(),r=t??process.cwd(),o=kh([{path:Eh.join(r,".kodax","commands"),location:"project"},{path:kn("commands"),location:"user"},{path:Eh.join(n,".agents","commands"),location:"user"}]);Rh(o,e)}catch(n){console.error("Failed to discover commands:",n)}}i(YC,"registerAllCommands");import{execFile as a$}from"child_process";import c$ from"fs";import Mh from"path";import{promisify as l$}from"util";var u$=l$(a$);function fo(e){if(!(!e||!e.trim()))return Mh.resolve(e).replace(/\\/g,"/")}i(fo,"normalizePath");async function bc(e,t){try{let{stdout:n}=await u$("git",t,{cwd:e,windowsHide:!0,maxBuffer:1048576}),r=n.trim();return r||void 0}catch{return}}i(bc,"gitStdout");function d$(e){let t=fo(e);if(t)return Mh.posix.basename(t)===".git"?Mh.posix.dirname(t):t}i(d$,"deriveCanonicalRepoRoot");async function Ms(e={}){let t=fo(e.cwd??process.cwd())??process.cwd().replace(/\\/g,"/"),n=fo(await bc(t,["rev-parse","--show-toplevel"])),r=await bc(n??t,["rev-parse","--path-format=absolute","--git-common-dir"])??await bc(n??t,["rev-parse","--git-common-dir"]),o=await bc(n??t,["branch","--show-current"])??await bc(n??t,["rev-parse","--abbrev-ref","HEAD"]);return{canonicalRepoRoot:d$(r)??n,workspaceRoot:n,executionCwd:t,branch:o&&o!=="HEAD"?o:void 0,workspaceKind:e.workspaceKind??"detected"}}i(Ms,"inspectWorkspaceRuntime");function Rd(e,t){return!e?.canonicalRepoRoot||!t?.canonicalRepoRoot?!1:fo(e.canonicalRepoRoot)===fo(t.canonicalRepoRoot)}i(Rd,"isSameCanonicalRepo");function qC(e){return!!(e?.workspaceRoot&&c$.existsSync(e.workspaceRoot))}i(qC,"workspaceExists");function ri(e){let t=fo(e.runtimeInfo?.workspaceRoot??e.gitRoot),n=fo(e.runtimeInfo?.executionCwd??t),r=fo(e.runtimeInfo?.canonicalRepoRoot??t);if(!(!t&&!n&&!r))return{canonicalRepoRoot:r,workspaceRoot:t,executionCwd:n,branch:e.runtimeInfo?.branch,workspaceKind:e.runtimeInfo?.workspaceKind??"detected"}}i(ri,"resolveSessionRuntimeInfo");function xn(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(xn,"formatWorkspaceTruth");function f$(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(f$,"summarizeAgentsFiles");function m$(e,t,n){if(!Number.isFinite(t)||t<=0||n<=0)return{...e,enabled:!0};let r=t/n*100,o=Math.max(1,Math.ceil(r)-1);return{...e,enabled:!0,triggerPercent:Math.min(e.triggerPercent,o)}}i(m$,"createManualCompactionConfig");function Ah(e){e.runtimeInfo?.workspaceRoot?console.log(d.dim(` Workspace unchanged: ${xn(e.runtimeInfo)}`)):console.log(d.dim(" Workspace unchanged."))}i(Ah,"printWorkspaceUnchangedNote");var Ih=[{name:"help",aliases:["h","?"],description:"Show all available commands",usage:"/help [command]",handler:i(async e=>{if(e.length>0){let t=e[0];Hr.size===0&&Md(),Hr.has(t.toLowerCase())||!!_h(t)?I$(t):v$(t)}else b$()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
108
+ /help - Show Command Help
109
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /help ")+"Show all available commands"),console.log(d.dim(" /help <command> ")+"Show detailed help for a specific command"),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /help ")+"# List all commands"),console.log(d.dim(" /help mode ")+"# Detailed help for /mode"),console.log()},"detailedHelp")},{name:"exit",aliases:["quit","q","bye"],description:"Exit interactive mode",handler:i(async(e,t,n)=>{await n.saveSession(),console.log(d.green(`
110
+ Session saved. Goodbye!`)),await n.exit()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
111
+ /exit - Exit Interactive Mode
112
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /exit ")+"Save session and exit"),console.log(d.dim(" /quit, /q, /bye ")+"Aliases for /exit"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Saves the current conversation session and exits interactive mode.")),console.log(d.dim(" Sessions can be resumed later with /load or CLI -c option.")),console.log(d.dim(" Exiting never removes or mutates the current workspace.")),console.log()},"detailedHelp")},{name:"clear",description:"Clear conversation history",handler:i(async(e,t,n)=>{t.messages=[],t.contextTokenSnapshot=void 0,n.clearHistory(),console.log(d.yellow(`
113
+ [Conversation cleared]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
114
+ /clear - Clear Conversation History
115
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /clear ")+"Clear all messages in current session"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Removes all messages from the current conversation context.")),console.log(d.dim(" Useful for starting fresh while keeping the session.")),console.log(),console.log(d.yellow(" Warning: This action cannot be undone!")),console.log()},"detailedHelp")},{name:"cost",description:"Show session cost report",usage:"/cost",handler:i(async(e,t,n)=>{let r=n.getCostReport?.();if(!r){console.log(d.dim(`
116
+ [No cost data available yet]`));return}console.log(d.cyan(`
117
+ `+r))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
118
+ /cost - Session Cost Report
119
+ `)),console.log(d.bold("Description:")),console.log(d.dim(" Shows token usage and estimated cost for the current session,")),console.log(d.dim(" broken down by provider and AMA role.")),console.log()},"detailedHelp")},{name:"paste",description:"Inspect pasted text stored in the input buffer",usage:"/paste show <id> | /paste list",argumentHint:"show <id> | list",handler:i(async e=>{let t=e[0]?.toLowerCase();if(!t||t==="help"){console.log(d.cyan(`
120
+ /paste - Inspect stored paste contents`)),console.log(d.dim(" /paste list - Show all pasted text ids in this session")),console.log(d.dim(" /paste show <id> - Print the full content of paste #<id>")),console.log();return}let n=Id();if(!n){console.log(d.yellow(`
121
+ [No paste registry active]`)),console.log(d.dim(" The REPL composer is not mounted, or no paste has been captured yet."));return}if(t==="list"){let r=n.export();if(r.length===0){console.log(d.dim(`
122
+ [No pasted content in this session yet]`));return}console.log(d.bold(`
123
+ Pasted content in this session:
124
+ `));for(let o of r){let s=o.content?.length??0,a=o.contentHash?` (hash ${o.contentHash.slice(0,8)})`:"";console.log(` ${d.cyan(`#${o.id}`)} ${o.type} ${s} chars${a}`)}console.log();return}if(t==="show"){let r=e[1],o=r?Number.parseInt(r,10):NaN;if(!Number.isFinite(o)||o<=0){console.log(d.yellow(`
125
+ Usage: /paste show <id>`));return}let s=n.get(o);if(!s){console.log(d.dim(`
126
+ [No paste registered with id #${o}]`));return}let a=s.content??"";if(!a&&s.contentHash){let c=await kd(s.contentHash);c&&(a=c)}if(!a){console.log(d.yellow(`
127
+ [Paste #${o} has no stored content (hash ${s.contentHash??"n/a"})]`));return}console.log(d.bold(`
128
+ Pasted text #${o} (${a.length} chars):
129
+ `)),console.log(a),console.log();return}console.log(d.yellow(`
130
+ [Unknown /paste subcommand: ${t}]`)),console.log(d.dim(" Try /paste show <id> or /paste list"))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
131
+ /paste - Inspect stored paste contents
132
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /paste list - Show all pasted text ids in this session")),console.log(d.dim(" /paste show <id> - Print the full content of paste #<id>")),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" When you paste more than ~800 chars into the input bar, KodaX")),console.log(d.dim(" replaces the pasted text with a `[Pasted text #N +K lines]` anchor")),console.log(d.dim(" to keep the UI responsive. The full content is preserved and sent")),console.log(d.dim(" to the LLM on submit. Use this command to see what was captured.")),console.log()},"detailedHelp")},{name:"compact",description:"Manually trigger context compaction",usage:"/compact [instructions]",handler:i(async(e,t,n,r)=>{try{let o=await wu(t.gitRoot),s=r.provider,a=No(s);if(!a){console.log(d.red(`
133
+ [Provider not found: ${s}]`));return}let c=e.length>0?e.join(" "):void 0,l=o.contextWindow??a.getEffectiveContextWindow?.(r.model)??a.getContextWindow?.()??2e5,u=t.contextTokenSnapshot?.currentTokens??Bo(t.messages),m=m$(o,u,l);console.log(d.dim(`
134
+ [Compacting conversation...]`)),n.startCompacting?.();try{let p=await Iw(t.messages,m,a,l,c,void 0,u,Fw,Ww);if(!p.compacted){console.log(d.green(`
135
+ [No compaction needed]`)),console.log(d.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(d.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(o){let s=o instanceof Error?o.message:String(o);console.log(d.red(`
138
+ [Compaction failed: ${s}]
139
+ `))}},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
140
+ /compact - Manual Context Compaction
141
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /compact ")+"Compact conversation with default instructions"),console.log(d.dim(" /compact <text> ")+"Compact with custom instructions for the summary"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Manually triggers context compaction using LLM-generated summaries.")),console.log(d.dim(" Older messages are replaced with a structured summary, keeping recent context.")),console.log(d.dim(" /compact still works even if auto-compaction is disabled or the auto threshold is not reached.")),console.log(),console.log(d.bold("What it does:")),console.log(d.dim(" 1. Protects a recent slice of context from pruning/summary")),console.log(d.dim(" 2. Generates structured summary of older messages using LLM")),console.log(d.dim(" 3. Tracks files that were read/modified in the conversation")),console.log(d.dim(" 4. Replaces old messages with summary to save tokens")),console.log(),console.log(d.bold("Configuration:")),console.log(d.dim(" Config file: ~/.kodax/config.json")),console.log(d.dim(" Settings:")),console.log(d.dim(" - compaction.triggerPercent: Usage percentage that triggers compaction")),console.log(d.dim(" - compaction.enabled: Controls auto-compaction only; /compact always remains available")),console.log(d.dim(" - compaction.contextWindow: Optional token-window override")),console.log(d.dim(" - compaction.protectionPercent / rollingSummaryPercent / pruningThresholdTokens: Advanced tuning")),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /compact ")+"# Compact with default instructions"),console.log(d.dim(" /compact focus on auth logic ")+"# Emphasize authentication in summary"),console.log(),console.log(d.dim(" See also: /help status (shows token usage)")),console.log()},"detailedHelp")},{name:"reload",description:"Reload project rules and active extensions",handler:i(async(e,t,n,r)=>{console.log(d.cyan(`
142
+ Reloading project rule files and runtime extensions...
143
+ `));try{let o=await n.reloadAgentsFiles?.()??[],s=f$(o),a=Er(),c=a?As(a).loadedExtensions.length:0,l=a?As(a).failures.length:0,u=0,m=0;if(a){await a.reloadExtensions({continueOnError:!0});let p=As(a);u=c||p.loadedExtensions.length,m=Math.max(0,p.failures.length-l)}if(o.length===0&&u===0){console.log(d.yellow(`No project rule files or active extensions found.
144
+ `)),console.log(d.dim(" Create AGENTS.md or CLAUDE.md in your project, or load extensions with --extension.")),console.log();return}console.log(d.green(`Rules reloaded successfully:
145
+ `)),s.global>0&&console.log(d.dim(` - Global: ${s.global} file(s)`)),s.directory>0&&console.log(d.dim(` - Directory: ${s.directory} file(s)`)),s.project>0&&console.log(d.dim(` - Project: ${s.project} file(s)`)),u>0&&console.log(d.dim(` - Extensions: ${u} module(s)`)),m>0&&console.log(d.yellow(` - Failures: ${m} recorded (run /extensions for details)`)),console.log(d.dim(" Updated rules will apply to subsequent requests in this session.")),console.log();return}catch(o){console.log(d.red(`Failed to reload rules.
146
+ `)),console.log(d.dim(` Error: ${o instanceof Error?o.message:String(o)}`)),console.log()}},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
147
+ /reload - Reload Project Rules
148
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /reload ")+"Reload project rule files and active extensions"),console.log(),console.log(d.bold("Description:")),console.log(" Reloads project-level context rules from AGENTS.md, CLAUDE.md, and .kodax/AGENTS.md files."),console.log(" If a runtime extension host is active, it also hot-reloads loaded extensions."),console.log(),console.log(d.bold("Rule Priority:")),console.log(d.dim(" 1. Global: ")+"~/.kodax/AGENTS.md"),console.log(d.dim(" 2. Directory: ")+"AGENTS.md or CLAUDE.md from project root to current directory"),console.log(d.dim(" 3. Project: ")+".kodax/AGENTS.md at the project root"),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /reload ")+"# Reload and show loaded rules"),console.log()},"detailedHelp")},{name:"extensions",aliases:["ext"],description:"Show active extension runtime diagnostics",usage:"/extensions",handler:i(async()=>{let e=Er();if(!e){console.log(d.yellow(`
149
+ [No active extension runtime]
150
+ `));return}let t=As(e),n=t.tools.filter(r=>r.source.kind==="extension");if(console.log(d.bold(`
151
+ Extension Runtime:
152
+ `)),console.log(d.dim(` Loaded: ${t.loadedExtensions.length}`)),console.log(d.dim(` Capabilities: ${t.capabilityProviders.length}`)),console.log(d.dim(` Commands: ${t.commands.length}`)),console.log(d.dim(` Hooks: ${t.hooks.length}`)),console.log(d.dim(` Failures: ${t.failures.length}`)),console.log(d.dim(` Extension Tools: ${n.length}`)),t.defaults.activeTools!==void 0&&console.log(d.dim(` Active Tools: ${t.defaults.activeTools.join(", ")||"(none)"}`)),(t.defaults.modelSelection.provider||t.defaults.modelSelection.model)&&console.log(d.dim(` Model Override: ${t.defaults.modelSelection.provider??"(inherit)"} / ${t.defaults.modelSelection.model??"(inherit)"}`)),t.defaults.thinkingLevel&&console.log(d.dim(` Thinking: ${t.defaults.thinkingLevel}`)),console.log(),t.loadedExtensions.length>0){console.log(d.bold("Loaded Extensions:"));for(let r of t.loadedExtensions)console.log(d.dim(` - ${r.label} [${r.loadSource}] (${r.path})`));console.log()}if(t.commands.length>0){console.log(d.bold("Extension Commands:"));for(let r of t.commands){let o=r.aliases?.length?` [${r.aliases.join(", ")}]`:"";console.log(d.dim(` - /${r.name}${o} ${r.description}`))}console.log()}if(t.capabilityProviders.length>0){console.log(d.bold("Capability Providers:"));for(let r of t.capabilityProviders){let o=_$(r.metadata);console.log(d.dim(` - ${r.id} [${r.kinds.join(", ")}]${o?` ${o}`:""}`))}console.log()}if(n.length>0){console.log(d.bold("Extension Tools:"));for(let r of n){let o=r.shadowedSources.length>0?` overrides: ${r.shadowedSources.map(s=>s.label??s.id??s.kind).join(", ")}`:"";console.log(d.dim(` - ${r.name}${o}`))}console.log()}if(t.hooks.length>0){console.log(d.bold("Hook Participation:"));for(let r of t.hooks)console.log(d.dim(` - ${r.hook} [#${r.order}] ${r.source.label}`));console.log()}if(t.failures.length>0){console.log(d.bold("Recent Failures:"));for(let r of t.failures.slice(-10))console.log(d.dim(` - [${r.stage}] ${r.source.label}: ${r.target} -> ${r.message}`));console.log()}},"handler")},{name:"status",aliases:["info","ctx"],description:"Show current session status",handler:i(async(e,t,n,r)=>{await k$(t,r,e)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
153
+ /status - Show Session Status
154
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /status ")+"Display current session information"),console.log(d.dim(" /status workspace ")+"Show deeper workspace/runtime details"),console.log(d.dim(" /info, /ctx ")+"Aliases for /status"),console.log(),console.log(d.bold("Displays:")),console.log(d.dim(" - Current mode (code/ask)")),console.log(d.dim(" - Session ID")),console.log(d.dim(" - Message count")),console.log(d.dim(" - Estimated token usage")),console.log(d.dim(" - Current workspace truth")),console.log(d.dim(" - Session timestamps")),console.log(d.dim(" - Repo-intelligence mode and active runtime summary")),console.log()},"detailedHelp")},{name:"mcp",description:"Show MCP server status or refresh catalogs",usage:"/mcp [status|refresh]",handler:i(async e=>{let t=Er();if(!t){console.log(d.yellow(`
155
+ [No extension runtime active \u2014 MCP is not available]`));return}let r=As(t).capabilityProviders.find(c=>c.id==="mcp");if((e[0]?.toLowerCase()??"status")==="refresh"){console.log(d.dim(`
156
+ Refreshing MCP catalogs...`));try{await t.refreshCapabilityProviders("mcp"),console.log(d.green("MCP catalogs refreshed."))}catch(c){console.log(d.red(`Refresh failed: ${c instanceof Error?c.message:String(c)}`))}return}if(console.log(d.cyan(`
157
+ MCP Status
158
+ `)),!r){console.log(d.yellow(" No MCP provider registered.")),console.log(d.dim(` Add mcpServers to ~/.kodax/config.json to enable MCP.
159
+ `));return}let a=r.metadata?.servers??[];console.log(d.dim(` Servers: ${a.length}`)),console.log();for(let c of a){let l=c.status==="ready"?d.green:c.status==="error"?d.red:d.yellow;console.log(` ${d.bold(c.serverId)} ${l(c.status)} connect=${d.dim(c.connect)}`),c.cachedAt&&console.log(d.dim(` tools=${c.tools} resources=${c.resources} prompts=${c.prompts}`)),c.lastError&&console.log(d.red(` error: ${c.lastError}`))}console.log()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
160
+ /mcp - MCP Server Management
161
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /mcp ")+"Show MCP server status"),console.log(d.dim(" /mcp status ")+"Same as /mcp"),console.log(d.dim(" /mcp refresh ")+"Force-refresh all MCP server catalogs"),console.log()},"detailedHelp")},{name:"repointel",aliases:["ri"],description:"Inspect or control the repo-intelligence premium runtime",usage:"/repointel [status|mode|trace|warm|endpoint|bin]",handler:i(async(e,t,n,r)=>{let o=e[0]?.toLowerCase()??"status";if(o==="status"){let s=await Wa({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace,probePremium:!0});tb(s);return}if(o==="warm"){let s=await Ew({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace});C$(s);return}if(o==="mode"){if(e.length===1){console.log(d.dim(`
162
+ Current repo-intelligence mode: ${d.cyan(r.repoIntelligenceMode??"auto")}`)),console.log(d.dim(`Usage: /repointel mode [auto|off|oss|premium-shared|premium-native]
163
+ `));return}let s=x$(e[1]);if(!s){console.log(d.red(`
164
+ [Invalid repo-intelligence mode: ${e[1]}]`)),console.log(d.dim(`Usage: /repointel mode [auto|off|oss|premium-shared|premium-native]
165
+ `));return}let a=Ed({mode:s},{repoIntelligenceMode:s},n,r);Br(`Repo intelligence mode: ${s}`,a);return}if(o==="trace"){let s=e[1]?.toLowerCase();if(!s){console.log(d.dim(`
166
+ Current repo-intelligence trace: ${d.cyan(r.repoIntelligenceTrace?"on":"off")}`)),console.log(d.dim(`Usage: /repointel trace [on|off|toggle]
167
+ `));return}let a=w$(s,r.repoIntelligenceTrace??!1);if(a===null){console.log(d.red(`
168
+ [Invalid trace value: ${e[1]}]`)),console.log(d.dim(`Usage: /repointel trace [on|off|toggle]
169
+ `));return}let c=Ed({trace:a},{repoIntelligenceTrace:a},n,r);Br(`Repo intelligence trace: ${a?"on":"off"}`,c);return}if(o==="endpoint"){if(e.length===1){let c=await Wa({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace});console.log(d.dim(`
170
+ Current repointel endpoint: ${d.cyan(c.endpoint)}`)),console.log(d.dim(`Usage: /repointel endpoint [http://host:port|default]
171
+ `));return}let s=JC(e[1]),a=Ed({endpoint:s},{repointelEndpoint:s??void 0},n,r);Br(`Repointel endpoint: ${s??"default"}`,a);return}if(o==="bin"){if(e.length===1){let c=await Wa({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace});console.log(d.dim(`
172
+ Current repointel bin: ${d.cyan(c.bin)}`)),console.log(d.dim(`Usage: /repointel bin [<path-or-command>|default]
173
+ `));return}let s=JC(e.slice(1).join(" ")),a=Ed({bin:s},{repointelBin:s??void 0},n,r);Br(`Repointel bin: ${s??"default"}`,a);return}console.log(d.red(`
174
+ [Unknown /repointel subcommand: ${e[0]}]`)),console.log(d.dim(`Usage: /repointel [status|mode|trace|warm|endpoint|bin]
175
+ `))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
176
+ /repointel - Repo-Intelligence Runtime Control
177
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /repointel ")+"Show current repo-intelligence and premium runtime status"),console.log(d.dim(" /repointel status ")+"Probe the local premium frontdoor and print detailed status"),console.log(d.dim(" /repointel mode auto ")+"Prefer premium-native when available, otherwise fall back to OSS"),console.log(d.dim(" /repointel mode off ")+"Strictly disable repo-intelligence working tools and auto lane for this session"),console.log(d.dim(" /repointel mode oss ")+"Force the OSS baseline only"),console.log(d.dim(" /repointel mode premium-shared ")+"Use premium without KodaX native auto lane"),console.log(d.dim(" /repointel mode premium-native ")+"Use the KodaX flagship premium path"),console.log(d.dim(" /repointel trace on|off|toggle ")+"Toggle repo-intelligence trace output"),console.log(d.dim(" /repointel endpoint http://127.0.0.1:47891")+"Override the local premium daemon endpoint"),console.log(d.dim(" /repointel endpoint default ")+"Clear the endpoint override and use the default"),console.log(d.dim(" /repointel bin repointel ")+"Use a PATH-visible repointel command"),console.log(d.dim(" /repointel bin <path> ")+"Use an explicit repointel launcher path"),console.log(d.dim(" /repointel bin default ")+"Clear the bin override and use the default command"),console.log(d.dim(" /repointel warm ")+"Try to start or warm the local premium daemon"),console.log(),console.log(d.bold("Notes:")),console.log(d.dim(" - /status now includes a compact repo-intelligence summary.")),console.log(d.dim(" - /repointel warm is operational: it can warm the premium runtime even when your current mode is oss/off.")),console.log(d.dim(" - If the local service cannot be started, KodaX will continue with the OSS baseline and this command will explain why.")),console.log()},"detailedHelp")},{name:"fallback",description:"Configure the cross-provider fallback chain for child tasks",usage:"/fallback [status | <p1,p2,...> | off]",handler:i(async(e,t,n,r)=>{let o=(process.env.KODAX_FALLBACK_PROVIDERS??"").split(",").map(c=>c.trim()).filter(Boolean),s=e[0]?.toLowerCase();if(!s||s==="status"){o.length===0?console.log(d.dim(`
178
+ Child-task provider fallback: `)+d.yellow("off")+d.dim(" (no chain configured)")):(console.log(d.dim(`
179
+ Child-task provider fallback: `)+d.green("on")),console.log(d.dim(" Order: ")+d.cyan(o.join(" \u2192 ")))),console.log(d.dim(`
180
+ When a child's primary provider is exhausted/down, KodaX re-runs it`)),console.log(d.dim(` on the next provider in this list. Set: /fallback ark-coding,kimi-code
181
+ `));return}if(s==="off"||s==="clear"||s==="none"){Kn({fallbackProviders:void 0}),delete process.env.KODAX_FALLBACK_PROVIDERS,console.log(d.green(`
182
+ \u2713 `)+d.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(d.red(`
184
+ [/fallback: no provider ids given]`)),console.log(d.dim(`Usage: /fallback ark-coding,kimi-code (or /fallback off)
185
+ `));return}Kn({fallbackProviders:a}),process.env.KODAX_FALLBACK_PROVIDERS=a.join(","),console.log(d.green(`
186
+ \u2713 `)+d.dim("Child-task fallback order: ")+d.cyan(a.join(" \u2192 "))),console.log(d.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,r)=>{if(e.length===0){let s=lr(r.permissionMode,"accept-edits")??"accept-edits";console.log(d.dim(`
188
+ Current mode: ${d.cyan(s)}`)),console.log(d.dim("Usage: /mode [plan|accept-edits|auto]"));return}let o=e[0];uc.includes(o)?(r.permissionMode=o,n.setPermissionMode?.(o),Tc(o),console.log(d.cyan(`
189
+ [Switched to ${o} mode] (saved)`))):console.log(d.red(`
190
+ [Unknown mode: ${e[0]}. Use: plan | accept-edits | auto]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
191
+ /mode - Switch Permission Mode
192
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /mode ")+"Show current permission mode"),console.log(d.dim(" /mode plan ")+"Read-only: blocks all modifications"),console.log(d.dim(" /mode accept-edits ")+"File edits auto, bash requires confirmation"),console.log(d.dim(" /mode auto ")+"LLM classifier reviews each tool call (FEATURE_092)"),console.log(d.dim(" /mode auto-in-project ")+d.gray("(deprecated alias for auto; will be removed in v0.7.38)")),console.log(),console.log(d.bold("Permission Levels:")),console.log(d.yellow(" plan ")+d.dim("- Read-only planning, no file/command modifications")),console.log(d.green(" accept-edits ")+d.dim("- File edits auto-approved, bash still requires confirmation")),console.log(d.green(" auto ")+d.dim("- LLM classifier (engine=llm, default) or rules engine reviews each call")),console.log(),console.log(d.bold("Notes:")),console.log(d.dim(" - .kodax/ directory and project-external paths always require confirmation")),console.log(d.dim(" - Mode is saved to ~/.kodax/config.json (user-level)")),console.log()},"detailedHelp")},{name:"auto-engine",description:"Show or set auto-mode classifier engine (llm | rules)",usage:"/auto-engine [llm|rules]",handler:i(async(e,t,n)=>{let r=n.getAutoModeStats?.();if(!r){console.log(d.yellow(`
193
+ [auto-engine] not in auto mode \u2014 switch via /mode auto first`));return}if(e.length===0){console.log(d.dim(`
194
+ Classifier engine: ${d.cyan(r.engine)}`)),console.log(d.dim(` consecutive denials: ${r.denials.consecutive}`)),console.log(d.dim(` cumulative denials: ${r.denials.cumulative}`)),console.log(d.dim(` breaker errors: ${r.breaker.timestamps.filter(s=>s>=Date.now()-600*1e3).length}`)),console.log(d.dim("Usage: /auto-engine [llm|rules]"));return}let o=e[0];if(o!=="llm"&&o!=="rules"){console.log(d.red(`
195
+ [auto-engine] unknown engine "${e[0]}" \u2014 use llm or rules`));return}n.setAutoModeEngine?.(o),console.log(d.cyan(`
196
+ [auto-engine] switched to ${o}`)),console.log(o==="rules"?d.dim(" every non-Tier-1 tool call now escalates to user confirmation"):d.dim(" classifier consultation resumed; threshold downgrades still apply"))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
197
+ /auto-engine - Auto-Mode Classifier Engine Toggle
198
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /auto-engine ")+"Show current engine + denial/breaker counts"),console.log(d.dim(" /auto-engine llm ")+"Resume classifier consultation (default)"),console.log(d.dim(" /auto-engine rules ")+"Skip classifier; every non-Tier-1 call asks user"),console.log(),console.log(d.bold("Notes:")),console.log(d.dim(" - Only meaningful in auto mode (/mode auto).")),console.log(d.dim(" - The classifier may auto-downgrade to rules after 3 consecutive blocks,")),console.log(d.dim(" 20 cumulative blocks, or 5 errors in a 10-minute window. /auto-engine llm")),console.log(d.dim(" manually flips back to llm.")),console.log(d.dim(" - Override via env: KODAX_AUTO_MODE_ENGINE=rules.")),console.log()},"detailedHelp")},{name:"auto-denials",description:"Show auto-mode classifier denial tracker + circuit breaker stats",usage:"/auto-denials",handler:i(async(e,t,n)=>{let r=n.getAutoModeStats?.();if(!r){console.log(d.yellow(`
199
+ [auto-denials] not in auto mode \u2014 switch via /mode auto first`));return}console.log(d.cyan(`
200
+ [auto-mode classifier stats]`)),console.log(d.dim(` engine: ${d.cyan(r.engine)}`)),console.log(d.dim(" Denial tracker:")),console.log(d.dim(` consecutive blocks: ${r.denials.consecutive} / 3`)),console.log(d.dim(` cumulative blocks: ${r.denials.cumulative} / 20`)),console.log(d.dim(" Circuit breaker:")),console.log(d.dim(` errors in window: ${r.breaker.timestamps.filter(o=>o>=Date.now()-600*1e3).length} / 5 (10 min)`)),console.log(),r.engine==="rules"&&console.log(d.yellow(" \u21AA engine has downgraded to rules. /auto-engine llm to flip back.")),console.log()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
201
+ /auto-denials - Auto-Mode Classifier Diagnostic Dump
202
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /auto-denials ")+"Print engine + tracker + breaker counters"),console.log(),console.log(d.bold("Thresholds (FEATURE_092):")),console.log(d.dim(" - 3 consecutive blocks \u2192 engine downgrade to rules")),console.log(d.dim(" - 20 cumulative blocks \u2192 engine downgrade to rules")),console.log(d.dim(" - 5 errors in 10-min \u2192 circuit breaker trips \u2192 engine downgrade")),console.log()},"detailedHelp")},{name:"save",description:"Save current session",handler:i(async(e,t,n)=>{await n.saveSession(),console.log(d.green(`
203
+ [Session saved]`)),Ah(t)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
204
+ /save - Save Current Session
205
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /save ")+"Save current conversation to session storage"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Manually saves the current conversation session.")),console.log(d.dim(" Sessions are auto-saved after each message, but you can")),console.log(d.dim(" use this to ensure the session is persisted.")),console.log(d.dim(" Saving updates session storage only; the current workspace stays untouched.")),console.log(),console.log(d.dim(" See also: /help load, /help sessions")),console.log()},"detailedHelp")},{name:"load",aliases:["resume"],description:"Load a session",usage:"/load <session-id>",handler:i(async(e,t,n)=>{if(e.length===0){console.log(d.red(`
206
+ [Usage: /load <session-id>]`)),await n.listSessions();return}await n.loadSession(e[0])==="missing"&&console.log(d.red(`
207
+ [Session not found: ${e[0]}]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
208
+ /load - Load a Saved Session
209
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /load ")+"List available sessions"),console.log(d.dim(" /load <session-id> ")+"Load a specific session"),console.log(d.dim(" /resume <id> ")+"Alias for /load"),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /load ")+"# See all sessions"),console.log(d.dim(" /load 20260219_143052")+"# Load session by ID"),console.log(),console.log(d.bold("Workspace behavior:")),console.log(d.dim(" /load can resume sessions from sibling workspaces in the same canonical repo.")),console.log(d.dim(" If a saved workspace is unavailable, KodaX explains the fallback before loading.")),console.log(),console.log(d.dim(" See also: /help sessions, /help save")),console.log()},"detailedHelp")},{name:"tree",description:"Inspect or switch the current session tree",usage:"/tree [entry-id|label] | /tree label <entry-id|label> <name> | /tree unlabel <entry-id|label>",handler:i(async(e,t,n)=>{if(e.length===0){await n.printSessionTree?.();return}let r=e[0]?.trim().toLowerCase();if(r==="label"){if(e.length<3){console.log(d.red(`
210
+ [Usage: /tree label <entry-id|label> <name>]`));return}await n.labelSessionBranch?.(e[1],e.slice(2).join(" "))||console.log(d.red(`
211
+ [Tree entry not found: ${e[1]}]`));return}if(r==="unlabel"){if(e.length<2){console.log(d.red(`
212
+ [Usage: /tree unlabel <entry-id|label>]`));return}await n.labelSessionBranch?.(e[1],void 0)||console.log(d.red(`
213
+ [Tree entry not found: ${e[1]}]`));return}await n.switchSessionBranch?.(e[0])==="missing"&&console.log(d.red(`
214
+ [Tree entry not found: ${e[0]}]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
215
+ /tree - Inspect Session Lineage
216
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /tree ")+"Show the current session tree"),console.log(d.dim(" /tree <entry-id|label> ")+"Jump to a previous branch point"),console.log(d.dim(" /tree label <entry-id|label> <name>")+"Attach a lightweight checkpoint label"),console.log(d.dim(" /tree unlabel <entry-id|label> ")+"Clear an existing checkpoint label"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Session history is stored as a branchable tree. Use /tree to")),console.log(d.dim(" inspect the lineage, revisit an earlier branch safely, and add")),console.log(d.dim(" bookmark-style checkpoint labels without changing git state.")),console.log()},"detailedHelp")},{name:"fork",description:"Fork the current branch into a new session",usage:"/fork [entry-id|label]",handler:i(async(e,t,n)=>{await n.forkSession?.(e[0])==="failed"&&console.log(d.red(`
217
+ [Unable to fork session${e[0]?` from ${e[0]}`:""}]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
218
+ /fork - Export a Branch to a New Session
219
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /fork ")+"Fork from the active branch"),console.log(d.dim(" /fork <entry-id|label>")+"Fork from a selected tree node"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Creates a new session file from the selected branch so you can")),console.log(d.dim(" continue there without mutating the current session lineage.")),console.log()},"detailedHelp")},{name:"rewind",description:"Rewind the current session to a previous point",usage:"/rewind [entry-id|label]",handler:i(async(e,t,n)=>{await n.rewindSession?.(e[0])==="failed"&&console.log(d.red(`
220
+ [Unable to rewind${e[0]?` to ${e[0]}`:" \u2014 no previous turn found"}]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
221
+ /rewind - Rewind Session to a Previous Point
222
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /rewind ")+"Rewind to the previous user input"),console.log(d.dim(" /rewind <entry-id|label>")+"Rewind to a specific tree node"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Truncates the session after the target entry. Unlike /fork,")),console.log(d.dim(" this modifies the current session in place. The rewind event")),console.log(d.dim(" is recorded in the lineage for auditability.")),console.log(),console.log(d.yellow(" \u26A0 This is irreversible. Use /fork first to preserve a copy.")),console.log()},"detailedHelp")},{name:"sessions",aliases:["ls","list"],description:"List recent sessions",handler:i(async(e,t,n)=>{await n.listSessions()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
223
+ /sessions - List Saved Sessions
224
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /sessions ")+"List all saved sessions"),console.log(d.dim(" /ls, /list ")+"Aliases for /sessions"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Shows recent conversation sessions with their IDs,")),console.log(d.dim(" message counts, titles, and workspace truth. Use /load <id> to resume.")),console.log(d.dim(" This keeps sibling worktree sessions inspectable without a persistent cockpit.")),console.log(),console.log(d.dim(" See also: /help load, /help delete")),console.log()},"detailedHelp")},{name:"history",aliases:["hist"],description:"Show conversation history",handler:i(async(e,t,n)=>{n.printHistory()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
225
+ /history - Show Conversation History
226
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /history ")+"Display recent messages in current session"),console.log(d.dim(" /hist ")+"Alias for /history"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Shows the last 20 messages in the current conversation.")),console.log(d.dim(" Useful for reviewing what has been discussed.")),console.log()},"detailedHelp")},{name:"delete",aliases:["rm","del"],description:"Delete a session",usage:"/delete <session-id> or /delete all",handler:i(async(e,t,n)=>{if(e.length===0){console.log(d.red(`
227
+ [Usage: /delete <session-id> or /delete all]`)),await n.listSessions?.();return}e[0]==="all"?(await n.deleteAllSessions?.(),console.log(d.green(`
228
+ [All sessions deleted]`)),Ah(t)):(await n.deleteSession?.(e[0]),console.log(d.green(`
229
+ [Session deleted: ${e[0]}]`)),Ah(t))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
230
+ /delete - Delete Saved Sessions
231
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /delete ")+"Show usage (lists sessions)"),console.log(d.dim(" /delete <id> ")+"Delete a specific session"),console.log(d.dim(" /delete all ")+"Delete ALL sessions"),console.log(d.dim(" /rm, /del ")+"Aliases for /delete"),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /delete 20260219_143052")+" # Delete specific session"),console.log(d.dim(" /delete all ")+"# Delete all sessions"),console.log(),console.log(d.bold("Workspace behavior:")),console.log(d.dim(" Deletes saved session records only.")),console.log(d.dim(" Current workspaces and checkouts remain untouched.")),console.log(),console.log(d.yellow(" Warning: /delete all cannot be undone!")),console.log()},"detailedHelp")},{name:"model",aliases:["m"],description:"Show or switch provider/model",usage:"/model [<provider>[/<model>] | /<model>]",handler:i(async(e,t,n,r)=>{let o=Ga().providerModels;if(e.length===0){console.log(d.bold(`
232
+ Available Providers:
233
+ `));let c=lp(o);for(let l of c){let u=l.configured?d.green("[configured]"):d.red("[not configured]"),m=l.custom?d.yellow(" [custom]"):"",p=l.name===r.provider,h=p?d.cyan(" *"):"";console.log(` ${d.bold(l.name)}${h} ${u}${m}`),l.capabilityProfile.transport==="cli-bridge"&&console.log(d.yellow(` ! ${sp(l.capabilityProfile)}`));let g=es(l.name,o),y=p?r.model:null;for(let x of g){let T=p&&(y===x||!y&&x===l.model)?d.cyan(">"):" ";console.log(` ${T} ${x}`)}console.log()}console.log(d.dim(`Current: provider=${r.provider}${r.model?`, model=${r.model}`:""}`)),console.log(d.dim("Usage:")),console.log(d.dim(" /model <provider> Switch provider")),console.log(d.dim(" /model <provider>/<model> Switch to specific model")),console.log(d.dim(` /model /<model> Switch model within current provider
234
+ `));return}let s=(e[0]??"").trim();if(!s)return;if(s.startsWith("/")){let c=s.slice(1);if(!c){console.log(d.red(`
235
+ [Missing model name after /]`));return}let l=es(r.provider,o);if(!l.includes(c)){console.log(d.red(`
236
+ [Unknown model: ${c}]`)),console.log(d.dim(`Available models for ${r.provider}: ${l.join(", ")}
237
+ `));return}Kn({model:c}),n.switchProvider?.(r.provider,c),console.log(d.cyan(`
238
+ [Switched to ${c}] (saved)`));return}if(s.includes("/")){let c=s.indexOf("/"),l=s.slice(0,c),u=s.slice(c+1);if(!u||!l){console.log(d.red(`
239
+ [Invalid format. Use: /model <provider>/<model>]`));return}if(!ji(l)){console.log(d.red(`
240
+ [Unknown provider: ${l}]`)),console.log(d.dim(`Available: ${Gi().join(", ")}
241
+ `));return}let m=es(l,o);if(!m.includes(u)){console.log(d.red(`
242
+ [Unknown model: ${u}]`)),console.log(d.dim(`Available models for ${l}: ${m.join(", ")}
243
+ `));return}Kn({provider:l,model:u}),n.switchProvider?.(l,u),console.log(d.cyan(`
244
+ [Switched to ${l}/${u}] (saved)`));return}let a=s;ji(a)?(Kn({provider:a,model:void 0}),n.switchProvider?.(a),console.log(d.cyan(`
245
+ [Switched to ${a}] (saved)`))):(console.log(d.red(`
246
+ [Unknown provider: ${a}]`)),console.log(d.dim(`Available: ${Gi().join(", ")}
247
+ `)))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
248
+ /model - Switch LLM Provider/Model
249
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /model ")+"List all providers with models"),console.log(d.dim(" /model <provider> ")+"Switch to a provider (default model)"),console.log(d.dim(" /model <provider>/<model> ")+"Switch to a specific model"),console.log(d.dim(" /model /<model> ")+"Switch model within current provider"),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /model ")+"# See available providers & models"),console.log(d.dim(" /model anthropic ")+"# Switch to Anthropic (default model)"),console.log(d.dim(" /model openai/gpt-5.4 ")+"# Switch to OpenAI GPT-5.4"),console.log(d.dim(" /model /claude-opus-4-6 ")+"# Switch to Opus within current provider"),console.log()},"detailedHelp")},{name:"provider",description:"Inspect provider semantics and policy constraints",usage:"/provider [<provider>[/<model>]]",handler:i(async(e,t,n,r)=>{let o=(e[0]??"").trim(),s=r.provider,a=r.model;if(o)if(o.includes("/")){let u=o.indexOf("/");s=o.slice(0,u).trim(),a=o.slice(u+1).trim()||void 0}else s=o,a=void 0;if(!ji(s)){console.log(d.red(`
250
+ [Unknown provider: ${s}]`)),console.log(d.dim(`Available: ${Gi().join(", ")}
251
+ `));return}let c=qw(s,a);if(!c){console.log(d.red(`
252
+ [Provider details unavailable: ${s}]`)),console.log();return}let l=Zw(s,a,r.reasoningMode);console.log(d.bold(`
253
+ Provider Details:
254
+ `)),console.log(d.dim(` Provider: ${d.cyan(c.provider)}${c.model?` / ${d.cyan(c.model)}`:""}`)),console.log(d.dim(` Source: ${Jw(c.sourceKind)}`)),console.log(),console.log(d.bold("Capability Matrix:"));for(let u of Qw(c))console.log(d.dim(` - ${u}`));if(console.log(),l.length>0){console.log(d.bold("Common Scenarios:"));for(let u of l){let m=u.decision.status==="block"?d.red:u.decision.status==="warn"?d.yellow:d.green;console.log(m(` - ${u.label}: ${u.decision.status.toUpperCase()}`)),console.log(d.dim(` ${u.decision.summary}`))}console.log()}},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
255
+ /provider - Inspect Provider Semantics
256
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /provider ")+"Inspect the current provider/model"),console.log(d.dim(" /provider <provider> ")+"Inspect a provider using its default model"),console.log(d.dim(" /provider <provider>/<model> ")+"Inspect a specific provider/model pair"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Shows the provider capability matrix and common 029 policy outcomes.")),console.log(d.dim(" Use this to understand why long-running, harness, or evidence-heavy flows may warn or block.")),console.log()},"detailedHelp")},{name:"thinking",aliases:["think","t"],description:"Show or change reasoning mode (compat alias)",usage:"/thinking [on|off|auto|quick|balanced|deep]",handler:i(async(e,t,n,r)=>{if(e.length===0){let s=Wo(r.provider,r.model),a=r.thinking?d.green("ON"):d.dim("OFF");console.log(d.dim(`
257
+ Thinking: ${a}`)),console.log(d.dim(`Reasoning mode: ${d.cyan(r.reasoningMode)}`)),console.log(d.dim(`Effective control: ${d.cyan(ap(s))}`)),console.log(d.dim(`Actual execution: ${cp(r.reasoningMode,s)}`)),console.log(d.dim(`Usage: /thinking on|off|auto|quick|balanced|deep
258
+ `));return}let o=e[0].toLowerCase();if(o==="on"||o==="off"||Do.includes(o)){let s=o==="on"?"auto":o==="off"?"off":o,a=QC(s,n,r);Br(`Reasoning mode: ${s}`,a);return}console.log(d.red(`
259
+ [Invalid value: ${e[0]}]`)),console.log(d.dim(`Usage: /thinking on|off|auto|quick|balanced|deep
260
+ `))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
261
+ /thinking - Legacy Alias for Reasoning Mode
262
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /thinking ")+"Show current reasoning status"),console.log(d.dim(" /thinking on ")+"Map to /reasoning auto"),console.log(d.dim(" /thinking off ")+"Map to /reasoning off"),console.log(d.dim(" /thinking auto ")+"Set reasoning mode to auto"),console.log(d.dim(" /thinking quick ")+"Set reasoning mode to quick"),console.log(d.dim(" /thinking balanced ")+"Set reasoning mode to balanced"),console.log(d.dim(" /thinking deep ")+"Set reasoning mode to deep"),console.log(d.dim(" /t ")+"Alias for /thinking"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Compatibility command for the new unified reasoning modes.")),console.log(d.dim(" Use /reasoning for the primary interface.")),console.log()},"detailedHelp")},{name:"reasoning",aliases:["reason"],description:"Show or set reasoning mode",usage:"/reasoning [off|auto|quick|balanced|deep]",handler:i(async(e,t,n,r)=>{if(e.length===0){let a=Wo(r.provider,r.model);console.log(d.dim(`
263
+ Reasoning mode: ${d.cyan(r.reasoningMode)}`)),console.log(d.dim(`Thinking compatibility: ${r.thinking?d.green("ON"):d.dim("OFF")}`)),console.log(d.dim(`Effective control: ${d.cyan(ap(a))}`)),console.log(d.dim(`Actual execution: ${cp(r.reasoningMode,a)}`)),console.log(d.dim(`Usage: /reasoning off|auto|quick|balanced|deep
264
+ `));return}let o=e[0].toLowerCase();if(!Do.includes(o)){console.log(d.red(`
265
+ [Invalid reasoning mode: ${e[0]}]`)),console.log(d.dim(`Usage: /reasoning off|auto|quick|balanced|deep
266
+ `));return}let s=QC(o,n,r);Br(`Reasoning mode: ${o}`,s)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
267
+ /reasoning - Set Reasoning Mode
268
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /reasoning ")+"Show current reasoning mode"),console.log(d.dim(" /reasoning off ")+"Disable reasoning"),console.log(d.dim(" /reasoning auto ")+"Use semantic routing + adaptive depth"),console.log(d.dim(" /reasoning quick ")+"Low-depth reasoning"),console.log(d.dim(" /reasoning balanced ")+"Medium-depth reasoning"),console.log(d.dim(" /reasoning deep ")+"High-depth reasoning"),console.log(d.dim(" /reasoning:auto ")+"Inline form, equivalent to /reasoning auto"),console.log(d.dim(" /reason ")+"Alias for /reasoning"),console.log()},"detailedHelp")},{name:"agent-mode",aliases:["am"],description:"Show or set agent mode",usage:"/agent-mode [ama|sa|toggle]",handler:i(async(e,t,n,r)=>{if(e.length===0){console.log(d.dim(`
269
+ Agent mode: ${d.cyan(r.agentMode.toUpperCase())}`)),console.log(d.dim(`Usage: /agent-mode [ama|sa|toggle]
270
+ `));return}let o=e[0]?.toLowerCase(),s=o==="toggle"?r.agentMode==="ama"?"sa":"ama":o==="ama"||o==="sa"?o:void 0;if(!s){console.log(d.red(`
271
+ [Invalid agent mode: ${e[0]}]`)),console.log(d.dim(`Usage: /agent-mode [ama|sa|toggle]
272
+ `));return}let a=S$(s,n,r);Br(`Agent mode: ${s.toUpperCase()}`,a)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
273
+ /agent-mode - Adaptive Multi-Agent Mode Control
274
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /agent-mode ")+"Show current agent mode"),console.log(d.dim(" /agent-mode ama ")+"Enable adaptive multi-agent mode"),console.log(d.dim(" /agent-mode sa ")+"Force single-agent execution"),console.log(d.dim(" /agent-mode toggle ")+"Switch between AMA and SA"),console.log(d.dim(" /am ")+"Alias for /agent-mode"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" AMA keeps adaptive multi-agent harness selection enabled.")),console.log(d.dim(" SA keeps routing and task artifacts, but forces single-agent execution to save tokens.")),console.log()},"detailedHelp")},{name:"auto",aliases:["a"],description:"Quick switch to auto mode",handler:i(async(e,t,n,r)=>{r.permissionMode="auto",n.setPermissionMode?.("auto"),Tc("auto"),console.log(d.cyan(`
275
+ [Switched to auto mode] (saved)`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
276
+ /auto - Quick Switch to Auto Mode
277
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /auto ")+"Switch to auto mode"),console.log(d.dim(" /a ")+"Alias for /auto"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Equivalent to /mode auto.")),console.log(d.dim(" Auto-mode classifier evaluates each non-Tier-1 tool call;")),console.log(d.dim(" benign actions auto-approve, risky ones escalate to user confirm.")),console.log(),console.log(d.dim(" See also: /help mode, /auto-engine, /auto-denials")),console.log()},"detailedHelp")},{name:"skills",description:"(Deprecated) Use /skill instead",usage:"/skill",handler:i(async(e,t)=>{console.log(d.dim(`
278
+ [/skills is deprecated. Use /skill instead]`)),await eb(e,t)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
279
+ /skills - Deprecated
280
+ `)),console.log(d.yellow("This command is deprecated. Use /skill instead.")),console.log(),console.log(d.dim(" /skill ")+"List all available skills"),console.log(d.dim(" /skill:<name> ")+"Invoke a skill"),console.log()},"detailedHelp")},{name:"skill",description:"Skill namespace - invoke skills with /skill:name",usage:"/skill[:name] [args]",handler:i(async(e,t,n,r)=>{await eb(e,t)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
281
+ /skill - Skill Namespace
282
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /skill ")+"List all available skills"),console.log(d.dim(" /skill:<name> [args] ")+"Invoke a skill by name"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" This is the pi-mono style skill invocation format.")),console.log(d.dim(" Skills can also be triggered by natural language - just ask!")),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /skill ")+"# List all skills"),console.log(d.dim(" /skill:code-review src/ ")+"# Invoke code-review skill"),console.log(d.dim(" /skill:tdd auth ")+"# Invoke TDD skill"),console.log()},"detailedHelp")},{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=Ga().verifierLog===!0,a=n?"on":"off",c=s===n?"":` (env=${n?"on":"off"}, config=${s?"on":"off"})`;console.log(d.dim(`
283
+ Sidecar Verifier log: ${d.cyan(a)}${c}`)),console.log(d.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(d.dim(`Usage: /verifier-log [on|off]
284
+ `));return}let r;if(t==="on"||t==="true"||t==="1")r=!0;else if(t==="off"||t==="false"||t==="0")r=!1;else{console.log(d.red(`
285
+ [Invalid value: ${e[0]}]`)),console.log(d.dim(`Usage: /verifier-log [on|off]
286
+ `));return}r?process.env.KODAX_VERIFIER_LOG="1":delete process.env.KODAX_VERIFIER_LOG;let o=vc({verifierLog:r});Br(`Sidecar Verifier log: ${r?"on":"off"}`,o)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
287
+ /verifier-log - Sidecar Verifier Log Toggle
288
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /verifier-log ")+"Show current state"),console.log(d.dim(" /verifier-log on ")+"Enable + persist to config"),console.log(d.dim(" /verifier-log off ")+"Disable + persist to config"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" The Sidecar Verifier is the second-pass LLM judgment that fires")),console.log(d.dim(" after a Worker terminates text-only. Off by default (silent happy")),console.log(d.dim(" path). When on, every verifier call emits a one-line summary:")),console.log(d.dim(" [Sidecar Verifier] accept \xB7 anthropic/claude-sonnet-4-6 \xB7 3214ms \xB7 verifier_ok")),console.log(),console.log(d.bold("Equivalent env var:")),console.log(d.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=Ga().stallLog===!0,a=n?"on":"off",c=s===n?"":` (env=${n?"on":"off"}, config=${s?"on":"off"})`;console.log(d.dim(`
289
+ Stall Sidecar log: ${d.cyan(a)}${c}`)),console.log(d.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(d.dim(`Usage: /stall-log [on|off]
290
+ `));return}let r;if(t==="on"||t==="true"||t==="1")r=!0;else if(t==="off"||t==="false"||t==="0")r=!1;else{console.log(d.red(`
291
+ [Invalid value: ${e[0]}]`)),console.log(d.dim(`Usage: /stall-log [on|off]
292
+ `));return}r?process.env.KODAX_STALL_LOG="1":delete process.env.KODAX_STALL_LOG;let o=vc({stallLog:r});Br(`Stall Sidecar log: ${r?"on":"off"}`,o)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
293
+ /stall-log - Stall Sidecar Log Toggle
294
+ `)),console.log(d.bold("Usage:")),console.log(d.dim(" /stall-log ")+"Show current state"),console.log(d.dim(" /stall-log on ")+"Enable + persist to config"),console.log(d.dim(" /stall-log off ")+"Disable + persist to config"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" The Stall Sidecar (FEATURE_178) is the L2 anti-loop LLM judge that")),console.log(d.dim(" fires when the L1 rule-based detector spots a repeat-tool pattern.")),console.log(d.dim(" Off by default (silent happy path). When on, every L2 verdict emits")),console.log(d.dim(" a one-line summary:")),console.log(d.dim(" [Stall Sidecar] isStuck=true \xB7 zhipu/glm-5.1 (inherit) \xB7 1842ms \xB7 sidecar_ok")),console.log(),console.log(d.bold("Equivalent env var:")),console.log(d.dim(" KODAX_STALL_LOG=1 ")+"Same effect, env wins over config"),console.log()},"detailedHelp")},gh,yh,HC,xh,FC],p$={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 h$(e){let t=Ad();return e.map(n=>t.get(n)).filter(n=>n!==void 0).filter(n=>n.userInvocable!==!1)}i(h$,"getCommandsForCategory");function g$(e){return e!=="off"}i(g$,"reasoningModeToLegacyThinking");var y$=["auto","off","oss","premium-shared","premium-native"];function x$(e){return e&&y$.includes(e)?e:null}i(x$,"normalizeRepoIntelligenceMode");function JC(e){let t=e?.trim();return!t||t==="default"||t==="reset"||t==="clear"?null:t}i(JC,"normalizeRuntimeOverride");function w$(e,t){return e?e==="toggle"?!t:e==="on"||e==="true"||e==="1"?!0:e==="off"||e==="false"||e==="0"?!1:null:null}i(w$,"resolveToggleFlag");function vc(e){try{return Kn(e),{saved:!0}}catch(t){return{saved:!1,error:t instanceof Error?t:new Error(String(t))}}}i(vc,"persistUserConfig");function Br(e,t){if(t.saved){console.log(d.cyan(`
295
+ [${e}] (saved)`));return}console.log(d.yellow(`
296
+ [${e}]`)),console.log(d.red(`[Config save failed: ${t.error.message}]`))}i(Br,"printPersistedCommandStatus");function QC(e,t,n){let r=g$(e),o=vc({reasoningMode:e,thinking:r});return t.setReasoningMode?t.setReasoningMode(e):(n.reasoningMode=e,n.thinking=r),o}i(QC,"applyReasoningMode");function S$(e,t,n){let r=vc({agentMode:e});return t.setAgentMode?t.setAgentMode(e):n.agentMode=e,r}i(S$,"applyAgentMode");function Ed(e,t,n,r){let o=vc(t);return n.setRepoIntelligenceRuntime?n.setRepoIntelligenceRuntime(e):(e.mode!==void 0&&(r.repoIntelligenceMode=e.mode),e.endpoint!==void 0&&(r.repointelEndpoint=e.endpoint??void 0),e.bin!==void 0&&(r.repointelBin=e.bin??void 0),e.trace!==void 0&&(r.repoIntelligenceTrace=e.trace)),o}i(Ed,"applyRepoIntelligenceRuntimeConfig");function T$(e){let t=e.configuredMode===e.requestedMode?e.configuredMode:`${e.configuredMode} -> ${e.requestedMode}`,n=`${e.effectiveEngine}/${e.effectiveBridge}`,r=e.transport?`, ${e.transport}`:"",o=e.fallbackToOss?", fallback=oss":"";return`${t} => ${n} (${e.status}${r}${o})`}i(T$,"formatRepoIntelligenceSummary");function tb(e){console.log(d.bold(`
297
+ Repo Intelligence:
298
+ `)),console.log(d.dim(` Configured: ${d.cyan(e.configuredMode)}`)),console.log(d.dim(` Requested: ${d.cyan(e.requestedMode)}`)),console.log(d.dim(` Active: ${d.cyan(`${e.effectiveEngine}/${e.effectiveBridge}`)}`)),console.log(d.dim(` Status: ${d.cyan(e.status)}${e.transport?d.dim(` (${e.transport})`):""}`)),console.log(d.dim(` Trace: ${d.cyan(e.traceEnabled?"on":"off")}`)),console.log(d.dim(` Endpoint: ${e.endpoint}`)),console.log(d.dim(` Bin: ${e.bin}`)),e.clientBuildId&&console.log(d.dim(` Client ID: ${e.clientBuildId}`)),e.daemonBuildId&&console.log(d.dim(` Daemon ID: ${e.daemonBuildId}`)),e.daemonPid!==void 0&&console.log(d.dim(` Daemon PID: ${e.daemonPid}`)),e.daemonStartedAt&&console.log(d.dim(` Daemon Up: ${e.daemonStartedAt}`)),e.fallbackToOss&&console.log(d.yellow(" Fallback: OSS baseline is currently active")),e.error&&console.log(d.red(` Error: ${e.error}`));for(let t of e.warnings)console.log(d.yellow(` Warning: ${t}`));console.log()}i(tb,"printRepoIntelligenceInspection");function C$(e){e.warmed?console.log(d.green(`
299
+ [repointel warmed successfully]`)):console.log(d.yellow(`
300
+ [repointel warm did not reach a ready daemon state]`)),e.warmLatencyMs!==void 0&&console.log(d.dim(` Warm latency: ${e.warmLatencyMs} ms`)),tb(e)}i(C$,"printRepoIntelligenceWarmResult");function ZC(e,t){if(t.length!==0){console.log(d.dim(`${e}:`));for(let n of t){let r=n.aliases?.length?` (${n.aliases.join(", ")})`:"";console.log(` ${d.cyan(`/${n.name}`)}${d.dim(r)} ${n.description}`)}console.log()}}i(ZC,"printCommandSection");function b$(){console.log(d.bold(`
301
+ Available Commands:
302
+ `));let e=Ad(),t=new Set;for(let[r,o]of Object.entries(p$)){let s=h$(o);if(s.length!==0){for(let a of s)t.add(a.name.toLowerCase());ZC(r,s)}}let n=new Map;for(let r of e.getAll()){if(r.userInvocable===!1||t.has(r.name.toLowerCase()))continue;let o=r.source==="extension"?"Extensions":r.source==="skill"?"Skill Commands":r.source==="prompt"?"Prompt Commands":"Other Commands",s=n.get(o)??[];s.push(r),n.set(o,s)}for(let r of E$()){if(t.has(r.name.toLowerCase()))continue;let o=n.get("Extensions")??[];o.push({name:r.name,aliases:r.aliases,description:r.description}),n.set("Extensions",o)}for(let r of["Extensions","Skill Commands","Prompt Commands","Other Commands"])ZC(r,n.get(r)??[]);console.log(d.dim("Special syntax:")),console.log(` ${d.cyan("@path")} Attach image to context`),console.log(` ${d.cyan("!command")} Execute shell command`),console.log(),console.log(d.dim("Skills:")),console.log(` ${d.cyan("/skill")} List all available skills`),console.log(` ${d.cyan("/skill:<name>")} Invoke a skill (e.g., /skill:code-review)`),console.log()}i(b$,"printHelp");function v$(e){let t=kw({topic:e});console.log(`
303
+ ${d.cyan(t.title)}`),console.log(t.content),t.nextTopics.length>0&&console.log(d.dim(`
304
+ Related topics: ${t.nextTopics.join(", ")}`)),console.log()}i(v$,"printManualTopic");function I$(e){Hr.size===0&&Md();let t=Hr.get(e.toLowerCase());if(!t){let n=_h(e);if(!n){console.log(d.yellow(`
305
+ [Unknown command: /${e}. Type /help for available commands]`));return}console.log(d.cyan(`
306
+ /${n.name}`)),n.aliases?.length&&console.log(d.dim(`Aliases: ${n.aliases.join(", ")}`)),console.log(d.dim(`
307
+ ${n.description}`)),console.log(d.dim(`
308
+ Usage: ${M$(n)}`)),console.log();return}t.detailedHelp?t.detailedHelp():(console.log(d.cyan(`
309
+ /${t.name}`)),t.aliases?.length&&console.log(d.dim(`Aliases: ${t.aliases.join(", ")}`)),console.log(d.dim(`
310
+ ${t.description}`)),t.usage&&console.log(d.dim(`
311
+ Usage: ${t.usage}`)),console.log())}i(I$,"printDetailedHelp");async function k$(e,t,n=[]){let r=n[0]?.toLowerCase(),o=e.contextTokenSnapshot?.currentTokens??Bo(e.messages),s=e.contextTokenSnapshot?.source??"estimate",a=Yw(t.provider),c=yu(t.provider,t.model,t.reasoningMode);if(console.log(d.bold(`
312
+ Session Status:
313
+ `)),console.log(d.dim(` Provider: ${d.cyan(t.provider)}${t.model?` / ${d.cyan(t.model)}`:""}`)),console.log(d.dim(` Permission: ${d.cyan(t.permissionMode)}`)),console.log(d.dim(` Reasoning: ${d.cyan(t.reasoningMode)}`)),console.log(d.dim(` Agent Mode: ${d.cyan(t.agentMode.toUpperCase())}`)),a){let u=sp(a),m=a.transport==="cli-bridge"?d.yellow(u):d.cyan(u);console.log(d.dim(` Provider Cap: ${m}`))}if(c&&c.status!=="allow"){let u=c.status==="block"?d.red:d.yellow;console.log(d.dim(` Provider Policy: ${u(c.summary)}`))}console.log(d.dim(` Session ID: ${e.sessionId}`)),console.log(d.dim(` Messages: ${e.messages.length}`)),console.log(d.dim(` Tokens: ~${o} (${s})`));let l=await Wa({mode:t.repoIntelligenceMode,trace:t.repoIntelligenceTrace});console.log(d.dim(` Repo Intel: ${d.cyan(T$(l))}`)),e.runtimeInfo?.workspaceRoot?console.log(d.dim(` Workspace: ${d.cyan(xn(e.runtimeInfo))}`)):e.gitRoot&&console.log(d.dim(` Workspace: ${d.cyan(e.gitRoot)}`)),(r==="workspace"||r==="worktree"||r==="runtime")&&(e.runtimeInfo?.canonicalRepoRoot&&console.log(d.dim(` Canonical: ${e.runtimeInfo.canonicalRepoRoot}`)),e.runtimeInfo?.executionCwd&&console.log(d.dim(` Exec CWD: ${e.runtimeInfo.executionCwd}`)),e.runtimeInfo?.workspaceKind&&console.log(d.dim(` Kind: ${e.runtimeInfo.workspaceKind}`))),console.log(d.dim(` Created: ${e.createdAt}`)),console.log(d.dim(` Last Active: ${e.lastAccessed}`)),console.log()}i(k$,"printStatus");async function eb(e,t){let n=Rr(t.gitRoot);n.size===0&&await Ho(t.gitRoot),R$(n.listUserInvocable())}i(eb,"handleSkillNamespaceCommand");function R$(e){if(console.log(d.bold(`
314
+ Available Skills:
315
+ `)),e.length===0){console.log(d.dim(" No skills found.")),console.log(d.dim(`
316
+ Skills can be placed in:`)),console.log(d.dim(" - .kodax/skills/")),console.log(d.dim(" - ~/.kodax/skills/"));return}let t=Math.max(...e.map(n=>n.name.length));for(let n of e){let r=n.name.padEnd(t),o=n.argumentHint?` ${n.argumentHint}`:"",s=n.source==="builtin"?" [builtin]":n.source==="user"?" [user]":n.source==="plugin"?" [plugin]":"",a=n.description.length>50?n.description.slice(0,50)+"...":n.description;console.log(` ${d.cyan(`/skill:${r}`)}${d.dim(o)}${d.dim(s)} ${d.dim(a)}`)}console.log(),console.log(d.dim(`Total: ${e.length} skills`)),console.log(d.dim("Usage: /skill:<name> [args] or ask naturally")),console.log()}i(R$,"printSkillsListPiMonoStyle");var Hr=new Es;function Md(e){Hr.size>0||YC(Hr,e)}i(Md,"initCommandRegistry");function Ad(e){return Md(e),Hr}i(Ad,"getCommandRegistry");function E$(){return Er()?.listCommands().filter(t=>t.metadata?.userInvocable!==!1)??[]}i(E$,"getActiveExtensionCommands");function _h(e){let t=Er(),n=e.trim().toLowerCase();if(!n)return;let r=t?.listCommands().find(o=>o.name.trim().toLowerCase()===n||(o.aliases??[]).some(s=>s.trim().toLowerCase()===n));if(r)return r.metadata?.userInvocable===!1?void 0:r}i(_h,"getActiveExtensionCommand");function M$(e){return e.usage??`/${e.name}`}i(M$,"formatExtensionCommandUsage");function A$(e){return Array.isArray(e)?e.map(t=>String(t)).join(", "):e&&typeof e=="object"?JSON.stringify(e):String(e)}i(A$,"formatExtensionDiagnosticValue");function _$(e){if(!e)return;let t=Object.entries(e).filter(([,n])=>n!==void 0).map(([n,r])=>`${n}=${A$(r)}`);return t.length>0?t.join(" | "):void 0}i(_$,"formatExtensionDiagnosticMetadata");function As(e){let t=e.getDiagnostics;if(typeof t=="function")return t.call(e);let n=e.getDefaults,r=typeof n=="function"?n.call(e):void 0;return{loadedExtensions:[],capabilityProviders:e.listCapabilityProviders().map(o=>({id:o.id,kinds:[...o.kinds],source:{kind:"extension",id:`extension:${o.id}`,label:o.id,path:"(runtime)"}})),commands:e.listCommands().map(o=>({name:o.name,aliases:o.aliases,description:o.description,usage:o.usage,metadata:o.metadata,source:{kind:"extension",id:`extension-command:${o.name}`,label:o.name,path:"(runtime)"}})),tools:[],hooks:[],failures:[],defaults:{activeTools:r?.activeTools,modelSelection:r?.modelSelection??{},thinkingLevel:r?.thinkingLevel}}}i(As,"getExtensionRuntimeDiagnostics");function L$(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(L$,"toExtensionInvocationRequest");async function P$(e,t,n){let r=Er();if(!r)return console.log(d.yellow(`
317
+ [Extension runtime is not active for /${e.name}]`)),!1;let o=await e.handler(t,{sessionId:n.sessionId,gitRoot:n.gitRoot,workingDirectory:n.runtimeInfo?.executionCwd??n.gitRoot??process.cwd(),reloadExtensions:i(()=>r.reloadExtensions(),"reloadExtensions"),getDiagnostics:i(()=>As(r),"getDiagnostics"),logger:{debug:i((...a)=>console.debug(`[kodax:extension-command:${e.name}]`,...a),"debug"),info:i((...a)=>console.info(`[kodax:extension-command:${e.name}]`,...a),"info"),warn:i((...a)=>console.warn(`[kodax:extension-command:${e.name}]`,...a),"warn"),error:i((...a)=>console.error(`[kodax:extension-command:${e.name}]`,...a),"error")}});if(!o)return!0;o.message&&console.log(o.message);let s=L$(e,o);return s?{invocation:s}:!0}i(P$,"executeExtensionCommand");function _s(e){let t=e.trim();if(!t.startsWith("/"))return null;let n=t.slice(1).split(/\s+/),o=n[0]?.toLowerCase(),s=n.slice(1).filter(Boolean);if(!o)return null;if(o.startsWith("skill:")){let c=o.slice(6);return c?{command:"skill",args:s,skillInvocation:{name:c}}:{command:"skill",args:s}}let a=o.indexOf(":");if(a>0){let c=o.slice(a+1).trim();o=o.slice(0,a),s=c?[c,...s]:s}return{command:o,args:s}}i(_s,"parseCommand");async function Ls(e,t,n,r){if(Hr.size===0&&Md(t.gitRoot),e.skillInvocation)return await $$({command:e.skillInvocation.name,args:e.args},t);let o=Hr.get(e.command);if(o){if(o.userInvocable===!1)return console.log(d.yellow(`
318
+ [Command /${o.name} is not user-invocable]`)),!1;try{let a=await o.handler(e.args,t,n,r);return a&&typeof a=="object"?a:!0}catch(a){return console.log(d.red(`
319
+ [Command failed: ${a instanceof Error?a.message:String(a)}]`)),!1}}let s=_h(e.command);if(s)try{return await P$(s,e.args,t)}catch(a){return console.log(d.red(`
320
+ [Extension command failed: ${a instanceof Error?a.message:String(a)}]`)),!1}return console.log(d.yellow(`
321
+ [Unknown command: /${e.command}. Type /help for available commands]`)),!1}i(Ls,"executeCommand");async function $$(e,t){let n=Rr(t.gitRoot),r=e.command,o=e.args.join(" ");n.size===0&&await Ho(t.gitRoot);try{let s=n.get(r);if(!s)return console.log(d.red(`
322
+ [Skill not found: ${r}]`)),!1;if(!s.userInvocable)return console.log(d.yellow(`
323
+ [Skill "${r}" is not user-invocable]`)),!1;console.log(d.cyan(`
324
+ [Invoking skill: ${r}]`)),s.argumentHint&&console.log(d.dim(`Arguments: ${o||"(none)"}`)),console.log();let a=await n.loadFull(r),c={workingDirectory:process.cwd(),projectRoot:t.gitRoot??void 0,sessionId:t.sessionId,environment:{}},l=await Tw(a,o,c);return console.log(d.green(`Skill activated: ${r}`)),console.log(d.dim("The skill context has been prepared for the AI.")),console.log(),{invocation:{prompt:l.content,source:"skill",displayName:r,path:a.skillFilePath,disableModelInvocation:l.disableModelInvocation,userInvocable:a.userInvocable,allowedTools:a.allowedTools,context:a.context,agent:a.agent,argumentHint:a.argumentHint,model:a.model,hooks:a.hooks,skillInvocation:{name:r,path:a.skillFilePath,description:a.description,arguments:o||void 0,allowedTools:a.allowedTools,context:a.context,agent:a.agent,argumentHint:a.argumentHint,model:a.model,hookEvents:a.hooks?Object.entries(a.hooks).filter(([,u])=>Array.isArray(u)&&u.length>0).map(([u])=>u):void 0,expandedContent:l.content}}}}catch(s){return console.log(d.red(`
325
+ [Error invoking skill: ${s instanceof Error?s.message:String(s)}]`)),!1}}i($$,"executeSkillCommand");import{jsx as Q$}from"react/jsx-runtime";import{useState as Z$,useEffect as ub,useCallback as po,useMemo as db,createContext as e1,useContext as fb}from"react";import*as _d from"fs";import*as Ic from"path";import{exec as O$}from"node:child_process";import*as Ps from"node:path";import{promisify as D$}from"node:util";var nb=D$(O$);function N$(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(N$,"pathFromPorcelainLine");async function rb(e,t=10){try{let[{stdout:n},{stdout:r}]=await Promise.all([nb("git rev-parse --show-toplevel",{cwd:e}),nb("git status --porcelain=v1 -uall",{cwd:e})]),o=n.trim(),s=[],a=new Set;for(let c of r.split(`
326
+ `)){if(!c.trim())continue;let l=N$(c);if(!l)continue;let u=Ps.resolve(o,l),m=Ps.relative(e,u).split(Ps.sep).join("/");if(!(!m||m.startsWith("..")||a.has(m))&&(a.add(m),s.push(m),s.length>=t))break}return s}catch{return[]}}i(rb,"getRecentWorkingSetFiles");function mo(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(mo,"findCommandSlashIndex");var oi=class{static{i(this,"FileCompleter")}cwdSource;cache=new Map;cacheTimeout=5e3;recentCache=new Map;recentFilesProvider;constructor(t,n=rb){this.cwdSource=t,this.recentFilesProvider=n}canComplete(t,n){let r=t.slice(0,n),o=r.lastIndexOf("@");return!(o===-1||o>0&&!/\s/.test(r[o-1]??"")||r.slice(o+1).includes(" "))}async getCompletions(t,n){let r=t.slice(0,n),o=r.lastIndexOf("@");if(o===-1)return[];let s=r.slice(o+1),a=[],c=this.resolveCwd(),l=s.lastIndexOf("/"),u=l===-1?c:Ic.join(c,s.slice(0,l)),m=l===-1?s:s.slice(l+1);try{let h=(await this.readdir(u)).filter(g=>g.toLowerCase().startsWith(m.toLowerCase()));for(let g of h){let y=Ic.join(u,g),x=await this.isDirectory(y),w=l===-1?g:s.slice(0,l+1)+g;a.push({text:"@"+w+(x?"/":""),display:g+(x?"/":""),description:x?"directory":"file",type:"file"})}}catch{}if(l===-1){let p=await this.getRecentFiles(c),h=new Set(a.map(x=>x.text)),g=m.toLowerCase(),y=[];for(let x of p){if(m&&!Ic.basename(x).toLowerCase().startsWith(g))continue;let w="@"+x;h.has(w)||(h.add(w),y.push({text:w,display:x,description:"recent",type:"file"}))}a.unshift(...y)}return a}async getRecentFiles(t){let n=Date.now(),r=this.recentCache.get(t);if(r&&r.expiresAt>n)return r.files;let o=await this.recentFilesProvider(t);return this.recentCache.set(t,{files:o,expiresAt:Date.now()+this.cacheTimeout}),o}resolveCwd(){return typeof this.cwdSource=="function"?this.cwdSource():this.cwdSource??process.cwd()}async readdir(t){let n=Date.now(),r=this.cache.get(t);return r&&r.expiresAt>n?r.entries:(r&&this.cache.delete(t),new Promise(o=>{_d.readdir(t,(s,a)=>{s?o([]):(this.cache.set(t,{entries:a,expiresAt:Date.now()+this.cacheTimeout}),o(a))})}))}async isDirectory(t){return new Promise(n=>{_d.stat(t,(r,o)=>{n(!r&&o.isDirectory())})})}},kc=class{static{i(this,"CommandCompleter")}commands;constructor(){this.commands=new Map,this.loadCommands()}loadCommands(){for(let n of Ad().getAll())n.userInvocable!==!1&&this.commands.set(n.name,{description:n.description,aliases:n.aliases??[]});let t=Er();for(let n of t?.listCommands()??[])n.metadata?.userInvocable!==!1&&this.commands.set(n.name,{description:n.description,aliases:n.aliases??[]})}canComplete(t,n){let r=t.slice(0,n),o=mo(r);return o===-1?!1:!r.slice(o).includes(" ")}async getCompletions(t,n){let r=t.slice(0,n),o=mo(r);if(o===-1)return[];this.commands.clear(),this.loadCommands();let s=r.slice(o+1).toLowerCase(),a=[];for(let[c,l]of this.commands){this.fuzzyMatch(s,c)&&a.push({text:"/"+c,display:"/"+c,description:l.description,type:"command"});for(let u of l.aliases)u!==c&&this.fuzzyMatch(s,u)&&a.push({text:"/"+u,display:"/"+u,description:`Alias for /${c}: ${l.description}`,type:"command"})}return a}fuzzyMatch(t,n){if(!t)return!0;let r=t.toLowerCase(),o=n.toLowerCase(),s=0;for(let a=0;a<o.length&&s<r.length;a++)o[a]===r[s]&&s++;return s===r.length}};function ob(e){let t=new oi(e),n=new kc;return async r=>{let o=r.includes("@"),s=r.includes("/");if(!o&&!s)return[[],r];let a=[];if(s&&n.canComplete(r,r.length)){let l=await n.getCompletions(r,r.length);a.push(...l)}if(o&&t.canComplete(r,r.length)){let l=await t.getCompletions(r,r.length);a.push(...l)}return[a.map(l=>l.display),r]}}i(ob,"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 r=t.slice(0,n);if(!/\/skill:[^\s]*$/.test(r))return!1;let o=r.lastIndexOf("/skill:");return!(o>0&&!/\s/.test(r[o-1]??""))}async getCompletions(t,n){let o=t.slice(0,n).match(/\/skill:([^\s]*)$/);if(!o)return[];let s=(o[1]??"").toLowerCase();return(await this.getSkills()).filter(c=>{let l=c.name.toLowerCase();return l.includes(s)||this.fuzzyIncludes(s,l)}).map(c=>({text:`/skill:${c.name}`,display:c.name,description:this.truncateDescription(c.description),type:"command"})).sort((c,l)=>{let u=c.display.toLowerCase().startsWith(s),m=l.display.toLowerCase().startsWith(s);return u&&!m?-1:!u&&m?1:c.display.length-l.display.length})}setGitRoot(t){this.gitRoot!==t&&(this.gitRoot=t,this.skillsCache=null)}async getSkills(){let t=Date.now();if(this.skillsCache&&t-this.cacheTimestamp<this.CACHE_TTL)return this.skillsCache;try{let n=Rr(this.gitRoot);return n.size===0&&await Ho(this.gitRoot),this.skillsCache=n.listUserInvocable(),this.cacheTimestamp=t,this.skillsCache}catch{return[]}}fuzzyIncludes(t,n){let r=0;for(let o=0;o<n.length&&r<t.length;o++)n[o]===t[r]&&r++;return r===t.length}truncateDescription(t,n=50){return t.length<=n?t:t.slice(0,n-3)+"..."}};var B$=[{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"}],Ld=[{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"}],ib=Ld.slice(2).concat([{name:"off",description:"Disable reasoning",type:"enum"}]);function H$(e){if(e&&e.includes("/")){let t=e.indexOf("/"),n=e.slice(0,t),r=e.slice(t+1);if(ji(n))try{return es(n).filter(s=>!r||s.toLowerCase().includes(r.toLowerCase())).map(s=>({name:`${n}/${s}`,description:s,type:"enum"}))}catch{}return[]}return Gi().map(t=>({name:t,description:`Switch to ${t} provider`,type:"enum"}))}i(H$,"getModelArgs");var sb=[{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"}],Lh=[{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"}],Ph=[{name:"all",description:"Delete ALL sessions",type:"enum"}],F$=[{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"}],W$=[{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"}],U$=[{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"}],ab=[{name:"default",description:"Clear the override and use the default value again",type:"enum"}];function j$(e){let[t=""]=e,n=t.toLowerCase(),r=e.length===1&&e[0]===""?0:e.length;return r<=1?F$:r>2?[]:n==="mode"?W$:n==="trace"?U$:n==="endpoint"?[...ab,{name:Rw,description:"Default local repointel daemon endpoint",type:"string"}]:n==="bin"?ab:[]}i(j$,"getRepointelArgs");var G$=new Map([["mode",B$],["thinking",Ld],["think",Ld],["t",Ld],["reasoning",ib],["reason",ib],["plan",sb],["p",sb],["status",Lh],["info",Lh],["ctx",Lh],["delete",Ph],["rm",Ph],["del",Ph]]),K$=new Set(["model","m"]),V$=new Set(["repointel","ri"]);function $h(e,t,n=[]){let r=e.toLowerCase();return K$.has(r)?H$(t):V$.has(r)?j$(n):G$.get(r)??[]}i($h,"getCommandArguments");var Pd=class{static{i(this,"ArgumentCompleter")}canComplete(t,n){let r=t.slice(0,n),o=mo(r);if(o===-1)return!1;let s=r.slice(o),a=s.split(/\s+/);if(a.length>=2&&a[0]!=="")return!0;let c=s.slice(1).toLowerCase();return $h(c).length>0}async getCompletions(t,n){let r=t.slice(0,n),o=mo(r);if(o===-1)return[];let s=r.slice(o),a=s.indexOf(" "),c=(a===-1?s.slice(1):s.slice(1,a)).toLowerCase(),l=a===-1?"":s.slice(a+1),u=l?l.split(/\s+/):[""],m=u.length-1,p=(u[m]??"").toLowerCase(),h=$h(c,p,u);if(!h||h.length===0)return[];let g=new Set(u.slice(0,-1).map(x=>x.toLowerCase()));return h.filter(x=>!g.has(x.name.toLowerCase())).filter(x=>!p||x.name.includes("/")?!0:x.name.toLowerCase().includes(p)).map(x=>({text:x.name,display:x.name,description:x.description,type:"argument"})).sort((x,w)=>{let T=x.display.toLowerCase().startsWith(p),I=w.display.toLowerCase().startsWith(p);return T&&!I?-1:!T&&I?1:x.display.length-w.display.length})}};function z$(e,t){if(!e)return{matched:!0,score:0,highlights:[]};if(e.length>t.length)return{matched:!1,score:0,highlights:[]};let n=e.toLowerCase(),r=t.toLowerCase(),o=0,s=-1,a=[];for(let l=0;l<e.length;l++){let u=n[l];if(u===void 0)continue;let m=r.indexOf(u,s+1);if(m===-1)return{matched:!1,score:0,highlights:[]};m===s+1?o+=10:m===0?o+=5:o-=1,t[m]===e[l]&&(o+=2),a.push(m),s=m}let c=X$(t,a);return o+=c,{matched:!0,score:o,highlights:a}}i(z$,"fuzzyMatch");function X$(e,t){let n=0;for(let r of t)if(r===0)n+=3;else if(r>0){let o=e[r-1];(o===" "||o==="-"||o==="_")&&(n+=2)}return n}i(X$,"calculateWordBoundaryBonus");function Y$(e,t){return e?t.toLowerCase().startsWith(e.toLowerCase()):!0}i(Y$,"prefixMatch");function q$(e,t){if(Y$(e,t)){let o=e?Array.from({length:e.length},(s,a)=>a):[];return{matched:!0,score:100+e.length*10,highlights:o,isPrefix:!0}}return{...z$(e,t),isPrefix:!1}}i(q$,"combinedMatch");function cb(e,t,n=0){return e?t.map(r=>{let o=q$(e,r.text);return{...r,_fuzzyScore:o.matched?o.score:-1,_fuzzyHighlights:o.highlights}}).filter(r=>(r._fuzzyScore??-1)>=n).sort((r,o)=>{let s=(o._fuzzyScore??0)-(r._fuzzyScore??0);return s!==0?s:r.text.length-o.text.length}):t}i(cb,"sortCandidatesCombined");var J$={debounceDelay:100,minTriggerChars:1,maxCompletions:10,minScore:0},Oh=class{static{i(this,"AutocompleteProvider")}completers;options;state;listeners=new Set;debounceTimer=null;lastInput="";lastCursorPos=0;constructor(t={}){this.options={...J$,...t},this.completers=[new Rc(this.options.gitRoot),new Pd,new kc,new oi(this.options.cwd)],this.state={visible:!1,selectedIndex:0,completions:[],loading:!1}}getOptions(){return{...this.options}}getState(){return{...this.state}}subscribe(t){return this.listeners.add(t),()=>this.listeners.delete(t)}updateOptions(t){let n=t.gitRoot!==void 0&&t.gitRoot!==this.options.gitRoot,r=t.cwd!==void 0&&t.cwd!==this.options.cwd;if(this.options={...this.options,...t},n&&this.completers.find(s=>s instanceof Rc)?.setGitRoot(this.options.gitRoot),r){let o=this.completers.findIndex(s=>s instanceof oi);o!==-1&&(this.completers[o]=new oi(this.options.cwd))}}handleInput(t,n){if(this.lastInput=t,this.lastCursorPos=n,this.debounceTimer&&clearTimeout(this.debounceTimer),!this.shouldTrigger(t,n)){this.state.visible&&this.updateState({visible:!1,completions:[],selectedIndex:0});return}this.debounceTimer=setTimeout(()=>{this.fetchCompletions(t,n)},this.options.debounceDelay)}async fetchImmediate(t,n){return this.fetchCompletionsInternal(t,n)}selectPrevious(){if(!this.state.visible||this.state.completions.length===0)return;let t=this.state.selectedIndex>0?this.state.selectedIndex-1:this.state.completions.length-1;this.updateState({selectedIndex:t})}selectNext(){if(!this.state.visible||this.state.completions.length===0)return;let t=this.state.selectedIndex<this.state.completions.length-1?this.state.selectedIndex+1:0;this.updateState({selectedIndex:t})}getSelectedCompletion(){return!this.state.visible||this.state.completions.length===0?null:this.state.completions[this.state.selectedIndex]??null}acceptCompletion(){let t=this.getSelectedCompletion();return t?(this.updateState({visible:!1,completions:[],selectedIndex:0}),t.text):null}acceptCompletionWithType(){let t=this.getSelectedCompletion();return t?(this.updateState({visible:!1,completions:[],selectedIndex:0}),{text:t.text,type:t.type}):null}cancel(){this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.state.visible&&this.updateState({visible:!1,completions:[],selectedIndex:0})}shouldTrigger(t,n){if(t.length<this.options.minTriggerChars)return!1;let r=t.slice(0,n),s=mo(r)!==-1,a=r.lastIndexOf("@"),c=a===0||a>0&&/\s/.test(r[a-1]??"");return s||c}fetchCompletions(t,n){this.updateState({loading:!0}),this.fetchCompletionsInternal(t,n).then(r=>{this.lastInput!==t||this.lastCursorPos!==n||(r.length>0?this.updateState({visible:!0,completions:r.slice(0,this.options.maxCompletions),selectedIndex:0,loading:!1}):this.updateState({visible:!1,completions:[],selectedIndex:0,loading:!1}))}).catch(()=>{this.updateState({loading:!1})})}async fetchCompletionsInternal(t,n){let r=this.completers.filter(l=>l.canComplete(t,n));if(r.length===0)return[];let o=[];for(let l of r)try{let u=await l.getCompletions(t,n);o.push(...u)}catch(u){console.error("[Autocomplete] Completer error:",u)}let s=this.extractPattern(t,n),a=o.map((l,u)=>({_idx:u,text:l.type==="command"&&l.display.startsWith("/")?l.display.slice(1):l.display}));return cb(s,a,this.options.minScore).map(l=>o[l._idx]).filter(l=>l!==void 0)}extractPattern(t,n){let r=t.slice(0,n),o=mo(r);if(o!==-1){let c=r.slice(o),l=c.match(/^\/skill:(\S*)$/);if(l)return l[1]??"";let u=c.match(/^\/(\S*)$/);if(u)return u[1]??"";let m=c.split(/\s+/);return(m[m.length-1]??"").toLowerCase()}let s=r.lastIndexOf("@");if(s!==-1){let c=r.slice(s+1),l=c.lastIndexOf("/");return l===-1?c:c.slice(l+1)}let a=r.match(/(\S+)$/);return a?a[1]??"":""}updateState(t){this.state={...this.state,...t};for(let n of this.listeners)try{n(this.state)}catch(r){console.error("[Autocomplete] Listener error:",r)}}};function lb(e){return new Oh(e)}i(lb,"createAutocompleteProvider");var Dh=e1(null);function Nh({children:e,cwd:t,gitRoot:n}){let r=$d({cwd:t,gitRoot:n,enabled:!0});return Q$(Dh.Provider,{value:r,children:e})}i(Nh,"AutocompleteContextProvider");function ii(){return fb(Dh)}i(ii,"useAutocompleteContext");function t1(e,t){let n={command:"command",file:"file",argument:"argument",skill:"skill"},r={command:"\u26A1",file:"\u{1F4C4}",argument:"\u2022",skill:"\u2605"};return{id:`autocomplete-${t}`,text:e.text,displayText:e.display,description:e.description,type:n[e.type]??"command",icon:r[e.type]??">"}}i(t1,"completionToSuggestion");function $d(e={}){let t=fb(Dh);return t&&!e.cwd&&!e.gitRoot?t:n1(e)}i($d,"useAutocomplete");function n1(e){let{cwd:t,gitRoot:n,enabled:r=!0}=e,o=db(()=>lb({cwd:t,gitRoot:n,debounceDelay:100,minTriggerChars:1,maxCompletions:8}),[]);ub(()=>{o.updateOptions({cwd:t,gitRoot:n})},[o,t,n]);let[s,a]=Z$({visible:!1,selectedIndex:0,completions:[],loading:!1});ub(()=>o.subscribe(T=>{a(T)}),[o]);let c=db(()=>s.completions.map((w,T)=>t1(w,T)),[s.completions]),l=po((w,T)=>{if(!r){o.cancel();return}o.handleInput(w,T)},[o,r]),u=po(()=>s.visible?o.acceptCompletionWithType():null,[o,s.visible]),m=po(()=>s.visible?o.acceptCompletionWithType():null,[o,s.visible]),p=po(()=>{s.visible&&o.selectPrevious()},[o,s.visible]),h=po(()=>{s.visible&&o.selectNext()},[o,s.visible]),g=po(()=>{s.visible&&o.cancel()},[o,s.visible]),y=po(()=>{o.cancel()},[o]),x=po(()=>o,[o]);return{state:s,suggestions:c,handleInput:l,handleTab:u,handleEnter:m,handleUp:p,handleDown:h,handleEscape:g,cancel:y,getProvider:x}}i(n1,"useAutocompleteImpl");import{useCallback as Ec,useRef as mb}from"react";var On=[];function Bh(e={}){let{maxSize:t=1e3,onSave:n}=e,r=mb(-1),o=mb(""),s=Ec((m,p)=>{if(!m.trim())return;if(On[On.length-1]?.text!==m){let g={text:m,timestamp:Date.now(),...p?.pastedContents&&p.pastedContents.length>0?{pastedContents:[...p.pastedContents]}:{}};On.push(g),On.length>t&&On.splice(0,On.length-t),n?.(g)}r.current=-1,o.current=""},[t,n]),a=Ec(()=>On.length===0?null:r.current===-1?(r.current=On.length-1,On[r.current]??null):r.current>0?(r.current--,On[r.current]??null):null,[]),c=Ec(()=>r.current===-1?null:r.current<On.length-1?(r.current++,On[r.current]??null):(r.current=-1,{text:o.current,timestamp:Date.now()}),[]),l=Ec(()=>{r.current=-1,o.current=""},[]),u=Ec(m=>{r.current===-1&&(o.current=m)},[]);return{add:s,navigateUp:a,navigateDown:c,reset:l,saveTempInput:u}}i(Bh,"useInputHistory");function an(e,t,n){return en(e).slice(t,n).join("")}i(an,"sliceByCodePoints");var Mc=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 ir(this.currentLine)}get visualCursor(){let t=this._lines[this._cursor.row]??"",n=an(t,0,this._cursor.col);return{row:this._cursor.row,col:ir(n)}}getCharWidthAtCursor(){let t=this._lines[this._cursor.row]??"",r=en(t)[this._cursor.col];return r?or(r)?2:1:0}visualColToLogicalCol(t){let n=this._lines[this._cursor.row]??"",r=en(n),o=0;for(let s=0;s<r.length;s++){let a=or(r[s])?2:1;if(o+a>t)return s;o+=a}return r.length}moveToVisualCol(t){this._cursor.col=this.visualColToLogicalCol(t),this._rememberedCol=this._cursor.col}setText(t){this._saveHistory(),this._setTextInternal(t),this._clampCursor()}replaceRange(t,n,r){this._saveHistory();let o=Math.max(0,Math.min(t,this._text.length)),s=Math.max(o,Math.min(n,this._text.length)),a=this._text.slice(0,o)+r+this._text.slice(s);this._setTextInternal(a),this.moveToAbsoluteOffset(o+r.length)}insert(t,n){if(this._saveHistory(),n?.paste){this._insertText(t);return}let r=t.split(`
327
+ `);for(let o=0;o<r.length;o++)o>0&&this._insertNewline(),this._insertText(r[o])}_insertText(t){let n=this._lines[this._cursor.row],r=an(n,0,this._cursor.col),o=an(n,this._cursor.col);this._lines[this._cursor.row]=r+t+o,this._cursor.col+=pn(t),this._rememberedCol=this._cursor.col,this._updateText()}newline(){this._saveHistory(),this._insertNewline()}_insertNewline(){let t=this._lines[this._cursor.row],n=an(t,0,this._cursor.col),r=an(t,this._cursor.col);this._lines[this._cursor.row]=n,this._lines.splice(this._cursor.row+1,0,r),this._cursor.row++,this._cursor.col=0,this._rememberedCol=0,this._updateText()}backspace(){if(this._cursor.col>0){this._saveHistory();let t=this._lines[this._cursor.row],n=this._cursor.col-1,r=an(t,0,n),o=an(t,this._cursor.col);this._lines[this._cursor.row]=r+o,this._cursor.col=n,this._rememberedCol=this._cursor.col,this._updateText()}else if(this._cursor.row>0){this._saveHistory();let t=this._lines[this._cursor.row],n=this._lines[this._cursor.row-1];this._cursor.col=pn(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<pn(t)){this._saveHistory();let n=an(t,0,this._cursor.col),r=an(t,this._cursor.col+1);this._lines[this._cursor.row]=n+r,this._updateText()}else if(this._cursor.row<this._lines.length-1){this._saveHistory();let n=this._lines[this._cursor.row+1];this._lines[this._cursor.row]=t+n,this._lines.splice(this._cursor.row+1,1),this._updateText()}}move(t){switch(t){case"up":this._moveUp();break;case"down":this._moveDown();break;case"left":this._moveLeft();break;case"right":this._moveRight();break;case"home":this._moveHome();break;case"end":this._moveEnd();break}}_moveUp(){this._cursor.row>0&&(this._cursor.row--,this._clampColumn())}_moveDown(){this._cursor.row<this._lines.length-1&&(this._cursor.row++,this._clampColumn())}_moveLeft(){this._cursor.col>0?(this._cursor.col--,this._rememberedCol=this._cursor.col):this._cursor.row>0&&(this._cursor.row--,this._cursor.col=pn(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col)}_moveRight(){let t=this._lines[this._cursor.row];this._cursor.col<pn(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=pn(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col}_clampColumn(){let t=this._lines[this._cursor.row],n=pn(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,pn(this._lines[this._cursor.row]))),this._rememberedCol=this._cursor.col}killLineRight(){let t=this._lines[this._cursor.row];this._cursor.col<pn(t)&&(this._saveHistory(),this._lines[this._cursor.row]=an(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]=an(t,this._cursor.col),this._cursor.col=0,this._rememberedCol=0,this._updateText()}}deleteWordLeft(){if(this._cursor.col===0)return;this._saveHistory();let t=this._lines[this._cursor.row],n=this._cursor.col-1,r=en(t);for(;n>0&&/\s/.test(r[n]??"");)n--;for(;n>0&&!/\s/.test(r[n-1]??"");)n--;let o=an(t,0,n),s=an(t,this._cursor.col);this._lines[this._cursor.row]=o+s,this._cursor.col=n,this._rememberedCol=this._cursor.col,this._updateText()}_saveHistory(){this._history=this._history.slice(0,this._historyIndex+1),this._history.push(this._text),this._history.length>this._maxHistory&&this._history.shift(),this._historyIndex=this._history.length-1}undo(){return this._historyIndex>0?(this._historyIndex--,this._text=this._history[this._historyIndex]??"",this._lines=this._text.split(`
328
+ `),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(`
329
+ `),this._lines.length===0&&(this._lines=[""]),this._clampCursor(),!0):!1}_updateText(){this._text=this._lines.join(`
330
+ `)}_setTextInternal(t){this._text=t,this._lines=t.split(`
331
+ `),this._lines.length===0&&(this._lines=[""])}moveToAbsoluteOffset(t){let r=Math.max(0,Math.min(t,this._text.length));for(let o=0;o<this._lines.length;o++){let s=this._lines[o]??"",a=s.length;if(r<=a){this._cursor={row:o,col:pn(s.slice(0,r))},this._rememberedCol=this._cursor.col;return}r-=a,o<this._lines.length-1&&(r-=1)}this.moveToEnd()}clear(){this._saveHistory(),this._text="",this._lines=[""],this._cursor={row:0,col:0},this._rememberedCol=0}getAbsoluteOffset(){let t=0;for(let r=0;r<this._cursor.row;r++)t+=(this._lines[r]?.length??0)+1;let n=this._lines[this._cursor.row]??"";return t+=an(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=pn(this._lines[this._cursor.row]??""),this._rememberedCol=this._cursor.col}};import{useState as r1,useCallback as _t,useRef as Hh,useEffect as o1}from"react";function Fh(e={}){let{initialValue:t="",onTextChange:n}=e,r=Hh(null),o=Hh(null),s=Hh(null),[a,c]=r1({text:t,cursor:{row:0,col:0},lines:[""],isPasting:!1,editingMode:t?"typing":"idle"});r.current===null&&(r.current=new Mc,t&&r.current.setText(t)),o.current===null&&(o.current=jC());let l=r.current,u=o.current,m=_t(L=>{c(k=>({text:l.text,cursor:l.cursor,lines:l.lines,isPasting:L?.isPasting??k.isPasting,editingMode:L?.editingMode??k.editingMode})),n?.(l.text)},[l,n]),p=_t(()=>{s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{c(L=>({...L,isPasting:!1,editingMode:L.text?"typing":"idle"})),s.current=null},120)},[]),h=_t(L=>{l.setText(L),m({isPasting:!1,editingMode:L?"typing":"idle"})},[l,m]),g=_t((L,k,P)=>{l.replaceRange(L,k,P),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),y=_t((L,k)=>{let P=k?.paste??!1;if(P&&WC(L)){let Re=L.replace(/\r\n/g,`
332
+ `).replace(/\r/g,`
333
+ `),{placeholder:_e}=u.registerText(Re);l.insert(_e,{paste:!0}),m({isPasting:!0,editingMode:"pasting"}),p();return}l.insert(L,{paste:!1}),m({isPasting:P,editingMode:P?"pasting":"typing"}),P&&p()},[l,u,p,m]),x=_t(()=>{l.newline(),m({isPasting:!1,editingMode:"typing"})},[l,m]),w=_t(()=>{let L=l.getAbsoluteOffset(),k=bd(l.text,L);k?l.replaceRange(k.start,k.end,""):l.backspace(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),T=_t(()=>{let L=l.getAbsoluteOffset(),k=vd(l.text,L);k?l.replaceRange(k.start,k.end,""):l.delete(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),I=_t(L=>{l.move(L),m()},[l,m]),A=_t(()=>{l.clear(),m({isPasting:!1,editingMode:"idle"})},[l,m]),$=_t(()=>{let L=l.undo();return L&&m(),L},[l,m]),F=_t(()=>{let L=l.redo();return L&&m(),L},[l,m]),D=_t(()=>{l.moveToEnd(),m()},[l,m]),v=_t(L=>{l.moveToAbsoluteOffset(L),m()},[l,m]),z=_t(()=>{l.killLineRight(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),fe=_t(()=>{l.killLineLeft(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),se=_t(()=>{l.deleteWordLeft(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),ge=_t(()=>{s.current&&(clearTimeout(s.current),s.current=null),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]);return o1(()=>()=>{s.current&&clearTimeout(s.current),r.current=null},[]),{buffer:l,text:a.text,cursor:a.cursor,lines:a.lines,isPasting:a.isPasting,editingMode:a.editingMode,pasteStore:u,resetTransientState:ge,setText:h,replaceRange:g,insert:y,newline:x,backspace:w,delete:T,move:I,moveToEnd:D,moveToOffset:v,killLineRight:z,killLineLeft:fe,deleteWordLeft:se,clear:A,undo:$,redo:F}}i(Fh,"useTextBuffer");import{jsx as si,jsxs as Dd}from"react/jsx-runtime";import{useState as yb}from"react";import{useCallback as $s,useEffect as Wh,useRef as Od}from"react";function pb(e,t,n){let r=Math.max(0,Math.min(t,e.length)),o=e.slice(0,r);if(n.type==="command"||n.type==="skill"){let a=o.lastIndexOf("/");return{start:a===-1?0:a,end:r,replacement:n.text}}if(n.type==="argument"){let a=o.match(/\S+$/);return{start:a?r-a[0].length:0,end:r,replacement:n.text}}let s=o.lastIndexOf("@");return{start:s===-1?0:s,end:r,replacement:n.text}}i(pb,"buildAutocompleteReplacement");var s1=500;function hb(e,t,n){return n==="up"?e===0:e>=Math.max(0,t-1)}i(hb,"shouldUseHistoryNavigation");function a1(e){return e.isAutocompleteVisible?"cancel-autocomplete":e.hasText?e.timeSinceLastEscapeMs<s1?"clear-input":"arm-clear":"pass-through"}i(a1,"resolvePromptEscapeBehavior");function c1(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(c1,"resolvePromptEnterBehavior");function l1(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(l1,"resolvePromptEditingCommand");function gb({onSubmit:e,onExit:t,focus:n=!0,initialValue:r="",cwd:o,gitRoot:s,autocompleteEnabled:a=!0,onInputChange:c,onHistoryRecall:l,onPopPendingInputs:u}){let m=Od(0),{add:p,navigateUp:h,navigateDown:g,reset:y,saveTempInput:x}=Bh(),{buffer:w,text:T,cursor:I,lines:A,isPasting:$,editingMode:F,pasteStore:D,resetTransientState:v,setText:z,replaceRange:fe,clear:se,move:ge,moveToOffset:L,insert:k,backspace:P,newline:Re,delete:_e,undo:Y,redo:V,killLineRight:ae,killLineLeft:Q,deleteWordLeft:J}=Fh({initialValue:r,onTextChange:c}),q=Od(0);Wh(()=>{if($)return;if(T.length<=1e4){q.current=0;return}if(T.length===q.current)return;let ce=D.peekNextId(),{truncatedText:oe,placeholderContent:ze}=UC(T,ce);ze&&(D.registerTruncatedText(ze),q.current=oe.length,z(oe))},[T,$,D,z]);let Ie=ii(),ue=$d({cwd:o,gitRoot:s,enabled:a}),{state:et,suggestions:Ue,handleInput:De,handleTab:me,handleEnter:Pt,handleUp:Rt,handleDown:ee,handleEscape:_}=Ie??ue;Wh(()=>{n||(m.current=0,v(),et.visible&&_())},[et.visible,n,_,v]);let O=Od(T);Wh(()=>{a&&T!==O.current&&(O.current=T,De(T,w.getAbsoluteOffset()))},[a,w,De,T]);let j=$s(ce=>{if(!ce?.text)return;let oe=pb(T,w.getAbsoluteOffset(),ce),ze=T.slice(0,oe.start)+oe.replacement+T.slice(oe.end);return fe(oe.start,oe.end,oe.replacement),ze},[w,fe,T]),te=$s(ce=>{let oe=ce??T;if(!oe.trim())return;let ze=D.expand(oe),B=new Set,nt=/\[(Pasted text|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;for(let wi of oe.matchAll(nt)){let Kr=Number.parseInt(wi[2]??"0",10);Number.isFinite(Kr)&&Kr>0&&B.add(Kr)}let un=[];for(let wi of B){let Kr=D.get(wi);Kr&&un.push(Kr)}p(oe,{pastedContents:un}),e({displayText:oe,fullText:ze,pastedContents:un}),se()},[p,se,e,D,T]),Le=$s(ce=>{if(ce){if(ce.pastedContents&&ce.pastedContents.length>0){for(let oe of ce.pastedContents)D.adopt(oe);l?.({text:ce.text,pastedContents:[...ce.pastedContents]})}z(ce.text)}},[l,D,z]),at=$s(async ce=>{try{let oe=await eS(ce);if(oe.kind==="images"){let ze=oe.blocks.map(B=>`@${B.path}`).join(" ");k(`${ze} `,{paste:!1})}else oe.kind==="error"&&console.warn(`[KodaX paste] ${oe.message}`)}catch(oe){console.warn(`[KodaX paste] image handling failed: ${oe instanceof Error?oe.message:String(oe)}`)}},[k]),ke=Od(!1),Be=$s(async()=>{if(!ke.current){ke.current=!0;try{let ce=await tS();if(ce.kind==="images"){let oe=ce.blocks.map(ze=>`@${ze.path}`).join(" ");k(`${oe} `,{paste:!1})}else ce.kind==="error"&&console.warn(`[KodaX clipboard] ${ce.message}`)}catch(ce){console.warn(`[KodaX clipboard] image handling failed: ${ce instanceof Error?ce.message:String(ce)}`)}finally{ke.current=!1}}},[k]),$t=$s(ce=>{if(!n)return!1;if(ce.name==="v"&&(ce.ctrl||ce.meta))return Be(),!0;if(ce.name==="paste"&&ce.isPasted&&nS(ce.sequence).length>0)return at(ce.sequence),!0;let oe=et.visible&&Ue.length>0;if(ce.name==="tab"&&oe){let B=me();return B&&j(B),!0}if(ce.ctrl&&ce.name==="c")return T.length>0?(se(),y()):t?.(),!0;if(ce.name==="escape")switch(a1({isAutocompleteVisible:oe,hasText:T.length>0,timeSinceLastEscapeMs:Date.now()-m.current})){case"cancel-autocomplete":return _(),m.current=0,!0;case"clear-input":return m.current=0,se(),y(),!0;case"arm-clear":return m.current=Date.now(),!0;default:return!1}if(ce.name==="up"){if(oe)return Rt(),!0;if(ce.ctrl)return ge("up"),!0;if(T.length===0&&u){let B=u();if(typeof B=="string"&&B.length>0)return z(B),!0}if(hb(I.row,A.length,"up")){x(T);let B=h();Le(B)}else ge("up");return!0}if(ce.name==="down"){if(oe)return ee(),!0;if(ce.ctrl)return ge("down"),!0;if(hb(I.row,A.length,"down")){let B=g();Le(B)}else ge("down");return!0}if(ce.name==="left"){let B=w.getAbsoluteOffset(),nt=bd(w.text,B);return nt?L(nt.start):ge("left"),!0}if(ce.name==="right"){let B=w.getAbsoluteOffset(),nt=vd(w.text,B);return nt?L(nt.end):ge("right"),!0}if(ce.name==="home")return ge("home"),!0;if(ce.name==="end")return ge("end"),!0;let ze=l1(ce);if(ze)switch(ze){case"move-home":return ge("home"),!0;case"move-end":return ge("end"),!0;case"undo":return Y(),!0;case"redo":return V(),!0;case"kill-line-right":return ae(),!0;case"kill-line-left":return Q(),!0;case"delete-word-left":return J(),!0;default:break}if(ce.name==="backspace")return P(),!0;if(ce.name==="delete")return _e(),!0;if(ce.name==="return"||ce.name==="newline")switch(c1({keyName:ce.name,ctrl:ce.ctrl,shift:ce.shift,isAutocompleteVisible:oe,isLineContinuation:!!A[I.row]?.endsWith("\\"),isPasting:$})){case"accept-completion-and-submit":{let nt=Pt();if(nt){let un=j(nt);te(un)}else te();return!0}case"newline":return Re(),!0;case"line-continuation":return P(),Re(),!0;default:return te(),!0}return ce.insertable&&!ce.ctrl&&!ce.meta?(k(ce.sequence,ce.isPasted?{paste:!0}:void 0),!0):!1},[j,p,et.visible,P,w,se,I.row,_e,n,ee,_,Rt,Pt,Le,me,at,Be,A,Q,ae,ge,L,g,h,Re,t,u,V,y,x,z,te,Ue.length,T.length,J,$,Y]);return{text:T,cursor:I,lines:A,isPasting:$,terminalFocused:n,editingMode:F,handleKey:$t}}i(gb,"usePromptInputController");var Os=i(({onSubmit:e,onHistoryRecall:t,onPopPendingInputs:n,placeholder:r="Type a message...",prompt:o=">",focus:s=!0,initialValue:a="",cwd:c,gitRoot:l,autocompleteEnabled:u=!0,onInputChange:m})=>{let{exit:p}=so(),{cursor:h,lines:g,handleKey:y,isPasting:x,terminalFocused:w,editingMode:T}=gb({onSubmit:e,onExit:p,focus:s,initialValue:a,cwd:c,gitRoot:l,autocompleteEnabled:u,onInputChange:m,onHistoryRecall:t,onPopPendingInputs:n});return yn(zt.High,I=>y(I),[y]),si(R,{flexDirection:"column",children:si(Jp,{lines:g,cursorRow:h.row,cursorCol:h.col,prompt:o,placeholder:r,focus:s,terminalFocused:w,isPasting:x,editingMode:T,theme:"dark"})})},"InputPrompt"),u1=i(({onSubmit:e,placeholder:t,prompt:n=">"})=>{let[r,o]=yb(""),[s,a]=yb(0);yn(zt.High,p=>{if(p.name==="return")return r.trim()&&(e(r),o(""),a(0)),!0;if(p.name==="backspace"&&s>0){let h=[...r].slice(0,s-1).join(""),g=[...r].slice(s).join("");return o(h+g),a(s-1),!0}if(p.name==="left"&&s>0)return a(s-1),!0;if(p.name==="right"&&s<[...r].length)return a(s+1),!0;if(p.insertable&&!p.ctrl&&!p.meta){let h=[...r].slice(0,s).join(""),g=[...r].slice(s).join("");return o(h+p.sequence+g),a(s+1),!0}return!1},[r,s,e]);let c=re("dark");if(!r)return Dd(R,{children:[Dd(b,{color:c.colors.primary,children:[n," "]}),t&&si(b,{dimColor:!0,children:t}),si(b,{backgroundColor:c.colors.primary,color:"#000000",children:" "})]});let l=[...r].slice(0,s).join(""),u=[...r][s]??" ",m=[...r].slice(s+1).join("");return Dd(R,{children:[Dd(b,{color:c.colors.primary,children:[n," "]}),si(b,{children:l}),si(b,{backgroundColor:c.colors.primary,color:"#000000",children:u}),si(b,{children:m})]})},"SimpleInputPrompt");import{jsx as dt,jsxs as Bt}from"react/jsx-runtime";import{useState as wb,useEffect as Sb}from"react";var xb=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],d1=80,Nd=new Set,Ac=null;function f1(){let e=Array.from(Nd);for(let t of e)t()}i(f1,"dispatchSharedSpinnerTick");function m1(e){return Nd.add(e),Ac===null&&(Ac=setInterval(f1,d1)),()=>{Nd.delete(e),Nd.size===0&&Ac!==null&&(clearInterval(Ac),Ac=null)}}i(m1,"subscribeToSharedSpinnerClock");function Tb(e=!0){let[t,n]=wb(0);return Sb(()=>{if(e)return m1(()=>{n(r=>r+1)})},[e]),t}i(Tb,"useSharedSpinnerTick");var Dn=i(({color:e,theme:t})=>{let n=t??re("dark"),o=Tb(!0)%xb.length,s=e??n.colors.accent;return dt(b,{color:s,children:xb[o]})},"Spinner");function p1(e){return e<=0?0:Math.round(e/4)}i(p1,"estimateOutputTokens");function h1(e){let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/3600),r=Math.floor(t%3600/60),o=t%60;return n===0?`${r}m${o}s`:`${n}h${r}m${o}s`}i(h1,"formatElapsedDuration");var Cb=i(({roundStartedAt:e,charCount:t,theme:n})=>{let r=n??re("dark");if(Tb(e!==null),e===null)return null;let o=g1(Date.now()-e,t);return dt(b,{color:r.colors.dim,children:o})},"SpinnerStatsTail");function g1(e,t){let n=h1(e),r=p1(t);return r>0?` (${n} \xB7 \u2193 ${r} tokens)`:` (${n})`}i(g1,"buildSpinnerStatsText");var bb=i(({label:e,dotCount:t=3,theme:n})=>{let r=n??re("dark"),[o,s]=wb(1);Sb(()=>{let c=setInterval(()=>{s(l=>l%t+1)},300);return()=>clearInterval(c)},[t]);let a=".".repeat(o);return Bt(R,{children:[e&&dt(b,{color:r.colors.text,children:e}),dt(b,{color:r.colors.accent,children:a})]})},"DotsIndicator"),vb=i(({progress:e,label:t,width:n=20,theme:r})=>{let o=r??re("dark"),s=Math.max(0,Math.min(100,e)),a=Math.round(s/100*n),c=n-a,l="\u2588".repeat(a),u="\u2591".repeat(c);return Bt(R,{flexDirection:"column",children:[t&&dt(R,{marginBottom:1,children:dt(b,{color:o.colors.text,children:t})}),Bt(R,{children:[dt(b,{color:o.colors.primary,children:l}),dt(b,{dimColor:!0,children:u}),Bt(b,{children:[" ",s,"%"]})]})]})},"ProgressIndicator"),y1=i(({message:e,showSpinner:t=!1,theme:n})=>{let r=n??re("dark"),o=e??"Thinking";return Bt(R,{children:[t&&dt(R,{marginRight:1,children:dt(Dn,{theme:r})}),Bt(b,{color:r.colors.accent,children:[o,"\u2026"]})]})},"ThinkingIndicator"),x1=i(({message:e,subMessage:t,progress:n,type:r="spinner",compact:o=!1,theme:s})=>{let a=s??re("dark"),c=e??"Loading";return o?Bt(R,{children:[dt(Dn,{theme:a}),Bt(b,{color:a.colors.text,children:[" ",c,"\u2026"]})]}):r==="bar"&&n!==void 0?Bt(R,{flexDirection:"column",children:[dt(vb,{progress:n,label:c,theme:a}),t&&dt(R,{marginTop:1,children:dt(b,{dimColor:!0,children:t})})]}):r==="dots"?Bt(R,{flexDirection:"column",children:[dt(bb,{label:c,theme:a}),t&&dt(R,{marginTop:1,children:dt(b,{dimColor:!0,children:t})})]}):r==="simple"?Bt(R,{flexDirection:"column",children:[Bt(b,{color:a.colors.accent,children:[c,"\u2026"]}),t&&dt(R,{marginTop:1,children:dt(b,{dimColor:!0,children:t})}),n!==void 0&&dt(R,{marginTop:1,children:Bt(b,{dimColor:!0,children:[n,"%"]})})]}):Bt(R,{flexDirection:"column",children:[Bt(R,{children:[dt(Dn,{theme:a}),Bt(b,{color:a.colors.text,children:[" ",c,"\u2026"]}),n!==void 0&&Bt(b,{dimColor:!0,children:[" (",n,"%)"]})]}),t&&dt(R,{marginTop:1,children:dt(b,{dimColor:!0,children:t})})]})},"LoadingIndicator");import{jsx as ye,jsxs as je,Fragment as Zh}from"react/jsx-runtime";import{useEffect as iv,useMemo as pr,memo as wn}from"react";import*as Lc from"node:path";function _c(e){if(hw(e)){let t=gw(e);return t?`[memory:${t}]`:"[memory]"}if(w1(e))return"[memory]"}i(_c,"memoryBadgeFor");function w1(e){let t=Lc.resolve(e),n=kn("projects");if(!t.startsWith(n+Lc.sep)&&t!==n)return!1;let o=t.slice(n.length+1).split(Lc.sep);return o.length>=2&&o[1]==="memory"}i(w1,"isInsideAnyMemoryDir");function qe(e,t=120){return e.length>t?`${e.slice(0,t-3)}...`:e}i(qe,"truncateValue");function Ib(e){if(e)return e.split(/\r?\n/).map(t=>t.trim()).find(Boolean)}i(Ib,"extractFirstMeaningfulLine");function Eb(e){let t=e.match(/^\[([^\]]+)\]\s+(.*)$/);if(!t)return{toolLabel:e};let n=t[1]?.trim(),r=t[2]?.trim()??e,o=new RegExp(`^${n?.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}:`,"i"),s=r.replace(o,"").trim();return{rolePrefix:n?`[${n}]`:void 0,toolLabel:s||r}}i(Eb,"splitDisplayToolName");function Bd(e){let{rolePrefix:t,toolLabel:n}=Eb(e);return t?`${t} ${n}`:n}i(Bd,"normalizeDisplayToolName");function Pc(e){return Eb(e).toolLabel}i(Pc,"stripRolePrefix");function Hd(e){if(!(!e||Array.isArray(e)||typeof e!="object"))return e}i(Hd,"asRecord");function Mb(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i(Mb,"readString");function It(e,...t){for(let n of t){let r=Mb(e?.[n]);if(r)return r}}i(It,"readFirstString");function fr(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(fr,"readNumber");function Ab(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(Ab,"readStringArray");function S1(e){if(typeof e=="string")return e.trim()||void 0;let t=Hd(e);if(t)return Mb(t.preview)??void 0}i(S1,"extractPreview");function kb(e){if(e)try{return Hd(JSON.parse(e))}catch{return}}i(kb,"parsePreviewRecord");function Oe(e,t){return e&&e.match(new RegExp(`"${t}"\\s*:\\s*"([^"]+)`))?.[1]?.trim()||void 0}i(Oe,"extractFieldFromPreview");function mr(e,t){if(!e)return;let n=e.match(new RegExp(`"${t}"\\s*:\\s*(\\d+)`));return n?.[1]?Number(n[1]):void 0}i(mr,"extractNumberFromPreview");function _b(e){if(!e)return;let t=e.match(/"paths"\s*:\s*\[([^\]]*)/);if(!t?.[1])return;let n=Array.from(t[1].matchAll(/"([^"]+)"/g)).map(r=>r[1]?.trim()??"").filter(Boolean);return n.length>0?n:void 0}i(_b,"extractPathsFromPreview");function T1(e){let t=S1(e);if(typeof e=="string")return{record:kb(t),preview:t};let n=Hd(e),r=kb(t);return n?r?{record:{...n,...r},preview:t}:{record:n,preview:t}:{record:r,preview:t}}i(T1,"resolveInputRecord");function Ds(e,t,n,r=!1){let o=It(t,"path","target_path","targetPath")??Oe(n,"path")??Oe(n,"target_path")??Oe(n,"targetPath"),s=Ab(t?.paths)??_b(n);if(r&&s?.length){if(s.length===1){let a=_c(s[0]);a&&e.push(a),e.push(qe(s[0]))}else e.push(`${s.length} files`);return}if(o){let a=_c(o);a&&e.push(a),e.push(qe(o));return}if(s?.length)if(s.length===1){let a=_c(s[0]);a&&e.push(a),e.push(qe(s[0]))}else e.push(`${s.length} files`)}i(Ds,"pushPathSummary");function Ns(e,t,n){n!==void 0&&e.push(`${t}=${n}`)}i(Ns,"pushNumericSummary");function Uh(e,t,n){let r=It(t,"baseRef","base_ref")??Oe(n,"baseRef")??Oe(n,"base_ref"),o=It(t,"targetRef","target_ref")??Oe(n,"targetRef")??Oe(n,"target_ref");r&&o&&e.push(qe(`${r}...${o}`,88))}i(Uh,"pushRangeSummary");function C1(e,t){let{record:n,preview:r}=T1(t),o=Pc(e).toLowerCase(),s=[];if(o.includes("changed_diff_bundle")){let a=Ab(n?.paths)??_b(r);a?.length?(s.push(a.length===1?qe(a[0]):`${a.length} files`),a.length>1&&s.push(qe(a[0]))):Ds(s,n,r,!0);let c=fr(n?.limit_per_path)??fr(n?.limitPerPath)??mr(r,"limit_per_path")??mr(r,"limitPerPath");return c!==void 0&&s.push(`limit=${c}`),Uh(s,n,r),s}if(o.includes("changed_diff"))return Ds(s,n,r),Ns(s,"offset",fr(n?.offset)??mr(r,"offset")),Ns(s,"limit",fr(n?.limit)??mr(r,"limit")),Uh(s,n,r),s;if(o==="read"||o.includes("read_"))return Ds(s,n,r),Ns(s,"offset",fr(n?.offset)??mr(r,"offset")),Ns(s,"limit",fr(n?.limit)??mr(r,"limit")),s;if(o.includes("changed_scope"))return Ds(s,n,r,!0),Uh(s,n,r),s;if(o.includes("repo_overview"))return Ds(s,n,r),s;if(o.includes("bash")||o.includes("shell_command")){let a=It(n,"command")??Oe(r,"command");return a&&s.push(`cmd=${qe(a,140)}`),s}if(o==="glob"||o.includes("glob_")){let a=It(n,"pattern")??Oe(r,"pattern"),c=It(n,"path","root","directory","cwd")??Oe(r,"path")??Oe(r,"root")??Oe(r,"directory")??Oe(r,"cwd");if(a&&s.push(`pattern=${qe(a,96)}`),c){let l=_c(c);l&&s.push(l),s.push(qe(c))}return s}if(o==="grep"||o.includes("grep_")){let a=It(n,"pattern","query")??Oe(r,"pattern")??Oe(r,"query"),c=It(n,"path","root","directory","cwd")??Oe(r,"path")??Oe(r,"root")??Oe(r,"directory")??Oe(r,"cwd");if(a&&s.push(`pattern=${qe(a,96)}`),c){let l=_c(c);l&&s.push(l),s.push(qe(c))}return s}if(o==="web_fetch"){let a=It(n,"url")??Oe(r,"url"),c=It(n,"provider_id","providerId")??Oe(r,"provider_id")??Oe(r,"providerId"),l=It(n,"capability_id","capabilityId")??Oe(r,"capability_id")??Oe(r,"capabilityId");return a&&s.push(qe(a,120)),c&&s.push(`provider=${qe(c,48)}`),l&&s.push(`cap=${qe(l,48)}`),s}if(o==="mcp_describe"||o==="mcp_read_resource"){let a=It(n,"id")??Oe(r,"id");return a&&s.push(qe(a,120)),s}if(o==="mcp_call"){let a=It(n,"id")??Oe(r,"id"),c=Hd(n?.args),l=c?Object.keys(c).length:void 0;return a&&s.push(qe(a,120)),l!==void 0&&s.push(`args=${l}`),s}if(o==="mcp_search"){let a=It(n,"query")??Oe(r,"query"),c=It(n,"server")??Oe(r,"server"),l=It(n,"kind")??Oe(r,"kind"),u=fr(n?.limit)??mr(r,"limit");return a&&s.push(`query=${qe(a,96)}`),c&&s.push(`server=${qe(c,48)}`),l&&s.push(`kind=${l}`),u!==void 0&&s.push(`limit=${u}`),s}if(o==="web_search"||o==="code_search"||o==="semantic_lookup"){let a=It(n,"query","pattern")??Oe(r,"query")??Oe(r,"pattern"),c=It(n,"path","target_path","targetPath")??Oe(r,"path")??Oe(r,"target_path")??Oe(r,"targetPath"),l=It(n,"provider_id","providerId")??Oe(r,"provider_id")??Oe(r,"providerId"),u=fr(n?.limit)??mr(r,"limit");return a&&s.push(`query=${qe(a,96)}`),c&&s.push(qe(c,72)),l&&s.push(`provider=${qe(l,48)}`),u!==void 0&&s.push(`limit=${u}`),s}return Ds(s,n,r,!0),Ns(s,"offset",fr(n?.offset)??mr(r,"offset")),Ns(s,"limit",fr(n?.limit)??mr(r,"limit")),s}i(C1,"summarizeToolDetails");function Lb(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(Lb,"extractChangedDiffRange");function b1(e){return e.split(/\r?\n/).map(t=>t.trim()).find(t=>t.startsWith("+")||t.startsWith("-")||t.startsWith("@@"))}i(b1,"extractDiffPreviewLine");function v1(e){let t=[],n=Lb(e);if(n){let[o,s]=n.split("/");t.push(s?`Diff range: ${o} of ${s}`:`Diff range: ${n}`)}let r=b1(e);return r&&t.push(`Preview: ${qe(r,220)}`),t}i(v1,"formatChangedDiffExplanation");function I1(e){let t=[],n=e.match(/^Changed diff bundle for\s+(\d+)\s+file\(s\)/im);if(n?.[1]){let o=Number(n[1]);Number.isFinite(o)&&o>0&&t.push(`Bundle: ${o===1?"1 file":`${o} files`}`)}let r=e.match(/^===\s+(.+?)\s+===/m);return r?.[1]&&t.push(`First file: ${qe(r[1].trim(),220)}`),t}i(I1,"formatChangedDiffBundleExplanation");function Pb(e,t){if(!t)return[];let n=Pc(e).toLowerCase(),r=[];if(n.includes("changed_diff_bundle")){let o=t.match(/^Changed diff bundle for\s+(\d+)\s+file\(s\)/im);if(o?.[1]){let a=Number(o[1]);Number.isFinite(a)&&a>0&&r.push(a===1?"1 file":`${a} files`)}let s=t.match(/^===\s+(.+?)\s+===/m);return s?.[1]&&r.push(qe(s[1].trim())),r}if(n.includes("changed_diff")){let o=t.match(/^Changed diff for\s+(.+)$/im);o?.[1]&&r.push(qe(o[1].trim()));let s=Lb(t);return s&&r.push(s),r}if(n==="read"||n.includes("read_")){let o=t.match(/^Reading\s+(.+)$/im);return o?.[1]&&r.push(qe(o[1].trim())),r}return[]}i(Pb,"summarizeToolOutputDetails");function jh(e,t){let n=Bd(e);return t.length>0?`${n} - ${t.join(" - ")}`:n}i(jh,"formatToolDetailSummary");function k1(e,t){if(!t)return;let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(k1,"formatDuration");function R1(e){switch(e.status){case N.Scheduled:return"scheduled";case N.Validating:return"validating";case N.AwaitingApproval:return"awaiting approval";case N.Executing:return"running";case N.Error:return"failed";case N.Cancelled:return"cancelled";default:return}}i(R1,"formatToolStatusDetail");function Rb(e){switch(e.status){case N.Scheduled:return["Queued: waiting to start"];case N.Validating:return["Validating: checking inputs and policy"];case N.AwaitingApproval:return["Waiting: approval required before execution"];case N.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 N.Cancelled:return["Cancelled before completion"];default:return[]}}i(Rb,"formatToolProgressExplanation");function Gh(e){return e.startsWith("Error:")?"error":e.startsWith("Waiting:")?"accent":e.startsWith("Progress:")||e.startsWith("Running:")?"primary":"dim"}i(Gh,"resolveToolExplanationTone");function E1(e){let t=Ib(e.error),n=typeof e.output=="string"?Ib(e.output):void 0,r=[];return t&&r.push(`Error: ${qe(t,220)}`),e.status===N.Error&&n&&(!t||n.toLowerCase()!==t.toLowerCase())&&r.push(`Last output: ${qe(n,220)}`),r}i(E1,"formatToolFailureExplanation");function Kh(e){if(typeof e.output!="string"||!e.output.trim())return Rb(e);let t=Pc(e.name).toLowerCase();return e.status===N.Error?E1(e):e.status!==N.Success?Rb(e):t.includes("changed_diff_bundle")?I1(e.output):t.includes("changed_diff")?v1(e.output):[]}i(Kh,"formatToolResultExplanation");function Vh(e,t){return jh(e,C1(e,t))}i(Vh,"formatToolSummary");function Fd(e){let t=typeof e.output=="string"?Pb(e.name,e.output):[],n=t.length>0?jh(e.name,t):Vh(e.name,e.input),r=R1(e),o=k1(e.startTime,e.endTime),s=e.status===N.Executing&&e.progress!==void 0?`${e.progress}%`:e.status===N.Executing&&e.preview?e.preview:void 0,a=[r,s,o].filter(Boolean);return a.length>0?`${n} (${a.join(" - ")})`:n}i(Fd,"formatToolCallInlineText");function Wd(e){let t=new Map;for(let n of e){let r=typeof n.output=="string"?Pb(n.name,n.output):[],o=r.length>0?jh(n.name,r):Vh(n.name,n.input),a=n.progressLines&&n.progressLines.length>0?`${o}|${n.id}`:`${o}|${n.error??""}`,c=t.get(a);c?(c.tool=n,c.count+=1):t.set(a,{tool:n,count:1})}return[...t.values()]}i(Wd,"collapseToolCalls");function $c(e){let t=Fd(e.tool);return e.count>1?`${t} x${e.count}`:t}i($c,"formatCollapsedToolInlineText");function Ud(e,t,n){let r=Vh(e,t);return r!==Bd(e)?`[Tools] ${r}`:n>0?`[Tools] ${Bd(e)} (${n} chars)`:`[Tools] ${Bd(e)}`}i(Ud,"formatLiveToolLabel");function zh(e,t=e.length){let n=0,r=Math.min(t,e.length);for(let o=0;o<r;o++)e.charCodeAt(o)===10&&(n+=1);return n}i(zh,"countNewlines");function jd(e,t={}){let n=t.maxChars??1e4,r=t.headChars??2500,o=t.tailChars??2500;if(e.length<=n)return e;let s=e.slice(0,r),a=e.slice(-o),c=zh(e),l=zh(s),u=zh(a),m=Math.max(0,c-l-u);return`${s}
334
+ \u2026 +${m} lines \u2026
335
+ ${a}`}i(jd,"truncateUserMessageForDisplay");var $b="(?:\x1B[[0-9;]*m)*",M1=new RegExp(`^(${$b})(?:[ \r]*
336
+ )+`),A1=new RegExp(`(?:
337
+ [ \r]*)+(${$b})$`);function Ob(e){return e.replace(M1,"$1").replace(A1,"$1")}i(Ob,"stripOuterBlankLines");var _1=new Set(["edit","write","multi_edit","insert_after_anchor"]),L1=20;function P1(e){return _1.has(Pc(e.name).trim().toLowerCase())}i(P1,"isMutationTool");function $1(e){return e.startsWith("--- ")||e.startsWith("+++ ")?{color:"dim",skip:!0}:/^(File (edited|created|updated|written)|Content inserted)/.test(e)?{color:"dim",skip:!0}:e.startsWith("@@")?{color:"dim",skip:!1}:e.startsWith("+")?{color:"success",skip:!1}:e.startsWith("-")?{color:"error",skip:!1}:{color:"dim",skip:!1}}i($1,"classifyDiffLine");function O1(e,t,n,r,o){let s=[],a=!1;for(let p of n.split(/\r?\n/)){let{color:h,skip:g}=$1(p);g||((h==="success"||h==="error")&&(a=!0),s.push({text:p,color:h}))}if(!a)return!1;let c=0,l=s.length;for(;c<l&&s[c].text.trim()==="";)c++;for(;l>c&&s[l-1].text.trim()==="";)l--;let u=s.slice(c,l);if(u.length===0)return!1;let m=o?u:u.slice(0,L1);return m.forEach((p,h)=>{Ae(e,`${t}-diff-${h}`,p.text,ft(r,4),{color:p.color,indent:4})}),!o&&u.length>m.length&&Ae(e,`${t}-diff-more`,`... (${u.length-m.length} more lines)`,ft(r,4),{color:"dim",indent:4}),!0}i(O1,"pushDiffRows");var Db=400,D1="... (thinking truncated; press Ctrl+O to inspect full reasoning)",Nb=2e5,N1="... (thinking show-all truncated at 200K chars; full content available via session artifacts)",Wb=1e5,Bb=120,B1=" \u2026 (Ctrl+O to expand)";function Ub(){return process.env.KODAX_THINKING_COLLAPSE!=="0"}i(Ub,"isThinkingCollapseEnabled");function H1(e){let t=e.split(/\r?\n/).map(a=>a.trim()).filter(a=>a.length>0),n=t[0]??"",r=t.length>1,o=n.length>Bb;return{summary:o?`${n.slice(0,Bb).trimEnd()}\u2026`:n,hasMore:r||o}}i(H1,"buildCollapsedThinkingLine");function F1(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(F1,"normalizeManagedLiveActivityLabel");function Gd(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(Gd,"formatTimestamp");function jb(e){switch(e){case N.Scheduled:return"\u25CB";case N.Validating:return"\u25D0";case N.AwaitingApproval:return"\u23F8";case N.Executing:return"\u25CF";case N.Success:return"\u2713";case N.Error:return"\u2717";case N.Cancelled:return"\u2298";default:return"[tool]"}}i(jb,"getToolStatusIcon");function Gb(e){switch(e){case N.Scheduled:case N.Validating:return"dim";case N.AwaitingApproval:return"accent";case N.Executing:return"primary";case N.Success:return"success";case N.Error:return"error";case N.Cancelled:return"dim";default:return"text"}}i(Gb,"getToolStatusColor");function W1(e,t){let n=Math.max(1,t),r=e.split(`
338
+ `),o=tn(r.length>0?r:[""],n,0,0);return o.visualLines.length>0?o.visualLines:[""]}i(W1,"wrapText");function Xh(e,t,n,r=!1){if(n||r)return e.length>Nb?`${e.slice(0,Nb)}
339
+
340
+ ${N1}`:e;let o=e.split(/\r?\n/),s=o.length>t,a=s?o.slice(0,t).join(`
341
+ `):e,c=a.length>Db,l=c?a.slice(0,Db):a;return!s&&!c?e:`${l}
342
+
343
+ ${D1}`}i(Xh,"buildThinkingPreview");function U1(e){for(let t=e.length-1;t>=0;t--)if(e[t]?.type==="user")return t;return 0}i(U1,"findActiveRoundStartIndex");function Ae(e,t,n,r,o){let s=W1(n,r);if(s.length===0){e.push({key:`${t}-0`,text:"",...o});return}s.forEach((a,c)=>{e.push({key:`${t}-${c}`,text:a,...o})})}i(Ae,"pushWrappedRows");function Oc(e,t){e.push({key:t,text:" "})}i(Oc,"pushBlankRow");function ft(e,t=0){return Math.max(20,e-t)}i(ft,"getBodyWidth");function j1(e){if(!e.input)return[];let t=JSON.stringify(e.input,null,2)?.trim();return t?t.split(/\r?\n/).slice(0,6).map((n,r)=>r===0?`input: ${n}`:n):[]}i(j1,"buildToolInputPreview");function G1(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(G1,"formatHarnessProfileShort");function K1(e,t,n,r,o,s=!1,a=!1){Ae(e,`${t}-tool-${n.id}-main`,`${jb(n.status)} ${$c({tool:n,count:r})}`,ft(o,2),{color:Gb(n.status),indent:2,bold:n.status===N.Executing}),Kh(n).forEach((u,m)=>{let p=Gh(u);Ae(e,`${t}-tool-${n.id}-explanation-${m}`,u,ft(o,4),{color:p,indent:4})});let l=n.status===N.Success&&typeof n.output=="string"&&n.output.trim().length>0&&P1(n)&&O1(e,`${t}-tool-${n.id}`,n.output,o,a);if(s){let u=j1(n),m=a?u:u.slice(0,6);m.forEach((p,h)=>{Ae(e,`${t}-tool-${n.id}-input-${h}`,p,ft(o,4),{color:"dim",indent:4})}),!a&&u.length>m.length&&Ae(e,`${t}-tool-${n.id}-input-more`,`... (${u.length-m.length} more lines)`,ft(o,4),{color:"dim",indent:4})}if(s&&!l&&typeof n.output=="string"&&n.output.trim()){let u=n.output.trim().split(/\r?\n/),m=a?u:u.slice(0,8);m.forEach((h,g)=>{Ae(e,`${t}-tool-${n.id}-output-${g}`,h,ft(o,4),{color:"dim",indent:4})});let p=u.length;!a&&p>m.length&&Ae(e,`${t}-tool-${n.id}-output-more`,`... (${p-m.length} more lines)`,ft(o,4),{color:"dim",indent:4})}}i(K1,"buildToolRows");function V1(e,t,n,r){let o=n.status===N.Executing,s=o?"":`${jb(n.status)} `;Ae(e,`${t}-tool-${n.id}-main`,`${s}${$c({tool:n,count:1})}`,ft(r,2),{color:Gb(n.status),indent:2,bold:o,spinner:o}),Kh(n).forEach((c,l)=>{let u=Gh(c);Ae(e,`${t}-tool-${n.id}-explanation-${l}`,c,ft(r,4),{color:u,indent:4})})}i(V1,"buildLiveToolRows");function Kb(e){let{items:t,viewportWidth:n,isLoading:r=!1,maxLines:o=1e3,isThinking:s=!1,thinkingCharCount:a=0,thinkingContent:c="",streamingResponse:l="",currentTool:u,activeToolCalls:m=[],toolInputCharCount:p=0,toolInputContent:h="",iterationHistory:g=[],currentIteration:y=1,isCompacting:x=!1,managedAgentMode:w,managedPhase:T,managedHarnessProfile:I,managedWorkerTitle:A,managedRound:$,managedMaxRounds:F,lastLiveActivityLabel:D,currentTodoActiveForm:v,showFullThinking:z=!1,showDetailedTools:fe=!1,showAllContent:se=!1,showLiveProgressRows:ge=!0}=e,L=[];for(let k of t)switch(k.type){case"user":Ae(L,`${k.id}-header`,`You [${Gd(k.timestamp)}]`,n,{color:"primary",bold:!0,itemId:k.id}),Ae(L,`${k.id}-body`,jd(k.text),ft(n,2),{color:"text",indent:2,itemId:k.id}),L.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break;case"assistant":{let P=se?k.text:k.compactText??k.text;Ae(L,`${k.id}-header`,`Assistant [${Gd(k.timestamp)}]`,n,{color:"secondary",bold:!0,spinner:k.isStreaming,itemId:k.id}),Ae(L,`${k.id}-body`,P,ft(n,2),{color:"text",indent:2,itemId:k.id}),L.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break}case"system":Ae(L,`${k.id}-header`,`System [${Gd(k.timestamp)}]`,n,{color:"dim",bold:!0,itemId:k.id}),Ae(L,`${k.id}-body`,k.text,ft(n,2),{color:"dim",indent:2,itemId:k.id}),L.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break;case"tool_group":Ae(L,`${k.id}-header`,`Tools [${Gd(k.timestamp)}]`,n,{color:"accent",bold:!0,itemId:k.id}),Wd(k.tools).forEach(P=>K1(L,k.id,P.tool,P.count,n,fe,se)),L.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break;case"thinking":{Ae(L,`${k.id}-header`,"Thinking",n,{color:"thinking",italic:!0,itemId:k.id});let P=Ub()&&!z&&!se?H1(k.compactText??k.text):void 0;if(P?.hasMore){Ae(L,`${k.id}-body`,`${P.summary}${B1}`,ft(n,2),{color:"thinking",indent:2,italic:!0,itemId:k.id}),L.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break}let Re=se?Xh(k.text,o,z,se):k.compactText??Xh(k.text,o,z,se);Ae(L,`${k.id}-body`,Re,ft(n,2),{color:"thinking",indent:2,italic:!0,itemId:k.id}),L.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break}case"error":Ae(L,`${k.id}-header`,"\u2717 Error",n,{color:"error",bold:!0,itemId:k.id}),Ae(L,`${k.id}-body`,k.text,ft(n,2),{color:"error",indent:2,itemId:k.id}),L.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break;case"info":Ae(L,`${k.id}-body`,`${k.icon??"\u2139"} ${Ob(se?k.text:k.compactText??k.text)}`,n,{color:"info",itemId:k.id}),L.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break;case"event":Ae(L,`${k.id}-body`,`${k.icon??">"} ${se?k.text:k.compactText??k.text}`,n,{color:"text",itemId:k.id}),L.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break;case"hint":Ae(L,`${k.id}-header`,"\u{1F4A1} Hint",n,{color:"hint",bold:!0,itemId:k.id}),Ae(L,`${k.id}-body`,k.text,ft(n,2),{color:"dim",indent:2,itemId:k.id}),L.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break;default:break}if(ge&&g.length>0&&(g.forEach(k=>{if(Ae(L,`iteration-${k.iteration}-header`,`\u2500\u2500 Round ${k.iteration} \u2500\u2500`,n,{color:"dim",bold:!0}),k.thinkingSummary){let P=k.thinkingLength>60?` (${k.thinkingLength} chars total)`:"";Ae(L,`iteration-${k.iteration}-thinking`,`\u{1F4AD} ${k.thinkingSummary}${P}`,ft(n,1),{color:"thinking",indent:1,italic:!0})}if(k.response){let P=k.response.slice(0,200);Ae(L,`iteration-${k.iteration}-response`,P,ft(n,1),{color:"text",indent:1}),k.response.length>200&&Ae(L,`iteration-${k.iteration}-response-more`,`... (${k.response.length} chars total)`,ft(n,1),{color:"dim",indent:1})}k.toolsUsed.length>0&&Ae(L,`iteration-${k.iteration}-tools`,`* tools: ${k.toolsUsed.join(", ")}`,ft(n,1),{color:"accent",indent:1}),Oc(L,`iteration-${k.iteration}-blank`)}),Ae(L,"iteration-current-header",`\u2500\u2500 Round ${y} (current) \u2500\u2500`,n,{color:"accent",bold:!0}),Oc(L,"iteration-current-blank")),r&&c){let k=Xh(c,o,z,se);Ae(L,"thinking-stream-header","Thinking",n,{color:"thinking",italic:!0}),Ae(L,"thinking-stream-body",k,ft(n,2),{color:"thinking",indent:2,italic:!0}),Oc(L,"thinking-stream-blank")}if(r){let k="Thinking",P="",Re=G1(I),_e=F1(D,A),Y=A??"Scout",V=T==="routing"?`[${w?w.toUpperCase():"AMA"} Routing] `:T==="preflight"?`[${w?w.toUpperCase():"AMA"} ${Y}] `:T==="verifying"?`[${w?w.toUpperCase():"AMA"} Verifying] `:I?`[${w?w.toUpperCase():"AMA"} ${Re??I}${A?` - ${A}`:""}] `:"",ae=m.filter(ue=>ue.status===N.Executing).length,Q=m.filter(ue=>ue.status===N.Success).length,J=m.filter(ue=>ue.status===N.Error).length,q=m.filter(ue=>ue.status===N.Cancelled).length,Ie=m.length>0&&(ae>0||!l);if(x)k="Compacting";else if(T==="verifying")P=V,k="checking agent output";else if(Ie){let ue=[];if(ae>0&&ue.push(`${ae} running`),Q>0&&ue.push(`${Q} done`),J>0&&ue.push(`${J} error`),q>0&&ue.push(`${q} cancelled`),ue.length===0&&ue.push(`${m.length} tools`),Ae(L,"loading-tools-header",`${V}[Tools] ${ue.join(", ")}`,n,{color:"primary",bold:!0,spinner:ae>0}),m.forEach(et=>{V1(L,"loading-tools",et,n)}),Oc(L,"loading-tools-blank"),ae>0&&!l&&!ge)return L}else if(v)P=V||"[Plan] ",k=v;else if(u)P=V||"[Tool] ",k=_e?.startsWith("[Tools]")?_e:Ud(u,h,p);else if(s){P=V||"[Thinking] ";let ue=$&&F&&$>1?` round ${$}/${F}`:"";k=a>0?`${a} chars${ue}`:_e?`${_e}${ue}`:`processing${ue}`}else _e&&(k=_e);ge&&Ae(L,"loading-indicator",`${P}${k}...`,n,{color:"accent",spinner:!0})}if(l){let k=l.lastIndexOf(`
344
+ `),P=k>=0?l.slice(0,k+1):"";P.length>0&&(Ae(L,"streaming-header","Assistant",n,{color:"secondary",bold:!0}),Ae(L,"streaming-body",P,ft(n,2),{color:"text",indent:2}),Oc(L,"streaming-blank"))}return L}i(Kb,"buildTranscriptRows");function z1(e,t,n=1e3,r=!1,o=!1,s=!1){return Bs(e,t,n,r,void 0,o,s)}i(z1,"buildStaticTranscriptSections");var Hb=new WeakMap,Fb=new Set(["thinking","tool_group"]);function X1(){return process.env.KODAX_TRANSCRIPT_TIGHT!=="0"}i(X1,"isTightRunSpacingEnabled");function Y1(e,t){return X1()?t.map((n,r)=>{let o=e[r],s=e[r+1];if(!o||!s||!Fb.has(o.type)||!Fb.has(s.type))return n;let a=n.rows,c=a[a.length-1];return c&&c.text===" "&&c.key.endsWith("-blank")?{...n,rows:a.slice(0,-1)}:n}):t}i(Y1,"suppressTightRunBlanks");function Bs(e,t,n=1e3,r=!1,o,s=!1,a=!1){let c=e.map(l=>{let u=r||!!o?.has(l.id),m=`${t}|${n}|${s?1:0}|${u?1:0}|${Ub()?1:0}|${a?1:0}`,p=Hb.get(l);if(p!==void 0&&p.sig===m)return p.section;let h={key:l.id,rows:Kb({items:[l],viewportWidth:t,maxLines:n,showAllContent:s,showDetailedTools:u,showFullThinking:a})};return Hb.set(l,{sig:m,section:h}),h});return Y1(e,c)}i(Bs,"buildHistoryItemTranscriptSections");function q1(e,t){return{key:e,rows:Kb(t)}}i(q1,"buildDynamicTranscriptSection");function Kd(e){let{items:t,viewportWidth:n,maxLines:r=1e3,showDetailedTools:o=!1,showAllContent:s=!1,showFullThinking:a=!1,windowed:c=!1}=e;if(c)return{staticSections:[],activeItems:t};let l=U1(t),u=t.slice(0,l),m=t.slice(l);return{staticSections:z1(u,n,r,o,s,a),activeItems:m}}i(Kd,"buildTranscriptStaticPortion");function Vd(e){let{activeItems:t,viewportWidth:n,maxLines:r=1e3,showDetailedTools:o=!1,showAllContent:s=!1,showFullThinking:a=!1,expandedItemKeys:c,...l}=e,u=Bs(t,n,r,o,c,s,a),m=q1("active-pending",{...l,items:[],managedLiveEvents:[],lastLiveActivityLabel:l.lastLiveActivityLabel,viewportWidth:n,maxLines:r,showAllContent:s,showDetailedTools:o,showFullThinking:a,expandedItemKeys:c}),p=m.rows.length>0?[m]:[];return{sections:u,previewSections:p}}i(Vd,"buildTranscriptDynamicPortion");function zd(e,t){return{staticSections:e.staticSections,sections:t.sections,rows:ai(t.sections),previewSections:t.previewSections,previewRows:ai(t.previewSections)}}i(zd,"composeTranscriptRenderModel");function Vb(e,t,n){let r=zd(e,t);return n?{...r,staticSections:[n,...r.staticSections]}:r}i(Vb,"buildInlinePromptRenderModel");function zb(e,t,n,r){let o=Number.isFinite(r)?Math.max(1,Math.floor(r)):1,s=[...t,...n],a=Math.max(0,s.length-o),c=s.slice(a),l=e.flatMap(h=>h.rows),u=s.slice(0,a).filter(h=>h.spinner!==!0);return{committedSections:[...l,...u].map((h,g)=>({key:`il-${g}`,rows:[{...h,key:`il-${g}`}]})),liveRows:c}}i(zb,"splitInlineLedgerModel");function J1(e){return e.replace(/^(You|Assistant|Tools|System) \[\d{1,2}:\d{2}[^\]]*\]$/u,"$1")}i(J1,"stripHeaderTimestamp");function Xb(e){let t=5381;for(let n of e.rows){let r=J1(n.text);for(let o=0;o<n.key.length;o++)t=(t<<5)+t+n.key.charCodeAt(o)|0;t=(t<<5)+t+0|0;for(let o=0;o<r.length;o++)t=(t<<5)+t+r.charCodeAt(o)|0;t=(t<<5)+t+1|0}return{key:e.key,fingerprint:`${t>>>0}`}}i(Xb,"identifyInlineCommitSection");function Xd(e){let t=Kd({items:e.items,viewportWidth:e.viewportWidth,maxLines:e.maxLines,showDetailedTools:e.showDetailedTools,showAllContent:e.showAllContent,showFullThinking:e.showFullThinking,windowed:e.windowed}),{items:n,...r}=e,o=Vd({...r,activeItems:t.activeItems});return zd(t,o)}i(Xd,"buildTranscriptRenderModel");function ai(e){return e.flatMap(t=>t.rows)}i(ai,"flattenTranscriptSections");function Yb(e){let t=5381;for(let n of e.rows){let r=`${n.key}\0${n.text}`;for(let o=0;o<r.length;o++)t=Math.imul(t,33)+r.charCodeAt(o)|0}return{key:e.key,fingerprint:`${e.rows.length}:${(t>>>0).toString(36)}`}}i(Yb,"identifyTranscriptSection");function Yh(e){let t=[...e.staticSections,...e.sections];return{staticSections:[],sections:t,rows:ai(t),previewSections:[...e.previewSections],previewRows:ai(e.previewSections)}}i(Yh,"materializeTranscriptRenderModel");function qb(e,t={}){let{start:n,end:r,viewportTop:o,viewportHeight:s,viewportRows:a,scrollOffset:c=0,windowed:l=!1}=t;if(typeof o=="number"&&typeof s=="number"){let u=Math.max(0,o),m=Math.max(u,o+Math.max(0,s));return e.slice(u,m)}return typeof n=="number"&&typeof r=="number"?e.slice(Math.max(0,n),Math.max(0,r)):l?Jh(e,a,c):e}i(qb,"resolveVisibleTranscriptRows");var Q1=200,Z1=50,qh=30;function Jb(e,t,n=Q1,r=Z1){let o=t.current,s=o?e.findIndex(l=>l.id===o.id):-1,a=s>=0?s:o?Math.min(o.idx,Math.max(0,e.length-n)):0;e.length-a>n+r&&(a=e.length-n);let c=e[a];return c&&(o?.id!==c.id||o.idx!==a)?t.current={id:c.id,idx:a}:!c&&o&&(t.current=null),a}i(Jb,"computeTranscriptCapStart");function Qb(e,t){if(t<=0||e.length===0)return[];let n=0,r=0;for(let o=e.length-1;o>=0;o--)if(e[o]?.type==="user"&&(n++,n>t)){r=o+1;break}return e.slice(r)}i(Qb,"sliceHistoryToRecentRounds");function Jh(e,t,n=0){if(!t||t<=0)return e;let r=Math.max(0,n),o=Math.max(0,e.length-r),s=Math.max(0,o-t);return e.slice(s,o)}i(Jh,"getVisibleTranscriptRows");function Zb(e,t,n){if(!t||!n||n<=0)return 0;let r=ai(e),o=e.find(u=>u.key===t);if(!o||o.rows.length===0)return 0;let s=o.rows[0]?.key,a=r.findIndex(u=>u.key===s);if(a===-1)return 0;let c=Math.max(0,a-Math.floor(n/3)),l=Math.min(r.length,c+n);return Math.max(0,r.length-l)}i(Zb,"resolveScrollOffsetForTranscriptItem");function ev(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(ev,"resolveTranscriptColor");var Yd="__transcript_hidden_divider__";function tv(e,t){let n=e===1?"message":"messages";return{id:Yd,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(tv,"buildTranscriptHiddenDivider");function Qh(e){return e.id===Yd}i(Qh,"isTranscriptHiddenDivider");var nv=new ss(500);function eO(e){let t=en(e),n=[],r=[],o=0,s=0;for(let a of t)n.push(o),r.push(s),o+=a.length,s+=hp(a);return{graphemes:t,codeUnitOffsets:n,visualOffsets:r,length:t.length,displayWidth:s}}i(eO,"buildTranscriptTextMetrics");function Dc(e){let t=nv.get(e);if(t)return t;let n=eO(e);return nv.set(e,n),n}i(Dc,"getTranscriptTextMetrics");function ho(e){return Dc(e).length}i(ho,"getTranscriptTextLength");function rv(e){return Dc(e).displayWidth}i(rv,"getTranscriptTextDisplayWidth");function qd(e,t){let n=Dc(e),r=Math.max(0,Math.min(n.length-1,t));return n.graphemes[r]??""}i(qd,"charAtTranscriptText");function Hs(e,t,n){let r=Dc(e),o=Math.max(0,Math.min(r.length,Math.floor(t))),s=typeof n=="number"?Math.max(o,Math.min(r.length,Math.floor(n))):r.length;return r.graphemes.slice(o,s).join("")}i(Hs,"sliceTranscriptText");function ov(e,t){let n=Dc(e),r=Math.max(0,Math.floor(t));if(r<=0||n.length===0)return 0;for(let o=0;o<n.length;o+=1){let s=n.visualOffsets[o]??0,a=o+1<n.length?n.visualOffsets[o+1]??n.displayWidth:n.displayWidth;if(r<a||r===s)return o}return n.length}i(ov,"resolveTranscriptTextIndexAtVisualColumn");function Jd(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(Jd,"formatTimestamp");function tO(e,t){let n=e.split(`
345
+ `),r=n.slice(0,t),o=n.length>t;return{lines:r,hasMore:o}}i(tO,"truncateLines");function nO(e){switch(e){case N.Scheduled:return"\u25CB";case N.Validating:return"\u25D0";case N.AwaitingApproval:return"\u23F8";case N.Executing:return"\u25CF";case N.Success:return"\u2713";case N.Error:return"\u2717";case N.Cancelled:return"\u2298";default:return"?"}}i(nO,"getToolStatusIcon");function rO(e,t){switch(e){case N.Scheduled:case N.Validating:return t.colors.dim;case N.AwaitingApproval:return t.colors.accent;case N.Executing:return t.colors.primary;case N.Success:return t.colors.success;case N.Error:return t.colors.error;case N.Cancelled:return t.colors.dim;default:return t.colors.text}}i(rO,"getToolStatusColor");var oO=wn(({item:e,theme:t})=>{let n=pr(()=>jd(e.text),[e.text]);return je(R,{flexDirection:"column",marginBottom:1,children:[je(R,{children:[ye(b,{color:t.colors.primary,bold:!0,children:"You"}),je(b,{dimColor:!0,children:[" [",Jd(e.timestamp),"]"]})]}),ye(R,{marginLeft:2,children:ye(b,{color:t.colors.text,children:n})})]})}),iO=wn(({item:e,theme:t,maxLines:n})=>{let r=e.compactText??e.text,{lines:o,hasMore:s}=tO(r,n);return je(R,{flexDirection:"column",marginBottom:1,children:[je(R,{children:[ye(b,{color:t.colors.secondary,bold:!0,children:"Assistant"}),e.isStreaming&&je(Zh,{children:[ye(b,{children:" "}),ye(Dn,{color:t.colors.accent})]}),je(b,{dimColor:!0,children:[" [",Jd(e.timestamp),"]"]})]}),je(R,{marginLeft:2,flexDirection:"column",children:[o.map((a,c)=>ye(b,{color:t.colors.text,children:a||" "},c)),s&&je(b,{dimColor:!0,children:["... (",r.split(`
346
+ `).length-n," more lines)"]})]})]})}),sO=wn(({item:e,theme:t})=>je(R,{flexDirection:"column",marginBottom:1,children:[je(R,{children:[ye(b,{color:t.colors.dim,bold:!0,children:"System"}),je(b,{dimColor:!0,children:[" [",Jd(e.timestamp),"]"]})]}),ye(R,{marginLeft:2,children:ye(b,{dimColor:!0,children:e.text})})]})),aO=wn(({tool:e,count:t=1,theme:n})=>{let r=nO(e.status),o=rO(e.status,n);return je(R,{flexDirection:"column",marginLeft:2,children:[je(R,{children:[je(b,{color:o,children:[r," "]}),ye(b,{color:n.colors.text,bold:!0,children:$c({tool:e,count:t})})]}),e.error&&ye(R,{marginLeft:2,children:ye(b,{color:n.colors.error,children:e.error})})]})}),cO=wn(({item:e,theme:t})=>{let n=Wd(e.tools);return je(R,{flexDirection:"column",marginBottom:1,children:[je(R,{children:[ye(b,{color:t.colors.accent,bold:!0,children:"Tools"}),je(b,{dimColor:!0,children:[" [",Jd(e.timestamp),"]"]})]}),n.map(r=>ye(aO,{tool:r.tool,count:r.count,theme:t},`${r.tool.id}-${r.count}`))]})}),lO=wn(({item:e,theme:t})=>je(R,{flexDirection:"column",marginBottom:1,children:[ye(R,{children:ye(b,{color:t.colors.thinking,italic:!0,children:"Thinking"})}),ye(R,{marginLeft:2,children:ye(b,{color:t.colors.thinking,italic:!0,children:e.compactText??e.text})})]})),uO=wn(({item:e,theme:t})=>je(R,{flexDirection:"column",marginBottom:1,children:[ye(R,{children:je(b,{color:t.colors.error,bold:!0,children:["\u2717"," Error"]})}),ye(R,{marginLeft:2,children:ye(b,{color:t.colors.error,children:e.text})})]})),dO=wn(({item:e,theme:t})=>ye(R,{flexDirection:"column",marginBottom:1,children:je(b,{color:t.colors.text,children:[ye(b,{color:t.colors.accent,bold:!0,children:e.icon??">"}),ye(b,{children:" "}),e.compactText??e.text]})})),fO=wn(({item:e,theme:t})=>ye(R,{flexDirection:"column",marginBottom:e.tightSpacing?0:1,children:je(b,{color:t.colors.info,children:[je(b,{bold:!0,children:[e.icon??"\u2139"," "]}),e.compactText??e.text]})})),mO=wn(({item:e,theme:t})=>je(R,{flexDirection:"column",marginBottom:1,children:[ye(R,{children:je(b,{color:t.colors.hint,bold:!0,children:["\u{1F4A1}"," Hint"]})}),ye(R,{marginLeft:2,children:ye(b,{dimColor:!0,children:e.text})})]})),pO=wn(({item:e,theme:t,maxLines:n=1e3})=>{let r=pr(()=>re("dark"),[]),o=t??r;switch(e.type){case"user":return ye(oO,{item:e,theme:o});case"assistant":return ye(iO,{item:e,theme:o,maxLines:n});case"system":return ye(sO,{item:e,theme:o});case"tool_group":return ye(cO,{item:e,theme:o});case"thinking":return ye(lO,{item:e,theme:o});case"error":return ye(uO,{item:e,theme:o});case"event":return ye(dO,{item:e,theme:o});case"info":return ye(fO,{item:e,theme:o});case"hint":return ye(mO,{item:e,theme:o});default:return ye(R,{children:ye(b,{dimColor:!0,children:"Unknown item type"})})}});function hO(e,t){if(e.theme!==t.theme||(e.animateSpinners??!0)!==(t.animateSpinners??!0)||(e.selectedItem??!1)!==(t.selectedItem??!1))return!1;let n=e.row,r=t.row;if(n!==r){if(n.key!==r.key||n.text!==r.text||n.color!==r.color||n.bold!==r.bold||n.italic!==r.italic||n.indent!==r.indent||n.spinner!==r.spinner||n.itemId!==r.itemId)return!1}let o=e.selectionRange,s=t.selectionRange;return o===s?!0:!o||!s?!1:o.start===s.start&&o.end===s.end}i(hO,"areTranscriptRowPropsEqual");var sv=wn(({row:e,theme:t,animateSpinners:n=!0,selectedItem:r=!1,selectionRange:o})=>{let s=ev(t,e.color),a=e.text===" "?"":e.text,c=a||" ",l=o&&a?Hs(a,o.start,o.end):"",u=o&&a?Hs(a,0,o.start):a,m=o&&a?Hs(a,o.end):"",p=r&&!o,h=!p&&e.color==="dim",g={bold:e.bold||p,italic:e.italic,dimColor:h};return je(R,{marginLeft:e.indent??0,children:[e.spinner&&n&&je(Zh,{children:[ye(Dn,{color:t.colors.accent,theme:t}),ye(b,{children:" "})]}),ye(b,{color:p?t.colors.accent:s,...g,children:o&&a?je(Zh,{children:[u?ye(b,{color:p?t.colors.accent:s,...g,children:u}):null,ye(b,{backgroundColor:t.colors.accent,color:t.colors.background,bold:!0,italic:e.italic,children:l}),m?ye(b,{color:p?t.colors.accent:s,...g,children:m}):null]}):c})]})},hO),eg=wn(({section:e,theme:t,animateSpinners:n=!0})=>ye(R,{flexDirection:"column",children:e.rows.map(r=>ye(sv,{row:r,theme:t,animateSpinners:n},r.key))})),ci=i(({items:e,isLoading:t=!1,maxLines:n=1e3,isThinking:r=!1,thinkingCharCount:o=0,thinkingContent:s="",streamingResponse:a="",currentTool:c,activeToolCalls:l,toolInputCharCount:u=0,toolInputContent:m="",iterationHistory:p=[],currentIteration:h=1,isCompacting:g=!1,agentMode:y,managedPhase:x,managedHarnessProfile:w,managedWorkerTitle:T,managedRound:I,managedMaxRounds:A,managedGlobalWorkBudget:$,managedBudgetUsage:F,managedBudgetApprovalRequired:D,lastLiveActivityLabel:v,viewportRows:z,viewportWidth:fe,scrollOffset:se=0,animateSpinners:ge=!0,windowed:L=!1,showFullThinking:k=!1,showDetailedTools:P=!1,showAllContent:Re=!1,showLiveProgressRows:_e=!0,selectedItemId:Y,expandedItemKeys:V,onMetricsChange:ae,onVisibleRowsChange:Q,rendererWindow:J,selectedTextRanges:q,transcriptModel:Ie,visibleRowsOverride:ue})=>{let et=pr(()=>re("dark"),[]),{stdout:Ue}=cr(),De=fe??Ue?.columns??80,me=pr(()=>Ie??Xd({items:e,viewportWidth:De,isLoading:t,maxLines:n,isThinking:r,thinkingCharCount:o,thinkingContent:s,streamingResponse:a,currentTool:c,activeToolCalls:l,toolInputCharCount:u,toolInputContent:m,iterationHistory:p,currentIteration:h,isCompacting:g,managedAgentMode:y,managedPhase:x,managedHarnessProfile:w,managedWorkerTitle:T,managedRound:I,managedMaxRounds:A,managedGlobalWorkBudget:$,managedBudgetUsage:F,managedBudgetApprovalRequired:D,lastLiveActivityLabel:v,windowed:L,showFullThinking:k,showDetailedTools:P,showAllContent:Re,showLiveProgressRows:_e,expandedItemKeys:V}),[Ie,e,De,t,n,r,o,s,a,c,l,u,m,p,h,g,y,x,w,T,I,A,$,F,D,v,L,k,P,Re,_e,V]),Pt=me.staticSections,Rt=me.rows,ee=me.previewRows,_=pr(()=>[...Rt,...ee],[ee,Rt]),j=!(_.length>0)&&e.length===0&&!t,te=pr(()=>L||J||ue?_:Rt,[_,J,Rt,ue,L]),Le=pr(()=>ue||qb(te,{viewportTop:J?Math.max(0,J.viewportTop):void 0,viewportHeight:J?Math.max(0,J.viewportHeight):void 0,start:void 0,end:void 0,viewportRows:z,scrollOffset:se,windowed:L}),[J,se,z,ue,L,te]),at=pr(()=>ue||L||J?Le:_,[_,J,Le,ue,L]),ke=pr(()=>_,[_]),Be=J?Math.max(0,J.viewportHeight):z;return iv(()=>{ae?.({scrollHeight:_.length,viewportHeight:J?Math.max(0,J.viewportHeight):Be??_.length})},[_.length,Be,ae,J]),iv(()=>{Q?.({rows:at,allRows:ke})},[ke,Q,at]),j?ye(R,{paddingY:1,children:ye(b,{dimColor:!0,children:"No messages yet. Start typing to begin."})}):je(R,{flexDirection:"column",children:[!L&&Pt.length>0&&ye(ws,{items:Pt,children:i($t=>ye(eg,{section:$t,theme:et,animateSpinners:ge},$t.key),"children")}),at.map($t=>ye(sv,{row:$t,theme:et,animateSpinners:ge,selectedItem:Y?$t.key.startsWith(`${Y}-`):!1,selectionRange:q?.get($t.key)},$t.key))]})},"MessageList");var gO=i(({role:e,content:t})=>{let n=pr(()=>re("dark"),[]),r={user:n.colors.primary,assistant:n.colors.secondary,system:n.colors.dim}[e];return je(R,{flexDirection:"column",marginBottom:1,children:[ye(b,{color:r,bold:!0,children:e==="user"?">":e==="assistant"?"<":"#"}),ye(b,{children:t})]})},"SimpleMessageDisplay");import{jsx as ng,jsxs as tf}from"react/jsx-runtime";import $O,{useMemo as rg}from"react";var yO="\u{1F504}",xO="\u2588",wO="\u2592",SO="\u2192",TO=" \xB7 ";function CO(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(CO,"formatReasoningModeShort");function bO(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(bO,"formatReasoningCapabilityShort");function vO(e){switch(e){case"off":return"dim";case"quick":return"green";case"balanced":return"yellow";case"deep":return"magenta";default:return"cyan"}}i(vO,"getReasoningColor");function av(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(av,"formatTokenCount");function IO(e){let t=Math.min(10,Math.max(0,Math.round(e/10))),n=10-t;return`${xO.repeat(t)}${wO.repeat(n)}`}i(IO,"createMiniProgressBar");function kO(e,t,n){if(t===0)return"green";let r=e/t*100,o=n*(2/3);return r>=n?"red":r>=o?"yellow":"green"}i(kO,"getContextColor");function RO(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(RO,"getPermissionModeColor");function EO(e,t){let n=bs(e);return!(e==="auto"||e==="auto-in-project")||!t?n:`${n}${t==="llm"?"[LLM]":"[RULES]"}`}i(EO,"buildPermissionModeText");function MO(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(MO,"formatToolAction");function AO(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(AO,"formatHarnessProfileShort");function Qd(e,t){return t&&t>0?`${e} (${t} chars)`:e}i(Qd,"formatThinkingStatus");function Zd(e,t,n){let r=MO(e);return n?`${r} (${n}...)`:t&&t>0?`${r} (${t} chars)`:r}i(Zd,"formatToolStatus");function tg({activeToolCount:e,currentTool:t,isThinkingActive:n,thinkingCharCount:r,isCompacting:o,toolInputCharCount:s,toolInputContent:a,managedPhase:c,managedHarnessProfile:l,managedWorkerTitle:u,managedIdleWaiting:m,managedIdleWaitingPendingCount:p}){let h=e&&e>0?`${e} tool${e===1?"":"s"} running`:void 0;if(o)return"Compacting";if(c==="routing")return h?`Routing - ${h}`:t?`Routing - ${Zd(t,s,a)}`:n?Qd("Routing",r):"Routing";if(c==="preflight"){let g=u??"Scout";return h?`${g} - ${h}`:t?`${g} - ${Zd(t,s,a)}`:n?Qd(g,r):g}if(l){let y=`${AO(l)}${u?` - ${u}`:""}`;if(m===!0&&!h&&!t&&!n){let x=p??0,w=x>1?`waiting for ${x} children`:x===1?"waiting for 1 child":"idle - resuming";return`${y} - ${w}`}return h?`${y} - ${h}`:t?`${y} - ${Zd(t,s,a)}`:n?Qd(y,r):y}if(h)return h;if(t)return Zd(t,s,a);if(n)return Qd("Thinking",r)}i(tg,"buildBusyStatusText");function _O({agentMode:e,managedPhase:t,managedHarnessProfile:n,managedRound:r,managedMaxRounds:o,managedGlobalWorkBudget:s,managedBudgetUsage:a,currentIteration:c,maxIter:l}){let u=[];return t==="routing"||t==="preflight"||(n&&r&&o&&r>1&&u.push({label:"Round",current:r,max:o}),n&&s&&typeof a=="number"?u.push({label:"Work",current:a,max:s}):e==="sa"&&c&&l&&u.push({label:"Iter",current:c,max:l})),u}i(_O,"resolveIterationSegments");function LO(e){if(e.length!==0)return`${yO} ${e.map(t=>`${t.label} ${t.current}/${t.max}`).join(TO)}`}i(LO,"formatLabeledIterationStatus");function PO(e){let{sessionId:t,permissionMode:n,agentMode:r,provider:o,model:s,tokenUsage:a,currentTool:c,activeToolCount:l,thinking:u,isThinkingActive:m,thinkingCharCount:p,reasoningMode:h=u?"auto":"off",reasoningCapability:g,isCompacting:y,toolInputCharCount:x,toolInputContent:w,currentIteration:T,maxIter:I,contextUsage:A,showBusyStatus:$=!0,managedPhase:F,managedHarnessProfile:D,managedWorkerTitle:v,managedRound:z,managedMaxRounds:fe,managedGlobalWorkBudget:se,managedBudgetUsage:ge,managedIdleWaiting:L,managedIdleWaitingPendingCount:k}=e,P=[{id:"agent-mode",text:`KodaX - ${r.toUpperCase()}`,color:"primary",bold:!0},{id:"permission-mode",text:EO(n,e.autoModeEngine),color:RO(n)}],Re=CO(h),_e=bO(g);P.push({id:"reasoning-mode",text:g?`${Re}/${_e}`:Re,color:vO(h)});let Y=_O({agentMode:r,managedPhase:F,managedHarnessProfile:D,managedRound:z,managedMaxRounds:fe,managedGlobalWorkBudget:se,managedBudgetUsage:ge,currentIteration:T,maxIter:I}),V=LO(Y);if(V){let Q=Math.max(...Y.map(q=>q.current/q.max)),J="green";Q>=.8?J="red":Q>=.5&&(J="yellow"),P.push({id:"iteration-status",text:V,color:J})}P.push({id:"session-id",text:t,color:"dim"});let ae=$?tg({activeToolCount:l,currentTool:c,isThinkingActive:m,thinkingCharCount:p,isCompacting:y,toolInputCharCount:x,toolInputContent:w,managedPhase:F,managedHarnessProfile:D,managedWorkerTitle:v,managedIdleWaiting:L,managedIdleWaitingPendingCount:k}):void 0;if(ae&&P.push({id:"busy-status",text:ae,color:"dim"}),P.push({id:"provider-model",text:`${o}/${s}`,color:"secondary"}),A&&A.contextWindow!==0){let Q=Math.round(A.currentTokens/A.contextWindow*100),J=av(A.currentTokens),q=av(A.contextWindow),Ie=IO(Q);P.push({id:"context-usage",text:`${J}/${q} ${Ie} ${Q}%`,color:kO(A.currentTokens,A.contextWindow,A.triggerPercent)})}return a&&P.push({id:"token-usage",text:`${a.input}${SO}${a.output} (${a.total})`,color:"dim"}),P}i(PO,"buildStatusBarSegments");function ef(e){let t=PO(e);return{text:t.map(n=>n.text).join(" | "),segments:t}}i(ef,"buildStatusBarViewModel");function OO(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(OO,"resolveViewModelSegmentColor");var Fs=i(({viewModel:e,...t})=>{let n=rg(()=>re("dark"),[]),r=rg(()=>e??ef(t),[t,e]);return ng(R,{paddingX:1,children:r.segments.map((o,s)=>tf($O.Fragment,{children:[ng(b,{color:OO(o,n),bold:o.bold,children:o.text}),s<r.segments.length-1?ng(b,{dimColor:!0,children:" | "}):null]},o.id))})},"StatusBar"),DO=i(({permissionMode:e,provider:t,model:n})=>{let r=rg(()=>re("dark"),[]);return tf(R,{children:[tf(b,{color:r.colors.primary,bold:!0,children:["[",e,"]"]}),tf(b,{dimColor:!0,children:[" ",t,"/",n]})]})},"SimpleStatusBar");import{jsx as go,jsxs as of}from"react/jsx-runtime";import{useState as og,useCallback as nf,useMemo as cv}from"react";function rf(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(rf,"generateId");function NO(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(NO,"messageToHistoryItem");var BO=i(({model:e,provider:t,onSubmit:n,permissionMode:r="accept-edits",agentMode:o="ama"})=>{let{stdout:s}=cr(),a=cv(()=>re("dark"),[]),[c,l]=og({messages:[],isLoading:!1,sessionId:rf()}),[u,m]=og(null),[p,h]=og(),g=nf(async T=>{if(!T.trim())return;let I={id:rf(),role:"user",content:T,timestamp:Date.now()};l(A=>({...A,messages:[...A.messages,I],isLoading:!0}));try{await n(T)}catch(A){let $={id:rf(),role:"system",content:`Error: ${A instanceof Error?A.message:"Unknown error"}`,timestamp:Date.now()};l(F=>({...F,messages:[...F.messages,$],isLoading:!1}))}finally{l(A=>({...A,isLoading:!1}))}},[n]),y=nf((T,I)=>{let A={id:rf(),role:T,content:I,timestamp:Date.now()};l($=>({...$,messages:[...$.messages,A]}))},[]),x=nf((T,I)=>{m({input:T,output:I,total:T+I})},[]),w=nf(T=>{h(T)},[]);return of(R,{flexDirection:"column",children:[go(R,{flexGrow:1,flexDirection:"column",overflow:"hidden",children:go(ci,{items:c.messages.map(NO),isLoading:c.isLoading})}),go(R,{flexShrink:0,children:go(Os,{onSubmit:i(T=>g(T.fullText),"onSubmit"),prompt:">",focus:!c.isLoading})}),go(R,{flexShrink:0,children:go(Fs,{sessionId:c.sessionId,permissionMode:r,agentMode:o,provider:t,model:e,tokenUsage:u??void 0,currentTool:p})})]})},"App"),HO=i(({model:e,provider:t,onInput:n})=>{let r=cv(()=>re("dark"),[]);return of(R,{flexDirection:"column",children:[of(R,{marginBottom:1,children:[go(b,{color:r.colors.primary,bold:!0,children:"KodaX CLI"}),of(b,{dimColor:!0,children:[" ","- ",t,"/",e]})]}),go(Os,{onSubmit:i(o=>n(o.fullText),"onSubmit"),placeholder:"Type a message...",prompt:">"})]})},"SimpleApp");import{jsx as FO}from"react/jsx-runtime";var ig=i(({top:e,topRows:t=0,transcript:n,renderTranscriptWindow:r,footer:o,overlay:s,stickyHeader:a,jumpToLatest:c,width:l,scrollTop:u=0,scrollHeight:m=0,viewportHeight:p=0,stickyScroll:h=!0,scrollRef:g,onScrollTopChange:y,onStickyChange:x,onWindowChange:w,overscanRows:T})=>FO(qp,{width:l,top:e,topRows:t,stickyHeader:a,jumpToLatest:c,scrollable:n,renderScrollableWindow:r,overlay:s,bottom:o,scrollTop:u,scrollHeight:m,viewportHeight:p,stickyScroll:h,scrollRef:g,onScrollTopChange:y,onStickyChange:x,onWindowChange:w,overscanRows:T}),"FullscreenTranscriptLayout");import{jsx as lv}from"react/jsx-runtime";function Ws({copyMessage:e=!1,copyToolInput:t=!1,copyOnSelect:n=!1,toggleDetail:r=!1,selectionNavigation:o=!1,matchNavigation:s=!1,dismissAction:a}){let c=[];return o&&c.push("\u2190/\u2192 browse"),e&&c.push("C copy"),t&&c.push("I tool input"),n&&c.push("Mouse select copies"),r&&c.push("V details"),s&&c.push("N/Shift+N matches"),a==="clear"&&c.push("Esc clear"),a==="close-search"&&c.push("Esc close search"),c.length>0?c.join(" | "):void 0}i(Ws,"buildMessageActionsText");var sg=i(({copyMessage:e=!1,copyToolInput:t=!1,copyOnSelect:n=!1,toggleDetail:r=!1,selectionNavigation:o=!1,matchNavigation:s=!1,dismissAction:a})=>{let c=re("dark"),l=Ws({copyMessage:e,copyToolInput:t,copyOnSelect:n,toggleDetail:r,selectionNavigation:o,matchNavigation:s,dismissAction:a});return l?lv(R,{paddingX:1,children:lv(b,{color:c.colors.dim,children:l})}):null},"MessageActions");import{jsx as uv}from"react/jsx-runtime";function ag({itemSummary:e,itemKind:t,position:n,detailState:r="compact"}){if(!e||!n||n.total<=0)return;let o=r==="expanded"?"expanded":"compact",s=t?`${t}: `:"";return`Selected item ${n.current}/${n.total}: ${s}${e} | ${o}`}i(ag,"buildMessageSelectorText");var WO=i(({itemSummary:e,itemKind:t,position:n,detailState:r="compact"})=>{let o=re("dark"),s=ag({itemSummary:e,itemKind:t,position:n,detailState:r});return s?uv(R,{paddingX:1,children:uv(b,{color:o.colors.dim,children:s})}):null},"MessageSelector");import{jsx as Us,jsxs as UO}from"react/jsx-runtime";import{useMemo as dv}from"react";function sf(e,t){return Math.max(1,tn(e.length>0?e.split(`
347
+ `):[""],Math.max(1,t),0,0).visualLines.length)}i(sf,"countWrappedRows");var cg=i(({browse:e,selection:t,search:n,chromeMode:r="inline",...o})=>{let s=r==="inline",a=t?.itemSummary,c=t?.position,l=t?.itemKind,u=t?.detailState??"compact",m=t?.copyCapabilities,p=m?.message??!1,h=m?.toolInput??!1,g=m?.copyOnSelect??!1,y=t?.toggleDetail??!1,x=t?.navigationCapabilities?.selection??!1,w=n?.statusText,T=n?.matches?.length??0,I=n?.surface,A=o.viewportWidth??80,$=Math.max(1,A-2),F=n?.query?.trim()?"close-search":a||p||h||y||x?"clear":void 0,D=ag({itemSummary:a,itemKind:l,position:c,detailState:u}),v=dv(()=>Ws({copyMessage:p,copyToolInput:h,copyOnSelect:g,toggleDetail:y,selectionNavigation:x,matchNavigation:!!w&&T>0,dismissAction:F}),[p,h,x,y,F,T,w,g]),z=dv(()=>{if(!s)return 0;let se=0;return e?.hintText&&(se+=sf(e.hintText,$)),D&&(se+=sf(D,$)),v&&(se+=sf(v,$)),w&&(se+=sf(w,$)),I&&(se+=1),se},[v,e?.hintText,$,s,w,I,D]),fe=typeof o.viewportRows=="number"?Math.max(1,o.viewportRows-z):o.viewportRows;return UO(R,{flexDirection:"column",flexGrow:o.windowed?0:1,children:[s&&e?.hintText?Us(R,{paddingX:1,children:Us(b,{dimColor:!0,children:e.hintText})}):null,null,s&&(p||h||g||y||x||T>0)?Us(sg,{copyMessage:p,copyToolInput:h,copyOnSelect:g,toggleDetail:y,selectionNavigation:x,matchNavigation:!!w&&T>0,dismissAction:F}):null,s&&w?Us(R,{paddingX:1,children:Us(b,{dimColor:!0,children:w})}):null,s?I:null,Us(ci,{...o,viewportRows:fe})]})},"TranscriptViewport");import{jsx as fv}from"react/jsx-runtime";var lg=i(e=>fv(R,{flexDirection:"column",children:fv(Os,{...e})}),"PromptComposer");import{jsx as li,jsxs as af}from"react/jsx-runtime";import mv from"react";var pv=" \xB7 ",cf=i(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=re("dark");return t.length===0?null:li(R,{flexGrow:1,children:t.map((r,o)=>af(mv.Fragment,{children:[li(b,{color:r.accent?n.colors.accent:n.colors.dim,bold:r.accent,children:r.label}),o<t.length-1?li(b,{dimColor:!0,children:pv}):null]},r.id))})},"PromptFooterLeftSide"),lf=i(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=re("dark");return t.length===0?null:li(R,{justifyContent:"flex-end",children:t.map((r,o)=>af(mv.Fragment,{children:[li(b,{color:r.accent?n.colors.primary:n.colors.dim,bold:r.accent,children:r.label}),o<t.length-1?li(b,{dimColor:!0,children:pv}):null]},r.id))})},"PromptFooterRightSide"),uf=i(({left:e,right:t,queued:n,stashNotice:r,notifications:o,inlineNotices:s,activityBar:a,todoSurface:c,composer:l,inlineSuggestions:u,helpSurface:m,taskBar:p,statusLine:h,inlineDialogs:g})=>af(R,{flexDirection:"column",children:[e||t?af(R,{paddingX:1,children:[li(R,{flexGrow:1,children:e}),t]}):null,n,r,o,s,a,c,l,u,g,m,p,h]}),"PromptFooter");import{jsx as ug,jsxs as hv}from"react/jsx-runtime";var dg=i(({sections:e,title:t="Help"})=>{let n=re("dark"),r=e.filter(o=>o.items.length>0);return r.length===0?null:hv(R,{flexDirection:"column",borderStyle:"round",borderColor:n.colors.accent,paddingX:1,marginTop:1,children:[ug(b,{color:n.colors.accent,bold:!0,children:t}),r.map(o=>hv(R,{flexDirection:"column",children:[ug(b,{color:n.colors.primary,bold:!0,children:o.title}),ug(b,{dimColor:!0,children:o.items.map(s=>s.label).join(" | ")})]},o.id))]})},"PromptHelpMenu");import{jsx as gv}from"react/jsx-runtime";import{createContext as xv,useContext as wv,useReducer as jO,useCallback as Ht,useMemo as GO}from"react";var KO=150;function ff(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(ff,"generateId");function df(e){return{...e,id:ff(),timestamp:Date.now()}}i(df,"createHistoryItem");function yv(e){if(e.length<=KO)return e;let t=0,n=0;for(let r=e.length-1;r>=0;r--)if(e[r]?.type==="user"&&(t++,t>50)){n=r;break}return n>0?e.slice(n):e}i(yv,"trimHistoryToRounds");function fg(e,t){return e.filter(n=>n.type==="user"&&typeof n.id=="string"&&!t.has(n.id))}i(fg,"selectUncommittedLedgerUserItems");function mg(e){return{...e,id:ff(),startTime:Date.now()}}i(mg,"createToolCall");function VO(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:yv([...e.history,t.payload])};case"BULK_ADD_HISTORY_ITEMS":return{...e,history:yv([...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{...Zp,sessionId:e.sessionId};default:return e}}i(VO,"uiReducer");var Sv=xv(null),Tv=xv(null);function mf({children:e,initialState:t}){let[n,r]=jO(VO,{...Zp,...t}),o=Ht(D=>{r({type:"SET_STREAMING_STATE",payload:D})},[]),s=Ht(D=>{r({type:"APPEND_TO_RESPONSE",payload:D})},[]),a=Ht(()=>{r({type:"CLEAR_RESPONSE"})},[]),c=Ht(D=>{let v=df(D);r({type:"ADD_HISTORY_ITEM",payload:v})},[]),l=Ht(D=>{D.length!==0&&r({type:"BULK_ADD_HISTORY_ITEMS",payload:D.map(df)})},[]),u=Ht((D,v)=>{r({type:"UPDATE_HISTORY_ITEM",payload:{id:D,updates:v}})},[]),m=Ht(()=>{r({type:"CLEAR_HISTORY"})},[]),p=Ht(D=>{let v=mg(D);return r({type:"ADD_TOOL_CALL",payload:v}),v.id},[]),h=Ht((D,v)=>{r({type:"UPDATE_TOOL_CALL",payload:{id:D,updates:v}})},[]),g=Ht(()=>{r({type:"CLEAR_TOOL_CALLS"})},[]),y=Ht(D=>{r({type:"SET_SESSION_ID",payload:D})},[]),x=Ht(D=>{r({type:"SET_MODE",payload:D})},[]),w=Ht(D=>{r({type:"SET_PROVIDER",payload:D})},[]),T=Ht(D=>{r({type:"SET_MODEL",payload:D})},[]),I=Ht(D=>{r({type:"SET_TOKEN_USAGE",payload:D})},[]),A=Ht(D=>{r({type:"SET_ERROR",payload:D})},[]),$=Ht(D=>{r({type:"SET_LOADING",payload:D})},[]),F=GO(()=>({setStreamingState:o,appendToResponse:s,clearResponse:a,addHistoryItem:c,addHistoryItems:l,updateHistoryItem:u,clearHistory:m,addToolCall:p,updateToolCall:h,clearToolCalls:g,setSessionId:y,setMode:x,setProvider:w,setModel:T,setTokenUsage:I,setError:A,setLoading:$}),[o,s,a,c,l,u,m,p,h,g,y,x,w,T,I,A,$]);return gv(Sv.Provider,{value:n,children:gv(Tv.Provider,{value:F,children:e})})}i(mf,"UIStateProvider");function Nc(){let e=wv(Sv);if(!e)throw new Error("useUIState must be used within a UIStateProvider");return e}i(Nc,"useUIState");function Bc(){let e=wv(Tv);if(!e)throw new Error("useUIActions must be used within a UIStateProvider");return e}i(Bc,"useUIActions");function Cv(){let e=Nc(),t=Bc();return{state:e,actions:t}}i(Cv,"useUI");function pg(){return re()}i(pg,"useTheme");import{jsxs as yo,jsx as pf,Fragment as zO}from"react/jsx-runtime";import{useMemo as XO}from"react";var YO=80,qO=7,JO={command:">",file:"\u{1F4C4}",history:"\u23F1",argument:"\u2022",snippet:"\u25C7",skill:"\u2605"};function QO(e,t,n){if(t<=n)return{start:0,end:t};let r=Math.floor(n/2),o=e-r,s=o+n;return o<0?(o=0,s=n):s>t&&(s=t,o=t-n),{start:o,end:s}}i(QO,"getVisibleRange");function ZO({suggestion:e,isSelected:t,width:n}){let r=pg(),o=e.icon||e.type&&JO[e.type]||"",s=o?ir(o)+1:0,a=ir(e.displayText||e.text),c=e.description?ir(e.description):0,l=Math.min(a,n-s-2),u=n-s-l-3,m=Math.max(0,u),p=za(e.displayText||e.text,l),h=e.description?za(e.description,m):"";return yo(R,{children:[o&&yo(b,{color:t?r.colors.accent:r.colors.dim,children:[o," "]}),pf(b,{color:t?r.colors.primary:r.colors.text,bold:t,children:p}),h&&yo(zO,{children:[pf(b,{children:" "}),pf(b,{color:r.colors.dim,children:za(e.description||"",m)})]}),t&&yo(b,{color:r.colors.accent,children:[" ","\u25C0"]})]})}i(ZO,"SuggestionItem");function hf({suggestions:e,selectedIndex:t,visible:n,maxVisible:r=qO,width:o=YO,showCount:s=!1}){let a=pg();if(!n||e.length===0)return null;let{start:c,end:l}=XO(()=>QO(t,e.length,r),[t,e.length,r]),u=e.slice(c,l);return yo(R,{flexDirection:"column",marginLeft:2,children:[c>0&&yo(b,{color:a.colors.dim,children:[" ","\u25B2 ",c," more..."]}),u.map((m,p)=>{let g=c+p===t;return pf(ZO,{suggestion:m,isSelected:g,width:o},m.id)}),l<e.length&&yo(b,{color:a.colors.dim,children:[" ","\u25BC ",e.length-l," more..."]}),s&&yo(b,{color:a.colors.dim,children:[t+1,"/",e.length]})]})}i(hf,"SuggestionsDisplay");import{jsx as js,jsxs as eD}from"react/jsx-runtime";var hg=i(({reserveSpace:e,width:t,hidden:n=!1,mode:r="inline"})=>{let o=ii(),s=re("dark");if(n)return null;if(!o)return e?js(R,{height:8}):null;let{state:a,suggestions:c}=o;return a.visible&&c.length>0?r==="overlay"?eD(R,{flexDirection:"column",borderStyle:"round",borderColor:s.colors.accent,paddingX:1,marginTop:1,children:[js(b,{color:s.colors.accent,bold:!0,children:"Suggestions"}),js(hf,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-6)})]}):js(R,{height:8,children:js(hf,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-2)})}):e?js(R,{height:8}):null},"PromptSuggestionsSurface");import{jsxs as Yn,jsx as Nn,Fragment as gg}from"react/jsx-runtime";import tD,{useEffect as nD,useState as rD}from"react";var Gs=15,bv=Math.max(1,Gs-2),yg=i(({confirm:e,request:t})=>e?Yn(R,{flexDirection:"column",borderStyle:"round",borderColor:"yellow",paddingX:1,marginTop:1,width:"100%",children:[Yn(b,{color:"yellow",bold:!0,children:[Z("dialog.confirm")," ",e.prompt]}),e.planContent?Nn(oD,{content:e.planContent}):null,e.instruction?Nn(b,{dimColor:!0,children:e.instruction}):null]}):t?Yn(R,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,marginTop:1,width:"100%",children:[t.kind==="select"?Yn(gg,{children:[Yn(b,{color:"cyan",bold:!0,children:[Z("dialog.select")," ",t.title]}),(()=>{let n=t.options??[],r=t.visibleSelectOptions??5,o=t.focusedIndex??0,s=n.length,a=0;if(s>r){let u=Math.floor(r/2);a=Math.max(0,Math.min(o-u,s-r))}let c=a,l=Math.max(0,s-a-r);return Yn(gg,{children:[c>0?Nn(b,{dimColor:!0,children:Z("select.more_above",{count:c})}):null,n.slice(a,a+r).map((u,m)=>{let p=a+m,h=p===o,g=t.selectedIndices?.includes(p)??!1,y=h?"\u276F ":" ",x=g?" \u2713":"",w=u.description?` - ${u.description}`:"";return Nn(b,{color:h?"cyan":void 0,dimColor:!h,children:`${y}${u.label}${w}${x}`},`${u.value}-${p}`)}),l>0?Nn(b,{dimColor:!0,children:Z("select.more_below",{count:l})}):null]})})(),Nn(b,{dimColor:!0,children:t.multiSelect?Z("select.multiselect_hint"):Z("select.navigate_hint")})]}):Yn(gg,{children:[Yn(b,{color:"cyan",bold:!0,children:[Z("dialog.input")," ",t.prompt]}),t.defaultValue!==void 0?Nn(b,{dimColor:!0,children:`${Z("input.default")} ${t.defaultValue}`}):null,Nn(b,{dimColor:!0,children:`${Z("input.value")} ${t.buffer||Z("input.type_response")}`}),Nn(b,{dimColor:!0,children:Z("select.confirm_hint")})]}),t.error?Nn(b,{color:"red",children:t.error}):null]}):null,"DialogSurface"),oD=i(({content:e})=>{let t=tD.useMemo(()=>e.split(`
348
+ `),[e]),n=t.length,r=n>Gs,[o,s]=rD(0);nD(()=>{s(u=>{let m=Math.max(0,n-Gs);return u>m?m:u})},[n]),Ju((u,m)=>{if(!r)return;let p=Math.max(0,n-Gs);m.upArrow?s(h=>Math.max(0,h-1)):m.downArrow?s(h=>Math.min(p,h+1)):m.pageUp?s(h=>Math.max(0,h-bv)):m.pageDown&&s(h=>Math.min(p,h+bv))},{isActive:!0});let a=t.slice(o,o+Gs),c=o,l=Math.max(0,n-o-Gs);return Yn(R,{flexDirection:"column",marginTop:1,children:[r&&c>0?Yn(b,{dimColor:!0,children:["\u2026 ",c," more line",c===1?"":"s"," above"]}):null,a.map((u,m)=>Nn(b,{children:u},`plan-line-${o+m}`)),r&&l>0?Yn(b,{dimColor:!0,children:["\u2026 ",l," more line",l===1?"":"s"," below"]}):null,r?Nn(b,{dimColor:!0,children:"PgUp/PgDn/\u2191\u2193 to scroll"}):null]})},"PlanScrollPanel");import{jsxs as Hc,jsx as iD}from"react/jsx-runtime";function vv(e){let t=e.replace(/\s+/g," ").trim();return t.length<=72?t:`${t.slice(0,69)}...`}i(vv,"normalizePendingPreview");function Iv(e){if(e.length===0)return;let t=vv(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(Iv,"formatPendingInputsSummary");function xg(e){if(e.length===0)return[];let t=e.length;return e.map((n,r)=>({index:r+1,total:t,preview:vv(n)}))}i(xg,"formatPendingInputsLines");function kv(e){let t=xg(e);return t.length===0?void 0:[...t.map(o=>`\u23F3 [${o.index}/${o.total}] ${o.preview}`)," \u2191 pull all into editor \xB7 Esc drops latest"].join(`
349
+ `)}i(kv,"formatPendingInputsBudgetText");var wg=i(({pendingInputs:e})=>{let t=xg(e);if(t.length===0)return null;let n=re("dark");return Hc(R,{flexDirection:"column",children:[t.map(r=>Hc(R,{children:[Hc(b,{color:n.colors.hint,children:["\u23F3"," "]}),Hc(b,{color:n.colors.dim,children:["[",r.index,"/",r.total,"] ",r.preview]})]},r.index)),iD(R,{children:Hc(b,{color:n.colors.dim,children:[" ","\u2191 pull all into editor \xB7 Esc drops latest"]})})]})},"QueuedCommandsSurface");import{jsx as Rv}from"react/jsx-runtime";function sD(e,t){switch(e){case"warning":return t.warning;case"accent":return t.accent;default:return t.dim}}i(sD,"resolveNotificationColor");var gf=i(({notifications:e})=>{let t=e.filter(r=>r.text.trim().length>0),n=re("dark");return t.length===0?null:Rv(R,{flexDirection:"column",paddingX:1,children:t.map(r=>Rv(b,{color:sD(r.tone,n.colors),children:r.text},r.id))})},"NotificationsSurface");import{jsx as Ev}from"react/jsx-runtime";var Sg=i(({notices:e})=>{let t=e.filter(r=>r.trim().length>0);if(t.length===0)return null;let n=re("dark");return Ev(R,{flexDirection:"column",paddingX:1,children:t.map((r,o)=>Ev(b,{color:n.colors.dim,children:r},`${r}-${o}`))})},"StatusNoticesSurface");import{jsxs as Mv,jsx as aD}from"react/jsx-runtime";var yf=i(({text:e})=>{let t=e?.trim();if(!t)return null;let n=re("dark");return Mv(R,{paddingX:1,children:[Mv(b,{color:n.colors.hint,children:["\u22EF"," "]}),aD(b,{color:n.colors.dim,children:t})]})},"StashNotice");import{jsx as ui,jsxs as cD}from"react/jsx-runtime";function Av({text:e,accent:t=!1,selected:n=!1}){let r=re("dark");return ui(R,{marginRight:1,children:ui(b,{color:t?r.colors.accent:r.colors.primary,bold:n||t,children:`[ ${e} ]`})})}i(Av,"Pill");var xf=i(({items:e,overflowLabel:t,ctaHint:n,showSpinner:r=!1})=>{let o=e.filter(s=>s.label.trim().length>0);return o.length===0&&!t&&!n&&!r?null:cD(R,{flexDirection:"row",paddingX:1,children:[r?ui(R,{marginRight:1,children:ui(Dn,{})}):null,o.map(s=>ui(Av,{text:s.hint?`${s.label} (${s.hint})`:s.label,accent:s.accent,selected:s.selected},s.id)),t?ui(Av,{text:t}):null,n?ui(b,{dimColor:!0,children:n}):null]})},"BackgroundTaskBar");import _v,{createContext as Pv,useContext as $v,useReducer as lD,useCallback as Xe,useRef as uD,useEffect as Lv}from"react";function dD(e){return e.agentId===void 0&&e.priority==="user"&&e.mode==="prompt"}i(dD,"isMainThreadPrompt");function bg(){return Rn().getSnapshot().filter(dD)}i(bg,"getMainThreadPrompts");function Tg(){return bg().map(e=>e.content)}i(Tg,"getMainThreadPromptContents");var Cg={state:gn.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 vg(){let e={...Cg,pendingInputs:Tg()},t=new Set,n="",r="",o=0,s=null,a=!1,c=80,l=i(()=>{for(let y of t)y(e)},"notify"),u=i(()=>{let y=Tg();if(y.length===e.pendingInputs.length){let x=!0;for(let w=0;w<y.length;w++)if(y[w]!==e.pendingInputs[w]){x=!1;break}if(x)return}e={...e,pendingInputs:y},l()},"syncReactStateFromQueue"),m=Rn().subscribe(()=>{u()}),p=i(()=>Rn().dequeue({maxPriority:"user",mode:"prompt"}).map(x=>x.content),"drainOurSlice"),h=i(()=>{if(s&&(clearTimeout(s),s=null),n||r||o>0){let x=e.thinkingContent+r,w=r?x.length:e.thinkingCharCount+o;e={...e,currentResponse:e.currentResponse+n,thinkingContent:x,thinkingCharCount:w,...r||o>0?{isThinking:!0}:{}},n="",r="",o=0,l()}},"flushPendingUpdates"),g=i(()=>{s||(s=setTimeout(h,c))},"scheduleFlush");return{getState:i(()=>e,"getState"),setState:i(y=>{h(),e={...e,state:y},l()},"setState"),startStreaming:i(()=>{a=!1,n="",r="",o=0,s&&(clearTimeout(s),s=null),e={...e,state:gn.Responding,currentResponse:"",abortController:new AbortController,error:void 0,roundStartedAt:Date.now()},l()},"startStreaming"),stopStreaming:i(()=>{h(),e={...e,state:gn.Idle,abortController:void 0,roundStartedAt:null},l()},"stopStreaming"),appendResponse:i(y=>{a||(n+=y,g())},"appendResponse"),clearResponse:i(()=>{h(),e={...e,currentResponse:""},l()},"clearResponse"),setError:i(y=>{h(),e={...e,error:y,state:y?gn.Idle:e.state},l()},"setError"),abort:i(y=>{a=!0,h(),e.abortController?.abort(),n="",r="",o=0,s&&(clearTimeout(s),s=null),y?.preservePendingInputs||p(),e={...e,state:gn.Idle,abortController:void 0,roundStartedAt:null},l()},"abort"),reset:i(()=>{a=!0,h(),e.abortController?.abort(),n="",r="",o=0,s&&(clearTimeout(s),s=null),p(),e={...Cg,pendingInputs:Tg()},a=!1,l()},"reset"),isStreaming:i(()=>e.state===gn.Responding||e.state===gn.WaitingForConfirmation,"isStreaming"),subscribe:i(y=>(t.add(y),()=>{t.delete(y)}),"subscribe"),startThinking:i(()=>{h(),e={...e,isThinking:!0,thinkingCharCount:0,thinkingContent:""},l()},"startThinking"),appendThinkingChars:i(y=>{a||(o+=y,g())},"appendThinkingChars"),appendThinkingContent:i(y=>{a||(r+=y,g())},"appendThinkingContent"),stopThinking:i(()=>{h(),e={...e,isThinking:!1,thinkingCharCount:0},l()},"stopThinking"),clearThinkingContent:i(()=>{h(),e={...e,isThinking:!1,thinkingCharCount:0,thinkingContent:""},l()},"clearThinkingContent"),setCurrentTool:i(y=>{h(),e={...e,currentTool:y,toolInputCharCount:0,toolInputContent:""},l()},"setCurrentTool"),appendToolInputChars:i(y=>{e={...e,toolInputCharCount:e.toolInputCharCount+y},l()},"appendToolInputChars"),appendToolInputContent:i(y=>{e.toolInputContent.length<240&&(e={...e,toolInputContent:(e.toolInputContent+y).slice(0,240)},l())},"appendToolInputContent"),clearToolInputContent:i(()=>{e={...e,toolInputContent:""},l()},"clearToolInputContent"),getSignal:i(()=>e.abortController?.signal,"getSignal"),getFullResponse:i(()=>e.currentResponse+n,"getFullResponse"),getThinkingContent:i(()=>e.thinkingContent+r,"getThinkingContent"),startNewIteration:i(y=>{h(),e.thinkingContent||e.currentResponse?e={...e,thinkingContent:"",thinkingCharCount:0,currentResponse:"",isThinking:!1,currentTool:void 0,toolInputCharCount:0,toolInputContent:"",currentIteration:y}:e={...e,currentIteration:y},l()},"startNewIteration"),clearIterationHistory:i(()=>{h(),e={...e,iterationHistory:[],currentIteration:1,maxIter:Cg.maxIter,thinkingContent:"",thinkingCharCount:0,currentResponse:"",currentTool:void 0,toolInputCharCount:0,toolInputContent:""},l()},"clearIterationHistory"),setMaxIter:i(y=>{h(),e={...e,maxIter:y},l()},"setMaxIter"),startCompacting:i(()=>{h(),e={...e,isCompacting:!0},l()},"startCompacting"),stopCompacting:i(()=>{h(),e={...e,isCompacting:!1},l()},"stopCompacting"),addPendingInput:i(y=>{let x=y.trim();x&&(bg().length>=5||(h(),Rn().enqueue({priority:"user",mode:"prompt",content:x})))},"addPendingInput"),removeLastPendingInput:i(()=>{let y=bg(),x=y[y.length-1];x&&(h(),Rn().dequeue({maxPriority:"user",mode:"prompt",id:x.id}))},"removeLastPendingInput"),shiftPendingInput:i(()=>(h(),Rn().dequeue({maxPriority:"user",mode:"prompt",limit:1})[0]?.content),"shiftPendingInput"),clearPendingInputs:i(()=>{h(),p()},"clearPendingInputs"),consumePendingInputs:i(()=>(h(),p()),"consumePendingInputs"),dispose:i(()=>{m()},"dispose")}}i(vg,"createStreamingManager");var Ov=Pv(null),Dv=Pv(null);function wf({children:e,onStateChange:t}){let n=uD(vg()),[,r]=lD(V=>V+1,0);Lv(()=>n.current.subscribe(ae=>{r(),t?.(ae)}),[t]),Lv(()=>{let V=n.current;return()=>{V.dispose()}},[]);let o=Xe(()=>{n.current.startStreaming()},[]),s=Xe(()=>{n.current.stopStreaming()},[]),a=Xe(V=>{n.current.appendResponse(V)},[]),c=Xe(()=>{n.current.clearResponse()},[]),l=Xe(V=>{n.current.setError(V)},[]),u=Xe(V=>{n.current.abort(V)},[]),m=Xe(()=>{n.current.reset()},[]),p=Xe(()=>{n.current.startThinking()},[]),h=Xe(V=>{n.current.appendThinkingChars(V)},[]),g=Xe(V=>{n.current.appendThinkingContent(V)},[]),y=Xe(()=>{n.current.stopThinking()},[]),x=Xe(()=>{n.current.clearThinkingContent()},[]),w=Xe(V=>{n.current.setCurrentTool(V)},[]),T=Xe(V=>{n.current.appendToolInputChars(V)},[]),I=Xe(V=>{n.current.appendToolInputContent(V)},[]),A=Xe(()=>{n.current.clearToolInputContent()},[]),$=Xe(()=>n.current.getSignal(),[]),F=Xe(()=>n.current.getFullResponse(),[]),D=Xe(()=>n.current.getThinkingContent(),[]),v=Xe(V=>{n.current.startNewIteration(V)},[]),z=Xe(()=>{n.current.clearIterationHistory()},[]),fe=Xe(V=>{n.current.setMaxIter(V)},[]),se=Xe(()=>{n.current.startCompacting()},[]),ge=Xe(()=>{n.current.stopCompacting()},[]),L=Xe(V=>{n.current.addPendingInput(V)},[]),k=Xe(()=>{n.current.removeLastPendingInput()},[]),P=Xe(()=>n.current.shiftPendingInput(),[]),Re=Xe(()=>{n.current.clearPendingInputs()},[]),_e=Xe(()=>n.current.consumePendingInputs(),[]),Y={startStreaming:o,stopStreaming:s,appendResponse:a,clearResponse:c,setError:l,abort:u,reset:m,startThinking:p,appendThinkingChars:h,appendThinkingContent:g,stopThinking:y,clearThinkingContent:x,setCurrentTool:w,appendToolInputChars:T,appendToolInputContent:I,clearToolInputContent:A,getSignal:$,getFullResponse:F,getThinkingContent:D,startNewIteration:v,clearIterationHistory:z,setMaxIter:fe,startCompacting:se,stopCompacting:ge,addPendingInput:L,removeLastPendingInput:k,shiftPendingInput:P,clearPendingInputs:Re,consumePendingInputs:_e};return _v.createElement(Ov.Provider,{value:n.current.getState()},_v.createElement(Dv.Provider,{value:Y},e))}i(wf,"StreamingProvider");function Wc(){let e=$v(Ov);if(!e)throw new Error("useStreamingState must be used within a StreamingProvider");return e}i(Wc,"useStreamingState");function Uc(){let e=$v(Dv);if(!e)throw new Error("useStreamingActions must be used within a StreamingProvider");return e}i(Uc,"useStreamingActions");function Nv(){let e=Wc(),t=Uc(),n=e.state===gn.Responding||e.state===gn.WaitingForConfirmation;return{state:e,actions:t,isStreaming:n}}i(Nv,"useStreaming");import{useCallback as fD,useRef as mD}from"react";var pD=500;function hD(e={}){let{onKey:t,onEsc:n,onCtrlC:r,enabled:o=!0}=e,s=mD(0),{exit:a}=so(),c=fD(l=>{if(!o)return!1;if(l.name==="escape"){let u=Date.now(),m=u-s.current<pD;return s.current=u,m&&(l.name="escape-escape"),n?.(),t?.(l),!0}return l.ctrl&&l.name==="c"?(r?.(),t?.(l),!0):l.ctrl&&l.name==="d"?(a(),!0):(t?.(l),!1)},[o,a,r,n,t]);return yn(c,{isActive:o}),{lastEscTime:s.current}}i(hD,"useKeypress");function gD(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(gD,"createKeyMatcher");import{useCallback as yD,useSyncExternalStore as xD}from"react";function wD(e){return e.agentId===void 0&&e.priority==="user"&&e.mode==="prompt"}i(wD,"isMainThreadPrompt");var Ig=null,Sf=Object.freeze([]);function Bv(){let e=Rn().getSnapshot();return e===Ig||(Ig=e,Sf=Object.freeze(e.filter(wD))),Sf}i(Bv,"getQueueSliceSnapshot");function Hv(){let e=yD(t=>Rn().subscribe(t),[]);return xD(e,Bv,Bv)}i(Hv,"useQueuedPrompts");function SD(){return Hv().map(t=>t.content)}i(SD,"useQueuedPromptContents");function TD(){Ig=null,Sf=Object.freeze([])}i(TD,"_resetQueuedPromptsCacheForTests");async function jc(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??Gc(),title:"",gitRoot:e.gitRoot,runtimeInfo:e.runtimeInfo,createdAt:new Date().toISOString(),lastAccessed:new Date().toISOString()}}i(jc,"createInteractiveContext");function Gc(){let e=new Date,t=e.toISOString().split("T")[0].replace(/-/g,""),n=e.toTimeString().split(" ")[0].replace(/:/g,"");return`${t}_${n}`}i(Gc,"generateSessionId");function hr(e){e.lastAccessed=new Date().toISOString()}i(hr,"touchContext");async function Kc(e){let t=await zw({userKodaxDir:Aw(),projectRoot:e.projectRoot}),n;return{getGuardrail:i(()=>n||(n=Xw({rules:t.merged,claudeMd:_w(e.getAgentsFiles()),getToolProjection:i(o=>(hu(o)??Dw(o))?.toClassifierInput,"getToolProjection"),resolveProvider:i(o=>{try{return No(o)}catch{return}},"resolveProvider"),defaultProvider:e.getCurrentProviderName(),defaultModel:e.getCurrentModel()??"",getDefaultProvider:e.getCurrentProviderName,getDefaultModel:i(()=>{let o=e.getCurrentModel();return o||(e.log?.("warn","[auto-mode] classifier defaultModel is empty; main session has no model set \u2014 classifier will likely fail"),"")},"getDefaultModel"),askUser:e.askUser,log:e.log,onEngineChange:e.onEngineChange,projectRoot:e.projectRoot,extraCollectors:e.extraCollectors,initialEngine:e.autoModeSettings.engine,timeoutMs:e.autoModeSettings.timeoutMs,userSettings:e.autoModeSettings.classifierModel,envVar:e.autoModeSettings.classifierModelEnv}),n),"getGuardrail"),rulesLoadResult:t}}i(Kc,"bootstrapAutoMode");var Ks=class{static{i(this,"MemorySessionStorage")}sessions=new Map;async save(t,n){let r=this.sessions.get(t);this.sessions.set(t,{...structuredClone(n),scope:n.scope??r?.scope??"user",uiHistory:n.uiHistory??r?.uiHistory,extensionState:n.extensionState??r?.extensionState,artifactLedger:n.artifactLedger??r?.artifactLedger,extensionRecords:n.extensionRecords??r?.extensionRecords,lineage:En(n.messages,n.lineage??r?.lineage)})}async load(t){return structuredClone(this.sessions.get(t)??null)}async getLineage(t){return structuredClone(this.sessions.get(t)?.lineage??null)}async setActiveEntry(t,n,r){let o=this.sessions.get(t);if(!o?.lineage)return null;let s=zi(o.lineage,n,r);if(!s)return null;let a={...structuredClone(o),messages:At(s),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async setLabel(t,n,r){let o=this.sessions.get(t);if(!o?.lineage)return null;let s=Xi(o.lineage,n,r);if(!s)return null;let a={...structuredClone(o),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async fork(t,n,r){let o=this.sessions.get(t);if(!o?.lineage)return null;let s=Ji(o.lineage,n);if(!s)return null;let a=r?.sessionId??await Vi(),c={messages:At(s),title:r?.title??o.title,gitRoot:o.gitRoot,uiHistory:o.uiHistory?o.uiHistory.map(l=>({...l})):void 0,extensionState:o.extensionState?structuredClone(o.extensionState):void 0,artifactLedger:o.artifactLedger?structuredClone(o.artifactLedger):void 0,extensionRecords:o.extensionRecords?structuredClone(o.extensionRecords):void 0,lineage:s};return this.sessions.set(a,c),{sessionId:a,data:structuredClone(c)}}async rewind(t,n){let r=this.sessions.get(t);if(!r?.lineage)return null;let o=n??Yi(r.lineage);if(!o)return null;let s=qi(r.lineage,o);if(!s)return null;let a={...r,messages:At(s),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async list(t){return Array.from(this.sessions.entries()).filter(([,n])=>(n.scope??"user")==="user").map(([n,r])=>({id:n,title:r.title,msgCount:r.lineage?Fo(r.lineage):r.messages.length}))}async delete(t){this.sessions.delete(t)}async deleteAll(t){this.sessions.clear()}};function CD(){return new Ks}i(CD,"createMemorySessionStorage");import*as Fv from"child_process";import*as Wv from"util";import Tf from"chalk";var bD=Wv.promisify(Fv.exec),vD={maxBuffer:1024*1024,timeout:3e4,maxOutputLength:8e3,maxErrorLength:4e3};async function Cf(e,t={}){let n={...vD,...t},r=e.trim(),o=lh(r);if(o)return o.startsWith("[Blocked]")&&(console.log(Tf.yellow(`
350
+ ${o}`)),console.log()),o;try{console.log(Tf.dim(`
351
+ [Executing: ${r}]`));let{stdout:s,stderr:a}=await bD(r,{cwd:n.cwd,maxBuffer:n.maxBuffer,timeout:n.timeout,windowsHide:!0}),c="";return s&&(c+=s),a&&(c+=(c?`
352
+ `:"")+`[stderr] ${a}`),c.length>n.maxOutputLength&&(c=c.slice(0,n.maxOutputLength)+`
353
+ ...[output truncated]`),console.log(Tf.dim(c||"[No output]")),console.log(),`[Shell command executed: ${r}]
354
+
355
+ Output:
356
+ ${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)+`
357
+ ...[error truncated]`),console.log(Tf.red(`
358
+ [Shell Error: ${c}]`)),console.log(),`[Shell command failed: ${r}]
359
+
360
+ Error: ${c}`}}i(Cf,"executeShellCommand");async function kg(e,t={}){if(e.startsWith("!")){let n=e.slice(1).trim();return Cf(n,t)}return e}i(kg,"processSpecialSyntax");function ID(e){return e.trim().startsWith("!")}i(ID,"isShellCommand");function kD(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell:")}i(kD,"isShellCommandSuccess");function Vc(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell command failed:")||e.startsWith("[Shell:")||e.startsWith("[Blocked]")}i(Vc,"isShellCommandHandled");function bf(e,t,n){let r=e.trim();return{type:"info",icon:"\u23F3",text:/\bretry\s+\d+\/\d+\b/i.test(r)||/\b\d+\/\d+\b/.test(r)?r:`${r} \xB7 retry ${t}/${n}`}}i(bf,"createRetryHistoryItem");function Rg(e,t,n,r){e(bf(t,n,r))}i(Rg,"emitRetryHistoryItem");function vf(e){let{recoveryAction:t,attempt:n,maxAttempts:r,delayMs:o,stage:s,fallbackUsed:a}=e,c=Math.round(o/1e3);if(t==="manual_continue")return{type:"info",icon:"\u26A0",text:'Recovery exhausted. Type "continue" to retry or "stop" to cancel.'};if(t==="non_streaming_fallback"||a)return{type:"info",icon:"\u23F3",text:"Stream unstable, switching to non-streaming mode"};if(t==="sanitize_thinking_and_retry")return{type:"info",icon:"\u23F3",text:"Provider rejected replay thinking, sanitizing history and retrying"};let l;switch(s){case"before_first_delta":case"before_request_accepted":l="Provider request timed out";break;case"mid_stream_text":case"mid_stream_thinking":l="Stream interrupted after partial output";break;case"mid_stream_tool_input":l="Stream interrupted during tool input";break;case"post_tool_execution_pre_assistant_close":l="Stream interrupted after tool execution";break;default:l="Stream interrupted";break}let u=t==="stable_boundary_retry"?"recovering":"retrying";return{type:"info",icon:"\u23F3",text:c>0?`${l} \xB7 ${u} ${n}/${r} in ${c}s`:`${l} \xB7 ${u} ${n}/${r}`}}i(vf,"createRecoveryHistoryItem");function Eg(e,t){e(vf(t))}i(Eg,"emitRecoveryHistoryItem");import{jsx as le,jsxs as Zt,Fragment as xH}from"react/jsx-runtime";import Ck,{useState as Ge,useCallback as X,useRef as xe,useEffect as Fe,useMemo as de}from"react";import{jsx as gr,Fragment as RD,jsxs as If}from"react/jsx-runtime";var Mg=" | ",Uv=i(({searchActive:e=!1,selectionActive:t=!1,showAllActive:n=!1,searchQuery:r="",searchCurrent:o=0,searchCount:s=0,searchDetailText:a,pendingLiveUpdates:c=0,secondaryText:l,noticeText:u})=>{let m=re("dark"),p=r.trim(),h=a?.trim(),g=l?.trim(),y=u?.trim(),x=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`,T=c>0?c===1?"1 new update":`${c} new updates`:void 0,I=e&&s>0?`${Math.max(0,o)}/${s}`:void 0,A=e&&h||g,$=!!(A||y);return If(R,{flexDirection:"column",children:[If(R,{paddingX:1,children:[gr(b,{color:m.colors.dim,children:x}),gr(b,{dimColor:!0,children:Mg}),gr(b,{color:m.colors.dim,children:w}),I||T?gr(R,{flexGrow:1}):null,I?If(RD,{children:[gr(b,{dimColor:!0,children:I}),T?gr(b,{dimColor:!0,children:Mg}):null]}):null,T?gr(b,{color:m.colors.accent,bold:!0,children:T}):null]}),$?If(R,{paddingX:1,children:[A?gr(b,{color:m.colors.dim,children:A}):null,A&&y?gr(b,{dimColor:!0,children:Mg}):null,y?gr(b,{color:m.colors.accent,bold:!0,children:y}):null]}):null]})},"TranscriptModeFooter");import{jsx as ED,jsxs as MD}from"react/jsx-runtime";var jv=i(({banner:e,...t})=>MD(R,{flexDirection:"column",children:[e,ED(ci,{...t,animateSpinners:!1,showFullThinking:!1,showDetailedTools:!1,showLiveProgressRows:!1})]}),"PromptTranscriptSurface");import{jsx as AD,jsxs as _D}from"react/jsx-runtime";var Gv=i(({banner:e,windowed:t=!1,showDetailedTools:n=!1,showAllContent:r=!1,...o})=>_D(R,{flexDirection:"column",children:[e,AD(cg,{...o,chromeMode:"hidden",windowed:t,showFullThinking:!0,showDetailedTools:n,showAllContent:r,showLiveProgressRows:!0})]}),"TranscriptModeSurface");import{jsxs as LD,jsx as PD}from"react/jsx-runtime";var Kv=i(({text:e,tone:t="success"})=>{let n=e?.trim();if(!n)return null;let r=re("dark"),o=t==="warning"?r.colors.warning:r.colors.accent,s=t==="warning"?"!":"\u2713";return PD(R,{paddingX:1,backgroundColor:r.colors.inputBackground,children:LD(b,{color:o,children:[s," ",n]})})},"ClipboardToastSurface");import{jsx as xo,Fragment as $D,jsxs as Ag}from"react/jsx-runtime";var OD=" \u23BF ";function DD(e){let t=re("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(DD,"resolveSymbolColor");var ND=i(({row:e})=>{let t=DD(e.symbolColor),n=e.kind!=="item";return Ag(R,{flexDirection:"row",children:[xo(b,{color:t,bold:e.isActive,children:e.symbol}),xo(b,{children:" "}),xo(b,{dimColor:n,bold:e.isActive,strikethrough:e.isStrikethrough,children:e.text}),e.evaluatorBadge?Ag($D,{children:[xo(b,{children:" "}),xo(b,{dimColor:!0,children:e.evaluatorBadge})]}):null]})},"TodoListRow"),Vv=i(({viewModel:e})=>{if(!e.shouldRender||e.rows.length===0)return null;let t=re("dark").colors.dim;return Ag(R,{flexDirection:"row",children:[xo(b,{color:t,children:OD}),xo(R,{flexDirection:"column",flexGrow:1,children:e.rows.map((n,r)=>xo(ND,{row:n},`${n.kind}-${n.id??r}`))})]})},"TodoListSurface");function BD(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(BD,"symbolForStatus");function HD(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(HD,"pickAnchorIndex");function FD(e){let{symbol:t,color:n}=BD(e.status),r=e.status==="failed"&&e.note?`${e.subject} (${e.note})`:e.subject,o=e.status==="cancelled",s=e.evaluator?`[${e.evaluator}]`:void 0;return{kind:"item",id:e.id,symbol:t,symbolColor:n,text:r,isActive:e.status==="in_progress",isStrikethrough:o,evaluatorBadge:s}}i(FD,"buildItemRow");function WD(e){return{kind:"summary_done",symbol:"\u2713",symbolColor:"green",text:`${e} done`,isActive:!1}}i(WD,"buildDoneSummary");function _g(e){return{kind:"summary_pending",symbol:"\u2610",symbolColor:"dim",text:`+${e} more`,isActive:!1}}i(_g,"buildPendingSummary");function UD(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].status==="failed"&&!t.has(n))return n;return-1}i(UD,"pickFailedToPromote");function jD(e,t){let n=e.length;if(n===0)return{visibleIdx:[],hiddenCompletedCount:0,hiddenPendingCount:0};let r=4,o=Math.max(0,t-1),s=Math.min(n,o+r);s-o<r&&o>0&&(o=Math.max(0,s-r)),s-o<r&&s<n&&(s=Math.min(n,o+r));let a=[];for(let u=o;u<s;u++)a.push(u);let c=0,l=0;for(let u=0;u<o;u++)e[u].status==="completed"&&c++;for(let u=s;u<n;u++){let m=e[u].status;(m==="pending"||m==="in_progress")&&l++}return{visibleIdx:a,hiddenCompletedCount:c,hiddenPendingCount:l}}i(jD,"decideWindow");function zv(e,t){let n=e.length,r=e.reduce((g,y)=>y.status==="completed"?g+1:g,0),o=i((g,y)=>({shouldRender:y,rows:g,completedCount:r,totalCount:n}),"baseVm");if(n<1)return o([],!1);t.now,t.lastAllCompletedAt;let s=HD(e),a=jD(e,s),c=new Set(a.visibleIdx),l=UD(e,c),u=[...a.visibleIdx],m=a.hiddenCompletedCount,p=a.hiddenPendingCount;if(l>=0){let g=-1;for(let y=u.length-1;y>=0;y--){let x=u[y];if(x!==s&&e[x].status==="pending"){g=y;break}}if(g>=0){let y=u[g];u[g]=l,p+=1,u.sort((T,I)=>T-I);let x=u[0],w=0;for(let T=0;T<x;T++)e[T].status==="completed"&&w++;m=w}}let h=[];m>0&&h.push(WD(m));for(let g of u)h.push(FD(e[g]));if(p>0&&h.push(_g(p)),h.length>6)for(;h.length>6;){let g=!1;for(let y=h.length-1;y>=0;y--){let x=h[y];if(x.kind==="item"&&!x.isActive){h.splice(y,1);let w=h[h.length-1];if(w&&w.kind==="summary_pending"){let T=/\+(\d+) more/.exec(w.text),I=T?Number.parseInt(T[1],10)+1:1;h[h.length-1]=_g(I)}else h.push(_g(1));g=!0;break}}if(!g)break}return o(h,!0)}i(zv,"buildTodoPlanViewModel");function Xv(e){let t=[];e.isHistorySearchActive?t.push({id:"search",label:"Search",accent:!0}):e.isTranscriptMode&&t.push({id:"transcript",label:"Transcript"}),e.pendingInputCount>0&&t.push({id:"queue",label:`Queue ${e.pendingInputCount}`}),e.buffering==="buffered-fallback"&&(e.isHistorySearchActive||e.isTranscriptMode)&&t.push({id:"buffered",label:"Buffered"}),e.isTranscriptMode&&e.pendingLiveUpdates>0&&t.push({id:"updates",label:e.pendingLiveUpdates===1?"1 update":`${e.pendingLiveUpdates} updates`,accent:!0});let n=[],r=[...t,...n].map(o=>o.label.trim()).filter(Boolean).join(" | ");return{leftItems:t,rightItems:n,summary:r}}i(Xv,"buildFooterHeaderViewModel");function GD(e){return yu(e.provider,e.model,"off",{longRunning:!0})}i(GD,"evaluateSessionTransitionPolicy");function KD(e,t){let n=t.snapshot.model?`${t.snapshot.provider}:${t.snapshot.model}`:t.snapshot.provider,r=[`[Provider Guardrail] ${e} on ${n}: ${t.summary}`],o=t.issues[0]?.detail;return o&&r.push(` ${o}`),t.status==="block"?r.push(" Switch to a provider with durable full-history session semantics before continuing."):t.status==="warn"&&r.push(" Continuing with degraded session semantics."),r}i(KD,"formatSessionTransitionGuardMessage");function di(e,t,n){let r=GD(e);if(!r||r.status==="allow")return!0;let[o,...s]=KD(t,r);return n(r.status,o,s),r.status!=="block"}i(di,"enforceSessionTransitionGuard");function VD(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(VD,"summarizeEntry");function Yv(e,t,n,r){let o=t?n?"\\- ":"|- ":"",s=e.active?"*":" ",a=e.entry.id.slice(0,12),c=e.label?` [${e.label}]`:"";r.push(`${t}${o}${s} ${a} ${VD(e.entry)}${c}`);let l=t+(t?n?" ":"| ":"");e.children.forEach((u,m)=>{Yv(u,l,m===e.children.length-1,r)})}i(Yv,"formatNode");function kf(e){let t=[];return e.forEach((n,r)=>{Yv(n,"",r===e.length-1,t)}),t}i(kf,"formatSessionTree");var zD=100,XD=/\b(curl|wget|invoke-webrequest|invoke-restmethod|iwr|irm)\b/i,Jv=/\b(rm|del|erase|remove-item|rmdir|rd|git clean)\b/i,Qv=/\b(npm|pnpm|yarn|pip|choco|winget)\s+(install|add|remove|uninstall|update|upgrade|ci)\b/i,Zv=/\b(set-content|add-content|out-file|new-item|copy-item|move-item|rename-item|cp|mv|copy|move|ren|touch)\b/i;function Vs(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i(Vs,"readString");function Xt(e,t,n){n&&e.push({label:t,value:n})}i(Xt,"pushField");function YD(e){return e.replace(/\s+/g," ").trim()}i(YD,"normalizeWhitespace");function qD(e,t){if(e.length<=t)return e;let n=Math.ceil((t-3)/2),r=Math.floor((t-3)/2);return`${e.slice(0,n)}...${e.slice(e.length-r)}`}i(qD,"truncateMiddle");function JD(e){let t=e;return t=t.replace(/\b(authorization\s*:\s*bearer\s+)([^\s'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b((?:authorization|cookie)\s*:\s*)([^'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b(bearer\s+)([^\s'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b(api[_-]?key|access[_-]?token|refresh[_-]?token|token|secret|password|passwd|cookie|session)\b(\s*[:=]\s*)(['"]?)([^'"\s]+)(\3)/gi,(n,r,o,s)=>`${r}${o}${s}[REDACTED]${s}`),t=t.replace(/(--(?:api-key|token|secret|password|cookie)\s+)(\S+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/((?:-u|--user)\s+)(\S+)/gi,(n,r)=>`${r}[REDACTED]`),t}i(JD,"maskSensitiveSegments");function qv(e){return qD(JD(YD(e)),zD)}i(qv,"summarizeCommand");function QD(e){return zn(e)?Z("intent.read"):Jv.test(e)?Z("intent.delete"):Qv.test(e)?Z("intent.deps"):Xn(e)||Zv.test(e)?Z("intent.modify"):Z("intent.execute")}i(QD,"classifyShellIntent");function ZD(e){let t=[];return Jv.test(e)?t.push(Z("risk.destructive")):Qv.test(e)?t.push(Z("risk.deps")):Xn(e)||Zv.test(e)?t.push(Z("risk.modify")):zn(e)||t.push(Z("risk.unknown")),XD.test(e)&&t.push(Z("risk.network")),t}i(ZD,"classifyShellRisks");function eN(e){if(Array.isArray(e))return e.filter(t=>typeof t=="object"&&t!==null&&typeof t.kind=="string")}i(eN,"readSignals");function tN(e){if(e){if(e.some(t=>t.kind==="protected_path"))return Z("scope.protected");if(e.some(t=>t.kind==="outside_project"||t.kind==="shell_redirect_outside"))return Z("scope.outside")}}i(tN,"scopeFromSignals");function nN(e){if(e._outsideProject===!0)return Z("scope.outside");if(e._alwaysConfirm===!0)return Z("scope.protected")}i(nN,"scopeFromMarkers");function rN(e){if(!e)return[];let t=[],n=e.some(o=>o.kind==="dangerous_pattern"&&o.severity==="high"),r=e.some(o=>o.kind==="dangerous_pattern"&&o.severity==="medium");return n?t.push(Z("risk.destructive")):r&&t.push(Z("risk.modify")),e.some(o=>o.kind==="network")&&t.push(Z("risk.network")),e.some(o=>o.kind==="package_install")&&t.push(Z("risk.deps")),t}i(rN,"risksFromSignals");var oN={Reason:"field.reason",Intent:"field.intent",Target:"field.target",Scope:"field.scope",Risk:"field.risk",Summary:"field.summary"};function iN(e){return Z(oN[e])}i(iN,"localizeFieldLabel");function zs(e,t){return{title:e,fields:t,details:t.map(n=>`${iN(n.label)}: ${n.value}`)}}i(zs,"buildDisplayFromFields");function Rf(e,t){if(e==="confirm"){let l=Vs(t._message);if(l)return zs(l,[])}if(e==="exit_plan_mode"){let l=Vs(t.plan),u="Approve plan? (exits plan mode \u2192 accept-edits)";return l?{title:u,fields:[],details:l.split(`
361
+ `)}:zs(u,[])}let n=[],r=Vs(t.path),o=Vs(t.command),s=Vs(t._reason)??Vs(t.justification),a=eN(t._classifierSignals),c=tN(a)??nN(t);switch(Xt(n,"Reason",s),e){case"bash":case"shell_command":{if(o){Xt(n,"Intent",QD(o)),Xt(n,"Scope",c);let l=rN(a),u=l.length>0?l:ZD(o);u.length>0&&Xt(n,"Risk",u.join("; ")),Xt(n,"Summary",qv(o))}else Xt(n,"Scope",c);return zs(e==="bash"?Z("tool.bash.title"):Z("tool.shell.title"),n)}case"write":return Xt(n,"Intent",Z("intent.write_file")),Xt(n,"Target",r),Xt(n,"Scope",c),zs(Z("tool.write.title"),n);case"edit":return Xt(n,"Intent",Z("intent.edit_file")),Xt(n,"Target",r),Xt(n,"Scope",c),zs(Z("tool.edit.title"),n);default:return Xt(n,"Intent",Z("intent.use_tool",{tool:e})),Xt(n,"Target",r),Xt(n,"Scope",c),o&&Xt(n,"Summary",qv(o)),zs(Z("tool.generic.title",{tool:e}),n)}}i(Rf,"buildToolConfirmationDisplay");function e0(e,t){let n=Rf(e,t);return n.details.length>0?`${n.title}
362
+ ${n.details.join(`
363
+ `)}`:n.title}i(e0,"buildToolConfirmationPrompt");function t0(e,t=240){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(t0,"truncateToolPreview");function n0(e,t=800){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(n0,"truncateToolOutputPreview");function Lg(e){return e.replace(/^\[[^\]]+\]\s+/,"").replace(/^[A-Za-z][A-Za-z0-9_-]*:\s*/,"").trim()}i(Lg,"stripToolRolePrefix");function Pg(e){return Lg(e).toLowerCase()}i(Pg,"normalizeToolNameForMatch");function $g(e){return e===`[${Z("managed.completed")}]`||e===`[${Z("managed.completed.blocked")}]`||e===`[${Z("managed.completed.continuation")}]`}i($g,"isCompletionTranscriptItem");function Ef(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(Ef,"formatManagedLiveActivityLabel");function Fr(e,t){return Ef(`[Tools] ${Fd(e)}`,t)??`[Tools] ${Fd(e)}`}i(Fr,"formatManagedLiveToolLabel");function Mf(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(Mf,"areManagedLiveItemsEquivalent");function r0(e){return e==="Task completed"?Z("managed.completed"):e==="Task needs continuation"?Z("managed.completed.continuation"):e==="Task ended: blocked"?Z("managed.completed.blocked"):e==="Task ended: needs_continuation"?Z("managed.completed.continuation"):e.startsWith("Task ended:")?Z("managed.completed.blocked"):e}i(r0,"localizeManagedCompletionSummary");function sN(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(sN,"formatHarnessProfileShort");function o0(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(o0,"mergeLiveThinkingContent");function Xs(e,t){let n=t?.expanded?e.detailNote??e.note:e.note,r=sN(e.harnessProfile)??e.harnessProfile,o=`${e.agentMode.toUpperCase()} ${r}`,s=e.activeWorkerTitle??"Scout",a=`${e.agentMode.toUpperCase()} ${s}`,c=`${e.agentMode.toUpperCase()} Routing`,l=e.currentRound&&e.maxRounds&&e.currentRound>1?` - Round ${e.currentRound}/${e.maxRounds}`:"";switch(e.phase){case"routing":return`${c} - Routing ready`;case"starting":return n?`${o} - ${n}`:`${o} - Managed task starting`;case"preflight":return n?`${a} - ${n}`:`${a} - ${s} preflight starting`;case"round":return n?`${o} - ${n}`:`${o} - Managed task round update${l}`;case"worker":return n?`${o} - ${n}${l}`:`${o} - ${e.activeWorkerTitle??"Worker"} starting${l}`;case"upgrade":return n?`${o} - ${n}`:`${o} - Harness transition${l}`;case"completed":return n?`${o} - ${n}`:`${o} - Managed task completed`;default:return}}i(Xs,"formatManagedTaskBreadcrumb");var i0=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1";function s0(e){if(e.events&&e.events.length>0)return e.events.reduce((r,o)=>{let s=o.summary.trim(),a=(o.detail??o.summary).trim();if(!s||!a)return r;let c=`managed-live-${o.key}`,l=Date.now(),u=o.persistToHistory??e.persistToHistory??!1;if(o.presentation==="thinking")return r.push({item:{id:c,type:"thinking",timestamp:l,text:a,...s!==a?{compactText:s}:{}},persistToHistory:u}),r;if(o.presentation==="assistant")return r.push({item:{id:c,type:"assistant",timestamp:l,text:a,...s!==a?{compactText:s}:{}},persistToHistory:u}),r;let m=o.kind==="completed";if(m&&!i0)return r;let p=m?`[${r0(s)}]`:void 0,h=p??s,g=p??a;return r.push({item:{id:c,type:"event",timestamp:l,text:g,icon:o.kind==="warning"?"!":m?"\u2713":">",...h!==g?{compactText:h}:{}},persistToHistory:u}),r},[]);if(e.phase==="completed"&&!i0)return[];let t=Xs(e),n=Xs(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(s0,"buildManagedLiveEventDrafts");function aN(e,t){return!(t||e.role!=="evaluator"||e.signal!=="COMPLETE")}i(aN,"shouldFilterSidecarAcceptEntry");function cN(e){let t=e.runtime?.rawRoutingDecision,n=e.runtime?.finalRoutingDecision;return!t||!n||t.harnessProfile==="H0_DIRECT"&&n.harnessProfile==="H0_DIRECT"?void 0:["[Routing]",`AMA routing: raw=${t.harnessProfile}(${t.routingSource??"unknown"}) -> final=${n.harnessProfile}`,`Primary task: ${t.primaryTask}`,`Review target: ${n.reviewTarget??"general"}`,`Review scale: ${n.reviewScale??"unknown"}`,`Solo boundary: ${t.soloBoundaryConfidence?.toFixed(2)??"n/a"}`,`Independent QA: ${t.needsIndependentQA?"yes":"no"}`,e.runtime?.qualityAssuranceMode?`Quality assurance: ${e.runtime.qualityAssuranceMode}`:void 0,e.runtime?.budget?`Adaptive budget: rounds=${e.runtime.budget.plannedRounds} total=${e.runtime.budget.totalBudget} reserve=${e.runtime.budget.reserveBudget}`:void 0,e.runtime?.routingOverrideReason?`Override reason: ${e.runtime.routingOverrideReason}`:void 0,n.upgradeCeiling?`Upgrade ceiling: ${n.upgradeCeiling}`:void 0].filter(o=>!!o).join(`
364
+ `)}i(cN,"buildManagedTaskRoutingTranscript");function Og(e,t){let n=e.managedTask;if(!n)return[];let r=t?.verifierLog??process.env.KODAX_VERIFIER_LOG==="1",o=i(p=>{if(!e.interrupted&&!n.verdict.signalReason?.includes("Orchestration cancelled"))return!1;let h=p.signalReason?.trim()??"",g=p.summary?.trim()??"",y=p.output?.trim()??"",x=h.includes("Orchestration cancelled"),w=g.includes("Orchestration cancelled"),T=!y||g==="No textual output produced.";return p.status!=="completed"&&(x||w||T)||(x||w)&&T},"isInterruptedCancellation"),s=cN(n),a=new Map(n.roleAssignments.map((p,h)=>[p.id,h])),c=n.verdict.decidedByAssignmentId,l=Math.max(0,...n.evidence.entries.filter(p=>p.assignmentId===c).map(p=>p.round??1)),u=[...n.evidence.entries].sort((p,h)=>{let g=(p.round??1)-(h.round??1);return g!==0?g:(a.get(p.assignmentId)??0)-(a.get(h.assignmentId)??0)}).filter(p=>!o(p)).filter(p=>!aN(p,r)).filter(p=>e.interrupted||!(p.assignmentId===c&&(p.round??1)===l)).map(p=>{let h=p.output?.trim()??"",g=p.summary?.trim()??"",y=h?uo(h):"",x=g?uo(g):"",w=p.role==="scout"?x?`Scout completed: ${x}`:"Scout completed.":x;return{entry:p,text:x||y||w}}).filter(({text:p})=>!!p).map(({entry:p,text:h})=>{let g=p.role==="scout"?" Preflight":(p.round??1)>1?` Round ${p.round}`:"";return`[${p.title??p.assignmentId}${g}]
365
+ ${h}`}),m=n.verdict.disposition==="complete"?Z("managed.completed"):n.verdict.disposition==="needs_continuation"?Z("managed.completed.continuation"):n.verdict.disposition==="blocked"?Z("managed.completed.blocked"):void 0;return[...s?[s]:[],...u,...m?[`[${m}]`]:[]]}i(Og,"buildManagedTaskTranscriptItems");function a0(e){let r=e.slice(0,400).match(new RegExp("\\*\\*([^*\\n]{1,80}?)\\*\\*"))?.[1]?.trim();return r?{header:r}:{}}i(a0,"extractBoldHeader");var Dg=[" \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 Ye from"chalk";var Af=class e{static{i(this,"ShortcutsRegistry")}static instance=null;shortcuts=new Map;static getInstance(){return e.instance||(e.instance=new e),e.instance}static resetInstance(){e.instance=null}register(t){let n=this.shortcuts.get(t.id);this.shortcuts.set(t.id,{definition:t,effectiveBindings:n?.effectiveBindings??t.defaultBindings,handler:n?.handler})}registerAll(t){for(let n of t)this.register(n)}unregister(t){return this.shortcuts.delete(t)}setHandler(t,n){let r=this.shortcuts.get(t);r&&(r.handler=n)}findMatchingShortcut(t,n){let r=null,o=-1/0;for(let s of this.shortcuts.values()){let a=s.definition.context;a!=="global"&&a!==n||this.matchesBinding(t,s.effectiveBindings)&&s.handler&&s.definition.priority>o&&(o=s.definition.priority,r=s)}return r}matchesBinding(t,n){for(let r of n){let o=this.normalizeKeyName(t.name),s=this.normalizeKeyName(r.key);if(o===s){let a=(r.ctrl??!1)===t.ctrl,c=(r.shift??!1)===t.shift,l=(r.meta??!1)===t.meta;if(a&&c&&l)return!0}}return!1}normalizeKeyName(t){let n={return:"enter",esc:"escape",del:"delete",backspace:"backspace"," ":"space"},r=t.toLowerCase();return n[r]??r}executeShortcut(t,n){let r=this.findMatchingShortcut(t,n);return r?.handler?r.handler()===!0:!1}getAllShortcuts(){return Array.from(this.shortcuts.values())}getShortcutsByCategory(t){return this.getAllShortcuts().filter(n=>n.definition.category===t)}getShortcutsByContext(t){return this.getAllShortcuts().filter(n=>{let r=n.definition.context;return r==="global"||r===t})}formatBinding(t){let n=[];t.ctrl&&n.push("Ctrl"),t.meta&&n.push("Alt"),t.shift&&n.push("Shift");let r=t.key.length===1?t.key.toUpperCase():t.key;return n.push(r),n.join("+")}formatBindings(t){return t.map(n=>this.formatBinding(n)).join(" or ")}},yr=i(()=>Af.getInstance(),"getShortcutsRegistry");var Ys=[{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 lN,useCallback as uN,useRef as dN}from"react";function Wr(e,t,n={}){let{context:r,isActive:o=!0}=n,s=yr(),a=dN(t);a.current=t,lN(()=>(s.setHandler(e,(...u)=>a.current(...u)),()=>{s.setHandler(e,void 0)}),[s,e]);let c=uN(u=>{if(!o)return!1;let p=s.getAllShortcuts().find(x=>x.definition.id===e);if(!p)return!1;let h=r??p.definition.context,g=h==="global"?"input":h,y=s.findMatchingShortcut(u,g);return y&&y.definition.id===e?a.current()===!0:!1},[s,e,o,r]),l=fN(e,s);yn(c,{isActive:o,priority:l})}i(Wr,"useShortcut");function fN(e,t){let r=t.getAllShortcuts().find(o=>o.definition.id===e);return r?r.definition.priority:0}i(fN,"getShortcutPriority");import mN,{createContext as pN,useContext as hN,useState as c0,useCallback as Ng}from"react";var l0=pN(null);function Bg({children:e,initialContext:t="input"}){let[n,r]=c0(!1),[o,s]=c0(t);yr().registerAll(Ys);let c=Ng(()=>{r(p=>!p)},[]),l=Ng(()=>{let h=yr().getAllShortcuts(),g={global:[],mode:[],navigation:[],editing:[]};for(let y of h){let x=y.definition.category;g[x]||(g[x]=[]),g[x].push(y)}return g},[]),u=Ng(()=>yr().getShortcutsByContext(o),[o]),m={showHelp:n,toggleHelp:c,setShowHelp:r,currentContext:o,setCurrentContext:s,getShortcutsByCategory:l,getContextShortcuts:u};return mN.createElement(l0.Provider,{value:m},e)}i(Bg,"ShortcutsProvider");function Hg(){let e=hN(l0);if(!e)throw new Error("useShortcutsContext must be used within a ShortcutsProvider");return e}i(Hg,"useShortcutsContext");import gN from"chalk";function Fg({currentConfig:e,setCurrentConfig:t,isLoading:n,abort:r,stopThinking:o,clearThinkingContent:s,setCurrentTool:a,setIsLoading:c,onToggleHelp:l,setShowHelp:u,onSetThinking:m,onSetReasoningMode:p,onToggleTranscriptMode:h,onOpenTranscriptSearch:g,canOpenTranscriptSearch:y=!0,isInteractiveDialogActive:x=!1,onSetAgentMode:w,onSetPermissionMode:T,isInputEmpty:I,onSavePermissionMode:A}){return Wr("interrupt",()=>n?(r(),o(),s(),a(void 0),c(!1),console.log(gN.yellow(`
366
+ [Interrupted]`)),!0):!1,{isActive:n}),Wr("showHelp",()=>x?!1:I?(l(),!0):!1,{isActive:I}),Wr("toggleThinking",()=>{if(x)return!1;let $=Do.indexOf(e.reasoningMode),F=Do[($+1)%Do.length],D=F!=="off";return t(v=>({...v,thinking:D,reasoningMode:F})),Kn({reasoningMode:F,thinking:D}),p?.(F),m?.(D),u(!1),!0}),Wr("toggleTranscriptMode",()=>x?!1:(h?.(),u(!1),!0)),Wr("openTranscriptSearch",()=>x||!y?!1:(g?.(),u(!1),!0)),Wr("togglePermissionMode",()=>{if(x)return!1;let $=["plan","accept-edits","auto"],F=e.permissionMode==="auto-in-project"?"auto":e.permissionMode,v=($.indexOf(F)+1)%$.length,z=$[v];return t(fe=>({...fe,permissionMode:z})),T?.(z),A?.(z),u(!1),!0}),Wr("toggleAgentMode",()=>{if(x)return!1;let $=e.agentMode==="ama"?"sa":"ama";return t(F=>({...F,agentMode:$})),Kn({agentMode:$}),w?.($),u(!1),!0}),null}i(Fg,"GlobalShortcuts");import{exec as yN}from"child_process";import{promisify as xN}from"util";var wN=xN(yN),SN={read:"read",grep:"grep",glob:"glob",write:"write",edit:"edit",bash:"bash",undo:"undo",askuserquestion:"ask-user-question",askuser:"ask-user-question"};function u0(e){let t=[],n="",r=0;for(let o of e){if(o===","&&r===0){n.trim()&&t.push(n.trim()),n="";continue}o==="("?r++:o===")"&&r>0&&r--,n+=o}return n.trim()&&t.push(n.trim()),t}i(u0,"splitTopLevelCommaList");function TN(e){if(!e?.trim())return{configured:!1,rules:[],invalidEntries:[]};let t=[];return{configured:!0,rules:u0(e).map(r=>{if(r==="*")return{tool:"*"};if(r.includes("(")&&!r.endsWith(")")){t.push(r);return}let o=r.match(/^([^(]+?)(?:\((.*)\))?$/);if(!o){t.push(r);return}let s=SN[o[1].replace(/[^a-z]/gi,"").toLowerCase()];if(!s){t.push(r);return}let a=o[2]?u0(o[2]).map(c=>c.trim()).filter(Boolean):void 0;return{tool:s,patterns:a&&a.length>0?a:void 0}}).filter(r=>r!==void 0),invalidEntries:t}}i(TN,"parseAllowedTools");function CN(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${t}$`,"i")}i(CN,"wildcardToRegExp");function d0(e,t){return CN(e).test(t)}i(d0,"matchesPattern");function f0(e,t,n){if(!e.configured)return!0;if(e.rules.length===0)return!1;let r=t.toLowerCase(),o=r==="bash"?String(n.command??"").trim():"";return e.rules.some(s=>s.tool!=="*"&&s.tool!==r?!1:!s.patterns||s.patterns.length===0||r!=="bash"?!0:s.patterns.some(a=>d0(a,o)))}i(f0,"isToolAllowed");function bN(e,t){return e.matcher?d0(e.matcher,t):!0}i(bN,"hookMatches");function vN(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(`
367
+ `)}i(vN,"formatManualOutput");function IN(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(IN,"resolveModelOverride");async function kN(e,t,n,r,o,s){let a=typeof n.displayName=="string"?n.displayName:"frontmatter invocation",c={command:t.command,_reason:`Frontmatter hook ${e} for ${a}`,_frontmatterHook:!0,_hookEvent:e,_hookMatcher:t.matcher};if(!f0(s,"bash",c))return{allow:!1,message:`Hook ${e} for ${a} is blocked by allowed-tools policy.`};if(o.beforeToolExecute&&!await o.beforeToolExecute("bash",c))return{allow:!1,message:`Hook ${e} for ${a} was blocked by the current permission policy.`};try{let{stdout:l,stderr:u}=await wN(t.command,{env:{...process.env,KODAX_HOOK_EVENT:e,KODAX_HOOK_PAYLOAD:JSON.stringify(n)},maxBuffer:1048576,windowsHide:!0}),m=[l.trim(),u.trim()].filter(Boolean).join(`
368
+ `);m&&o.onToolResult?.({id:`frontmatter-hook:${e}`,name:"bash",content:m}),u.trim()&&await r(`[Hook ${e} stderr] ${u.trim()}`);let p=l.trim();if(!p)return{};try{let h=JSON.parse(p);return{allow:typeof h.allow=="boolean"?h.allow:typeof h.continue=="boolean"?h.continue:void 0,message:typeof h.message=="string"?h.message:void 0,additionalContext:typeof h.additionalContext=="string"?h.additionalContext:typeof h.additional_context=="string"?h.additional_context:void 0}}catch{return{message:p,additionalContext:p}}}catch(l){return await r(`[Hook ${e} failed] ${l instanceof Error?l.message:String(l)}`),{}}}i(kN,"executeHookCommand");async function qs(e,t,n,r,o,s,a){let c=e?.[t];if(!c||c.length===0)return{};let l={};for(let u of c){if(!bN(u,n))continue;let m=await kN(t,u,r,o,s,a);if(m.message&&await o(`[Hook ${t}] ${m.message}`),m.additionalContext&&(l.additionalContext=l.additionalContext?`${l.additionalContext}
369
+ ${m.additionalContext}`:m.additionalContext),m.allow===!1){l.allow=!1;break}}return l}i(qs,"runHooks");async function _f(e,t,n,r){if(t.disableModelInvocation)return{mode:"manual",manualOutput:vN(t),finalize:i(async()=>{},"finalize")};let o=e.events??{},s=TN(t.allowedTools),a=IN(e.provider,t.model),c=!1,l=i(async w=>{if(r(w),!(c||!t.hooks?.Notification?.length)){c=!0;try{await qs(t.hooks,"Notification",w,{displayName:t.displayName,source:t.source,path:t.path,message:w},async T=>{r(T)},o,s)}finally{c=!1}}},"emitWithNotifications");t.model&&!a&&await l(`[Info] Model preference '${t.model}' is not supported by provider '${e.provider}', using the current model.`),s.invalidEntries.length>0&&await l(`[Warning] ${t.displayName} has invalid allowed-tools entries: ${s.invalidEntries.join(", ")}`),s.configured&&s.rules.length===0&&await l(`[Warning] ${t.displayName} has no valid allowed-tools entries, so all tool execution will be blocked.`);let u=await qs(t.hooks,"SessionStart",t.displayName,{displayName:t.displayName,source:t.source,path:t.path},l,o,s);if(u.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped before execution.`,finalize:i(async()=>{},"finalize")};let m=await qs(t.hooks,"UserPromptSubmit",n,{displayName:t.displayName,source:t.source,prompt:n,path:t.path},l,o,s);if(m.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped by a UserPromptSubmit hook.`,finalize:i(async()=>{},"finalize")};let p=[t.agent?`Preferred agent: ${t.agent}`:void 0,u.additionalContext,m.additionalContext].filter(w=>typeof w=="string"&&w.trim().length>0),h=[p.length>0?p.join(`
370
+
371
+ `):void 0,t.prompt,`User request: ${n}`].filter(w=>typeof w=="string"&&w.trim().length>0),g={...o,beforeToolExecute:i(async(w,T)=>f0(s,w,T)?(await qs(t.hooks,"PreToolUse",w,{tool:w,input:T,displayName:t.displayName,source:t.source,path:t.path},l,o,s)).allow===!1?(await l(`[Blocked] PreToolUse hook blocked '${w}' for ${t.displayName}`),!1):o.beforeToolExecute?await o.beforeToolExecute(w,T):!0:(await l(`[Blocked] Tool '${w}' is not allowed by ${t.displayName}`),!1),"beforeToolExecute"),onToolResult:i(w=>{o.onToolResult?.(w),qs(t.hooks,"PostToolUse",w.name,{...w,displayName:t.displayName,source:t.source,path:t.path},l,o,s)},"onToolResult")},y=!1,x=i(async w=>{y||(y=!0,await qs(t.hooks,t.context==="fork"?"SubagentStop":"Stop",t.displayName,{displayName:t.displayName,source:t.source,path:t.path,error:w?.message},l,o,s))},"finalize");return{mode:t.context==="fork"?"fork":"inline",prompt:h.join(`
372
+
373
+ `),options:{...e,modelOverride:a,context:{...e.context,rawUserInput:n,skillInvocation:t.source==="skill"?t.skillInvocation:e.context?.skillInvocation},events:g},finalize:x}}i(_f,"prepareInvocationExecution");import{appendFileSync as RN,mkdirSync as EN,writeFileSync as MN}from"node:fs";import{join as p0}from"node:path";import m0 from"node:v8";var jg=parseInt(process.env.KODAX_MEMORY_DIAG??"0",10),Gg=jg>=1,Kg=Ki(),h0=p0(Kg,"memory-diag.log"),Wg=0,Ug=!1;function g0(){if(!Ug)try{EN(Kg,{recursive:!0}),Ug=!0}catch{Ug=!0}}i(g0,"ensureLogDir");function AN(e){g0();try{RN(h0,e+`
374
+ `)}catch{}}i(AN,"writeLog");function St(e){return`${(e/1024/1024).toFixed(2)}MB`}i(St,"formatMB");function _N(){return typeof globalThis.gc=="function"?(globalThis.gc(),!0):!1}i(_N,"tryGC");function Lt(e){return e?e.length*2:0}i(Lt,"strBytes");function fi(e,t=0){if(t>8)return 0;if(e==null)return 8;if(typeof e=="string")return e.length*2;if(typeof e=="number"||typeof e=="boolean")return 8;if(Array.isArray(e)){let n=32;for(let r of e)n+=fi(r,t+1);return n}if(typeof e=="object"){let n=64;for(let[r,o]of Object.entries(e))n+=r.length*2,n+=fi(o,t+1);return n}return 16}i(fi,"estimateJsonBytes");function y0(e){if(!e||typeof e!="object")return 64;let t=e,n=64,r=new Set(["type","text","thinking","content","partial_json","input","data","signature","path","mediaType","tool_use_id","id","name","is_error"]);if(typeof t.text=="string"&&(n+=t.text.length*2),typeof t.thinking=="string"&&(n+=t.thinking.length*2),typeof t.content=="string")n+=t.content.length*2;else if(Array.isArray(t.content))for(let o of t.content)n+=y0(o);typeof t.partial_json=="string"&&(n+=t.partial_json.length*2),typeof t.data=="string"&&(n+=t.data.length*2),typeof t.signature=="string"&&(n+=t.signature.length*2),typeof t.path=="string"&&(n+=t.path.length*2),t.input!==void 0&&(n+=fi(t.input));for(let[o,s]of Object.entries(t))r.has(o)||(n+=o.length*2+fi(s));return n}i(y0,"estimateBlockBytes");function Vg(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+=y0(n);return t}return 200}i(Vg,"estimateMessageBytes");function Lf(e){let t=128;switch(t+=Lt(e.id)+Lt(e.parentId??void 0)+Lt(e.timestamp),e.type){case"message":return t+Vg(e.message);case"compaction":return t+=Lt(e.summary),t+=Lt(e.firstKeptEntryId),t+=Lt(e.reason),t+=Lt(e.artifactLedgerId),e.details!==void 0&&(t+=fi(e.details)),e.memorySeed!==void 0&&(t+=fi(e.memorySeed)),t;case"branch_summary":return t+=Lt(e.summary),t+=Lt(e.fromId),e.details!==void 0&&(t+=fi(e.details)),t;case"label":return t+=Lt(e.targetId),t+=Lt(e.label),t;case"archive_marker":return t+=Lt(e.archiveBatchId),t+=Lt(e.summary),t+=8,t;default:return t}}i(Lf,"estimateEntryBytes");function LN(e){let t={},n=[];for(let o=0;o<e.length;o++){let s=e[o],a=Vg(s);n.push({index:o,role:s.role,bytes:a});let c=t[s.role]??{count:0,bytes:0};c.count++,c.bytes+=a,t[s.role]=c}return n.sort((o,s)=>s.bytes-o.bytes),{totalBytes:n.reduce((o,s)=>o+s.bytes,0),biggest:n.slice(0,5),byRole:t}}i(LN,"buildMessageBreakdown");function Pf(){return Gg}i(Pf,"memDiagEnabled");function $f(e,t){if(!Gg)return;e==="turn-start"&&Wg++;let n=process.memoryUsage(),r=new Date().toISOString(),o=t.biggestMessages,s=["",`\u2550\u2550\u2550 [MEMDIAG] turn=${Wg} phase=${e} @${r} \u2550\u2550\u2550`,` V8 heap: used=${St(n.heapUsed)} total=${St(n.heapTotal)} rss=${St(n.rss)} ext=${St(n.external)}`," \u2500\u2500 Data breakdown \u2500\u2500",` context.messages: ${t.messageCount} msgs, ${St(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: ${St(t.lineageNonMessageBytes)} (compaction.details/memorySeed + branch_summary payloads)`,` lineage orphan messages: ${t.lineageOrphanMessageCount} msgs, ${St(t.lineageOrphanMessageBytes)} (in lineage but not in context.messages \u2014 branches/pruned)`,` UI history: ${t.historyItemCount} items, ${St(t.historyTextBytes)}`,` foreground turn: ${t.foregroundItemCount} items, ${St(t.foregroundTextBytes)}`,` streaming response: ${St(t.streamingResponseBytes)}`,` streaming thinking: ${St(t.streamingThinkingBytes)}`,` persisted UI history: ${t.persistedUiHistoryCount} items, ${St(t.persistedUiHistoryBytes)}`];if(o.length>0){s.push(" \u2500\u2500 Top 5 biggest messages \u2500\u2500");for(let u of o)s.push(` [${u.index}] role=${u.role} ${St(u.bytes)}`)}let a=t.messageBytes+t.lineageNonMessageBytes+t.lineageOrphanMessageBytes+t.historyTextBytes+t.foregroundTextBytes+t.streamingResponseBytes+t.streamingThinkingBytes+t.persistedUiHistoryBytes;s.push(" \u2500\u2500 V8 heap spaces \u2500\u2500");let c=m0.getHeapSpaceStatistics();for(let u of c)u.space_used_size>1024*1024&&s.push(` ${u.space_name.padEnd(25)} used=${St(u.space_used_size)} allocated=${St(u.space_size)}`);if(s.push(" \u2500\u2500 Summary \u2500\u2500"),s.push(` tracked data total: ${St(a)}`),s.push(` V8 heap used: ${St(n.heapUsed)}`),s.push(` unaccounted (overhead): ${St(n.heapUsed-a)}`),s.push(" (React/Ink tree, provider SDK buffers, module metadata,"),s.push(' tokenizer caches, source maps \u2014 see "Blind spots" note)'),_N()){let u=process.memoryUsage();s.push(` after forced GC: heap=${St(u.heapUsed)} (freed ${St(n.heapUsed-u.heapUsed)})`)}else s.push(" after forced GC: UNAVAILABLE \u2014 re-run with `node --expose-gc` to distinguish"),s.push(` "real leak" from "GC hasn't run yet".`);if(jg>=2)try{let u=p0(Kg,`heap-turn${Wg}-${e}.heapsnapshot`);m0.writeHeapSnapshot(u),s.push(` heap snapshot: ${u}`)}catch{s.push(" heap snapshot: FAILED")}AN(s.join(`
375
+ `))}i($f,"memDiagSnapshot");function Of(e,t,n){let r=LN(e),o=new Set(e),s=0,a=0,c=0,l=0,u=0,m=0,p=0,h=0,g=t?.entries??[];for(let T of g)switch(T.type){case"message":h++,o.has(T.message)||(c++,a+=Vg(T.message));break;case"compaction":l++,s+=Lf(T);break;case"branch_summary":u++,s+=Lf(T);break;case"label":m++,s+=Lf(T);break;case"archive_marker":p++,s+=Lf(T);break}let y=0;for(let T of n.historyItems)y+=Lt(T.text);let x=0;for(let T of n.foregroundItems)x+=Lt(T.text);let w=0;for(let T of n.persistedUiHistory)w+=Lt(T.text);return{messageCount:e.length,messageBytes:r.totalBytes,biggestMessages:r.biggest,lineageEntryCount:g.length,lineageMessageEntryCount:h,lineageCompactionCount:l,lineageBranchSummaryCount:u,lineageLabelCount:m,lineageArchiveMarkerCount:p,lineageNonMessageBytes:s,lineageOrphanMessageBytes:a,lineageOrphanMessageCount:c,historyItemCount:n.historyItems.length,historyTextBytes:y,foregroundItemCount:n.foregroundItems.length,foregroundTextBytes:x,streamingResponseBytes:Lt(n.streamingResponse),streamingThinkingBytes:Lt(n.streamingThinking),persistedUiHistoryCount:n.persistedUiHistory.length,persistedUiHistoryBytes:w}}i(Of,"buildMemDiagBreakdown");function x0(){if(Gg){g0();try{let e=typeof globalThis.gc=="function",t=[`[MEMDIAG] Session started at ${new Date().toISOString()}`,`[MEMDIAG] Level=${jg} 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(`
376
+ `);MN(h0,t+`
377
+ `)}catch{}}}i(x0,"memDiagReset");import PN from"node:fs";import Xg from"node:path";var $N={".gif":"image/gif",".jpeg":"image/jpeg",".jpg":"image/jpeg",".png":"image/png",".webp":"image/webp"},ON=/@(?:"([^"]+)"|'([^']+)'|([^\s]+))/g;function DN(e){return $N[Xg.extname(e).toLowerCase()]}i(DN,"resolveImageMediaType");var zg="[Image unavailable]";function NN(e){return""}i(NN,"buildImageAnchor");function zc(e,t){let n=[],r=[],o=new Set,s=new Map,a=new Set,c=[],l=0;for(let m of e.matchAll(ON)){let p=m.index??l;c.push(e.slice(l,p));let h=m[1]??m[2]??m[3];if(!h){c.push(m[0]),l=p+m[0].length;continue}let g=DN(h);if(!g){c.push(m[0]),l=p+m[0].length;continue}let y=Xg.resolve(t,h);try{if(!PN.statSync(y).isFile()){a.has(y)||(r.push(`[Image input skipped] ${h} is not a file.`),a.add(y)),c.push(zg),l=p+m[0].length;continue}}catch{a.has(y)||(r.push(`[Image input missing] ${h} was not found from ${t}.`),a.add(y)),c.push(zg),l=p+m[0].length;continue}if(!o.has(y)){o.add(y);let x=NN(n.length+1);s.set(y,x),n.push({kind:"image",path:y,mediaType:g,source:"user-inline",description:`Attached image ${Xg.basename(y)}`})}c.push(s.get(y)??zg),l=p+m[0].length}c.push(e.slice(l));let u=c.join("");return{promptText:u,messageContent:Hw(u,n),inputArtifacts:n,warnings:r}}i(zc,"preparePromptInputArtifacts");function w0(e){let t=BN(e.stage),n=HN(e);return{type:"info",icon:"\u{1F4E1}",text:n?`[RepoIntel] ${t} \xB7 ${n}`:`[RepoIntel] ${t}`,tightSpacing:!0}}i(w0,"createRepoIntelTraceHistoryItem");function BN(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(BN,"stageDisplayName");function HN(e){let t=[],n=e.capability;n&&(t.push(`mode=${n.mode}`),n.status!=="ok"&&t.push(`status=${n.status}`));let r=e.trace;return r&&(r.daemonLatencyMs!==void 0&&t.push(`daemon ${r.daemonLatencyMs}ms`),r.cliLatencyMs!==void 0&&t.push(`cli ${r.cliLatencyMs}ms`),r.cacheHit!==void 0&&t.push(r.cacheHit?"cache hit":"cache miss"),r.capsuleEstimatedTokens!==void 0&&t.push(`${FN(r.capsuleEstimatedTokens)} tokens`)),t.length===0&&e.summary?WN(e.summary):t.join(" \xB7 ")}i(HN,"buildRepoIntelDetailLine");function FN(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(FN,"formatTokens");function WN(e){return e.replace(/^stage=[^|]+\|\s*/,"").trim()}i(WN,"stripSummaryStagePrefix");function S0(e,t,n,r){let o=e?.gitRoot??t??void 0,s=e?.executionCwd??o??process.cwd();return{...e,gitRoot:o,executionCwd:s,contextTokenSnapshot:n,taskSurface:"repl",skillsPrompt:r}}i(S0,"buildManagedRunContext");var UN=["global","mode","navigation","editing"],jN={global:["showHelp","interrupt"],mode:["toggleThinking","toggleTranscriptMode","togglePermissionMode","toggleAgentMode"],navigation:["openTranscriptSearch","historyUp","historyDown","moveToStart","moveToEnd"],editing:["acceptCompletion","cancelInput","newline","killLineRight","killLineLeft","deleteWordLeft"]},GN={global:"Global",mode:"Modes",navigation:"Navigation",editing:"Editing"},KN={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 VN(e){let t=yr(),n=t.getAllShortcuts().find(o=>o.definition.id===e);if(n?.effectiveBindings?.length)return t.formatBindings(n.effectiveBindings);let r=Ys.find(o=>o.id===e);if(r?.defaultBindings?.length)return t.formatBindings(r.defaultBindings)}i(VN,"resolveShortcutBindingLabel");function zN(e){return`${VN(e.id)??e.id} ${e.name}`}i(zN,"buildMenuItemLabel");function XN(e){return yr().getAllShortcuts().find(r=>r.definition.id===e)?.definition??Ys.find(r=>r.id===e)}i(XN,"resolveShortcutDefinition");function Df(){return[...UN.map(t=>{let n=jN[t].map(r=>XN(r)).filter(r=>!!r).map(r=>({id:r.id,label:zN(r)}));return{id:t,title:GN[t],items:n}}).filter(t=>t.items.length>0),KN]}i(Df,"buildHelpMenuSections");var Yg=2,T0=1,C0=4;function it(e,t){let n=tn(e.length>0?e.split(`
378
+ `):[""],Math.max(1,t),0,0);return Math.max(1,n.visualLines.length)}i(it,"wrapLineCount");function YN(e,t,n=">"){let r=n.length+1,o=Math.max(20,t-r),s=tn(e.length>0?e.split(`
379
+ `):[""],o,0,0);return Math.max(1,s.visualLines.length)+2}i(YN,"calculateInputPromptRows");function b0(e){let{terminalRows:t,terminalWidth:n,windowedTranscript:r=!1,inputText:o,inputPrompt:s=">",footerHeaderText:a,activitySummary:c,pendingInputSummary:l,stashNoticeSummary:u,notificationSummary:m,statusNoticeSummary:p,workStripText:h,suggestionsReserved:g,suggestionsMode:y="inline",showHelp:x,statusBarText:w,confirmPrompt:T,confirmInstruction:I,uiRequest:A,dialogMode:$="inline",historySearch:F,maxVisibleSelectOptions:D=5,reviewHint:v,todoSurfaceRows:z=0,activityBarVisible:fe=!1}=e,se=Math.max(0,Math.floor(z)),ge=a?it(a,Math.max(1,n-2)):0,L=c?it(c,Math.max(1,n-2)):0,k=fe?Math.max(1,L):L,P=l?it(l,Math.max(1,n-2)):0,Re=u?it(u,Math.max(1,n-2)):0,_e=m?it(m,Math.max(1,n-2)):0,Y=p?it(p,Math.max(1,n-2)):0,V=h?it(h,Math.max(1,n-2)):0,ae=YN(o,n,s),Q=g?8:0,J=x?T0+C0+Df().reduce((O,j)=>O+it(j.title,Math.max(1,n-Yg))+it(j.items.map(te=>te.label).join(" | "),Math.max(1,n-Yg)),0):0,q=it(w,Math.max(1,n-2)),Ie=0;if(T&&I){let O=Math.max(1,n-4);Ie=3+it(`[Confirm] ${T}`,O)+it(I,O)}let ue=0,et=0;if(A){let O=Math.max(1,n-4);A.kind==="select"?(et=Math.min(D,A.options.length),ue=3+it(`[Select] ${A.title}`,O)+A.options.slice(0,et).reduce((j,te,Le)=>j+it(`${Le+1}. ${te.label}${te.description?` - ${te.description}`:""}`,O),0)+(A.options.length>et?2:0)+it(`Choice: ${A.buffer||"(type a number)"}`,O)+1+(A.error?it(A.error,O):0)):ue=3+it(`[Input] ${A.prompt}`,O)+(A.defaultValue!==void 0?it(`Default: ${A.defaultValue}`,O):0)+it(`Value: ${A.buffer||"(type your response)"}`,O)+1+(A.error?it(A.error,O):0)}let Ue=0;if(F){let O=Math.max(1,n-4);Ue=3+it(`Query: ${F.query||"(type to search)"}`,O)+(F.matchCount===0?it("No matches yet",O):it(`${Math.max(1,F.matchCount)} matches`,O)+it(F.selectedExcerpt||"",O))+1}let De=v?it(v,Math.max(1,n-2)):0,me=ge+k+se+P+Re+_e+ae+J+Y+De+(y==="inline"?Q:0)+($==="inline"?Ie+ue+Ue:0),Pt=(y==="overlay"?Q:0)+($==="overlay"?Ie+ue+Ue:0),Rt=me+V+q,ee=Math.max(1,t-Rt);return{messageRows:ee,reservedBottomRows:Rt,headerRows:ge,activityRows:k,pendingInputRows:P,stashNoticeRows:Re,notificationRows:_e,workStripRows:V,inputRows:ae,suggestionsRows:Q,helpRows:J,statusNoticeRows:Y,statusRows:q,confirmRows:Ie,uiRequestRows:ue,historySearchRows:Ue,footerRows:me,overlayRows:Pt,visibleSelectOptions:et,reviewHintRows:De,todoSurfaceRows:se,slots:[{name:"transcript",rows:ee},{name:"footer",rows:me},{name:"overlay",rows:Pt},{name:"status",rows:q},{name:"task-bar",rows:V}]}}i(b0,"calculateViewportBudget");function v0(e,t={}){let n=is(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(v0,"createTranscriptDisplayState");function I0(e){return{...e,surface:"transcript",jumpToLatestAvailable:e.pendingLiveUpdates>0}}i(I0,"enterTranscriptMode");function k0(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(k0,"exitTranscriptMode");function R0(e,t){let n=Math.max(0,t);return{...e,pendingLiveUpdates:n,jumpToLatestAvailable:e.surface==="transcript"?n>0:e.scrollAnchor>0}}i(R0,"setTranscriptPendingLiveUpdates");function E0(e,t){let n=Math.max(0,t);return{...e,scrollAnchor:n,jumpToLatestAvailable:e.surface==="transcript"?e.pendingLiveUpdates>0:n>0}}i(E0,"setTranscriptScrollAnchor");function M0(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(M0,"jumpTranscriptToLatest");function A0(e,t){return{...e,stickyPromptVisible:t}}i(A0,"setTranscriptStickyPromptVisible");function Js(e,t){return{...e,selectedItemId:t,selectionMode:t?"message":"none"}}i(Js,"setTranscriptSelectedItem");function _0(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(_0,"openTranscriptSearch");function L0(e){return{...e,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0}}i(L0,"closeTranscriptSearch");function P0(e,t){return{...e,currentMatchIndex:Math.max(-1,t)}}i(P0,"setTranscriptSearchMatchIndex");function $0(e){return e.supportsFullscreenLayout&&e.ownsViewportByDefault}i($0,"shouldWindowTranscript");function O0(e){return e.surface==="transcript"}i(O0,"shouldPauseLiveTranscript");function qg(e){return e.supportsSelection}i(qg,"ownsTranscriptSelectionPath");function Nf(e,t,n){if(!(!qg(e)||!n))return t.includes(n)?n:void 0}i(Nf,"resolveTranscriptSelectedItemId");function D0(e){return e.supportsSelection&&e.supportsCopyOnSelect}i(D0,"supportsPassiveTranscriptCopyOnSelect");function N0(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(N0,"buildTranscriptBrowseHint");var B0="Slash commands cannot be queued mid-task. Press Esc to abort the current task, then run the command.",H0="slash-guard";function F0(e){return e.trimStart().startsWith("/")}i(F0,"isSlashCommandText");var qN=`
380
+
381
+ ---
382
+
383
+ `;async function W0(e){let{initialPrompt:t,runRound:n,shiftPendingPrompt:r,onRoundComplete:o,onBeforeQueuedRound:s,shouldContinue:a=i(()=>!0,"shouldContinue")}=e,c=t,l=await n(c);for(;;){if(await o?.(l),!a(l))return l;let u=[];for(;;){let m=r();if(m===void 0)break;let p=typeof m=="string"?m.trim():"";p.length>0&&u.push(p)}if(u.length===0)return l;c=u.length===1?u[0]:u.join(qN),await s?.(c),l=await n(c)}}i(W0,"runQueuedPromptSequence");function j0(e){return e.itemsLength>0||e.currentResponse.length>0||e.thinkingContent.length>0||e.activeToolCallsLength>0}i(j0,"hasTranscriptInputActivity");function JN(e){return e.keyName==="mouse"&&e.hasMouse&&e.usesManagedMouseClicks&&e.supportsMouseTracking&&e.usesRendererMouseTracking}i(JN,"shouldHandleManagedTranscriptMouse");function U0(e){return e.usesManagedMouseWheel&&e.supportsWheelHistory&&e.hasTranscript}i(U0,"shouldHandleManagedTranscriptWheel");function G0(e){if(JN({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"?U0({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?{kind:"scroll-by",delta:e.reviewWheelStep}:{kind:"none"}:e.keyName==="wheeldown"?U0({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(G0,"resolveTranscriptPointerAction");function QN(e){return e.isTranscriptMode&&e.hasTextSelection}i(QN,"shouldDeferInterruptToTranscriptSelectionCopy");function K0(e){return e.ctrl&&e.keyName==="c"?QN({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(K0,"resolveStreamingInterruptAction");function V0(e){let{key:t,isTranscriptMode:n,isHistorySearchActive:r,historySearchMatchCount:o,hasTextSelection:s,hasFocusedItem:a,canCopySelectedItem:c,canCopySelectedToolInput:l,canToggleSelectedDetail:u,canCycleTranscriptSelection:m}=e;if(t.name==="pageup")return{kind:"scroll-page-up"};if(r){if(t.name==="escape")return{kind:"close-history-search"};if(t.name==="backspace")return{kind:"history-search-backspace"};if(t.name==="down")return{kind:"history-search-step",direction:"next"};if(t.name==="up")return{kind:"history-search-step",direction:"prev"};if(t.name==="enter"||t.name==="return")return{kind:"history-search-submit"};if(t.insertable&&t.sequence)return{kind:"history-search-append",text:t.sequence}}return n&&!r&&!t.ctrl&&!t.meta&&t.insertable&&t.sequence==="/"?{kind:"open-history-search"}:n&&!t.ctrl&&!t.meta&&t.name==="q"?{kind:"exit-transcript"}:n&&t.name==="escape"?s||a?{kind:"clear-selection-focus"}:{kind:"exit-transcript"}:t.name==="home"?{kind:"scroll-home"}:t.name==="pagedown"?{kind:"scroll-page-down"}:t.name==="end"?{kind:"scroll-end"}:n?t.ctrl&&!t.meta&&t.name==="e"?{kind:"toggle-show-all"}:t.name==="j"||t.name==="down"?{kind:"scroll-line-down"}:t.name==="k"||t.name==="up"?{kind:"scroll-line-up"}:!t.ctrl&&!t.meta&&t.name==="g"&&t.shift?{kind:"jump-latest"}:!t.ctrl&&!t.meta&&t.name==="g"&&!t.shift?{kind:"jump-oldest"}:t.name==="left"?m?{kind:"cycle-selection",direction:"prev"}:{kind:"none"}:t.name==="right"?m?{kind:"cycle-selection",direction:"next"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="c"?s?{kind:"copy-selection"}:c?{kind:"copy-item"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="i"?l?{kind:"copy-tool-input"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="v"?u?{kind:"toggle-detail"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="s"?{kind:"dump-to-scrollback"}:!t.ctrl&&!t.meta&&t.name==="n"?o===0?{kind:"none"}:{kind:"search-match-nav",direction:t.shift?"prev":"next"}:{kind:"none"}:{kind:"none"}}i(V0,"resolveTranscriptKeyboardAction");function z0(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(z0,"executeTranscriptKeyboardAction");function mi(e){let t=/\u001b\[[0-9;?]*[ -/]*[@-~]/g,n=/\u001b\][^\u0007\u001b]*(?:\u0007|\u001b\\)/g,r=/\u001b[@-_]/g;return e.replace(t,"").replace(n,"").replace(r,"")}i(mi,"stripAnsi");function ZN(e){return e.tools.map(n=>`tool: ${n.name}`).join(`
384
+ `)}i(ZN,"serializeToolGroup");function eB(e){switch(e.type){case"thinking":return null;case"user":return`user: ${mi(e.text)}`;case"assistant":return`assistant: ${mi(e.text)}`;case"system":return`system: ${mi(e.text)}`;case"info":return`info: ${mi(e.text)}`;case"error":return`error: ${mi(e.text)}`;case"event":return`event: ${mi(e.text)}`;case"hint":return`hint: ${mi(e.text)}`;case"tool_group":return ZN(e);default:return e}}i(eB,"serializeOne");function tB(e){let t=[];for(let n of e){let r=eB(n);r!==null&&r!==""&&t.push(r)}return t.join(`
385
+
386
+ `)}i(tB,"serializeTranscriptForScrollback");function X0(e){let{items:t,writeToScrollback:n,exitAltScreen:r,enterAltScreen:o}=e,s=tB(t);r(),s.length>0&&n(`${s}
387
+ `),o()}i(X0,"dumpTranscriptToNativeScrollback");var Qs={committed:[],width:0,hasBanner:!1};function Y0(e,t,n){let r=e.bannerSection!==null,o=e.bannerSection!==null?[e.bannerSection,...e.finalizedSections]:[...e.finalizedSections],s=o.map(t),a={committed:s,width:e.width,hasBanner:r},c=i(m=>({plan:{kind:"rebuild",sections:o,reason:m},nextState:a}),"rebuild"),l=n.committed.length>0;if(l&&n.width!==e.width)return c("width-change");if(l&&n.hasBanner!==r)return c("banner-change");let u=Math.min(n.committed.length,s.length);for(let m=0;m<u;m++){let p=r&&m===0;if(n.committed[m].key!==s[m].key)return c(p?"banner-change":"key-order-change");if(n.committed[m].fingerprint!==s[m].fingerprint)return c(p?"banner-change":"fingerprint-change")}return s.length<n.committed.length?c("source-rewrite"):s.length===n.committed.length?{plan:{kind:"none"},nextState:a}:{plan:{kind:"append",sections:o.slice(n.committed.length)},nextState:a}}i(Y0,"planInlineScrollback");import{jsx as TI}from"react/jsx-runtime";import XB from"yoga-layout";import{LegacyRoot as YB}from"react-reconciler/constants.js";import EB from"react-reconciler";import{DefaultEventPriority as MB,NoEventPriority as fI}from"react-reconciler/constants.js";import*as wo from"scheduler";import cI from"yoga-layout";import{createContext as AB}from"react";import gB from"yoga-layout";import nB from"widest-line";var q0=new Map,rB=i(e=>{if(e.length===0)return{width:0,height:0};let t=q0.get(e);if(t)return t;let n=nB(e),r=e.split(`
388
+ `).length,o={width:n,height:r};return q0.set(e,o),o},"measureText"),Jg=rB;import oB from"wrap-ansi";import iB from"cli-truncate";var J0={},sB=i((e,t,n)=>{let r=e+String(t)+String(n),o=J0[r];if(o)return o;let s=e;if(n==="wrap"&&(s=oB(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=iB(e,t,{position:a})}return J0[r]=s,s},"wrapText"),Bf=sB;var aB=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),cB=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),lB=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),eI=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),uB=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),tI=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),Q0=i((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!aB(c))break;n++}let r=e.slice(t,n),o=n;for(;n<e.length;){let c=e[n];if(!cB(c))break;n++}let s=e.slice(o,n),a=e[n];if(!(a===void 0||!lB(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),Z0=i((e,t,n)=>{for(let r=t;r<e.length;r++){let o=e[r];if(n&&o==="\x07"||o==="\x9C")return r+1;if(o==="\x1B"){let s=e[r+1];if(s==="\x1B"){r++;continue}if(s==="\\")return r+2}}},"findControlStringTerminatorIndex"),dB=i((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!eI(s))break;n++}let r=e.slice(t,n),o=e[n];if(!(o===void 0||!uB(o)))return{endIndex:n+1,intermediateString:r,finalCharacter:o}},"readEscapeSequence"),fB=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"),mB=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"),Qg=i(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(tI(t))return!0;return!1},"hasAnsiControlCharacters"),Zs=i((e,t,n,r)=>(r>n&&e.push({type:"text",value:t.slice(n,r)}),e.push({type:"invalid",value:t.slice(r)}),e),"malformedFromIndex"),nI=i(e=>{if(!Qg(e))return[{type:"text",value:e}];let t=[],n=0;for(let r=0;r<e.length;){let o=e[r];if(o===void 0)break;if(o==="\x1B"){let a=e[r+1];if(a===void 0)return Zs(t,e,n,r);if(a==="["){let u=Q0(e,r+2);if(u===void 0)return Zs(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,u.endIndex),parameterString:u.parameterString,intermediateString:u.intermediateString,finalCharacter:u.finalCharacter}),r=u.endIndex,n=r;continue}let c=fB(a);if(c!==void 0){let u=Z0(e,r+2,c.allowBellTerminator);if(u===void 0)return Zs(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:c.type,value:e.slice(r,u)}),r=u,n=r;continue}let l=dB(e,r+1);if(l===void 0){if(eI(a))return Zs(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),r++,n=r;continue}r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"esc",value:e.slice(r,l.endIndex),intermediateString:l.intermediateString,finalCharacter:l.finalCharacter}),r=l.endIndex,n=r;continue}if(o==="\x9B"){let a=Q0(e,r+1);if(a===void 0)return Zs(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,a.endIndex),parameterString:a.parameterString,intermediateString:a.intermediateString,finalCharacter:a.finalCharacter}),r=a.endIndex,n=r;continue}let s=mB(o);if(s!==void 0){let a=Z0(e,r+1,s.allowBellTerminator);if(a===void 0)return Zs(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:s.type,value:e.slice(r,a)}),r=a,n=r;continue}if(o==="\x9C"){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"st",value:o}),r++,n=r;continue}if(tI(o)){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"c1",value:o}),r++,n=r;continue}r++}return n<e.length&&t.push({type:"text",value:e.slice(n)}),t},"tokenizeAnsi");var pB=/^[\d:;]*$/,hB=i(e=>{if(!Qg(e))return e;let t="";for(let n of nI(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&pB.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),rI=hB;var oI=i(e=>{let t="";for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r===void 0)continue;let o="";r.nodeName==="#text"?o=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(o=oI(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o,n))),t+=o}return rI(t)},"squashTextNodes"),Xc=oI;var Hf=i(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:gB.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(yB.bind(null,t)),t},"createNode"),Ff=i((e,t)=>{t.parentNode&&Yc(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")&&Wf(e)},"appendChildNode"),Zg=i((e,t,n)=>{t.parentNode&&Yc(t.parentNode,t),t.parentNode=e;let r=e.childNodes.indexOf(n);r>=0?(e.childNodes.splice(r,0,t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,r)):(e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Wf(e)},"insertBeforeNode"),Yc=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")&&Wf(e)},"removeChildNode"),ey=i((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),ty=i((e,t)=>{e.style=t},"setStyle"),iI=i(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return qc(t,e),t},"createTextNode"),yB=i(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:Xc(e),r=Jg(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let o=e.style?.textWrap??"wrap",s=Bf(n,t,o);return Jg(s)},"measureTextNode"),sI=i(e=>{if(e?.parentNode)return e.yogaNode??sI(e.parentNode)},"findClosestYogaNode"),Wf=i(e=>{sI(e)?.markDirty()},"markNodeAsDirty"),qc=i((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,Wf(e)},"setTextNodeValue");import ve from"yoga-layout";var xB=i((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?ve.POSITION_TYPE_ABSOLUTE:ve.POSITION_TYPE_RELATIVE)},"applyPositionStyles"),wB=i((e,t)=>{"margin"in t&&e.setMargin(ve.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(ve.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(ve.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(ve.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(ve.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(ve.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(ve.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),SB=i((e,t)=>{"padding"in t&&e.setPadding(ve.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(ve.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(ve.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(ve.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(ve.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(ve.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(ve.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),TB=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(ve.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(ve.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(ve.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(ve.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(ve.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(ve.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(ve.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(ve.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(ve.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(ve.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(ve.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(ve.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(ve.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(ve.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(ve.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(ve.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(ve.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(ve.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(ve.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(ve.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(ve.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),CB=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"),bB=i((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?ve.DISPLAY_FLEX:ve.DISPLAY_NONE)},"applyDisplayStyles"),vB=i((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(ve.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(ve.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(ve.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(ve.EDGE_RIGHT,n)}},"applyBorderStyles"),IB=i((e,t)=>{"gap"in t&&e.setGap(ve.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(ve.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(ve.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),kB=i((e,t={})=>{xB(e,t),wB(e,t),SB(e,t),TB(e,t),CB(e,t),bB(e,t),vB(e,t),IB(e,t)},"styles"),ny=kB;import RB from"node:process";var aI=i(()=>RB.env.DEV==="true","isDev");if(aI())try{await import("./devtools-4CRULTR2.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
389
+ The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
390
+ but this failed as it was not installed. Debugging with React Devtools requires it.
391
+
392
+ To install use this command:
393
+
394
+ $ npm install --save-dev react-devtools-core
395
+ `.trim()+`
396
+ `);else throw e}var lI=i((e,t)=>{if(e===t)return;if(!e)return t;let n={},r=!1;for(let o of Object.keys(e))(!t||!Object.hasOwn(t,o))&&(n[o]=void 0,r=!0);if(t)for(let o of Object.keys(t))t[o]!==e[o]&&(n[o]=t[o],r=!0);return r?n:void 0},"diff"),uI=i(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),Uf=fI,ry,dI={name:void 0,version:void 0},ea=EB({getRootHostContext:i(()=>({isInsideText:!1}),"getRootHostContext"),prepareForCommit:i(()=>null,"prepareForCommit"),preparePortalMount:i(()=>null,"preparePortalMount"),clearContainer:i(()=>!1,"clearContainer"),resetAfterCommit(e){if(typeof e.onComputeLayout=="function"&&e.onComputeLayout(),e.isStaticDirty){e.isStaticDirty=!1,typeof e.onImmediateRender=="function"&&e.onImmediateRender();return}typeof e.onRender=="function"&&e.onRender()},getChildHostContext(e,t){let n=e.isInsideText,r=t==="ink-text"||t==="ink-virtual-text";return n===r?e:{isInsideText:r}},shouldSetTextContent:i(()=>!1,"shouldSetTextContent"),createInstance(e,t,n,r){if(r.isInsideText&&e==="ink-box")throw new Error("<Box> can\u2019t be nested inside <Text> component");let o=e==="ink-text"&&r.isInsideText?"ink-virtual-text":e,s=Hf(o);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){ty(s,c),s.yogaNode&&ny(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_static"){ry=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}ey(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 iI(e)},resetTextContent(){},hideTextInstance(e){qc(e,"")},unhideTextInstance(e,t){qc(e,t)},getPublicInstance:i(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(cI.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(cI.DISPLAY_FLEX)},appendInitialChild:Ff,appendChild:Ff,insertBefore:Zg,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:wo.unstable_scheduleCallback,cancelCallback:wo.unstable_cancelCallback,shouldYield:wo.unstable_shouldYield,now:wo.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:i(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:i(()=>null,"getInstanceFromScope"),appendChildToContainer:Ff,insertInContainerBefore:Zg,removeChildFromContainer(e,t){Yc(e,t),uI(t.yogaNode)},commitUpdate(e,t,n,r){ry&&e.internal_static&&(ry.isStaticDirty=!0);let o=lI(n,r),s=lI(n.style,r.style);if(!(!o&&!s)){if(o)for(let[a,c]of Object.entries(o)){if(a==="style"){ty(e,c);continue}if(a==="internal_transform"){e.internal_transform=c;continue}if(a==="internal_static"){e.internal_static=!0;continue}ey(e,a,c)}s&&e.yogaNode&&ny(e.yogaNode,s)}},commitTextUpdate(e,t,n){qc(e,n)},removeChild(e,t){Yc(e,t),uI(t.yogaNode)},setCurrentUpdatePriority(e){Uf=e},getCurrentUpdatePriority:i(()=>Uf,"getCurrentUpdatePriority"),resolveUpdatePriority(){return Uf!==fI?Uf:MB},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:AB(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:dI.name,rendererVersion:dI.version});import HB from"widest-line";import FB from"indent-string";import So from"yoga-layout";import jf from"yoga-layout";var _B=i(e=>e.getComputedWidth()-e.getComputedPadding(jf.EDGE_LEFT)-e.getComputedPadding(jf.EDGE_RIGHT)-e.getComputedBorder(jf.EDGE_LEFT)-e.getComputedBorder(jf.EDGE_RIGHT),"getMaxWidth"),mI=_B;import DB from"cli-boxes";import Gf from"chalk";import Ur from"chalk";var LB=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,PB=/^ansi256\(\s?(\d+)\s?\)$/,$B=i(e=>e in Ur,"isNamedColor"),OB=i((e,t,n)=>{if(!t)return e;if($B(t)){if(n==="foreground")return Ur[t](e);let r=`bg${t[0].toUpperCase()+t.slice(1)}`;return Ur[r](e)}if(t.startsWith("#"))return n==="foreground"?Ur.hex(t)(e):Ur.bgHex(t)(e);if(t.startsWith("ansi256")){let r=PB.exec(t);if(!r)return e;let o=Number(r[1]);return n==="foreground"?Ur.ansi256(o)(e):Ur.bgAnsi256(o)(e)}if(t.startsWith("rgb")){let r=LB.exec(t);if(!r)return e;let o=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?Ur.rgb(o,s,a)(e):Ur.bgRgb(o,s,a)(e)}return e},"colorize"),pi=OB;var NB=i((e,t,n,r)=>{if(n.style.borderStyle){let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?DB[n.style.borderStyle]:n.style.borderStyle,c=n.style.borderTopColor??n.style.borderColor,l=n.style.borderBottomColor??n.style.borderColor,u=n.style.borderLeftColor??n.style.borderColor,m=n.style.borderRightColor??n.style.borderColor,p=n.style.borderTopDimColor??n.style.borderDimColor,h=n.style.borderBottomDimColor??n.style.borderDimColor,g=n.style.borderLeftDimColor??n.style.borderDimColor,y=n.style.borderRightDimColor??n.style.borderDimColor,x=n.style.borderTop!==!1,w=n.style.borderBottom!==!1,T=n.style.borderLeft!==!1,I=n.style.borderRight!==!1,A=o-(T?1:0)-(I?1:0),$=x?pi((T?a.topLeft:"")+a.top.repeat(A)+(I?a.topRight:""),c,"foreground"):void 0;x&&p&&($=Gf.dim($));let F=s;x&&(F-=1),w&&(F-=1);let D=(pi(a.left,u,"foreground")+`
397
+ `).repeat(F);g&&(D=Gf.dim(D));let v=(pi(a.right,m,"foreground")+`
398
+ `).repeat(F);y&&(v=Gf.dim(v));let z=w?pi((T?a.bottomLeft:"")+a.bottom.repeat(A)+(I?a.bottomRight:""),l,"foreground"):void 0;w&&h&&(z=Gf.dim(z));let fe=x?1:0;$&&r.write(e,t,$,{transformers:[]}),T&&r.write(e,t+fe,D,{transformers:[]}),I&&r.write(e+o-1,t+fe,v,{transformers:[]}),z&&r.write(e,t+s-1,z,{transformers:[]})}},"renderBorder"),pI=NB;var BB=i((e,t,n,r)=>{if(!n.style.backgroundColor)return;let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=n.style.borderStyle&&n.style.borderLeft!==!1?1:0,c=n.style.borderStyle&&n.style.borderRight!==!1?1:0,l=n.style.borderStyle&&n.style.borderTop!==!1?1:0,u=n.style.borderStyle&&n.style.borderBottom!==!1?1:0,m=o-a-c,p=s-l-u;if(!(m>0&&p>0))return;let h=pi(" ".repeat(m),n.style.backgroundColor,"background");for(let g=0;g<p;g++)r.write(e+a,t+l+g,h,{transformers:[]})},"renderBackground"),hI=BB;function gI(e){let{rawScrollTop:t,contentHeight:n,viewportHeight:r,previousScrollHeight:o,stickyScroll:s,clampMin:a,clampMax:c,virtualScrollWindowed:l,inWindowScrollTop:u,previousAppliedScrollTop:m,regionTop:p}=e,h=Math.max(0,n-r),g=Math.max(0,Math.min(Math.floor(t),h)),x=s&&n>=o?h:g,w=a!==void 0||c!==void 0?Math.max(a??0,Math.min(x,Math.min(h,c??h))):x,T=l&&u!==void 0,I=Math.max(0,Math.floor(u??0)),A=l?T?I:0:w,$=T?A:w,F=null;if(m!==void 0&&m!==$&&r>0){let D=p+r-1;D>=p&&(F={top:p,bottom:D,delta:$-m})}return{scrollHeight:n,viewportTop:w,appliedScrollTop:$,scrollTop:w,scrollOffsetY:A,scrollHint:F}}i(gI,"computeScrollState");var WB=i((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),o=n.getComputedTop();t=`
399
+ `.repeat(o)+FB(t,r)}return t},"applyPaddingToText"),Kf=i((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===So.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=Xc(e);else if(e.nodeName==="ink-box"||e.nodeName==="ink-root"){let r=e.style.flexDirection==="row"||e.style.flexDirection==="row-reverse"?" ":`
400
+ `;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>Kf(s,{parentRole:e.internal_accessibility?.role,skipStaticElements:t.skipStaticElements})).filter(Boolean).join(r)}if(e.internal_accessibility){let{role:r,state:o}=e.internal_accessibility;if(o){let a=Object.keys(o).filter(c=>o[c]).join(", ");a&&(n=`(${a}) ${n}`)}r&&r!==t.parentRole&&(n=`${r}: ${n}`)}return n},"renderNodeToScreenReaderOutput"),oy=null;function yI(){oy=null}i(yI,"resetScrollHint");function xI(){return oy}i(xI,"getScrollHint");var wI=i((e,t,n)=>{let{offsetX:r=0,offsetY:o=0,transformers:s=[],skipStaticElements:a}=n;if(a&&e.internal_static)return;let{yogaNode:c}=e;if(c){if(c.getDisplay()===So.DISPLAY_NONE)return;let l=r+c.getComputedLeft(),u=o+c.getComputedTop(),m=s;if(typeof e.internal_transform=="function"&&(m=[e.internal_transform,...s]),e.nodeName==="ink-text"){let g=Xc(e);if(g.length>0){let y=HB(g),x=mI(c);if(y>x){let w=e.style.textWrap??"wrap";g=Bf(g,x,w)}g=WB(e,g),t.write(l,u,g,{transformers:m})}return}let p=!1,h=0;if(e.nodeName==="ink-box"){hI(l,u,e,t),pI(l,u,e,t);let g=e.style.overflowX??e.style.overflow,y=e.style.overflowY??e.style.overflow,x=g==="hidden"||g==="scroll",w=y==="hidden"||y==="scroll";if(y==="scroll"){let T=c.getComputedBorder(So.EDGE_TOP),I=c.getComputedBorder(So.EDGE_BOTTOM),A=Math.max(0,c.getComputedHeight()-T-I),$=e.attributes?.virtualScrollWindowed===!0,F=e.childNodes[0],D=Math.max(0,Math.floor($?e.attributes?.scrollHeight??0:F?.yogaNode?.getComputedHeight()??e.attributes?.scrollHeight??0)),v=typeof e.scrollHeight=="number"?e.scrollHeight:D,z=gI({rawScrollTop:e.scrollTop??e.attributes?.scrollTop??0,contentHeight:D,viewportHeight:A,previousScrollHeight:v,stickyScroll:e.stickyScroll??!!e.attributes?.stickyScroll,clampMin:e.attributes?.scrollClampMin,clampMax:e.attributes?.scrollClampMax,virtualScrollWindowed:$,inWindowScrollTop:e.attributes?.inWindowScrollTop,previousAppliedScrollTop:e.appliedScrollTop,regionTop:u+T});e.scrollHeight=z.scrollHeight,e.scrollViewportHeight=A,e.scrollViewportTop=z.viewportTop,e.appliedScrollTop=z.appliedScrollTop,z.scrollHint&&(oy=z.scrollHint),e.scrollTop=z.scrollTop,h=z.scrollOffsetY}if(x||w){let T=x?l+c.getComputedBorder(So.EDGE_LEFT):void 0,I=x?l+c.getComputedWidth()-c.getComputedBorder(So.EDGE_RIGHT):void 0,A=w?u+c.getComputedBorder(So.EDGE_TOP):void 0,$=w?u+c.getComputedHeight()-c.getComputedBorder(So.EDGE_BOTTOM):void 0;t.clip({x1:T,x2:I,y1:A,y2:$}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let g of e.childNodes)wI(g,t,{offsetX:l,offsetY:u-h,transformers:m,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),iy=wI;import UB from"slice-ansi";import jB from"string-width";import{styledCharsFromTokens as GB,styledCharsToString as KB,tokenize as VB}from"@alcalzone/ansi-tokenize";var sy=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=GB(VB(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=jB(t),this.widths.set(t,n)),n}getWidestLine(t){let n=this.blockWidths.get(t);if(n===void 0){let r=0;for(let o of t.split(`
401
+ `))r=Math.max(r,this.getStringWidth(o));n=r,this.blockWidths.set(t,n)}return n}},ta=class{static{i(this,"Output")}width;height;operations=[];caches=new sy;constructor(t){let{width:n,height:r}=t;this.width=n,this.height=r}write(t,n,r,o){let{transformers:s}=o;r&&this.operations.push({type:"write",x:t,y:n,text:r,transformers:s})}clip(t){this.operations.push({type:"clip",clip:t})}unclip(){this.operations.push({type:"unclip"})}getGrid(){let t=[];for(let r=0;r<this.height;r++){let o=[];for(let s=0;s<this.width;s++)o.push({type:"char",value:" ",fullWidth:!1,styles:[]});t.push(o)}let n=[];for(let r of this.operations)if(r.type==="clip"&&n.push(r.clip),r.type==="unclip"&&n.pop(),r.type==="write"){let{text:o,transformers:s}=r,{x:a,y:c}=r,l=o.split(`
402
+ `),u=n.at(-1);if(u){let p=typeof u?.x1=="number"&&typeof u?.x2=="number",h=typeof u?.y1=="number"&&typeof u?.y2=="number";if(p){let g=this.caches.getWidestLine(o);if(a+g<u.x1||a>u.x2)continue}if(h){let g=l.length;if(c+g<u.y1||c>u.y2)continue}if(p&&(l=l.map(g=>{let y=a<u.x1?u.x1-a:0,x=this.caches.getStringWidth(g),w=a+x>u.x2?u.x2-a:x;return UB(g,y,w)}),a<u.x1&&(a=u.x1)),h){let g=c<u.y1?u.y1-c:0,y=l.length,x=c+y>u.y2?u.y2-c:y;l=l.slice(g,x),c<u.y1&&(c=u.y1)}}let m=0;for(let[p,h]of l.entries()){let g=t[c+m];if(!g)continue;for(let w of s)h=w(h,p);let y=this.caches.getStyledChars(h),x=a;for(let w of y){g[x]=w;let T=Math.max(1,this.caches.getStringWidth(w.value));if(T>1)for(let I=1;I<T;I++)g[x+I]={type:"char",value:"",fullWidth:!1,styles:w.styles};x+=T}m++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let o=r.filter(s=>s!==void 0);return KB(o).trimEnd()}).join(`
403
+ `),height:t.length}}};var zB=i((e,t,n)=>{if(e.yogaNode){if(t){let p=Kf(e,{skipStaticElements:!0}),h=p===""?0:p.split(`
404
+ `).length,g="";return e.staticNode&&(g=Kf(e.staticNode,{skipStaticElements:!1})),{output:p,outputHeight:h,staticOutput:g?`${g}
405
+ `:"",frame:void 0}}let r=new ta({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});yI(),iy(e,r,{skipStaticElements:!0});let o;e.staticNode?.yogaNode&&(o=new ta({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),iy(e.staticNode,o,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=Du(r),l=n?.columns??e.yogaNode.getComputedWidth(),u=n?.rows??e.yogaNode.getComputedHeight(),m={screen:c,viewport:{width:l,height:u},cursor:{x:0,y:c.height,visible:!0},scrollHint:xI()};return{output:s,outputHeight:a,staticOutput:o?`${o.get().output}
406
+ `:"",frame:m}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),ay=zB;var qB=i((e,t)=>{let n=t?.columns??80,r=Hf("ink-root"),o="";r.onComputeLayout=()=>{r.yogaNode.setWidth(n),r.yogaNode.calculateLayout(void 0,void 0,XB.DIRECTION_LTR)},r.onImmediateRender=()=>{let{staticOutput:l}=ay(r,!1);l&&l!==`
407
+ `&&(o+=l)};let s,a=ea.createContainer(r,YB,null,!1,null,"render-to-string",l=>{s??=l},()=>{},()=>{},()=>{}),c=!1;try{ea.updateContainerSync(e,a,null,()=>{}),ea.flushSyncWork();let{output:l}=ay(r,!1);if(ea.updateContainerSync(null,a,null,()=>{}),ea.flushSyncWork(),c=!0,r.yogaNode.free(),s!==void 0)throw s instanceof Error?s:new Error(String(s));let u=o.endsWith(`
408
+ `)?o.slice(0,-1):o;return u&&l?u+`
409
+ `+l:u||l}finally{if(!c&&r.yogaNode)try{r.yogaNode.freeRecursive()}catch{}}},"renderToString"),SI=qB;var JB="\x1B[0m";function CI(e,t){if(e.length===0)return"";let n=TI(R,{flexDirection:"column",children:e.map(s=>TI(eg,{section:s,theme:t.theme,animateSpinners:!1},s.key))}),r=SI(n,{columns:t.width});return(r.endsWith(`
410
+ `)?r.slice(0,-1):r)+JB+`
411
+ `}i(CI,"renderFinalizedSectionsToScrollbackText");function bI(e){return e.enabled&&!e.useRendererViewportShell&&!e.isTranscriptMode&&e.hasCommitHandle}i(bI,"isInlineLedgerActive");function vI(e){if(!e.active)return{kind:"reset"};if(!e.hasCommitHandle)return{kind:"skip"};let t=!e.wasActive,n=t?Qs:e.prior,{plan:r,nextState:o}=Y0({bannerSection:e.bannerSection??null,finalizedSections:e.finalizedSections,width:e.width},e.identify??Yb,n);return t?r.kind==="none"?e.forceRebuild?{kind:"commit",mode:"rebuild",sections:e.finalizedSections,nextState:o}:{kind:"noop",nextState:o}:{kind:"commit",mode:e.forceRebuild?"rebuild":"append",sections:r.sections,nextState:o}:r.kind==="none"?{kind:"noop",nextState:o}:{kind:"commit",mode:r.kind,sections:r.sections,nextState:o}}i(vI,"computeInlineLedgerStep");function II(e,t,n){return e.kind==="noop"?{state:e.nextState,wasActive:!0,owns:n}:e.kind==="commit"?t.committed?{state:e.nextState,wasActive:!0,owns:t.hadContent}:{state:Qs,wasActive:!1,owns:!0}:{state:Qs,wasActive:!1,owns:n}}i(II,"resolveInlineLedgerState");function kI(e,t){return t?{...e,staticSections:[]}:e}i(kI,"gateInlinePromptModel");function QB(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(`
412
+ `)}).join(`
413
+ `);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return e.text;default:return""}}i(QB,"buildSearchText");function ZB(e,t){let n=e.replace(/\s+/g," ").trim();if(!n)return"";let r=n.toLowerCase(),o=t.toLowerCase(),s=r.indexOf(o);if(s===-1)return n.slice(0,120);let a=Math.max(0,s-40),c=Math.min(n.length,s+t.length+60),l=a>0?"...":"",u=c<n.length?"...":"";return`${l}${n.slice(a,c)}${u}`}i(ZB,"buildExcerpt");function RI(e){return e.map((t,n)=>({itemId:t.id,itemIndex:n,searchText:QB(t)}))}i(RI,"createTranscriptSearchIndex");function EI(e,t){let n=t.trim().toLowerCase();return n?e.flatMap(r=>{let o=r.searchText;return o.toLowerCase().includes(n)?[{itemId:r.itemId,itemIndex:r.itemIndex,excerpt:ZB(o,t.trim())}]:[]}):[]}i(EI,"searchTranscriptIndex");function cy(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(cy,"stepTranscriptSearchMatch");function MI(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(MI,"buildTranscriptSearchSummary");function AI(e,t,n){if(t.length===0||!n)return 0;let r=t.findIndex(a=>a.itemId===n);if(r>=0)return r;let o=e.find(a=>a.itemId===n)?.itemIndex;if(o===void 0)return 0;let s=t.findIndex(a=>a.itemIndex>=o);return s>=0?s:0}i(AI,"resolveTranscriptSearchMatchIndex");function _I(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:eH(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(_I,"buildTranscriptSelectionSummary");function eH(e){return e.tools.length===1?`Tool call: ${e.tools[0]?.name??"tool"}`:`Tool group: ${e.tools.length} calls`}i(eH,"summarizeToolGroup");function LI(e){return e.map(t=>t.id)}i(LI,"getSelectableTranscriptItemIds");function PI(e,t,n){if(e.length===0)return;if(!t)return n==="next"?e[0]:e[e.length-1];let r=e.indexOf(t);return r===-1?n==="next"?e[0]:e[e.length-1]:n==="next"?e[Math.min(e.length-1,r+1)]:e[Math.max(0,r-1)]}i(PI,"moveTranscriptSelection");function ly(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(`
414
+ `)}).join(`
415
+
416
+ `);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return e.text;default:return}}i(ly,"buildTranscriptCopyText");function $I(e){if(!e||e.type!=="tool_group")return;let t=e.tools.map(n=>{if(!n.input)return;let r=typeof n.input=="string"?n.input:JSON.stringify(n.input,null,2);if(r?.trim())return[`Tool: ${n.name}`,r].join(`
417
+ `)}).filter(n=>!!n);return t.length>0?t.join(`
418
+
419
+ `):void 0}i($I,"buildTranscriptToolInputCopyText");import{useCallback as Jc,useRef as tH,useState as OI}from"react";function DI(e){let{state:t,ownsViewport:n,isAwaitingUserInteraction:r,isHistorySearchActive:o,isTranscriptMode:s,historySearchQuery:a}=e,c=N0(t),l;if(t.supportsStickyPrompt&&t.stickyPromptVisible)if(o){let m=a.trim();l={visible:!0,label:m?`Searching transcript for "${m}"`:"Searching transcript"}}else s?l={visible:!0,label:"Transcript Mode"}:r&&(l={visible:!0,label:"Interaction active"});let u;return n&&t.supportsViewportChrome&&(s&&t.pendingLiveUpdates>0?u={visible:!0,label:t.pendingLiveUpdates===1?"1 new update":`${t.pendingLiveUpdates} new updates`,hint:"Ctrl+O",tone:"accent"}:!s&&t.jumpToLatestAvailable&&(u={visible:!0,label:"Back to live",hint:"End",tone:"accent"})),{browseHintText:c,stickyHeader:l,jumpToLatest:u}}i(DI,"buildTranscriptChromeModel");function NI(e){return Math.max(1,e-2)}i(NI,"resolveTranscriptPageSize");function BI(e){return Math.max(3,Math.floor(e/4))}i(BI,"resolveTranscriptWheelStep");function nH(e,t){return Math.max(0,e+t)}i(nH,"incrementTranscriptScrollOffset");function HI(e,t,n){let r=Math.max(0,t-n);return Math.min(Math.max(0,e),r)}i(HI,"clampTranscriptScrollOffset");function FI(){let e=tH(null),[t,n]=OI(0),[r,o]=OI(!0),s=Jc(m=>{n(Math.max(0,m))},[]),a=Jc(m=>{o(m)},[]),c=Jc(m=>{if(e.current){e.current.scrollTo(m);return}n(Math.max(0,m)),o(m===0)},[]),l=Jc(m=>{if(e.current){e.current.scrollBy(m);return}n(p=>nH(p,m)),o(!1)},[]),u=Jc(()=>{if(e.current){e.current.scrollToBottom();return}n(0),o(!0)},[]);return{scrollRef:e,scrollOffset:t,sticky:r,setScrollOffset:n,setSticky:o,handleScrollTopChange:s,handleStickyChange:a,scrollTo:c,scrollBy:l,scrollToBottom:u}}i(FI,"useTranscriptViewportScrollController");function WI(e){let{items:t,renderModel:n,terminalWidth:r,transcriptMaxLines:o,viewportRows:s,itemId:a,visibleRows:c,expandedItemKeys:l,showDetailedTools:u=!1}=e;if(!a||c.length===0)return!1;let p=(n?.sections??Bs(t,r,o,u,l)).find(y=>y.key===a);if(!p||p.rows.length===0)return!1;let h=new Set(c.map(y=>y.key)),g=Math.max(0,s??0);return g>0&&p.rows.length<=g?p.rows.every(y=>h.has(y.key)):h.has(p.rows[0]?.key??"")}i(WI,"isTranscriptItemVisible");function UI(e){let{items:t,renderModel:n,terminalWidth:r,transcriptMaxLines:o,viewportRows:s,itemId:a,expandedItemKeys:c,showDetailedTools:l=!1}=e,u=n?.sections??Bs(t,r,o,l,c);return Zb(u,a,s)}i(UI,"resolveTranscriptSelectionOffset");function jI(e){let{items:t,renderModel:n,selectedItemId:r,terminalWidth:o=80,transcriptMaxLines:s=1e3,viewportRows:a,scrollOffset:c=0,expandedItemKeys:l,showDetailedTools:u=!1,preferViewportAnchor:m=!1}=e;if(r&&t.some(p=>p.id===r))return r;if(m&&c>0&&a&&a>0){let p=n?.sections??Bs(t,o,s,u,l),h=n?.rows??ai(p),y=Jh(h,a,c)[0]?.key,x=y?p.find(w=>w.rows.some(T=>T.key===y)):void 0;if(x?.key)return x.key}return t[t.length-1]?.id}i(jI,"resolveTranscriptSearchAnchorItemId");function GI(e){let t=cc(e.stickyHeader),n=nd(t,e.width),r=Math.max(0,e.topChromeRows??0);return{contentWindow:e.window,topOffsetRows:n+r,stickyHeaderRows:n,topChromeRows:r}}i(GI,"resolveTranscriptOwnedWindowGeometry");function rH(e){return e.text===" "?"":e.text}i(rH,"normalizeTranscriptRowText");function uy(e){let t=new Map;return e.forEach((n,r)=>{t.set(n.key,r)}),t}i(uy,"buildTranscriptRowIndexByKey");function oH(e,t={}){let n=Math.max(0,e.indent??0),r=e.spinner&&t.animateSpinners!==!1?2:0;return 1+n+r}i(oH,"resolveTranscriptTextStartColumn");function KI(e,t={}){let n=Math.max(0,t.topOffsetRows??0),r=t.rowIndexByKey??uy(t.allRows??e),o=e.map((s,a)=>{let c=rH(s),l=oH(s,t),u=ho(c);return{key:s.key,row:s,modelRowIndex:r.get(s.key)??a,screenRow:n+a+1,text:c,textLength:u,textStartColumn:l,textEndColumn:l+rv(c)}});return{rows:o,topRow:o[0]?.screenRow??n+1,bottomRow:o[o.length-1]?.screenRow??n,viewportHeight:Math.max(0,t.viewportHeight??e.length)}}i(KI,"buildTranscriptScreenBuffer");function iH(e,t){let n=Math.max(1,Math.floor(t));return ov(e.text,n-e.textStartColumn)}i(iH,"clampTextColumn");function dy(e,t){return{screenRow:e,point:{rowKey:e.key,modelRowIndex:e.modelRowIndex,column:iH(e,t)}}}i(dy,"toHit");function fy(e,t,n){let r=e.rows.find(o=>o.screenRow===t);return r?dy(r,n):void 0}i(fy,"hitTestTranscriptScreen");function my(e,t,n){if(e.rows.length!==0)return t<=e.topRow?dy(e.rows[0],n):t>=e.bottomRow?dy(e.rows[e.rows.length-1],n):fy(e,t,n)}i(my,"clampTranscriptScreenHit");function VI(e){return e.text===" "?"":e.text}i(VI,"normalizeTranscriptRowText");function zI(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i(zI,"comparePoints");function XI(e,t,n,r={}){if(e.length===0)return;let[o,s]=zI(t,n)<=0?[t,n]:[n,t],a=r.selectFullRowOnCollapsed===!0,c=zI(t,n)===0,l=e[o.modelRowIndex],u=e[s.modelRowIndex];if(!l||!u)return;let m=a&&c?{...o,column:0}:o,p=a&&c?{...s,column:ho(VI(u))}:s,h=new Map,g=[],y=0;for(let x=m.modelRowIndex;x<=p.modelRowIndex;x+=1){let w=e[x];if(!w)continue;let T=VI(w),I=ho(T),A=x===m.modelRowIndex?m.column:0,$=x===p.modelRowIndex?p.column:I,F=Math.max(0,Math.min(A,I)),D=Math.max(F,Math.min($,I)),v=Hs(T,F,D);D>F&&(h.set(w.key,{start:F,end:D}),y+=D-F),g.push(v)}if(h.size!==0)return{anchor:t,focus:n,rowRanges:h,rowCount:g.length,charCount:y,text:g.join(`
420
+ `)}}i(XI,"buildTranscriptScreenSelection");function YI(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(YI,"buildTranscriptScreenSelectionSummary");function qI(e,t){return e.rows.length===0?0:t<e.topRow?1:t>e.bottomRow?-1:0}i(qI,"resolveTranscriptDragEdgeScrollDirection");function Vf(e){return e?e.map(t=>({label:t.label,value:t.value,description:t.description})):[]}i(Vf,"toSelectOptions");function py(e){return e.question}i(py,"getAskUserDialogTitle");function sH(e){switch(e){case"confirm":return Z("waiting.confirm");case"select":return Z("waiting.select");case"input":return Z("waiting.input")}}i(sH,"formatPromptWaitingText");function JI(e){return e.waitingReason==="confirm"?Z("placeholder.confirm"):e.waitingReason==="select"?Z("placeholder.select"):e.waitingReason==="input"?Z("placeholder.input"):e.isLoading?e.canQueueFollowUps?Z("placeholder.queue"):Z("placeholder.busy"):Z("placeholder.idle")}i(JI,"buildPromptPlaceholderText");function QI(e){if(e.isTranscriptMode)return;if(e.waitingReason)return{kind:"waiting",text:sH(e.waitingReason),showSpinner:!1};if(!e.isLoading)return;let t=tg({activeToolCount:e.streamingState.activeToolCalls.filter(n=>n.status===N.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(QI,"buildPromptActivityViewModel");function ZI(e,t,n){if(e){if(e.userOverrideContextWindow!==void 0)return e.contextWindow===e.userOverrideContextWindow?e:{...e,contextWindow:e.userOverrideContextWindow};try{let o=n(t.provider)?.getEffectiveContextWindow?.(t.model);if(o!==void 0&&o!==e.contextWindow)return{...e,contextWindow:o};if(o!==void 0)return e}catch{}return e}}i(ZI,"resolveEffectiveCompactionInfo");function ek(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===N.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(ek,"buildSurfaceStatusBarProps");function tk(e){let t=qg(e.state),n=t?Nf(e.state,e.selectableItemIds,e.selectedItemId):void 0,r=n?e.selectableItemIds.indexOf(n):-1;return{selectionEnabled:t,selectedItemId:n,selectedItemIndex:r,position:n?{current:Math.max(1,r+1),total:e.selectableItemIds.length}:void 0,detailState:n&&e.isExpanded?"expanded":"compact",copyCapabilities:{message:t&&!!n,toolInput:t&&!!n&&e.selectedItemType==="tool_group",copyOnSelect:t&&D0(e.state)},toggleDetail:t&&!!n,navigationCapabilities:{selection:t&&!!n&&e.selectableItemIds.length>0}}}i(tk,"buildTranscriptSelectionRuntimeState");function nk(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(nk,"buildTranscriptSelectionViewModel");function rk(e){return{query:e.query,matches:e.matches,currentMatchIndex:e.currentMatchIndex,anchorItemId:e.anchorItemId,statusText:e.useOverlaySurface?void 0:e.statusText}}i(rk,"buildTranscriptSearchViewModel");function aH(e,t){return e===0?0:t<0?-1:Math.min(t,e-1)}i(aH,"clampTranscriptSearchSelectedIndex");function cH(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(cH,"buildTranscriptSearchDetailText");function ok(e){let t=aH(e.matches.length,e.selectedIndex),n=MI(e.matches,t),r=cH({isHistorySearchActive:e.isHistorySearchActive,historySearchQuery:e.historySearchQuery,matches:e.matches,clampedSelectedIndex:t});return{clampedSelectedIndex:t,statusText:n,detailText:r,searchState:rk({query:e.historySearchQuery,matches:e.matches,currentMatchIndex:t,anchorItemId:e.anchorItemId,statusText:n,useOverlaySurface:e.useOverlaySurface})}}i(ok,"buildTranscriptSearchChrome");function lH(e=!1){return`\u2190/\u2192 enter select mode | Ctrl+E ${e?"collapse":"show all"} | Mouse drag selects text`}i(lH,"buildDefaultTranscriptSecondaryText");function ik(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(ik,"buildFooterNotifications");function sk(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(sk,"buildBaseFooterNotices");function ak(e){if(e.inputText.trim()&&(e.isTranscriptMode||e.isHistorySearchActive))return"Draft preserved while viewing transcript"}i(ak,"buildStashNoticeText");function ck(e){return[...e]}i(ck,"buildPromptFooterNotices");function uH(e){let n=(e.isHistorySearchActive?[e.historySearchDetailText]:[e.selectionSummary,e.actionSummary]).filter(r=>!!(r&&r.trim().length>0));return n.length===0?lH(e.showAllActive):n.join(" | ")}i(uH,"buildTranscriptFooterSecondaryText");function dH(e){let t=[];return e&&t.push(e),t}i(dH,"buildTranscriptFooterBudgetNotices");function lk(e){let t=e.selectionState?.copyCapabilities,n=e.selectionState?.navigationCapabilities,o=YI(e.textSelection),s=e.textSelection?Ws({copyMessage:!0,copyToolInput:!1,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!1,selectionNavigation:!1,matchNavigation:!1,dismissAction:"clear"}):e.selectionState?.itemSummary?Ws({copyMessage:!!t?.message,copyToolInput:!!t?.toolInput,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!!e.selectionState?.toggleDetail,selectionNavigation:!!n?.selection,matchNavigation:!1,dismissAction:"clear"}):void 0,a=uH({isHistorySearchActive:e.isHistorySearchActive,historySearchDetailText:e.historySearchDetailText,selectionSummary:o,actionSummary:s,showAllActive:e.showAllActive,baseFooterNotices:e.baseFooterNotices});return{selectionSummary:o,actionSummary:s,secondaryText:a,budgetNotices:dH(a)}}i(lk,"buildTranscriptFooterViewModel");import{jsx as K9,jsxs as V9}from"react/jsx-runtime";function uk(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(uk,"formatAmaWorkStripText");function dk(e){return e.replace(/^\[[^\]]+\]\s*/,"").trim()}i(dk,"stripLiveActivityPrefix");function fk(e){let t=[],n=e.showPrimary??!0;if(e.isLoading&&n){let l=e.currentTool?dk(Ud(e.currentTool,e.toolInputContent??"",e.toolInputCharCount??0)):void 0,u=e.liveActivityLabel?dk(e.liveActivityLabel):void 0;e.activeWorkerTitle?t.push({id:"primary-worker",label:`${e.activeWorkerTitle} active`,accent:!0,selected:!0}):e.activePhase?t.push({id:"primary-phase",label:e.activePhase,accent:!0,selected:!0}):u?t.push({id:"primary-live-activity",label:u,accent:!0,selected:!0}):l?t.push({id:"primary-tool",label:l,accent:!0,selected:!0}):e.isThinkingActive?t.push({id:"primary-thinking",label:"Thinking",accent:!0,selected:!0}):t.push({id:"primary-generic",label:"Agent active",accent:!0,selected:!0})}e.parallelText&&t.push({id:"parallel",label:e.parallelText});let[r,o,s,...a]=t,c=[r,o,s].filter(l=>!!l);return e.isLoading?{items:c,overflowLabel:a.length>0?`+${a.length} more`:void 0,ctaHint:e.parallelText?"Ctrl+O transcript":void 0}:{items:c,overflowLabel:a.length>0?`+${a.length} more`:void 0,ctaHint:e.parallelText?"Ctrl+O transcript":void 0}}i(fk,"buildBackgroundTaskViewModel");function mk(e,t){if(!(!t||!e||e.agentMode!=="ama"))return uk(e.childFanoutClass,e.childFanoutCount)}i(mk,"buildAmaWorkStripFromStatus");function hy(e){let t=mk(e.status,e.isLoading);return{workStripText:t,backgroundTask:fk({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(hy,"buildAmaSummaryViewModel");function gy(e){return{...e,items:[...e.items],managedLiveEvents:[...e.managedLiveEvents??[]]}}i(gy,"captureTranscriptSnapshot");function pk(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(pk,"countPendingTranscriptUpdates");function hk(e){return e.snapshot?[...e.snapshot.items]:e.surface==="transcript"?[...e.transcriptItems]:[...e.promptItems]}i(hk,"resolveTranscriptSurfaceItems");function gk(e){let t=[];for(let n of e)switch(n.type){case"user":case"system":case"error":case"tool_group":case"event":case"info":t.push({...n});break;case"assistant":case"thinking":{let{compactText:r,...o}=n;t.push(o);break}default:break}return t}i(gk,"buildPromptSurfaceItems");function yk(e,t){return e.enabled?t==="transcript"?e.transcriptShell:e.promptShell:"main-screen"}i(yk,"resolveFullscreenShellMode");function fH(e,t){return e.enabled&&yk(e,t)==="virtual"}i(fH,"shouldUseRendererViewportShell");function xk(e,t){let n=yk(e,t),r=e.enabled&&n==="virtual",o=e.enabled&&n==="virtual",s=r&&(e.mouseWheel||e.mouseClicks),a=s&&e.mouseClicks,c=o&&e.mouseWheel;return{shellMode:n,usesAlternateScreenShell:r,usesRendererViewportShell:o,usesRendererMouseTracking:s,usesManagedMouseClicks:a,usesManagedMouseWheel:c,usesManagedSelection:o,usesManagedWheelHistory:c,usesNativeMainScreenScrollback:!o}}i(xk,"resolveTranscriptInteractionPolicy");function wk(e,t,n){return fH(e,t)?t==="transcript"||n:!1}i(wk,"shouldOwnTranscriptViewport");var mH=500,pH=1,hH=/[\p{L}\p{N}_/.\-+~\\]/u;function gH(e){return e.text===" "?"":e.text}i(gH,"normalizeTranscriptRowText");function Sk(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i(Sk,"comparePoints");function yy(e){return e===""||/\s/.test(e)?0:hH.test(e)?1:2}i(yy,"charClass");function Tk(e){let t=e.timeoutMs??mH,n=e.distance??pH,r=e.time-e.previous.time<=t,o=Math.abs(e.row-e.previous.row)<=n&&Math.abs(e.column-e.previous.column)<=n,s=r&&o?Math.min(3,e.previous.count+1):1;return{time:e.time,row:e.row,column:e.column,count:s}}i(Tk,"resolveTranscriptMultiClickState");function zf(e,t,n){let r=e[t.modelRowIndex];if(!r)return;let o=gH(r);if(n==="line")return{kind:n,start:{...t,column:0},end:{...t,column:ho(o)}};let s=ho(o);if(s===0)return{kind:n,start:{...t,column:0},end:{...t,column:0}};let a=Math.max(0,Math.min(s-1,t.column));t.column===s&&(a=s-1);let c=yy(qd(o,a)),l=a,u=a+1;for(;l>0&&yy(qd(o,l-1))===c;)l-=1;for(;u<s&&yy(qd(o,u))===c;)u+=1;return{kind:n,start:{...t,column:l},end:{...t,column:u}}}i(zf,"resolveTranscriptSelectionSpanAt");function xy(e,t){return Sk(t.end,e.start)<0?{anchor:e.end,focus:t.start}:Sk(t.start,e.end)>0?{anchor:e.start,focus:t.end}:{anchor:e.start,focus:e.end}}i(xy,"extendTranscriptSelectionSpan");var bk="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 wy(e,t){if(sn(e))return[t.getGuardrail()]}i(wy,"buildAutoModeGuardrails");function wH(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:e.thinking===!0||t.thinking===!0?"auto":"off"}i(wH,"resolveInitialReasoningMode");function SH(e){let t=e.split(/\r?\n/).map(s=>s.trim()).filter(Boolean);if(t.length===0)return;if(t.length===1)return t[0];let[n,r]=t,o=n.startsWith("[")?`${n} ${r}`:`${n} / ${r}`;return o.length>220?`${o.slice(0,217)}...`:o}i(SH,"buildManagedTranscriptCompactText");function vk(e){let t=SH(e);return{type:"event",icon:$g(e)?"\u2713":">",text:e,...t&&t!==e?{compactText:t}:{}}}i(vk,"toManagedTranscriptEventItem");function To(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(To,"toCreatableHistoryItem");function Ty(e){return RC(e)?"":uo(e).trim()}i(Ty,"sanitizeInterruptedAssistantText");function Ik(e){return!!(e?.activeWorkerId&&!e.childFanoutClass&&(e.phase==="preflight"||e.phase==="worker"))}i(Ik,"isForegroundManagedStreamingStatus");function TH(e,t,n){let r=[],o=n?.infoItems??[],s=Cy({thinking:e,toolCalls:n?.toolCalls,toolNames:n?.toolNames});for(let c of o){let l=c.trim();l&&r.push({type:"info",text:l})}r.push(...s);let a=Ty(t);return a&&r.push({type:"assistant",text:`${a}
421
+
422
+ [Interrupted]`}),r}i(TH,"buildInterruptedPersistenceItems");function Cy({thinking:e,response:t,toolCalls:n,toolNames:r}){let o=[],s=e?.trim()??"",a=t?.trim()??"",c=n&&n.length>0?[...n]:[],l=r&&r.length>0?[...r]:[];return s&&o.push({type:"thinking",text:s}),c.length>0?o.push({type:"tool_group",tools:c}):!s&&!a&&l.length>0&&o.push({type:"info",icon:"*",text:`Tools: ${l.join(", ")}`}),a&&o.push({type:"assistant",text:a}),o}i(Cy,"buildRoundHistoryItems");function Lk(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(Lk,"toPersistedUiHistoryItem");var kk=150,Rk=50,Ek=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1",CH=process.env.KODAX_SCROLL_OVERSCAN==="1"?80:void 0;function hi(e){if(e.length===0)return[];let t=[];for(let r=0;r<e.length;r+=1)e[r]?.type==="user"&&t.push(r);let n=[...e];if(t.length>Rk){let r=t[t.length-Rk]??0;n=e.slice(r)}if(n.length>kk){let r=n.slice(-kk),o=r.findIndex(s=>s.type==="user");n=o>0?r.slice(o):r}return[...n]}i(hi,"trimPersistedUiHistorySnapshot");function na(e){if(e)return hi(e)}i(na,"normalizePersistedUiHistory");function Mk(e){return hi(e.map(t=>Lk(t)).filter(t=>!!t))}i(Mk,"serializeUiHistorySnapshot");function bH(e){return e.map(t=>Lk(t)).filter(t=>!!t)}i(bH,"serializeCreatableHistoryItems");function Xf(e,t){return t.length===0?hi(e):hi([...e,...bH(t)])}i(Xf,"appendPersistedUiHistorySnapshot");function Yf(e,t,n){console.log((e==="block"?Ye.red:Ye.yellow)(t)),n.forEach(r=>console.log(Ye.dim(r)))}i(Yf,"logSessionTransitionGuard");var Sy=i(({config:e,sessionId:t,workingDir:n,terminalWidth:r,compactionInfo:o})=>{let s=re("dark"),a=e.model??Mn(e.provider)??e.provider,c=Wo(e.provider,e.model),l=xu(c),u=Math.min(60,r-4),m=o?Math.round(o.contextWindow/1e3):0,p=o?Math.round(o.contextWindow*o.triggerPercent/100/1e3):0;return Zt(R,{flexDirection:"column",marginBottom:1,children:[Dg.map((h,g)=>le(b,{color:s.colors.primary,children:h},g)),Zt(R,{children:[Zt(b,{bold:!0,color:s.colors.text,children:[" v",Zi]}),le(b,{dimColor:!0,children:" | "}),Zt(b,{color:s.colors.success,children:[e.provider,"/",a]}),le(b,{dimColor:!0,children:` [${l}]`}),le(b,{dimColor:!0,children:" | "}),le(b,{color:s.colors.primary,children:e.agentMode.toUpperCase()}),le(b,{dimColor:!0,children:" | "}),le(b,{color:s.colors.accent,children:e.permissionMode}),e.reasoningMode!=="off"&&le(b,{color:s.colors.warning,children:` +reason:${e.reasoningMode}`})]}),o&&Zt(R,{children:[le(b,{dimColor:!0,children:" Context: "}),Zt(b,{dimColor:!0,children:[m,"k"]}),le(b,{dimColor:!0,children:" | Compaction: "}),le(b,{color:o.enabled?s.colors.success:void 0,dimColor:!o.enabled,children:o.enabled?"on":"off"}),le(b,{dimColor:!0,children:` @ ${o.triggerPercent}% (${p}k)`})]}),Zt(b,{dimColor:!0,children:[" ","-".repeat(u)]}),Zt(R,{children:[le(b,{dimColor:!0,children:" Session: "}),le(b,{color:s.colors.accent,children:t}),le(b,{dimColor:!0,children:" | Working: "}),le(b,{dimColor:!0,children:n})]}),Zt(b,{dimColor:!0,children:[" ","-".repeat(u)]})]})},"Banner");function vH(e){let t=e.config.model??Mn(e.config.provider)??e.config.provider,n=Wo(e.config.provider,e.config.model),r=xu(n),o=Math.min(60,e.terminalWidth-4),s=e.compactionInfo?Math.round(e.compactionInfo.contextWindow/1e3):0,a=e.compactionInfo?Math.round(e.compactionInfo.contextWindow*e.compactionInfo.triggerPercent/100/1e3):0,c=` v${Zi} | ${e.config.provider}/${t} [${r}] | ${e.config.agentMode.toUpperCase()} | ${e.config.permissionMode}${e.config.reasoningMode!=="off"?` +reason:${e.config.reasoningMode}`:""}`,l=e.compactionInfo?` Context: ${s}k | Compaction: ${e.compactionInfo.enabled?"on":"off"} @ ${e.compactionInfo.triggerPercent}% (${a}k)`:void 0,u=` Session: ${e.sessionId} | Working: ${e.workingDir}`,m=` ${"-".repeat(o)}`,p=[],h=i(y=>{let x=tn(y.length>0?y.split(`
423
+ `):[""],Math.max(1,e.terminalWidth),0,0);return x.visualLines.length>0?x.visualLines:[""]},"wrapBannerLine"),g=i((y,x,w)=>{h(x).forEach((T,I)=>{p.push({key:`${y}-${I}`,text:T,...w})})},"pushLineRows");return Dg.forEach((y,x)=>{g(`banner-logo-${x}`,y,{color:"primary"})}),g("banner-version",c,{color:"text",bold:!0}),l&&g("banner-compaction",l,{color:"dim"}),g("banner-divider-top",m,{color:"dim"}),g("banner-session",u,{color:"dim"}),g("banner-divider-bottom",m,{color:"dim"}),p.push({key:"banner-blank",text:" "}),{key:"banner",rows:p}}i(vH,"buildBannerTranscriptSection");function Ak(e,t){return t?{...e,sections:[t,...e.sections],rows:[...t.rows,...e.rows]}:e}i(Ak,"prependTranscriptSection");var IH=process.env.KODAX_INLINE_LEDGER!=="0";function _k(e,t){if(process.env.KODAX_INLINE_LEDGER_DEBUG!=="1")return;let n=t instanceof Error?t.message:t!==void 0?String(t):"";process.stderr.write(`[inline-ledger] ${e}${n?`: ${n}`:""} \u2014 rebuilding on next change
424
+ `)}i(_k,"reportInlineLedgerFailure");var kH=i(({options:e,config:t,context:n,storage:r,rendererMode:o,fullscreenPolicy:s,onExit:a,compactionInfo:c,autoModeBootstrap:l,setAutoModeAskUser:u,setAutoModeEngineChange:m,setCurrentConfigRef:p,onAgentsFilesReload:h,teamModeHandle:g})=>{let{exit:y}=so(),{stdout:x}=cr(),{stdin:w,setRawMode:T,isRawModeSupported:I}=oc(),A=Cs(),{history:$}=Nc(),F=Ck.useRef(null),D=Ck.useRef(Gw()),{addHistoryItem:v,addHistoryItems:z,clearHistory:fe,setSessionId:se}=Bc(),ge=xe($),L=xe(Mk($));Fe(()=>{ge.current=$,L.current=Mk($)},[$]),Fe(()=>{x0()},[]),Fe(()=>{zC()},[]);let k=x.columns||80,P=Wc(),Re=xe(P);Fe(()=>{Re.current=P},[P]);let{startStreaming:_e,stopStreaming:Y,abort:V,startThinking:ae,appendThinkingChars:Q,appendThinkingContent:J,stopThinking:q,clearThinkingContent:Ie,setCurrentTool:ue,appendToolInputChars:et,appendToolInputContent:Ue,clearToolInputContent:De,clearResponse:me,appendResponse:Pt,getSignal:Rt,getFullResponse:ee,getThinkingContent:_,startNewIteration:O,clearIterationHistory:j,startCompacting:te,stopCompacting:Le,setMaxIter:at,addPendingInput:ke,removeLastPendingInput:Be,shiftPendingInput:$t,consumePendingInputs:ce}=Uc(),[oe,ze]=Ge(!1),[B,nt]=Ge(t),un=de(()=>ZI(c,{provider:B.provider,model:B.model},No),[c,B.provider,B.model]),[wi,Kr]=Ge(!0),[cm,aW]=Ge(!0),[dl,fl]=Ge(0),[lm,ca]=Ge(!1),[Fy,Qn]=Ge(null),oE=de(()=>Go(),[]),la=xe(null),ml=xe(null),Wy=xe(Promise.resolve()),pl=xe(null),vo=xe({requested:!1,uiHistoryOverride:void 0}),Si=xe(null),ua=xe(!1),da=xe(null),[um,hl]=Ge(!0),[dm,gl]=Ge(""),[He,Zn]=Ge(()=>v0(oE,{rendererMode:o})),[Et,fm]=Ge(!1),[iE,sE]=Ge(0),{scrollRef:aE,scrollOffset:Hn,sticky:mm,setScrollOffset:cE,handleScrollTopChange:lE,handleStickyChange:uE,scrollTo:yl,scrollBy:xl,scrollToBottom:wl}=FI(),pm=xe(null),Sl=xe(null),fa=xe([]),Tl=xe([]),Ti=xe(null),Fn=xe(null),Uy=xe({time:0,row:-1,column:-1,count:0}),[Cl,hm]=Ge(void 0),[Io,gm]=Ge(void 0),[Ci,jy]=Ge(void 0),[dn,dE]=Ge(()=>new Set),[ym,Gy]=Ge(null),[Wt,Ky]=Ge(null),[G,xm]=Ge(null),[bl,Vr]=Ge([]),bi=de(()=>{for(let f of bl)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}},[bl]),[cW,ma]=Ge([]),[pa,fE]=Ge([]),[vl,ht]=Ge(void 0),[ko,Il]=Ge(void 0),ct=xe(null),wm=xe(null),Ro=xe([]),vi=xe([]),Yt=xe([]),Sm=xe(new Set),st=xe({}),gt=xe({activeToolGroupTools:[]}),Vy=xe(0),kl=xe({itemId:void 0,kind:"thinking",pendingText:""}),Wn=xe(null),mE=80,pE=20,hE=xe(null),Rl=de(()=>[...$,...pa],[$,pa]),Tm=de(()=>{let f=Jb(Rl,hE);return f===0?Rl:Rl.slice(f)},[Rl]),El=de(()=>Qb(Tm,pE),[Tm]),Ii=Tm,Ut=xe(null),er=xe(null),tr=xe([]),jt=xe([]),[Eo,gE]=Ge([]),Sr=xe([]),Tn=X(f=>{Sr.current=f,gE(f)},[]),zy=X(f=>{Ro.current=f,ma(f)},[]),ki=X(f=>{Yt.current=f,fE(f)},[]),Xy=X(f=>{let S=f([...Yt.current]);ki(S)},[ki]),Yy=X(f=>{f.length!==0&&ki([...Yt.current,...f])},[ki]),Ml=X(f=>{let S=gt.current,C=S.activeToolGroupTools.some(M=>M.status===N.Executing);gt.current={...f?.clearOwner?{}:{workerId:S.workerId,workerTitle:S.workerTitle},...C?{activeToolGroupItemId:S.activeToolGroupItemId,activeToolGroupTools:S.activeToolGroupTools}:{activeToolGroupTools:[]}},f?.clearOwner&&(st.current={})},[]),Al=X(f=>{for(let S of f)S.type==="user"&&typeof S.id=="string"&&Sm.current.add(S.id)},[]),ha=X(()=>{kl.current={itemId:void 0,kind:"thinking",pendingText:""},Wn.current&&(clearTimeout(Wn.current),Wn.current=null);let f=fg(Yt.current,Sm.current);if(f.length>0){for(let S of f)Sm.current.add(S.id);Si.current?.(f.map(S=>To(S)))}Ml({clearOwner:!0}),ki([])},[Ml,ki]),_l=X(f=>(Vy.current+=1,`managed-foreground-${f}-${Vy.current}`),[]),Cn=X(f=>(Yy([f]),f.id),[Yy]),Mo=X((f,S)=>{st.current.workerId?Cn({id:`${S}-${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,Cn]),Tr=X((f,S)=>{if(!f)return;let C;return Xy(M=>M.map(E=>E.id!==f?E:(C=S(E),C))),C},[Xy]),Ri=X((f,S)=>{let C=gt.current;if(C.activeKind===f){if(f==="thinking"&&C.activeThinkingItemId)return C.activeThinkingItemId;if(f==="assistant"&&C.activeAssistantItemId)return C.activeAssistantItemId;if(f==="tool_group"&&C.activeToolGroupItemId)return C.activeToolGroupItemId}let M=Date.now(),E=S?.trim()?`[${S.trim()}] `:"",H=C.activeToolGroupTools.some(K=>K.status===N.Executing);if(f==="thinking"){let K=Cn({id:_l("thinking"),type:"thinking",timestamp:M,text:E});return gt.current={...gt.current,activeKind:"thinking",activeThinkingItemId:K,currentTurnThinkingItemId:K,activeAssistantItemId:void 0,...H?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},K}if(f==="assistant"){let K=Cn({id:_l("assistant"),type:"assistant",timestamp:M,text:E});return gt.current={...gt.current,activeKind:"assistant",activeThinkingItemId:void 0,activeAssistantItemId:K,...H?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},K}let W=Cn({id:_l("tool_group"),type:"tool_group",timestamp:M,tools:[]});return gt.current={...gt.current,activeKind:"tool_group",activeThinkingItemId:void 0,activeAssistantItemId:void 0,activeToolGroupItemId:W,activeToolGroupTools:[]},W},[Cn,_l]),Cr=X(()=>{Wn.current&&(clearTimeout(Wn.current),Wn.current=null);let f=kl.current;if(!f.pendingText||!f.itemId)return;let S=f.pendingText,C=f.itemId,M=f.kind;f.pendingText="",Tr(C,E=>E.type!==M?E:{...E,text:`${E.text}${S}`})},[Tr]),qy=X(()=>{Wn.current||(Wn.current=setTimeout(Cr,mE))},[Cr]),Ll=X((f,S)=>{if(!S)return;let C=gt.current.workerTitle,M=Ri(f,C),E=kl.current;E.itemId===M&&E.kind===f?E.pendingText+=S:(Cr(),E.itemId=M,E.kind=f,E.pendingText=S),qy()},[Ri,Cr,qy]),Jy=X(f=>{let S=f.trim();if(!S)return;let C=kl.current;C.kind==="thinking"&&C.pendingText&&(C.pendingText="",Wn.current&&(clearTimeout(Wn.current),Wn.current=null));let M=gt.current.workerTitle?.trim(),E=M?`[${M}] ${S}`:S,H=gt.current.currentTurnThinkingItemId;if(H){Tr(H,K=>K.type==="thinking"?{...K,text:E}:K);return}let W=Ri("thinking",gt.current.workerTitle);Tr(W,K=>K.type==="thinking"?{...K,text:E}:K)},[Ri,Tr]),Un=X(f=>{Cr();let S=gt.current;if(S.activeToolGroupItemId&&S.activeToolGroupTools.some(W=>W.id===f.id)){let W=S.activeToolGroupTools.map(ne=>ne.id===f.id?f:ne),K=W.every(ne=>ne.status===N.Success||ne.status===N.Error||ne.status===N.Cancelled);gt.current={...S,...K?{activeToolGroupItemId:void 0,activeToolGroupTools:[]}:{activeToolGroupTools:W}},Tr(S.activeToolGroupItemId,ne=>ne.type==="tool_group"?{...ne,tools:W}:ne);return}let C=Yt.current;for(let W=C.length-1;W>=0;W-=1){let K=C[W];if(K.type!=="tool_group"||!K.tools.some(Ce=>Ce.id===f.id))continue;let ne=K.tools.map(Ce=>Ce.id===f.id?f:Ce);Tr(K.id,Ce=>Ce.type==="tool_group"?{...Ce,tools:ne}:Ce);return}let M=Ri("tool_group",S.workerTitle),H=S.activeKind==="tool_group"&&S.activeToolGroupItemId===M?S.activeToolGroupTools.some(W=>W.id===f.id)?S.activeToolGroupTools.map(W=>W.id===f.id?f:W):[...S.activeToolGroupTools,f]:[f];gt.current={...gt.current,activeKind:"tool_group",activeToolGroupItemId:M,activeToolGroupTools:H},Tr(M,W=>W.type==="tool_group"?{...W,tools:H}:W)},[Ri,Tr,Cr]),yE=X(f=>{Cr();let S=gt.current,C=S.activeToolGroupTools.some(H=>H.status===N.Executing),M=Sr.current.filter(H=>H.status===N.Executing),E=new Set(M.map(H=>H.id));gt.current={workerId:f?.workerId,workerTitle:f?.workerTitle,...C?{activeToolGroupItemId:S.activeToolGroupItemId,activeToolGroupTools:S.activeToolGroupTools}:{activeToolGroupTools:[]}},st.current={workerId:f?.workerId,workerTitle:f?.workerTitle},tr.current=[],jt.current=jt.current.filter(H=>E.has(H.id)),Tn(M),De(),ue(void 0),q(),Ie(),me(),ht(void 0)},[Cr,De,me,Ie,ue,Tn,ht,q]),xE=X(f=>{if(f.length===0)return[];let S=[],C=[...Ro.current],M=[...vi.current];for(let E of f){let H=E.item,W=C.findIndex(K=>K.id===H.id);if(W>=0){let K=C[W];Mf(K,H)||(C=C.map((ne,Ce)=>Ce===W?{...H,timestamp:K.timestamp}:ne))}else C=[...C,H].slice(-12),S.push(H);if(E.persistToHistory){let K=M.findIndex(ne=>ne.id===H.id);if(K>=0){let ne=M[K];Mf(ne,H)||(M=M.map((Ce,xt)=>xt===K?{...H,timestamp:ne.timestamp}:Ce))}else M=[...M,H].slice(-48)}}return vi.current=M,(S.length>0||C.some((E,H)=>!Mf(E,Ro.current[H]??E)||E.id!==Ro.current[H]?.id))&&zy(C),S},[zy]),Pl=X(f=>{if(jt.current.findIndex(C=>C.id===f.id)===-1){jt.current=[...jt.current,f];return}jt.current=jt.current.map(C=>C.id===f.id?f:C)},[]),zr=X(f=>{let S=Sr.current.filter(C=>C.status===N.Executing);if(S.length!==0){if(f){let C=Pg(f);for(let M=S.length-1;M>=0;M-=1){let E=S[M];if(Pg(E.name)===C)return E}}return S[S.length-1]}},[]),Ei=X(()=>{let f=zr();ue(f?Lg(f.name):void 0)},[zr,ue]),Qy=X(f=>(Pl(f),Tn([...Sr.current.filter(S=>S.id!==f.id),f]),Ei(),f),[Tn,Ei,Pl]),Mi=X((f,S)=>{let C=Sr.current.find(E=>E.id===f);if(!C)return null;let M=S(C);return Pl(M),Tn(Sr.current.map(E=>E.id===f?M:E)),Ei(),M},[Tn,Ei,Pl]),Zy=X((f,S,C)=>{if(f){let E=Mi(f,C);if(E)return E}let M=zr(S);return M?Mi(M.id,C):null},[zr,Mi]),$l=X((f,S,C,M,E)=>{let H=f??zr(E)?.id;return H?Mi(H,W=>({...W,status:S,endTime:Date.now(),error:C,output:M})):null},[zr,Mi]),ga=X((f,S)=>{let C=Date.now(),M=new Map;for(let E of Sr.current){if(E.status!==N.Executing)continue;let H=S(E);M.set(E.id,{...E,status:f,endTime:C,...H})}return M.size===0?[]:(jt.current=jt.current.map(E=>M.get(E.id)??E),Tn(Sr.current.map(E=>M.get(E.id)??E)),Ei(),[...M.values()])},[Tn,Ei]),Xr=X(()=>{Tn([])},[Tn]),{showHelp:ex,toggleHelp:wE,setShowHelp:tx}=Hg(),SE=X(f=>{gl(f),hl(f.trim().length===0)},[]),Ol=ii(),nx=de(()=>Ol?Ol.state.visible&&Ol.suggestions.length>0:!1,[Ol]),[ya,rx]=Ge(!1),ox=xe(dl),xa=X(()=>{Ut.current&&(clearTimeout(Ut.current),Ut.current=null),er.current&&(clearTimeout(er.current),er.current=null)},[]);Fe(()=>{nx&&!ya&&rx(!0)},[nx,ya]),Fe(()=>{dl!==ox.current&&(ox.current=dl,ya&&rx(!1))},[dl,ya]);let[tt,Dl]=Ge(null),Ao=xe(null),[Pe,jn]=Ge(null),Nl=xe(null),Bl=xe(Pe);Bl.current=Pe;let[qt,Ai]=Ge(""),[Hl,Gn]=Ge(0),Cm=xe(""),wa=xe(void 0),ix=de(()=>{if(!un)return;let{contextWindow:f,triggerPercent:S}=un;return{currentTokens:Fy??n.contextTokenSnapshot?.currentTokens??Bo(n.messages),contextWindow:f,triggerPercent:S}},[n.messages,n.contextTokenSnapshot,un,Fy]),Sa=de(()=>{if(!tt)return;let f=!!tt.input._alwaysConfirm,S=B.permissionMode==="accept-edits"&&!f;return f?Z("confirm.instruction.protected"):S?Z("confirm.instruction.always"):Z("confirm.instruction.basic")},[tt,B.permissionMode]),lt=He.searchMode==="history",ie=He.surface==="transcript",Yr=!!tt||!!Pe||lt,Tt=ie?Et?Wb:1e3:12,qr=xk(s,He.surface),sx=qr.shellMode,bm=qr.usesAlternateScreenShell,_o=qr.usesRendererViewportShell,Fl=qr.usesRendererMouseTracking,ax=qr.usesManagedMouseClicks,cx=qr.usesManagedMouseWheel,vm=qr.usesManagedSelection,Ct=wk(s,He.surface,$0(He)),lx=O0(He),Wl=ya&&!ie,ux=X(()=>gy({items:Ii,managedLiveEvents:[],isLoading:oe,isThinking:P.isThinking,thinkingCharCount:P.thinkingCharCount,thinkingContent:P.thinkingContent,currentResponse:P.currentResponse,currentTool:P.currentTool,activeToolCalls:Eo,toolInputCharCount:P.toolInputCharCount,toolInputContent:P.toolInputContent,lastLiveActivityLabel:vl,workStripText:ko,iterationHistory:P.iterationHistory,currentIteration:P.currentIteration,isCompacting:P.isCompacting}),[Ii,oe,P.isThinking,P.thinkingCharCount,P.thinkingContent,P.currentResponse,P.currentTool,Eo,P.toolInputCharCount,P.toolInputContent,vl,ko,P.iterationHistory,P.currentIteration,P.isCompacting]);Fe(()=>{if(ie){Gy(f=>f??ux());return}Gy(null)},[ux,ie]);let Ta=de(()=>pk({isTranscriptMode:ie,snapshot:ym,currentItemsLength:Ii.length,currentManagedLiveEventsLength:0,isLoading:oe,currentResponse:P.currentResponse,thinkingContent:P.thinkingContent,activeToolCallsLength:Eo.length}),[Eo.length,oe,ie,Ii.length,P.currentResponse,P.thinkingContent,ym]),Ot=ie?ym:null,Im=de(()=>gk(El),[El]),TE=de(()=>!!(pa.length>0||Ik(G)),[pa.length,G]),Ul=pa.length>0,Gt=s.streamingPreview&&TE,_i=de(()=>hk({surface:"transcript",snapshot:Ot,promptItems:El,transcriptItems:Ii}),[Ot,El,Ii]),Ca=de(()=>{if(!ie||Et||_i.length<=qh)return _i;let f=_i.slice(-qh),S=_i.length-f.length;return[tv(S,f[0]?.timestamp),...f]},[_i,ie,Et]),ut=Ot?.isLoading??oe,rt=s.streamingPreview?{isThinking:Gt?!1:P.isThinking,thinkingCharCount:Gt?0:P.thinkingCharCount,thinkingContent:Gt?"":P.thinkingContent,currentResponse:Gt?"":P.currentResponse,currentTool:Gt?void 0:P.currentTool,activeToolCalls:Gt?[]:Eo,toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:Gt?vl:void 0,iterationHistory:[],currentIteration:P.currentIteration,isCompacting:!1}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:P.currentIteration,isCompacting:!1},Se=s.streamingPreview?{isThinking:Gt?!1:Ot?.isThinking??P.isThinking,thinkingCharCount:Gt?0:Ot?.thinkingCharCount??P.thinkingCharCount,thinkingContent:Gt?"":Ot?.thinkingContent??P.thinkingContent,currentResponse:Gt?"":Ot?.currentResponse??P.currentResponse,currentTool:Gt?void 0:Ot?.currentTool??P.currentTool,activeToolCalls:Gt?[]:Ot?.activeToolCalls??Eo,toolInputCharCount:Gt?0:Ot?.toolInputCharCount??P.toolInputCharCount,toolInputContent:Gt?"":Ot?.toolInputContent??P.toolInputContent,managedLiveEvents:[],lastLiveActivityLabel:Ot?.lastLiveActivityLabel??vl,iterationHistory:Gt?[]:Ot?.iterationHistory??P.iterationHistory,currentIteration:Ot?.currentIteration??P.currentIteration,isCompacting:Ot?.isCompacting??P.isCompacting}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:Ot?.currentIteration??P.currentIteration,isCompacting:!1},br=ie?Io:Cl,dx=!!Cl,fx=X(()=>gy({items:Im,managedLiveEvents:[],isLoading:oe,isThinking:rt.isThinking,thinkingCharCount:rt.thinkingCharCount,thinkingContent:rt.thinkingContent,currentResponse:rt.currentResponse,currentTool:rt.currentTool,activeToolCalls:rt.activeToolCalls,toolInputCharCount:rt.toolInputCharCount,toolInputContent:rt.toolInputContent,lastLiveActivityLabel:rt.lastLiveActivityLabel,iterationHistory:rt.iterationHistory,currentIteration:rt.currentIteration,isCompacting:rt.isCompacting}),[oe,Im,rt.activeToolCalls,rt.currentIteration,rt.currentResponse,rt.currentTool,rt.isCompacting,rt.isThinking,rt.iterationHistory,rt.lastLiveActivityLabel,rt.thinkingCharCount,rt.thinkingContent,rt.toolInputCharCount,rt.toolInputContent]);Fe(()=>{if(!dx){Ky(null);return}Ky(f=>f??fx())},[fx,dx]);let ba=Wt?.items??Im,Jt=Wt?.isLoading??oe,Ee=Wt?{isThinking:Wt.isThinking,thinkingCharCount:Wt.thinkingCharCount,thinkingContent:Wt.thinkingContent,currentResponse:Wt.currentResponse,currentTool:Wt.currentTool,activeToolCalls:Wt.activeToolCalls,toolInputCharCount:Wt.toolInputCharCount,toolInputContent:Wt.toolInputContent,managedLiveEvents:Wt.managedLiveEvents,lastLiveActivityLabel:Wt.lastLiveActivityLabel,iterationHistory:Wt.iterationHistory,currentIteration:Wt.currentIteration,isCompacting:Wt.isCompacting}:rt,Dt=ie?Ca:ba,nr=ie?ut:Jt,Ke=ie?Se:Ee,mx=Jt&&!P.currentResponse&&!P.thinkingContent&&Eo.length===0,Lo=de(()=>({config:B,sessionId:n.sessionId,workingDir:e.context?.gitRoot||process.cwd(),terminalWidth:k,compactionInfo:un??void 0}),[un,n.sessionId,B,e.context?.gitRoot,k]),Jr=de(()=>s.enabled&&cm?vH(Lo):void 0,[Lo,s.enabled,cm]),px=xe(Qs),hx=xe(!1),km=xe(!1),Li=bI({enabled:IH,useRendererViewportShell:_o,isTranscriptMode:ie,hasCommitHandle:typeof ys(x)?.commitInlineScrollback=="function"}),va=de(()=>Kd({items:ba,viewportWidth:k,maxLines:Tt,showDetailedTools:!1,showAllContent:!1,windowed:!1}),[ba,k,Tt]),Po=de(()=>{let f=Vd({activeItems:va.activeItems,viewportWidth:k,isLoading:Jt,maxLines:Tt,isThinking:Ee.isThinking,thinkingCharCount:Ee.thinkingCharCount,thinkingContent:Ee.thinkingContent,streamingResponse:Ee.currentResponse,currentTool:Ee.currentTool,activeToolCalls:Ee.activeToolCalls,toolInputCharCount:Ee.toolInputCharCount,toolInputContent:Ee.toolInputContent,iterationHistory:Ee.iterationHistory,currentIteration:Ee.currentIteration,isCompacting:Ee.isCompacting,managedAgentMode:B.agentMode,managedPhase:Jt?G?.phase:void 0,managedHarnessProfile:Jt?G?.harnessProfile:void 0,managedWorkerTitle:Jt?G?.activeWorkerTitle:void 0,managedRound:Jt?G?.currentRound:void 0,managedMaxRounds:Jt?G?.maxRounds:void 0,managedGlobalWorkBudget:Jt?G?.globalWorkBudget:void 0,managedBudgetUsage:Jt?G?.budgetUsage:void 0,managedBudgetApprovalRequired:Jt?G?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Ee.lastLiveActivityLabel,currentTodoActiveForm:bi,showFullThinking:!1,showDetailedTools:!1,showAllContent:!1,showLiveProgressRows:mx}),S=Vb(va,f,Jr);return kI(S,Li)},[B.agentMode,Li,Jt,Ee.activeToolCalls,Ee.currentIteration,Ee.currentTool,Ee.isCompacting,Ee.currentResponse,Ee.isThinking,Ee.iterationHistory,Ee.lastLiveActivityLabel,Ee.thinkingCharCount,Ee.thinkingContent,Ee.toolInputCharCount,Ee.toolInputContent,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,mx,va,Jr,k,Tt,bi]),Rm=de(()=>Kd({items:Ca,viewportWidth:k,maxLines:Tt,showDetailedTools:Et,showAllContent:Et,showFullThinking:!0,windowed:!1}),[Ca,k,Tt,Et]),jl=de(()=>{if(!ie||_o)return;let f=Vd({activeItems:Rm.activeItems,viewportWidth:k,isLoading:ut,maxLines:Tt,isThinking:Se.isThinking,thinkingCharCount:Se.thinkingCharCount,thinkingContent:Se.thinkingContent,streamingResponse:Se.currentResponse,currentTool:Se.currentTool,activeToolCalls:Se.activeToolCalls,toolInputCharCount:Se.toolInputCharCount,toolInputContent:Se.toolInputContent,iterationHistory:Se.iterationHistory,currentIteration:Se.currentIteration,isCompacting:Se.isCompacting,managedAgentMode:B.agentMode,managedPhase:ut?G?.phase:void 0,managedHarnessProfile:ut?G?.harnessProfile:void 0,managedWorkerTitle:ut?G?.activeWorkerTitle:void 0,managedRound:ut?G?.currentRound:void 0,managedMaxRounds:ut?G?.maxRounds:void 0,managedGlobalWorkBudget:ut?G?.globalWorkBudget:void 0,managedBudgetUsage:ut?G?.budgetUsage:void 0,managedBudgetApprovalRequired:ut?G?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Se.lastLiveActivityLabel,currentTodoActiveForm:bi,showFullThinking:!0,showDetailedTools:Et,showAllContent:Et,showLiveProgressRows:!Ul,expandedItemKeys:dn});return Ak(Yh(zd(Rm,f)),Jr)},[B.agentMode,dn,Ul,Jr,ie,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,k,ut,Tt,Rm,Se.activeToolCalls,Se.currentIteration,Se.currentResponse,Se.currentTool,Se.isCompacting,Se.isThinking,Se.iterationHistory,Se.lastLiveActivityLabel,Se.thinkingCharCount,Se.thinkingContent,Se.toolInputCharCount,Se.toolInputContent,Et,_o,bi]),Ia=de(()=>{if(Ct)return ie?Ak(Xd({items:Dt,viewportWidth:k,isLoading:nr,maxLines:Tt,isThinking:Ke.isThinking,thinkingCharCount:Ke.thinkingCharCount,thinkingContent:Ke.thinkingContent,streamingResponse:Ke.currentResponse,currentTool:Ke.currentTool,activeToolCalls:Ke.activeToolCalls,toolInputCharCount:Ke.toolInputCharCount,toolInputContent:Ke.toolInputContent,iterationHistory:Ke.iterationHistory,currentIteration:Ke.currentIteration,isCompacting:Ke.isCompacting,managedAgentMode:B.agentMode,managedPhase:nr?G?.phase:void 0,managedHarnessProfile:nr?G?.harnessProfile:void 0,managedWorkerTitle:nr?G?.activeWorkerTitle:void 0,managedRound:nr?G?.currentRound:void 0,managedMaxRounds:nr?G?.maxRounds:void 0,managedGlobalWorkBudget:nr?G?.globalWorkBudget:void 0,managedBudgetUsage:nr?G?.budgetUsage:void 0,managedBudgetApprovalRequired:nr?G?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Ke.lastLiveActivityLabel,currentTodoActiveForm:bi,windowed:!0,showFullThinking:ie,showDetailedTools:Et,showAllContent:Et,showLiveProgressRows:ie&&!Ul,expandedItemKeys:ie?dn:void 0}),Jr):Yh(Po)},[B.agentMode,nr,Dt,Ul,Jr,Ke.activeToolCalls,Ke.currentIteration,Ke.currentResponse,Ke.currentTool,Ke.isCompacting,Ke.isThinking,Ke.iterationHistory,Ke.lastLiveActivityLabel,Ke.thinkingCharCount,Ke.thinkingContent,Ke.toolInputCharCount,Ke.toolInputContent,dn,ie,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,Po,oe,ie,k,Tt,Ct,Et,bi]),rr=de(()=>Ia??jl,[Ia,jl]),ka=de(()=>hy({status:G,isLoading:oe,agentMode:B.agentMode}),[B.agentMode,oe,G]).workStripText,Ra=Ot?.workStripText??ko,Pi=de(()=>hy({status:G,isLoading:oe,agentMode:B.agentMode,parallelTextOverride:Ra}),[B.agentMode,Ra,oe,G]),$o=de(()=>LI(Dt).filter(f=>f!==Yd),[Dt]),Qe=de(()=>Nf(He,$o,He.selectedItemId),[$o,He]),fn=de(()=>Dt.find(f=>f.id===Qe),[Dt,Qe]),gx=de(()=>({...He,supportsSelection:He.supportsSelection&&Ct,supportsCopyOnSelect:He.supportsCopyOnSelect&&Ct}),[He,Ct]),bn=de(()=>tk({state:gx,selectableItemIds:$o,selectedItemId:Qe,selectedItemType:fn?.type,isExpanded:Qe?dn.has(Qe):!1}),[dn,$o,fn?.type,Qe,gx]),yx=bn.selectionEnabled,xx=bn.copyCapabilities.copyOnSelect,dW=bn.selectedItemIndex,wx=de(()=>_I(fn),[fn]),Gl=de(()=>RI(Dt.filter(f=>!Qh(f))),[Dt]),Mt=de(()=>EI(Gl,qt),[Gl,qt]),Kl=de(()=>ok({isHistorySearchActive:lt,historySearchQuery:qt,matches:Mt,selectedIndex:Hl,anchorItemId:He.searchAnchorItemId,useOverlaySurface:He.supportsOverlaySurface&&He.supportsSearchViewport&&Ct}),[Mt,qt,Hl,lt,He.searchAnchorItemId,He.supportsOverlaySurface,He.supportsSearchViewport,Ct]),Qr=Kl.clampedSelectedIndex,Sx=Kl.statusText,Em=Kl.detailText,Tx=Kl.searchState,fW=bn.detailState==="expanded",Vl=bn.selectionEnabled&&$o.length>0&&!br,$i=bn.copyCapabilities.message,zl=bn.copyCapabilities.toolInput,Xl=bn.toggleDetail;Fe(()=>{if(ka){if(er.current&&(clearTimeout(er.current),er.current=null),ko===ka)return;if(ko){Ut.current&&(clearTimeout(Ut.current),Ut.current=null),Il(ka);return}Ut.current&&clearTimeout(Ut.current),Ut.current=setTimeout(()=>{Il(ka),Ut.current=null},400);return}if(!ko){Ut.current&&(clearTimeout(Ut.current),Ut.current=null);return}Ut.current&&(clearTimeout(Ut.current),Ut.current=null),er.current&&clearTimeout(er.current),er.current=setTimeout(()=>{Il(void 0),er.current=null},300)},[xa,ka,ko]),Fe(()=>()=>{xa()},[xa]);let Zr=de(()=>DI({state:He,ownsViewport:Ct,isAwaitingUserInteraction:Yr,isHistorySearchActive:lt,isTranscriptMode:ie,historySearchQuery:qt}),[qt,Yr,lt,ie,He,Ct]);Fe(()=>{Zn(f=>{let S=E0(f,Hn);return S=R0(S,Ta),S=A0(S,s.enabled&&Ct?!mm||lt||Yr:ie||lt||Yr),S=P0(S,Qr),S})},[Qr,s.enabled,Hn,Yr,lt,ie,Ta,Ct,mm]),Fe(()=>{Hl!==Qr&&Gn(Qr)},[Qr,Hl]),Fe(()=>{if(!lt){Cm.current=qt;return}if(qt===Cm.current)return;Cm.current=qt;let f=AI(Gl,Mt,He.searchAnchorItemId);Gn(f)},[Mt,qt,lt,He.searchAnchorItemId,Gl]);let Cx=ie?Se:{isThinking:Ee.isThinking,thinkingCharCount:Ee.thinkingCharCount,currentTool:Ee.currentTool,activeToolCalls:Ee.activeToolCalls,toolInputCharCount:Ee.toolInputCharCount,toolInputContent:Ee.toolInputContent,currentIteration:Ee.currentIteration,isCompacting:Ee.isCompacting},Ea=ie?ut:Jt,[Mm,Am]=Ge(()=>sn(B.permissionMode)?l.getGuardrail().getEngine():void 0),Yl=de(()=>ek({sessionId:n.sessionId,permissionMode:B.permissionMode,agentMode:B.agentMode,provider:B.provider,model:B.model??Mn(B.provider)??B.provider,thinking:B.thinking,reasoningMode:B.reasoningMode,reasoningCapability:xu(Wo(B.provider,B.model)),isTranscriptMode:ie,streamingState:Cx,maxIter:P.maxIter,contextUsage:ix,isLoading:Ea,managedState:{phase:G?.phase,harnessProfile:G?.harnessProfile,workerTitle:G?.activeWorkerTitle,round:G?.currentRound,maxRounds:G?.maxRounds,globalWorkBudget:G?.globalWorkBudget,budgetUsage:G?.budgetUsage,budgetApprovalRequired:G?.budgetApprovalRequired,idleWaiting:G?.idleWaiting,idleWaitingPendingCount:G?.idleWaitingPendingCount},autoModeEngine:Mm}),[n.sessionId,B.permissionMode,B.agentMode,B.provider,B.model,B.thinking,B.reasoningMode,ie,Cx,P.maxIter,ix,Ea,G?.phase,G?.harnessProfile,G?.activeWorkerTitle,G?.currentRound,G?.maxRounds,G?.globalWorkBudget,G?.budgetUsage,G?.budgetApprovalRequired,G?.idleWaiting,G?.idleWaitingPendingCount,Mm]),_m=tt?"confirm":Pe?.kind,eo=de(()=>QI({isTranscriptMode:ie,isLoading:Ea,streamingState:Ee,managedState:Ea?{phase:G?.phase,harnessProfile:G?.harnessProfile,workerTitle:G?.activeWorkerTitle}:void 0,waitingReason:_m}),[Ee.activeToolCalls,Ee.currentTool,Ee.isCompacting,Ee.isThinking,Ee.thinkingCharCount,Ee.toolInputCharCount,Ee.toolInputContent,ie,G?.activeWorkerTitle,G?.harnessProfile,G?.phase,_m,Ea]),Lm=eo?.text,vr=de(()=>zv(bl,{now:Date.now(),lastAllCompletedAt:null}),[bl]),bx=xe(!1);Fe(()=>{bx.current&&!oe&&Vr(f=>f.length>0?[]:f),bx.current=oe},[oe]);let Pm=de(()=>ef(Yl),[Yl]),vx=de(()=>Pm,[Pm]),Ix=vx.text,CE=de(()=>kv(P.pendingInputs),[P.pendingInputs]),$m=de(()=>Xv({isHistorySearchActive:lt,isTranscriptMode:ie,pendingInputCount:P.pendingInputs.length,buffering:He.buffering,pendingLiveUpdates:Ta}),[lt,ie,Ta,P.pendingInputs.length,He.buffering]),kx=$m.leftItems,Rx=$m.rightItems,Ex=$m.summary,ql=de(()=>sk({historySearchQuery:qt,pendingInputCount:P.pendingInputs.length}),[qt,P.pendingInputs.length]),Jl=de(()=>ik({historySearchQuery:qt,isHistorySearchActive:lt,historySearchMatchCount:Mt.length,pendingInputCount:P.pendingInputs.length,maxPendingInputs:5}),[Mt.length,qt,lt,P.pendingInputs.length]),Mx=de(()=>Jl.map(f=>f.text).join(" | "),[Jl]),Ql=de(()=>ak({inputText:dm,isTranscriptMode:ie,isHistorySearchActive:lt}),[dm,lt,ie]),Ax=He.supportsOverlaySurface&&He.supportsSearchViewport&&Ct,Zl=de(()=>nk({runtime:bn,itemSummary:wx}),[wx,bn]),Om=de(()=>ck(ql),[ql]),_x=de(()=>lk({textSelection:br,selectionState:Zl,isHistorySearchActive:lt,historySearchDetailText:Em,historySearchHasMatches:!!Sx&&Mt.length>0,showAllActive:Et,baseFooterNotices:ql}),[br,ql,Em,Mt.length,Sx,lt,Et,Zl]),bE=_x.secondaryText,vE=_x.budgetNotices,Lx=ie?vE:Om,Px=x.rows??24,$x=ie?"":dm,Ox=ie?void 0:CE,Dx=Ra,Nx=ie?!1:ex,Nt=de(()=>b0({terminalRows:Px,terminalWidth:k,windowedTranscript:_o,inputText:$x,footerHeaderText:Ex,activitySummary:ie?void 0:Lm,activityBarVisible:ie?!1:!!Lm||oe&&vr.shouldRender,todoSurfaceRows:ie?0:oe&&vr.shouldRender?vr.rows.length:0,pendingInputSummary:Ox,stashNoticeSummary:Ql,notificationSummary:Mx,statusNoticeSummary:Lx.join(" | "),workStripText:Dx,suggestionsReserved:Wl,suggestionsMode:"inline",showHelp:Nx,statusBarText:Ix,confirmPrompt:tt?.prompt,confirmInstruction:Sa,dialogMode:"inline",reviewHint:s.enabled&&Ct?void 0:Zr.browseHintText,uiRequest:Pe?Pe.kind==="select"?{kind:"select",title:Pe.title,options:Pe.options.map(f=>({label:f.label,description:f.description})),buffer:Pe.buffer,error:Pe.error}:{kind:"input",prompt:Pe.prompt,defaultValue:Pe.defaultValue,buffer:Pe.buffer,error:Pe.error}:null}),[Px,k,$x,Ex,Lm,Ox,Ql,Mx,Lx,Dx,Wl,Ax,Nx,Ix,tt,Sa,s.enabled,Zr.browseHintText,Ct,Pe]),Dm=de(()=>{if(!Li)return{model:Po,committedSections:[]};let{committedSections:f,liveRows:S}=zb(va.staticSections,Po.rows,Po.previewRows,Nt.messageRows);return{model:{...Po,staticSections:[],rows:S,previewRows:[]},committedSections:f}},[Li,Po,va.staticSections,Nt.messageRows]),Bx=Dm.model;Fe(()=>{let f=ys(x),S=typeof f?.commitInlineScrollback=="function",C=vI({active:Li,hasCommitHandle:S,wasActive:hx.current,forceRebuild:km.current,prior:px.current,finalizedSections:Dm.committedSections,bannerSection:Jr,width:k,identify:Xb}),M=!1,E=!1;if(C.kind==="commit"){let W=C.sections.flatMap(ne=>ne.rows),K=CI(W.length>0?[{key:"il-delta",rows:W}]:[],{width:k,theme:re("dark")});if(E=K.length>0,C.mode==="append"&&!K)_k("empty-append-text");else try{f?.commitInlineScrollback?.({mode:C.mode,text:K}),M=!0}catch(ne){_k("commit-threw",ne)}}let H=II(C,{committed:M,hadContent:E},km.current);px.current=H.state,hx.current=H.wasActive,km.current=H.owns},[Li,Dm.committedSections,Jr,k,x]);let IE=de(()=>le(hg,{reserveSpace:Wl,width:k,hidden:ie,mode:"inline"}),[Wl,k,ie,Ax]),Ma=de(()=>NI(Nt.messageRows),[Nt.messageRows]),Hx=de(()=>BI(Ma),[Ma]),Oi=!lx&&s.transcriptSpinnerAnimation,Aa=rr?rr.rows.length+rr.previewRows.length:iE,eu=X(f=>{rr||sE(f.scrollHeight)},[rr]),_a=X(f=>GI({window:f,stickyHeader:Zr.stickyHeader,width:k,topChromeRows:0}),[k,Zr.stickyHeader]),Di=X((f=fa.current,S=Tl.current,C=pm.current?_a(pm.current):Sl.current)=>{if(!C||f.length===0){Ti.current=null;return}Sl.current=C,Ti.current=KI(f,{allRows:S,rowIndexByKey:uy(S),topOffsetRows:C.topOffsetRows,viewportHeight:C.contentWindow.viewportHeight,animateSpinners:Oi})},[_a,Oi]),La=X(()=>{let f=Sl.current;return f?.contentWindow.viewportHeight&&f.contentWindow.viewportHeight>0?f.contentWindow.viewportHeight:Nt.messageRows},[Nt.messageRows]),kE=X(f=>{pm.current=f;let S=_a(f);Sl.current=S,Di(fa.current,Tl.current,S)},[Di,_a]),tu=X(f=>{fa.current=f.rows,Tl.current=f.allRows,Di(f.rows,f.allRows)},[Di]),Kt=X(()=>{Fn.current=null,hm(void 0),gm(void 0)},[]),Nm=X(()=>{Kt(),Zn(f=>Js(f,void 0))},[Kt]);Fe(()=>{Di()},[Di]),Fe(()=>{cE(f=>HI(f,Aa,Nt.messageRows))},[Aa,Nt.messageRows]),Fe(()=>{if(!Ci)return;let f=setTimeout(()=>{jy(void 0)},2e3);return()=>{clearTimeout(f)}},[Ci]);let Ir=X((f,S="success")=>{let C=f?.trim();C&&jy({text:C,tone:S})},[]),Ni=X((f,S)=>{let C=S instanceof Error?S.message:String(S);return`${f}: ${C}`},[]),nu=X(async f=>{let S=f??br;if(!S)return!1;let C=S.text.trimEnd();if(!C)return!1;try{return await ti(C,{terminalWrite:A}),Ir(`Copied ${S.rowCount} selected line${S.rowCount===1?"":"s"} to clipboard.`,"success"),!0}catch(M){return Ir(Ni("Failed to copy transcript selection",M),"warning"),!1}},[br,Ni,Ir,A]),Bi=X(f=>{if(!f||WI({items:Dt,renderModel:rr,terminalWidth:k,transcriptMaxLines:Tt,viewportRows:La(),itemId:f,visibleRows:fa.current,expandedItemKeys:dn,showDetailedTools:!1}))return;let S=UI({items:Dt,renderModel:rr,terminalWidth:k,transcriptMaxLines:Tt,viewportRows:La(),itemId:f,expandedItemKeys:dn,showDetailedTools:!1});yl(S)},[Dt,k,Tt,rr,dn,La,yl,fa]),Fx=X(f=>{Zn(S=>Js(S,f)),f&&Bi(f)},[Bi]),Bm=X(f=>{f&&Bi(f)},[Bi]),Wx=X(f=>{if(!Vl)return;let S=PI($o,Qe,f);S&&Fx(S)},[Vl,$o,Qe,Fx]),Ux=X(()=>{!Xl||!Qe||(dE(f=>{let S=new Set(f);return S.has(Qe)?S.delete(Qe):S.add(Qe),S}),Bi(Qe))},[Bi,Xl,Qe]),jx=X(async()=>{if(!$i||!fn)return;let f=ly(fn);if(f)try{await ti(f,{terminalWrite:A}),Ir("Copied selected transcript entry to clipboard.","success")}catch(S){Ir(Ni("Failed to copy transcript entry",S),"warning")}},[Ni,$i,fn,Ir,A]),Gx=X(async()=>{if(!zl||!fn)return;let f=$I(fn);if(f)try{await ti(f,{terminalWrite:A}),Ir("Copied selected tool args to clipboard.","success")}catch(S){Ir(Ni("Failed to copy tool args",S),"warning")}},[Ni,zl,fn,Ir,A]),Pa=X(()=>Tl.current,[]),Kx=X((f,S)=>{if(!s.enabled||!Ct)return;let C=Ti.current;return C?fy(C,f,S):void 0},[s.enabled,Ct]),Hi=X((f,S,C)=>{let M=Pa(),E=XI(M,f,S,{animateSpinners:Oi,selectFullRowOnCollapsed:C?.selectFullRowOnCollapsed});ie?gm(E):hm(E);let H=M[Math.max(0,Math.min(S.modelRowIndex,M.length-1))];return C?.updateSelectedItem&&H?.itemId&&Zn(W=>Js(W,H.itemId)),E},[ie,Pa,Oi]),Vx=X((f,S)=>{if(!f)return;Fn.current=null;let C={...f,focus:S?.focusPoint??f.focus};if(!(C.mode!=="char"||C.didDrag)){Kt();return}let E=Hi(C.anchor,C.focus,{selectFullRowOnCollapsed:!1,updateSelectedItem:!1});if(!E){Kt();return}return S?.copySelection!==!1&&nu(E),E},[Kt,nu,Hi]),Hm=X(()=>{if(!ie||!Dt.length||tt||Pe)return;Kt();let f=jI({items:Dt,selectedItemId:Qe,renderModel:rr,terminalWidth:k,transcriptMaxLines:Tt,viewportRows:La(),scrollOffset:Hn,expandedItemKeys:dn,showDetailedTools:!1,preferViewportAnchor:!0});Zn(S=>_0(S,{anchorItemId:f,initialMatchIndex:0})),Ai(""),Gn(0)},[tt,Dt,dn,Hn,ie,Qe,rr,k,Tt,Pe,La,Kt]),Fm=X(()=>{Zn(f=>L0(f)),Ai(""),Gn(0),Kt()},[Kt]),ru=X(()=>{!lt||Mt.length===0||Gn(-1)},[Mt.length,lt]),zx=de(()=>{if(!tt)return null;if(tt.tool==="exit_plan_mode"){let f=typeof tt.input.plan=="string"?tt.input.plan:void 0;return{prompt:tt.prompt.split(`
425
+ `,1)[0]??tt.prompt,instruction:Sa,planContent:f}}return{prompt:tt.prompt,instruction:Sa}},[Sa,tt]),Xx=de(()=>Pe?Pe.kind==="select"?{kind:"select",title:Pe.title,options:Pe.options,buffer:Pe.buffer,error:Pe.error,visibleSelectOptions:Nt.visibleSelectOptions,focusedIndex:Pe.focusedIndex,selectedIndices:Pe.selectedIndices,multiSelect:Pe.multiSelect}:{kind:"input",prompt:Pe.prompt,defaultValue:Pe.defaultValue,buffer:Pe.buffer,error:Pe.error}:null,[Pe,Nt.visibleSelectOptions]),RE=de(()=>le(yg,{confirm:zx,request:Xx}),[zx,Xx]),Wm=de(()=>{if(Ci)return le(Kv,{text:Ci.text,tone:Ci.tone})},[Ci]),Um=de(()=>{if(Wm)return le(R,{flexDirection:"column",width:"100%",children:Wm})},[Wm]),ou=X(()=>{Zn(f=>M0(k0(f))),fm(!1),wl(),Ai(""),Gn(0),Kt()},[Kt,wl]),Yx=X(()=>{ie&&fm(f=>!f)},[ie]),EE=X(()=>{if(ie){ou();return}fm(!1),Zn(f=>I0(f)),Ai(""),Gn(0),Kt()},[Kt,ou,ie]);Fe(()=>{yx||!He.selectedItemId||Zn(f=>Js(f,void 0))},[yx,He.selectedItemId]),Fe(()=>{if(!ie||!$i||!xx){wa.current=void 0;return}if(Io||!Qe||!fn)return;if(!wa.current){wa.current=Qe;return}if(wa.current===Qe)return;wa.current=Qe;let f=ly(fn);f&&ti(f,{terminalWrite:A}).catch(()=>{})},[ie,fn,Qe,$i,xx,Io,A]),Fe(()=>{if(x?.isTTY!==!0)return;let f=ys(x);f?.setShellMode?.(sx,Fl),bm||f?.setAltScreenActive?.(!1)},[sx,x,bm,Fl]);let Ze=xe({...e,thinking:B.thinking,reasoningMode:B.reasoningMode,agentMode:B.agentMode,context:{...e.context,repoIntelligenceMode:B.repoIntelligenceMode,repoIntelligenceTrace:B.repoIntelligenceTrace,toolConstructionMode:!0},session:{...e.session,id:n.sessionId,persistedByHost:!0},guardrails:wy(B.permissionMode,l)}),vn=xe(B.permissionMode);Fe(()=>{vn.current=B.permissionMode},[B.permissionMode]);let ME=de(()=>Rs(),[]),qx=xe(ME),jm=xe(B);Fe(()=>{jm.current=B},[B]);let Gm=xe(null);Gm.current===null&&(Gm.current=gu({getProvider:i(()=>No(jm.current.provider),"getProvider"),getModel:i(()=>jm.current.model??"","getModel")}));let Jx=xe(sd());Fe(()=>{B.permissionMode==="auto-in-project"&&Jx.current()},[]);let Km=X(f=>{nt(S=>({...S,permissionMode:f})),vn.current=f,Ze.current={...Ze.current,guardrails:wy(f,l)},Am(sn(f)?l.getGuardrail().getEngine():void 0),f==="auto-in-project"&&Jx.current()},[l]),Qx=xe(P.pendingInputs),ot=xe(!1),$a=xe(0),iu=X(()=>{if(ua.current)return;let f=wm.current?.trim(),S=ge.current.length>0?ge.current[ge.current.length-1]:void 0,C=S&&"text"in S&&typeof S.text=="string"?S.text.trim():void 0,E=Yt.current.length>0?[...Yt.current.map(H=>To(H)),...f&&f!==C?[{type:"info",text:f}]:[]]:[...Yt.current.map(H=>To(H)),...TH(_(),ee(),{toolCalls:jt.current,toolNames:tr.current,infoItems:f&&f!==C?[f]:[]})];E.length!==0&&(ua.current=!0,Al(Yt.current),Si.current?.(E))},[ee,_,Al]);Fe(()=>{Qx.current=P.pendingInputs},[P.pendingInputs]);let Zx=X(()=>{ot.current=!0,V(),Y(),q(),Ie(),De(),me(),ue(void 0),Xr(),ht(void 0),ha(),Ro.current=[],vi.current=[],ma([]),ze(!1)},[V,me,Ie,De,Xr,ha,ue,ma,ze,ht,Y,q]),su=xe(0),AE=500;yn(zt.Critical,f=>{if(!oe)return!1;switch(K0({keyName:f.name,ctrl:!!f.ctrl,isTranscriptMode:ie,isAwaitingUserInteraction:Yr,isInputEmpty:um,pendingInputCount:P.pendingInputs.length,hasTranscriptTextSelection:!!Io,timeSinceLastEscapeMs:Date.now()-su.current,doubleEscapeIntervalMs:AE}).kind){case"interrupt":return su.current=0,iu(),Zx(),!0;case"pop-pending-input":return Be(),su.current=0,!0;case"arm-double-escape":return su.current=Date.now(),!0;default:break}return!1},[oe,ie,Yr,um,P.pendingInputs.length,Be,iu,Zx]),yn(zt.Critical,f=>{let S=j0({itemsLength:Dt.length,currentResponse:Ke.currentResponse,thinkingContent:Ke.thinkingContent,activeToolCallsLength:Ke.activeToolCalls.length}),C=G0({keyName:f.name,hasTranscript:S,historyScrollOffset:Hn,reviewPageSize:Ma,reviewWheelStep:Hx,hasMouse:!!f.mouse,mouseButton:f.mouse?.button,mouseAction:f.mouse?.action,usesManagedMouseClicks:ax,supportsMouseTracking:He.supportsMouseTracking,usesRendererMouseTracking:Fl,usesManagedMouseWheel:cx,supportsWheelHistory:He.supportsWheelHistory});if(C.kind==="mouse-phase"){let E=f.mouse;if(!E)return!1;C.phase==="press"&&Fn.current&&Vx(Fn.current);let H=Kx(E.row,E.column);if(C.phase==="press"){if(!H||!S)return br||Qe?(Nm(),!0):(Kt(),!1);let W=Tk({previous:Uy.current,time:Date.now(),row:E.row,column:E.column});Uy.current=W;let K=W.count>=3?"line":W.count===2?"word":"char";if(ru(),Zn(ne=>Js(ne,void 0)),ie?gm(void 0):hm(void 0),K!=="char"){let ne=zf(Pa(),H.point,K);if(ne)return Fn.current={anchor:ne.start,focus:ne.end,didDrag:!1,mode:K,anchorSpan:ne},Hi(ne.start,ne.end,{updateSelectedItem:!1}),!0}return Fn.current={anchor:H.point,focus:H.point,didDrag:!1,mode:"char"},!0}if(!Fn.current)return!1;if(C.phase==="drag"){let W=Ti.current,K=W?qI(W,E.row):0;K!==0&&xl(K);let ne=H??(W?my(W,E.row,E.column):void 0);if(!ne)return!1;let Ce=Fn.current;if(Ce.mode!=="char"&&Ce.anchorSpan){let xt=zf(Pa(),ne.point,Ce.mode);if(!xt)return!1;let Vt=xy(Ce.anchorSpan,xt);return Fn.current={...Ce,anchor:Vt.anchor,focus:Vt.focus,didDrag:!0},Hi(Vt.anchor,Vt.focus,{updateSelectedItem:!1}),!0}return Fn.current={...Ce,focus:ne.point,didDrag:!0},Hi(Ce.anchor,ne.point,{updateSelectedItem:!1}),!0}if(C.phase==="release"){let W=Fn.current,K=W.focus,Ce=(H??(Ti.current?my(Ti.current,E.row,E.column):void 0))?.point??K;if(W.mode!=="char"&&W.anchorSpan){let xt=zf(Pa(),Ce,W.mode);if(xt){let Vt=xy(W.anchorSpan,xt);W.anchor=Vt.anchor,Ce=Vt.focus}}return Vx(W,{focusPoint:Ce}),!0}}if(C.kind==="scroll-by")return ru(),xl(C.delta),!0;if(C.kind==="consume")return!0;let M=V0({key:f,isTranscriptMode:ie,isHistorySearchActive:lt,historySearchMatchCount:Mt.length,hasTextSelection:!!br,hasFocusedItem:!!Qe,canCopySelectedItem:$i,canCopySelectedToolInput:zl,canToggleSelectedDetail:Xl,canCycleTranscriptSelection:Vl});return z0({action:M,hasTranscript:S,isTranscriptMode:ie,pageScrollDelta:Ma,disarmHistorySearchSelection:ru,scrollTranscriptBy:xl,closeHistorySearchSurface:Fm,backspaceHistorySearchQuery:i(()=>{Ai(E=>E.slice(0,-1)),Gn(0)},"backspaceHistorySearchQuery"),stepHistorySearchSelection:i(E=>{Gn(H=>cy(Mt.length,H,E))},"stepHistorySearchSelection"),submitHistorySearchSelection:i(()=>{let E=Mt[Qr];E&&(Bm(E.itemId),Fm())},"submitHistorySearchSelection"),appendHistorySearchQuery:i(E=>{Ai(H=>H+E),Gn(0)},"appendHistorySearchQuery"),openHistorySearchSurface:Hm,clearTranscriptSelectionFocus:Nm,exitTranscriptModeSurface:ou,toggleTranscriptShowAll:Yx,scrollTranscriptHome:i(()=>{yl(Math.max(0,Aa-Nt.messageRows))},"scrollTranscriptHome"),scrollTranscriptToBottom:i(()=>{wl(),Kt()},"scrollTranscriptToBottom"),cycleTranscriptSelection:Wx,copySelectedTranscriptText:i(()=>{nu()},"copySelectedTranscriptText"),copySelectedTranscriptItem:i(()=>{jx()},"copySelectedTranscriptItem"),copySelectedTranscriptToolInput:i(()=>{Gx()},"copySelectedTranscriptToolInput"),toggleSelectedTranscriptDetail:Ux,navigateSearchMatch:i(E=>{Gn(H=>{let W=cy(Mt.length,H,E),K=Mt[W];return K&&Bm(K.itemId),W})},"navigateSearchMatch"),dumpTranscriptToScrollback:i(()=>{X0({items:Dt.filter(E=>!Qh(E)),exitAltScreen:i(()=>{A(Zu({mouseTracking:!0}))},"exitAltScreen"),writeToScrollback:i(E=>{A(E)},"writeToScrollback"),enterAltScreen:i(()=>{A(Qu({mouseTracking:!0,clearOnEnter:!1}))},"enterAltScreen")})},"dumpTranscriptToScrollback")})},[ie,Dt,Ke.currentResponse,Ke.thinkingContent,Ke.activeToolCalls,Hn,Aa,Ma,Hx,Qe,Nm,ou,Yx,He,xl,yl,wl,Vl,Qr,Kt,nu,Mt,Hm,Fm,ru,Wx,$i,jx,zl,Gx,Xl,Ux,Bm,br,Kx,He.supportsMouseTracking,Io,ax,cx,vm,_o,Fl,Hi,Nt.messageRows]),yn(f=>{if(!tt)return!1;let S=f.sequence.trim().toLowerCase(),C=!!tt.input._alwaysConfirm,M=B.permissionMode==="accept-edits"&&!C,E=i(H=>{let W=`${Z("dialog.confirm")} ${tt.prompt}
426
+ \u2192 ${Z(`confirm.result.${H}`)}`;!!st.current.workerId?Cn({id:`confirm-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"info",text:W,timestamp:Date.now()}):v({type:"info",text:W})},"recordConfirmResult");return S==="y"||S==="yes"?(E("approved"),Dl(null),Ao.current?.({confirmed:!0}),Ao.current=null,!0):M&&(S==="a"||S==="always")?(E("approved_always"),Dl(null),Ao.current?.({confirmed:!0,always:!0}),Ao.current=null,!0):S==="n"||S==="no"||f.name==="escape"?(E("denied"),Dl(null),Ao.current?.({confirmed:!1}),Ao.current=null,!0):f.insertable||f.name==="return"},{isActive:!!tt,priority:zt.Critical});let au=X(f=>{jn(null),Nl.current?.(f),Nl.current=null},[]),Fi=X((f,S,C)=>S.length===0?Promise.resolve(void 0):new Promise(M=>{Nl.current=M,jn({kind:"select",title:f,options:S,buffer:"",focusedIndex:0,selectedIndices:[],multiSelect:C})}),[]),_E=X((f,S)=>Fi(f,S.map(C=>({label:C,value:C}))),[Fi]),ew=X(async f=>{let S=f.options?Vf(f.options):[];return await Fi(py(f),S,f.multiSelect)??np},[Fi]);Fe(()=>{let f=!1;return(async()=>{let{bindAskUserForConstruction:S}=await import("./construction-bootstrap-6UN3OY7X.js");f||S(ew)})(),()=>{f=!0,(async()=>{let{bindAskUserForConstruction:S}=await import("./construction-bootstrap-6UN3OY7X.js");S(null)})()}},[ew]);let tw=X((f,S)=>new Promise(C=>{Nl.current=C,jn({kind:"input",prompt:f,defaultValue:S,buffer:""})}),[]);yn(f=>{let S=Bl.current;if(!S)return!1;if(f.name==="escape")return au(void 0),!0;if(S.kind==="select"){let C=S.options.length;if(f.name==="up"||f.sequence==="k")return jn(M=>M&&M.kind==="select"?{...M,focusedIndex:(M.focusedIndex-1+C)%C,error:void 0}:M),!0;if(f.name==="down"||f.sequence==="j")return jn(M=>M&&M.kind==="select"?{...M,focusedIndex:(M.focusedIndex+1)%C,error:void 0}:M),!0;if(f.sequence===" "&&S.multiSelect)return jn(M=>{if(!M||M.kind!=="select")return M;let E=M.focusedIndex,H=M.selectedIndices.includes(E)?M.selectedIndices.filter(W=>W!==E):[...M.selectedIndices,E];return{...M,selectedIndices:H,error:void 0}}),!0;if(f.name==="return"){let M=Bl.current;if(!M||M.kind!=="select")return!1;if(M.multiSelect){if(M.selectedIndices.length===0)return jn(H=>H&&H.kind==="select"?{...H,error:Z("select.multiselect_empty")}:H),!0;let E=M.selectedIndices.sort((H,W)=>H-W).map(H=>M.options[H]?.value).filter(Boolean).join(", ");au(E)}else au(M.options[M.focusedIndex]?.value);return!0}if(/^[1-9]$/.test(f.sequence)){let M=Number.parseInt(f.sequence,10)-1;if(M>=0&&M<C)return S.multiSelect?jn(E=>{if(!E||E.kind!=="select")return E;let H=E.selectedIndices.includes(M)?E.selectedIndices.filter(W=>W!==M):[...E.selectedIndices,M];return{...E,focusedIndex:M,selectedIndices:H,error:void 0}}):jn(E=>E&&E.kind==="select"?{...E,focusedIndex:M,error:void 0}:E),!0}return!1}if(f.name==="return"){let C=Bl.current;if(!C||C.kind!=="input")return!1;let M=C.buffer.trim();return au(M===""?C.defaultValue??void 0:M),!0}return f.name==="backspace"||f.name==="delete"?(jn(C=>C&&C.kind==="input"?{...C,buffer:C.buffer.slice(0,-1),error:void 0}:C),!0):(f.insertable||f.isPasted===!0)&&!f.ctrl&&!f.meta?(jn(C=>C&&C.kind==="input"?{...C,buffer:C.buffer+f.sequence,error:void 0}:C),!0):!1},{isActive:!!Pe,priority:zt.Critical}),Fe(()=>{if(n.messages.length>0&&$.length===0){if(n.uiHistory?.length){let S=hi(n.uiHistory);S.length!==n.uiHistory.length&&(n.uiHistory=S),z(S.map(C=>({type:C.type,text:C.text,...C.icon?{icon:C.icon}:{},...C.compactText?{compactText:C.compactText}:{}})));return}let f=n.messages.flatMap(S=>yc(S).map(gc));z(f)}},[n.messages,n.uiHistory,$.length,z]),Fe(()=>{Ho(n.gitRoot)},[n.gitRoot]),Fe(()=>{process.env.KODAX_PREWARM_REPO_INTELLIGENCE!=="0"&&Mw({executionCwd:n.gitRoot??process.cwd(),gitRoot:n.gitRoot??void 0},{mode:B.repoIntelligenceMode})},[n.gitRoot,B.repoIntelligenceMode]);let Vm=X(()=>({onThinkingDelta:i(f=>{if(ot.current)return;P.currentTool&&(ue(void 0),De());let{header:S}=a0(_()+f),C=S?`[Thinking: ${S}]`:"[Thinking]";ht(Ef(ct.current?.activeWorkerTitle?`[${ct.current.activeWorkerTitle}] ${C}`:C,ct.current?.activeWorkerTitle)),Q(f.length),J(f),st.current.workerId&&Ll("thinking",f)},"onThinkingDelta"),onThinkingEnd:i(f=>{if(ot.current)return;let S=_(),C=o0(S,f);C&&C!==S&&(Ie(),ae(),Q(C.length),J(C)),st.current.workerId&&Jy(C),q()},"onThinkingEnd"),onTextDelta:i(f=>{ot.current||(P.currentTool&&(ue(void 0),De()),q(),ht(void 0),Pt(f),st.current.workerId&&Ll("assistant",f))},"onTextDelta"),onToolUseStart:i(f=>{if(ot.current)return;tr.current.includes(f.name)||(tr.current=[...tr.current,f.name]);let S=ct.current?.activeWorkerTitle?`[${ct.current.activeWorkerTitle}] `:"",C={id:f.id,name:`${S}${f.name}`,status:N.Executing,startTime:Date.now(),input:f.input};Qy(C),st.current.workerId&&Un(C),ht(Fr(C,ct.current?.activeWorkerTitle))},"onToolUseStart"),onToolInputDelta:i((f,S,C)=>{if(ot.current)return;et(S.length),Ue(S);let M=Zy(C?.toolId,f,E=>{let H=E.preview??"",W=t0(`${H}${S}`);return{...E,preview:W||void 0,input:E.input?W?{...E.input,preview:W}:{...E.input}:W?{preview:W}:void 0}});M&&(st.current.workerId&&Un(M),ht(Fr(M,ct.current?.activeWorkerTitle)))},"onToolInputDelta"),onToolResult:i(f=>{if(ot.current)return;let S=typeof f.content=="string"?f.content:String(f.content??""),C=n0(S);if(/^\[(?:Tool Error|Error)\]/.test(S)){let E=$l(f.id,N.Error,C,C,f.name);E&&(st.current.workerId&&Un(E),ht(Fr(E,ct.current?.activeWorkerTitle)));return}if(/^\[(?:Cancelled|Blocked)\]/.test(S)){let E=$l(f.id,N.Cancelled,void 0,C,f.name);E&&(st.current.workerId&&Un(E),ht(Fr(E,ct.current?.activeWorkerTitle)));return}let M=$l(f.id,N.Success,void 0,C||void 0,f.name);M&&(st.current.workerId&&Un(M),ht(Fr(M,ct.current?.activeWorkerTitle)))},"onToolResult"),onToolProgress:i(f=>{if(ot.current)return;let S=f.message.length>100?f.message.slice(0,97)+"...":f.message,C=Mi(f.id,M=>({...M,preview:S,progressLines:[...(M.progressLines??[]).slice(-4),S]}));C&&st.current.workerId&&Un(C),ht(S)},"onToolProgress"),onStreamEnd:i(()=>{if(ot.current)return;let f=ga(N.Cancelled,()=>({error:"Stream ended before the tool completed.",output:void 0})),S=f[f.length-1];st.current.workerId&&f.forEach(C=>Un(C)),S&&ht(Fr(S,ct.current?.activeWorkerTitle)),q(),De(),ue(void 0)},"onStreamEnd"),hasPendingInputs:i(()=>Qx.current.length>0,"hasPendingInputs"),onMidTurnUserMessages:i(f=>{if(!ot.current)for(let S of f){let C=S.trim();C&&(st.current.workerId?Cn({id:`mid-turn-user-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"user",text:C,timestamp:Date.now()}):v({type:"user",text:C}))}},"onMidTurnUserMessages"),onError:i(f=>{let S=zr();S?.name&&ht(Fr(S,ct.current?.activeWorkerTitle));let C=ga(N.Error,()=>({error:f.message,output:void 0})),M=C[C.length-1];st.current.workerId&&C.forEach(xt=>Un(xt)),M&&ht(Fr(M,ct.current?.activeWorkerTitle));let E=uw(f),H=["Transient","Permanent","Tool Call ID","User Abort"];if(E.category===Ha.USER_ABORT)return;let K=[`\u274C API Error (${H[E.category]||"Unknown"}): ${f.message}`];E.shouldCleanup&&K.push(" \u{1F9F9} Cleaned incomplete tool calls"),E.category===Ha.PERMANENT?(K.push(" \u{1F4A1} This error requires manual intervention. Please check:"),f.message.includes("auth")||f.message.includes("401")?(K.push(" - Your API key is valid"),K.push(" - Run /config to check provider settings")):f.message.includes("400")?(K.push(" - The request parameters are correct"),K.push(" - Try restarting the conversation")):K.push(" - The error details above")):E.category===Ha.TRANSIENT?K.push(" \u23F3 Retries exhausted. Press Enter to continue the conversation"):E.category===Ha.TOOL_CALL_ID&&K.push(" \u2705 Session cleaned, ready to continue");let ne=K.join(`
427
+ `);!!st.current.workerId?Cn({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:ne,timestamp:Date.now()}):v({type:"error",text:ne})},"onError"),onRetry:i((f,S,C)=>{if(ot.current)return;if(!!st.current.workerId){let E=bf(f,S,C);Cn({...E,id:`retry-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()})}else Rg(v,f,S,C)},"onRetry"),onProviderRecovery:i(f=>{if(ot.current)return;let S=!!st.current.workerId,C=ee().trim();if(C&&(S?Ll("assistant",C):v({type:"assistant",text:C})),me(),Ie(),q(),De(),ue(void 0),Xr(),ht(void 0),S){let M=vf(f);Cn({...M,id:`recovery-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()})}else Eg(v,f)},"onProviderRecovery"),onManagedTaskStatus:i(f=>{if(ot.current)return;let S=st.current;if(Ik(f)){if(S.workerId&&S.workerId!==f.activeWorkerId)yE({workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle});else if(S.workerId!==f.activeWorkerId){let W=gt.current,K=W.activeToolGroupTools.some(ne=>ne.status===N.Executing);gt.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle,...K?{activeToolGroupItemId:W.activeToolGroupItemId,activeToolGroupTools:W.activeToolGroupTools}:{activeToolGroupTools:[]}},st.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle}}}ct.current=f,xm(f);let C=s0(f);xE(C);let M=Xs(f),H=Xs(f,{expanded:!0})??M;H&&(wm.current=H)},"onManagedTaskStatus"),onProviderRateLimit:i((f,S,C)=>{ot.current||Mo({type:"info",icon:"\u23F3",text:`[Rate Limit] Retrying in ${C/1e3}s (${f}/${S})...`},"ratelimit")},"onProviderRateLimit"),onRetryAfter:i(f=>{if(ot.current)return;let S=Math.round(f.waitMs/1e3),C=f.source==="exponential-backoff"?"no-header \u2192 backoff":f.source,M=f.reason==="overloaded"?"Overloaded":"Rate limited";Mo({type:"info",icon:"\u23F3",text:`[${M}] (${f.provider}) \u2014 retrying in ${S}s [${C}] (${f.attempt}/${f.maxAttempts})`},"ratelimit")},"onRetryAfter"),onRepoIntelligenceTrace:i(f=>{ot.current||Mo(w0(f),"repointel-trace")},"onRepoIntelligenceTrace"),onTodoUpdate:i(f=>{ot.current||Vr(f)},"onTodoUpdate"),onScoutSuspiciousCompletion:i(f=>{ot.current||Ek&&Mo({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,S)=>{if(ot.current)return;if(S&&at(S),ct.current?.globalWorkBudget){let Ce={...ct.current,budgetUsage:Math.min(ct.current.globalWorkBudget,(ct.current.budgetUsage??0)+1)};ct.current=Ce,xm(Ce)}let C=f>1?_().trim():"",M=f>1?Ty(ee()):"",E=f>1?[...tr.current]:[],H=f>1?[...jt.current]:[],W=!!st.current.workerId;O(f),W&&Ml({clearOwner:!1});let K=Sr.current.filter(Ce=>Ce.status===N.Executing),ne=new Set(K.map(Ce=>Ce.id));if(tr.current=[],jt.current=jt.current.filter(Ce=>ne.has(Ce.id)),Tn(K),De(),ue(void 0),ht(Ef(ct.current?.activeWorkerTitle?`[Thinking] [${ct.current.activeWorkerTitle}]`:void 0,ct.current?.activeWorkerTitle)),ae(),f>1&&!W){let Ce=Cy({thinking:C,response:M,toolCalls:H,toolNames:E});Si.current?Si.current(Ce):z([...Ce])}},"onIterationStart"),beforeToolExecute:i(async(f,S)=>{let C=vn.current,M=Jo(C),E=qx.current,H=n.gitRoot;if(Kw(D.current,f,S))return`[Skipped] Previously denied operation. ${Vw(D.current)}`;if(C==="plan"&&(Pn.has(f)||f==="undo"))return`[Blocked] Tool '${f}' is not allowed in plan mode (read-only). ${bk}`;if(C==="plan"&&f==="bash"){let W=S.command??"";if(Xn(W))return`[Blocked] Bash write operation not allowed in plan mode: ${W.slice(0,50)}... ${bk}`}if(f==="bash"){let W=S.command??"";if(zn(W))return!0}if(sn(C)&&Mm==="llm")return!0;if(f==="bash"){let W=S.command??"",K=jw(W);if(K.level==="dangerous"){let ne=await Oo(f,{...S,_dangerousCommand:!0});return ne.confirmed?ne.confirmed:(D.current=ip(D.current,f,S,K.reason),`[Blocked] Dangerous command requires confirmation: ${K.reason}`)}}if(H){let W=!1;if(Pn.has(f)){let K=S.path;K&&ur(K,H)&&(W=!0)}if(f==="bash"){let K=S.command;K&&dh(K,H)&&(W=!0)}if(W){let K=await Oo(f,{...S,_alwaysConfirm:!0});if(vn.current==="plan"&&(Pn.has(f)||f==="undo"))return!1;if(vn.current==="plan"&&f==="bash"){let ne=S.command??"";if(Xn(ne))return!1}return K.confirmed}}if(M.has(f)){if(C==="accept-edits"&&f==="bash"&&await co(f,S,E,Gm.current??void 0))return!0;let W=await Oo(f,S);if(vn.current==="plan"&&(Pn.has(f)||f==="undo"))return!1;if(vn.current==="plan"&&f==="bash"){let K=S.command??"";if(Xn(K))return!1}if(!W.confirmed)return v({type:"info",text:Z("cancelled")}),D.current=ip(D.current,f,S),!1;W.always&&C==="accept-edits"&&(yd(f,S,!1),qx.current=Rs())}return!0},"beforeToolExecute"),askUser:i(async f=>{let S=f.options?Vf(f.options):[],C=await Fi(py(f),S,f.multiSelect);return C===void 0?np:C},"askUser"),exitPlanMode:i(async f=>vn.current!=="plan"?"not-in-plan-mode":(await Oo("exit_plan_mode",{plan:f})).confirmed?(Km("accept-edits"),!0):!1,"exitPlanMode"),askUserMulti:i(async f=>{let S=f.questions,C={},M="__back__",E=0;for(;E<S.length;){let H=S[E],W=Vf(H.options);E>0&&W.push({label:Z("select.back_prev"),value:M});let K=`[${E+1}/${S.length}] ${H.question}`,ne=await Fi(K,W,H.multiSelect);if(ne===void 0)return;if(ne===M){E--;continue}C[H.question]=ne,E++}return C},"askUserMulti"),askUserInput:i(async f=>tw(f.question,f.default),"askUserInput"),onCompactStart:i(()=>{te()},"onCompactStart"),onCompactStats:i(f=>{la.current=f.tokensBefore,Qn(f.tokensAfter)},"onCompactStats"),onCompactedMessages:i((f,S)=>{n.messages=f,S?.artifactLedger&&S.artifactLedger.length>0&&(n.artifactLedger=Fa(n.artifactLedger??[],S.artifactLedger)),n.lineage=S?.anchor?Cw(n.lineage,f,S.anchor,S.postCompactAttachments??[]):En(f,n.lineage);let C=Bo(f);n.contextTokenSnapshot={currentTokens:C,baselineEstimatedTokens:C,source:"estimate"},hr(n),Qn(C),ml.current?.().catch(()=>{})},"onCompactedMessages"),onCompact:i(f=>{Le();let S=la.current??f;la.current=null;let C=Math.round(S/1e3);Mo({type:"info",icon:"\u2728",text:`Context auto-compacted (was ~${C}k tokens)`},"compact")},"onCompact"),onCompactEnd:i(()=>{la.current=null,Le()},"onCompactEnd"),onIterationEnd:i(f=>{f.scope!=="worker"&&(n.contextTokenSnapshot=f.contextTokenSnapshot),Qn(f.tokenCount)},"onIterationEnd")}),[Q,J,q,Pt,ue,et,Ue,De,O,ae,B,n,te,Le,v,Ie,_,ee,Ml,ht,Ll,Jy,Un,Qy,Zy,$l,ga,zr,Xr,Tn,P.currentTool]),Oo=i((f,S)=>{let C=e0(f,S);return Cr(),new Promise(M=>{Ao.current=M,Dl({tool:f,input:S,prompt:C})})},"showConfirmDialog");Fe(()=>(u(async(f,S,C)=>(await Oo(f.name,{...f.input,_reason:`[auto-mode] ${S}`,...C&&C.length>0?{_classifierSignals:C}:{}})).confirmed?"allow":"block"),m(f=>{Am(f)}),()=>{u(null),m(null)}),[]),Fe(()=>{p(B)},[B,p]);let Oa=i(async(f,S,C=n.lineage?At(n.lineage,n.lineage.activeEntryId):n.messages,M)=>{let E={...Vm(),getCostReport:F},W=Rr(n.gitRoot).getSystemPromptSnippet(),K=S0(f.context,n.gitRoot,n.contextTokenSnapshot,W);M&&M.length>0&&(K.inputArtifacts=[...M]),K.planModeBlockCheck=(ne,Ce)=>vn.current!=="plan"?null:Dr(ne,Ce,n.gitRoot??process.cwd());try{return await Ua({...f,session:{...f.session,initialMessages:C},context:K,events:E,abortSignal:Rt()},S)}finally{Lw()}},"runAgentRound"),kr=X(f=>{let S=En([...f],n.lineage);return n.lineage=S,S},[n]),Da=X(async f=>{if(n.messages.length===0)return;let S=ks(n.messages),C=hi(f??L.current);L.current=C,n.title=S,n.uiHistory=C;let M=n.lineage??kr(n.messages);n.lineage=M;let E={messages:n.messages,title:S,gitRoot:n.gitRoot??"",uiHistory:C,lineage:M,artifactLedger:n.artifactLedger};"appendSessionDelta"in r&&typeof r.appendSessionDelta=="function"?await r.appendSessionDelta(n.sessionId,E):await r.save(n.sessionId,E),Pf()&&$f("persist",Of(n.messages,M,{historyItems:ge.current,foregroundItems:Yt.current,streamingResponse:Re.current.currentResponse,streamingThinking:Re.current.thinkingContent,persistedUiHistory:L.current}))},[n,kr,r]),zm=X(()=>{if(pl.current)return pl.current;let f=(async()=>{try{for(;vo.current.requested;){vo.current.requested=!1;let S=vo.current.uiHistoryOverride;vo.current.uiHistoryOverride=void 0,await Da(S)}}finally{pl.current=null,vo.current.requested&&zm()}})();return pl.current=f,Wy.current=f,f},[Da]),Wi=X(f=>{if(f!==void 0){let S=hi(f);L.current=S,vo.current.uiHistoryOverride=S}return vo.current.requested=!0,zm()},[zm]),LE=X(async()=>{if(da.current)return da.current;let f=(async()=>{ot.current=!0,V(),Y(),q(),Ie(),De(),me(),ue(void 0),ze(!1),await Wy.current.catch(()=>{}),await ml.current?.().catch(()=>{}),Kr(!1),I&&w?.isRaw&&T(!1),w?.pause?.(),w?.unref?.(),y(),a()})();return da.current=f.finally(()=>{da.current=null}),da.current},[V,me,Ie,De,y,I,a,ue,ze,T,w,Y,q]);Fe(()=>(ml.current=Wi,()=>{ml.current=null}),[Wi]);let nw=X(f=>{if(f.length===0)return;let S=Xf(L.current,f);L.current=S,Wi(S)},[Wi]),Na=X(f=>{f.length!==0&&(z([...f]),nw(f))},[z,nw]),cu=X(f=>{f.length!==0&&(z([...f]),L.current=Xf(L.current,f))},[z]);Fe(()=>(Si.current=Na,()=>{Si.current=null}),[Na]);let rw=X(async f=>{n.messages=f.messages,n.contextTokenSnapshot=f.contextTokenSnapshot,kr(f.messages);let S=f.success===!1&&!f.interrupted,C=_().trim(),M=kC(f.messages,ee(),f.managedTask?.verdict.summary,f.lastText),E=[...Yt.current],H=E.length>0;Al(E);let W=H&&E.some(pe=>pe.type==="assistant"&&"text"in pe&&uo(String(pe.text??"")).length>0),K=!S&&M&&!W,ne=[...vi.current],Ce=S?[]:ne.length===0?Ek?Og(f):Og(f).filter(pe=>!$g(pe)):[],xt=H?[]:Cy({thinking:C,response:void 0,toolCalls:jt.current,toolNames:tr.current}),Vt=[...E.map(pe=>To(pe)),...xt,...S?[]:ne.map(pe=>To(pe)),...Ce.map(pe=>vk(pe)),...K?[{type:"assistant",text:f.interrupted?`${M}
428
+
429
+ [Interrupted]`:M}]:!M&&!W&&!f.interrupted&&!S?[{type:"info",text:"[No response text was produced for this round]"}]:[]],Ba=Xf(L.current,Vt);Ie(),me();let We=[...E.map(pe=>To(pe)),...xt,...S?[]:[...Ce.map(pe=>vk(pe)),...ne.map(pe=>To(pe))],...K?[{type:"assistant",text:f.interrupted?`${M}
430
+
431
+ [Interrupted]`:M}]:!M&&!W&&!f.interrupted&&!S?[{type:"info",text:"[No response text was produced for this round]"}]:[]];z(We),tr.current=[],jt.current=[],Xr(),De(),ue(void 0),ht(void 0),ha(),Ro.current=[],vi.current=[],ma([]),j(),Wi(Ba).catch(()=>{})},[z,j,De,me,Ie,n,ee,_,Wi,kr,Xr,ha,ue,ht,P.currentIteration]),lu=X(async f=>{let S=f.trim();S&&(v({type:"user",text:S}),fl(C=>C+1),hr(n))},[v,n]),uu=X(async(f,S)=>{let C=$a.current;ot.current=!1,ua.current=!1,ca(!0);try{return await W0({initialPrompt:f,runRound:S,shiftPendingPrompt:$t,onRoundComplete:i(async M=>{$a.current===C&&await rw(M)},"onRoundComplete"),onBeforeQueuedRound:i(async M=>{ot.current=!1,ua.current=!1,await lu(M)},"onBeforeQueuedRound"),shouldContinue:i(M=>!ot.current&&M.success!==!1,"shouldContinue")})}finally{ca(!1)}},[rw,$t,lu]),Xm=X(async()=>{let f=$t();if(!f||!f.trim())return;let S=f.trim();await lu(S),await uu(S,async C=>Oa(Ze.current,C))},[Oa,uu,$t,lu]),Ym=X(f=>{let S=f[f.length-1];if(S?.role!=="assistant")return;let C=yc(S);z(C.map(gc))},[z]),ow=X(async(f,S)=>{let C=await _f({...Ze.current,provider:B.provider,thinking:B.thinking,reasoningMode:B.reasoningMode},f,S,M=>v({type:"info",text:M}));if(C.mode==="manual"){C.manualOutput&&v({type:"info",text:C.manualOutput}),await C.finalize();return}if(!C.prompt||!C.options){await C.finalize();return}ca(!0);try{let M=C.mode==="fork"?[]:n.lineage?At(n.lineage,n.lineage.activeEntryId):n.messages,E=$a.current,H=await Oa(C.options,C.prompt,M);if($a.current!==E)await C.finalize();else{let W=L.current,K=[];if(C.mode==="fork"){let ne=H.messages.find(xt=>xt.role==="user");ne&&n.messages.push(ne);let Ce=H.messages.slice().reverse().find(xt=>xt.role==="assistant");if(Ce){n.messages.push({role:"assistant",content:Ce.content}),kr(n.messages);for(let xt of yc(Ce)){let Vt=gc(xt);v(Vt),K.push(Vt)}}}else{n.messages=H.messages,n.contextTokenSnapshot=H.contextTokenSnapshot,kr(H.messages),Ym(H.messages);let ne=H.messages[H.messages.length-1];if(ne?.role==="assistant")for(let Ce of yc(ne))K.push(gc(Ce))}await Da(Xf(W,K)),Pf()&&$f("round-end",Of(n.messages,n.lineage,{historyItems:ge.current,foregroundItems:Yt.current,streamingResponse:Re.current.currentResponse,streamingThinking:Re.current.thinkingContent,persistedUiHistory:L.current})),await C.finalize()}}catch(M){let E=M instanceof Error?M:new Error(String(M));throw await C.finalize(E),ca(!1),E}ca(!1),await Xm()},[v,Ym,n,B.provider,B.thinking,Xm,Da,kr,Oa]),PE=X(async f=>{for(let S of f.pastedContents)if(S.type==="text"&&!S.content&&S.contentHash)try{let C=await kd(S.contentHash);C&&(S.content=C)}catch{}},[]),$E=X(async f=>{let{displayText:S,fullText:C,pastedContents:M}=f;if(!C.trim()||!wi||tt||Pe)return;for(let We of M){if(We.type!=="text"||We.content.length<1024)continue;let pe=KC(We.content);VC(pe,We.content)}if(tx(!1),oe){if(!lm)return;if(P.pendingInputs.length>=5){Mo({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(F0(C)){Mo({type:"info",icon:"\u26A0",text:B0},H0);return}let We=P.currentTool;if(We&&hu(We)?.interruptBehavior==="cancel"){ke(C),V({preservePendingInputs:!0}),gl(""),hl(!0),fl(mn=>mn+1),hr(n);return}ke(C),gl(""),hl(!0),fl(pe=>pe+1),hr(n);return}let E=Ty(ee()),H=Yt.current.map(We=>To(We)),W=H.length>0;H.length>0&&(Al(Yt.current),cu(H)),!W&&E&&cu([{type:"assistant",text:E+`
432
+
433
+ [Interrupted]`}]),cu([{type:"user",text:S}]),gl(""),hl(!0),fl(We=>We+1),Pf()&&$f("turn-start",Of(n.messages,n.lineage,{historyItems:ge.current,foregroundItems:Yt.current,streamingResponse:Re.current.currentResponse,streamingThinking:Re.current.thinkingContent,persistedUiHistory:L.current})),ze(!0),ot.current=!1,ua.current=!1,++$a.current,xm(null),ct.current=null,wm.current=null,ht(void 0),ha(),Ro.current=[],vi.current=[],ma([]),xa(),Il(void 0),tr.current=[],jt.current=[],Xr(),me(),De(),ue(void 0),j(),_e(),hr(n),await new Promise(We=>setTimeout(We,50));let K=_s(C.trim());if(K){let We={exit:LE,saveSession:i(async()=>{if(n.messages.length>0){let U=ks(n.messages);n.title=U;let he=n.lineage??kr(n.messages);n.lineage=he,await r.save(n.sessionId,{messages:n.messages,title:U,gitRoot:n.gitRoot??"",uiHistory:L.current,lineage:he,artifactLedger:n.artifactLedger})}},"saveSession"),startNewSession:i(()=>{let U=Gc(),he=new Date().toISOString();n.sessionId=U,n.title="",n.uiHistory=[],n.contextTokenSnapshot=void 0,n.lineage=void 0,n.artifactLedger=void 0,L.current=[],n.createdAt=he,n.lastAccessed=he,Ze.current.session={...Ze.current.session,id:U},Qn(null),fe(),Vr([]),Id()?.reset(),se(U),g?.writer.update({sessionId:U})},"startNewSession"),loadSession:i(async U=>{let he=await r.load(U);return he?di(B,"Resuming a saved session",Yf)?(n.messages=he.messages,n.uiHistory=na(he.uiHistory),n.lineage=he.lineage,n.artifactLedger=he.artifactLedger,n.title=he.title,n.sessionId=U,n.contextTokenSnapshot=void 0,L.current=n.uiHistory??[],Qn(null),fe(),Vr([]),se(U),g?.writer.update({sessionId:U}),console.log(Ye.green(`[Session loaded: ${U}]`)),"loaded"):"blocked":"missing"},"loadSession"),listSessions:i(async()=>{let U=await r.list(n.gitRoot??void 0);if(U.length===0){console.log(Ye.dim(`
434
+ [No saved sessions]`));return}console.log(Ye.bold(`
435
+ Recent Sessions:
436
+ `));for(let he of U.slice(0,10))console.log(` ${Ye.cyan(he.id)} ${Ye.dim(`(${he.msgCount} messages)`)} ${he.title.slice(0,40)}`);console.log()},"listSessions"),clearHistory:i(()=>{n.uiHistory=[],fe(),Vr([])},"clearHistory"),printHistory:i(()=>{if(n.messages.length===0){console.log(Ye.dim(`
437
+ [No conversation history]`));return}console.log(Ye.bold(`
438
+ Conversation History:
439
+ `));let U=n.messages.slice(-20);for(let he=0;he<U.length;he++){let Me=U[he],Ui=Ye.cyan(Me.role.padEnd(10)),aw=xc(Me.content),HE=aw.slice(0,60).replace(/\n/g," "),FE=aw.length>60?"...":"";console.log(` ${(he+1).toString().padStart(2)}. ${Ui} ${HE}${FE}`)}console.log()},"printHistory"),switchProvider:i((U,he)=>{nt(Me=>({...Me,provider:U,model:he})),Ze.current.provider=U,Ze.current.model=he},"switchProvider"),setThinking:i(U=>{let he=U?"auto":"off";nt(Me=>({...Me,thinking:U,reasoningMode:he})),Ze.current.thinking=U,Ze.current.reasoningMode=he},"setThinking"),setReasoningMode:i(U=>{let he=U!=="off";nt(Me=>({...Me,thinking:he,reasoningMode:U})),Ze.current.thinking=he,Ze.current.reasoningMode=U},"setReasoningMode"),setAgentMode:i(U=>{nt(he=>({...he,agentMode:U})),Ze.current.agentMode=U},"setAgentMode"),setPermissionMode:i(U=>{Km(U)},"setPermissionMode"),setRepoIntelligenceRuntime:i(U=>{nt(he=>({...he,...U.mode!==void 0?{repoIntelligenceMode:U.mode}:{},...U.endpoint!==void 0?{repointelEndpoint:U.endpoint??void 0}:{},...U.bin!==void 0?{repointelBin:U.bin??void 0}:{},...U.trace!==void 0?{repoIntelligenceTrace:U.trace}:{}})),U.mode!==void 0&&(process.env.KODAX_REPO_INTELLIGENCE_MODE=U.mode,Ze.current.context={...Ze.current.context,repoIntelligenceMode:U.mode}),U.trace!==void 0&&(U.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,Ze.current.context={...Ze.current.context,repoIntelligenceTrace:U.trace}),U.endpoint!==void 0&&(U.endpoint?process.env.KODAX_REPOINTEL_ENDPOINT=U.endpoint:delete process.env.KODAX_REPOINTEL_ENDPOINT),U.bin!==void 0&&(U.bin?process.env.KODAX_REPOINTEL_BIN=U.bin:delete process.env.KODAX_REPOINTEL_BIN)},"setRepoIntelligenceRuntime"),deleteSession:i(async U=>{await r.delete?.(U)},"deleteSession"),deleteAllSessions:i(async()=>{await r.deleteAll?.(n.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:i(async()=>{let U=await r.getLineage?.(n.sessionId);if(!U){console.log(Ye.dim(`
440
+ [No session tree available for this session]`));return}let he=kf(mu(U));console.log(Ye.bold(`
441
+ Session Tree:
442
+ `)),he.forEach(Me=>console.log(` ${Me}`)),console.log()},"printSessionTree"),switchSessionBranch:i(async U=>{if(!di(B,"Switching session branches",Yf))return"blocked";let Me=await r.setActiveEntry?.(n.sessionId,U,{summarizeCurrentBranch:!0});return Me?(n.messages=Me.messages,n.uiHistory=na(Me.uiHistory),n.title=Me.title,n.contextTokenSnapshot=void 0,L.current=n.uiHistory??[],Qn(null),fe(),Vr([]),console.log(Ye.green(`
443
+ [Switched to tree entry: ${U}]`)),console.log(Ye.dim(` Messages: ${Me.messages.length}`)),"switched"):"missing"},"switchSessionBranch"),labelSessionBranch:i(async(U,he)=>{if(!await r.setLabel?.(n.sessionId,U,he))return!1;let Ui=he&&he.trim()?`checkpoint label set: ${he.trim()}`:"checkpoint label cleared";return console.log(Ye.green(`
444
+ [${Ui}]`)),!0},"labelSessionBranch"),forkSession:i(async U=>{if(!di(B,"Forking a session branch",Yf))return"blocked";let Me=await r.fork?.(n.sessionId,U);if(!Me)return"failed";n.sessionId=Me.sessionId,n.messages=Me.data.messages,n.uiHistory=na(Me.data.uiHistory),n.title=Me.data.title,n.contextTokenSnapshot=void 0,L.current=n.uiHistory??[];let Ui=new Date().toISOString();return n.createdAt=Ui,n.lastAccessed=Ui,Ze.current.session={...Ze.current.session,id:Me.sessionId},Qn(null),fe(),Vr([]),se(Me.sessionId),g?.writer.update({sessionId:Me.sessionId}),console.log(Ye.green(`
445
+ [Forked session: ${Me.sessionId}]`)),console.log(Ye.dim(` Messages: ${Me.data.messages.length}`)),"forked"},"forkSession"),rewindSession:i(async U=>{if(!di(B,"Rewinding session",Yf))return"blocked";let Me=await r.rewind?.(n.sessionId,U);return Me?(n.messages=Me.messages,n.uiHistory=na(Me.uiHistory),n.title=Me.title,n.contextTokenSnapshot=void 0,L.current=n.uiHistory??[],Qn(null),fe(),Vr([]),console.log(Ye.green(`
446
+ [Rewound session${U?` to ${U}`:" to previous turn"}]`)),console.log(Ye.dim(` Messages: ${Me.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:i(()=>F.current?.()??null,"getCostReport"),getAutoModeStats:i(()=>{if(sn(vn.current))return l.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:i(U=>{sn(vn.current)&&(l.getGuardrail().setEngine(U),Am(U))},"setAutoModeEngine"),createKodaXOptions:i(()=>({...Ze.current,provider:B.provider,model:B.model,thinking:B.thinking,reasoningMode:B.reasoningMode,agentMode:B.agentMode,guardrails:wy(vn.current,l),events:Vm()}),"createKodaXOptions"),reloadAgentsFiles:i(async()=>{let U=await rp({cwd:process.cwd(),projectRoot:n.gitRoot??void 0});return h(U),U},"reloadAgentsFiles"),startCompacting:i(()=>{te()},"startCompacting"),stopCompacting:i(()=>{Le()},"stopCompacting"),onCompactStats:i(U=>{la.current=U.tokensBefore,Qn(U.tokensAfter)},"onCompactStats"),confirm:i(async U=>(await Oo("confirm",{_alwaysConfirm:!0,_message:U})).confirmed,"confirm"),ui:{select:i(async(U,he)=>_E(U,he),"select"),confirm:i(async U=>(await Oo("confirm",{_alwaysConfirm:!0,_message:U})).confirmed,"confirm"),input:i(async(U,he)=>tw(U,he),"input")}},pe=[],mn=console.log;console.log=(...U)=>{let he=U.map(Me=>typeof Me=="string"?Me:String(Me)).join(" ");pe.push(he)};let In;try{let U=await Ls(K,n,We,B);typeof U=="object"&&U!==null&&"invocation"in U&&(In=U.invocation)}finally{console.log=mn}if(pe.length>0&&v({type:"info",text:pe.join(`
447
+ `)}),In){ze(!1),Y(),ze(!0),_e(),ae();try{await ow(In,C.trim())}catch(U){let he=U instanceof Error?U:new Error(String(U)),Me=he.name==="AbortError"||he.message.includes("aborted")||he.message.includes("ABORTED");console.log=mn,Me?iu():Na([{type:"error",text:he.message}])}finally{ze(!1),Y(),Ie()}return}ze(!1),Y();return}let ne=await kg(C.trim());if(C.trim().startsWith("!")&&Vc(ne)){ze(!1),Y();return}let Ce=Ze.current.context?.executionCwd??process.cwd(),xt=i(We=>{We.length!==0&&Na(We.map(pe=>({type:"info",text:pe})))},"emitArtifactWarnings");ae();let Vt=[],Ba=console.log;console.log=(...We)=>{let pe=We.map(mn=>typeof mn=="string"?mn:String(mn)).join(" ");Vt.push(pe)};try{await uu(ne,async We=>{let pe=zc(We,Ze.current.context?.executionCwd??process.cwd());return xt(pe.warnings),Oa(Ze.current,pe.promptText,n.messages,pe.inputArtifacts)})}catch(We){let pe=We instanceof Error?We:new Error(String(We));if(pe.name==="AbortError"||pe.message.includes("aborted")||pe.message.includes("ABORTED"))console.log=Ba,iu();else{let In=pe.message;pe.message.includes("rate limit")||pe.message.includes("Rate limit")?In=`[Rate Limit] ${pe.message}
448
+ Suggestion: Wait a moment and try again, or switch provider with /mode`:pe.message.includes("API key")||pe.message.includes("not configured")?In=`[Configuration Error] ${pe.message}
449
+ Suggestion: Set the required API key environment variable`:pe.message.includes("network")||pe.message.includes("ECONNREFUSED")||pe.message.includes("ETIMEDOUT")?In=`[Network Error] ${pe.message}
450
+ Suggestion: Check your internet connection`:(pe.message.includes("token")||pe.message.includes("context too long"))&&(In=`[Context Error] ${pe.message}
451
+ Suggestion: Use /clear to start fresh`),console.log=Ba,st.current.workerId?Cn({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:In,timestamp:Date.now()}):Na([{type:"error",text:In}])}}finally{if(console.log=Ba,Vt.length>0){let pe=Vt.filter((mn,In,U)=>U.indexOf(mn)===In);v({type:"info",text:pe.join(`
452
+ `)})}if(!ot.current){let pe=ga(N.Cancelled,()=>({error:"Run ended before the tool result was observed.",output:void 0}));pe.length>0&&st.current.workerId&&pe.forEach(mn=>Un(mn))}ze(!1),Y(),me(),Ie();let We=Bo(n.messages);n.contextTokenSnapshot={currentTokens:We,baselineEstimatedTokens:We,source:"estimate"},Qn(We)}},[wi,n,B,lm,P.pendingInputs.length,r,tt,Pe,y,a,v,fe,_e,Y,me,Vm,ow,Rt,ee,_,cu,Ym,Da,kr,uu,Xm,te,Le,Xr,ga,Un,xa]),OE=le(uf,{left:le(cf,{items:kx}),right:le(lf,{items:Rx}),queued:le(wg,{pendingInputs:P.pendingInputs}),stashNotice:le(yf,{text:Ql}),notifications:le(gf,{notifications:Jl}),inlineNotices:Om.length>0?le(Sg,{notices:Om}):void 0,activityBar:eo||oe&&vr.shouldRender?Zt(R,{paddingX:1,flexDirection:"row",children:[Zt(R,{flexGrow:1,children:[eo?.showSpinner?le(Dn,{color:re("dark").colors.accent}):null,eo?Zt(b,{color:eo.kind==="waiting"?re("dark").colors.warning:re("dark").colors.accent,children:[eo.showSpinner?" ":"",eo.text]}):null,eo?.showSpinner&&P.roundStartedAt!=null?le(Cb,{roundStartedAt:P.roundStartedAt,charCount:P.currentResponse.length,theme:re("dark")}):null]}),oe&&vr.shouldRender?le(b,{dimColor:!0,children:`${vr.completedCount}/${vr.totalCount} completed`}):null]}):void 0,todoSurface:oe&&vr.shouldRender?le(R,{paddingX:1,children:le(Vv,{viewModel:vr})}):void 0,composer:le(lg,{onSubmit:$E,onHistoryRecall:PE,onPopPendingInputs:i(()=>{let f=ce();if(f.length!==0)return f.join(`
453
+ ---
454
+ `)},"onPopPendingInputs"),prompt:">",placeholder:JI({isLoading:oe,canQueueFollowUps:lm,waitingReason:_m}),focus:!tt&&!Pe&&!lt,cwd:process.cwd(),gitRoot:e.context?.gitRoot||n.gitRoot,onInputChange:SE}),inlineSuggestions:IE,helpSurface:ex?le(dg,{sections:Df()}):void 0,taskBar:Ra?le(xf,{items:Pi.backgroundTask.items,overflowLabel:Pi.backgroundTask.overflowLabel,ctaHint:Pi.backgroundTask.ctaHint,showSpinner:oe}):void 0,statusLine:le(R,{children:le(Fs,{...Yl,viewModel:vx})}),inlineDialogs:RE}),DE=le(uf,{left:le(cf,{items:kx}),right:le(lf,{items:Rx}),stashNotice:le(yf,{text:Ql}),notifications:le(gf,{notifications:Jl}),composer:le(Uv,{searchActive:lt,selectionActive:!!(br||Qe),showAllActive:Et,searchQuery:qt,searchCurrent:Mt.length>0?Qr+1:0,searchCount:Mt.length,searchDetailText:Em,pendingLiveUpdates:Ta,secondaryText:bE}),taskBar:Ra?le(xf,{items:Pi.backgroundTask.items,overflowLabel:Pi.backgroundTask.overflowLabel,ctaHint:Pi.backgroundTask.ctaHint,showSpinner:ut}):void 0,statusLine:le(R,{children:le(Fs,{...Yl,viewModel:Pm})})}),qm=X(f=>le(jv,{banner:f?.bannerVisible?le(Sy,{...Lo}):void 0,items:ba,isLoading:Jt,viewportRows:Nt.messageRows,viewportWidth:k,scrollOffset:Hn,windowed:!!f?.rendererWindow,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Ia:Bx,maxLines:Tt,selectedTextRanges:vm?Cl?.rowRanges:void 0,onMetricsChange:eu,onVisibleRowsChange:tu}),[Lo,ba,Jt,eu,tu,Hn,Bx,k,Tt,Cl?.rowRanges,Nt.messageRows,vm]),Jm=X(f=>le(Gv,{banner:f?.bannerVisible?le(Sy,{...Lo}):void 0,items:Ca,browse:{hintText:Zr.browseHintText},selection:Zl,search:Tx,isLoading:ut,isThinking:Se.isThinking,thinkingCharCount:Se.thinkingCharCount,thinkingContent:Se.thinkingContent,streamingResponse:Se.currentResponse,currentTool:Se.currentTool,activeToolCalls:Se.activeToolCalls,toolInputCharCount:Se.toolInputCharCount,toolInputContent:Se.toolInputContent,iterationHistory:Se.iterationHistory,currentIteration:Se.currentIteration,isCompacting:Se.isCompacting,agentMode:B.agentMode,managedPhase:ut?G?.phase:void 0,managedHarnessProfile:ut?G?.harnessProfile:void 0,managedWorkerTitle:ut?G?.activeWorkerTitle:void 0,managedRound:ut?G?.currentRound:void 0,managedMaxRounds:ut?G?.maxRounds:void 0,managedGlobalWorkBudget:ut?G?.globalWorkBudget:void 0,managedBudgetUsage:ut?G?.budgetUsage:void 0,managedBudgetApprovalRequired:ut?G?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Se.lastLiveActivityLabel,viewportRows:Nt.messageRows,viewportWidth:k,scrollOffset:Hn,windowed:!!f?.windowed,animateSpinners:!!f?.rendererWindow&&Oi,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Ia:jl,maxLines:Tt,showDetailedTools:Et,showAllContent:Et,selectedItemId:bn.selectionEnabled?Qe:void 0,selectedTextRanges:Io?.rowRanges,expandedItemKeys:bn.selectionEnabled?dn:void 0,onMetricsChange:eu,onVisibleRowsChange:tu}),[Lo,B.agentMode,ut,dn,s.transcriptSpinnerAnimation,eu,tu,Hn,lx,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,Ia,jl,Zr.browseHintText,Qe,Zl,k,Oi,Ca,Tt,Se.activeToolCalls,Se.currentIteration,Se.currentResponse,Se.currentTool,Se.isCompacting,Se.isThinking,Se.iterationHistory,Se.lastLiveActivityLabel,Se.thinkingCharCount,Se.thinkingContent,Se.toolInputCharCount,Se.toolInputContent,Io?.rowRanges,Tx,Et,Nt.messageRows]),NE=ie?Jm({bannerVisible:!1,windowed:Ct}):qm({bannerVisible:!1}),iw=ie?DE:OE,BE=s.enabled&&_o,sw=Zt(R,{flexDirection:"column",width:k,flexShrink:0,flexGrow:BE?1:0,children:[le(Fg,{currentConfig:B,setCurrentConfig:nt,isLoading:oe,abort:V,stopThinking:q,clearThinkingContent:Ie,setCurrentTool:ue,setIsLoading:ze,onToggleHelp:wE,setShowHelp:tx,onSetThinking:i(f=>{Ze.current.thinking=f},"onSetThinking"),onSetReasoningMode:i(f=>{Ze.current.reasoningMode=f,Ze.current.thinking=f!=="off"},"onSetReasoningMode"),onToggleTranscriptMode:EE,onOpenTranscriptSearch:Hm,canOpenTranscriptSearch:ie&&!tt&&!Pe,isInteractiveDialogActive:!!(tt||Pe),onSetAgentMode:i(f=>{Ze.current.agentMode=f},"onSetAgentMode"),onSetPermissionMode:i(f=>{Km(f)},"onSetPermissionMode"),isInputEmpty:um,onSavePermissionMode:Tc}),cm&&(s.enabled?null:le(ws,{items:[1],children:i(()=>le(Sy,{...Lo},"banner"),"children")})),_o?le(ig,{width:k,stickyHeader:Zr.stickyHeader,jumpToLatest:Zr.jumpToLatest,transcript:!s.enabled||!Ct?ie?Jm({bannerVisible:!1}):qm({bannerVisible:!1}):void 0,renderTranscriptWindow:s.enabled&&Ct?f=>(()=>{let C=_a(f).contentWindow;return ie?Jm({bannerVisible:!1,windowed:!0,rendererWindow:C}):qm({bannerVisible:!1,rendererWindow:C})})():void 0,overlay:Um,scrollTop:Hn,scrollHeight:Aa,viewportHeight:Nt.messageRows,stickyScroll:!ie&&!Yr&&mm,overscanRows:CH,scrollRef:aE,onWindowChange:kE,onScrollTopChange:lE,onStickyChange:uE,footer:iw}):Zt(xH,{children:[Zt(R,{flexDirection:"column",flexGrow:1,children:[NE,Um?le(R,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:Um}):null]}),iw]})]});return bm?le(Vp,{mouseTracking:qr.usesRendererMouseTracking,children:sw}):sw},"InkREPLInner"),RH=i(e=>{let t=process.cwd(),n=e.options?.context?.gitRoot??void 0;return le(mf,{children:le(wf,{children:le(id,{children:le(Bg,{children:le(Nh,{cwd:t,gitRoot:n,children:le(kH,{...e})})})})})})},"InkREPL");function EH(){return process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function"}i(EH,"isRawModeSupported");async function by(e){if(!EH())throw new ep("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 Ks,n=Go(),r=Ko(),o=Vo(n,r),{prepareRuntimeConfig:s,getGitRoot:a}=await import("./utils-3ISOUEFC.js"),{loadCompactionConfig:c}=await import("./compaction-config-YU7SI6L6.js"),{resolveProvider:l}=await import("./dist-DS2KIZQG.js"),u=s(),m=e.provider??u.provider??du,p=e.model??u.model,h=wH(e,u),g=e.agentMode??u.agentMode??"ama",y=h!=="off",x=lr(u.permissionMode,"accept-edits")??"accept-edits",w=pu(),T=u.repoIntelligenceTrace===!0,I={provider:m,model:p,thinking:y,reasoningMode:h,agentMode:g,permissionMode:x,repoIntelligenceMode:w.mode,repointelEndpoint:w.endpoint,repointelBin:w.bin,repoIntelligenceTrace:T},A=e.session?.id,$=[],F,D,v,z="",fe=await a().catch(()=>null)??void 0,se=fu({meta:{cwd:process.cwd(),startedAt:Date.now()}});if(se){let Q=i(()=>{se.shutdown()},"teamModeCleanup");process.on("exit",Q),process.on("SIGTERM",Q)}try{let{bootstrapConstructionRuntime:Q}=await import("./construction-bootstrap-6UN3OY7X.js"),J=await Q(fe??process.cwd());if(J.loaded>0||J.failed>0||J.tampered>0){let q=J.failed>0?`; ${J.failed} failed (see warnings above)`:"",Ie=J.tampered>0?`; ${J.tampered} skipped due to manifest contentHash mismatch \u2014 re-stage and re-activate to re-approve`:"";console.log(Ye.dim(`[Constructed] Rehydrated ${J.loaded} active tool(s)${q}${Ie}.`))}if(J.markdownLoaded>0||J.markdownFailures.length>0){console.log(Ye.dim(`[Agents] Loaded ${J.markdownLoaded} markdown agent(s).`));for(let q of J.markdownFailures)console.warn(Ye.yellow(`[Agents] Skipped ${q.path}: ${q.reason}`))}}catch(Q){console.warn(Ye.yellow(`[Constructed] Bootstrap failed: ${Q.message}. Self-construction disabled this session.`))}let ge;try{let Q=await c(fe),J=l(m);ge={contextWindow:Q.contextWindow??J.getContextWindow?.()??2e5,triggerPercent:Q.triggerPercent,enabled:Q.enabled,userOverrideContextWindow:Q.contextWindow}}catch{}if(e.session?.id&&!e.session.resume){let Q=await t.load(e.session.id);Q&&($=Q.messages,F=na(Q.uiHistory),D=Q.lineage,v=Q.artifactLedger,z=Q.title,A=e.session.id,console.log(Ye.green(`[Session loaded: ${e.session.id}]`)))}else if(e.session?.resume||e.session?.autoResume){let Q=await t.list(fe);if(Q.length>0){let J=Q[0];if(J){let q=await t.load(J.id);q&&($=q.messages,F=na(q.uiHistory),D=q.lineage,v=q.artifactLedger,z=q.title,A=J.id,console.log(Ye.green(`[Continuing session: ${J.id}]`)))}}}let L=await jc({sessionId:A,gitRoot:fe,existingMessages:$,existingUiHistory:F,existingLineage:D,existingArtifactLedger:v});L.title=z,se?.writer.update({sessionId:L.sessionId});let P={current:await rp({cwd:process.cwd(),projectRoot:fe??void 0})},Re={current:null},_e={current:null},Y={current:I},V=gd(),ae=await Kc({askUser:i(async(Q,J,q)=>{let Ie=Re.current;return Ie?Ie(Q,J,q):"block"},"askUser"),projectRoot:fe??process.cwd(),getAgentsFiles:i(()=>P.current,"getAgentsFiles"),getCurrentProviderName:i(()=>Y.current.provider,"getCurrentProviderName"),getCurrentModel:i(()=>Y.current.model,"getCurrentModel"),getCurrentPermissionMode:i(()=>Y.current.permissionMode,"getCurrentPermissionMode"),autoModeSettings:V,log:i((Q,J)=>{Q==="warn"?console.warn(Ye.yellow(J)):console.log(Ye.dim(J))},"log"),onEngineChange:i(Q=>{_e.current?.(Q)},"onEngineChange"),extraCollectors:[mc]});try{let Q=process.stdout,J=process.stdin;import("./paste-5DSTHQGK.js").then(Ue=>Ue.prunePasteTmpDir()).catch(()=>{});let q=!1,{waitUntilExit:Ie,cleanup:ue}=qu(le(RH,{options:e,config:I,context:L,storage:t,compactionInfo:ge,rendererMode:r,fullscreenPolicy:o,autoModeBootstrap:ae,setAutoModeAskUser:i(Ue=>{Re.current=Ue},"setAutoModeAskUser"),setAutoModeEngineChange:i(Ue=>{_e.current=Ue},"setAutoModeEngineChange"),setCurrentConfigRef:i(Ue=>{Y.current=Ue},"setCurrentConfigRef"),onAgentsFilesReload:i(Ue=>{P.current=Ue},"onAgentsFilesReload"),teamModeHandle:se,onExit:i(()=>{q=!0},"onExit")}),{stdout:Q,stdin:J,exitOnCtrlC:!1,patchConsole:!1,maxFps:30,shellMode:o.enabled?o.promptShell:"main-screen"});await Ie(),ue(),se?.shutdown(),J.isTTY===!0&&typeof J.setRawMode=="function"&&J.isRaw&&J.setRawMode(!1),J.pause?.(),J.unref?.(),q&&console.log(Ye.dim(`
455
+ [Exiting KodaX...]`));let et=e.hardExitOnClose??process.env.VITEST!=="true";if(q&&et){let Ue=process.exitCode??0,De=!1,me=i(()=>{De||(De=!0,process.exit(Ue))},"requestProcessExit");setTimeout(me,0).unref?.(),Q.write("",me);return}}catch(Q){throw Q instanceof Error&&Q.message.includes("Raw mode")?new ep("Interactive mode failed to start.",['kodax -p "your task" # Run a single task',"kodax -c # Continue last session"]):Q}}i(by,"runInkInteractiveMode");import Sn from"chalk";var Pk=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],$k=["\x1B[36m","\x1B[35m","\x1B[34m"],Zc=null,ra=!1;function Qc(){let e=0,t=0,n=!1,r="Thinking...",o=i(()=>{if(n)return;let c=$k[t%$k.length],l="\x1B[0m",u=Pk[e%Pk.length];process.stdout.write(`\r${c}${u}${l} ${r}`)},"renderFrame"),s=setInterval(()=>{e++,e%10===0&&t++,o()},80);o();let a={stop:i(()=>{n||(n=!0,clearInterval(s),process.stdout.write("\r\x1B[K"))},"stop"),isStopped:i(()=>n,"isStopped"),updateText:i(c=>{r=c},"updateText")};return Zc=a,a}i(Qc,"startWaitingDots");function MH(e=!0){let t=null,n=0,r=!1;return{onSessionStart:i(s=>{console.log(e?Sn.cyan(`[KodaX] Provider: ${s.provider} | Session: ${s.sessionId}`):Sn.cyan(`[KodaX] Provider: ${s.provider}`))},"onSessionStart"),onTextDelta:i(s=>{t&&(t.stop(),t=null),n=0,process.stdout.write(s),r=!0},"onTextDelta"),onThinkingDelta:i(s=>{n+=s.length,t||(t=Qc()),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(Sn.dim(`[Thinking] ${c}`))}},"onThinkingEnd"),onToolUseStart:i(s=>{t||(ra||(process.stdout.write(`
456
+ `),ra=!0),t=Qc()),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())&&(ra||(process.stdout.write(`
457
+ `),ra=!0,r=!1),t=Qc(),t.updateText(`Receiving ${s}... (${l} chars)`))},"onToolInputDelta"),onToolResult:i(s=>{t&&(t.stop(),t=null),console.log(Sn.green(`[Result] ${s.content.slice(0,300)}${s.content.length>300?"...":""}`))},"onToolResult"),onRepoIntelligenceTrace:i(s=>{t&&(t.stop(),t=null),console.log(Sn.dim(`[RepoIntel] ${s.summary}`))},"onRepoIntelligenceTrace"),onStreamEnd:i(()=>{Zc&&!Zc.isStopped()&&Zc.stop(),Zc=null,ra=!1,r&&(console.log(),r=!1),(!t||t.isStopped())&&(t=Qc(),t.updateText("Processing..."))},"onStreamEnd"),onIterationStart:i((s,a)=>{t&&!t.isStopped()&&t.stop(),ra=!1,r=!1,console.log(Sn.magenta(`
458
+ [Assistant]`)),t=Qc()},"onIterationStart"),onCompactStart:i(()=>{console.log(Sn.dim(`
459
+ [KodaX] Compacting context...`))},"onCompactStart"),onCompact:i(s=>{console.log(Sn.dim(`[KodaX] Compaction finished (${s} tokens).`))},"onCompact"),onCompactEnd:i(()=>{},"onCompactEnd"),onRetry:i((s,a,c)=>{console.log(Sn.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(Sn.yellow(`[KodaX] ${a} (${s.errorClass}, ${s.stage})`))},"onProviderRecovery"),onComplete:i(()=>{t&&(t.stop(),t=null),console.log(Sn.green(`
460
+ [KodaX] Done!`))},"onComplete"),onError:i(s=>{t&&(t.stop(),t=null),console.log(Sn.red(`
461
+ [Error] ${s.message}`))},"onError"),onScoutSuspiciousCompletion:i(s=>{console.log(Sn.yellow(`
462
+ [Scout] Completion marked uncertain \u2014 signals: ${s.signals.join(", ")}. Verify the result before continuing.`))},"onScoutSuspiciousCompletion"),beforeToolExecute:i(async(s,a)=>!0,"beforeToolExecute")}}i(MH,"createCliEvents");function mt(e,t){e.write(`${JSON.stringify(t)}
463
+ `)}i(mt,"writeJsonLine");function AH(e){return{type:"error",name:e.name,message:e.message,stack:e.stack}}i(AH,"serializeError");function _H(e={}){let t=e.stdout??process.stdout,n=e.stderr??process.stderr;return{onSessionStart:i(r=>{mt(t,{type:"session.start",provider:r.provider,sessionId:r.sessionId})},"onSessionStart"),onIterationStart:i((r,o)=>{mt(t,{type:"iteration.start",iter:r,maxIter:o})},"onIterationStart"),onIterationEnd:i(r=>{mt(t,{type:"iteration.end",iter:r.iter,maxIter:r.maxIter,tokenCount:r.tokenCount,tokenSource:r.tokenSource,usage:r.usage,contextTokenSnapshot:r.contextTokenSnapshot})},"onIterationEnd"),onTextDelta:i(r=>{mt(t,{type:"text.delta",text:r})},"onTextDelta"),onThinkingDelta:i(r=>{mt(t,{type:"thinking.delta",text:r})},"onThinkingDelta"),onThinkingEnd:i(r=>{mt(t,{type:"thinking.end",thinking:r})},"onThinkingEnd"),onToolUseStart:i(r=>{mt(t,{type:"tool.start",id:r.id,name:r.name,input:r.input})},"onToolUseStart"),onToolInputDelta:i((r,o,s)=>{mt(t,{type:"tool.input.delta",toolName:r,partialJson:o,toolId:s?.toolId})},"onToolInputDelta"),onToolResult:i(r=>{mt(t,{type:"tool.result",id:r.id,name:r.name,content:r.content})},"onToolResult"),onStreamEnd:i(()=>{mt(t,{type:"stream.end"})},"onStreamEnd"),onCompactStart:i(()=>{mt(t,{type:"compact.start"})},"onCompactStart"),onCompact:i(r=>{mt(t,{type:"compact.finish",estimatedTokens:r})},"onCompact"),onCompactStats:i(r=>{mt(t,{type:"compact.stats",tokensBefore:r.tokensBefore,tokensAfter:r.tokensAfter})},"onCompactStats"),onCompactEnd:i(()=>{mt(t,{type:"compact.end"})},"onCompactEnd"),onRetry:i((r,o,s)=>{mt(t,{type:"retry",reason:r,attempt:o,maxAttempts:s})},"onRetry"),onProviderRecovery:i(r=>{mt(t,{type:"provider.recovery",stage:r.stage,reasonCode:r.errorClass,attempt:r.attempt,maxAttempts:r.maxAttempts,delayMs:r.delayMs,nextAt:Date.now()+r.delayMs,recoveryAction:r.recoveryAction,fallbackUsed:r.fallbackUsed})},"onProviderRecovery"),onProviderRateLimit:i((r,o,s)=>{mt(t,{type:"provider.rate_limit",attempt:r,maxRetries:o,delayMs:s})},"onProviderRateLimit"),onRepoIntelligenceTrace:i(r=>{mt(t,{type:"repo_intelligence.trace",stage:r.stage,summary:r.summary,capability:r.capability,trace:r.trace})},"onRepoIntelligenceTrace"),onToolProgress:i(r=>{mt(t,{type:"tool.progress",id:r.id,message:r.message})},"onToolProgress"),onManagedTaskStatus:i(r=>{mt(t,{type:"managed_task.status",agentMode:r.agentMode,harnessProfile:r.harnessProfile,phase:r.phase,activeWorkerId:r.activeWorkerId,activeWorkerTitle:r.activeWorkerTitle,childFanoutClass:r.childFanoutClass,childFanoutCount:r.childFanoutCount,currentRound:r.currentRound,maxRounds:r.maxRounds,note:r.note,detailNote:r.detailNote,globalWorkBudget:r.globalWorkBudget,budgetUsage:r.budgetUsage,budgetApprovalRequired:r.budgetApprovalRequired})},"onManagedTaskStatus"),onScoutSuspiciousCompletion:i(r=>{mt(t,{type:"scout.suspicious_completion",confidence:r.confidence,signals:r.signals,sessionId:r.sessionId,lastTextPreview:r.lastTextPreview})},"onScoutSuspiciousCompletion"),onComplete:i(()=>{mt(t,{type:"complete"})},"onComplete"),onError:i(r=>{mt(n,AH(r))},"onError")}}i(_H,"createJsonEvents");import{jsx as pt,jsxs as cn}from"react/jsx-runtime";import DH,{useMemo as el}from"react";var vy=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@.*$/,Ok=/^---\s+(.+)$/;function Dk(e){if(!e)return[];let t=e.split(`
464
+ `),n=[],r=[],o=[],s=!1,a=null,c=null,l=0,u=0,m=i(()=>{if(r.length===0)return;let h=r.join(`
465
+ `);h.length>0&&n.push({kind:"text",text:h}),r=[]},"flushText"),p=i(()=>{o.length!==0&&(n.push({kind:"diff",text:o.join(`
466
+ `),addedLines:l,removedLines:u,filePath:c}),o=[],l=0,u=0,c=null)},"flushDiff");for(let h=0;h<t.length;h++){let g=t[h];if(!s){let w=Ok.exec(g);if(w){let T=Math.min(h+3,t.length-1),I=!1;for(let A=h+1;A<=T;A++)if(t[A]?.startsWith("+++ ")||vy.test(t[A]??"")){I=!0;break}if(I){m(),s=!0,a=w[1]??null,c=a,o.push(g);continue}}if(vy.test(g)){m(),s=!0,o.push(g);continue}r.push(g);continue}let y=Ok.exec(g);if(y){let w=Math.min(h+3,t.length-1),T=!1;for(let I=h+1;I<=w;I++)if(t[I]?.startsWith("+++ ")||vy.test(t[I]??"")){T=!0;break}if(T){p(),c=y[1]??null,o.push(g);continue}}let x=g[0];if(x==="+"||x==="-"||x===" "||x==="@"||g===""){x==="+"&&!g.startsWith("+++ ")&&l++,x==="-"&&!g.startsWith("--- ")&&u++,o.push(g);continue}p(),s=!1,a=null,r.push(g)}return p(),m(),n}i(Dk,"parseUnifiedDiff");function Nk(e){return e?/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/m.test(e):!1}i(Nk,"containsUnifiedDiff");import{jsxs as oa,jsx as LH}from"react/jsx-runtime";import PH from"react";function $H(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($H,"classifyLine");function OH(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(OH,"colorFor");var Iy=PH.memo(({text:e,addedLines:t,removedLines:n,filePath:r,theme:o,maxLines:s=16,extremeThreshold:a=200})=>{let c=o??re("dark"),l=e.split(`
467
+ `),u=l.map($H),m=`(${t>0?`+${t}`:"\xB10"} ${n>0?`-${n}`:""})`.trim();if(l.length>a)return oa(R,{flexDirection:"column",marginLeft:4,children:[r&&oa(b,{dimColor:!0,children:[r," ",m]}),oa(b,{dimColor:!0,children:["[diff too large to render inline \u2014 ",l.length," lines, ",t,"+ / ",n,"-]"]})]});let p,h=0;if(l.length>s){let g=Math.floor(s/2),y=u.slice(0,g),x=u.slice(-g);h=l.length-y.length-x.length,p=[...y,{text:"",kind:"context"},...x]}else p=u;return oa(R,{flexDirection:"column",marginLeft:4,children:[r&&oa(b,{dimColor:!0,children:[r," ",m]}),p.map((g,y)=>{if(y===Math.floor(s/2)&&h>0&&g.kind==="context"&&g.text==="")return oa(b,{dimColor:!0,children:["... ",h," lines collapsed ..."]},`collapse-${y}`);let w=OH(g.kind,c);return LH(b,{color:w,children:g.text||" "},y)})]})});Iy.displayName="DiffHunk";function Bk(e){switch(e){case N.Scheduled:return"\u25CB";case N.Validating:return"\u25D0";case N.AwaitingApproval:return"\u23F8";case N.Executing:return"\u25CF";case N.Success:return"\u2713";case N.Error:return"\u2717";case N.Cancelled:return"\u2298";default:return"?"}}i(Bk,"getStatusIcon");function Hk(e,t){switch(e){case N.Scheduled:case N.Validating:return t.colors.dim;case N.AwaitingApproval:return t.colors.accent;case N.Executing:return t.colors.primary;case N.Success:return t.colors.success??t.colors.primary;case N.Error:return t.colors.error;case N.Cancelled:return t.colors.dim;default:return t.colors.text}}i(Hk,"getStatusColor");function NH(e,t){if(!t)return"";let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(NH,"formatDuration");function BH(e){if(!e)return"";let t=JSON.stringify(e);return t.length<=50?t:t.slice(0,47)+"..."}i(BH,"formatInputSummary");var HH=i(({status:e,theme:t})=>{let n=t??el(()=>re("dark"),[]),r=Bk(e),o=Hk(e,n);return pt(b,{color:o,children:r})},"ToolStatusBadge"),Fk=i(({progress:e,width:t=20,theme:n})=>{let r=n??el(()=>re("dark"),[]),o=Math.max(0,Math.min(100,e)),s=Math.round(o/100*t),a=t-s,c="\u2588".repeat(s),l="\u2591".repeat(a);return cn(R,{children:[pt(b,{color:r.colors.primary,children:c}),pt(b,{dimColor:!0,children:l}),cn(b,{children:[" ",o,"%"]})]})},"ToolProgressBar"),Wk=i(({tool:e,collapsed:t=!1,theme:n})=>{let r=n??el(()=>re("dark"),[]),o=Bk(e.status),s=Hk(e.status,r),a=BH(e.input),c=NH(e.startTime,e.endTime);return t?cn(R,{children:[cn(b,{color:s,children:[o," "]}),pt(b,{color:r.colors.text,children:e.name})]}):cn(R,{flexDirection:"column",marginLeft:2,children:[cn(R,{children:[cn(b,{color:s,children:[o," "]}),pt(b,{color:r.colors.text,bold:!0,children:e.name}),a&&cn(b,{dimColor:!0,children:[" ",a]})]}),e.progress!==void 0&&e.status===N.Executing&&pt(R,{marginLeft:2,children:pt(Fk,{progress:e.progress,theme:r})}),e.progressLines&&e.progressLines.length>0&&e.status===N.Executing&&pt(R,{flexDirection:"column",marginLeft:2,children:e.progressLines.slice(-5).map((l,u)=>pt(b,{dimColor:!0,children:l},u))}),e.error&&pt(R,{marginLeft:2,children:pt(b,{color:r.colors.error,children:e.error})}),e.status===N.Success&&typeof e.output=="string"&&e.output.length>0&&pt(Uk,{output:e.output,theme:r}),c&&e.status!==N.Executing&&pt(R,{marginLeft:2,children:cn(b,{dimColor:!0,children:["Completed in ",c]})})]})},"ToolCallDisplay"),Uk=DH.memo(({output:e,theme:t})=>{if(!Nk(e))return pt(R,{marginLeft:2,children:pt(b,{dimColor:!0,children:e})});let n=Dk(e);return pt(R,{flexDirection:"column",marginLeft:2,children:n.map((r,o)=>r.kind==="text"?pt(b,{dimColor:!0,children:r.text},o):pt(Iy,{text:r.text,addedLines:r.addedLines,removedLines:r.removedLines,filePath:r.filePath,theme:t},o))})});Uk.displayName="ToolOutputBlock";var FH=i(({tools:e,collapsed:t=!1,title:n,theme:r})=>{let o=r??el(()=>re("dark"),[]);if(e.length===0)return null;let s=el(()=>{let c={[N.Scheduled]:0,[N.Validating]:0,[N.AwaitingApproval]:0,[N.Executing]:0,[N.Success]:0,[N.Error]:0,[N.Cancelled]:0};for(let l of e)c[l.status]++;return c},[e]),a=n??"Tools";if(t){let c=s[N.Success],l=s[N.Error],u=s[N.Executing]+s[N.Scheduled]+s[N.Validating];return pt(R,{flexDirection:"column",marginBottom:1,children:cn(R,{children:[pt(b,{color:o.colors.accent,bold:!0,children:a}),cn(b,{dimColor:!0,children:[" ","(",e.length," tools",c>0&&`, ${c} succeeded`,l>0&&`, ${l} failed`,u>0&&`, ${u} running`,")"]})]})})}return cn(R,{flexDirection:"column",marginBottom:1,children:[cn(R,{children:[pt(b,{color:o.colors.accent,bold:!0,children:a}),cn(b,{dimColor:!0,children:[" ","(",e.length," ",e.length===1?"tool":"tools",")"]})]}),e.map(c=>pt(Wk,{tool:c,theme:o},c.id))]})},"ToolGroup");import{jsxs as jk,jsx as WH}from"react/jsx-runtime";var UH=i(({pendingInputs:e})=>{let t=Iv(e);if(!t)return null;let n=re("dark");return jk(R,{children:[jk(b,{color:n.colors.hint,children:["\u23F3"," "]}),WH(b,{color:n.colors.dim,children:t})]})},"PendingInputsIndicator");import*as Gk from"child_process";var tl;function jH(){if(process.platform!=="win32")return null;if(tl!==void 0)return tl;try{tl=Gk.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{tl=null}return tl}i(jH,"detectWindowsCodePage");function qf(){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(qf,"supportsTrueColor");function Kk(){if(qf())return!0;let e=process.env.TERM||"";return e.includes("256color")||e==="xterm-256color"||e==="screen-256color"||e==="tmux-256color"}i(Kk,"supports256Colors");function jr(){let e=process.env,t=e.LC_ALL||"",n=e.LC_CTYPE||"",r=e.LANG||"";if(t==="C"||t==="POSIX"||n==="C"||n==="POSIX"||r==="C"||r==="POSIX")return!1;let o=`${t}|${n}|${r}`.toLowerCase();return o.includes("utf-8")||o.includes("utf8")?!0:process.platform==="win32"?e.WT_SESSION||e.TERM_PROGRAM==="vscode"?!0:jH()==="65001":!0}i(jr,"supportsUnicode");function Vk(){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(Vk,"supportsEmoji");function zk(){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(zk,"getTerminalWidth");function Xk(){let e=process.env;return!!(e.NO_COLOR||e.TERM==="dumb"||e.CI)}i(Xk,"isScreenReader");function GH(){return process.stdout?.isTTY??!1}i(GH,"isTTY");function KH(){return{trueColor:qf(),colors256:Kk(),unicode:jr(),emoji:Vk(),tty:GH(),columns:zk(),screenReader:Xk()}}i(KH,"detectTerminalCapabilities");var nl=class{static{i(this,"ConsoleCapturer")}captured=[];originalLog=null;start(){this.captured=[],this.originalLog=console.log,console.log=(...t)=>{let n=t.map(r=>typeof r=="string"?r:String(r)).join(" ");this.captured.push(n)}}stop(){return this.originalLog!==null&&(console.log=this.originalLog,this.originalLog=null),this.captured}getCaptured(){return[...this.captured]}clear(){this.captured=[]}};async function VH(e){let t=new nl;t.start();try{let n=await e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}i(VH,"withCapture");function zH(e){let t=new nl;t.start();try{let n=e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}i(zH,"withCaptureSync");import*as cR from"readline";import we from"chalk";import qn from"chalk";var XH=[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel the action",value:"no"}],YH=[{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 qH(e,t=!0){return e.map(n=>{let r=qn.dim(`[${n.key}]`);return t?`${r} ${qn.cyan(n.label)} ${qn.dim(`- ${n.description}`)}`:`${r} ${n.label}`}).join(" ")}i(qH,"formatOptions");function ia(){return process.stdout.columns??80}i(ia,"getTerminalWidth");function JH(){return jr()}i(JH,"supportsUnicode");function QH(){let e=JH();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(QH,"getSymbols");async function ZH(e,t){let{message:n,default:r,options:o,showDescription:s=!0}=t,a=o??XH,c=qH(a,s);console.log(),console.log(qn.cyan(`? ${n}`));let l=ia();if(c.length>l-4)for(let u of a){let m=qn.dim(` [${u.key}]`);console.log(`${m} ${qn.cyan(u.label)}`),s&&console.log(qn.dim(` ${u.description}`))}else console.log(qn.dim(` ${c}`));return new Promise(u=>{let m=r?` (${r})`:"";e.question(qn.dim(` Choose${m}: `),p=>{let h=p.trim().toLowerCase()||r||"",g=a.find(y=>y.key===h||y.value===h||y.label.toLowerCase()===h);u(g?g.value:h===""?"no":h)})})}i(ZH,"confirmEnhanced");async function rl(e,t,n,r){let{isOutsideProject:o=!1,isProtectedPath:s=!1,permissionMode:a="accept-edits"}=r??{},c=QH(),l,u,m={...n,...o?{_outsideProject:!0}:{},...s?{_alwaysConfirm:!0}:{}},p=Rf(t,m),h=p.details.map(y=>` ${qn.dim(y)}`);o||s?(l=`${qn.yellow(c.warning)} Safety Warning`,h.length>0&&(l+=`
468
+ ${h.join(`
469
+ `)}`),u=[{key:"y",label:"Yes",description:"Allow this once",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]):(l=p.title,h.length>0&&(l+=`
470
+ ${h.join(`
471
+ `)}`),u=a==="accept-edits"?YH:[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]);let g=await ZH(e,{message:l,default:"n",options:u});return g==="always"?{confirmed:!0,always:!0}:{confirmed:g==="yes"}}i(rl,"confirmToolExecution");import ln from"chalk";var Jf=/\x1b\[[0-9;]*m/g,xr={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 eF(e,t){if(t<=0)return"";let n="",r=0,o=0;for(;o<e.length&&r<t;){Jf.lastIndex=o;let s=Jf.exec(e);if(s&&s.index===o){n+=s[0],o+=s[0].length;continue}n+=e[o],r+=1,o+=1}return n}i(eF,"truncateAnsi");function Yk(e){return Jf.lastIndex=0,e.replace(Jf,"")}i(Yk,"stripAnsi");function tF(e,t=ia()){let n=[],r=e.sessionId.slice(0,6);n.push(ln.dim(`#${r}`));let o=e.permissionMode==="plan"?ln.blue:e.permissionMode==="accept-edits"?ln.cyan:e.permissionMode==="auto-in-project"?ln.magenta:ln.green,s=bs(e.permissionMode),c=(e.permissionMode==="auto"||e.permissionMode==="auto-in-project")&&e.autoModeEngine?e.autoModeEngine==="llm"?ln.green("[LLM]"):ln.yellow("[RULES]"):"";if(n.push(o(s)+c),e.reasoningMode&&n.push(ln.yellow(`reason:${e.reasoningMode}`)),n.push(ln.cyan(e.provider)),e.tokenUsage){let m=e.tokenUsage.total,p=m>=1e3?`${(m/1e3).toFixed(1)}k`:String(m);n.push(ln.dim(`${p}t`))}if(e.currentTool&&n.push(ln.magenta(`tool:${e.currentTool}`)),e.projectInfo){let{completedFeatures:m,totalFeatures:p}=e.projectInfo,h=p>0?Math.round(m/p*100):0;n.push(ln.dim(`${m}/${p} [${h}%]`))}e.messageCount!==void 0&&n.push(ln.dim(`${e.messageCount} msgs`));let l=n.join(ln.dim(" | ")),u=t-1;return Yk(l).length>u&&(l=`${eF(l,Math.max(0,u-3))}...`),l}i(tF,"buildStatusBarContent");var Qf=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=ia(),n=tF(this.state,t),r=n+" ".repeat(Math.max(0,t-Yk(n).length));process.stdout.write(xr.SAVE_CURSOR+xr.MOVE_TO_BOTTOM+xr.CLEAR_LINE+xr.REVERSE+r+xr.RESET+xr.RESTORE_CURSOR)}clear(){process.stdout.write(xr.SAVE_CURSOR+xr.MOVE_TO_BOTTOM+xr.CLEAR_LINE+xr.RESTORE_CURSOR)}};function qk(e,t,n,r,o="off"){return{sessionId:e,permissionMode:t,reasoningMode:o,provider:n,model:r}}i(qk,"createStatusBarState");function Jk(){if(!process.stdout.isTTY||rs())return!1;let e=process.env.TERM??"",t=process.env.TERM_PROGRAM??"",n=["xterm","xterm-256color","screen","screen-256color","tmux","tmux-256color","vt100","vt220"],r=["iTerm.app","Terminal.app","Apple_Terminal","vscode","Hyper","Alacritty","kitty","Windows Terminal"];return n.some(o=>e.startsWith(o))||r.includes(t)||process.env.WT_SESSION!==void 0}i(Jk,"supportsStatusBar");import Wee from"chalk";function Qk(){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(Qk,"getUnicodeSymbols");function ky(){return{prompt:">",success:"[OK]",error:"[X]",warning:"[!]",info:"[i]",arrow:"->",bullet:"*",check:"[v]",cross:"[x]",spinner:["|","/","-","\\","|","/","-","\\"]}}i(ky,"getAsciiSymbols");var Zk={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:jr()?Qk():ky(),spinner:{frames:jr()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},nF={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:jr()?Qk():ky(),spinner:{frames:jr()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},rF={name:"minimal",description:"Minimal theme without colors (for CI or limited terminals)",colors:{primary:"",secondary:"",accent:"",text:"",dim:"",success:"",warning:"",error:"",info:""},symbols:ky(),spinner:{frames:[".","o","O","0","O","o"],interval:120}},oF={dark:Zk,light:nF,minimal:rF},eR=Zk;function gi(){return eR}i(gi,"getCurrentTheme");function ol(e){let t=oF[e];return t?(eR=t,!0):!1}i(ol,"setTheme");function iF(){if(!process.stdout.isTTY){ol("minimal");return}let e=process.env;if(e.WT_SESSION!==void 0||e.TERM_PROGRAM==="vscode"){ol("dark");return}ol("dark")}i(iF,"autoSelectTheme");iF();var Zf=class{static{i(this,"ReadlineUIContext")}rl;constructor(t){this.rl=t}async select(t,n){if(n.length!==0)return console.log(`
472
+ ${t}`),console.log("\u2500".repeat(t.length)),n.forEach((r,o)=>{console.log(` ${o+1}. ${r}`)}),console.log(" 0. Cancel"),console.log(""),new Promise(r=>{this.rl.question("Enter choice (0 to cancel): ",o=>{let s=o.trim();if(s==="0"||s===""){r(void 0);return}let a=parseInt(s,10)-1;if(isNaN(a)||a<0||a>=n.length){console.log("Invalid choice. Please try again."),r(void 0);return}r(n[a])})})}async confirm(t){return new Promise(n=>{this.rl.question(`${t} (y/N): `,r=>{let o=r.trim().toLowerCase();n(o==="y"||o==="yes")})})}async input(t,n){let r=n?`${t} [${n}]: `:`${t}: `;return new Promise(o=>{this.rl.question(r,s=>{let a=s.trim();if(a===""&&n!==void 0){o(n);return}o(a||void 0)})})}};import*as tR from"child_process";import*as sl from"path";import*as il from"fs";import*as nR from"os";import wr from"chalk";function rR(e,t){let n=gi(),r=e==="plan"?wr.hex(n.colors.warning):wr.hex(n.colors.success),o=t.model??Mn(t.provider)??t.provider,s=ia();if(s<60){let c=e==="plan"?"?":n.symbols.prompt;return r(`${c} `)}else if(s<100){let c=t.reasoningMode!=="off"?t.reasoningMode[0]?.toUpperCase()??"R":"",l=c?wr.hex(n.colors.dim)(`[${c}]`):"";return r(`kodax:${e}${l}> `)}let a=t.reasoningMode!=="off"?wr.hex(n.colors.info)(`[reason:${t.reasoningMode}]`):"";return r(`kodax:${e} (${t.provider}:${o})${a}> `)}i(rR,"getPrompt");async function oR(e,t){let n=gi(),r=[],o=await new Promise(a=>{e.question(t,a)});if(o===""||o.toLowerCase()==="/e")return await Ry(r.join(`
473
+ `));for(r.push(o);sF(r.join(`
474
+ `));){let a=wr.hex(n.colors.dim)("... "),c=await new Promise(l=>{e.question(a,l)});r.push(c)}return r.join(`
475
+ `).replace(/\\\n/g,`
476
+ `)}i(oR,"askInput");async function Ry(e){let t=sl.join(nR.tmpdir(),"kodax"),n=sl.join(t,`input-${Date.now()}-${Math.random().toString(36).slice(2)}.txt`);try{await il.promises.mkdir(t,{recursive:!0}),await il.promises.writeFile(n,e,"utf-8");let r=process.env.EDITOR??process.env.VISUAL??(process.platform==="win32"?"notepad.exe":"nano");if(r.includes("/")||r.includes("\\")||r.includes("&&")||r.includes("|")){let a=sl.basename(r);console.log(wr.yellow(`
477
+ [Security] Editor path sanitized: ${a}`)),r=a}console.log(wr.dim(`
478
+ [Opening editor: ${r}]`));let o=process.platform==="win32"&&(r.toLowerCase()==="notepad"||r.toLowerCase()==="notepad.exe");return console.log(o?wr.dim(`Note: Please close Notepad manually after editing to continue.
479
+ `):wr.dim(`Save and close the editor to continue...
480
+ `)),tR.spawnSync(r,[n],{stdio:"inherit",timeout:3e5,shell:!1}),(await il.promises.readFile(n,"utf-8")).trim()}catch(r){let o=r instanceof Error?r:new Error(String(r));return console.log(wr.red(`
481
+ [Editor Error] ${o.message}`)),e}finally{try{await il.promises.unlink(n)}catch{}}}i(Ry,"openExternalEditor");function sF(e){if(e.endsWith("\\")&&!e.endsWith("\\\\"))return!0;let t={"(":0,"[":0,"{":0},n={")":"(","]":"[","}":"{"},r=null;for(let o=0;o<e.length;o++){let s=e[o];if((s==='"'||s==="'"||s==="`")&&e[o-1]!=="\\"){r===s?r=null:r===null&&(r=s);continue}if(!r){if(s in t)t[s]++;else if(s in n){let a=n[s];a&&t[a]--}}}return!!(Object.values(t).some(o=>o>0)||r)}i(sF,"needsContinuation");import Ve from"chalk";function iR(e){e?.workspaceRoot&&(console.log(Ve.dim(` Workspace: ${xn(e)}`)),console.log(Ve.dim(` Use /status workspace for runtime details.
482
+ `)))}i(iR,"printWorkspaceEntryNotice");function sR(e,t,n,r){let o=gi(),s=e.model??Mn(e.provider)??e.provider;if(console.log(Ve.hex(o.colors.primary)(`
483
+ `+`
484
+ \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
485
+ \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
486
+ \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
487
+ \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
488
+ \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
489
+ \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(Ve.hex(o.colors.text)(`
490
+ v${Zi} | AI Coding Agent | ${e.provider}:${s}`)),console.log(Ve.hex(o.colors.dim)(`
491
+ \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(Ve.hex(o.colors.dim)(" Mode: ")+Ve.hex(o.colors.primary)(t)+Ve.hex(o.colors.dim)(" | Reasoning: ")+(e.reasoningMode==="off"?Ve.hex(o.colors.dim)("off"):Ve.hex(o.colors.success)(e.reasoningMode))),n){let c=Math.round(n.contextWindow/1e3),l=Math.round(n.contextWindow*n.triggerPercent/100/1e3),u=n.enabled?Ve.hex(o.colors.success)("on"):Ve.hex(o.colors.dim)("off");console.log(Ve.hex(o.colors.dim)(` Context: ${c}k | Compaction: `)+u+Ve.hex(o.colors.dim)(` @ ${n.triggerPercent}% (${l}k)`))}if(console.log(Ve.hex(o.colors.dim)(` \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
492
+ `)),r){let c=r.length;console.log(Ve.hex(o.colors.dim)(" Project Rules: ")+Ve.hex(o.colors.success)(`${c} rule file(s) loaded`)),console.log(Ve.hex(o.colors.dim)(` Use /reload to refresh rules
493
+ `))}console.log(Ve.hex(o.colors.dim)(" Quick tips:")),console.log(Ve.hex(o.colors.primary)(" /help ")+Ve.hex(o.colors.dim)("Show all commands")),console.log(Ve.hex(o.colors.primary)(" /mode ")+Ve.hex(o.colors.dim)("Switch permission mode")),console.log(Ve.hex(o.colors.primary)(" /clear ")+Ve.hex(o.colors.dim)("Clear conversation")),console.log(Ve.hex(o.colors.primary)(" @path ")+Ve.hex(o.colors.dim)("Attach image to context")),console.log(Ve.hex(o.colors.primary)(" !cmd ")+Ve.hex(o.colors.dim)("Run read-only shell command")),console.log(Ve.hex(o.colors.dim)(`
494
+ Keyboard: Tab (complete) | Esc+Esc (edit last) | Ctrl+T (reasoning) | Ctrl+E (editor) | Ctrl+R (history)
495
+ `))}i(sR,"printStartupBanner");var My=class{static{i(this,"MemorySessionStorage")}sessions=new Map;async save(t,n){let r=this.sessions.get(t),o=En(n.messages,n.lineage??r?.data.lineage);this.sessions.set(t,{createdAt:r?.createdAt??new Date().toISOString(),data:{...structuredClone(n),scope:n.scope??r?.data.scope??"user",uiHistory:n.uiHistory??r?.data.uiHistory,extensionState:n.extensionState??r?.data.extensionState,extensionRecords:n.extensionRecords??r?.data.extensionRecords,lineage:o}})}async load(t){return structuredClone(this.sessions.get(t)?.data??null)}async getLineage(t){return structuredClone(this.sessions.get(t)?.data.lineage??null)}async setActiveEntry(t,n,r){let o=this.sessions.get(t);if(!o?.data.lineage)return null;let s=zi(o.data.lineage,n,r);if(!s)return null;let a={...structuredClone(o.data),messages:At(s),lineage:s};return this.sessions.set(t,{...o,data:a}),structuredClone(a)}async setLabel(t,n,r){let o=this.sessions.get(t);if(!o?.data.lineage)return null;let s=Xi(o.data.lineage,n,r);if(!s)return null;let a={...structuredClone(o.data),lineage:s};return this.sessions.set(t,{...o,data:a}),structuredClone(a)}async fork(t,n,r){let o=this.sessions.get(t);if(!o?.data.lineage)return null;let s=Ji(o.data.lineage,n);if(!s)return null;let a=r?.sessionId??await Vi(),c={messages:At(s),title:r?.title??o.data.title,gitRoot:o.data.gitRoot,runtimeInfo:o.data.runtimeInfo?structuredClone(o.data.runtimeInfo):void 0,scope:o.data.scope??"user",extensionState:o.data.extensionState?structuredClone(o.data.extensionState):void 0,extensionRecords:o.data.extensionRecords?structuredClone(o.data.extensionRecords):void 0,lineage:s};return this.sessions.set(a,{createdAt:new Date().toISOString(),data:c}),{sessionId:a,data:structuredClone(c)}}async rewind(t,n){let r=this.sessions.get(t);if(!r?.data.lineage)return null;let o=n??Yi(r.data.lineage);if(!o)return null;let s=qi(r.data.lineage,o);if(!s)return null;let a={...r.data,messages:At(s),lineage:s};return this.sessions.set(t,{...r,data:a}),structuredClone(a)}async list(t){return Array.from(this.sessions.entries()).filter(([,n])=>(n.data.scope??"user")==="user").map(([n,r])=>({id:n,title:r.data.title,msgCount:r.data.lineage?Fo(r.data.lineage):r.data.messages.length,...r.data.runtimeInfo?{runtimeInfo:structuredClone(r.data.runtimeInfo)}:{}}))}async delete(t){this.sessions.delete(t)}async deleteAll(t){this.sessions.clear()}};function Ey(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(Ey,"applyRuntimeContext");function aF(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:(e.thinking===!0||t.thinking===!0,"auto")}i(aF,"resolveInitialReasoningMode");var Ay={current:null};async function cF(e){let t=await Ms({cwd:process.cwd()}),n=t.workspaceRoot??await Uo()??void 0,r=e.storage??new My,o=fu({meta:{cwd:process.cwd(),startedAt:Date.now()}}),s=up(),a=e.provider??s.provider??du,c=e.model??s.model,l=aF(e,s),u=e.agentMode??s.agentMode??"ama",m=l!=="off",p=lr(s.permissionMode,"accept-edits")??"accept-edits",h=sd();p==="auto-in-project"&&h();let g=pu(),y=s.theme;y&&ol(y);let x=gi(),w={provider:a,model:c,thinking:m,reasoningMode:l,agentMode:u,permissionMode:p,repoIntelligenceMode:g.mode,repointelEndpoint:g.endpoint,repointelBin:g.bin,repoIntelligenceTrace:g.trace,fallbackProviders:s.fallbackProviders},T=p,I=Rs(),A=0,$="",F=!1,D=500,v=await jc({sessionId:e.session?.id,gitRoot:n,runtimeInfo:t});o?.writer.update({sessionId:v.sessionId});let z=i(_=>di(w,_,(O,j,te)=>{console.log((O==="block"?we.red:we.yellow)(`
496
+ ${j}`));for(let Le of te)console.log(we.dim(Le));console.log()}),"guardSessionTransition"),fe=await wu(n??void 0),{resolveProvider:se}=await import("./dist-DS2KIZQG.js"),ge=se(w.provider),L=fe.contextWindow??ge.getEffectiveContextWindow?.(w.model)??ge.getContextWindow?.()??2e5,{loadAgentsFiles:k}=await import("./dist-DS2KIZQG.js"),P=i(async()=>k({cwd:process.cwd(),projectRoot:v.gitRoot??void 0}),"reloadAgentsFiles"),Re=await P();sR(w,w.permissionMode,{contextWindow:L,triggerPercent:fe.triggerPercent,enabled:fe.enabled},Re),iR(t);let _e=ob(()=>v.gitRoot??process.cwd()),Y=cR.createInterface({input:process.stdin,output:process.stdout,terminal:process.stdout.isTTY??!0,historySize:100,completer:i((_,O)=>{_e(_).then(j=>{O(null,j)}).catch(()=>{O(null,[[],_])})},"completer")}),V=gd(),ae=await Kc({askUser:i(async(_,O,j)=>(await rl(Y,_.name,{..._.input,...j&&j.length>0?{_classifierSignals:j}:{}},{permissionMode:T,reason:`[auto-mode] ${O}`})).confirmed?"allow":"block","askUser"),projectRoot:n??process.cwd(),getAgentsFiles:i(()=>Re,"getAgentsFiles"),getCurrentProviderName:i(()=>w.provider,"getCurrentProviderName"),getCurrentModel:i(()=>w.model,"getCurrentModel"),getCurrentPermissionMode:i(()=>T,"getCurrentPermissionMode"),autoModeSettings:V,log:i((_,O)=>{_==="warn"?console.warn(we.yellow(O)):console.log(we.dim(O))},"log"),onEngineChange:i(_=>{sn(T)&&q?.update({autoModeEngine:_})},"onEngineChange"),extraCollectors:[mc]}),Q=gu({getProvider:i(()=>se(w.provider),"getProvider"),getModel:i(()=>w.model??"","getModel")}),J=w.model??Mn(w.provider)??w.provider,q=null;Jk()&&(q=new Qf(qk(v.sessionId,w.permissionMode,w.provider,J,w.reasoningMode)),sn(T)&&q.update({autoModeEngine:ae.getGuardrail().getEngine()}));let Ie=`
497
+ Keyboard Shortcuts:
498
+ Tab Auto-complete (@paths, /commands)
499
+ Esc+Esc Edit last message
500
+ Ctrl+T Cycle reasoning mode
501
+ Ctrl+E Open external editor
502
+ Ctrl+R Search command history (built-in)
503
+ Ctrl+C Cancel current input
504
+ Ctrl+D Exit REPL`,ue=i(()=>{console.log(we.dim(Ie))},"_printKeyboardShortcuts");process.stdin.isTTY&&process.stdin.on("keypress",(_,O)=>{if(O&&O.name==="escape"){let j=Date.now();j-A<D&&$&&(F=!0,console.log(we.dim(`
505
+ [Opening editor with last message...]`)),Y.pause()),A=j}});let Ue=Rr(n).getSystemPromptSnippet(),De=!0,me={...e,reasoningMode:l,thinking:m,context:{...e.context,gitRoot:n,executionCwd:t.executionCwd,repoIntelligenceMode:g.mode,repoIntelligenceTrace:g.trace,skillsPrompt:Ue},session:{...e.session,id:v.sessionId,persistedByHost:!0}};Ay.current=null;let Pt={exit:i(()=>{De=!1,o?.shutdown(),Y.close()},"exit"),saveSession:i(async()=>{if(v.messages.length>0){let _=al(v.messages);v.title=_,await r.save(v.sessionId,{messages:v.messages,title:_,gitRoot:v.gitRoot??"",runtimeInfo:v.runtimeInfo,artifactLedger:v.artifactLedger})}},"saveSession"),startNewSession:i(()=>{v.sessionId=Gc(),v.title="",v.contextTokenSnapshot=void 0,v.artifactLedger=void 0,v.createdAt=new Date().toISOString(),v.lastAccessed=v.createdAt,Ey(v,me,t),me.session={...me.session,id:v.sessionId},q?.update({sessionId:v.sessionId,messageCount:0}),o?.writer.update({sessionId:v.sessionId})},"startNewSession"),loadSession:i(async _=>{let O=await r.load(_);if(O){if(!z("Resuming a saved session"))return"blocked";let j=await Ms({cwd:process.cwd()}),te=ri(O),Le=te??j;return te?.workspaceRoot&&!qC(te)?(console.log(we.yellow(`
506
+ [Saved workspace unavailable]`)),console.log(we.dim(` Session workspace: ${xn(te)}`)),console.log(we.dim(` Falling back to current workspace: ${xn(j)}`)),Le=j):te?.workspaceRoot&&j.workspaceRoot&&te.workspaceRoot!==j.workspaceRoot&&(console.log(we.cyan(`
507
+ [Loading sibling workspace session]`)),console.log(we.dim(` Current workspace: ${xn(j)}`)),console.log(we.dim(` Session workspace: ${xn(te)}`))),v.messages=O.messages,v.title=O.title,v.sessionId=_,v.contextTokenSnapshot=void 0,v.artifactLedger=O.artifactLedger,v.lastAccessed=new Date().toISOString(),Ey(v,me,Le),me.session={...me.session,id:_},q?.update({sessionId:_,messageCount:O.messages.length}),o?.writer.update({sessionId:_}),console.log(we.green(`
508
+ [Loaded session: ${_}]`)),console.log(we.dim(` Messages: ${O.messages.length}`)),v.runtimeInfo?.workspaceRoot&&console.log(we.dim(` Workspace: ${xn(v.runtimeInfo)}`)),"loaded"}return"missing"},"loadSession"),listSessions:i(async()=>{let _=await r.list(v.gitRoot??void 0);if(_.length===0){console.log(we.dim(`
509
+ [No saved sessions]`));return}console.log(we.bold(`
510
+ Recent Sessions:
511
+ `)),v.runtimeInfo?.workspaceRoot&&(console.log(we.dim(` Current workspace: ${xn(v.runtimeInfo)}`)),console.log());for(let O of _.slice(0,10))if(console.log(` ${we.cyan(O.id)} ${we.dim(`(${O.msgCount} messages)`)} ${O.title.slice(0,40)}`),O.runtimeInfo?.workspaceRoot){let te=v.runtimeInfo?.workspaceRoot===O.runtimeInfo.workspaceRoot?" (current workspace)":"";console.log(we.dim(` workspace: ${xn(O.runtimeInfo)}${te}`))}console.log()},"listSessions"),clearHistory:i(()=>{v.messages=[],v.contextTokenSnapshot=void 0},"clearHistory"),printHistory:i(()=>{if(v.messages.length===0){console.log(we.dim(`
512
+ [No conversation history]`));return}console.log(we.bold(`
513
+ Conversation History:
514
+ `));let _=v.messages.slice(-20);for(let O=0;O<_.length;O++){let j=_[O],te=we.cyan(j.role.padEnd(10)),Le=typeof j.content=="string"?j.content:"[Complex content]",at=Le.slice(0,60).replace(/\n/g," "),ke=Le.length>60?"...":"";console.log(` ${(O+1).toString().padStart(2)}. ${te} ${at}${ke}`)}console.log()},"printHistory"),switchProvider:i((_,O)=>{w.provider=_,w.model=O,me.provider=_,me.model=O;let j=O??Mn(_);if(!j)try{j=lw(_)?.getModel()??_}catch{j=_}q?.update({provider:_,model:j})},"switchProvider"),setThinking:i(_=>{w.thinking=_,me.thinking=_,w.reasoningMode=_?"auto":"off",me.reasoningMode=w.reasoningMode,q?.update({reasoningMode:w.reasoningMode})},"setThinking"),setReasoningMode:i(_=>{let O=_!=="off";w.reasoningMode=_,w.thinking=O,me.reasoningMode=_,me.thinking=O,q?.update({reasoningMode:_})},"setReasoningMode"),setPermissionMode:i(_=>{w.permissionMode=_,T=_;let O=sn(_)?ae.getGuardrail().getEngine():void 0;q?.update({permissionMode:_,autoModeEngine:O}),_==="auto-in-project"&&h()},"setPermissionMode"),setRepoIntelligenceRuntime:i(_=>{_.mode!==void 0&&(w.repoIntelligenceMode=_.mode,process.env.KODAX_REPO_INTELLIGENCE_MODE=_.mode,me.context={...me.context,repoIntelligenceMode:_.mode}),_.trace!==void 0&&(w.repoIntelligenceTrace=_.trace,_.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,me.context={...me.context,repoIntelligenceTrace:_.trace}),_.endpoint!==void 0&&(w.repointelEndpoint=_.endpoint??void 0,_.endpoint?process.env.KODAX_REPOINTEL_ENDPOINT=_.endpoint:delete process.env.KODAX_REPOINTEL_ENDPOINT),_.bin!==void 0&&(w.repointelBin=_.bin??void 0,_.bin?process.env.KODAX_REPOINTEL_BIN=_.bin:delete process.env.KODAX_REPOINTEL_BIN)},"setRepoIntelligenceRuntime"),deleteSession:i(async _=>{await r.delete?.(_)},"deleteSession"),deleteAllSessions:i(async()=>{await r.deleteAll?.(v.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:i(async()=>{let _=await r.getLineage?.(v.sessionId);if(!_){console.log(we.dim(`
515
+ [No session tree available for this session]`));return}let O=kf(mu(_));console.log(we.bold(`
516
+ Session Tree:
517
+ `));for(let j of O)console.log(` ${j}`);console.log()},"printSessionTree"),switchSessionBranch:i(async _=>{if(!z("Switching session branches"))return"blocked";let O=await r.setActiveEntry?.(v.sessionId,_,{summarizeCurrentBranch:!0});return O?(v.messages=O.messages,v.title=O.title,v.contextTokenSnapshot=void 0,q?.update({messageCount:v.messages.length}),console.log(we.green(`
518
+ [Switched to tree entry: ${_}]`)),console.log(we.dim(` Messages: ${O.messages.length}`)),"switched"):"missing"},"switchSessionBranch"),labelSessionBranch:i(async(_,O)=>{if(!await r.setLabel?.(v.sessionId,_,O))return!1;let te=O&&O.trim()?`checkpoint label set: ${O.trim()}`:"checkpoint label cleared";return console.log(we.green(`
519
+ [${te}]`)),!0},"labelSessionBranch"),forkSession:i(async _=>{if(!z("Forking a session branch"))return"blocked";let O=await r.fork?.(v.sessionId,_);return O?(v.sessionId=O.sessionId,v.messages=O.data.messages,v.title=O.data.title,v.contextTokenSnapshot=void 0,v.createdAt=new Date().toISOString(),v.lastAccessed=v.createdAt,Ey(v,me,ri(O.data)??v.runtimeInfo),me.session={...me.session,id:O.sessionId},q?.update({sessionId:O.sessionId,messageCount:v.messages.length}),console.log(we.green(`
520
+ [Forked session: ${O.sessionId}]`)),console.log(we.dim(` Messages: ${O.data.messages.length}`)),"forked"):"failed"},"forkSession"),rewindSession:i(async _=>{if(!z("Rewinding session"))return"blocked";let O=await r.rewind?.(v.sessionId,_);return O?(v.messages=O.messages,v.title=O.title,v.contextTokenSnapshot=void 0,v.lastAccessed=new Date().toISOString(),q?.update({messageCount:v.messages.length}),console.log(we.green(`
521
+ [Rewound session${_?` to ${_}`:" to previous turn"}]`)),console.log(we.dim(` Messages: ${O.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:i(()=>Ay.current?.()??null,"getCostReport"),getAutoModeStats:i(()=>{if(sn(T))return ae.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:i(_=>{sn(T)&&(ae.getGuardrail().setEngine(_),q?.update({permissionMode:T}))},"setAutoModeEngine"),createKodaXOptions:i(()=>{let _=i((j,te)=>T!=="plan"?null:Dr(j,te,n??process.cwd()),"planModeBlockCheck"),O=sn(T)?[ae.getGuardrail()]:void 0;return{...me,provider:w.provider,model:w.model,thinking:w.thinking,reasoningMode:w.reasoningMode,guardrails:O,context:{...me.context,planModeBlockCheck:_},events:{...me.events,exitPlanMode:i(async j=>T!=="plan"?"not-in-plan-mode":(await rl(Y,"exit_plan_mode",{plan:j},{isProtectedPath:!1,permissionMode:T})).confirmed?(w.permissionMode="accept-edits",T="accept-edits",q?.update({permissionMode:"accept-edits"}),!0):!1,"exitPlanMode"),beforeToolExecute:i(async(j,te)=>{let Le=T,at=Jo(Le);if(Le==="plan"){let ke=Dr(j,te,n??process.cwd());if(ke)return console.log(we.yellow(ke)),`${ke} 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(j==="bash"){let ke=te.command??"";if(zn(ke))return!0}if(n&&Pn.has(j)){let ke=te.path;if(ke&&ur(ke,n))return(await rl(Y,j,te,{isProtectedPath:!0,permissionMode:Le})).confirmed?!0:(console.log(we.dim("[Cancelled] Operation on protected path requires confirmation")),!1)}if(at.has(j)){if(Le==="accept-edits"&&j==="bash"&&await co(j,te,I,Q))return!0;let ke=await rl(Y,j,te,{isOutsideProject:te._outsideProject===!0,reason:te._reason,permissionMode:Le});if(!ke.confirmed)return console.log(we.dim("[Cancelled] Operation cancelled by user")),!1;ke.always&&Le==="accept-edits"&&(yd(j,te,!1),I=Rs())}return!0},"beforeToolExecute")}}},"createKodaXOptions"),reloadAgentsFiles:i(async()=>(Re=await P(),Re),"reloadAgentsFiles"),readline:Y,ui:new Zf(Y)};Y.on("SIGINT",async()=>{console.log(we.dim(`
522
+
523
+ [Press /exit to quit]`)),Y.prompt()});let Rt=i(()=>{q?.hide(),o?.shutdown(),Y.close()},"cleanup");process.on("exit",Rt),process.on("SIGTERM",Rt);let ee=i(async(_,O)=>{if(!_||typeof _!="object"||!_.invocation)return;let j=await _f({...me,provider:w.provider,thinking:w.thinking,reasoningMode:w.reasoningMode},_.invocation,O,te=>console.log(we.dim(`
524
+ ${te}`)));if(j.mode==="manual"){j.manualOutput&&console.log(we.yellow(`
525
+ ${j.manualOutput}
526
+ `)),await j.finalize();return}if(!j.prompt||!j.options){await j.finalize();return}try{let te=j.mode==="fork"?[]:v.messages,Le=await aR(j.options,v,j.prompt,te);if(j.mode==="fork"){let at=wc(Le.messages);at.trim()&&(console.log(`
527
+ ${at}
528
+ `),v.messages.push({role:"assistant",content:at}))}else v.messages=Le.messages,v.contextTokenSnapshot=Le.contextTokenSnapshot;if(q?.update({messageCount:v.messages.length}),v.messages.length>0){let at=al(v.messages);v.title=at,await r.save(v.sessionId,{messages:v.messages,title:at,gitRoot:v.gitRoot??"",runtimeInfo:v.runtimeInfo})}await j.finalize()}catch(te){throw await j.finalize(te instanceof Error?te:new Error(String(te))),te}},"handleCommandResult");for(;De;){if(F&&$){F=!1,Y.resume();let ke=await Ry($);if(ke&&ke.trim()&&ke!==$){console.log(we.dim(`
529
+ [Edited message ready to send]`));let Be=ke.trim();hr(v);let $t=_s(Be);if($t){let B=await Ls($t,v,Pt,w);await ee(B,Be);continue}let ce=await _y(Be);if(Be.startsWith("!")&&Vc(ce))continue;let oe=zc(ce,me.context?.executionCwd??process.cwd());for(let B of oe.warnings)console.log(we.yellow(`
530
+ ${B}`));v.messages.push({role:"user",content:oe.messageContent}),$=Be,q?.update({messageCount:v.messages.length});let ze=v.lineage?Uw({getLineage:i(()=>v.lineage,"getLineage"),setLineage:i(B=>{v.lineage=B},"setLineage"),saveSession:i(async()=>{await r.save(v.sessionId,{messages:v.messages,title:v.title??al(v.messages),gitRoot:v.gitRoot??"",runtimeInfo:v.runtimeInfo,artifactLedger:v.artifactLedger,lineage:v.lineage})},"saveSession"),getLatestUsage:i(()=>{},"getLatestUsage"),getTurnStartMs:i(()=>{},"getTurnStartMs"),getPermissionMode:i(()=>T,"getPermissionMode"),hasPendingUserInput:i(()=>Rn().has({agentId:void 0,maxPriority:"user",mode:"prompt"}),"hasPendingUserInput"),verifyComplete:i(async()=>({ok:!0}),"verifyComplete")}):void 0;try{let B=await Ua({...me,provider:w.provider,thinking:w.thinking,reasoningMode:w.reasoningMode,session:{...me.session,initialMessages:v.lineage?At(v.lineage,v.lineage.activeEntryId):v.messages},context:{...me.context,taskSurface:"repl",planModeBlockCheck:i((nt,un)=>T!=="plan"?null:Dr(nt,un,n??process.cwd()),"planModeBlockCheck"),...oe.inputArtifacts.length>0?{inputArtifacts:oe.inputArtifacts}:{},...ze?{goalRuntime:ze}:{}}},ce);if(v.messages=B.messages,v.contextTokenSnapshot=B.contextTokenSnapshot,v.artifactLedger=Fa(v.artifactLedger??[],B.artifactLedger??tp(B.messages)),v.messages.length>0){let nt=al(v.messages);v.title=nt,await r.save(v.sessionId,{messages:v.messages,title:nt,gitRoot:v.gitRoot??"",runtimeInfo:v.runtimeInfo,artifactLedger:v.artifactLedger})}}catch(B){let nt=B instanceof Error?B:new Error(String(B));v.messages.pop(),console.log(we.red(`
531
+ [Error] ${nt.message}`))}continue}else ke===$&&console.log(we.dim(`
532
+ [No changes made, continuing...]`))}let _=rR(w.permissionMode,w),O=await oR(Y,_);if(!De)break;let j=O.trim();if(!j)continue;hr(v);let te=_s(j);if(te){let ke=await Ls(te,v,Pt,w);await ee(ke,j);continue}let Le=await _y(j);if(j.startsWith("!")&&Vc(Le))continue;let at=zc(Le,me.context?.executionCwd??process.cwd());for(let ke of at.warnings)console.log(we.yellow(`
533
+ ${ke}`));v.messages.push({role:"user",content:at.messageContent}),$=j,q?.update({messageCount:v.messages.length});try{let ke=await aR(me,v,Le,v.messages,at.inputArtifacts);if(v.messages=ke.messages,v.contextTokenSnapshot=ke.contextTokenSnapshot,v.artifactLedger=Fa(v.artifactLedger??[],ke.artifactLedger??tp(ke.messages)),q?.update({messageCount:v.messages.length}),v.messages.length>0){let Be=al(v.messages);v.title=Be,await r.save(v.sessionId,{messages:v.messages,title:Be,gitRoot:v.gitRoot??"",runtimeInfo:v.runtimeInfo,artifactLedger:v.artifactLedger})}}catch(ke){let Be=ke instanceof Error?ke:new Error(String(ke));v.messages.pop(),Be.message.includes("rate limit")||Be.message.includes("Rate limit")?(console.log(we.yellow(`
534
+ [Rate Limit] ${Be.message}`)),console.log(we.dim(`Suggestion: Wait a moment and try again, or switch provider with /mode
535
+ `))):Be.message.includes("API key")||Be.message.includes("not configured")?(console.log(we.red(`
536
+ [Configuration Error] ${Be.message}`)),console.log(we.dim(`Suggestion: Set the required API key environment variable
537
+ `))):Be.message.includes("network")||Be.message.includes("ECONNREFUSED")||Be.message.includes("ETIMEDOUT")?(console.log(we.red(`
538
+ [Network Error] ${Be.message}`)),console.log(we.dim(`Suggestion: Check your internet connection and try again
539
+ `))):Be.message.includes("token")||Be.message.includes("context too long")?(console.log(we.yellow(`
540
+ [Context Error] ${Be.message}`)),console.log(we.dim(`Suggestion: Use /clear to start a fresh conversation
541
+ `))):(console.log(we.red(`
542
+ [Error] ${Be.message}`)),console.log(we.dim(`Your message was not sent. Please try again.
543
+ `)))}}}i(cF,"runInteractiveMode");async function _y(e){let t=e.match(/@[\w./-]+/g);if(t)for(let n of t){let r=n.slice(1)}if(e.startsWith("!")){let n=e.slice(1).trim();return Cf(n,{cwd:process.cwd()})}return e}i(_y,"processSpecialSyntax");async function aR(e,t,n,r=t.messages,o){let s={...e.events??{},getCostReport:Ay};return Ua({...e,events:s,session:{...e.session,initialMessages:r},context:{...e.context,contextTokenSnapshot:t.contextTokenSnapshot,taskSurface:"repl",...o&&o.length>0?{inputArtifacts:[...o]}:{}}},n)}i(aR,"runAgentRound");function al(e){return ks(e)}i(al,"extractTitle");import em from"node:fs";import lF from"node:path";function uF(){let e=nm();return rm(e).map(n=>tm(n))}i(uF,"listCustomProviders");function dF(e){if(typeof e!="string"||e.length===0)return;let t=rm(nm()).find(n=>n.name===e);return t?tm(t):void 0}i(dF,"getCustomProviderConfig");function fF(e){cw(e);let t=tm(e),n=nm(),r=rm(n),o=r.findIndex(a=>a.name===t.name),s=o>=0?r.map((a,c)=>c===o?t:a):[...r,t];return uR({...n,customProviders:s}),Zm(s),tm(t)}i(fF,"upsertCustomProvider");function mF(e){if(typeof e!="string"||e.length===0)return!1;let t=nm(),n=rm(t),r=n.filter(o=>o.name!==e);return r.length===n.length?!1:(uR({...t,customProviders:r}),Zm(r),!0)}i(mF,"removeCustomProvider");function lR(){return kn("config.json")}i(lR,"configFilePath");function nm(){let e=lR();if(!em.existsSync(e))return{};try{let t=JSON.parse(em.readFileSync(e,"utf-8"));return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}i(nm,"readWholeConfig");function uR(e){let t=lR();em.mkdirSync(lF.dirname(t),{recursive:!0}),em.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}i(uR,"writeWholeConfig");function rm(e){let t=e.customProviders;return Array.isArray(t)?t:[]}i(rm,"extractCustomProviders");function tm(e){return structuredClone(e)}i(tm,"cloneCustomProvider");import om from"node:fs";import pF from"node:path";function hF(){let e=im();return wF(sm(e))}i(hF,"listMcpServers");function gF(e){if(typeof e!="string"||e.length===0)return;let n=sm(im())[e];return n?Ly(n):void 0}i(gF,"getMcpServerConfig");function yF(e,t){if(typeof e!="string"||e.length===0)throw new TypeError("upsertMcpServer: name must be a non-empty string");dR(e,t);let n=Ly(t),r=im(),s={...sm(r),[e]:n};return mR({...r,mcpServers:s}),Ly(n)}i(yF,"upsertMcpServer");function xF(e){if(typeof e!="string"||e.length===0)return!1;let t=im(),n=sm(t);if(!(e in n))return!1;let r={};for(let o of Object.keys(n))o!==e&&(r[o]=n[o]);return mR({...t,mcpServers:r}),!0}i(xF,"removeMcpServer");function dR(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(dR,"validateMcpServerConfig");function fR(){return kn("config.json")}i(fR,"configFilePath");function im(){let e=fR();if(!om.existsSync(e))return{};try{let t=JSON.parse(om.readFileSync(e,"utf-8"));return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}i(im,"readWholeConfig");function mR(e){let t=fR();om.mkdirSync(pF.dirname(t),{recursive:!0}),om.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}i(mR,"writeWholeConfig");function sm(e){let t=e.mcpServers;return!t||typeof t!="object"||Array.isArray(t)?{}:t}i(sm,"extractMcpServers");function Ly(e){return structuredClone(e)}i(Ly,"cloneMcpServerConfig");function wF(e){return structuredClone(e)}i(wF,"cloneMcpServers");import Je from"fs/promises";import Jn from"fs";import Ne from"path";import ER from"chalk";import Py from"path";import{createHash as SF}from"crypto";var cl="_unknown",pR=80;function TF(e){return process.platform==="win32"||process.platform==="darwin"?e.toLowerCase():e}i(TF,"caseFold");function CF(e){return TF(Py.resolve(e).replace(/\\/g,"/"))}i(CF,"normalizeRoot");function hR(e){return SF("sha256").update(e).digest("hex").slice(0,10)}i(hR,"shortHash");function bF(e){let t=e.replace(/[^a-z0-9]+/gi,"-").replace(/^-+|-+$/g,"");return t.length>pR?t.slice(t.length-pR):t}i(bF,"slugify");function sa(e){if(!e||!e.trim())return{key:cl,canonicalRoot:null,displayName:cl};let t=CF(e),n=bF(t),r=n?`${n}-${hR(t)}`:hR(t),o=Py.basename(Py.resolve(e).replace(/\\/g,"/"))||e;return{key:r,canonicalRoot:t,displayName:o}}i(sa,"deriveProjectKeyFromRoot");function aa(e){let t=ri({gitRoot:e.gitRoot??"",runtimeInfo:e.runtimeInfo}),n=t?.canonicalRepoRoot??t?.executionCwd??(e.gitRoot&&e.gitRoot.trim()?e.gitRoot:void 0);return sa(n)}i(aa,"deriveProjectKeyFromData");import yt from"fs/promises";import yR from"fs";import Ft from"path";var vF=2,IF=300*1e3,gR=65536,$y=i(e=>Ft.join(e,".layout.json"),"layoutMarkerPath"),Dy=i(e=>Ft.join(e,".migration-lock"),"lockDirPath"),xR=i(e=>Ft.join(Dy(e),"owner.json"),"ownerPath"),Oy=i(e=>Ft.join(e,".migration-journal.jsonl"),"journalPath"),wR=i(e=>Ft.join(Ft.dirname(e),"sessions-archive"),"sessionsArchiveDir");function SR(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")}i(SR,"isSessionFile");function TR(e){return e.endsWith(".archive.jsonl")||e.endsWith(".islands.jsonl")?e.slice(0,-14):null}i(TR,"sidecarId");async function kF(e){let t;try{t=await yt.open(e,"r");let n=Buffer.allocUnsafe(gR),{bytesRead:r}=await t.read(n,0,gR,0);if(r===0)return null;let o=n.toString("utf8",0,r),s=o.indexOf(`
544
+ `),a=(s>=0?o.slice(0,s):o).trim();if(!a)return null;let c=JSON.parse(a);if(c&&typeof c=="object"&&c._type==="meta"){let l=c;return{gitRoot:typeof l.gitRoot=="string"?l.gitRoot:void 0,runtimeInfo:l.runtimeInfo}}return null}catch{return null}finally{await t?.close()}}i(kF,"readMeta");async function RF(e){let t=await kF(e);return t?aa({gitRoot:t.gitRoot,runtimeInfo:t.runtimeInfo}).key:cl}i(RF,"destKeyFor");async function CR(e){let t=[],n=i(async(r,o)=>{let s=[];try{s=await yt.readdir(r,{withFileTypes:!0})}catch{return}for(let a of s)!a.isFile()||a.name.startsWith(".")||(SR(a.name)||o&&TR(a.name)!==null)&&t.push(Ft.join(r,a.name))},"pushDir");return await n(e,!0),await n(wR(e),!0),t}i(CR,"collectFlatSources");async function EF(e){let t=await CR(e),n=t.filter(s=>SR(Ft.basename(s))),r=new Set(n.map(s=>Ft.basename(s,".jsonl"))),o=[];for(let s of n){let a=Ft.basename(s,".jsonl"),c=await RF(s);o.push({from:s,to:Ft.join(e,c,`${a}.jsonl`),reason:`session\u2192${c}`});for(let l of[".archive.jsonl",".islands.jsonl"]){let u=Ft.join(Ft.dirname(s),`${a}${l}`);yR.existsSync(u)&&o.push({from:u,to:Ft.join(e,c,`${a}.islands.jsonl`),reason:"sidecar\u2192islands"})}}for(let s of t){let a=TR(Ft.basename(s));a===null||r.has(a)||o.push({from:s,to:Ft.join(e,cl,"orphan-islands",`${a}.islands.jsonl`),reason:"orphan-sidecar\u2192_unknown"})}return o}i(EF,"planMigration");async function bR(e){try{return await yt.access($y(e)),!0}catch{return!1}}i(bR,"isMigrated");async function MF(e){return await bR(e)?!1:(await CR(e)).length>0}i(MF,"needsMigration");async function AF(e){try{let t=JSON.parse(await yt.readFile(xR(e),"utf8"));if(typeof t.pid=="number"&&t.pid!==process.pid)try{process.kill(t.pid,0)}catch(n){if(n.code==="ESRCH")return!0}return typeof t.heartbeatAt=="number"&&Date.now()-t.heartbeatAt>IF}catch{return!0}}i(AF,"lockIsStale");async function _F(e){let t=Dy(e);for(let n=0;n<2;n+=1)try{return await yt.mkdir(t),await yt.writeFile(xR(e),JSON.stringify({pid:process.pid,startTime:Date.now(),heartbeatAt:Date.now()})),!0}catch(r){if(r.code!=="EEXIST")return!1;if(n===0&&await AF(e)){await yt.rm(t,{recursive:!0,force:!0}).catch(()=>{});continue}return!1}return!1}i(_F,"acquireLock");async function LF(e){await yt.rm(Dy(e),{recursive:!0,force:!0}).catch(()=>{})}i(LF,"releaseLock");async function PF(e){let t=new Set;try{let n=await yt.readFile(Oy(e),"utf8");for(let r of n.split(`
545
+ `))if(r.trim())try{let o=JSON.parse(r);o.done&&typeof o.from=="string"&&t.add(o.from)}catch{}}catch{}return t}i(PF,"readJournalDone");async function $F(e){if(await yt.mkdir(Ft.dirname(e.to),{recursive:!0}),yR.existsSync(e.to)){await yt.unlink(e.from).catch(()=>{});return}try{await yt.rename(e.from,e.to)}catch(t){let n=t.code;if(n==="EXDEV")await yt.copyFile(e.from,e.to),await yt.unlink(e.from).catch(()=>{});else if(n!=="ENOENT")throw t}}i($F,"executeMove");async function vR(e){await yt.mkdir(e,{recursive:!0});let t=`${$y(e)}.${process.pid}.tmp`,n=JSON.stringify({version:vF,migratedAt:new Date().toISOString(),from:"flat-v1"});await yt.writeFile(t,n+`
546
+ `,"utf8"),await yt.rename(t,$y(e))}i(vR,"writeMarker");async function OF(e){let t=wR(e);try{(await yt.readdir(t)).length===0&&await yt.rmdir(t).catch(()=>{})}catch{}}i(OF,"retireSessionsArchive");async function DF(e){if(!await _F(e))return{moved:0,planned:0};try{let t=await EF(e),n=await PF(e),r=await yt.open(Oy(e),"a"),o=0;try{for(let s of t)n.has(s.from)||(await $F(s),await r.write(JSON.stringify({from:s.from,to:s.to,done:!0})+`
547
+ `),o+=1)}finally{await r.close()}return await OF(e),await vR(e),await yt.rm(Oy(e),{force:!0}).catch(()=>{}),{moved:o,planned:t.length}}finally{await LF(e)}}i(DF,"runMigration");async function ll(e){try{if(await bR(e))return;if(!await MF(e)){await vR(e).catch(()=>{});return}await DF(e)}catch{}}i(ll,"ensureLayoutMigrated");var NF=new Set(["user","assistant","system"]);function kt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}i(kt,"isRecord");function yi(e){if(e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return!0;if(Array.isArray(e))return e.every(yi);if(!kt(e))return!1;let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null?!1:Object.values(e).every(yi)}i(yi,"isKodaXJsonValue");function IR(e){return kt(e)&&typeof e.id=="string"&&typeof e.extensionId=="string"&&typeof e.type=="string"&&typeof e.ts=="number"&&(e.data===void 0||yi(e.data))&&(e.dedupeKey===void 0||typeof e.dedupeKey=="string")}i(IR,"isKodaXExtensionSessionRecord");function kR(e){return kt(e)?Object.values(e).every(t=>kt(t)?Object.values(t).every(yi):!1):!1}i(kR,"isKodaXExtensionSessionState");function BF(e){if(!kt(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"&&kt(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(BF,"isKodaXContentBlock");function Ny(e){return!kt(e)||typeof e.role!="string"||!NF.has(e.role)?!1:typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(BF)}i(Ny,"isKodaXMessage");function RR(e){return kt(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(RR,"isSessionErrorMetadata");function HF(e){return kt(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(HF,"isKodaXSessionUiHistoryItem");function By(e){return Array.isArray(e)&&e.every(HF)}i(By,"isKodaXSessionUiHistory");function FF(e){return!kt(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||By(e.uiHistory))&&(e.scope===void 0||typeof e.scope=="string")}i(FF,"isPersistedMetaUpdateLine");function MR(e,t){t!==0&&process.stderr.write(`[KodaX] Skipped ${t} malformed session record(s) from ${Ne.basename(e)}.
548
+ `)}i(MR,"warnMalformedSessionData");function Gr(e){process.stderr.write(`${e}
549
+ `)}i(Gr,"writeStorageNotice");function AR(e){return{_type:"extension_record",...e}}i(AR,"toExtensionRecordLine");function _R(e){return{_type:"lineage_entry",entry:e}}i(_R,"toLineageEntryLine");function LR(e){return{_type:"artifact_ledger_entry",entry:e}}i(LR,"toArtifactLedgerLine");function WF(e){return kt(e)&&e._type==="extension_record"&&IR(e)}i(WF,"isPersistedExtensionRecordLine");function UF(e){return kt(e)&&typeof e.id=="string"&&(e.parentId===null||typeof e.parentId=="string")&&typeof e.timestamp=="string"&&typeof e.type=="string"}i(UF,"hasEntryBase");function jF(e){if(!UF(e))return!1;let t=e;switch(t.type){case"message":return Ny(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||yi(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(jF,"isKodaXSessionEntry");function GF(e){return kt(e)&&e._type==="lineage_entry"&&jF(e.entry)}i(GF,"isPersistedLineageEntryLine");function KF(e){return kt(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||yi(e.metadata))}i(KF,"isKodaXSessionArtifactLedgerEntry");function VF(e){return kt(e)&&e._type==="artifact_ledger_entry"&&KF(e.entry)}i(VF,"isPersistedArtifactLedgerLine");function NR(e){return kt(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(NR,"isKodaXSessionRuntimeInfo");function PR(e,t){return process.platform==="win32"||process.platform==="darwin"?e.toLowerCase()===t.toLowerCase():e===t}i(PR,"pathsEqual");function zF(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(zF,"getLastNavigableEntryId");function XF(e){if(e.lineageEntries.length>0)return{version:2,activeEntryId:e.meta?.activeEntryId??zF(e.lineageEntries),entries:e.lineageEntries};if(e.legacyMessages.length!==0)return En(e.legacyMessages)}i(XF,"buildLineage");function $R(e){return typeof e=="string"?`t:${e}`:`j:${JSON.stringify(e)}`}i($R,"serializeMessageContentForCompare");function YF(e,t){return e===t?!0:e.role===t.role&&$R(e.content)===$R(t.content)}i(YF,"sameMessageByContent");function qF(e,t){if(e.lineage)return e.lineage;if(t){let n=At(t),r=e.messages;if(r.length<=n.length&&r.every((s,a)=>YF(s,n[a])))return t}return En(e.messages,t)}i(qF,"resolveSnapshotLineage");function JF(e){let t=XF(e);return{createdAt:e.meta?.createdAt,data:{messages:t?At(t):[...e.legacyMessages],title:e.meta?.title??"",gitRoot:e.meta?.gitRoot??"",runtimeInfo:NR(e.meta?.runtimeInfo)?{...e.meta.runtimeInfo}:void 0,scope:e.meta?.scope??"user",uiHistory:By(e.meta?.uiHistory)?e.meta.uiHistory.map(n=>({...n})):void 0,errorMetadata:RR(e.meta?.errorMetadata)?{...e.meta.errorMetadata}:void 0,extensionState:kR(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(JF,"buildSessionData");function QF(e,t,n,r){return{_type:"meta",title:t.title,id:e,gitRoot:t.gitRoot,runtimeInfo:t.runtimeInfo?{...t.runtimeInfo}:void 0,createdAt:r??new Date().toISOString(),scope:t.scope??"user",uiHistory:t.uiHistory,errorMetadata:t.errorMetadata,extensionState:t.extensionState,extensionRecordCount:t.extensionRecords?.length??0,artifactLedgerCount:t.artifactLedger?.length??0,lineageVersion:n?.version,activeEntryId:n?.activeEntryId,lineageEntryCount:n?.entries.length??0,activeMessageCount:n?Fo(n):t.messages.length}}i(QF,"createSessionMeta");async function ZF(e){let t;try{t=await Je.readFile(e,"utf-8")}catch(s){if(s?.code==="ENOENT")return null;throw s}let n=t.trim();if(!n)return null;let r={legacyMessages:[],lineageEntries:[],artifactLedger:[],extensionRecords:[],malformedCount:0},o=n.split(`
550
+ `);for(let s=0;s<o.length;s+=1)try{let a=JSON.parse(o[s]);if(s===0&&kt(a)&&a._type==="meta"){r.meta=a;continue}if(FF(a)){r.meta&&(a.title!==void 0&&(r.meta.title=a.title),a.activeEntryId!==void 0&&(r.meta.activeEntryId=a.activeEntryId),a.activeMessageCount!==void 0&&(r.meta.activeMessageCount=a.activeMessageCount),a.uiHistory!==void 0&&(r.meta.uiHistory=a.uiHistory),a.scope!==void 0&&(r.meta.scope=a.scope));continue}if(GF(a)){r.lineageEntries.push(a.entry);continue}if(VF(a)){r.artifactLedger.push(a.entry);continue}if(WF(a)){r.extensionRecords.push({id:a.id,extensionId:a.extensionId,type:a.type,ts:a.ts,data:a.data,dedupeKey:a.dedupeKey});continue}if(Ny(a)){r.legacyMessages.push(a);continue}r.malformedCount+=1}catch{r.malformedCount+=1}return r}i(ZF,"readPersistedSessionFile");var OR=65536;async function eW(e){let t;try{t=await Je.open(e,"r");let n=Buffer.allocUnsafe(OR),{bytesRead:r}=await t.read(n,0,OR,0);if(r===0)return null;let o=n.toString("utf8",0,r),s=o.indexOf(`
551
+ `);if(s>=0)return o.slice(0,s).trim();let a=await Je.readFile(e,"utf-8"),c=a.indexOf(`
552
+ `);return(c>=0?a.slice(0,c):a).trim()}catch{return null}finally{await t?.close()}}i(eW,"readSessionFirstLine");async function DR(e){try{let t=(await Je.readFile(e,"utf-8")).trim();return t?t.split(`
553
+ `).length:0}catch{return 0}}i(DR,"countSessionLines");var Co=class{static{i(this,"FileSessionStorage")}sessionsDir;hostCwd;emitMismatchWarnings;constructor(t){this.sessionsDir=t?.sessionsDir??ja,this.hostCwd=t?.cwd,this.emitMismatchWarnings=t?.emitMismatchWarnings??!1}writeQueues=new Map;serializedWrite(t,n){let o=(this.writeQueues.get(t)??Promise.resolve()).then(n,()=>n());return this.writeQueues.set(t,o),o}appendState=new Map;sessionDirCache=new Map;projectJsonWritten=new Set;migrationPromise;ensureMigrated(){return this.migrationPromise||(this.migrationPromise=ll(this.sessionsDir)),this.migrationPromise}syncAppendState(t,n,r){let o=this.appendState.get(t);this.appendState.set(t,{lineageCount:n.lineage?.entries.length??o?.lineageCount??0,artifactCount:n.artifactLedger?.length??o?.artifactCount??0,extensionCount:n.extensionRecords?.length??o?.extensionCount??0,metaUpdateCount:r??o?.metaUpdateCount??0})}legacyFlatPath(t){return Ne.join(this.sessionsDir,`${t}.jsonl`)}legacyFlatArchivePath(t){return Ne.join(this.sessionsDir,`${t}.archive.jsonl`)}projectDir(t){return Ne.join(this.sessionsDir,t)}resolveWriteDir(t,n){let r=this.sessionDirCache.get(t);if(r)return r;let o=aa(n),s=this.projectDir(o.key);return this.sessionDirCache.set(t,s),s}writeFilePath(t,n){return Ne.join(this.resolveWriteDir(t,n),`${t}.jsonl`)}async resolveSessionLocation(t){let n=this.sessionDirCache.get(t);if(n){let s=Ne.join(n,`${t}.jsonl`);if(Jn.existsSync(s))return s;let a=Ne.join(n,"archived",`${t}.jsonl`);if(Jn.existsSync(a))return a}let r=[],o=[];try{o=await Je.readdir(this.sessionsDir,{withFileTypes:!0})}catch{o=[]}for(let s of o){if(!s.isDirectory()||s.name.startsWith("."))continue;let a=Ne.join(this.sessionsDir,s.name,`${t}.jsonl`);Jn.existsSync(a)&&r.push(a);let c=Ne.join(this.sessionsDir,s.name,"archived",`${t}.jsonl`);Jn.existsSync(c)&&r.push(c)}if(r.length===0){let s=this.legacyFlatPath(t);return Jn.existsSync(s)?s:null}if(r.length===1){let s=Ne.dirname(r[0]),a=Ne.basename(s)==="archived"?Ne.dirname(s):s;return this.sessionDirCache.set(t,a),r[0]}if(this.hostCwd){let s=this.projectDir(sa(this.hostCwd).key),a=r.find(c=>Ne.dirname(c)===s);if(a)return a}return Gr(`[KodaX] Ambiguous session id ${t} found in ${r.length} projects; ${this.hostCwd?"no current-project match \u2014 ":""}returning the first match. Specify projectKey to disambiguate.`),r[0]}async readSession(t){await this.ensureMigrated();let n=await this.resolveSessionLocation(t);if(!n)return null;let r=await ZF(n);return r?(MR(n,r.malformedCount),JF(r)):null}async ensureProjectJson(t,n){if(n.canonicalRoot===null||this.projectJsonWritten.has(t))return;this.projectJsonWritten.add(t);let r=Ne.join(t,"project.json");try{let o=JSON.stringify({canonicalRoot:n.canonicalRoot,displayName:n.displayName,lastUsed:new Date().toISOString()});await Je.writeFile(r,o+`
554
+ `,"utf-8")}catch{}}async writeSessionInternal(t,n,r){let o=this.resolveWriteDir(t,n);await Je.mkdir(o,{recursive:!0});let s=Ne.join(o,`${t}.jsonl`),a=`${s}.${process.pid}.${Date.now()}.tmp`,c=n.lineage??En(n.messages),l=QF(t,n,c,r);try{let u=await Je.open(a,"w");try{await u.write(JSON.stringify(l)+`
555
+ `);for(let p of c.entries)await u.write(JSON.stringify(_R(p))+`
556
+ `);for(let p of n.artifactLedger??[])await u.write(JSON.stringify(LR(p))+`
557
+ `);for(let p of n.extensionRecords??[])await u.write(JSON.stringify(AR(p))+`
558
+ `)}finally{await u.close()}await Je.rename(a,s),await this.ensureProjectJson(o,aa(n));let m=this.legacyFlatPath(t);if(m!==s&&Jn.existsSync(m)){await Je.unlink(m).catch(()=>{});let p=this.legacyFlatArchivePath(t);Jn.existsSync(p)&&await Je.rename(p,Ne.join(o,`${t}.islands.jsonl`)).catch(()=>{})}}finally{Jn.existsSync(a)&&await Je.unlink(a).catch(()=>{})}}async mergeAndWriteInternal(t,n){let r=await this.readSession(t),o={...n,scope:n.scope??r?.data.scope??"user",uiHistory:n.uiHistory??r?.data.uiHistory,extensionState:n.extensionState??r?.data.extensionState,artifactLedger:n.artifactLedger??r?.data.artifactLedger,extensionRecords:n.extensionRecords??r?.data.extensionRecords,runtimeInfo:n.runtimeInfo??r?.data.runtimeInfo,errorMetadata:n.errorMetadata??r?.data.errorMetadata,lineage:qF(n,r?.data.lineage)};await this.writeSessionInternal(t,o,r?.createdAt),this.syncAppendState(t,o)}async appendSessionDelta(t,n){await this.ensureMigrated();let r=this.writeFilePath(t,n);if(!Jn.existsSync(r)||!n.lineage){await this.save(t,n);return}await this.serializedWrite(t,async()=>{let s=this.appendState.get(t);if(!s){await this.mergeAndWriteInternal(t,n);return}if(n.lineage.entries.length<s.lineageCount||(n.artifactLedger?.length??0)<s.artifactCount){await this.mergeAndWriteInternal(t,n);return}let a=n.lineage.entries.slice(s.lineageCount),c=(n.artifactLedger??[]).slice(s.artifactCount),l=(n.extensionRecords??[]).slice(s.extensionCount),u=[];for(let p of a)u.push(JSON.stringify(_R(p)));for(let p of c)u.push(JSON.stringify(LR(p)));for(let p of l)u.push(JSON.stringify(AR(p)));let m={_type:"meta_update",title:n.title,activeEntryId:n.lineage.activeEntryId,activeMessageCount:Fo(n.lineage),...n.uiHistory!==void 0?{uiHistory:n.uiHistory}:{},...n.scope!==void 0?{scope:n.scope}:{}};u.push(JSON.stringify(m)),u.length>0&&await Je.appendFile(r,`
559
+ `+u.join(`
560
+ `),"utf-8"),this.syncAppendState(t,n,s.metaUpdateCount+1)});let o=this.appendState.get(t);o&&this.shouldRunMaintenance(o)&&this.runMaintenance(t).catch(s=>{process.stderr.write(`[KodaX] Archive maintenance failed: ${String(s)}
561
+ `)})}shouldRunMaintenance(t){return t.metaUpdateCount>=50||t.lineageCount>500}async runMaintenance(t){await this.serializedWrite(t,async()=>{let n=await this.readSession(t);if(!n?.data.lineage)return;let{slimmedLineage:r,archivedEntries:o,archiveBatchId:s}=bw(n.data.lineage);if(o.length===0){await this.writeSessionInternal(t,n.data,n.createdAt),this.syncAppendState(t,n.data,0);return}let a=this.resolveWriteDir(t,n.data);await Je.mkdir(a,{recursive:!0});let c=Ne.join(a,`${t}.islands.jsonl`),l=await Je.open(c,"a");try{await l.write(JSON.stringify({_type:"archive_batch",archiveBatchId:s,sessionId:t,archivedAt:new Date().toISOString(),entryCount:o.length})+`
562
+ `);for(let m of o)await l.write(JSON.stringify({_type:"archived_entry",archiveBatchId:s,entry:m})+`
563
+ `)}finally{await l.close()}let u={...n.data,lineage:r};await this.writeSessionInternal(t,u,n.createdAt),this.syncAppendState(t,u,0)})}async save(t,n){await this.serializedWrite(t,async()=>{await this.mergeAndWriteInternal(t,n)})}async load(t){let n=await this.readSession(t);if(!n)return null;this.syncAppendState(t,n.data);let{data:r,createdAt:o}=n,s=this.legacyFlatPath(t);if(this.emitMismatchWarnings){let a=await Uo(this.hostCwd),c=await Ms({cwd:this.hostCwd}),l=ri(r);(c.canonicalRepoRoot&&l?.canonicalRepoRoot&&!Rd(c,l)||a&&r.gitRoot&&a!==r.gitRoot&&!Rd(c,{canonicalRepoRoot:r.gitRoot}))&&(Gr(ER.yellow(`
564
+ [Warning] Session project mismatch:`)),c.workspaceRoot&&Gr(` Current workspace: ${c.workspaceRoot}`),l?.workspaceRoot&&Gr(` Session workspace: ${l.workspaceRoot}`),c.canonicalRepoRoot&&Gr(` Current repo: ${c.canonicalRepoRoot}`),l?.canonicalRepoRoot?Gr(` Session repo: ${l.canonicalRepoRoot}`):r.gitRoot&&Gr(` Session repo: ${r.gitRoot}`),Gr(` Continuing anyway...
565
+ `))}if(r.errorMetadata?.consecutiveErrors&&r.errorMetadata.consecutiveErrors>0){let a=fw(r.messages);if(a!==r.messages){Gr(ER.cyan("[Session Recovery] Cleaned incomplete tool calls from previous session"));let c={...r,messages:a,errorMetadata:{...r.errorMetadata,consecutiveErrors:0},lineage:En(a,r.lineage)};return await this.serializedWrite(t,async()=>{await this.writeSessionInternal(t,c,o),this.syncAppendState(t,c)}),c}}return MR(s,0),r}async getLineage(t){return(await this.readSession(t))?.data.lineage??null}async setActiveEntry(t,n,r){let o=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=zi(s.data.lineage,n,r);if(!a)return;let c={...s.data,messages:At(a),lineage:a};await this.writeSessionInternal(t,c,s.createdAt),this.syncAppendState(t,c),o=c}),o}async rewind(t,n){let r=null;return await this.serializedWrite(t,async()=>{let o=await this.readSession(t);if(!o?.data.lineage)return;let s=n??Yi(o.data.lineage);if(!s)return;let a=qi(o.data.lineage,s);if(!a)return;let c={...o.data,messages:At(a),lineage:a};await this.writeSessionInternal(t,c,o.createdAt),this.syncAppendState(t,c),r=c}),r}async setLabel(t,n,r){let o=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=Xi(s.data.lineage,n,r);if(!a)return;let c={...s.data,lineage:a};await this.writeSessionInternal(t,c,s.createdAt),this.syncAppendState(t,c),o=c}),o}async fork(t,n,r){let o=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=Ji(s.data.lineage,n);if(!a)return;let c=r?.sessionId??await Vi(),l={messages:At(a),title:r?.title??s.data.title,gitRoot:s.data.gitRoot,uiHistory:s.data.uiHistory?s.data.uiHistory.map(u=>({...u})):void 0,extensionState:s.data.extensionState?structuredClone(s.data.extensionState):void 0,artifactLedger:s.data.artifactLedger?structuredClone(s.data.artifactLedger):void 0,extensionRecords:s.data.extensionRecords?structuredClone(s.data.extensionRecords):void 0,lineage:a};await this.writeSessionInternal(c,l),o={sessionId:c,data:l}}),o}async list(t,n){await this.ensureMigrated(),await Je.mkdir(this.sessionsDir,{recursive:!0});let r=t??(this.hostCwd?await Uo(this.hostCwd):null),o=await Ms({cwd:r??this.hostCwd??process.cwd()}),s=await Je.readdir(this.sessionsDir,{withFileTypes:!0}),a=[],c=aa({gitRoot:r??void 0,runtimeInfo:o}).key,l=i(x=>x.endsWith(".archive.jsonl")||x.endsWith(".islands.jsonl"),"isSidecar"),u=r?[c]:s.filter(x=>x.isDirectory()&&!x.name.startsWith(".")).map(x=>x.name);for(let x of u){let w=[];try{w=await Je.readdir(this.projectDir(x))}catch{continue}for(let T of w)T.endsWith(".jsonl")&&!l(T)&&a.push({path:Ne.join(this.projectDir(x),T),trusted:!!r,archived:!1});if(n?.includeArchived){let T=[];try{T=await Je.readdir(Ne.join(this.projectDir(x),"archived"))}catch{T=[]}for(let I of T)I.endsWith(".jsonl")&&!l(I)&&a.push({path:Ne.join(this.projectDir(x),"archived",I),trusted:!!r,archived:!0})}}for(let x of s)x.isFile()&&x.name.endsWith(".jsonl")&&!l(x.name)&&!x.name.startsWith("archived-")&&!x.name.startsWith(".")&&a.push({path:Ne.join(this.sessionsDir,x.name),trusted:!1,archived:!1});let m=[],p=i(async(x,w,T)=>{try{let I=await eW(x);if(!I)return null;let A=JSON.parse(I);if(kt(A)&&A._type==="meta"){let F=typeof A.gitRoot=="string"?A.gitRoot:"",D=NR(A.runtimeInfo)?A.runtimeInfo:void 0,v=A.scope==="managed-task-worker"?"managed-task-worker":"user";if(r&&!w){let se=Rd(o,D),ge=D?.workspaceRoot?PR(D.workspaceRoot,o.workspaceRoot??""):PR(F,r);if(!se&&!ge)return null}if(v!=="user")return null;let z=typeof A.extensionRecordCount=="number"&&A.extensionRecordCount>0?A.extensionRecordCount:0,fe=typeof A.activeMessageCount=="number"&&A.activeMessageCount>=0?A.activeMessageCount:Math.max(0,await DR(x)-1-z);return{id:Ne.basename(x,".jsonl"),title:typeof A.title=="string"?A.title:"",msgCount:fe,createdAt:typeof A.createdAt=="string"?A.createdAt:void 0,runtimeInfo:D?{...D}:F?{canonicalRepoRoot:F}:void 0,...T?{archived:!0}:{}}}let $=await DR(x);return{id:Ne.basename(x,".jsonl"),title:"",msgCount:$,...T?{archived:!0}:{}}}catch{return null}},"parseSessionFile"),h=48,g=new Set;for(let x=0;x<a.length;x+=h){let w=await Promise.all(a.slice(x,x+h).map(T=>p(T.path,T.trusted,T.archived)));for(let T of w)T&&!g.has(T.id)&&(g.add(T.id),m.push(T))}let y=n?.limit??10;return m.sort((x,w)=>{let T=x.createdAt?Date.parse(x.createdAt):Number.NaN,I=w.createdAt?Date.parse(w.createdAt):Number.NaN;return Number.isFinite(T)&&Number.isFinite(I)&&T!==I?I-T:Number.isFinite(I)&&!Number.isFinite(T)?1:Number.isFinite(T)&&!Number.isFinite(I)?-1:w.id.localeCompare(x.id)}).slice(0,y).map(({id:x,title:w,msgCount:T,runtimeInfo:I,createdAt:A,archived:$})=>({id:x,title:w,msgCount:T,...I?{runtimeInfo:I}:{},...A!==void 0?{createdAt:A}:{},...$?{archived:!0}:{}}))}async archive(t){await this.ensureMigrated();let n=!1;return await this.serializedWrite(t,async()=>{let r=await this.resolveSessionLocation(t);if(!r)return;let o=Ne.dirname(r);if(Ne.basename(o)==="archived"){n=!0;return}await this.movePair(t,o,Ne.join(o,"archived")),this.sessionDirCache.delete(t),n=!0}),n}async unarchive(t){await this.ensureMigrated();let n=!1;return await this.serializedWrite(t,async()=>{let r=await this.resolveSessionLocation(t);if(!r)return;let o=Ne.dirname(r);if(Ne.basename(o)!=="archived"){n=!0;return}await this.movePair(t,o,Ne.dirname(o)),this.sessionDirCache.delete(t),n=!0}),n}async movePair(t,n,r){await Je.mkdir(r,{recursive:!0});for(let o of[`${t}.jsonl`,`${t}.islands.jsonl`]){let s=Ne.join(n,o);if(Jn.existsSync(s))try{await Je.rename(s,Ne.join(r,o))}catch(a){if(a.code!=="ENOENT")throw a}}}async delete(t){await this.ensureMigrated();let n=await this.resolveSessionLocation(t),r=new Set;n&&(r.add(n),r.add(n.replace(/\.jsonl$/,".archive.jsonl")),r.add(n.replace(/\.jsonl$/,".islands.jsonl"))),r.add(this.legacyFlatPath(t)),r.add(this.legacyFlatArchivePath(t));for(let o of r)Jn.existsSync(o)&&await Je.unlink(o).catch(()=>{});this.sessionDirCache.delete(t)}async deleteAll(t){let n=t??(this.hostCwd?await Uo(this.hostCwd):null),r=await this.list(n??void 0,{limit:Number.MAX_SAFE_INTEGER});for(let o of r)await this.delete(o.id)}async cleanupOldSessions(t){if(!Number.isFinite(t)||t<=0)return 0;await this.ensureMigrated();let n=0,r=Date.now()-t*24*60*60*1e3,o=i(async s=>{if(s.endsWith(".jsonl"))try{(await Je.stat(s)).mtimeMs<r&&(await Je.unlink(s),n++)}catch{}},"unlinkIfOld");try{await Je.mkdir(this.sessionsDir,{recursive:!0});let s=await Je.readdir(this.sessionsDir,{withFileTypes:!0});for(let a of s){let c=Ne.join(this.sessionsDir,a.name);if(a.isFile()){await o(c);continue}if(!a.isDirectory()||a.name.startsWith("."))continue;let l=[];try{l=await Je.readdir(c,{withFileTypes:!0})}catch{continue}for(let u of l){let m=Ne.join(c,u.name);if(u.isFile())await o(m);else if(u.isDirectory()&&u.name==="archived"){let p=[];try{p=await Je.readdir(m)}catch{continue}for(let h of p)await o(Ne.join(m,h))}}}}catch{}return n}};import xi from"node:fs";import ul from"node:fs/promises";import Bn from"node:path";async function tW(e,t){let n=[],r=i(s=>s.endsWith(".jsonl")&&!s.endsWith(".archive.jsonl")&&!s.endsWith(".islands.jsonl")&&!s.startsWith("."),"isSession"),o=[];try{o=await ul.readdir(e,{withFileTypes:!0})}catch{return n}for(let s of o){if(s.isFile()){r(s.name)&&(t||!s.name.startsWith("archived-"))&&n.push(Bn.join(e,s.name));continue}if(!s.isDirectory()||s.name.startsWith("."))continue;let a=Bn.join(e,s.name);try{for(let c of await ul.readdir(a))r(c)&&n.push(Bn.join(a,c))}catch{}if(t){let c=Bn.join(a,"archived");try{for(let l of await ul.readdir(c))r(l)&&n.push(Bn.join(c,l))}catch{}}}return n}i(tW,"collectSessionFilePaths");function bo(e){return e!==void 0?new Co({sessionsDir:e}):new Co}i(bo,"getStorage");function BR(e){return e??ja}i(BR,"resolveSessionsDir");async function HR(e){return FR(e,void 0)}i(HR,"listSessions");async function FR(e,t){try{let n=BR(t);await ll(n);let r=e?.projectRoot,o=bo(t);await ul.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"&&!r&&l===void 0&&!a)return(await o.list(r,{limit:c})).map(nW);let u=await tW(n,a),m=[],p=new Set;for(let h of u)try{let g=Bn.basename(h,".jsonl");if(p.has(g))continue;let y=Bn.basename(Bn.dirname(h))==="archived",x=(await ul.readFile(h,"utf-8")).trim(),w=x.split(`
566
+ `)[0];if(!w)continue;let T=JSON.parse(w);if(T===null||typeof T!="object"||T._type!=="meta")continue;let I=T,A=I.scope==="managed-task-worker"?"managed-task-worker":"user";if(s==="user"&&A!=="user"||s==="managed-task-worker"&&A!=="managed-task-worker")continue;let $=typeof I.createdAt=="string"?I.createdAt:void 0;if(l!==void 0&&$!==void 0){let L=Date.parse($);if(!Number.isNaN(L)&&L>=l)continue}let F=x.split(`
567
+ `).length,D=typeof I.extensionRecordCount=="number"&&I.extensionRecordCount>0?I.extensionRecordCount:0,v=typeof I.activeMessageCount=="number"&&I.activeMessageCount>=0?I.activeMessageCount:Math.max(0,F-1-D),z=I.runtimeInfo!==null&&typeof I.runtimeInfo=="object"?WR(I.runtimeInfo):void 0,fe=typeof I.gitRoot=="string"?I.gitRoot:void 0,se=z??(fe?{gitRoot:fe}:void 0),ge=sa(se?.gitRoot??se?.workspaceRoot).key;p.add(g),m.push({id:g,title:typeof I.title=="string"?I.title:"",msgCount:v,createdAt:$,runtimeInfo:se,projectKey:ge,...y?{archived:!0}:{},_createdAtMs:$?Date.parse($):void 0})}catch{continue}return m.sort((h,g)=>{let y=h._createdAtMs,x=g._createdAtMs;return Number.isFinite(y)&&Number.isFinite(x)&&y!==x?x-y:Number.isFinite(x)&&!Number.isFinite(y)?1:Number.isFinite(y)&&!Number.isFinite(x)?-1:g.id.localeCompare(h.id)}),m.slice(0,c).map(({id:h,title:g,msgCount:y,createdAt:x,runtimeInfo:w,projectKey:T,archived:I})=>({id:h,title:g,msgCount:y,...x!==void 0?{createdAt:x}:{},...w!==void 0?{runtimeInfo:w}:{},...T!==void 0?{projectKey:T}:{},...I?{archived:!0}:{}}))}catch{return[]}}i(FR,"listSessionsImpl");function WR(e){if(!(!e.workspaceRoot&&!e.canonicalRepoRoot))return{...e.workspaceRoot?{workspaceRoot:e.workspaceRoot}:{},...e.canonicalRepoRoot?{gitRoot:e.canonicalRepoRoot}:{}}}i(WR,"extractRuntimeInfoSummary");function nW(e){let t=e.runtimeInfo?WR(e.runtimeInfo):void 0,n=sa(t?.gitRoot??t?.workspaceRoot).key;return{id:e.id,title:e.title,msgCount:e.msgCount,...t!==void 0?{runtimeInfo:t}:{},...e.createdAt!==void 0?{createdAt:e.createdAt}:{},projectKey:n}}i(nW,"toSessionSummary");async function UR(e){return jR(e,void 0)}i(UR,"loadSession");async function jR(e,t){try{return await bo(t).load(e)}catch{return null}}i(jR,"loadSessionImpl");async function GR(e,t){return KR(e,t,void 0)}i(GR,"forkSession");async function KR(e,t,n){try{return await bo(n).fork(e,t?.selector,{sessionId:t?.sessionId,title:t?.title})}catch{return null}}i(KR,"forkSessionImpl");async function VR(e,t){return zR(e,t,void 0)}i(VR,"rewindSession");async function zR(e,t,n){try{return await bo(n).rewind(e,t?.selector)}catch{return null}}i(zR,"rewindSessionImpl");async function XR(e,t){return YR(e,t,void 0)}i(XR,"setActiveEntry");async function YR(e,t,n){try{return await bo(n).setActiveEntry(e,t)}catch{return null}}i(YR,"setActiveEntryImpl");async function am(){try{return dw({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(am,"listRunningSessions");async function qR(e){return JR(e,void 0)}i(qR,"deleteSession");async function JR(e,t){try{let r=(await am()).find(o=>o.sessionId===e);return r?{error:{code:"session_running",runningProcess:{pid:r.pid,startedAt:r.startedAt}}}:(await bo(t).delete(e),{ok:!0})}catch{return{ok:!0}}}i(JR,"deleteSessionImpl");async function QR(e){return ZR(e,void 0)}i(QR,"archiveSession");async function ZR(e,t){try{return await bo(t).archive(e)}catch{return!1}}i(ZR,"archiveSessionImpl");async function eE(e){return tE(e,void 0)}i(eE,"unarchiveSession");async function tE(e,t){try{return await bo(t).unarchive(e)}catch{return!1}}i(tE,"unarchiveSessionImpl");function nE(e){return rE(e,void 0)}i(nE,"watchSessions");function rE(e,t){let n=BR(t);return ll(n).catch(()=>{}),process.platform==="win32"?iW(e,n):rW(e,n)}i(rE,"watchSessionsImpl");function Hy(e){let t=Bn.basename(e);return!t.endsWith(".jsonl")||t.endsWith(".archive.jsonl")||t.endsWith(".islands.jsonl")||t.startsWith(".")?null:t.slice(0,-6)}i(Hy,"sessionIdFromFilename");function rW(e,t){let n=null,r=!1,o=new Map;function s(c,l){let u=o.get(l);u!==void 0&&clearTimeout(u);let m=setTimeout(()=>{o.delete(l),r||e({kind:c,sessionId:l})},100);o.set(l,m)}i(s,"emitDebounced");function a(){if(!r)try{if(!xi.existsSync(t)){setTimeout(a,1e3);return}let c=i((l,u)=>{if(!u)return;let m=typeof u=="string"?u:u.toString(),p=Hy(m);if(!p)return;let h=l==="rename"?oW(t,m):"change";s(h,p)},"onEvent");try{n=xi.watch(t,{recursive:!0},c)}catch{n=xi.watch(t,c)}n.on("error",()=>{n?.close(),n=null,r||setTimeout(a,1e3)})}catch{}}return i(a,"startWatch"),a(),{close(){r=!0,n?.close(),n=null;for(let c of o.values())clearTimeout(c);o.clear()}}}i(rW,"watchSessionsPosix");function oW(e,t){try{return xi.statSync(Bn.join(e,t)),"add"}catch{return"remove"}}i(oW,"detectRenameKind");function iW(e,t){let n=!1,r=new Set;function o(c,l){try{for(let u of xi.readdirSync(l)){let m=Hy(u);m&&c.add(m)}}catch{}}i(o,"addIds");function s(){let c=new Set;try{if(!xi.existsSync(t))return c;for(let l of xi.readdirSync(t,{withFileTypes:!0}))if(l.isFile()){let u=Hy(l.name);u&&c.add(u)}else if(l.isDirectory()&&!l.name.startsWith(".")){let u=Bn.join(t,l.name);o(c,u),o(c,Bn.join(u,"archived"))}}catch{}return c}i(s,"buildSnapshot"),r=s();let a=setInterval(()=>{if(n)return;let c=s();for(let l of c)r.has(l)||e({kind:"add",sessionId:l});for(let l of r)c.has(l)||e({kind:"remove",sessionId:l});r=c},1e3);return{close(){n=!0,clearInterval(a)}}}i(iW,"watchSessionsWindows");function sW(e){let t=e?.sessionsDir,n=t!==void 0?new Co({sessionsDir:t}):new Co;return t===void 0?{listSessions:HR,loadSession:UR,forkSession:GR,rewindSession:VR,setActiveEntry:XR,deleteSession:qR,archiveSession:QR,unarchiveSession:eE,listRunningSessions:am,watchSessions:nE,storage:n}:{listSessions:i(r=>FR(r,t),"listSessions"),loadSession:i(r=>jR(r,t),"loadSession"),forkSession:i((r,o)=>KR(r,o,t),"forkSession"),rewindSession:i((r,o)=>zR(r,o,t),"rewindSession"),setActiveEntry:i((r,o)=>YR(r,o,t),"setActiveEntry"),deleteSession:i(r=>JR(r,t),"deleteSession"),archiveSession:i(r=>ZR(r,t),"archiveSession"),unarchiveSession:i(r=>tE(r,t),"unarchiveSession"),listRunningSessions:am,watchSessions:i(r=>rE(r,t),"watchSessions"),storage:n}}i(sW,"createSessionManager");export{ts as a,ns as b,Ka as c,rs as d,Va as e,dp as f,jo as g,Go as h,os as i,Ko as j,Tu as k,Vo as l,is as m,Cu as n,bu as o,ss as p,pn as q,or as r,ir as s,XE as t,en as u,za as v,pp as w,hp as x,tn as y,gp as z,yp as A,aS as B,cS as C,re as D,CW as E,Jp as F,cL as G,od as H,lc as I,VT as J,mL as K,pL as L,gn as M,N,IK as O,zt as P,Zp as Q,th as R,id as S,nh as T,YT as U,uc as V,bs as W,Jo as X,rh as Y,lr as Z,zn as _,Xn as $,co as aa,dd as ba,ur as ca,md as da,Zo as ea,ph as fa,Dr as ga,xc as ha,ks as ia,fP as ja,Ih as ka,_s as la,Ls as ma,Nh as na,ii as oa,$d as pa,Bh as qa,Mc as ra,Fh as sa,Os as ta,u1 as ua,Dn as va,bb as wa,vb as xa,y1 as ya,x1 as za,pO as Aa,ci as Ba,gO as Ca,Fs as Da,DO as Ea,BO as Fa,HO as Ga,ig as Ha,sg as Ia,WO as Ja,cg as Ka,lg as La,cf as Ma,lf as Na,uf as Oa,dg as Pa,ff as Qa,df as Ra,mg as Sa,mf as Ta,Nc as Ua,Bc as Va,Cv as Wa,hf as Xa,hg as Ya,yg as Za,wg as _a,gf as $a,Sg as ab,yf as bb,xf as cb,vg as db,wf as eb,Wc as fb,Uc as gb,Nv as hb,hD as ib,gD as jb,Hv as kb,SD as lb,TD as mb,jc as nb,hr as ob,Kc as pb,Ks as qb,CD as rb,Cf as sb,ID as tb,kD as ub,bf as vb,Rg as wb,vf as xb,Eg as yb,by as zb,MH as Ab,_H as Bb,HH as Cb,Fk as Db,Wk as Eb,FH as Fb,UH as Gb,qf as Hb,Kk as Ib,jr as Jb,Vk as Kb,zk as Lb,Xk as Mb,KH as Nb,nl as Ob,VH as Pb,zH as Qb,cF as Rb,_y as Sb,uF as Tb,dF as Ub,fF as Vb,mF as Wb,hF as Xb,gF as Yb,yF as Zb,xF as _b,dR as $b,Co as ac,HR as bc,UR as cc,GR as dc,VR as ec,XR as fc,am as gc,qR as hc,QR as ic,eE as jc,nE as kc,sW as lc};