@kodax-ai/kodax 0.7.45 → 0.7.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +1 -1
  3. package/README_CN.md +1 -1
  4. package/dist/builtin/skill-creator/scripts/utils.js +12 -27
  5. package/dist/chunks/chunk-2GEKCIIW.js +31 -0
  6. package/dist/chunks/chunk-ARUWXX25.js +2 -0
  7. package/dist/chunks/chunk-JRT447X5.js +565 -0
  8. package/dist/chunks/chunk-K4RBLNSY.js +2 -0
  9. package/dist/chunks/{chunk-IJUB7QXG.js → chunk-VBIVZOSD.js} +56 -56
  10. package/dist/chunks/{chunk-X6EHEQWP.js → chunk-XUEINS3X.js} +150 -150
  11. package/dist/chunks/{chunk-FKB7BWQT.js → chunk-Z4UT32NN.js} +1 -1
  12. package/dist/chunks/{compaction-config-WCNGYWT3.js → compaction-config-PFTBIGQT.js} +1 -1
  13. package/dist/chunks/{construction-bootstrap-OB5SDNBD.js → construction-bootstrap-2FKNOZZE.js} +1 -1
  14. package/dist/chunks/devtools-4CRULTR2.js +2 -0
  15. package/dist/chunks/devtools-YINBSZC7.js +2 -0
  16. package/dist/chunks/dist-JLMKDPEL.js +2 -0
  17. package/dist/chunks/dist-QTV5M2JW.js +2 -0
  18. package/dist/chunks/{utils-CHXCBR3Q.js → utils-LY3LB65Z.js} +1 -1
  19. package/dist/index.d.ts +10 -10
  20. package/dist/index.js +1 -1
  21. package/dist/kodax_cli.js +920 -890
  22. package/dist/provider-capabilities.json +29 -15
  23. package/dist/sdk-agent.d.ts +8 -8
  24. package/dist/sdk-agent.js +1 -1
  25. package/dist/sdk-coding.d.ts +11 -11
  26. package/dist/sdk-coding.js +1 -1
  27. package/dist/sdk-llm.d.ts +84 -7
  28. package/dist/sdk-llm.js +1 -1
  29. package/dist/sdk-mcp.js +1 -1
  30. package/dist/sdk-repl.d.ts +18 -9
  31. package/dist/sdk-repl.js +2 -2
  32. package/dist/sdk-session.d.ts +27 -6
  33. package/dist/sdk-session.js +1 -1
  34. package/dist/sdk-skills.js +1 -1
  35. package/dist/types-chunks/{base.d-FUJahC0i.d.ts → base.d-BdJKSPO2.d.ts} +18 -1
  36. package/dist/types-chunks/{bash-prefix-extractor.d-HrTUwtV7.d.ts → bash-prefix-extractor.d-BICYx8pt.d.ts} +4 -4
  37. package/dist/types-chunks/{file-tracker.d-DOfaoCbJ.d.ts → file-tracker.d-BNTIvsdb.d.ts} +11 -4
  38. package/dist/types-chunks/{resolver.d-OMwxURit.d.ts → resolver.d-DkgJlEzr.d.ts} +79 -3
  39. package/dist/types-chunks/{storage.d-BvTdjYQF.d.ts → storage.d-B1Jk6ryM.d.ts} +79 -4
  40. package/dist/types-chunks/{types.d-HBbWT-iA.d.ts → types.d-B_MIIApc.d.ts} +1 -1
  41. package/dist/types-chunks/{types.d-B1uGoVTE.d.ts → types.d-Cf-GCzac.d.ts} +82 -1
  42. package/dist/types-chunks/{types.d-DM8zEJgF.d.ts → types.d-D2RNa5Y7.d.ts} +2 -2
  43. package/dist/types-chunks/{utils.d-DSEX6Rq1.d.ts → utils.d-pzHPkrb8.d.ts} +19 -5
  44. package/package.json +1 -1
  45. package/dist/chunks/chunk-CZHIUJQS.js +0 -535
  46. package/dist/chunks/chunk-FT2XFFNP.js +0 -2
  47. package/dist/chunks/chunk-PGF5EZ7C.js +0 -31
  48. package/dist/chunks/devtools-EYGFOXEU.js +0 -2
  49. package/dist/chunks/dist-C2VOGY5Z.js +0 -2
  50. package/dist/chunks/dist-Q2PQM7U7.js +0 -2
@@ -0,0 +1,565 @@
1
+ // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
+ import{A as Yw,B as qw,C as Jw,a as Z,c as ja,j as Zi,k as Mn,l as es,m as Fo,n as zw,o as Xw,p as yu,q as ip,r as xu,s as sp,t as ap,u as cp,w as Ga,x as lp,y as Kn,z as Wo}from"./chunk-K4RBLNSY.js";import{a as wu}from"./chunk-Z4UT32NN.js";import{n as Qw,o as Zw,p as eS}from"./chunk-EVIDQWMF.js";import{$ as Rw,$b as Nw,Ba as Aw,Db as hu,Ga as _w,Gb as $w,Ia as Lw,Ib as Ow,Ja as Pw,Kb as Dw,Ma as rp,P as Iw,Q as pu,S as Wa,T as kw,Vd as Vw,Yc as Fw,Yd as gu,Zc as Ua,c as Zm,d as Ha,e as lw,g as tp,id as Ww,jd as Uw,ld as op,md as jw,nd as Gw,qa as Ew,ra as np,sa as Mw,uc as Bw,vc as Hw,yb as Er,zd as Kw}from"./chunk-XUEINS3X.js";import{S as du,ca as aw,ea as Qm,fa as cw,j as Oo,sa as Do,ta as ji,ua as Gi}from"./chunk-2GEKCIIW.js";import{Ac as Qi,Bc as bw,Da as Rn,Fb as yw,Fc as ep,Gb as xw,Gc as Fa,Hb as ww,Qc as vw,Ub as Rr,Va as uw,Vb as Bo,_a as fu,_b as Sw,ab as dw,dc as Vi,eb as fw,fb as mw,gb as pw,hb as hw,jb as gw,k as No,lc as En,nc as At,pc as zi,qc as Xi,rc as Tw,tc as Yi,uc as qi,va as Ki,vc as Ji,wa as kn,wc as mu,xc as Ho,yc as Cw}from"./chunk-VBIVZOSD.js";import{a as i,b as Jm,c as NE}from"./chunk-V4WSBIXB.js";var ZT=Jm((RK,QT)=>{"use strict";QT.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 sC=Jm((MK,iC)=>{"use strict";var oC="(?:"+["\\|\\|","\\&\\&",";;","\\|\\&","\\<\\(","\\<\\<\\<",">>",">\\&","<\\&","[&;()|<>]"].join("|")+")",eC=new RegExp("^"+oC+"$"),tC="|&;()<> \\t",yL='"((\\\\"|[^"])*?)"',xL="'((\\\\'|[^'])*?)'",wL=/^#$/,nC="'",rC='"',rh="$",Jo="",SL=4294967296;for(oh=0;oh<4;oh++)Jo+=(SL*Math.random()).toString(16);var oh,TL=new RegExp("^"+Jo);function CL(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(CL,"matchAll");function bL(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+Jo+JSON.stringify(r)+Jo:t+r}i(bL,"getVar");function vL(e,t,n){n||(n={});var r=n.escape||"\\",o="(\\"+r+`['"`+tC+`]|[^\\s'"`+tC+"])+",s=new RegExp(["("+oC+")","("+o+"|"+yL+"|"+xL+")+"].join("|"),"g"),a=CL(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(eC.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 bL(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==nC?h+=w:w===r?(y+=1,w=u.charAt(y),w===rC||w===r||w===rh?h+=w:h+=r+w):w===rh?h+=x():h+=w;else if(w===rC||w===nC)m=w;else{if(eC.test(w))return{op:u};if(wL.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===rh?h+=x():h+=w}}return g?{op:"glob",pattern:h}:h}).reduce(function(l,u){return typeof u>"u"?l:l.concat(u)},[])}i(vL,"parseInternal");iC.exports=i(function(t,n,r){var o=vL(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("("+Jo+".*?"+Jo+")","g"));return c.length===1?s.concat(c[0]):s.concat(c.filter(Boolean).map(function(l){return TL.test(l)?JSON.parse(l.split(Jo)[1]):l}))},[])},"parse")});var aC=Jm(ih=>{"use strict";ih.quote=ZT();ih.parse=sC()});import{spawnSync as BE}from"node:child_process";function Su(e){return e==="1"||e?.toLowerCase()==="true"}i(Su,"isTruthyEnv");function tS(e){return e==="0"||e?.toLowerCase()==="false"}i(tS,"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 HE(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}i(HE,"isSshSession");function Ka(e={}){let t=e.env??process.env;return Su(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&HE(t)}i(Ka,"isRemoteConptyHost");function rs(e={}){let t=e.env??process.env;return ns(e)||ts(t)}i(rs,"hasMainScreenRenderScrollRisk");function FE(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}i(FE,"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(FE(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=BE("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 up(){Mr=void 0}i(up,"resetTmuxControlModeProbeForTesting");function Uo(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(Uo,"detectTerminalRenderHost");var jo=Uo;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 Go(e={}){let t=os(e);if(t==="legacy"||t==="owned")return t;let n=Uo(e);return n==="unsupported_control_host"||n==="tmux_control_mode"?"legacy":"owned"}i(Go,"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=Uo(e);return r==="unsupported_control_host"||r==="tmux_control_mode"?"classic":"ink"}i(Tu,"resolveInteractiveSurfacePreference");var WE={enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!0},nS={enabled:!0,promptShell:"main-screen",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!1,transcriptSpinnerAnimation:!0};function Ko(e,t="owned",n={}){let r=n.env??process.env;return tS(r.KODAX_FULLSCREEN)?t==="owned"&&e!=="tmux_control_mode"&&e!=="unsupported_control_host"?nS:WE:UE(e,t)}i(Ko,"resolveFullscreenPolicy");function UE(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 nS;default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}}i(UE,"buildFullscreenPolicy");function is(e,t={}){let n=t.rendererMode??"owned",r=Ko(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 Go(e)==="owned"}i(Cu,"isOwnedRendererPreferred");function bu(e={}){let t=e.env??process.env;return Su(t.KODAX_FORCE_CLASSIC_REPL)&&!tS(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}},dp=1,fp=2,jE=1e3,rS;function vu(){if(!(typeof Intl>"u"||typeof Intl.Segmenter!="function"))return rS??=new Intl.Segmenter("en",{granularity:"grapheme"}),rS}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)?fp:dp;else for(let r of e)t+=or(r)?fp:dp;return t}i(ir,"getVisualWidth");function GE(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(GE,"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 KE(e,t,n){return en(e).slice(t,n).join("")}i(KE,"sliceByCodePoints");function oS(e,t){let n=Math.max(0,t),r=en(e),o=0,s=0;for(;o<r.length;){let a=or(r[o])?fp:dp;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(oS,"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 mp=new ss(jE);function pp(e){let t=mp.get(e);if(t!==void 0)return t;let n=ir(e);return mp.set(e,n),n}i(pp,"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 hp(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(KE(m,0,p));return[l,h]}i(hp,"calculateVisualCursorFromLayout");var gp={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"]}},iS={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 sS={dark:gp,minimal:iS};function re(e="dark"){return sS[e]??gp}i(re,"getTheme");function mW(){return Object.keys(sS)}i(mW,"getThemeNames");import{jsx as on,jsxs as _n,Fragment as tL}from"react/jsx-runtime";import{useMemo as rd}from"react";import{jsx as DT}from"react/jsx-runtime";import{createContext as A_,useContext as Yo,useEffect as xs,useMemo as OT,useState as __,useCallback as NT,useRef as Xu}from"react";import{Stream as s_}from"node:stream";import{openSync as a_,writeSync as bT}from"node:fs";import{performance as c_}from"node:perf_hooks";import{tmpdir as l_}from"node:os";import{join as u_}from"node:path";import yp,{forwardRef as XE,useContext as YE}from"react";import{createContext as VE}from"react";var as=VE({isScreenReaderEnabled:!1});import{createContext as zE}from"react";var Iu=zE(void 0);var aS=XE(({children:e,backgroundColor:t,"aria-label":n,"aria-hidden":r,"aria-role":o,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:l}=YE(as),u=n?yp.createElement("ink-text",null,n):void 0;if(l&&r)return null;let m=yp.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?yp.createElement(Iu.Provider,{value:t},m):m});aS.displayName="Box";var An=aS;import ZE,{useContext as cS}from"react";import cs from"chalk";import eo from"chalk";var qE=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,JE=/^ansi256\(\s?(\d+)\s?\)$/;function QE(e){return e in eo}i(QE,"isNamedColor");function Vn(e,t,n){if(!t)return e;if(QE(t)){let r=eo;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"?eo.hex(t)(e):eo.bgHex(t)(e);if(t.startsWith("ansi256")){let r=JE.exec(t);if(!r)return e;let o=Number(r[1]);return n==="foreground"?eo.ansi256(o)(e):eo.bgAnsi256(o)(e)}if(t.startsWith("rgb")){let r=qE.exec(t);if(!r)return e;let o=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?eo.rgb(o,s,a)(e):eo.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}=cS(as),y=cS(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:ZE.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 eM,{useLayoutEffect as tM,useMemo as lS,useState as nM}from"react";function xp({items:e,children:t,style:n}){let[r,o]=nM(0),s=lS(()=>e.slice(r),[e,r]);tM(()=>{o(e.length)},[e.length]);let a=s.map((l,u)=>t(l,r+u)),c=lS(()=>({position:"absolute",flexDirection:"column",...n}),[n]);return eM.createElement("ink-box",{internal_static:!0,style:c},a)}i(xp,"Static");import Xo from"node:process";import ST from"react";import{throttle as WA}from"es-toolkit/compat";import rn from"ansi-escapes";import no from"is-in-ci";import UA from"auto-bind";import{onExit as jA}from"signal-exit";import GA from"patch-console";import{LegacyRoot as KA,ConcurrentRoot as VA}from"react-reconciler/constants.js";import zA from"yoga-layout";import XA from"wrap-ansi";import YA from"terminal-size";import rM from"node:process";var ku=i(()=>rM.env.DEV==="true","isDev");import AM from"react-reconciler";import{DefaultEventPriority as _M,NoEventPriority as IS}from"react-reconciler/constants.js";import*as to from"scheduler";import TS from"yoga-layout";import{createContext as LM}from"react";import xM from"yoga-layout";import oM from"widest-line";var uS=new Map,iM=i(e=>{if(e.length===0)return{width:0,height:0};let t=uS.get(e);if(t)return t;let n=oM(e),r=e.split(`
3
+ `).length,o={width:n,height:r};return uS.set(e,o),o},"measureText"),wp=iM;import sM from"wrap-ansi";import aM from"cli-truncate";var dS={},cM=i((e,t,n)=>{let r=e+String(t)+String(n),o=dS[r];if(o)return o;let s=e;if(n==="wrap"&&(s=sM(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=aM(e,t,{position:a})}return dS[r]=s,s},"wrapText"),Ru=cM;var lM=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),uM=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),dM=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),pS=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),fM=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),hS=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),fS=i((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!lM(c))break;n++}let r=e.slice(t,n),o=n;for(;n<e.length;){let c=e[n];if(!uM(c))break;n++}let s=e.slice(o,n),a=e[n];if(!(a===void 0||!dM(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),mS=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"),mM=i((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!pS(s))break;n++}let r=e.slice(t,n),o=e[n];if(!(o===void 0||!fM(o)))return{endIndex:n+1,intermediateString:r,finalCharacter:o}},"readEscapeSequence"),pM=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"),hM=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"),Sp=i(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(hS(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"),gS=i(e=>{if(!Sp(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=fS(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=pM(a);if(c!==void 0){let u=mS(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=mM(e,r+1);if(l===void 0){if(pS(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=fS(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=hM(o);if(s!==void 0){let a=mS(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(hS(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 gM=/^[\d:;]*$/,yM=i(e=>{if(!Sp(e))return e;let t="";for(let n of gS(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&gM.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),yS=yM;var xS=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=xS(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o,n))),t+=o}return yS(t)},"squashTextNodes"),Xa=xS;var Eu=i(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:xM.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(wM.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"),Tp=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"),Cp=i((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),bp=i((e,t)=>{e.style=t},"setStyle"),wS=i(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return qa(t,e),t},"createTextNode"),wM=i(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:Xa(e),r=wp(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 wp(s)},"measureTextNode"),SS=i(e=>{if(e?.parentNode)return e.yogaNode??SS(e.parentNode)},"findClosestYogaNode"),Au=i(e=>{SS(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 TM=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"),CM=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"),bM=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"),vM=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"),IM=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"),kM=i((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?Te.DISPLAY_FLEX:Te.DISPLAY_NONE)},"applyDisplayStyles"),RM=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"),EM=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"),MM=i((e,t={})=>{TM(e,t),CM(e,t),bM(e,t),vM(e,t),IM(e,t),kM(e,t),RM(e,t),EM(e,t)},"styles"),vp=MM;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 CS=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"),bS=i(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),_u=IS,Ip,vS={name:void 0,version:void 0},Ar=AM({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"){bp(s,c),s.yogaNode&&vp(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"){Ip=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}Cp(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 wS(e)},resetTextContent(){},hideTextInstance(e){qa(e,"")},unhideTextInstance(e,t){qa(e,t)},getPublicInstance:i(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(TS.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(TS.DISPLAY_FLEX)},appendInitialChild:Mu,appendChild:Mu,insertBefore:Tp,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:to.unstable_scheduleCallback,cancelCallback:to.unstable_cancelCallback,shouldYield:to.unstable_shouldYield,now:to.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:i(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:i(()=>null,"getInstanceFromScope"),appendChildToContainer:Mu,insertInContainerBefore:Tp,removeChildFromContainer(e,t){Ya(e,t),bS(t.yogaNode)},commitUpdate(e,t,n,r){Ip&&e.internal_static&&(Ip.isStaticDirty=!0);let o=CS(n,r),s=CS(n.style,r.style);if(!(!o&&!s)){if(o)for(let[a,c]of Object.entries(o)){if(a==="style"){bp(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}Cp(e,a,c)}s&&e.yogaNode&&vp(e.yogaNode,s)}},commitTextUpdate(e,t,n){qa(e,n)},removeChild(e,t){Ya(e,t),bS(t.yogaNode)},setCurrentUpdatePriority(e){_u=e},getCurrentUpdatePriority:i(()=>_u,"getCurrentUpdatePriority"),resolveUpdatePriority(){return _u!==IS?_u:_M},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:LM(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:vS.name,rendererVersion:vS.version});import NM from"widest-line";import BM from"indent-string";import us from"yoga-layout";import Lu from"yoga-layout";var PM=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"),kS=PM;import $M from"cli-boxes";import Pu from"chalk";var OM=i((e,t,n,r)=>{if(n.style.borderStyle){let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?$M[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"),RS=OM;var DM=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"),ES=DM;var HM=i((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),o=n.getComputedTop();t=`
14
+ `.repeat(o)+BM(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"),MS=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=NM(h),y=kS(c);if(g>y){let x=e.style.textWrap??"wrap";h=Ru(h,y,x)}h=HM(e,h),t.write(l,u,h,{transformers:m})}return}let p=!1;if(e.nodeName==="ink-box"){ES(l,u,e,t),RS(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)MS(h,t,{offsetX:l,offsetY:u,transformers:m,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),kp=MS;import FM from"slice-ansi";import WM from"string-width";import{styledCharsFromTokens as UM,styledCharsToString as jM,tokenize as GM}from"@alcalzone/ansi-tokenize";var Rp=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=UM(GM(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=WM(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 Rp;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 FM(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 jM(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 AS(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(AS,"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 _S(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(_S,"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);KM(a,c)||(yield{x:s,y:o,prev:a,next:c})}}i(Ou,"diffEach");function LS(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(LS,"shiftRowsRegion");function KM(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(KM,"cellsEqual");var Ep="\x1B]8;";function VM(e){return e.endsWith("\x07")?e.slice(0,-1):e}i(VM,"stripOsc8Terminator");function zM(e){if(!e.startsWith(Ep))return;let t=e.slice(Ep.length),n=t.indexOf(";");if(n<0)return;let r=t.slice(n+1),o=VM(r);return o.length>0?o:void 0}i(zM,"parseOsc8Url");function XM(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(Ep)){let o=zM(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(XM,"styledCharToCell");function Du(e){let t=e.getGrid(),n=e.width,r=e.height,o=_S(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=XM(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 YM=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()});kp(e,r,{skipStaticElements:!0});let o;e.staticNode?.yogaNode&&(o=new ds({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),kp(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"),Mp=YM;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 PS(e=1){return e===0?"":hn(e,"A")}i(PS,"cursorUp");function qM(e=1){return e===0?"":hn(e,"B")}i(qM,"cursorDown");function JM(e=1){return e===0?"":hn(e,"C")}i(JM,"cursorForward");function QM(e=1){return e===0?"":hn(e,"D")}i(QM,"cursorBack");function $S(e){return hn(e,"G")}i($S,"cursorTo");var ZM=hn("G"),OS=hn("H");function DS(e,t){let n="";return e<0?n+=QM(-e):e>0&&(n+=JM(e)),t<0?n+=PS(-t):t>0&&(n+=qM(t)),n}i(DS,"cursorMove");var eA=hn(2,"K");function NS(e){if(e<=0)return"";let t="";for(let n=0;n<e;n++)t+=eA,n<e-1&&(t+=PS(1));return t+=ZM,t}i(NS,"eraseLines");var BS=hn("r"),HS="\x1B7",FS="\x1B8";function WS(e,t){return hn(e,t,"r")}i(WS,"setScrollRegion");function US(e=1){return hn(e,"S")}i(US,"scrollUp");function jS(e=1){return hn(e,"T")}i(jS,"scrollDown");var Nu=hn(0,"m");function GS(e){return`\x1B]${e.join(";")}\x07`}i(GS,"osc");function tA(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(tA,"osc8Id");function Ja(e,t){if(!e)return Qa;let n={id:tA(e),...t??{}},r=Object.entries(n).map(([o,s])=>`${o}=${s}`).join(":");return GS(["8",r,e])}i(Ja,"link");var Qa=GS(["8","",""]);function Ap(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(Ap,"renderFullFrame");var nA=Object.freeze([]),rA=Object.freeze([]);function ms(e,t){if(e===t)return{patches:nA,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 Vo(e,t){if(e===t)return{patches:rA,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(Vo,"transitionHyperlink");function KS(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(KS,"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&&KS(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=Vo(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=Vo(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=Vo(a,void 0);for(let u of l.patches)e.txn(()=>[[u],{dx:0,dy:0}])}}i(Fu,"renderFrameSlice");function _p(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(_p,"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 Lp(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(Lp,"computeViewportState");function VS(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=Lp(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(VS,"shouldFullReset");function zS(e,t,n){return!!(t&&t.width===2||e&&e.width===2&&!t||t&&n&&!e)}i(zS,"shouldSkipDiff");var Uu=class{static{i(this,"LogUpdate")}options;constructor(t){this.options=t}render(t,n,r={}){if(!this.options.isTTY)return Ap(n);let o=r.inlineBottomAnchored??!1,s=XS(t,o),a=XS(n,o),c=VS(s,a,_p);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:LS(s.screen,l.top,l.bottom,l.delta)};return[u,...YS(m,a,o)]}return YS(s,a,o)}reset(){}};function Pp(e,t){for(let n of t)e.txn(()=>[[n],{dx:0,dy:0}])}i(Pp,"emitPatches");function qS(e,t,n){if(t!==""){let r=ms(t,"");Pp(e,r.patches)}if(n!==void 0){let r=Vo(n,void 0);Pp(e,r.patches)}return{style:"",hyperlink:void 0}}i(qS,"resetStyleAndHyperlink");function oA(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(oA,"applyShrink");function iA(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(!zS(m,p,h)){if(u<r.viewportY){a=!0;break}if(ec(e,l,u),p){let g=Vo(s,p.hyperlink);Pp(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(iA,"diffPass");function XS(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(XS,"clampRestingCursor");function sA(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(sA,"restoreCursor");function YS(e,t,n=!1){let r=Lp(e,t),o=new ps(e.cursor,t.viewport.width);r.shrinking&&oA(o,e,t);let s=iA(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),sA(o,t),o.diff)}i(YS,"renderIncremental");var aA="\x1B[?25l",cA="\x1B[?25h",lA=`\x1B[2J${OS}`,uA="\x1B[?2026h",dA="\x1B[?2026l";function fA(e){switch(e.type){case"stdout":return e.content;case"carriageReturn":return"\r";case"cursorHide":return aA;case"cursorShow":return cA;case"cursorMove":return DS(e.x,e.y);case"cursorTo":return $S(e.col);case"clear":return NS(e.count);case"clearTerminal":return lA;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?US(r):jS(r);return HS+WS(t,n)+o+BS+FS}}}i(fA,"patchToBytes");function ju(e,t,n=!1){let r="",o=!1;for(let s of t)s.type==="clearTerminal"&&(o=!0),r+=fA(s);if(r.length!==0){if(n&&o){e.write(uA+r+dA);return}e.write(r)}}i(ju,"applyDiff");function JS(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(JS,"applyCellFrame");function tc(e,t){return{screen:AS(0,0),viewport:{width:t,height:e},cursor:{x:0,y:0,visible:!0}}}i(tc,"emptyFrame");import mA from"is-in-ci";var Pr="\x1B[?2026h",ar="\x1B[?2026l";function $r(e){return"isTTY"in e&&e.isTTY===!0&&!mA}i($r,"shouldSynchronize");var pA=new WeakMap,QS=pA;import{EventEmitter as $A}from"node:events";import OA from"node:process";import zo,{useState as Dp,useRef as hs,useCallback as wt,useMemo as gs,useEffect as gT}from"react";import DA from"cli-cursor";var hA=i(e=>e>=48&&e<=63,"isCsiParameterByte"),gA=i(e=>e>=32&&e<=47,"isCsiIntermediateByte"),eT=i(e=>e>=64&&e<=126,"isCsiFinalByte");function yA(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(!(hA(s)||gA(s))&&!(s===91&&o===r))return eT(s)?{sequence:e.slice(t,o+1),nextIndex:o+1}:void 0}return"pending"}i(yA,"parseCsiSequence");function xA(e,t,n){let r=t+n+2;if(r>e.length)return"pending";let o=e.codePointAt(r-1);if(!(o===void 0||!eT(o)))return{sequence:e.slice(t,r),nextIndex:r}}i(xA,"parseSs3Sequence");function ZS(e,t,n){let r=e[t+n];if(r===void 0)return"pending";if(r==="[")return yA(e,t,n);if(r==="O")return xA(e,t,n)}i(ZS,"parseControlSequence");function wA(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(wA,"parseEscapedCodePoint");function SA(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=ZS(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=ZS(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=wA(e,o);t.push(c.sequence),n=c.nextIndex}return{events:t,pending:""}}i(SA,"parseKeypresses");function Gu(){let e="";return{push(t){let n=SA(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 TA}from"react";var tT=TA({exit(){}});tT.displayName="InternalAppContext";var nT=tT;import{EventEmitter as CA}from"node:events";import{createContext as bA}from"react";var vA={isTTY:!1,isRaw:!1,on(){},off(){},pause(){},resume(){},setRawMode(){}},rT=bA({stdin:vA,internal_eventEmitter:new CA,setRawMode(){},isRawModeSupported:!1,internal_exitOnCtrlC:!0});rT.displayName="InternalStdinContext";var oT=rT;import{createContext as IA}from"react";var kA={isTTY:!1,columns:80,rows:24,write(){return!0},on(){},off(){}},iT=IA({stdout:kA,write(){}});iT.displayName="InternalStdoutContext";var sT=iT;import{createContext as RA}from"react";var EA={isTTY:!1,write(){return!0},on(){},off(){}},aT=RA({stderr:EA,write(){}});aT.displayName="InternalStderrContext";var cT=aT;import{createContext as MA}from"react";var lT=MA({activeId:void 0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){}});lT.displayName="InternalFocusContext";var uT=lT;import{createContext as AA}from"react";var dT=AA({setCursorPosition(){}});dT.displayName="InternalCursorContext";var fT=dT;import LA,{PureComponent as PA}from"react";import*as Ku from"node:fs";import{cwd as hT}from"node:process";import bt from"react";import mT from"stack-utils";import _A from"code-excerpt";var $p=i(e=>e?.replace(`file://${hT()}/`,""),"cleanupPath"),pT=new mT({cwd:hT(),internals:mT.nodeInternals()});function Op({error:e}){let t=e.stack?e.stack.split(`
24
+ `).slice(1):void 0,n=t?pT.parseLine(t[0]):void 0,r=$p(n?.file),o,s=0;if(r&&n?.line&&Ku.existsSync(r)){let a=Ku.readFileSync(r,"utf8");if(o=_A(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=pT.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 ${$p(c.file)??""} line ${c.line} column ${c.column}`}," ","(",$p(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(Op,"ErrorOverview");var nc=class extends PA{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?LA.createElement(Op,{error:this.state.error}):this.props.children}};var NA=" ",BA="\x1B[Z",HA="\x1B";function yT({children:e,stdin:t,stdout:n,stderr:r,writeToStdout:o,writeToStderr:s,exitOnCtrlC:a,onExit:c,setCursorPosition:l}){let[u,m]=Dp(!0),[p,h]=Dp(void 0),[,g]=Dp([]),y=hs(0),x=hs(0),w=hs(new $A);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===HA&&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]),R=wt(ee=>{if(!F)throw t===OA.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}},[]),Me=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}},[]),Ae=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 Me(ee,_)??O}),ee))},[Me]);gT(()=>{let ee=i(O=>{!u||y.current===0||(O===NA&&Ae(),O===BA&&Y())},"handleTabNavigation");w.current.on("input",ee);let _=w.current;return()=>{_.off("input",ee)}},[u,Ae,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}))},[]);gT(()=>()=>{DA.show(n),F&&x.current>0&&v()},[n,F,v]);let et=gs(()=>({exit:z}),[z]),Ue=gs(()=>({stdin:t,setRawMode:R,isRawModeSupported:F,internal_exitOnCtrlC:a,internal_eventEmitter:w.current}),[t,R,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:Ae,focusPrevious:Y,focus:Q}),[p,J,q,Ie,ue,V,ae,Ae,Y,Q]);return zo.createElement(nT.Provider,{value:et},zo.createElement(oT.Provider,{value:Ue},zo.createElement(sT.Provider,{value:De},zo.createElement(cT.Provider,{value:me},zo.createElement(uT.Provider,{value:Rt},zo.createElement(fT.Provider,{value:Pt},zo.createElement(nc,{onError:z},e)))))))}i(yT,"App");yT.displayName="InternalApp";var xT=yT;var FA={disambiguateEscapeCodes:1,reportEventTypes:2,reportAlternateKeys:4,reportAllKeysAsEscapeCodes:8,reportAssociatedText:16};function wT(e){let t=0;for(let n of e)t|=FA[n];return t}i(wT,"resolveFlags");var Or={shift:1,alt:2,ctrl:4,super:8,hyper:16,meta:32,capsLock:64,numLock:128};var Np=i((e,t)=>(t<0?rn.cursorUp(-t):t>0?rn.cursorDown(t):"")+(e<0?rn.cursorBackward(-e):e>0?rn.cursorForward(e):""),"cursorMoveSeq"),Bp=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"),qA=27,JA=91,QA=63,ZA=117,e_=48,t_=57,n_=i(e=>e>=e_&&e<=t_,"isDigitByte"),TT=i((e,t)=>{if(e[t]!==qA||e[t+1]!==JA||e[t+2]!==QA)return;let n=t+3,r=n;for(;n<e.length&&n_(e[n]);)n++;if(n!==r){if(n===e.length)return{state:"partial"};if(e[n]===ZA)return{state:"complete",endIndex:n}}},"matchKittyQueryResponse"),r_=i(e=>{for(let t=0;t<e.length;t++)if(TT(e,t)?.state==="complete")return!0;return!1},"hasCompleteKittyQueryResponse"),o_=i(e=>{let t=[],n=0;for(;n<e.length;){let r=TT(e,n);if(r?.state==="complete"){n=r.endIndex+1;continue}if(r?.state==="partial")break;t.push(e[n]),n++}return t},"stripKittyQueryResponsesAndTrailingPartial"),Hp=i(e=>e instanceof Error||Object.prototype.toString.call(e)==="[object Error]","isErrorInput"),i_=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){UA(this),this.options=t,this.rootNode=Eu("ink-root"),this.rootNode.onComputeLayout=this.calculateLayout,this.isScreenReaderEnabled=t.isScreenReaderEnabled??Xo.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=WA(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?VA:KA;this.container=Ar.createContainer(this.rootNode,s,null,!1,null,"id",()=>{},()=>{},()=>{},()=>{}),this.unsubscribeExit=jA(this.unmount,{alwaysLast:!1}),ku()&&Ar.injectIntoDevTools(),t.patchConsole&&this.patchConsole(),no||(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:YA()?.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(Hp(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,zA.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}=Mp(this.rootNode,this.isScreenReaderEnabled,n);this.options.onRender?.({renderTime:performance.now()-t}),!no&&!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(no){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=XA(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(Xo.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=Bp(a,!this.altScreenActive),T=w(a.cursor),I=w(a.inputCursor),A=Np(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=JS(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}=Mp(this.rootNode,this.isScreenReaderEnabled,c);if(this.applyCellFrame(m,s),m?.inputCursor){let p=Bp(m,!this.altScreenActive),h=p(m.cursor),g=p(m.inputCursor),y=Np(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=ST.createElement(as.Provider,{value:{isScreenReaderEnabled:this.isScreenReaderEnabled}},ST.createElement(xT,{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=Bp(this.prevFrame,!this.altScreenActive)(this.prevFrame.cursor),n=Np(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(no){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(no){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&&(Xo.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{}no&&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()),QS.delete(this.options.stdout);let{exitResult:s}=this,a=i(()=>{Hp(t)?this.rejectExitPromise(t):this.resolveExitPromise(s)},"resolveOrReject"),c=t!==void 0&&!Hp(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()},Xo.once("beforeExit",this.beforeExitHandler)),this.exitPromise}clear(){if(!no&&!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=GA((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=Xo.env.TERM??"",s=Xo.env.TERM_PROGRAM??"",a="KITTY_WINDOW_ID"in Xo.env||o==="xterm-kitty"||s==="WezTerm"||s==="ghostty";!no&&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=o_(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);r_(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[>${wT(t)}u`),this.kittyProtocolEnabled=!0}},CT=i_;var rc=class{static{i(this,"KodaXRenderer")}engineInstance;isConcurrent;constructor(t){this.engineInstance=new CT(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 ro=null;function vT(){if(ro===-1)return null;if(ro!==null)return ro;let e=process.env.KODAX_RENDER_TRACE;if(!e||e==="0"||e==="false")return ro=-1,null;let t=e==="1"||e==="true"?u_(l_(),`kodax-render-trace-${process.pid}.log`):e;try{return ro=a_(t,"a"),bT(ro,`=== KODAX render trace pid=${process.pid} ${new Date().toISOString()} platform=${process.platform} node=${process.version} ===
33
+ `),ro}catch{return ro=-1,null}}i(vT,"resolveTraceFd");function d_(e){let t=vT();if(t!==null)try{bT(t,e)}catch{}}i(d_,"traceLine");var zu=new WeakMap,f_={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},m_={isTTY:!1,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},p_={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function h_(e={}){return e instanceof s_?{stdout:e}:e}i(h_,"getOptions");function g_(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(g_,"getInstance");function ys(e){return zu.get(e)}i(ys,"getRendererInstance");function Fp(e,t){let n={stdout:f_,stdin:p_,stderr:m_,debug:!1,exitOnCtrlC:!0,patchConsole:!1,maxFps:30,concurrent:!1,...h_(t)};if(vT()!==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=c_.now(),y=u===0?0:g-u,x=s,w=x.columns??0,T=x.rows??0;return d_(`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=g_(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(Fp,"render");var IT=An,kT=nn,RT=xp;import{Buffer as x_}from"node:buffer";var w_=/^(?:\x1b)([a-zA-Z0-9])$/,S_=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,MT={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"},AT=[...Object.values(MT),"backspace"],T_=i(e=>["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e),"isShiftKey"),C_=i(e=>["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e),"isCtrlKey"),_T=/^\x1b\[(\d+)(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/,b_=/^\x1b\[(\d+);(\d+):(\d+)([A-Za-z~])$/,v_={A:"up",B:"down",C:"right",D:"left",E:"clear",F:"end",H:"home",P:"f1",Q:"f2",R:"f3",S:"f4"},I_={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"},ET={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"},LT=i(e=>e>=0&&e<=1114111&&!(e>=55296&&e<=57343),"isValidCodepoint"),Wp=i(e=>LT(e)?String.fromCodePoint(e):"?","safeFromCodePoint");function PT(e){return e===3?"release":e===2?"repeat":"press"}i(PT,"resolveEventType");function $T(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($T,"parseKittyModifiers");function k_(e){let t=_T.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(!LT(n))return null;let a;s&&(a=s.split(":").map(u=>Wp(Number.parseInt(u,10))).join(""));let c,l;return n===32?(c="space",l=!0):n===13?(c="return",l=!0):ET[n]?(c=ET[n],l=!1):n>=1&&n<=26?(c=String.fromCodePoint(n+96),l=!1):(c=Wp(n).toLowerCase(),l=!0),l&&!a&&(a=Wp(n)),{name:c,...$T(r),eventType:PT(o),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:l,text:a}}i(k_,"parseKittyKeypress");function R_(e){let t=b_.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==="~"?I_[n]:v_[s];return a?{name:a,...$T(r),eventType:PT(o),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:!1}:null}i(R_,"parseKittySpecialKey");var Up="\x1B[200~",E_="\x1B[201~";function M_(e){if(!e.startsWith(Up))return null;let t=e.indexOf(E_,Up.length);return t===-1?null:e.slice(Up.length,t)}i(M_,"extractBracketedPaste");function jp(e=""){let t=e,n;if(x_.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=M_(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=k_(t);if(r)return r;let o=R_(t);if(o)return o;if(_T.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=w_.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(n[1]??"");else if(n=S_.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=MT[c]??"",s.shift=T_(c)||s.shift,s.ctrl=C_(c)||s.ctrl}return s}i(jp,"parseKeypress");var L_=50;function Yu(e){return{columns:e?.columns??80,rows:e?.rows??24}}i(Yu,"resolveTerminalSize");var oo=A_(null),Gp={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")};var BT={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function P_(e){for(let t of e)if(t.rawMode)return!0;return!1}i(P_,"hasRawModeSubscribers");function $_({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&&P_(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($_,"createTerminalInputController");var O_=i(({children:e,runtime:t})=>{let[n,r]=__(()=>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=NT(c=>typeof t.stdout?.write!="function"?!1:(t.stdout.write(c),!0),[t.stdout]),s=OT(()=>$_({stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported}),[t.stdin,t.isRawModeSupported,t.setRawMode]);xs(()=>()=>{s.dispose()},[s]);let a=OT(()=>({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 DT(oo.Provider,{value:a,children:e})},"TuiRuntimeProvider");function D_(e){let t=e?.stdout??Gp,n=e?.stdin??BT,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(D_,"createRuntimeValue");function qu(e,t){let n=D_(t),r=Fp(DT(O_,{runtime:n,children:e}),t);return n.attachExit(r.unmount),r}i(qu,"render");var k=IT,b=kT,ws=RT;function N_(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&&AT.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(N_,"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=NT(c=>{let{input:l,key:u}=N_(jp(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)},L_))},{isActive:n,rawMode:!0})}i(Ju,"useInput");function cr(){return{stdout:Yo(oo)?.stdout??Gp}}i(cr,"useStdout");function oc(){let e=Yo(oo),t=e?.stdin??BT,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 io(){return{exit:Yo(oo)?.exit??(()=>{})}}i(io,"useApp");function Ss(){return Yo(oo)?.stdout??Gp}i(Ss,"useTerminalOutput");function Ts(){let e=Ss();return Yo(oo)?.terminalSize??Yu(e)}i(Ts,"useTerminalSize");function Cs(){let e=Ss();return Yo(oo)?.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=Yo(oo),{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 j_}from"react/jsx-runtime";import{useInsertionEffect as G_,useMemo as K_}from"react";var B_="\x1B[?1049h",H_="\x1B[?1049l";var F_="\x1B[2J",W_="\x1B[?1000h\x1B[?1002h\x1B[?1006h",U_="\x1B[?1006l\x1B[?1002l\x1B[?1000l";function Qu(e={}){let t=e.mouseTracking!==!1,n=e.clearOnEnter===!0;return B_+(n?F_:"")+"\x1B[H"+(t?W_:"")}i(Qu,"buildAlternateScreenEnterSequence");function Zu(e={}){return(e.mouseTracking!==!1?U_:"")+H_}i(Zu,"buildAlternateScreenExitSequence");var Kp=i(({children:e,mouseTracking:t=!0,enabled:n=!0,clearOnEnter:r=!1})=>{let o=Ss(),{rows:s}=Ts(),a=Cs(),c=K_(()=>n&&o.isTTY===!0,[n,o]);return G_(()=>{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]),j_(k,{flexDirection:"column",height:s,width:"100%",flexGrow:1,flexShrink:0,children:e})},"AlternateScreen");import{jsx as so,jsxs as jT}from"react/jsx-runtime";import{jsx as z_}from"react/jsx-runtime";import X_,{useEffect as Vp,useImperativeHandle as Y_,useMemo as q_,useRef as ed,useCallback as ac,useState as J_}from"react";function V_(e,t,n){return Math.max(t,Math.min(e,n))}i(V_,"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=V_(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 HT(e,t,n){let r=sc({...n,globalScrollTop:e}),o=sc({...n,globalScrollTop:t});return r.bin===o.bin}i(HT,"staysWithinOverscanBlock");function FT(e){let t=e??void 0;for(;t?.parentNode;)t=t.parentNode;return t&&typeof t.onRender=="function"?(t.onRender(),!0):!1}i(FT,"scheduleRenderFromNode");function WT(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(WT,"normalizeScrollSnapshot");function UT(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(UT,"areSnapshotsEqual");function Q_(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(Q_,"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 zp(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(zp,"resolveScrollWindow");function Z_(e){let t=td(e,e.scrollTop);return Math.max(0,e.scrollHeight-e.viewportHeight-t)}i(Z_,"resolveNativeScrollTop");var Xp=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(WT({scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,sticky:l,overscanRows:y})),[I,A]=J_(()=>zp(T.current)),$=ed(null),F=ac(()=>{for(let Y of w.current)Y()},[]),D=ac((Y,V=!0)=>{let ae=T.current,Q=WT(Y),J=zp(Q);return T.current=Q,A(q=>Q_(q,J)?q:J),V&&!UT(ae,Q)&&F(),{previous:ae,snapshot:Q,window:J,changed:!UT(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(!HT(ue,et,Ue))return!1;let De=sc({...Ue,globalScrollTop:et});return Q.scrollTop=et,Q.attributes&&(Q.attributes.inWindowScrollTop=De.inBlockOffset),FT(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)},[]);Vp(()=>{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]);Vp(()=>{fe()},[fe]);let se=q_(()=>({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]);Y_(u,()=>se,[se]),Vp(()=>{h?.(I)},[h,I]);let ge=$.current!==null,L=ge?{...T.current,scrollTop:$.current}:T.current,R=ge?zp(L):I,P=g?g(R):e,Me=Math.max(0,c+o),Ae=Z_(L);return X_.createElement("ink-box",{ref:x,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:n,flexShrink:r,width:t,height:Me,paddingTop:o,overflowX:"visible",overflowY:"scroll"},scrollTop:Ae,scrollHeight:T.current.scrollHeight,scrollViewportHeight:T.current.viewportHeight,scrollViewportTop:R.viewportTop,pendingScrollDelta:T.current.pendingDelta,virtualScrollWindowed:!!g,...T.current.overscanRows?{inWindowScrollTop:R.inWindowScrollTop}:{},...T.current.clampMin!==void 0?{scrollClampMin:T.current.clampMin}:{},...T.current.clampMax!==void 0?{scrollClampMax:T.current.clampMax}:{},...l?{stickyScroll:!0}:{}},z_(k,{flexDirection:"column",flexGrow:1,flexShrink:0,width:"100%",children:P}))},"ScrollBox");var eL=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:eL)-2);return Math.max(1,tn(e.split(`
36
+ `),n,0,0).visualLines.length)}i(nd,"measureFullscreenChromeSlotRows");var Yp=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?so(k,{paddingX:1,children:so(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 jT(k,{flexDirection:"column",width:l,flexGrow:1,flexShrink:0,children:[e?so(k,{flexDirection:"column",flexShrink:0,children:e}):null,jT(k,{flexDirection:"column",flexGrow:1,overflowY:"hidden",children:[so(Xp,{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?so(k,{position:"absolute",top:0,left:0,right:0,flexDirection:"column",children:D}):null,v?so(k,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:v}):null,s?so(k,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:s}):null]}),so(k,{flexDirection:"column",flexShrink:0,children:o})]})},"FullscreenLayout");import nL from"string-width";function rL(){return Ts().columns}i(rL,"useTerminalWidth");var qp=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=rL(),g=m??h,y=nL(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]=hp(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(k,{flexDirection:"column",borderStyle:"round",borderColor:p.colors.dim,borderTop:!0,borderBottom:!0,borderLeft:!1,borderRight:!1,width:m??"100%",children:[I?on(k,{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(k,{children:[_n(b,{color:p.colors.primary,children:[r," "]}),T?_n(tL,{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}=oS(F,$.col),L=se||" ";return _n(k,{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(k,{children:[_n(b,{color:p.colors.dim,children:[z," "]}),on(b,{color:p.colors.text,children:F})]},D)})]})},"TextInput"),oL=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(k,{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(k,{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 Jp={"[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"}},iL=/^\x1b\[([0-9]+);?([0-9]+)?([~A-Za-z])?/,sL=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/;function aL(e){switch(e&3){case 0:return"left";case 1:return"middle";case 2:return"right";default:return"unknown"}}i(aL,"parseMouseButton");function cL(e){return{shift:(e&1)!==0,alt:(e&2)!==0,ctrl:(e&4)!==0,meta:(e&8)!==0}}i(cL,"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(sL);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:aL(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(iL);if(s){let[,l,u,m]=s,p=m||"~",g=Jp[o];if(g)return Object.assign(n,g),n;let y="["+l+p+"]",x=Jp[y];if(x&&x.name){if(n.name=x.name,u){let w=parseInt(u,10)-1,T=cL(w);Object.assign(n,T)}return n}}let c=Jp[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 GT(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(GT,"isFunctionKey");function lL(e){return e.ctrl||e.meta||GT(e)?!1:e.sequence.length===1&&e.sequence.charCodeAt(0)>=32}i(lL,"isPrintable");function uL(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(uL,"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 gK={[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 Qp={streamingState:gn.Idle,currentResponse:"",history:[],pendingToolCalls:[],sessionId:"",provider:"",model:"",isLoading:!1};import dL,{createContext as fL,useContext as mL,useEffect as KT,useCallback as pL,useRef as Zp}from"react";var hL=50;function eh(){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(eh,"createKeypressManager");var VT=fL(null);function id({children:e,enabled:t=!0}){let{stdout:n}=cr(),r=Zp(eh()),o=Zp(null),s=Zp(null),a=pL(c=>{t&&r.current.dispatch(c)},[t]);return KT(()=>{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)},hL)))},{isActive:t,rawMode:!0}),dL.createElement(VT.Provider,{value:r.current},e)}i(id,"KeypressProvider");function th(){let e=mL(VT);if(!e)throw new Error("useKeypressManager must be used within a KeypressProvider");return e}i(th,"useKeypressManager");function yn(e,t,n=[]){let r=th(),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;KT(()=>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 zT={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 gL='[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(gL))}}i(sd,"createAutoInProjectDeprecationEmitter");var XT=Ow(),Pn=new Set(XT.filter(e=>e.sideEffect==="mutates-fs"&&e.requiredParams.includes("path")).map(e=>e.name)),YT=new Set(XT.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"]),JT=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 qo(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(qo,"computeConfirmTools");function nh(e){return e!==void 0&&uc.includes(e)}i(nh,"isPermissionMode");function lr(e,t){return nh(e)?e:t}i(lr,"normalizePermissionMode");import ad from"fs";import vt from"path";import fc from"os";var uC=NE(aC(),1);var cC=new Set(["/dev/null","nul","NUL"]);function sh(e){return cC.has(e)||cC.has(e.toLowerCase())}i(sh,"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,uC.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(lC(`&${y.op}`,x)),p+=2;continue}l=!0;continue}if(kL(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(lC(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 IL=new Set([">",">>","<","<<","<<<","&>","&>>"]),dC=/^([0-9]+|&)(>>?|<<?)$/;function kL(e){return IL.has(e)||dC.test(e)}i(kL,"isRedirectionOp");function lC(e,t){let n=null,r=e,o=dC.exec(e);return o&&(n=o[1],r=o[2]),{op:e,fd:n,append:r===">>"||e==="&>>",input:r==="<"||r==="<<"||e==="<<<",target:t}}i(lC,"parseRedirection");var RL=vt.join(".agent","plan_mode_doc.md"),cd=new Map,ld=null;function EL(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\s+/g," ").toLowerCase();for(let n of JT)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(EL,"isSingleBashReadCommand");var ML=/^[a-zA-Z0-9]+$/;function AL(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(!ML.test(r))return!1;return n}i(AL,"isHelpCommand");function zn(e){if(!e||!e.trim())return!1;if(AL(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||!sh(c.target))return!1;let a=s.argv.join(" ");if(a&&!(r&&s.argv[0]?.toLowerCase()==="cd"&&s.argv.length>=2)&&!EL(a))return!1}}return!0}i(zn,"isBashReadCommand");function ch(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(ch,"getDirectShellBypassBlockReason");var mC=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(mC.has(s))return!0;for(let s of r.redirections)if(!s.input&&!sh(s.target))return!0}return!1}i(Xn,"isBashWriteCommand");function lh(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(lh,"parseAllowedToolPattern");function _L(e,t){if(t==="*")return!1;if(t.endsWith(":*")){let n=t.slice(0,-2);return e.startsWith(n)}return e===t}i(_L,"matchesBashPatternLegacy");function LL(e,t){if(t==="*")return!1;if(t.endsWith(":*")){let n=t.slice(0,-2);return e===n}return e===t}i(LL,"matchesBashPatternByExtractedPrefix");async function ao(e,t,n,r,o){if(e.toLowerCase()!=="bash")return!1;let s=t.command??"",a=[];for(let c of n){let l=lh(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&&LL(c.value,l))return!0;return!1}for(let{pattern:c}of a)if(c&&_L(s,c))return!0;return!1}i(ao,"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)||gC().some(c=>vs(n,c)))}catch{return!1}}i(ur,"isAlwaysConfirmPath");function fC(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"&&PL.test(e)):!!(e.startsWith(".")&&/[/\\]/.test(e))}i(fC,"looksLikePath");var PL=/^\/[A-Za-z][A-Za-z0-9]*(?::[A-Za-z0-9]+)?$/;function $L(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($L,"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)fC(s)&&t.add(s);for(let s of o.redirections)fC(s.target)&&t.add(s.target)}for(let r of $L(e))t.add(r);return Array.from(t)}i(fd,"extractPathsFromCommand");function uh(e,t){let n=fd(e);for(let r of n)if(ur(r,t))return!0;return!1}i(uh,"isCommandOnProtectedPath");function ud(e){let t=vt.normalize(e);return process.platform==="win32"?t.toLowerCase():t}i(ud,"normalizePathForComparison");function OL(e,t){return ud(e)===ud(t)}i(OL,"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,hC(pC(e)));return vs(r,n)}catch{return!1}}i(md,"isPathInsideProject");function DL(e){let t=e.match(/[A-Za-z]:[\\/][^\s;|&<>(){}'"]+|\/[^\s;|&<>(){}'"]+/g);return t?t.filter(n=>!/^(?:\/dev\/|\/proc\/)/i.test(n)):[]}i(DL,"collectAbsolutePathCandidates");function dh(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(dh,"resolveExistingPathPrefix");function pC(e){return e==="~"?fc.homedir():e.startsWith(`~${vt.sep}`)||e.startsWith("~/")||e.startsWith("~\\")?vt.join(fc.homedir(),e.slice(2)):e}i(pC,"expandHomeDirectory");function hC(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(hC,"expandSystemTempAlias");function NL(e,t){let n=vt.resolve(t??process.cwd()),r=hC(pC(e)),o=vt.isAbsolute(r)?vt.resolve(r):vt.resolve(n,r);return dh(o)}i(NL,"resolvePermissionPath");function gC(){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(dh(n))}catch{}return ld=Array.from(e),ld}i(gC,"getSystemTempDirectories");function fh(e){let t=dh(e??process.cwd());return{projectPlanDoc:vt.join(t,RL),systemTempDirs:gC()}}i(fh,"getPlanModeAllowedWritablePaths");function ah(e,t){let n=NL(e,t),{projectPlanDoc:r,systemTempDirs:o}=fh(t);return OL(n,r)?!0:o.some(s=>vs(n,s))}i(ah,"isPlanModeAllowedPath");function BL(e){let{projectPlanDoc:t,systemTempDirs:n}=fh(e),r=n[0]??fc.tmpdir();return`${t} or the system temp directory (${r})`}i(BL,"formatPlanModeAllowedLocations");var HL=new Set(["-a","--append","-i","--ignore-interrupts"]);function FL(e){let t=[];for(let n=1;n<e.argv.length;n+=1){let r=e.argv[n];HL.has(r)||r.startsWith("-")||t.push(r)}return t}i(FL,"collectTeeTargets");function WL(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(WL,"collectPowerShellWriteTargets");function Qo(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 FL(s))n(c);else if(mC.has(a))for(let c of WL(s))n(c)}}return Array.from(t)}i(Qo,"collectBashWriteTargets");function mh(e,t){if(!Xn(e))return{dangerous:!1};let n=new Set([...Qo(e),...DL(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(mh,"getBashOutsideProjectWriteRisk");function Dr(e,t,n){let r=BL(n);if(Dw(e))return null;if(Pn.has(e)){let o=typeof t.path=="string"?t.path:"";return o?ah(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=Qo(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=>!ah(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 co from"node:path";import UL from"node:os";function Is(e,t){try{let n=co.resolve(e),r=co.resolve(t);return n===r?!0:n.startsWith(r+co.sep)}catch{return!1}}i(Is,"isPathUnder");function jL(){try{return Ki()}catch{return}}i(jL,"safeGetAgentConfigHome");function yC(e,t){let n=jL();if(n&&Is(e,n))return"user-kodax";let r=co.join(co.resolve(t),".kodax");if(Is(e,r))return"project-kodax"}i(yC,"resolveProtectedZone");function GL(){let e=new Set;try{e.add(UL.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(GL,"getSystemTempDirs");var KL=new Set(["bash"]),mc={toolNames:KL,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=GL(),c=co.resolve(t);for(let l of fd(n)){let u;try{u=co.resolve(t,l)}catch{continue}let m=yC(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 Qo(n)){let u;try{u=co.resolve(t,l)}catch{continue}yC(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 VL="[Thinking]",zL="[/Thinking]",XL="Untitled Session",xC=50,YL=60,SC="...",TC=["[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:"],CC=[/(?:^|\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:/],qL=/(^|\r?\n)\[Thinking\]\r?\n([\s\S]*?)\r?\n\[\/Thinking\](?=\r?\n|$)/g;function JL(e){let t=-1;for(let n of TC){let r=e.indexOf(n);r>=0&&(t===-1||r<t)&&(t=r)}for(let n of CC){let r=n.exec(e);r&&r.index>=0&&(t===-1||r.index<t)&&(t=r.index)}return t}i(JL,"findControlPlaneCutIndex");function QL(e){return TC.some(t=>e.includes(t))||CC.some(t=>t.test(e))}i(QL,"hasControlPlaneSignal");function bC(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(bC,"collectTextBlocks");function ZL(e){return typeof e=="string"?e:Array.isArray(e)?bC(e).join(`
42
+ `):""}i(ZL,"extractAssistantTextOnly");function hc(e,t,n){n.trim().length!==0&&e.push({type:t,text:n})}i(hc,"pushSeed");function wC(e){return e.replace(/^\n+/,"").replace(/\n+$/,"")}i(wC,"stripLegacyTagBoundaryNewlines");function eP(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(eP,"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 tP(e){if(!e.includes(VL)||!e.includes(zL))return e.trim().length>0?[{type:"assistant",text:e}]:[];let t=[],n=0;for(let r of e.matchAll(qL)){let o=r.index??-1,s=r[1]??"",a=r[2]??"";if(o<0)continue;let c=o+s.length;hc(t,"assistant",wC(e.slice(n,c))),hc(t,"thinking",a),n=o+r[0].length}return hc(t,"assistant",wC(e.slice(n))),t.length===0?e.trim().length>0?[{type:"assistant",text:e}]:[]:t}i(tP,"parseLegacyAssistantContent");function nP(e){if(typeof e=="string")return tP(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=eP(o);s&&t.push({type:"tool_summary",text:s})}break;case"tool_result":case"redacted_thinking":break;default:break}return r(),t}i(nP,"extractAssistantHistorySeeds");var rP=["You are the Scout role","You are the Generator role","You are the Planner role","You are the Evaluator role"],oP=/\r?\n?\`\`\`kodax[\w-]*[\s\S]*?\`\`\`\s*/g;function iP(e){return rP.some(t=>e.includes(t))}i(iP,"isManagedWorkerPrompt");function sP(e){return e.replace(oP,"").trim()}i(sP,"stripManagedProtocolBlocks");function yc(e){switch(e.role){case"assistant":return nP(e.content).map(n=>({...n,text:sP(n.text)})).filter(n=>n.text.length>0);case"user":{if(e._synthetic)return[];let t=xc(e.content);return t.trim().length===0||iP(t)?[]:[{type:"user",text:t}]}case"system":return[];default:return[]}}i(yc,"extractHistorySeedsFromMessage");function xc(e){return typeof e=="string"?e:Array.isArray(e)?bC(e).join(`
44
+ `):""}i(xc,"extractTextContent");function aP(e){let t=e.replace(/\s+/g," ").trim();return t?t.length>xC?`${t.slice(0,xC)}${SC}`:t:XL}i(aP,"formatSessionTitle");function wc(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.role!=="assistant")continue;let r=ZL(n.content);if(r)return r}return""}i(wc,"extractLastAssistantText");function vC(e,t,n,r){let o=[wc(e),t.trim(),n?.trim()??"",r?.trim()??""];for(let s of o){let a=lo(s);if(a)return a}return""}i(vC,"resolveCompletedAssistantText");function lo(e){let t=e.trim();if(!t)return"";let n=JL(t);return n===0?"":(n>0?t.slice(0,n):t).trim()}i(lo,"sanitizeUserFacingAssistantText");function IC(e){let t=e.trim();return t.length>0&&lo(t).length===0&&QL(t)}i(IC,"isControlPlaneOnlyAssistantText");function ks(e){let t=e.find(r=>r.role==="user"),n=t?xc(t.content):"";return aP(n)}i(ks,"extractTitle");function cP(e,t=YL){let n=e.replace(/\n/g," "),r=n.length>t?SC:"";return n.slice(0,t)+r}i(cP,"formatMessagePreview");import d from"chalk";import pd from"fs";import RC from"path";var hd=kn("config.json");function EC(){return RC.join(process.cwd(),".kodax","config.local.json")}i(EC,"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=kC(n.classifierModel),l=kC(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 kC(e){if(typeof e!="string")return;let t=e.trim();return t.length===0?void 0:t}i(kC,"nonEmptyString");function Sc(e){try{if(pd.existsSync(e))return JSON.parse(pd.readFileSync(e,"utf-8"))}catch{}return{}}i(Sc,"readJsonFile");function MC(e,t){pd.mkdirSync(RC.dirname(e),{recursive:!0}),pd.writeFileSync(e,JSON.stringify(t,null,2))}i(MC,"writeJsonFile");function Tc(e){let t=Sc(hd);MC(hd,{...t,permissionMode:e})}i(Tc,"savePermissionModeUser");function Rs(){let e=Sc(hd),t=Sc(EC()),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=EC(),s=Sc(o),a=s.alwaysAllowTools??[];a.includes(r)||MC(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}},lP=new Es;import $n from"chalk";import{Buffer as PC}from"node:buffer";import{spawn as uP}from"node:child_process";import AC from"node:process";var Zo="\x1B",dP="\x07",ph=`${Zo}\\`;function _C(e,t){return e.SSH_CONNECTION?!1:t==="win32"||t==="darwin"||t==="linux"}i(_C,"shouldPreferNativeClipboard");function fP(e,t){let n=PC.from(e,"utf8").toString("base64"),r=t.TERM==="xterm-kitty"?ph:dP,o=`${Zo}]52;c;${n}${r}`;return t.TMUX?`${Zo}Ptmux;${o.replaceAll(Zo,`${Zo}${Zo}`)}${ph}`:t.STY?`${Zo}P${o}${ph}`:o}i(fP,"buildOscSequence");async function xd(e,t,n){return new Promise((r,o)=>{let s=uP(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 mP(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=PC.from(e,"utf8");return[["powershell",["-NoProfile","-NonInteractive","-Command",t],n],["pwsh",["-NoProfile","-NonInteractive","-Command",t],n],["cmd",["/c","chcp 65001 >nul & clip"],n]]}i(mP,"buildWindowsClipboardCandidates");async function LC(e,t,n){if(t.SSH_CONNECTION)return!1;switch(n){case"win32":{let r=mP(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(LC,"tryNativeClipboard");async function pP(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(pP,"tryTmuxClipboard");async function ei(e,t={}){let n=t.env??AC.env,r=t.platform??AC.platform,o=e.trimEnd(),s=fP(o,n);if(!o)throw new Error("Nothing to copy.");if(_C(n,r))try{if(await LC(o,n,r))return{path:"native"}}catch{}if(await pP(o,n))return{path:"tmux-buffer"};if(t.terminalWrite?.(s))return{path:"osc52"};if(!_C(n,r))try{if(await LC(o,n,r))return{path:"native"}}catch{}throw new Error("Unable to access any clipboard path.")}i(ei,"copyTextToClipboard");var hh={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 ei(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 hP(e){return e.runtimeInfo?.workspaceRoot??e.runtimeInfo?.executionCwd??process.cwd()}i(hP,"resolveCwd");function OC(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=gw(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(OC,"readTopicFiles");function gP(e){return e.map(t=>`- [${t.title}](${t.filename}) \u2014 ${t.description}`)}i(gP,"buildIndexLines");async function yP(e,t){console.log(be.cyan(`
53
+ [memory] per-project memory directory`)),console.log(be.dim(` ${e}`));let n=OC(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(yP,"listMemory");async function xP(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=OC(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=gP(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(xP,"rebuildMemory");function wP(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(wP,"openMemory");function $C(){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($C,"printHelp");function SP(){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(SP,"printDetailedHelp");var gh={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=hP(t),r=fw(n),o=mw(n),s=(e[0]??"list").toLowerCase();if(s==="help"||s==="--help"||s==="-h"){$C();return}if(s==="list"){await yP(r,o);return}if(s==="rebuild"){await xP(r,o);return}if(s==="open"){wP(r,o);return}console.log(be.yellow(`
77
+ [memory] unknown subcommand: ${s}`)),$C()},"handler"),detailedHelp:SP};import $e from"chalk";function DC(){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(DC,"printHelp");function TP(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(!rp(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(!rp(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(TP,"parseCreateArgs");function CP(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(CP,"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=bw(e.lineage,n,r),await t.saveSession()}i(Cc,"persist");async function bP(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=TP(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=_w(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(bP,"doCreate");async function vP(e){if(!e.lineage){console.log($e.red("[/goal] no active session lineage"));return}let t=Qi(e.lineage);console.log(CP(t))}i(vP,"doStatus");async function IP(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=Lw(n);await Cc(e,t,r,"paused"),console.log($e.green("[/goal] paused"))}i(IP,"doPause");async function kP(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=Pw(n);await Cc(e,t,r,"resumed"),console.log($e.green("[/goal] resumed"))}i(kP,"doResume");async function RP(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(RP,"doClear");var NC={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"){DC();return}if(r==="status"){await vP(t);return}if(r==="pause"){await IP(t,n);return}if(r==="resume"){await kP(t,n);return}if(r==="clear"){await RP(t,n);return}await bP(e,t,n)},"handler"),detailedHelp:DC};import Qt from"chalk";var yh={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 EP}from"node:child_process";import{promisify as MP}from"node:util";var AP=MP(EP),xh=1e5;async function Sd(e,t){let{stdout:n}=await AP("git",e,{cwd:t,maxBuffer:67108864});return n}i(Sd,"git");async function _P(e){for(let t of["main","master","develop"])try{return await Sd(["rev-parse","--verify",t],e),t}catch{}return"HEAD"}i(_P,"detectBaseBranch");async function LP(e,t){let n=e[0];if(n==="base"){let r=await _P(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(LP,"getDiff");var BC={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 LP(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>xh&&(s=`${s.slice(0,xh)}
105
+
106
+ [diff truncated to ${xh} 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 PP(e,t){return t===0?`[Pasted text #${e}]`:`[Pasted text #${e} +${t} lines]`}i(PP,"formatPastedTextRef");function $P(e,t){return`[...Truncated text #${e} +${t} lines...]`}i($P,"formatTruncatedTextRef");var OP=/\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;function DP(e){let t=[],n=new RegExp(OP.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(DP,"parseReferences");function NP(e,t){let n=DP(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(NP,"expandPastedTextRefs");var BP=/\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]$/,HP=/^\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/;function FP(e,t){if(t>=e.length)return!0;let n=e[t];return!n||/\s/.test(n)}i(FP,"isAtWordBoundaryAfter");function WP(e,t){if(t===0)return!0;let n=e[t-1];return!n||/\s/.test(n)}i(WP,"isAtWordBoundaryBefore");function bd(e,t){if(t<=0||!FP(e,t))return null;let r=e.slice(0,t).match(BP);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||!WP(e,t))return null;let r=e.slice(t).match(HP);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 HC(e){return e.length>800||Cd(e)>2}i(HC,"shouldReplacePasteWithPlaceholder");function FC(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=$P(t,c);return{truncatedText:o+l+s,placeholderContent:a}}i(FC,"maybeTruncateLongInput");var wh=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:PP(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 NP(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 WC(){return Td===null&&(Td=new wh),Td}i(WC,"getOrCreateModulePasteStore");function Id(){return Td??void 0}i(Id,"getActivePasteStore");import{createHash as UP}from"node:crypto";import{mkdir as jP,readdir as GP,readFile as KP,stat as VP,unlink as zP,writeFile as XP}from"node:fs/promises";import*as Sh from"node:path";var YP="paste-cache",qP=720*60*60*1e3;function Th(){return kn(YP)}i(Th,"getPasteCacheDir");function UC(e){return Sh.join(Th(),`${e}.txt`)}i(UC,"getPastePath");function jC(e){return UP("sha256").update(e).digest("hex").slice(0,16)}i(jC,"hashPastedText");async function GC(e,t){try{let n=Th();return await jP(n,{recursive:!0}),await XP(UC(e),t,{encoding:"utf8",mode:384}),!0}catch{return!1}}i(GC,"storePastedText");async function kd(e){try{return await KP(UC(e),{encoding:"utf8"})}catch{return null}}i(kd,"retrievePastedText");async function KC(e=qP){let t=Th(),n=Date.now()-e,r=0,o=0,s;try{s=await GP(t)}catch{return{scanned:r,removed:o}}for(let a of s){if(!a.endsWith(".txt"))continue;r+=1;let c=Sh.join(t,a);try{(await VP(c)).mtimeMs<n&&(await zP(c),o+=1)}catch{}}return{scanned:r,removed:o}}i(KC,"cleanupOldPastes");import*as Rh from"path";import*as VC from"os";function JP(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}i(JP,"escapeRegExp");function QP(e,t){if(!e)return;let n=e.trim();if(!n.startsWith("/"))return;let r=new RegExp(`^/${JP(t)}(?:\\s+)?`,"i"),o=n.replace(r,"").trim();return o.length>0?o:void 0}i(QP,"deriveArgumentHintFromUsage");function Ch(e,t="builtin"){return{...e,source:e.source??t,userInvocable:e.userInvocable??!0,disableModelInvocation:e.disableModelInvocation??!1,argumentHint:e.argumentHint??QP(e.usage,e.name)}}i(Ch,"toCommandDefinition");function bh(e){for(let t of vh)try{let n=Ch(t,"builtin");e.register(n)}catch(n){console.error(`Failed to register command "${t.name}":`,n)}}i(bh,"registerBuiltinCommands");import*as Nr from"fs";import*as ti from"path";function ZP(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(ZP,"normalizeAliases");function e$(e){if(e==="critical"||e==="high"||e==="medium"||e==="low")return e}i(e$,"normalizePriority");function t$(e){return{disableModelInvocation:e["disable-model-invocation"]===!0,userInvocable:e["user-invocable"]!==!1,allowedTools:xw(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:ww(e.hooks),frontmatter:e}}i(t$,"buildExecutionMetadata");function n$(e,t){try{let n=Nr.readFileSync(e,"utf-8"),[r,o]=yw(n),s=r??{},a=ti.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:ZP(s.aliases),priority:e$(s.priority),content:o.trim(),location:t,path:e,frontmatter:s,execution:t$(s)}}catch(n){console.error(`Error parsing command file ${e}:`,n);return}}i(n$,"parseCommandFile");function Ih(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=ti.resolve(s);try{c=Nr.realpathSync.native?.(s)??Nr.realpathSync(s)}catch{c=ti.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=ti.join(s,u),p=n$(m,a);p&&t.push(p)}}catch(l){console.error(`Error scanning directory ${s}:`,l)}}}return t}i(Ih,"discoverCommands");function kh(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(kh,"registerDiscoveredCommands");function zC(e,t){bh(e);try{let n=VC.homedir(),r=t??process.cwd(),o=Ih([{path:Rh.join(r,".kodax","commands"),location:"project"},{path:kn("commands"),location:"user"},{path:Rh.join(n,".agents","commands"),location:"user"}]);kh(o,e)}catch(n){console.error("Failed to discover commands:",n)}}i(zC,"registerAllCommands");import{execFile as r$}from"child_process";import o$ from"fs";import Eh from"path";import{promisify as i$}from"util";var s$=i$(r$);function uo(e){if(!(!e||!e.trim()))return Eh.resolve(e).replace(/\\/g,"/")}i(uo,"normalizePath");async function bc(e,t){try{let{stdout:n}=await s$("git",t,{cwd:e,windowsHide:!0,maxBuffer:1048576}),r=n.trim();return r||void 0}catch{return}}i(bc,"gitStdout");function a$(e){let t=uo(e);if(t)return Eh.posix.basename(t)===".git"?Eh.posix.dirname(t):t}i(a$,"deriveCanonicalRepoRoot");async function Ms(e={}){let t=uo(e.cwd??process.cwd())??process.cwd().replace(/\\/g,"/"),n=uo(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:a$(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:uo(e.canonicalRepoRoot)===uo(t.canonicalRepoRoot)}i(Rd,"isSameCanonicalRepo");function XC(e){return!!(e?.workspaceRoot&&o$.existsSync(e.workspaceRoot))}i(XC,"workspaceExists");function ni(e){let t=uo(e.runtimeInfo?.workspaceRoot??e.gitRoot),n=uo(e.runtimeInfo?.executionCwd??t),r=uo(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(ni,"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 c$(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(c$,"summarizeAgentsFiles");function l$(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(l$,"createManualCompactionConfig");function Mh(e){e.runtimeInfo?.workspaceRoot?console.log(d.dim(` Workspace unchanged: ${xn(e.runtimeInfo)}`)):console.log(d.dim(" Workspace unchanged."))}i(Mh,"printWorkspaceUnchangedNote");var vh=[{name:"help",aliases:["h","?"],description:"Show all available commands",usage:"/help [command]",handler:i(async e=>{e.length>0?S$(e[0]):w$()},"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=Do(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??No(t.messages),m=l$(o,u,l);console.log(d.dim(`
134
+ [Compacting conversation...]`)),n.startCompacting?.();try{let p=await vw(t.messages,m,a,l,c,void 0,u,Bw,Hw);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=c$(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=k$(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 T$(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});ZC(s);return}if(o==="warm"){let s=await kw({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace});x$(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=p$(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=h$(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=YC(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=YC(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]`)),Mh(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]`)),Mh(t)):(await n.deleteSession?.(e[0]),console.log(d.green(`
229
+ [Session deleted: ${e[0]}]`)),Mh(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=cp(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(` ! ${ip(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=Xw(s,a);if(!c){console.log(d.red(`
252
+ [Provider details unavailable: ${s}]`)),console.log();return}let l=Jw(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: ${Yw(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=Fo(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(sp(s))}`)),console.log(d.dim(`Actual execution: ${ap(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"||Oo.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=Fo(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(sp(a))}`)),console.log(d.dim(`Actual execution: ${ap(r.reasoningMode,a)}`)),console.log(d.dim(`Usage: /reasoning off|auto|quick|balanced|deep
264
+ `));return}let o=e[0].toLowerCase();if(!Oo.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=g$(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 QC(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 QC(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")},hh,gh,NC,yh,BC],u$={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 d$(e){let t=Md();return e.map(n=>t.get(n)).filter(n=>n!==void 0).filter(n=>n.userInvocable!==!1)}i(d$,"getCommandsForCategory");function f$(e){return e!=="off"}i(f$,"reasoningModeToLegacyThinking");var m$=["auto","off","oss","premium-shared","premium-native"];function p$(e){return e&&m$.includes(e)?e:null}i(p$,"normalizeRepoIntelligenceMode");function YC(e){let t=e?.trim();return!t||t==="default"||t==="reset"||t==="clear"?null:t}i(YC,"normalizeRuntimeOverride");function h$(e,t){return e?e==="toggle"?!t:e==="on"||e==="true"||e==="1"?!0:e==="off"||e==="false"||e==="0"?!1:null:null}i(h$,"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=f$(e),o=vc({reasoningMode:e,thinking:r});return t.setReasoningMode?t.setReasoningMode(e):(n.reasoningMode=e,n.thinking=r),o}i(qC,"applyReasoningMode");function g$(e,t,n){let r=vc({agentMode:e});return t.setAgentMode?t.setAgentMode(e):n.agentMode=e,r}i(g$,"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 y$(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(y$,"formatRepoIntelligenceSummary");function ZC(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(ZC,"printRepoIntelligenceInspection");function x$(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`)),ZC(e)}i(x$,"printRepoIntelligenceWarmResult");function JC(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(JC,"printCommandSection");function w$(){console.log(d.bold(`
301
+ Available Commands:
302
+ `));let e=Md(),t=new Set;for(let[r,o]of Object.entries(u$)){let s=d$(o);if(s.length!==0){for(let a of s)t.add(a.name.toLowerCase());JC(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 b$()){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"])JC(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(w$,"printHelp");function S$(e){ri.size===0&&Ah();let t=ri.get(e.toLowerCase());if(!t){let n=eb(e);if(!n){console.log(d.yellow(`
303
+ [Unknown command: /${e}. Type /help for available commands]`));return}console.log(d.cyan(`
304
+ /${n.name}`)),n.aliases?.length&&console.log(d.dim(`Aliases: ${n.aliases.join(", ")}`)),console.log(d.dim(`
305
+ ${n.description}`)),console.log(d.dim(`
306
+ Usage: ${v$(n)}`)),console.log();return}t.detailedHelp?t.detailedHelp():(console.log(d.cyan(`
307
+ /${t.name}`)),t.aliases?.length&&console.log(d.dim(`Aliases: ${t.aliases.join(", ")}`)),console.log(d.dim(`
308
+ ${t.description}`)),t.usage&&console.log(d.dim(`
309
+ Usage: ${t.usage}`)),console.log())}i(S$,"printDetailedHelp");async function T$(e,t,n=[]){let r=n[0]?.toLowerCase(),o=e.contextTokenSnapshot?.currentTokens??No(e.messages),s=e.contextTokenSnapshot?.source??"estimate",a=zw(t.provider),c=yu(t.provider,t.model,t.reasoningMode);if(console.log(d.bold(`
310
+ Session Status:
311
+ `)),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=ip(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(y$(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(T$,"printStatus");async function QC(e,t){let n=Rr(t.gitRoot);n.size===0&&await Bo(t.gitRoot),C$(n.listUserInvocable())}i(QC,"handleSkillNamespaceCommand");function C$(e){if(console.log(d.bold(`
312
+ Available Skills:
313
+ `)),e.length===0){console.log(d.dim(" No skills found.")),console.log(d.dim(`
314
+ 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(C$,"printSkillsListPiMonoStyle");var ri=new Es;function Ah(e){ri.size>0||zC(ri,e)}i(Ah,"initCommandRegistry");function Md(e){return Ah(e),ri}i(Md,"getCommandRegistry");function b$(){return Er()?.listCommands().filter(t=>t.metadata?.userInvocable!==!1)??[]}i(b$,"getActiveExtensionCommands");function eb(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(eb,"getActiveExtensionCommand");function v$(e){return e.usage??`/${e.name}`}i(v$,"formatExtensionCommandUsage");function I$(e){return Array.isArray(e)?e.map(t=>String(t)).join(", "):e&&typeof e=="object"?JSON.stringify(e):String(e)}i(I$,"formatExtensionDiagnosticValue");function k$(e){if(!e)return;let t=Object.entries(e).filter(([,n])=>n!==void 0).map(([n,r])=>`${n}=${I$(r)}`);return t.length>0?t.join(" | "):void 0}i(k$,"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 R$(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(R$,"toExtensionInvocationRequest");async function E$(e,t,n){let r=Er();if(!r)return console.log(d.yellow(`
315
+ [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=R$(e,o);return s?{invocation:s}:!0}i(E$,"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(ri.size===0&&Ah(t.gitRoot),e.skillInvocation)return await M$({command:e.skillInvocation.name,args:e.args},t);let o=ri.get(e.command);if(o){if(o.userInvocable===!1)return console.log(d.yellow(`
316
+ [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(`
317
+ [Command failed: ${a instanceof Error?a.message:String(a)}]`)),!1}}let s=eb(e.command);if(s)try{return await E$(s,e.args,t)}catch(a){return console.log(d.red(`
318
+ [Extension command failed: ${a instanceof Error?a.message:String(a)}]`)),!1}return console.log(d.yellow(`
319
+ [Unknown command: /${e.command}. Type /help for available commands]`)),!1}i(Ls,"executeCommand");async function M$(e,t){let n=Rr(t.gitRoot),r=e.command,o=e.args.join(" ");n.size===0&&await Bo(t.gitRoot);try{let s=n.get(r);if(!s)return console.log(d.red(`
320
+ [Skill not found: ${r}]`)),!1;if(!s.userInvocable)return console.log(d.yellow(`
321
+ [Skill "${r}" is not user-invocable]`)),!1;console.log(d.cyan(`
322
+ [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 Sw(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(`
323
+ [Error invoking skill: ${s instanceof Error?s.message:String(s)}]`)),!1}}i(M$,"executeSkillCommand");import{jsx as z$}from"react/jsx-runtime";import{useState as X$,useEffect as lb,useCallback as mo,useMemo as ub,createContext as Y$,useContext as db}from"react";import*as Ad from"fs";import*as Ic from"path";import{exec as A$}from"node:child_process";import*as Ps from"node:path";import{promisify as _$}from"node:util";var tb=_$(A$);function L$(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(L$,"pathFromPorcelainLine");async function nb(e,t=10){try{let[{stdout:n},{stdout:r}]=await Promise.all([tb("git rev-parse --show-toplevel",{cwd:e}),tb("git status --porcelain=v1 -uall",{cwd:e})]),o=n.trim(),s=[],a=new Set;for(let c of r.split(`
324
+ `)){if(!c.trim())continue;let l=L$(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(nb,"getRecentWorkingSetFiles");function fo(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(fo,"findCommandSlashIndex");var oi=class{static{i(this,"FileCompleter")}cwdSource;cache=new Map;cacheTimeout=5e3;recentCache=new Map;recentFilesProvider;constructor(t,n=nb){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=>{Ad.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=>{Ad.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 Md().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=fo(r);return o===-1?!1:!r.slice(o).includes(" ")}async getCompletions(t,n){let r=t.slice(0,n),o=fo(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 rb(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(rb,"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 Bo(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 P$=[{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"}],_d=[{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"}],ob=_d.slice(2).concat([{name:"off",description:"Disable reasoning",type:"enum"}]);function $$(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($$,"getModelArgs");var ib=[{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"}],_h=[{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"}],Lh=[{name:"all",description:"Delete ALL sessions",type:"enum"}],O$=[{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"}],D$=[{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"}],N$=[{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"}],sb=[{name:"default",description:"Clear the override and use the default value again",type:"enum"}];function B$(e){let[t=""]=e,n=t.toLowerCase(),r=e.length===1&&e[0]===""?0:e.length;return r<=1?O$:r>2?[]:n==="mode"?D$:n==="trace"?N$:n==="endpoint"?[...sb,{name:Iw,description:"Default local repointel daemon endpoint",type:"string"}]:n==="bin"?sb:[]}i(B$,"getRepointelArgs");var H$=new Map([["mode",P$],["thinking",_d],["think",_d],["t",_d],["reasoning",ob],["reason",ob],["plan",ib],["p",ib],["status",_h],["info",_h],["ctx",_h],["delete",Lh],["rm",Lh],["del",Lh]]),F$=new Set(["model","m"]),W$=new Set(["repointel","ri"]);function Ph(e,t,n=[]){let r=e.toLowerCase();return F$.has(r)?$$(t):W$.has(r)?B$(n):H$.get(r)??[]}i(Ph,"getCommandArguments");var Ld=class{static{i(this,"ArgumentCompleter")}canComplete(t,n){let r=t.slice(0,n),o=fo(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 Ph(c).length>0}async getCompletions(t,n){let r=t.slice(0,n),o=fo(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=Ph(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 U$(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=j$(t,a);return o+=c,{matched:!0,score:o,highlights:a}}i(U$,"fuzzyMatch");function j$(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(j$,"calculateWordBoundaryBonus");function G$(e,t){return e?t.toLowerCase().startsWith(e.toLowerCase()):!0}i(G$,"prefixMatch");function K$(e,t){if(G$(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{...U$(e,t),isPrefix:!1}}i(K$,"combinedMatch");function ab(e,t,n=0){return e?t.map(r=>{let o=K$(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(ab,"sortCandidatesCombined");var V$={debounceDelay:100,minTriggerChars:1,maxCompletions:10,minScore:0},$h=class{static{i(this,"AutocompleteProvider")}completers;options;state;listeners=new Set;debounceTimer=null;lastInput="";lastCursorPos=0;constructor(t={}){this.options={...V$,...t},this.completers=[new Rc(this.options.gitRoot),new Ld,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=fo(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 ab(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=fo(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 cb(e){return new $h(e)}i(cb,"createAutocompleteProvider");var Oh=Y$(null);function Dh({children:e,cwd:t,gitRoot:n}){let r=Pd({cwd:t,gitRoot:n,enabled:!0});return z$(Oh.Provider,{value:r,children:e})}i(Dh,"AutocompleteContextProvider");function ii(){return db(Oh)}i(ii,"useAutocompleteContext");function q$(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(q$,"completionToSuggestion");function Pd(e={}){let t=db(Oh);return t&&!e.cwd&&!e.gitRoot?t:J$(e)}i(Pd,"useAutocomplete");function J$(e){let{cwd:t,gitRoot:n,enabled:r=!0}=e,o=ub(()=>cb({cwd:t,gitRoot:n,debounceDelay:100,minTriggerChars:1,maxCompletions:8}),[]);lb(()=>{o.updateOptions({cwd:t,gitRoot:n})},[o,t,n]);let[s,a]=X$({visible:!1,selectedIndex:0,completions:[],loading:!1});lb(()=>o.subscribe(T=>{a(T)}),[o]);let c=ub(()=>s.completions.map((w,T)=>q$(w,T)),[s.completions]),l=mo((w,T)=>{if(!r){o.cancel();return}o.handleInput(w,T)},[o,r]),u=mo(()=>s.visible?o.acceptCompletionWithType():null,[o,s.visible]),m=mo(()=>s.visible?o.acceptCompletionWithType():null,[o,s.visible]),p=mo(()=>{s.visible&&o.selectPrevious()},[o,s.visible]),h=mo(()=>{s.visible&&o.selectNext()},[o,s.visible]),g=mo(()=>{s.visible&&o.cancel()},[o,s.visible]),y=mo(()=>{o.cancel()},[o]),x=mo(()=>o,[o]);return{state:s,suggestions:c,handleInput:l,handleTab:u,handleEnter:m,handleUp:p,handleDown:h,handleEscape:g,cancel:y,getProvider:x}}i(J$,"useAutocompleteImpl");import{useCallback as Ec,useRef as fb}from"react";var On=[];function Nh(e={}){let{maxSize:t=1e3,onSave:n}=e,r=fb(-1),o=fb(""),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(Nh,"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(`
325
+ `);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(`
326
+ `),this._lines.length===0&&(this._lines=[""]),this._clampCursor(),!0):!1}redo(){return this._historyIndex<this._history.length-1?(this._historyIndex++,this._text=this._history[this._historyIndex]??"",this._lines=this._text.split(`
327
+ `),this._lines.length===0&&(this._lines=[""]),this._clampCursor(),!0):!1}_updateText(){this._text=this._lines.join(`
328
+ `)}_setTextInternal(t){this._text=t,this._lines=t.split(`
329
+ `),this._lines.length===0&&(this._lines=[""])}moveToAbsoluteOffset(t){let 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 Q$,useCallback as _t,useRef as Bh,useEffect as Z$}from"react";function Hh(e={}){let{initialValue:t="",onTextChange:n}=e,r=Bh(null),o=Bh(null),s=Bh(null),[a,c]=Q$({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=WC());let l=r.current,u=o.current,m=_t(L=>{c(R=>({text:l.text,cursor:l.cursor,lines:l.lines,isPasting:L?.isPasting??R.isPasting,editingMode:L?.editingMode??R.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,R,P)=>{l.replaceRange(L,R,P),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),y=_t((L,R)=>{let P=R?.paste??!1;if(P&&HC(L)){let Me=L.replace(/\r\n/g,`
330
+ `).replace(/\r/g,`
331
+ `),{placeholder:Ae}=u.registerText(Me);l.insert(Ae,{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(),R=bd(l.text,L);R?l.replaceRange(R.start,R.end,""):l.backspace(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),T=_t(()=>{let L=l.getAbsoluteOffset(),R=vd(l.text,L);R?l.replaceRange(R.start,R.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 Z$(()=>()=>{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(Hh,"useTextBuffer");import{jsx as si,jsxs as Od}from"react/jsx-runtime";import{useState as gb}from"react";import{useCallback as $s,useEffect as Fh,useRef as $d}from"react";function mb(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(mb,"buildAutocompleteReplacement");var t1=500;function pb(e,t,n){return n==="up"?e===0:e>=Math.max(0,t-1)}i(pb,"shouldUseHistoryNavigation");function n1(e){return e.isAutocompleteVisible?"cancel-autocomplete":e.hasText?e.timeSinceLastEscapeMs<t1?"clear-input":"arm-clear":"pass-through"}i(n1,"resolvePromptEscapeBehavior");function r1(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(r1,"resolvePromptEnterBehavior");function o1(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(o1,"resolvePromptEditingCommand");function hb({onSubmit:e,onExit:t,focus:n=!0,initialValue:r="",cwd:o,gitRoot:s,autocompleteEnabled:a=!0,onInputChange:c,onHistoryRecall:l,onPopPendingInputs:u}){let m=$d(0),{add:p,navigateUp:h,navigateDown:g,reset:y,saveTempInput:x}=Nh(),{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:R,backspace:P,newline:Me,delete:Ae,undo:Y,redo:V,killLineRight:ae,killLineLeft:Q,deleteWordLeft:J}=Hh({initialValue:r,onTextChange:c}),q=$d(0);Fh(()=>{if($)return;if(T.length<=1e4){q.current=0;return}if(T.length===q.current)return;let ce=D.peekNextId(),{truncatedText:oe,placeholderContent:ze}=FC(T,ce);ze&&(D.registerTruncatedText(ze),q.current=oe.length,z(oe))},[T,$,D,z]);let Ie=ii(),ue=Pd({cwd:o,gitRoot:s,enabled:a}),{state:et,suggestions:Ue,handleInput:De,handleTab:me,handleEnter:Pt,handleUp:Rt,handleDown:ee,handleEscape:_}=Ie??ue;Fh(()=>{n||(m.current=0,v(),et.visible&&_())},[et.visible,n,_,v]);let O=$d(T);Fh(()=>{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=mb(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 Gr=Number.parseInt(wi[2]??"0",10);Number.isFinite(Gr)&&Gr>0&&B.add(Gr)}let un=[];for(let wi of B){let Gr=D.get(wi);Gr&&un.push(Gr)}p(oe,{pastedContents:un}),e({displayText:oe,fullText:ze,pastedContents:un}),se()},[p,se,e,D,T]),_e=$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 Qw(ce);if(oe.kind==="images"){let ze=oe.blocks.map(B=>`@${B.path}`).join(" ");R(`${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)}`)}},[R]),ke=$d(!1),Be=$s(async()=>{if(!ke.current){ke.current=!0;try{let ce=await Zw();if(ce.kind==="images"){let oe=ce.blocks.map(ze=>`@${ze.path}`).join(" ");R(`${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}}},[R]),$t=$s(ce=>{if(!n)return!1;if(ce.name==="v"&&(ce.ctrl||ce.meta))return Be(),!0;if(ce.name==="paste"&&ce.isPasted&&eS(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(n1({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(pb(I.row,A.length,"up")){x(T);let B=h();_e(B)}else ge("up");return!0}if(ce.name==="down"){if(oe)return ee(),!0;if(ce.ctrl)return ge("down"),!0;if(pb(I.row,A.length,"down")){let B=g();_e(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=o1(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 Ae(),!0;if(ce.name==="return"||ce.name==="newline")switch(r1({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 Me(),!0;case"line-continuation":return P(),Me(),!0;default:return te(),!0}return ce.insertable&&!ce.ctrl&&!ce.meta?(R(ce.sequence,ce.isPasted?{paste:!0}:void 0),!0):!1},[j,p,et.visible,P,w,se,I.row,Ae,n,ee,_,Rt,Pt,_e,me,at,Be,A,Q,ae,ge,L,g,h,Me,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(hb,"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}=io(),{cursor:h,lines:g,handleKey:y,isPasting:x,terminalFocused:w,editingMode:T}=hb({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(k,{flexDirection:"column",children:si(qp,{lines:g,cursorRow:h.row,cursorCol:h.col,prompt:o,placeholder:r,focus:s,terminalFocused:w,isPasting:x,editingMode:T,theme:"dark"})})},"InputPrompt"),i1=i(({onSubmit:e,placeholder:t,prompt:n=">"})=>{let[r,o]=gb(""),[s,a]=gb(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 Od(k,{children:[Od(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 Od(k,{children:[Od(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 xb,useEffect as wb}from"react";var yb=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],s1=80,Dd=new Set,Ac=null;function a1(){let e=Array.from(Dd);for(let t of e)t()}i(a1,"dispatchSharedSpinnerTick");function c1(e){return Dd.add(e),Ac===null&&(Ac=setInterval(a1,s1)),()=>{Dd.delete(e),Dd.size===0&&Ac!==null&&(clearInterval(Ac),Ac=null)}}i(c1,"subscribeToSharedSpinnerClock");function Sb(e=!0){let[t,n]=xb(0);return wb(()=>{if(e)return c1(()=>{n(r=>r+1)})},[e]),t}i(Sb,"useSharedSpinnerTick");var Dn=i(({color:e,theme:t})=>{let n=t??re("dark"),o=Sb(!0)%yb.length,s=e??n.colors.accent;return dt(b,{color:s,children:yb[o]})},"Spinner");function l1(e){return e<=0?0:Math.round(e/4)}i(l1,"estimateOutputTokens");function u1(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(u1,"formatElapsedDuration");var Tb=i(({roundStartedAt:e,charCount:t,theme:n})=>{let r=n??re("dark");if(Sb(e!==null),e===null)return null;let o=d1(Date.now()-e,t);return dt(b,{color:r.colors.dim,children:o})},"SpinnerStatsTail");function d1(e,t){let n=u1(e),r=l1(t);return r>0?` (${n} \xB7 \u2193 ${r} tokens)`:` (${n})`}i(d1,"buildSpinnerStatsText");var Cb=i(({label:e,dotCount:t=3,theme:n})=>{let r=n??re("dark"),[o,s]=xb(1);wb(()=>{let c=setInterval(()=>{s(l=>l%t+1)},300);return()=>clearInterval(c)},[t]);let a=".".repeat(o);return Bt(k,{children:[e&&dt(b,{color:r.colors.text,children:e}),dt(b,{color:r.colors.accent,children:a})]})},"DotsIndicator"),bb=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(k,{flexDirection:"column",children:[t&&dt(k,{marginBottom:1,children:dt(b,{color:o.colors.text,children:t})}),Bt(k,{children:[dt(b,{color:o.colors.primary,children:l}),dt(b,{dimColor:!0,children:u}),Bt(b,{children:[" ",s,"%"]})]})]})},"ProgressIndicator"),f1=i(({message:e,showSpinner:t=!1,theme:n})=>{let r=n??re("dark"),o=e??"Thinking";return Bt(k,{children:[t&&dt(k,{marginRight:1,children:dt(Dn,{theme:r})}),Bt(b,{color:r.colors.accent,children:[o,"\u2026"]})]})},"ThinkingIndicator"),m1=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(k,{children:[dt(Dn,{theme:a}),Bt(b,{color:a.colors.text,children:[" ",c,"\u2026"]})]}):r==="bar"&&n!==void 0?Bt(k,{flexDirection:"column",children:[dt(bb,{progress:n,label:c,theme:a}),t&&dt(k,{marginTop:1,children:dt(b,{dimColor:!0,children:t})})]}):r==="dots"?Bt(k,{flexDirection:"column",children:[dt(Cb,{label:c,theme:a}),t&&dt(k,{marginTop:1,children:dt(b,{dimColor:!0,children:t})})]}):r==="simple"?Bt(k,{flexDirection:"column",children:[Bt(b,{color:a.colors.accent,children:[c,"\u2026"]}),t&&dt(k,{marginTop:1,children:dt(b,{dimColor:!0,children:t})}),n!==void 0&&dt(k,{marginTop:1,children:Bt(b,{dimColor:!0,children:[n,"%"]})})]}):Bt(k,{flexDirection:"column",children:[Bt(k,{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(k,{marginTop:1,children:dt(b,{dimColor:!0,children:t})})]})},"LoadingIndicator");import{jsx as ye,jsxs as je,Fragment as Qh}from"react/jsx-runtime";import{useEffect as tv,useMemo as pr,memo as wn}from"react";import*as Lc from"node:path";function _c(e){if(pw(e)){let t=hw(e);return t?`[memory:${t}]`:"[memory]"}if(p1(e))return"[memory]"}i(_c,"memoryBadgeFor");function p1(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(p1,"isInsideAnyMemoryDir");function qe(e,t=120){return e.length>t?`${e.slice(0,t-3)}...`:e}i(qe,"truncateValue");function vb(e){if(e)return e.split(/\r?\n/).map(t=>t.trim()).find(Boolean)}i(vb,"extractFirstMeaningfulLine");function Rb(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(Rb,"splitDisplayToolName");function Nd(e){let{rolePrefix:t,toolLabel:n}=Rb(e);return t?`${t} ${n}`:n}i(Nd,"normalizeDisplayToolName");function Pc(e){return Rb(e).toolLabel}i(Pc,"stripRolePrefix");function Bd(e){if(!(!e||Array.isArray(e)||typeof e!="object"))return e}i(Bd,"asRecord");function Eb(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i(Eb,"readString");function It(e,...t){for(let n of t){let r=Eb(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 Mb(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(Mb,"readStringArray");function h1(e){if(typeof e=="string")return e.trim()||void 0;let t=Bd(e);if(t)return Eb(t.preview)??void 0}i(h1,"extractPreview");function Ib(e){if(e)try{return Bd(JSON.parse(e))}catch{return}}i(Ib,"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 Ab(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(Ab,"extractPathsFromPreview");function g1(e){let t=h1(e);if(typeof e=="string")return{record:Ib(t),preview:t};let n=Bd(e),r=Ib(t);return n?r?{record:{...n,...r},preview:t}:{record:n,preview:t}:{record:r,preview:t}}i(g1,"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=Mb(t?.paths)??Ab(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 Wh(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(Wh,"pushRangeSummary");function y1(e,t){let{record:n,preview:r}=g1(t),o=Pc(e).toLowerCase(),s=[];if(o.includes("changed_diff_bundle")){let a=Mb(n?.paths)??Ab(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}`),Wh(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")),Wh(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),Wh(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=Bd(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(y1,"summarizeToolDetails");function _b(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(_b,"extractChangedDiffRange");function x1(e){return e.split(/\r?\n/).map(t=>t.trim()).find(t=>t.startsWith("+")||t.startsWith("-")||t.startsWith("@@"))}i(x1,"extractDiffPreviewLine");function w1(e){let t=[],n=_b(e);if(n){let[o,s]=n.split("/");t.push(s?`Diff range: ${o} of ${s}`:`Diff range: ${n}`)}let r=x1(e);return r&&t.push(`Preview: ${qe(r,220)}`),t}i(w1,"formatChangedDiffExplanation");function S1(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(S1,"formatChangedDiffBundleExplanation");function Lb(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=_b(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(Lb,"summarizeToolOutputDetails");function Uh(e,t){let n=Nd(e);return t.length>0?`${n} - ${t.join(" - ")}`:n}i(Uh,"formatToolDetailSummary");function T1(e,t){if(!t)return;let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(T1,"formatDuration");function C1(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(C1,"formatToolStatusDetail");function kb(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(kb,"formatToolProgressExplanation");function jh(e){return e.startsWith("Error:")?"error":e.startsWith("Waiting:")?"accent":e.startsWith("Progress:")||e.startsWith("Running:")?"primary":"dim"}i(jh,"resolveToolExplanationTone");function b1(e){let t=vb(e.error),n=typeof e.output=="string"?vb(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(b1,"formatToolFailureExplanation");function Gh(e){if(typeof e.output!="string"||!e.output.trim())return kb(e);let t=Pc(e.name).toLowerCase();return e.status===N.Error?b1(e):e.status!==N.Success?kb(e):t.includes("changed_diff_bundle")?S1(e.output):t.includes("changed_diff")?w1(e.output):[]}i(Gh,"formatToolResultExplanation");function Kh(e,t){return Uh(e,y1(e,t))}i(Kh,"formatToolSummary");function Hd(e){let t=typeof e.output=="string"?Lb(e.name,e.output):[],n=t.length>0?Uh(e.name,t):Kh(e.name,e.input),r=C1(e),o=T1(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(Hd,"formatToolCallInlineText");function Fd(e){let t=new Map;for(let n of e){let r=typeof n.output=="string"?Lb(n.name,n.output):[],o=r.length>0?Uh(n.name,r):Kh(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(Fd,"collapseToolCalls");function $c(e){let t=Hd(e.tool);return e.count>1?`${t} x${e.count}`:t}i($c,"formatCollapsedToolInlineText");function Wd(e,t,n){let r=Kh(e,t);return r!==Nd(e)?`[Tools] ${r}`:n>0?`[Tools] ${Nd(e)} (${n} chars)`:`[Tools] ${Nd(e)}`}i(Wd,"formatLiveToolLabel");function Vh(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(Vh,"countNewlines");function Ud(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=Vh(e),l=Vh(s),u=Vh(a),m=Math.max(0,c-l-u);return`${s}
332
+ \u2026 +${m} lines \u2026
333
+ ${a}`}i(Ud,"truncateUserMessageForDisplay");var Pb="(?:\x1B[[0-9;]*m)*",v1=new RegExp(`^(${Pb})(?:[ \r]*
334
+ )+`),I1=new RegExp(`(?:
335
+ [ \r]*)+(${Pb})$`);function $b(e){return e.replace(v1,"$1").replace(I1,"$1")}i($b,"stripOuterBlankLines");var k1=new Set(["edit","write","multi_edit","insert_after_anchor"]),R1=20;function E1(e){return k1.has(Pc(e.name).trim().toLowerCase())}i(E1,"isMutationTool");function M1(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(M1,"classifyDiffLine");function A1(e,t,n,r,o){let s=[],a=!1;for(let p of n.split(/\r?\n/)){let{color:h,skip:g}=M1(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,R1);return m.forEach((p,h)=>{Pe(e,`${t}-diff-${h}`,p.text,mt(r,4),{color:p.color,indent:4})}),!o&&u.length>m.length&&Pe(e,`${t}-diff-more`,`... (${u.length-m.length} more lines)`,mt(r,4),{color:"dim",indent:4}),!0}i(A1,"pushDiffRows");var Ob=400,_1="... (thinking truncated; press Ctrl+O to inspect full reasoning)",Db=2e5,L1="... (thinking show-all truncated at 200K chars; full content available via session artifacts)",Bb=1e5;function P1(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(P1,"normalizeManagedLiveActivityLabel");function jd(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(jd,"formatTimestamp");function Hb(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(Hb,"getToolStatusIcon");function Fb(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(Fb,"getToolStatusColor");function $1(e,t){let n=Math.max(1,t),r=e.split(`
336
+ `),o=tn(r.length>0?r:[""],n,0,0);return o.visualLines.length>0?o.visualLines:[""]}i($1,"wrapText");function zh(e,t,n,r=!1){if(n||r)return e.length>Db?`${e.slice(0,Db)}
337
+
338
+ ${L1}`:e;let o=e.split(/\r?\n/),s=o.length>t,a=s?o.slice(0,t).join(`
339
+ `):e,c=a.length>Ob,l=c?a.slice(0,Ob):a;return!s&&!c?e:`${l}
340
+
341
+ ${_1}`}i(zh,"buildThinkingPreview");function O1(e){for(let t=e.length-1;t>=0;t--)if(e[t]?.type==="user")return t;return 0}i(O1,"findActiveRoundStartIndex");function Pe(e,t,n,r,o){let s=$1(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(Pe,"pushWrappedRows");function Oc(e,t){e.push({key:t,text:" "})}i(Oc,"pushBlankRow");function mt(e,t=0){return Math.max(20,e-t)}i(mt,"getBodyWidth");function D1(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(D1,"buildToolInputPreview");function N1(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(N1,"formatHarnessProfileShort");function B1(e,t,n,r,o,s=!1,a=!1){Pe(e,`${t}-tool-${n.id}-main`,`${Hb(n.status)} ${$c({tool:n,count:r})}`,mt(o,2),{color:Fb(n.status),indent:2,bold:n.status===N.Executing}),Gh(n).forEach((u,m)=>{let p=jh(u);Pe(e,`${t}-tool-${n.id}-explanation-${m}`,u,mt(o,4),{color:p,indent:4})});let l=n.status===N.Success&&typeof n.output=="string"&&n.output.trim().length>0&&E1(n)&&A1(e,`${t}-tool-${n.id}`,n.output,o,a);if(s){let u=D1(n),m=a?u:u.slice(0,6);m.forEach((p,h)=>{Pe(e,`${t}-tool-${n.id}-input-${h}`,p,mt(o,4),{color:"dim",indent:4})}),!a&&u.length>m.length&&Pe(e,`${t}-tool-${n.id}-input-more`,`... (${u.length-m.length} more lines)`,mt(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)=>{Pe(e,`${t}-tool-${n.id}-output-${g}`,h,mt(o,4),{color:"dim",indent:4})});let p=u.length;!a&&p>m.length&&Pe(e,`${t}-tool-${n.id}-output-more`,`... (${p-m.length} more lines)`,mt(o,4),{color:"dim",indent:4})}}i(B1,"buildToolRows");function H1(e,t,n,r){let o=n.status===N.Executing,s=o?"":`${Hb(n.status)} `;Pe(e,`${t}-tool-${n.id}-main`,`${s}${$c({tool:n,count:1})}`,mt(r,2),{color:Fb(n.status),indent:2,bold:o,spinner:o}),Gh(n).forEach((c,l)=>{let u=jh(c);Pe(e,`${t}-tool-${n.id}-explanation-${l}`,c,mt(r,4),{color:u,indent:4})})}i(H1,"buildLiveToolRows");function Wb(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 R of t)switch(R.type){case"user":Pe(L,`${R.id}-header`,`You [${jd(R.timestamp)}]`,n,{color:"primary",bold:!0,itemId:R.id}),Pe(L,`${R.id}-body`,Ud(R.text),mt(n,2),{color:"text",indent:2,itemId:R.id}),L.push({key:`${R.id}-blank`,text:" ",itemId:R.id});break;case"assistant":{let P=se?R.text:R.compactText??R.text;Pe(L,`${R.id}-header`,`Assistant [${jd(R.timestamp)}]`,n,{color:"secondary",bold:!0,spinner:R.isStreaming,itemId:R.id}),Pe(L,`${R.id}-body`,P,mt(n,2),{color:"text",indent:2,itemId:R.id}),L.push({key:`${R.id}-blank`,text:" ",itemId:R.id});break}case"system":Pe(L,`${R.id}-header`,`System [${jd(R.timestamp)}]`,n,{color:"dim",bold:!0,itemId:R.id}),Pe(L,`${R.id}-body`,R.text,mt(n,2),{color:"dim",indent:2,itemId:R.id}),L.push({key:`${R.id}-blank`,text:" ",itemId:R.id});break;case"tool_group":Pe(L,`${R.id}-header`,`Tools [${jd(R.timestamp)}]`,n,{color:"accent",bold:!0,itemId:R.id}),Fd(R.tools).forEach(P=>B1(L,R.id,P.tool,P.count,n,fe,se)),L.push({key:`${R.id}-blank`,text:" ",itemId:R.id});break;case"thinking":{let P=se?zh(R.text,o,z,se):R.compactText??zh(R.text,o,z,se);Pe(L,`${R.id}-header`,"Thinking",n,{color:"thinking",italic:!0,itemId:R.id}),Pe(L,`${R.id}-body`,P,mt(n,2),{color:"thinking",indent:2,italic:!0,itemId:R.id}),L.push({key:`${R.id}-blank`,text:" ",itemId:R.id});break}case"error":Pe(L,`${R.id}-header`,"\u2717 Error",n,{color:"error",bold:!0,itemId:R.id}),Pe(L,`${R.id}-body`,R.text,mt(n,2),{color:"error",indent:2,itemId:R.id}),L.push({key:`${R.id}-blank`,text:" ",itemId:R.id});break;case"info":Pe(L,`${R.id}-body`,`${R.icon??"\u2139"} ${$b(se?R.text:R.compactText??R.text)}`,n,{color:"info",itemId:R.id}),L.push({key:`${R.id}-blank`,text:" ",itemId:R.id});break;case"event":Pe(L,`${R.id}-body`,`${R.icon??">"} ${se?R.text:R.compactText??R.text}`,n,{color:"text",itemId:R.id}),L.push({key:`${R.id}-blank`,text:" ",itemId:R.id});break;case"hint":Pe(L,`${R.id}-header`,"\u{1F4A1} Hint",n,{color:"hint",bold:!0,itemId:R.id}),Pe(L,`${R.id}-body`,R.text,mt(n,2),{color:"dim",indent:2,itemId:R.id}),L.push({key:`${R.id}-blank`,text:" ",itemId:R.id});break;default:break}if(ge&&g.length>0&&(g.forEach(R=>{if(Pe(L,`iteration-${R.iteration}-header`,`\u2500\u2500 Round ${R.iteration} \u2500\u2500`,n,{color:"dim",bold:!0}),R.thinkingSummary){let P=R.thinkingLength>60?` (${R.thinkingLength} chars total)`:"";Pe(L,`iteration-${R.iteration}-thinking`,`\u{1F4AD} ${R.thinkingSummary}${P}`,mt(n,1),{color:"thinking",indent:1,italic:!0})}if(R.response){let P=R.response.slice(0,200);Pe(L,`iteration-${R.iteration}-response`,P,mt(n,1),{color:"text",indent:1}),R.response.length>200&&Pe(L,`iteration-${R.iteration}-response-more`,`... (${R.response.length} chars total)`,mt(n,1),{color:"dim",indent:1})}R.toolsUsed.length>0&&Pe(L,`iteration-${R.iteration}-tools`,`* tools: ${R.toolsUsed.join(", ")}`,mt(n,1),{color:"accent",indent:1}),Oc(L,`iteration-${R.iteration}-blank`)}),Pe(L,"iteration-current-header",`\u2500\u2500 Round ${y} (current) \u2500\u2500`,n,{color:"accent",bold:!0}),Oc(L,"iteration-current-blank")),r&&c){let R=zh(c,o,z,se);Pe(L,"thinking-stream-header","Thinking",n,{color:"thinking",italic:!0}),Pe(L,"thinking-stream-body",R,mt(n,2),{color:"thinking",indent:2,italic:!0}),Oc(L,"thinking-stream-blank")}if(r){let R="Thinking",P="",Me=N1(I),Ae=P1(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"} ${Me??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)R="Compacting";else if(T==="verifying")P=V,R="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`),Pe(L,"loading-tools-header",`${V}[Tools] ${ue.join(", ")}`,n,{color:"primary",bold:!0,spinner:ae>0}),m.forEach(et=>{H1(L,"loading-tools",et,n)}),Oc(L,"loading-tools-blank"),ae>0&&!l&&!ge)return L}else if(v)P=V||"[Plan] ",R=v;else if(u)P=V||"[Tool] ",R=Ae?.startsWith("[Tools]")?Ae:Wd(u,h,p);else if(s){P=V||"[Thinking] ";let ue=$&&F&&$>1?` round ${$}/${F}`:"";R=a>0?`${a} chars${ue}`:Ae?`${Ae}${ue}`:`processing${ue}`}else Ae&&(R=Ae);ge&&Pe(L,"loading-indicator",`${P}${R}...`,n,{color:"accent",spinner:!0})}if(l){let R=l.lastIndexOf(`
342
+ `),P=R>=0?l.slice(0,R+1):"";P.length>0&&(Pe(L,"streaming-header","Assistant",n,{color:"secondary",bold:!0}),Pe(L,"streaming-body",P,mt(n,2),{color:"text",indent:2}),Oc(L,"streaming-blank"))}return L}i(Wb,"buildTranscriptRows");function F1(e,t,n=1e3,r=!1,o=!1){return Bs(e,t,n,r,void 0,o)}i(F1,"buildStaticTranscriptSections");var Nb=new WeakMap;function Bs(e,t,n=1e3,r=!1,o,s=!1){return e.map(a=>{let c=r||!!o?.has(a.id),l=`${t}|${n}|${s?1:0}|${c?1:0}`,u=Nb.get(a);if(u!==void 0&&u.sig===l)return u.section;let m={key:a.id,rows:Wb({items:[a],viewportWidth:t,maxLines:n,showAllContent:s,showDetailedTools:c})};return Nb.set(a,{sig:l,section:m}),m})}i(Bs,"buildHistoryItemTranscriptSections");function W1(e,t){return{key:e,rows:Wb(t)}}i(W1,"buildDynamicTranscriptSection");function Gd(e){let{items:t,viewportWidth:n,maxLines:r=1e3,showDetailedTools:o=!1,showAllContent:s=!1,windowed:a=!1}=e;if(a)return{staticSections:[],activeItems:t};let c=O1(t),l=t.slice(0,c),u=t.slice(c);return{staticSections:F1(l,n,r,o,s),activeItems:u}}i(Gd,"buildTranscriptStaticPortion");function Kd(e){let{activeItems:t,viewportWidth:n,maxLines:r=1e3,showDetailedTools:o=!1,showAllContent:s=!1,expandedItemKeys:a,...c}=e,l=Bs(t,n,r,o,a,s),u=W1("active-pending",{...c,items:[],managedLiveEvents:[],lastLiveActivityLabel:c.lastLiveActivityLabel,viewportWidth:n,maxLines:r,showAllContent:s,showDetailedTools:o,expandedItemKeys:a}),m=u.rows.length>0?[u]:[];return{sections:l,previewSections:m}}i(Kd,"buildTranscriptDynamicPortion");function Vd(e,t){return{staticSections:e.staticSections,sections:t.sections,rows:ai(t.sections),previewSections:t.previewSections,previewRows:ai(t.previewSections)}}i(Vd,"composeTranscriptRenderModel");function Ub(e,t,n){let r=Vd(e,t);return n?{...r,staticSections:[n,...r.staticSections]}:r}i(Ub,"buildInlinePromptRenderModel");function jb(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(jb,"splitInlineLedgerModel");function U1(e){return e.replace(/^(You|Assistant|Tools|System) \[\d{1,2}:\d{2}[^\]]*\]$/u,"$1")}i(U1,"stripHeaderTimestamp");function Gb(e){let t=5381;for(let n of e.rows){let r=U1(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(Gb,"identifyInlineCommitSection");function zd(e){let t=Gd({items:e.items,viewportWidth:e.viewportWidth,maxLines:e.maxLines,showDetailedTools:e.showDetailedTools,showAllContent:e.showAllContent,windowed:e.windowed}),{items:n,...r}=e,o=Kd({...r,activeItems:t.activeItems});return Vd(t,o)}i(zd,"buildTranscriptRenderModel");function ai(e){return e.flatMap(t=>t.rows)}i(ai,"flattenTranscriptSections");function Kb(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(Kb,"identifyTranscriptSection");function Xh(e){let t=[...e.staticSections,...e.sections];return{staticSections:[],sections:t,rows:ai(t),previewSections:[...e.previewSections],previewRows:ai(e.previewSections)}}i(Xh,"materializeTranscriptRenderModel");function Vb(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?qh(e,a,c):e}i(Vb,"resolveVisibleTranscriptRows");var j1=200,G1=50,Yh=30;function zb(e,t,n=j1,r=G1){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(zb,"computeTranscriptCapStart");function Xb(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(Xb,"sliceHistoryToRecentRounds");function qh(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(qh,"getVisibleTranscriptRows");function Yb(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(Yb,"resolveScrollOffsetForTranscriptItem");function qb(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(qb,"resolveTranscriptColor");var Xd="__transcript_hidden_divider__";function Jb(e,t){let n=e===1?"message":"messages";return{id:Xd,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(Jb,"buildTranscriptHiddenDivider");function Jh(e){return e.id===Xd}i(Jh,"isTranscriptHiddenDivider");var Qb=new ss(500);function K1(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+=pp(a);return{graphemes:t,codeUnitOffsets:n,visualOffsets:r,length:t.length,displayWidth:s}}i(K1,"buildTranscriptTextMetrics");function Dc(e){let t=Qb.get(e);if(t)return t;let n=K1(e);return Qb.set(e,n),n}i(Dc,"getTranscriptTextMetrics");function po(e){return Dc(e).length}i(po,"getTranscriptTextLength");function Zb(e){return Dc(e).displayWidth}i(Zb,"getTranscriptTextDisplayWidth");function Yd(e,t){let n=Dc(e),r=Math.max(0,Math.min(n.length-1,t));return n.graphemes[r]??""}i(Yd,"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 ev(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(ev,"resolveTranscriptTextIndexAtVisualColumn");function qd(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(qd,"formatTimestamp");function V1(e,t){let n=e.split(`
343
+ `),r=n.slice(0,t),o=n.length>t;return{lines:r,hasMore:o}}i(V1,"truncateLines");function z1(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(z1,"getToolStatusIcon");function X1(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(X1,"getToolStatusColor");var Y1=wn(({item:e,theme:t})=>{let n=pr(()=>Ud(e.text),[e.text]);return je(k,{flexDirection:"column",marginBottom:1,children:[je(k,{children:[ye(b,{color:t.colors.primary,bold:!0,children:"You"}),je(b,{dimColor:!0,children:[" [",qd(e.timestamp),"]"]})]}),ye(k,{marginLeft:2,children:ye(b,{color:t.colors.text,children:n})})]})}),q1=wn(({item:e,theme:t,maxLines:n})=>{let r=e.compactText??e.text,{lines:o,hasMore:s}=V1(r,n);return je(k,{flexDirection:"column",marginBottom:1,children:[je(k,{children:[ye(b,{color:t.colors.secondary,bold:!0,children:"Assistant"}),e.isStreaming&&je(Qh,{children:[ye(b,{children:" "}),ye(Dn,{color:t.colors.accent})]}),je(b,{dimColor:!0,children:[" [",qd(e.timestamp),"]"]})]}),je(k,{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(`
344
+ `).length-n," more lines)"]})]})]})}),J1=wn(({item:e,theme:t})=>je(k,{flexDirection:"column",marginBottom:1,children:[je(k,{children:[ye(b,{color:t.colors.dim,bold:!0,children:"System"}),je(b,{dimColor:!0,children:[" [",qd(e.timestamp),"]"]})]}),ye(k,{marginLeft:2,children:ye(b,{dimColor:!0,children:e.text})})]})),Q1=wn(({tool:e,count:t=1,theme:n})=>{let r=z1(e.status),o=X1(e.status,n);return je(k,{flexDirection:"column",marginLeft:2,children:[je(k,{children:[je(b,{color:o,children:[r," "]}),ye(b,{color:n.colors.text,bold:!0,children:$c({tool:e,count:t})})]}),e.error&&ye(k,{marginLeft:2,children:ye(b,{color:n.colors.error,children:e.error})})]})}),Z1=wn(({item:e,theme:t})=>{let n=Fd(e.tools);return je(k,{flexDirection:"column",marginBottom:1,children:[je(k,{children:[ye(b,{color:t.colors.accent,bold:!0,children:"Tools"}),je(b,{dimColor:!0,children:[" [",qd(e.timestamp),"]"]})]}),n.map(r=>ye(Q1,{tool:r.tool,count:r.count,theme:t},`${r.tool.id}-${r.count}`))]})}),eO=wn(({item:e,theme:t})=>je(k,{flexDirection:"column",marginBottom:1,children:[ye(k,{children:ye(b,{color:t.colors.thinking,italic:!0,children:"Thinking"})}),ye(k,{marginLeft:2,children:ye(b,{color:t.colors.thinking,italic:!0,children:e.compactText??e.text})})]})),tO=wn(({item:e,theme:t})=>je(k,{flexDirection:"column",marginBottom:1,children:[ye(k,{children:je(b,{color:t.colors.error,bold:!0,children:["\u2717"," Error"]})}),ye(k,{marginLeft:2,children:ye(b,{color:t.colors.error,children:e.text})})]})),nO=wn(({item:e,theme:t})=>ye(k,{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]})})),rO=wn(({item:e,theme:t})=>ye(k,{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]})})),oO=wn(({item:e,theme:t})=>je(k,{flexDirection:"column",marginBottom:1,children:[ye(k,{children:je(b,{color:t.colors.hint,bold:!0,children:["\u{1F4A1}"," Hint"]})}),ye(k,{marginLeft:2,children:ye(b,{dimColor:!0,children:e.text})})]})),iO=wn(({item:e,theme:t,maxLines:n=1e3})=>{let r=pr(()=>re("dark"),[]),o=t??r;switch(e.type){case"user":return ye(Y1,{item:e,theme:o});case"assistant":return ye(q1,{item:e,theme:o,maxLines:n});case"system":return ye(J1,{item:e,theme:o});case"tool_group":return ye(Z1,{item:e,theme:o});case"thinking":return ye(eO,{item:e,theme:o});case"error":return ye(tO,{item:e,theme:o});case"event":return ye(nO,{item:e,theme:o});case"info":return ye(rO,{item:e,theme:o});case"hint":return ye(oO,{item:e,theme:o});default:return ye(k,{children:ye(b,{dimColor:!0,children:"Unknown item type"})})}});function sO(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(sO,"areTranscriptRowPropsEqual");var nv=wn(({row:e,theme:t,animateSpinners:n=!0,selectedItem:r=!1,selectionRange:o})=>{let s=qb(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(k,{marginLeft:e.indent??0,children:[e.spinner&&n&&je(Qh,{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(Qh,{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})]})},sO),Zh=wn(({section:e,theme:t,animateSpinners:n=!0})=>ye(k,{flexDirection:"column",children:e.rows.map(r=>ye(nv,{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:R=!1,showDetailedTools:P=!1,showAllContent:Me=!1,showLiveProgressRows:Ae=!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??zd({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:R,showDetailedTools:P,showAllContent:Me,showLiveProgressRows:Ae,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,R,P,Me,Ae,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]),_e=pr(()=>ue||Vb(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?_e:_,[_,J,_e,ue,L]),ke=pr(()=>_,[_]),Be=J?Math.max(0,J.viewportHeight):z;return tv(()=>{ae?.({scrollHeight:_.length,viewportHeight:J?Math.max(0,J.viewportHeight):Be??_.length})},[_.length,Be,ae,J]),tv(()=>{Q?.({rows:at,allRows:ke})},[ke,Q,at]),j?ye(k,{paddingY:1,children:ye(b,{dimColor:!0,children:"No messages yet. Start typing to begin."})}):je(k,{flexDirection:"column",children:[!L&&Pt.length>0&&ye(ws,{items:Pt,children:i($t=>ye(Zh,{section:$t,theme:et,animateSpinners:ge},$t.key),"children")}),at.map($t=>ye(nv,{row:$t,theme:et,animateSpinners:ge,selectedItem:Y?$t.key.startsWith(`${Y}-`):!1,selectionRange:q?.get($t.key)},$t.key))]})},"MessageList");var aO=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(k,{flexDirection:"column",marginBottom:1,children:[ye(b,{color:r,bold:!0,children:e==="user"?">":e==="assistant"?"<":"#"}),ye(b,{children:t})]})},"SimpleMessageDisplay");import{jsx as tg,jsxs as ef}from"react/jsx-runtime";import IO,{useMemo as ng}from"react";var cO="\u{1F504}",lO="\u2588",uO="\u2592",dO="\u2192",fO=" \xB7 ";function mO(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(mO,"formatReasoningModeShort");function pO(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(pO,"formatReasoningCapabilityShort");function hO(e){switch(e){case"off":return"dim";case"quick":return"green";case"balanced":return"yellow";case"deep":return"magenta";default:return"cyan"}}i(hO,"getReasoningColor");function rv(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(rv,"formatTokenCount");function gO(e){let t=Math.min(10,Math.max(0,Math.round(e/10))),n=10-t;return`${lO.repeat(t)}${uO.repeat(n)}`}i(gO,"createMiniProgressBar");function yO(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(yO,"getContextColor");function xO(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(xO,"getPermissionModeColor");function wO(e,t){let n=bs(e);return!(e==="auto"||e==="auto-in-project")||!t?n:`${n}${t==="llm"?"[LLM]":"[RULES]"}`}i(wO,"buildPermissionModeText");function SO(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(SO,"formatToolAction");function TO(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(TO,"formatHarnessProfileShort");function Jd(e,t){return t&&t>0?`${e} (${t} chars)`:e}i(Jd,"formatThinkingStatus");function Qd(e,t,n){let r=SO(e);return n?`${r} (${n}...)`:t&&t>0?`${r} (${t} chars)`:r}i(Qd,"formatToolStatus");function eg({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 - ${Qd(t,s,a)}`:n?Jd("Routing",r):"Routing";if(c==="preflight"){let g=u??"Scout";return h?`${g} - ${h}`:t?`${g} - ${Qd(t,s,a)}`:n?Jd(g,r):g}if(l){let y=`${TO(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} - ${Qd(t,s,a)}`:n?Jd(y,r):y}if(h)return h;if(t)return Qd(t,s,a);if(n)return Jd("Thinking",r)}i(eg,"buildBusyStatusText");function CO({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(CO,"resolveIterationSegments");function bO(e){if(e.length!==0)return`${cO} ${e.map(t=>`${t.label} ${t.current}/${t.max}`).join(fO)}`}i(bO,"formatLabeledIterationStatus");function vO(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:R}=e,P=[{id:"agent-mode",text:`KodaX - ${r.toUpperCase()}`,color:"primary",bold:!0},{id:"permission-mode",text:wO(n,e.autoModeEngine),color:xO(n)}],Me=mO(h),Ae=pO(g);P.push({id:"reasoning-mode",text:g?`${Me}/${Ae}`:Me,color:hO(h)});let Y=CO({agentMode:r,managedPhase:F,managedHarnessProfile:D,managedRound:z,managedMaxRounds:fe,managedGlobalWorkBudget:se,managedBudgetUsage:ge,currentIteration:T,maxIter:I}),V=bO(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=$?eg({activeToolCount:l,currentTool:c,isThinkingActive:m,thinkingCharCount:p,isCompacting:y,toolInputCharCount:x,toolInputContent:w,managedPhase:F,managedHarnessProfile:D,managedWorkerTitle:v,managedIdleWaiting:L,managedIdleWaitingPendingCount:R}):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=rv(A.currentTokens),q=rv(A.contextWindow),Ie=gO(Q);P.push({id:"context-usage",text:`${J}/${q} ${Ie} ${Q}%`,color:yO(A.currentTokens,A.contextWindow,A.triggerPercent)})}return a&&P.push({id:"token-usage",text:`${a.input}${dO}${a.output} (${a.total})`,color:"dim"}),P}i(vO,"buildStatusBarSegments");function Zd(e){let t=vO(e);return{text:t.map(n=>n.text).join(" | "),segments:t}}i(Zd,"buildStatusBarViewModel");function kO(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(kO,"resolveViewModelSegmentColor");var Fs=i(({viewModel:e,...t})=>{let n=ng(()=>re("dark"),[]),r=ng(()=>e??Zd(t),[t,e]);return tg(k,{paddingX:1,children:r.segments.map((o,s)=>ef(IO.Fragment,{children:[tg(b,{color:kO(o,n),bold:o.bold,children:o.text}),s<r.segments.length-1?tg(b,{dimColor:!0,children:" | "}):null]},o.id))})},"StatusBar"),RO=i(({permissionMode:e,provider:t,model:n})=>{let r=ng(()=>re("dark"),[]);return ef(k,{children:[ef(b,{color:r.colors.primary,bold:!0,children:["[",e,"]"]}),ef(b,{dimColor:!0,children:[" ",t,"/",n]})]})},"SimpleStatusBar");import{jsx as ho,jsxs as rf}from"react/jsx-runtime";import{useState as rg,useCallback as tf,useMemo as ov}from"react";function nf(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(nf,"generateId");function EO(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(EO,"messageToHistoryItem");var MO=i(({model:e,provider:t,onSubmit:n,permissionMode:r="accept-edits",agentMode:o="ama"})=>{let{stdout:s}=cr(),a=ov(()=>re("dark"),[]),[c,l]=rg({messages:[],isLoading:!1,sessionId:nf()}),[u,m]=rg(null),[p,h]=rg(),g=tf(async T=>{if(!T.trim())return;let I={id:nf(),role:"user",content:T,timestamp:Date.now()};l(A=>({...A,messages:[...A.messages,I],isLoading:!0}));try{await n(T)}catch(A){let $={id:nf(),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=tf((T,I)=>{let A={id:nf(),role:T,content:I,timestamp:Date.now()};l($=>({...$,messages:[...$.messages,A]}))},[]),x=tf((T,I)=>{m({input:T,output:I,total:T+I})},[]),w=tf(T=>{h(T)},[]);return rf(k,{flexDirection:"column",children:[ho(k,{flexGrow:1,flexDirection:"column",overflow:"hidden",children:ho(ci,{items:c.messages.map(EO),isLoading:c.isLoading})}),ho(k,{flexShrink:0,children:ho(Os,{onSubmit:i(T=>g(T.fullText),"onSubmit"),prompt:">",focus:!c.isLoading})}),ho(k,{flexShrink:0,children:ho(Fs,{sessionId:c.sessionId,permissionMode:r,agentMode:o,provider:t,model:e,tokenUsage:u??void 0,currentTool:p})})]})},"App"),AO=i(({model:e,provider:t,onInput:n})=>{let r=ov(()=>re("dark"),[]);return rf(k,{flexDirection:"column",children:[rf(k,{marginBottom:1,children:[ho(b,{color:r.colors.primary,bold:!0,children:"KodaX CLI"}),rf(b,{dimColor:!0,children:[" ","- ",t,"/",e]})]}),ho(Os,{onSubmit:i(o=>n(o.fullText),"onSubmit"),placeholder:"Type a message...",prompt:">"})]})},"SimpleApp");import{jsx as _O}from"react/jsx-runtime";var og=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})=>_O(Yp,{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 iv}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 ig=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?iv(k,{paddingX:1,children:iv(b,{color:c.colors.dim,children:l})}):null},"MessageActions");import{jsx as sv}from"react/jsx-runtime";function sg({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(sg,"buildMessageSelectorText");var LO=i(({itemSummary:e,itemKind:t,position:n,detailState:r="compact"})=>{let o=re("dark"),s=sg({itemSummary:e,itemKind:t,position:n,detailState:r});return s?sv(k,{paddingX:1,children:sv(b,{color:o.colors.dim,children:s})}):null},"MessageSelector");import{jsx as Us,jsxs as PO}from"react/jsx-runtime";import{useMemo as av}from"react";function of(e,t){return Math.max(1,tn(e.length>0?e.split(`
345
+ `):[""],Math.max(1,t),0,0).visualLines.length)}i(of,"countWrappedRows");var ag=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=sg({itemSummary:a,itemKind:l,position:c,detailState:u}),v=av(()=>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=av(()=>{if(!s)return 0;let se=0;return e?.hintText&&(se+=of(e.hintText,$)),D&&(se+=of(D,$)),v&&(se+=of(v,$)),w&&(se+=of(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 PO(k,{flexDirection:"column",flexGrow:o.windowed?0:1,children:[s&&e?.hintText?Us(k,{paddingX:1,children:Us(b,{dimColor:!0,children:e.hintText})}):null,null,s&&(p||h||g||y||x||T>0)?Us(ig,{copyMessage:p,copyToolInput:h,copyOnSelect:g,toggleDetail:y,selectionNavigation:x,matchNavigation:!!w&&T>0,dismissAction:F}):null,s&&w?Us(k,{paddingX:1,children:Us(b,{dimColor:!0,children:w})}):null,s?I:null,Us(ci,{...o,viewportRows:fe})]})},"TranscriptViewport");import{jsx as cv}from"react/jsx-runtime";var cg=i(e=>cv(k,{flexDirection:"column",children:cv(Os,{...e})}),"PromptComposer");import{jsx as li,jsxs as sf}from"react/jsx-runtime";import lv from"react";var uv=" \xB7 ",af=i(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=re("dark");return t.length===0?null:li(k,{flexGrow:1,children:t.map((r,o)=>sf(lv.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:uv}):null]},r.id))})},"PromptFooterLeftSide"),cf=i(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=re("dark");return t.length===0?null:li(k,{justifyContent:"flex-end",children:t.map((r,o)=>sf(lv.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:uv}):null]},r.id))})},"PromptFooterRightSide"),lf=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})=>sf(k,{flexDirection:"column",children:[e||t?sf(k,{paddingX:1,children:[li(k,{flexGrow:1,children:e}),t]}):null,n,r,o,s,a,c,l,u,g,m,p,h]}),"PromptFooter");import{jsx as lg,jsxs as dv}from"react/jsx-runtime";var ug=i(({sections:e,title:t="Help"})=>{let n=re("dark"),r=e.filter(o=>o.items.length>0);return r.length===0?null:dv(k,{flexDirection:"column",borderStyle:"round",borderColor:n.colors.accent,paddingX:1,marginTop:1,children:[lg(b,{color:n.colors.accent,bold:!0,children:t}),r.map(o=>dv(k,{flexDirection:"column",children:[lg(b,{color:n.colors.primary,bold:!0,children:o.title}),lg(b,{dimColor:!0,children:o.items.map(s=>s.label).join(" | ")})]},o.id))]})},"PromptHelpMenu");import{jsx as fv}from"react/jsx-runtime";import{createContext as pv,useContext as hv,useReducer as $O,useCallback as Ht,useMemo as OO}from"react";var DO=150;function df(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(df,"generateId");function uf(e){return{...e,id:df(),timestamp:Date.now()}}i(uf,"createHistoryItem");function mv(e){if(e.length<=DO)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(mv,"trimHistoryToRounds");function dg(e,t){return e.filter(n=>n.type==="user"&&typeof n.id=="string"&&!t.has(n.id))}i(dg,"selectUncommittedLedgerUserItems");function fg(e){return{...e,id:df(),startTime:Date.now()}}i(fg,"createToolCall");function NO(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:mv([...e.history,t.payload])};case"BULK_ADD_HISTORY_ITEMS":return{...e,history:mv([...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{...Qp,sessionId:e.sessionId};default:return e}}i(NO,"uiReducer");var gv=pv(null),yv=pv(null);function ff({children:e,initialState:t}){let[n,r]=$O(NO,{...Qp,...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=uf(D);r({type:"ADD_HISTORY_ITEM",payload:v})},[]),l=Ht(D=>{D.length!==0&&r({type:"BULK_ADD_HISTORY_ITEMS",payload:D.map(uf)})},[]),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=fg(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=OO(()=>({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 fv(gv.Provider,{value:n,children:fv(yv.Provider,{value:F,children:e})})}i(ff,"UIStateProvider");function Nc(){let e=hv(gv);if(!e)throw new Error("useUIState must be used within a UIStateProvider");return e}i(Nc,"useUIState");function Bc(){let e=hv(yv);if(!e)throw new Error("useUIActions must be used within a UIStateProvider");return e}i(Bc,"useUIActions");function xv(){let e=Nc(),t=Bc();return{state:e,actions:t}}i(xv,"useUI");function mg(){return re()}i(mg,"useTheme");import{jsxs as go,jsx as mf,Fragment as BO}from"react/jsx-runtime";import{useMemo as HO}from"react";var FO=80,WO=7,UO={command:">",file:"\u{1F4C4}",history:"\u23F1",argument:"\u2022",snippet:"\u25C7",skill:"\u2605"};function jO(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(jO,"getVisibleRange");function GO({suggestion:e,isSelected:t,width:n}){let r=mg(),o=e.icon||e.type&&UO[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 go(k,{children:[o&&go(b,{color:t?r.colors.accent:r.colors.dim,children:[o," "]}),mf(b,{color:t?r.colors.primary:r.colors.text,bold:t,children:p}),h&&go(BO,{children:[mf(b,{children:" "}),mf(b,{color:r.colors.dim,children:za(e.description||"",m)})]}),t&&go(b,{color:r.colors.accent,children:[" ","\u25C0"]})]})}i(GO,"SuggestionItem");function pf({suggestions:e,selectedIndex:t,visible:n,maxVisible:r=WO,width:o=FO,showCount:s=!1}){let a=mg();if(!n||e.length===0)return null;let{start:c,end:l}=HO(()=>jO(t,e.length,r),[t,e.length,r]),u=e.slice(c,l);return go(k,{flexDirection:"column",marginLeft:2,children:[c>0&&go(b,{color:a.colors.dim,children:[" ","\u25B2 ",c," more..."]}),u.map((m,p)=>{let g=c+p===t;return mf(GO,{suggestion:m,isSelected:g,width:o},m.id)}),l<e.length&&go(b,{color:a.colors.dim,children:[" ","\u25BC ",e.length-l," more..."]}),s&&go(b,{color:a.colors.dim,children:[t+1,"/",e.length]})]})}i(pf,"SuggestionsDisplay");import{jsx as js,jsxs as KO}from"react/jsx-runtime";var pg=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(k,{height:8}):null;let{state:a,suggestions:c}=o;return a.visible&&c.length>0?r==="overlay"?KO(k,{flexDirection:"column",borderStyle:"round",borderColor:s.colors.accent,paddingX:1,marginTop:1,children:[js(b,{color:s.colors.accent,bold:!0,children:"Suggestions"}),js(pf,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-6)})]}):js(k,{height:8,children:js(pf,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-2)})}):e?js(k,{height:8}):null},"PromptSuggestionsSurface");import{jsxs as Yn,jsx as Nn,Fragment as hg}from"react/jsx-runtime";import VO,{useEffect as zO,useState as XO}from"react";var Gs=15,wv=Math.max(1,Gs-2),gg=i(({confirm:e,request:t})=>e?Yn(k,{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(YO,{content:e.planContent}):null,e.instruction?Nn(b,{dimColor:!0,children:e.instruction}):null]}):t?Yn(k,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,marginTop:1,width:"100%",children:[t.kind==="select"?Yn(hg,{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(hg,{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(hg,{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"),YO=i(({content:e})=>{let t=VO.useMemo(()=>e.split(`
346
+ `),[e]),n=t.length,r=n>Gs,[o,s]=XO(0);zO(()=>{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-wv)):m.pageDown&&s(h=>Math.min(p,h+wv))},{isActive:!0});let a=t.slice(o,o+Gs),c=o,l=Math.max(0,n-o-Gs);return Yn(k,{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 qO}from"react/jsx-runtime";function Sv(e){let t=e.replace(/\s+/g," ").trim();return t.length<=72?t:`${t.slice(0,69)}...`}i(Sv,"normalizePendingPreview");function Tv(e){if(e.length===0)return;let t=Sv(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(Tv,"formatPendingInputsSummary");function yg(e){if(e.length===0)return[];let t=e.length;return e.map((n,r)=>({index:r+1,total:t,preview:Sv(n)}))}i(yg,"formatPendingInputsLines");function Cv(e){let t=yg(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(`
347
+ `)}i(Cv,"formatPendingInputsBudgetText");var xg=i(({pendingInputs:e})=>{let t=yg(e);if(t.length===0)return null;let n=re("dark");return Hc(k,{flexDirection:"column",children:[t.map(r=>Hc(k,{children:[Hc(b,{color:n.colors.hint,children:["\u23F3"," "]}),Hc(b,{color:n.colors.dim,children:["[",r.index,"/",r.total,"] ",r.preview]})]},r.index)),qO(k,{children:Hc(b,{color:n.colors.dim,children:[" ","\u2191 pull all into editor \xB7 Esc drops latest"]})})]})},"QueuedCommandsSurface");import{jsx as bv}from"react/jsx-runtime";function JO(e,t){switch(e){case"warning":return t.warning;case"accent":return t.accent;default:return t.dim}}i(JO,"resolveNotificationColor");var hf=i(({notifications:e})=>{let t=e.filter(r=>r.text.trim().length>0),n=re("dark");return t.length===0?null:bv(k,{flexDirection:"column",paddingX:1,children:t.map(r=>bv(b,{color:JO(r.tone,n.colors),children:r.text},r.id))})},"NotificationsSurface");import{jsx as vv}from"react/jsx-runtime";var wg=i(({notices:e})=>{let t=e.filter(r=>r.trim().length>0);if(t.length===0)return null;let n=re("dark");return vv(k,{flexDirection:"column",paddingX:1,children:t.map((r,o)=>vv(b,{color:n.colors.dim,children:r},`${r}-${o}`))})},"StatusNoticesSurface");import{jsxs as Iv,jsx as QO}from"react/jsx-runtime";var gf=i(({text:e})=>{let t=e?.trim();if(!t)return null;let n=re("dark");return Iv(k,{paddingX:1,children:[Iv(b,{color:n.colors.hint,children:["\u22EF"," "]}),QO(b,{color:n.colors.dim,children:t})]})},"StashNotice");import{jsx as ui,jsxs as ZO}from"react/jsx-runtime";function kv({text:e,accent:t=!1,selected:n=!1}){let r=re("dark");return ui(k,{marginRight:1,children:ui(b,{color:t?r.colors.accent:r.colors.primary,bold:n||t,children:`[ ${e} ]`})})}i(kv,"Pill");var yf=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:ZO(k,{flexDirection:"row",paddingX:1,children:[r?ui(k,{marginRight:1,children:ui(Dn,{})}):null,o.map(s=>ui(kv,{text:s.hint?`${s.label} (${s.hint})`:s.label,accent:s.accent,selected:s.selected},s.id)),t?ui(kv,{text:t}):null,n?ui(b,{dimColor:!0,children:n}):null]})},"BackgroundTaskBar");import Rv,{createContext as Mv,useContext as Av,useReducer as eD,useCallback as Xe,useRef as tD,useEffect as Ev}from"react";function nD(e){return e.agentId===void 0&&e.priority==="user"&&e.mode==="prompt"}i(nD,"isMainThreadPrompt");function Cg(){return Rn().getSnapshot().filter(nD)}i(Cg,"getMainThreadPrompts");function Sg(){return Cg().map(e=>e.content)}i(Sg,"getMainThreadPromptContents");var Tg={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 bg(){let e={...Tg,pendingInputs:Sg()},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=Sg();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={...Tg,pendingInputs:Sg()},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:Tg.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&&(Cg().length>=5||(h(),Rn().enqueue({priority:"user",mode:"prompt",content:x})))},"addPendingInput"),removeLastPendingInput:i(()=>{let y=Cg(),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(bg,"createStreamingManager");var _v=Mv(null),Lv=Mv(null);function xf({children:e,onStateChange:t}){let n=tD(bg()),[,r]=eD(V=>V+1,0);Ev(()=>n.current.subscribe(ae=>{r(),t?.(ae)}),[t]),Ev(()=>{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)},[]),R=Xe(()=>{n.current.removeLastPendingInput()},[]),P=Xe(()=>n.current.shiftPendingInput(),[]),Me=Xe(()=>{n.current.clearPendingInputs()},[]),Ae=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:R,shiftPendingInput:P,clearPendingInputs:Me,consumePendingInputs:Ae};return Rv.createElement(_v.Provider,{value:n.current.getState()},Rv.createElement(Lv.Provider,{value:Y},e))}i(xf,"StreamingProvider");function Wc(){let e=Av(_v);if(!e)throw new Error("useStreamingState must be used within a StreamingProvider");return e}i(Wc,"useStreamingState");function Uc(){let e=Av(Lv);if(!e)throw new Error("useStreamingActions must be used within a StreamingProvider");return e}i(Uc,"useStreamingActions");function Pv(){let e=Wc(),t=Uc(),n=e.state===gn.Responding||e.state===gn.WaitingForConfirmation;return{state:e,actions:t,isStreaming:n}}i(Pv,"useStreaming");import{useCallback as rD,useRef as oD}from"react";var iD=500;function sD(e={}){let{onKey:t,onEsc:n,onCtrlC:r,enabled:o=!0}=e,s=oD(0),{exit:a}=io(),c=rD(l=>{if(!o)return!1;if(l.name==="escape"){let u=Date.now(),m=u-s.current<iD;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(sD,"useKeypress");function aD(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(aD,"createKeyMatcher");import{useCallback as cD,useSyncExternalStore as lD}from"react";function uD(e){return e.agentId===void 0&&e.priority==="user"&&e.mode==="prompt"}i(uD,"isMainThreadPrompt");var vg=null,wf=Object.freeze([]);function $v(){let e=Rn().getSnapshot();return e===vg||(vg=e,wf=Object.freeze(e.filter(uD))),wf}i($v,"getQueueSliceSnapshot");function Ov(){let e=cD(t=>Rn().subscribe(t),[]);return lD(e,$v,$v)}i(Ov,"useQueuedPrompts");function dD(){return Ov().map(t=>t.content)}i(dD,"useQueuedPromptContents");function fD(){vg=null,wf=Object.freeze([])}i(fD,"_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 Kw({userKodaxDir:Ew(),projectRoot:e.projectRoot}),n;return{getGuardrail:i(()=>n||(n=Vw({rules:t.merged,claudeMd:Mw(e.getAgentsFiles()),getToolProjection:i(o=>(hu(o)??$w(o))?.toClassifierInput,"getToolProjection"),resolveProvider:i(o=>{try{return Do(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?Ho(r.lineage):r.messages.length}))}async delete(t){this.sessions.delete(t)}async deleteAll(t){this.sessions.clear()}};function mD(){return new Ks}i(mD,"createMemorySessionStorage");import*as Dv from"child_process";import*as Nv from"util";import Sf from"chalk";var pD=Nv.promisify(Dv.exec),hD={maxBuffer:1024*1024,timeout:3e4,maxOutputLength:8e3,maxErrorLength:4e3};async function Tf(e,t={}){let n={...hD,...t},r=e.trim(),o=ch(r);if(o)return o.startsWith("[Blocked]")&&(console.log(Sf.yellow(`
348
+ ${o}`)),console.log()),o;try{console.log(Sf.dim(`
349
+ [Executing: ${r}]`));let{stdout:s,stderr:a}=await pD(r,{cwd:n.cwd,maxBuffer:n.maxBuffer,timeout:n.timeout,windowsHide:!0}),c="";return s&&(c+=s),a&&(c+=(c?`
350
+ `:"")+`[stderr] ${a}`),c.length>n.maxOutputLength&&(c=c.slice(0,n.maxOutputLength)+`
351
+ ...[output truncated]`),console.log(Sf.dim(c||"[No output]")),console.log(),`[Shell command executed: ${r}]
352
+
353
+ Output:
354
+ ${c||"(no output)"}`}catch(s){let c=(s instanceof Error?s:new Error(String(s))).message;return c.length>n.maxErrorLength&&(c=c.slice(0,n.maxErrorLength)+`
355
+ ...[error truncated]`),console.log(Sf.red(`
356
+ [Shell Error: ${c}]`)),console.log(),`[Shell command failed: ${r}]
357
+
358
+ Error: ${c}`}}i(Tf,"executeShellCommand");async function Ig(e,t={}){if(e.startsWith("!")){let n=e.slice(1).trim();return Tf(n,t)}return e}i(Ig,"processSpecialSyntax");function gD(e){return e.trim().startsWith("!")}i(gD,"isShellCommand");function yD(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell:")}i(yD,"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 Cf(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(Cf,"createRetryHistoryItem");function kg(e,t,n,r){e(Cf(t,n,r))}i(kg,"emitRetryHistoryItem");function bf(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(bf,"createRecoveryHistoryItem");function Rg(e,t){e(bf(t))}i(Rg,"emitRecoveryHistoryItem");import{jsx as le,jsxs as Zt,Fragment as lH}from"react/jsx-runtime";import xk,{useState as Ge,useCallback as X,useRef as xe,useEffect as Fe,useMemo as de}from"react";import{jsx as gr,Fragment as xD,jsxs as vf}from"react/jsx-runtime";var Eg=" | ",Bv=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 vf(k,{flexDirection:"column",children:[vf(k,{paddingX:1,children:[gr(b,{color:m.colors.dim,children:x}),gr(b,{dimColor:!0,children:Eg}),gr(b,{color:m.colors.dim,children:w}),I||T?gr(k,{flexGrow:1}):null,I?vf(xD,{children:[gr(b,{dimColor:!0,children:I}),T?gr(b,{dimColor:!0,children:Eg}):null]}):null,T?gr(b,{color:m.colors.accent,bold:!0,children:T}):null]}),$?vf(k,{paddingX:1,children:[A?gr(b,{color:m.colors.dim,children:A}):null,A&&y?gr(b,{dimColor:!0,children:Eg}):null,y?gr(b,{color:m.colors.accent,bold:!0,children:y}):null]}):null]})},"TranscriptModeFooter");import{jsx as wD,jsxs as SD}from"react/jsx-runtime";var Hv=i(({banner:e,...t})=>SD(k,{flexDirection:"column",children:[e,wD(ci,{...t,animateSpinners:!1,showFullThinking:!1,showDetailedTools:!1,showLiveProgressRows:!1})]}),"PromptTranscriptSurface");import{jsx as TD,jsxs as CD}from"react/jsx-runtime";var Fv=i(({banner:e,windowed:t=!1,showDetailedTools:n=!1,showAllContent:r=!1,...o})=>CD(k,{flexDirection:"column",children:[e,TD(ag,{...o,chromeMode:"hidden",windowed:t,showFullThinking:!0,showDetailedTools:n,showAllContent:r,showLiveProgressRows:!0})]}),"TranscriptModeSurface");import{jsxs as bD,jsx as vD}from"react/jsx-runtime";var Wv=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 vD(k,{paddingX:1,backgroundColor:r.colors.inputBackground,children:bD(b,{color:o,children:[s," ",n]})})},"ClipboardToastSurface");import{jsx as yo,Fragment as ID,jsxs as Mg}from"react/jsx-runtime";var kD=" \u23BF ";function RD(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(RD,"resolveSymbolColor");var ED=i(({row:e})=>{let t=RD(e.symbolColor),n=e.kind!=="item";return Mg(k,{flexDirection:"row",children:[yo(b,{color:t,bold:e.isActive,children:e.symbol}),yo(b,{children:" "}),yo(b,{dimColor:n,bold:e.isActive,strikethrough:e.isStrikethrough,children:e.text}),e.evaluatorBadge?Mg(ID,{children:[yo(b,{children:" "}),yo(b,{dimColor:!0,children:e.evaluatorBadge})]}):null]})},"TodoListRow"),Uv=i(({viewModel:e})=>{if(!e.shouldRender||e.rows.length===0)return null;let t=re("dark").colors.dim;return Mg(k,{flexDirection:"row",children:[yo(b,{color:t,children:kD}),yo(k,{flexDirection:"column",flexGrow:1,children:e.rows.map((n,r)=>yo(ED,{row:n},`${n.kind}-${n.id??r}`))})]})},"TodoListSurface");function MD(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(MD,"symbolForStatus");function AD(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(AD,"pickAnchorIndex");function _D(e){let{symbol:t,color:n}=MD(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(_D,"buildItemRow");function LD(e){return{kind:"summary_done",symbol:"\u2713",symbolColor:"green",text:`${e} done`,isActive:!1}}i(LD,"buildDoneSummary");function Ag(e){return{kind:"summary_pending",symbol:"\u2610",symbolColor:"dim",text:`+${e} more`,isActive:!1}}i(Ag,"buildPendingSummary");function PD(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].status==="failed"&&!t.has(n))return n;return-1}i(PD,"pickFailedToPromote");function $D(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($D,"decideWindow");function jv(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=AD(e),a=$D(e,s),c=new Set(a.visibleIdx),l=PD(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(LD(m));for(let g of u)h.push(_D(e[g]));if(p>0&&h.push(Ag(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]=Ag(I)}else h.push(Ag(1));g=!0;break}}if(!g)break}return o(h,!0)}i(jv,"buildTodoPlanViewModel");function Gv(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(Gv,"buildFooterHeaderViewModel");function OD(e){return yu(e.provider,e.model,"off",{longRunning:!0})}i(OD,"evaluateSessionTransitionPolicy");function DD(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(DD,"formatSessionTransitionGuardMessage");function di(e,t,n){let r=OD(e);if(!r||r.status==="allow")return!0;let[o,...s]=DD(t,r);return n(r.status,o,s),r.status!=="block"}i(di,"enforceSessionTransitionGuard");function ND(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(ND,"summarizeEntry");function Kv(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} ${ND(e.entry)}${c}`);let l=t+(t?n?" ":"| ":"");e.children.forEach((u,m)=>{Kv(u,l,m===e.children.length-1,r)})}i(Kv,"formatNode");function If(e){let t=[];return e.forEach((n,r)=>{Kv(n,"",r===e.length-1,t)}),t}i(If,"formatSessionTree");var BD=100,HD=/\b(curl|wget|invoke-webrequest|invoke-restmethod|iwr|irm)\b/i,zv=/\b(rm|del|erase|remove-item|rmdir|rd|git clean)\b/i,Xv=/\b(npm|pnpm|yarn|pip|choco|winget)\s+(install|add|remove|uninstall|update|upgrade|ci)\b/i,Yv=/\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 FD(e){return e.replace(/\s+/g," ").trim()}i(FD,"normalizeWhitespace");function WD(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(WD,"truncateMiddle");function UD(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(UD,"maskSensitiveSegments");function Vv(e){return WD(UD(FD(e)),BD)}i(Vv,"summarizeCommand");function jD(e){return zn(e)?Z("intent.read"):zv.test(e)?Z("intent.delete"):Xv.test(e)?Z("intent.deps"):Xn(e)||Yv.test(e)?Z("intent.modify"):Z("intent.execute")}i(jD,"classifyShellIntent");function GD(e){let t=[];return zv.test(e)?t.push(Z("risk.destructive")):Xv.test(e)?t.push(Z("risk.deps")):Xn(e)||Yv.test(e)?t.push(Z("risk.modify")):zn(e)||t.push(Z("risk.unknown")),HD.test(e)&&t.push(Z("risk.network")),t}i(GD,"classifyShellRisks");function KD(e){if(Array.isArray(e))return e.filter(t=>typeof t=="object"&&t!==null&&typeof t.kind=="string")}i(KD,"readSignals");function VD(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(VD,"scopeFromSignals");function zD(e){if(e._outsideProject===!0)return Z("scope.outside");if(e._alwaysConfirm===!0)return Z("scope.protected")}i(zD,"scopeFromMarkers");function XD(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(XD,"risksFromSignals");var YD={Reason:"field.reason",Intent:"field.intent",Target:"field.target",Scope:"field.scope",Risk:"field.risk",Summary:"field.summary"};function qD(e){return Z(YD[e])}i(qD,"localizeFieldLabel");function zs(e,t){return{title:e,fields:t,details:t.map(n=>`${qD(n.label)}: ${n.value}`)}}i(zs,"buildDisplayFromFields");function kf(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(`
359
+ `)}:zs(u,[])}let n=[],r=Vs(t.path),o=Vs(t.command),s=Vs(t._reason)??Vs(t.justification),a=KD(t._classifierSignals),c=VD(a)??zD(t);switch(Xt(n,"Reason",s),e){case"bash":case"shell_command":{if(o){Xt(n,"Intent",jD(o)),Xt(n,"Scope",c);let l=XD(a),u=l.length>0?l:GD(o);u.length>0&&Xt(n,"Risk",u.join("; ")),Xt(n,"Summary",Vv(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",Vv(o)),zs(Z("tool.generic.title",{tool:e}),n)}}i(kf,"buildToolConfirmationDisplay");function qv(e,t){let n=kf(e,t);return n.details.length>0?`${n.title}
360
+ ${n.details.join(`
361
+ `)}`:n.title}i(qv,"buildToolConfirmationPrompt");function Jv(e,t=240){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(Jv,"truncateToolPreview");function Qv(e,t=800){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(Qv,"truncateToolOutputPreview");function _g(e){return e.replace(/^\[[^\]]+\]\s+/,"").replace(/^[A-Za-z][A-Za-z0-9_-]*:\s*/,"").trim()}i(_g,"stripToolRolePrefix");function Lg(e){return _g(e).toLowerCase()}i(Lg,"normalizeToolNameForMatch");function Pg(e){return e===`[${Z("managed.completed")}]`||e===`[${Z("managed.completed.blocked")}]`||e===`[${Z("managed.completed.continuation")}]`}i(Pg,"isCompletionTranscriptItem");function Rf(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(Rf,"formatManagedLiveActivityLabel");function Hr(e,t){return Rf(`[Tools] ${Hd(e)}`,t)??`[Tools] ${Hd(e)}`}i(Hr,"formatManagedLiveToolLabel");function Ef(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(Ef,"areManagedLiveItemsEquivalent");function Zv(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(Zv,"localizeManagedCompletionSummary");function JD(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(JD,"formatHarnessProfileShort");function e0(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(e0,"mergeLiveThinkingContent");function Xs(e,t){let n=t?.expanded?e.detailNote??e.note:e.note,r=JD(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 t0=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1";function n0(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&&!t0)return r;let p=m?`[${Zv(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"&&!t0)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(n0,"buildManagedLiveEventDrafts");function QD(e,t){return!(t||e.role!=="evaluator"||e.signal!=="COMPLETE")}i(QD,"shouldFilterSidecarAcceptEntry");function ZD(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(`
362
+ `)}i(ZD,"buildManagedTaskRoutingTranscript");function $g(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=ZD(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=>!QD(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?lo(h):"",x=g?lo(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}]
363
+ ${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($g,"buildManagedTaskTranscriptItems");function r0(e){let r=e.slice(0,400).match(new RegExp("\\*\\*([^*\\n]{1,80}?)\\*\\*"))?.[1]?.trim();return r?{header:r}:{}}i(r0,"extractBoldHeader");var Og=[" \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 Mf=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(()=>Mf.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 eN,useCallback as tN,useRef as nN}from"react";function Fr(e,t,n={}){let{context:r,isActive:o=!0}=n,s=yr(),a=nN(t);a.current=t,eN(()=>(s.setHandler(e,(...u)=>a.current(...u)),()=>{s.setHandler(e,void 0)}),[s,e]);let c=tN(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=rN(e,s);yn(c,{isActive:o,priority:l})}i(Fr,"useShortcut");function rN(e,t){let r=t.getAllShortcuts().find(o=>o.definition.id===e);return r?r.definition.priority:0}i(rN,"getShortcutPriority");import oN,{createContext as iN,useContext as sN,useState as o0,useCallback as Dg}from"react";var i0=iN(null);function Ng({children:e,initialContext:t="input"}){let[n,r]=o0(!1),[o,s]=o0(t);yr().registerAll(Ys);let c=Dg(()=>{r(p=>!p)},[]),l=Dg(()=>{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=Dg(()=>yr().getShortcutsByContext(o),[o]),m={showHelp:n,toggleHelp:c,setShowHelp:r,currentContext:o,setCurrentContext:s,getShortcutsByCategory:l,getContextShortcuts:u};return oN.createElement(i0.Provider,{value:m},e)}i(Ng,"ShortcutsProvider");function Bg(){let e=sN(i0);if(!e)throw new Error("useShortcutsContext must be used within a ShortcutsProvider");return e}i(Bg,"useShortcutsContext");import aN from"chalk";function Hg({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 Fr("interrupt",()=>n?(r(),o(),s(),a(void 0),c(!1),console.log(aN.yellow(`
364
+ [Interrupted]`)),!0):!1,{isActive:n}),Fr("showHelp",()=>x?!1:I?(l(),!0):!1,{isActive:I}),Fr("toggleThinking",()=>{if(x)return!1;let $=Oo.indexOf(e.reasoningMode),F=Oo[($+1)%Oo.length],D=F!=="off";return t(v=>({...v,thinking:D,reasoningMode:F})),Kn({reasoningMode:F,thinking:D}),p?.(F),m?.(D),u(!1),!0}),Fr("toggleTranscriptMode",()=>x?!1:(h?.(),u(!1),!0)),Fr("openTranscriptSearch",()=>x||!y?!1:(g?.(),u(!1),!0)),Fr("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}),Fr("toggleAgentMode",()=>{if(x)return!1;let $=e.agentMode==="ama"?"sa":"ama";return t(F=>({...F,agentMode:$})),Kn({agentMode:$}),w?.($),u(!1),!0}),null}i(Hg,"GlobalShortcuts");import{exec as cN}from"child_process";import{promisify as lN}from"util";var uN=lN(cN),dN={read:"read",grep:"grep",glob:"glob",write:"write",edit:"edit",bash:"bash",undo:"undo",askuserquestion:"ask-user-question",askuser:"ask-user-question"};function s0(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(s0,"splitTopLevelCommaList");function fN(e){if(!e?.trim())return{configured:!1,rules:[],invalidEntries:[]};let t=[];return{configured:!0,rules:s0(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=dN[o[1].replace(/[^a-z]/gi,"").toLowerCase()];if(!s){t.push(r);return}let a=o[2]?s0(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(fN,"parseAllowedTools");function mN(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${t}$`,"i")}i(mN,"wildcardToRegExp");function a0(e,t){return mN(e).test(t)}i(a0,"matchesPattern");function c0(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=>a0(a,o)))}i(c0,"isToolAllowed");function pN(e,t){return e.matcher?a0(e.matcher,t):!0}i(pN,"hookMatches");function hN(e){let t=e.source==="skill"?"skill":e.source==="extension"?"extension command":"command";return[`Note: ${e.displayName} has model invocation disabled.`,`The ${t} content is shown below for manual use:`,"",`--- ${e.displayName} ---`,e.prompt,`--- end ${e.displayName} ---`].join(`
365
+ `)}i(hN,"formatManualOutput");function gN(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(gN,"resolveModelOverride");async function yN(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(!c0(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 uN(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(`
366
+ `);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(yN,"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(!pN(u,n))continue;let m=await yN(t,u,r,o,s,a);if(m.message&&await o(`[Hook ${t}] ${m.message}`),m.additionalContext&&(l.additionalContext=l.additionalContext?`${l.additionalContext}
367
+ ${m.additionalContext}`:m.additionalContext),m.allow===!1){l.allow=!1;break}}return l}i(qs,"runHooks");async function Af(e,t,n,r){if(t.disableModelInvocation)return{mode:"manual",manualOutput:hN(t),finalize:i(async()=>{},"finalize")};let o=e.events??{},s=fN(t.allowedTools),a=gN(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(`
368
+
369
+ `):void 0,t.prompt,`User request: ${n}`].filter(w=>typeof w=="string"&&w.trim().length>0),g={...o,beforeToolExecute:i(async(w,T)=>c0(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(`
370
+
371
+ `),options:{...e,modelOverride:a,context:{...e.context,rawUserInput:n,skillInvocation:t.source==="skill"?t.skillInvocation:e.context?.skillInvocation},events:g},finalize:x}}i(Af,"prepareInvocationExecution");import{appendFileSync as xN,mkdirSync as wN,writeFileSync as SN}from"node:fs";import{join as u0}from"node:path";import l0 from"node:v8";var Ug=parseInt(process.env.KODAX_MEMORY_DIAG??"0",10),jg=Ug>=1,Gg=Ki(),d0=u0(Gg,"memory-diag.log"),Fg=0,Wg=!1;function f0(){if(!Wg)try{wN(Gg,{recursive:!0}),Wg=!0}catch{Wg=!0}}i(f0,"ensureLogDir");function TN(e){f0();try{xN(d0,e+`
372
+ `)}catch{}}i(TN,"writeLog");function St(e){return`${(e/1024/1024).toFixed(2)}MB`}i(St,"formatMB");function CN(){return typeof globalThis.gc=="function"?(globalThis.gc(),!0):!1}i(CN,"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 m0(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+=m0(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(m0,"estimateBlockBytes");function Kg(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+=m0(n);return t}return 200}i(Kg,"estimateMessageBytes");function _f(e){let t=128;switch(t+=Lt(e.id)+Lt(e.parentId??void 0)+Lt(e.timestamp),e.type){case"message":return t+Kg(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(_f,"estimateEntryBytes");function bN(e){let t={},n=[];for(let o=0;o<e.length;o++){let s=e[o],a=Kg(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(bN,"buildMessageBreakdown");function Lf(){return jg}i(Lf,"memDiagEnabled");function Pf(e,t){if(!jg)return;e==="turn-start"&&Fg++;let n=process.memoryUsage(),r=new Date().toISOString(),o=t.biggestMessages,s=["",`\u2550\u2550\u2550 [MEMDIAG] turn=${Fg} 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=l0.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)'),CN()){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(Ug>=2)try{let u=u0(Gg,`heap-turn${Fg}-${e}.heapsnapshot`);l0.writeHeapSnapshot(u),s.push(` heap snapshot: ${u}`)}catch{s.push(" heap snapshot: FAILED")}TN(s.join(`
373
+ `))}i(Pf,"memDiagSnapshot");function $f(e,t,n){let r=bN(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+=Kg(T.message));break;case"compaction":l++,s+=_f(T);break;case"branch_summary":u++,s+=_f(T);break;case"label":m++,s+=_f(T);break;case"archive_marker":p++,s+=_f(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($f,"buildMemDiagBreakdown");function p0(){if(jg){f0();try{let e=typeof globalThis.gc=="function",t=[`[MEMDIAG] Session started at ${new Date().toISOString()}`,`[MEMDIAG] Level=${Ug} gc=${e?"available":"UNAVAILABLE (run with node --expose-gc)"}`,"[MEMDIAG] Blind spots: React/Ink trees, provider SDK buffers, WeakMap/Map caches,","[MEMDIAG] tokenizer internal state, source-map strings, native handles.",'[MEMDIAG] A large "unaccounted" number living in these buckets is expected;',"[MEMDIAG] use Level 2 (KODAX_MEMORY_DIAG=2) to dump heap snapshots for DevTools.",""].join(`
374
+ `);SN(d0,t+`
375
+ `)}catch{}}}i(p0,"memDiagReset");import vN from"node:fs";import zg from"node:path";var IN={".gif":"image/gif",".jpeg":"image/jpeg",".jpg":"image/jpeg",".png":"image/png",".webp":"image/webp"},kN=/@(?:"([^"]+)"|'([^']+)'|([^\s]+))/g;function RN(e){return IN[zg.extname(e).toLowerCase()]}i(RN,"resolveImageMediaType");var Vg="[Image unavailable]";function EN(e){return""}i(EN,"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(kN)){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=RN(h);if(!g){c.push(m[0]),l=p+m[0].length;continue}let y=zg.resolve(t,h);try{if(!vN.statSync(y).isFile()){a.has(y)||(r.push(`[Image input skipped] ${h} is not a file.`),a.add(y)),c.push(Vg),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(Vg),l=p+m[0].length;continue}if(!o.has(y)){o.add(y);let x=EN(n.length+1);s.set(y,x),n.push({kind:"image",path:y,mediaType:g,source:"user-inline",description:`Attached image ${zg.basename(y)}`})}c.push(s.get(y)??Vg),l=p+m[0].length}c.push(e.slice(l));let u=c.join("");return{promptText:u,messageContent:Nw(u,n),inputArtifacts:n,warnings:r}}i(zc,"preparePromptInputArtifacts");function h0(e){let t=MN(e.stage),n=AN(e);return{type:"info",icon:"\u{1F4E1}",text:n?`[RepoIntel] ${t} \xB7 ${n}`:`[RepoIntel] ${t}`,tightSpacing:!0}}i(h0,"createRepoIntelTraceHistoryItem");function MN(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(MN,"stageDisplayName");function AN(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(`${_N(r.capsuleEstimatedTokens)} tokens`)),t.length===0&&e.summary?LN(e.summary):t.join(" \xB7 ")}i(AN,"buildRepoIntelDetailLine");function _N(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(_N,"formatTokens");function LN(e){return e.replace(/^stage=[^|]+\|\s*/,"").trim()}i(LN,"stripSummaryStagePrefix");function g0(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(g0,"buildManagedRunContext");var PN=["global","mode","navigation","editing"],$N={global:["showHelp","interrupt"],mode:["toggleThinking","toggleTranscriptMode","togglePermissionMode","toggleAgentMode"],navigation:["openTranscriptSearch","historyUp","historyDown","moveToStart","moveToEnd"],editing:["acceptCompletion","cancelInput","newline","killLineRight","killLineLeft","deleteWordLeft"]},ON={global:"Global",mode:"Modes",navigation:"Navigation",editing:"Editing"},DN={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 NN(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(NN,"resolveShortcutBindingLabel");function BN(e){return`${NN(e.id)??e.id} ${e.name}`}i(BN,"buildMenuItemLabel");function HN(e){return yr().getAllShortcuts().find(r=>r.definition.id===e)?.definition??Ys.find(r=>r.id===e)}i(HN,"resolveShortcutDefinition");function Of(){return[...PN.map(t=>{let n=$N[t].map(r=>HN(r)).filter(r=>!!r).map(r=>({id:r.id,label:BN(r)}));return{id:t,title:ON[t],items:n}}).filter(t=>t.items.length>0),DN]}i(Of,"buildHelpMenuSections");var Xg=2,y0=1,x0=4;function it(e,t){let n=tn(e.length>0?e.split(`
376
+ `):[""],Math.max(1,t),0,0);return Math.max(1,n.visualLines.length)}i(it,"wrapLineCount");function FN(e,t,n=">"){let r=n.length+1,o=Math.max(20,t-r),s=tn(e.length>0?e.split(`
377
+ `):[""],o,0,0);return Math.max(1,s.visualLines.length)+2}i(FN,"calculateInputPromptRows");function w0(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,R=fe?Math.max(1,L):L,P=l?it(l,Math.max(1,n-2)):0,Me=u?it(u,Math.max(1,n-2)):0,Ae=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=FN(o,n,s),Q=g?8:0,J=x?y0+x0+Of().reduce((O,j)=>O+it(j.title,Math.max(1,n-Xg))+it(j.items.map(te=>te.label).join(" | "),Math.max(1,n-Xg)),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,_e)=>j+it(`${_e+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+R+se+P+Me+Ae+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:R,pendingInputRows:P,stashNoticeRows:Me,notificationRows:Ae,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(w0,"calculateViewportBudget");function S0(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(S0,"createTranscriptDisplayState");function T0(e){return{...e,surface:"transcript",jumpToLatestAvailable:e.pendingLiveUpdates>0}}i(T0,"enterTranscriptMode");function C0(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(C0,"exitTranscriptMode");function b0(e,t){let n=Math.max(0,t);return{...e,pendingLiveUpdates:n,jumpToLatestAvailable:e.surface==="transcript"?n>0:e.scrollAnchor>0}}i(b0,"setTranscriptPendingLiveUpdates");function v0(e,t){let n=Math.max(0,t);return{...e,scrollAnchor:n,jumpToLatestAvailable:e.surface==="transcript"?e.pendingLiveUpdates>0:n>0}}i(v0,"setTranscriptScrollAnchor");function I0(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(I0,"jumpTranscriptToLatest");function k0(e,t){return{...e,stickyPromptVisible:t}}i(k0,"setTranscriptStickyPromptVisible");function Js(e,t){return{...e,selectedItemId:t,selectionMode:t?"message":"none"}}i(Js,"setTranscriptSelectedItem");function R0(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(R0,"openTranscriptSearch");function E0(e){return{...e,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0}}i(E0,"closeTranscriptSearch");function M0(e,t){return{...e,currentMatchIndex:Math.max(-1,t)}}i(M0,"setTranscriptSearchMatchIndex");function A0(e){return e.supportsFullscreenLayout&&e.ownsViewportByDefault}i(A0,"shouldWindowTranscript");function _0(e){return e.surface==="transcript"}i(_0,"shouldPauseLiveTranscript");function Yg(e){return e.supportsSelection}i(Yg,"ownsTranscriptSelectionPath");function Df(e,t,n){if(!(!Yg(e)||!n))return t.includes(n)?n:void 0}i(Df,"resolveTranscriptSelectedItemId");function L0(e){return e.supportsSelection&&e.supportsCopyOnSelect}i(L0,"supportsPassiveTranscriptCopyOnSelect");function P0(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(P0,"buildTranscriptBrowseHint");var $0="Slash commands cannot be queued mid-task. Press Esc to abort the current task, then run the command.",O0="slash-guard";function D0(e){return e.trimStart().startsWith("/")}i(D0,"isSlashCommandText");var WN=`
378
+
379
+ ---
380
+
381
+ `;async function N0(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(WN),await s?.(c),l=await n(c)}}i(N0,"runQueuedPromptSequence");function H0(e){return e.itemsLength>0||e.currentResponse.length>0||e.thinkingContent.length>0||e.activeToolCallsLength>0}i(H0,"hasTranscriptInputActivity");function UN(e){return e.keyName==="mouse"&&e.hasMouse&&e.usesManagedMouseClicks&&e.supportsMouseTracking&&e.usesRendererMouseTracking}i(UN,"shouldHandleManagedTranscriptMouse");function B0(e){return e.usesManagedMouseWheel&&e.supportsWheelHistory&&e.hasTranscript}i(B0,"shouldHandleManagedTranscriptWheel");function F0(e){if(UN({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"?B0({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?{kind:"scroll-by",delta:e.reviewWheelStep}:{kind:"none"}:e.keyName==="wheeldown"?B0({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(F0,"resolveTranscriptPointerAction");function jN(e){return e.isTranscriptMode&&e.hasTextSelection}i(jN,"shouldDeferInterruptToTranscriptSelectionCopy");function W0(e){return e.ctrl&&e.keyName==="c"?jN({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(W0,"resolveStreamingInterruptAction");function U0(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(U0,"resolveTranscriptKeyboardAction");function j0(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(j0,"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 GN(e){return e.tools.map(n=>`tool: ${n.name}`).join(`
382
+ `)}i(GN,"serializeToolGroup");function KN(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 GN(e);default:return e}}i(KN,"serializeOne");function VN(e){let t=[];for(let n of e){let r=KN(n);r!==null&&r!==""&&t.push(r)}return t.join(`
383
+
384
+ `)}i(VN,"serializeTranscriptForScrollback");function G0(e){let{items:t,writeToScrollback:n,exitAltScreen:r,enterAltScreen:o}=e,s=VN(t);r(),s.length>0&&n(`${s}
385
+ `),o()}i(G0,"dumpTranscriptToNativeScrollback");var Qs={committed:[],width:0,hasBanner:!1};function K0(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(K0,"planInlineScrollback");import{jsx as yI}from"react/jsx-runtime";import HB from"yoga-layout";import{LegacyRoot as FB}from"react-reconciler/constants.js";import wB from"react-reconciler";import{DefaultEventPriority as SB,NoEventPriority as cI}from"react-reconciler/constants.js";import*as xo from"scheduler";import oI from"yoga-layout";import{createContext as TB}from"react";import aB from"yoga-layout";import zN from"widest-line";var V0=new Map,XN=i(e=>{if(e.length===0)return{width:0,height:0};let t=V0.get(e);if(t)return t;let n=zN(e),r=e.split(`
386
+ `).length,o={width:n,height:r};return V0.set(e,o),o},"measureText"),qg=XN;import YN from"wrap-ansi";import qN from"cli-truncate";var z0={},JN=i((e,t,n)=>{let r=e+String(t)+String(n),o=z0[r];if(o)return o;let s=e;if(n==="wrap"&&(s=YN(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=qN(e,t,{position:a})}return z0[r]=s,s},"wrapText"),Nf=JN;var QN=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),ZN=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),eB=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),q0=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),tB=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),J0=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),X0=i((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!QN(c))break;n++}let r=e.slice(t,n),o=n;for(;n<e.length;){let c=e[n];if(!ZN(c))break;n++}let s=e.slice(o,n),a=e[n];if(!(a===void 0||!eB(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),Y0=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"),nB=i((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!q0(s))break;n++}let r=e.slice(t,n),o=e[n];if(!(o===void 0||!tB(o)))return{endIndex:n+1,intermediateString:r,finalCharacter:o}},"readEscapeSequence"),rB=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"),oB=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"),Jg=i(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(J0(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"),Q0=i(e=>{if(!Jg(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=X0(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=rB(a);if(c!==void 0){let u=Y0(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=nB(e,r+1);if(l===void 0){if(q0(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=X0(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=oB(o);if(s!==void 0){let a=Y0(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(J0(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 iB=/^[\d:;]*$/,sB=i(e=>{if(!Jg(e))return e;let t="";for(let n of Q0(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&iB.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),Z0=sB;var eI=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=eI(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o,n))),t+=o}return Z0(t)},"squashTextNodes"),Xc=eI;var Bf=i(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:aB.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(cB.bind(null,t)),t},"createNode"),Hf=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")&&Ff(e)},"appendChildNode"),Qg=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")&&Ff(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")&&Ff(e)},"removeChildNode"),Zg=i((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),ey=i((e,t)=>{e.style=t},"setStyle"),tI=i(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return qc(t,e),t},"createTextNode"),cB=i(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:Xc(e),r=qg(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let o=e.style?.textWrap??"wrap",s=Nf(n,t,o);return qg(s)},"measureTextNode"),nI=i(e=>{if(e?.parentNode)return e.yogaNode??nI(e.parentNode)},"findClosestYogaNode"),Ff=i(e=>{nI(e)?.markDirty()},"markNodeAsDirty"),qc=i((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,Ff(e)},"setTextNodeValue");import ve from"yoga-layout";var lB=i((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?ve.POSITION_TYPE_ABSOLUTE:ve.POSITION_TYPE_RELATIVE)},"applyPositionStyles"),uB=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"),dB=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"),fB=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"),mB=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"),pB=i((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?ve.DISPLAY_FLEX:ve.DISPLAY_NONE)},"applyDisplayStyles"),hB=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"),gB=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"),yB=i((e,t={})=>{lB(e,t),uB(e,t),dB(e,t),fB(e,t),mB(e,t),pB(e,t),hB(e,t),gB(e,t)},"styles"),ty=yB;import xB from"node:process";var rI=i(()=>xB.env.DEV==="true","isDev");if(rI())try{await import("./devtools-4CRULTR2.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
387
+ The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
388
+ but this failed as it was not installed. Debugging with React Devtools requires it.
389
+
390
+ To install use this command:
391
+
392
+ $ npm install --save-dev react-devtools-core
393
+ `.trim()+`
394
+ `);else throw e}var iI=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"),sI=i(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),Wf=cI,ny,aI={name:void 0,version:void 0},ea=wB({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=Bf(o);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){ey(s,c),s.yogaNode&&ty(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_static"){ny=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}Zg(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 tI(e)},resetTextContent(){},hideTextInstance(e){qc(e,"")},unhideTextInstance(e,t){qc(e,t)},getPublicInstance:i(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(oI.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(oI.DISPLAY_FLEX)},appendInitialChild:Hf,appendChild:Hf,insertBefore:Qg,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:xo.unstable_scheduleCallback,cancelCallback:xo.unstable_cancelCallback,shouldYield:xo.unstable_shouldYield,now:xo.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:i(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:i(()=>null,"getInstanceFromScope"),appendChildToContainer:Hf,insertInContainerBefore:Qg,removeChildFromContainer(e,t){Yc(e,t),sI(t.yogaNode)},commitUpdate(e,t,n,r){ny&&e.internal_static&&(ny.isStaticDirty=!0);let o=iI(n,r),s=iI(n.style,r.style);if(!(!o&&!s)){if(o)for(let[a,c]of Object.entries(o)){if(a==="style"){ey(e,c);continue}if(a==="internal_transform"){e.internal_transform=c;continue}if(a==="internal_static"){e.internal_static=!0;continue}Zg(e,a,c)}s&&e.yogaNode&&ty(e.yogaNode,s)}},commitTextUpdate(e,t,n){qc(e,n)},removeChild(e,t){Yc(e,t),sI(t.yogaNode)},setCurrentUpdatePriority(e){Wf=e},getCurrentUpdatePriority:i(()=>Wf,"getCurrentUpdatePriority"),resolveUpdatePriority(){return Wf!==cI?Wf:SB},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:TB(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:aI.name,rendererVersion:aI.version});import AB from"widest-line";import _B from"indent-string";import wo from"yoga-layout";import Uf from"yoga-layout";var CB=i(e=>e.getComputedWidth()-e.getComputedPadding(Uf.EDGE_LEFT)-e.getComputedPadding(Uf.EDGE_RIGHT)-e.getComputedBorder(Uf.EDGE_LEFT)-e.getComputedBorder(Uf.EDGE_RIGHT),"getMaxWidth"),lI=CB;import RB from"cli-boxes";import jf from"chalk";import Wr from"chalk";var bB=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,vB=/^ansi256\(\s?(\d+)\s?\)$/,IB=i(e=>e in Wr,"isNamedColor"),kB=i((e,t,n)=>{if(!t)return e;if(IB(t)){if(n==="foreground")return Wr[t](e);let r=`bg${t[0].toUpperCase()+t.slice(1)}`;return Wr[r](e)}if(t.startsWith("#"))return n==="foreground"?Wr.hex(t)(e):Wr.bgHex(t)(e);if(t.startsWith("ansi256")){let r=vB.exec(t);if(!r)return e;let o=Number(r[1]);return n==="foreground"?Wr.ansi256(o)(e):Wr.bgAnsi256(o)(e)}if(t.startsWith("rgb")){let r=bB.exec(t);if(!r)return e;let o=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?Wr.rgb(o,s,a)(e):Wr.bgRgb(o,s,a)(e)}return e},"colorize"),pi=kB;var EB=i((e,t,n,r)=>{if(n.style.borderStyle){let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?RB[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&&($=jf.dim($));let F=s;x&&(F-=1),w&&(F-=1);let D=(pi(a.left,u,"foreground")+`
395
+ `).repeat(F);g&&(D=jf.dim(D));let v=(pi(a.right,m,"foreground")+`
396
+ `).repeat(F);y&&(v=jf.dim(v));let z=w?pi((T?a.bottomLeft:"")+a.bottom.repeat(A)+(I?a.bottomRight:""),l,"foreground"):void 0;w&&h&&(z=jf.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"),uI=EB;var MB=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"),dI=MB;function fI(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(fI,"computeScrollState");var LB=i((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),o=n.getComputedTop();t=`
397
+ `.repeat(o)+_B(t,r)}return t},"applyPaddingToText"),Gf=i((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===wo.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"?" ":`
398
+ `;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>Gf(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"),ry=null;function mI(){ry=null}i(mI,"resetScrollHint");function pI(){return ry}i(pI,"getScrollHint");var hI=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()===wo.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=AB(g),x=lI(c);if(y>x){let w=e.style.textWrap??"wrap";g=Nf(g,x,w)}g=LB(e,g),t.write(l,u,g,{transformers:m})}return}let p=!1,h=0;if(e.nodeName==="ink-box"){dI(l,u,e,t),uI(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(wo.EDGE_TOP),I=c.getComputedBorder(wo.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=fI({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&&(ry=z.scrollHint),e.scrollTop=z.scrollTop,h=z.scrollOffsetY}if(x||w){let T=x?l+c.getComputedBorder(wo.EDGE_LEFT):void 0,I=x?l+c.getComputedWidth()-c.getComputedBorder(wo.EDGE_RIGHT):void 0,A=w?u+c.getComputedBorder(wo.EDGE_TOP):void 0,$=w?u+c.getComputedHeight()-c.getComputedBorder(wo.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)hI(g,t,{offsetX:l,offsetY:u-h,transformers:m,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),oy=hI;import PB from"slice-ansi";import $B from"string-width";import{styledCharsFromTokens as OB,styledCharsToString as DB,tokenize as NB}from"@alcalzone/ansi-tokenize";var iy=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=OB(NB(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=$B(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(`
399
+ `))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 iy;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(`
400
+ `),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 PB(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 DB(o).trimEnd()}).join(`
401
+ `),height:t.length}}};var BB=i((e,t,n)=>{if(e.yogaNode){if(t){let p=Gf(e,{skipStaticElements:!0}),h=p===""?0:p.split(`
402
+ `).length,g="";return e.staticNode&&(g=Gf(e.staticNode,{skipStaticElements:!1})),{output:p,outputHeight:h,staticOutput:g?`${g}
403
+ `:"",frame:void 0}}let r=new ta({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});mI(),oy(e,r,{skipStaticElements:!0});let o;e.staticNode?.yogaNode&&(o=new ta({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),oy(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:pI()};return{output:s,outputHeight:a,staticOutput:o?`${o.get().output}
404
+ `:"",frame:m}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),sy=BB;var WB=i((e,t)=>{let n=t?.columns??80,r=Bf("ink-root"),o="";r.onComputeLayout=()=>{r.yogaNode.setWidth(n),r.yogaNode.calculateLayout(void 0,void 0,HB.DIRECTION_LTR)},r.onImmediateRender=()=>{let{staticOutput:l}=sy(r,!1);l&&l!==`
405
+ `&&(o+=l)};let s,a=ea.createContainer(r,FB,null,!1,null,"render-to-string",l=>{s??=l},()=>{},()=>{},()=>{}),c=!1;try{ea.updateContainerSync(e,a,null,()=>{}),ea.flushSyncWork();let{output:l}=sy(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(`
406
+ `)?o.slice(0,-1):o;return u&&l?u+`
407
+ `+l:u||l}finally{if(!c&&r.yogaNode)try{r.yogaNode.freeRecursive()}catch{}}},"renderToString"),gI=WB;var UB="\x1B[0m";function xI(e,t){if(e.length===0)return"";let n=yI(k,{flexDirection:"column",children:e.map(s=>yI(Zh,{section:s,theme:t.theme,animateSpinners:!1},s.key))}),r=gI(n,{columns:t.width});return(r.endsWith(`
408
+ `)?r.slice(0,-1):r)+UB+`
409
+ `}i(xI,"renderFinalizedSectionsToScrollbackText");function wI(e){return e.enabled&&!e.useRendererViewportShell&&!e.isTranscriptMode&&e.hasCommitHandle}i(wI,"isInlineLedgerActive");function SI(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}=K0({bannerSection:e.bannerSection??null,finalizedSections:e.finalizedSections,width:e.width},e.identify??Kb,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(SI,"computeInlineLedgerStep");function TI(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(TI,"resolveInlineLedgerState");function CI(e,t){return t?{...e,staticSections:[]}:e}i(CI,"gateInlinePromptModel");function jB(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(`
410
+ `)}).join(`
411
+ `);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return e.text;default:return""}}i(jB,"buildSearchText");function GB(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(GB,"buildExcerpt");function bI(e){return e.map((t,n)=>({itemId:t.id,itemIndex:n,searchText:jB(t)}))}i(bI,"createTranscriptSearchIndex");function vI(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:GB(o,t.trim())}]:[]}):[]}i(vI,"searchTranscriptIndex");function ay(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(ay,"stepTranscriptSearchMatch");function II(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(II,"buildTranscriptSearchSummary");function kI(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(kI,"resolveTranscriptSearchMatchIndex");function RI(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:KB(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(RI,"buildTranscriptSelectionSummary");function KB(e){return e.tools.length===1?`Tool call: ${e.tools[0]?.name??"tool"}`:`Tool group: ${e.tools.length} calls`}i(KB,"summarizeToolGroup");function EI(e){return e.map(t=>t.id)}i(EI,"getSelectableTranscriptItemIds");function MI(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(MI,"moveTranscriptSelection");function cy(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(`
412
+ `)}).join(`
413
+
414
+ `);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return e.text;default:return}}i(cy,"buildTranscriptCopyText");function AI(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(`
415
+ `)}).filter(n=>!!n);return t.length>0?t.join(`
416
+
417
+ `):void 0}i(AI,"buildTranscriptToolInputCopyText");import{useCallback as Jc,useRef as VB,useState as _I}from"react";function LI(e){let{state:t,ownsViewport:n,isAwaitingUserInteraction:r,isHistorySearchActive:o,isTranscriptMode:s,historySearchQuery:a}=e,c=P0(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(LI,"buildTranscriptChromeModel");function PI(e){return Math.max(1,e-2)}i(PI,"resolveTranscriptPageSize");function $I(e){return Math.max(3,Math.floor(e/4))}i($I,"resolveTranscriptWheelStep");function zB(e,t){return Math.max(0,e+t)}i(zB,"incrementTranscriptScrollOffset");function OI(e,t,n){let r=Math.max(0,t-n);return Math.min(Math.max(0,e),r)}i(OI,"clampTranscriptScrollOffset");function DI(){let e=VB(null),[t,n]=_I(0),[r,o]=_I(!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=>zB(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(DI,"useTranscriptViewportScrollController");function NI(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(NI,"isTranscriptItemVisible");function BI(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 Yb(u,a,s)}i(BI,"resolveTranscriptSelectionOffset");function HI(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=qh(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(HI,"resolveTranscriptSearchAnchorItemId");function FI(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(FI,"resolveTranscriptOwnedWindowGeometry");function XB(e){return e.text===" "?"":e.text}i(XB,"normalizeTranscriptRowText");function ly(e){let t=new Map;return e.forEach((n,r)=>{t.set(n.key,r)}),t}i(ly,"buildTranscriptRowIndexByKey");function YB(e,t={}){let n=Math.max(0,e.indent??0),r=e.spinner&&t.animateSpinners!==!1?2:0;return 1+n+r}i(YB,"resolveTranscriptTextStartColumn");function WI(e,t={}){let n=Math.max(0,t.topOffsetRows??0),r=t.rowIndexByKey??ly(t.allRows??e),o=e.map((s,a)=>{let c=XB(s),l=YB(s,t),u=po(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+Zb(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(WI,"buildTranscriptScreenBuffer");function qB(e,t){let n=Math.max(1,Math.floor(t));return ev(e.text,n-e.textStartColumn)}i(qB,"clampTextColumn");function uy(e,t){return{screenRow:e,point:{rowKey:e.key,modelRowIndex:e.modelRowIndex,column:qB(e,t)}}}i(uy,"toHit");function dy(e,t,n){let r=e.rows.find(o=>o.screenRow===t);return r?uy(r,n):void 0}i(dy,"hitTestTranscriptScreen");function fy(e,t,n){if(e.rows.length!==0)return t<=e.topRow?uy(e.rows[0],n):t>=e.bottomRow?uy(e.rows[e.rows.length-1],n):dy(e,t,n)}i(fy,"clampTranscriptScreenHit");function UI(e){return e.text===" "?"":e.text}i(UI,"normalizeTranscriptRowText");function jI(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i(jI,"comparePoints");function GI(e,t,n,r={}){if(e.length===0)return;let[o,s]=jI(t,n)<=0?[t,n]:[n,t],a=r.selectFullRowOnCollapsed===!0,c=jI(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:po(UI(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=UI(w),I=po(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(`
418
+ `)}}i(GI,"buildTranscriptScreenSelection");function KI(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(KI,"buildTranscriptScreenSelectionSummary");function VI(e,t){return e.rows.length===0?0:t<e.topRow?1:t>e.bottomRow?-1:0}i(VI,"resolveTranscriptDragEdgeScrollDirection");function Kf(e){return e?e.map(t=>({label:t.label,value:t.value,description:t.description})):[]}i(Kf,"toSelectOptions");function my(e){return e.question}i(my,"getAskUserDialogTitle");function JB(e){switch(e){case"confirm":return Z("waiting.confirm");case"select":return Z("waiting.select");case"input":return Z("waiting.input")}}i(JB,"formatPromptWaitingText");function zI(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(zI,"buildPromptPlaceholderText");function XI(e){if(e.isTranscriptMode)return;if(e.waitingReason)return{kind:"waiting",text:JB(e.waitingReason),showSpinner:!1};if(!e.isLoading)return;let t=eg({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(XI,"buildPromptActivityViewModel");function YI(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(YI,"resolveEffectiveCompactionInfo");function qI(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(qI,"buildSurfaceStatusBarProps");function JI(e){let t=Yg(e.state),n=t?Df(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&&L0(e.state)},toggleDetail:t&&!!n,navigationCapabilities:{selection:t&&!!n&&e.selectableItemIds.length>0}}}i(JI,"buildTranscriptSelectionRuntimeState");function QI(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(QI,"buildTranscriptSelectionViewModel");function ZI(e){return{query:e.query,matches:e.matches,currentMatchIndex:e.currentMatchIndex,anchorItemId:e.anchorItemId,statusText:e.useOverlaySurface?void 0:e.statusText}}i(ZI,"buildTranscriptSearchViewModel");function QB(e,t){return e===0?0:t<0?-1:Math.min(t,e-1)}i(QB,"clampTranscriptSearchSelectedIndex");function ZB(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(ZB,"buildTranscriptSearchDetailText");function ek(e){let t=QB(e.matches.length,e.selectedIndex),n=II(e.matches,t),r=ZB({isHistorySearchActive:e.isHistorySearchActive,historySearchQuery:e.historySearchQuery,matches:e.matches,clampedSelectedIndex:t});return{clampedSelectedIndex:t,statusText:n,detailText:r,searchState:ZI({query:e.historySearchQuery,matches:e.matches,currentMatchIndex:t,anchorItemId:e.anchorItemId,statusText:n,useOverlaySurface:e.useOverlaySurface})}}i(ek,"buildTranscriptSearchChrome");function eH(e=!1){return`\u2190/\u2192 enter select mode | Ctrl+E ${e?"collapse":"show all"} | Mouse drag selects text`}i(eH,"buildDefaultTranscriptSecondaryText");function tk(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(tk,"buildFooterNotifications");function nk(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(nk,"buildBaseFooterNotices");function rk(e){if(e.inputText.trim()&&(e.isTranscriptMode||e.isHistorySearchActive))return"Draft preserved while viewing transcript"}i(rk,"buildStashNoticeText");function ok(e){return[...e]}i(ok,"buildPromptFooterNotices");function tH(e){let n=(e.isHistorySearchActive?[e.historySearchDetailText]:[e.selectionSummary,e.actionSummary]).filter(r=>!!(r&&r.trim().length>0));return n.length===0?eH(e.showAllActive):n.join(" | ")}i(tH,"buildTranscriptFooterSecondaryText");function nH(e){let t=[];return e&&t.push(e),t}i(nH,"buildTranscriptFooterBudgetNotices");function ik(e){let t=e.selectionState?.copyCapabilities,n=e.selectionState?.navigationCapabilities,o=KI(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=tH({isHistorySearchActive:e.isHistorySearchActive,historySearchDetailText:e.historySearchDetailText,selectionSummary:o,actionSummary:s,showAllActive:e.showAllActive,baseFooterNotices:e.baseFooterNotices});return{selectionSummary:o,actionSummary:s,secondaryText:a,budgetNotices:nH(a)}}i(ik,"buildTranscriptFooterViewModel");import{jsx as D9,jsxs as N9}from"react/jsx-runtime";function sk(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(sk,"formatAmaWorkStripText");function ak(e){return e.replace(/^\[[^\]]+\]\s*/,"").trim()}i(ak,"stripLiveActivityPrefix");function ck(e){let t=[],n=e.showPrimary??!0;if(e.isLoading&&n){let l=e.currentTool?ak(Wd(e.currentTool,e.toolInputContent??"",e.toolInputCharCount??0)):void 0,u=e.liveActivityLabel?ak(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(ck,"buildBackgroundTaskViewModel");function lk(e,t){if(!(!t||!e||e.agentMode!=="ama"))return sk(e.childFanoutClass,e.childFanoutCount)}i(lk,"buildAmaWorkStripFromStatus");function py(e){let t=lk(e.status,e.isLoading);return{workStripText:t,backgroundTask:ck({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(py,"buildAmaSummaryViewModel");function hy(e){return{...e,items:[...e.items],managedLiveEvents:[...e.managedLiveEvents??[]]}}i(hy,"captureTranscriptSnapshot");function uk(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(uk,"countPendingTranscriptUpdates");function dk(e){return e.snapshot?[...e.snapshot.items]:e.surface==="transcript"?[...e.transcriptItems]:[...e.promptItems]}i(dk,"resolveTranscriptSurfaceItems");function fk(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(fk,"buildPromptSurfaceItems");function mk(e,t){return e.enabled?t==="transcript"?e.transcriptShell:e.promptShell:"main-screen"}i(mk,"resolveFullscreenShellMode");function rH(e,t){return e.enabled&&mk(e,t)==="virtual"}i(rH,"shouldUseRendererViewportShell");function pk(e,t){let n=mk(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(pk,"resolveTranscriptInteractionPolicy");function hk(e,t,n){return rH(e,t)?t==="transcript"||n:!1}i(hk,"shouldOwnTranscriptViewport");var oH=500,iH=1,sH=/[\p{L}\p{N}_/.\-+~\\]/u;function aH(e){return e.text===" "?"":e.text}i(aH,"normalizeTranscriptRowText");function gk(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i(gk,"comparePoints");function gy(e){return e===""||/\s/.test(e)?0:sH.test(e)?1:2}i(gy,"charClass");function yk(e){let t=e.timeoutMs??oH,n=e.distance??iH,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(yk,"resolveTranscriptMultiClickState");function Vf(e,t,n){let r=e[t.modelRowIndex];if(!r)return;let o=aH(r);if(n==="line")return{kind:n,start:{...t,column:0},end:{...t,column:po(o)}};let s=po(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=gy(Yd(o,a)),l=a,u=a+1;for(;l>0&&gy(Yd(o,l-1))===c;)l-=1;for(;u<s&&gy(Yd(o,u))===c;)u+=1;return{kind:n,start:{...t,column:l},end:{...t,column:u}}}i(Vf,"resolveTranscriptSelectionSpanAt");function yy(e,t){return gk(t.end,e.start)<0?{anchor:e.end,focus:t.start}:gk(t.start,e.end)>0?{anchor:e.start,focus:t.end}:{anchor:e.start,focus:e.end}}i(yy,"extendTranscriptSelectionSpan");var wk="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 xy(e,t){if(sn(e))return[t.getGuardrail()]}i(xy,"buildAutoModeGuardrails");function uH(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:e.thinking===!0||t.thinking===!0?"auto":"off"}i(uH,"resolveInitialReasoningMode");function dH(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(dH,"buildManagedTranscriptCompactText");function Sk(e){let t=dH(e);return{type:"event",icon:Pg(e)?"\u2713":">",text:e,...t&&t!==e?{compactText:t}:{}}}i(Sk,"toManagedTranscriptEventItem");function So(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(So,"toCreatableHistoryItem");function Sy(e){return IC(e)?"":lo(e).trim()}i(Sy,"sanitizeInterruptedAssistantText");function Tk(e){return!!(e?.activeWorkerId&&!e.childFanoutClass&&(e.phase==="preflight"||e.phase==="worker"))}i(Tk,"isForegroundManagedStreamingStatus");function fH(e,t,n){let r=[],o=n?.infoItems??[],s=Ty({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=Sy(t);return a&&r.push({type:"assistant",text:`${a}
419
+
420
+ [Interrupted]`}),r}i(fH,"buildInterruptedPersistenceItems");function Ty({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(Ty,"buildRoundHistoryItems");function Ek(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(Ek,"toPersistedUiHistoryItem");var Ck=150,bk=50,vk=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1",mH=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>bk){let r=t[t.length-bk]??0;n=e.slice(r)}if(n.length>Ck){let r=n.slice(-Ck),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 Ik(e){return hi(e.map(t=>Ek(t)).filter(t=>!!t))}i(Ik,"serializeUiHistorySnapshot");function pH(e){return e.map(t=>Ek(t)).filter(t=>!!t)}i(pH,"serializeCreatableHistoryItems");function zf(e,t){return t.length===0?hi(e):hi([...e,...pH(t)])}i(zf,"appendPersistedUiHistorySnapshot");function Xf(e,t,n){console.log((e==="block"?Ye.red:Ye.yellow)(t)),n.forEach(r=>console.log(Ye.dim(r)))}i(Xf,"logSessionTransitionGuard");var wy=i(({config:e,sessionId:t,workingDir:n,terminalWidth:r,compactionInfo:o})=>{let s=re("dark"),a=e.model??Mn(e.provider)??e.provider,c=Fo(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(k,{flexDirection:"column",marginBottom:1,children:[Og.map((h,g)=>le(b,{color:s.colors.primary,children:h},g)),Zt(k,{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(k,{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(k,{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 hH(e){let t=e.config.model??Mn(e.config.provider)??e.config.provider,n=Fo(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(`
421
+ `):[""],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 Og.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(hH,"buildBannerTranscriptSection");function kk(e,t){return t?{...e,sections:[t,...e.sections],rows:[...t.rows,...e.rows]}:e}i(kk,"prependTranscriptSection");var gH=process.env.KODAX_INLINE_LEDGER!=="0";function Rk(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
422
+ `)}i(Rk,"reportInlineLedgerFailure");var yH=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}=io(),{stdout:x}=cr(),{stdin:w,setRawMode:T,isRawModeSupported:I}=oc(),A=Cs(),{history:$}=Nc(),F=xk.useRef(null),D=xk.useRef(Uw()),{addHistoryItem:v,addHistoryItems:z,clearHistory:fe,setSessionId:se}=Bc(),ge=xe($),L=xe(Ik($));Fe(()=>{ge.current=$,L.current=Ik($)},[$]),Fe(()=>{p0()},[]),Fe(()=>{KC()},[]);let R=x.columns||80,P=Wc(),Me=xe(P);Fe(()=>{Me.current=P},[P]);let{startStreaming:Ae,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:_e,setMaxIter:at,addPendingInput:ke,removeLastPendingInput:Be,shiftPendingInput:$t,consumePendingInputs:ce}=Uc(),[oe,ze]=Ge(!1),[B,nt]=Ge(t),un=de(()=>YI(c,{provider:B.provider,model:B.model},Do),[c,B.provider,B.model]),[wi,Gr]=Ge(!0),[am,QF]=Ge(!0),[dl,fl]=Ge(0),[cm,ca]=Ge(!1),[Hy,Qn]=Ge(null),eE=de(()=>jo(),[]),la=xe(null),ml=xe(null),Fy=xe(Promise.resolve()),pl=xe(null),bo=xe({requested:!1,uiHistoryOverride:void 0}),Si=xe(null),ua=xe(!1),da=xe(null),[lm,hl]=Ge(!0),[um,gl]=Ge(""),[He,Zn]=Ge(()=>S0(eE,{rendererMode:o})),[Et,dm]=Ge(!1),[tE,nE]=Ge(0),{scrollRef:rE,scrollOffset:Hn,sticky:fm,setScrollOffset:oE,handleScrollTopChange:iE,handleStickyChange:sE,scrollTo:yl,scrollBy:xl,scrollToBottom:wl}=DI(),mm=xe(null),Sl=xe(null),fa=xe([]),Tl=xe([]),Ti=xe(null),Fn=xe(null),Wy=xe({time:0,row:-1,column:-1,count:0}),[Cl,pm]=Ge(void 0),[vo,hm]=Ge(void 0),[Ci,Uy]=Ge(void 0),[dn,aE]=Ge(()=>new Set),[gm,jy]=Ge(null),[Wt,Gy]=Ge(null),[G,ym]=Ge(null),[bl,Kr]=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]),[ZF,ma]=Ge([]),[pa,cE]=Ge([]),[vl,ht]=Ge(void 0),[Io,Il]=Ge(void 0),ct=xe(null),xm=xe(null),ko=xe([]),vi=xe([]),Yt=xe([]),wm=xe(new Set),st=xe({}),gt=xe({activeToolGroupTools:[]}),Ky=xe(0),kl=xe({itemId:void 0,kind:"thinking",pendingText:""}),Wn=xe(null),lE=80,uE=20,dE=xe(null),Rl=de(()=>[...$,...pa],[$,pa]),Sm=de(()=>{let f=zb(Rl,dE);return f===0?Rl:Rl.slice(f)},[Rl]),El=de(()=>Xb(Sm,uE),[Sm]),Ii=Sm,Ut=xe(null),er=xe(null),tr=xe([]),jt=xe([]),[Ro,fE]=Ge([]),Sr=xe([]),Tn=X(f=>{Sr.current=f,fE(f)},[]),Vy=X(f=>{ko.current=f,ma(f)},[]),ki=X(f=>{Yt.current=f,cE(f)},[]),zy=X(f=>{let S=f([...Yt.current]);ki(S)},[ki]),Xy=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"&&wm.current.add(S.id)},[]),ha=X(()=>{kl.current={itemId:void 0,kind:"thinking",pendingText:""},Wn.current&&(clearTimeout(Wn.current),Wn.current=null);let f=dg(Yt.current,wm.current);if(f.length>0){for(let S of f)wm.current.add(S.id);Si.current?.(f.map(S=>So(S)))}Ml({clearOwner:!0}),ki([])},[Ml,ki]),_l=X(f=>(Ky.current+=1,`managed-foreground-${f}-${Ky.current}`),[]),Cn=X(f=>(Xy([f]),f.id),[Xy]),Eo=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 zy(M=>M.map(E=>E.id!==f?E:(C=S(E),C))),C},[zy]),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]),Yy=X(()=>{Wn.current||(Wn.current=setTimeout(Cr,lE))},[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),Yy()},[Ri,Cr,Yy]),qy=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]),mE=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]),pE=X(f=>{if(f.length===0)return[];let S=[],C=[...ko.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];Ef(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];Ef(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)=>!Ef(E,ko.current[H]??E)||E.id!==ko.current[H]?.id))&&Vy(C),S},[Vy]),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)},[]),Vr=X(f=>{let S=Sr.current.filter(C=>C.status===N.Executing);if(S.length!==0){if(f){let C=Lg(f);for(let M=S.length-1;M>=0;M-=1){let E=S[M];if(Lg(E.name)===C)return E}}return S[S.length-1]}},[]),Ei=X(()=>{let f=Vr();ue(f?_g(f.name):void 0)},[Vr,ue]),Jy=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]),Qy=X((f,S,C)=>{if(f){let E=Mi(f,C);if(E)return E}let M=Vr(S);return M?Mi(M.id,C):null},[Vr,Mi]),$l=X((f,S,C,M,E)=>{let H=f??Vr(E)?.id;return H?Mi(H,W=>({...W,status:S,endTime:Date.now(),error:C,output:M})):null},[Vr,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]),zr=X(()=>{Tn([])},[Tn]),{showHelp:Zy,toggleHelp:hE,setShowHelp:ex}=Bg(),gE=X(f=>{gl(f),hl(f.trim().length===0)},[]),Ol=ii(),tx=de(()=>Ol?Ol.state.visible&&Ol.suggestions.length>0:!1,[Ol]),[ya,nx]=Ge(!1),rx=xe(dl),xa=X(()=>{Ut.current&&(clearTimeout(Ut.current),Ut.current=null),er.current&&(clearTimeout(er.current),er.current=null)},[]);Fe(()=>{tx&&!ya&&nx(!0)},[tx,ya]),Fe(()=>{dl!==rx.current&&(rx.current=dl,ya&&nx(!1))},[dl,ya]);let[tt,Dl]=Ge(null),Mo=xe(null),[Le,jn]=Ge(null),Nl=xe(null),Bl=xe(Le);Bl.current=Le;let[qt,Ai]=Ge(""),[Hl,Gn]=Ge(0),Tm=xe(""),wa=xe(void 0),ox=de(()=>{if(!un)return;let{contextWindow:f,triggerPercent:S}=un;return{currentTokens:Hy??n.contextTokenSnapshot?.currentTokens??No(n.messages),contextWindow:f,triggerPercent:S}},[n.messages,n.contextTokenSnapshot,un,Hy]),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",Xr=!!tt||!!Le||lt,Tt=ie?Et?Bb:1e3:12,Yr=pk(s,He.surface),ix=Yr.shellMode,Cm=Yr.usesAlternateScreenShell,Ao=Yr.usesRendererViewportShell,Fl=Yr.usesRendererMouseTracking,sx=Yr.usesManagedMouseClicks,ax=Yr.usesManagedMouseWheel,bm=Yr.usesManagedSelection,Ct=hk(s,He.surface,A0(He)),cx=_0(He),Wl=ya&&!ie,lx=X(()=>hy({items:Ii,managedLiveEvents:[],isLoading:oe,isThinking:P.isThinking,thinkingCharCount:P.thinkingCharCount,thinkingContent:P.thinkingContent,currentResponse:P.currentResponse,currentTool:P.currentTool,activeToolCalls:Ro,toolInputCharCount:P.toolInputCharCount,toolInputContent:P.toolInputContent,lastLiveActivityLabel:vl,workStripText:Io,iterationHistory:P.iterationHistory,currentIteration:P.currentIteration,isCompacting:P.isCompacting}),[Ii,oe,P.isThinking,P.thinkingCharCount,P.thinkingContent,P.currentResponse,P.currentTool,Ro,P.toolInputCharCount,P.toolInputContent,vl,Io,P.iterationHistory,P.currentIteration,P.isCompacting]);Fe(()=>{if(ie){jy(f=>f??lx());return}jy(null)},[lx,ie]);let Ta=de(()=>uk({isTranscriptMode:ie,snapshot:gm,currentItemsLength:Ii.length,currentManagedLiveEventsLength:0,isLoading:oe,currentResponse:P.currentResponse,thinkingContent:P.thinkingContent,activeToolCallsLength:Ro.length}),[Ro.length,oe,ie,Ii.length,P.currentResponse,P.thinkingContent,gm]),Ot=ie?gm:null,vm=de(()=>fk(El),[El]),yE=de(()=>!!(pa.length>0||Tk(G)),[pa.length,G]),Ul=pa.length>0,Gt=s.streamingPreview&&yE,_i=de(()=>dk({surface:"transcript",snapshot:Ot,promptItems:El,transcriptItems:Ii}),[Ot,El,Ii]),Ca=de(()=>{if(!ie||Et||_i.length<=Yh)return _i;let f=_i.slice(-Yh),S=_i.length-f.length;return[Jb(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?[]:Ro,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??Ro,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?vo:Cl,ux=!!Cl,dx=X(()=>hy({items:vm,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,vm,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(!ux){Gy(null);return}Gy(f=>f??dx())},[dx,ux]);let ba=Wt?.items??vm,Jt=Wt?.isLoading??oe,Re=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:Re,fx=Jt&&!P.currentResponse&&!P.thinkingContent&&Ro.length===0,_o=de(()=>({config:B,sessionId:n.sessionId,workingDir:e.context?.gitRoot||process.cwd(),terminalWidth:R,compactionInfo:un??void 0}),[un,n.sessionId,B,e.context?.gitRoot,R]),qr=de(()=>s.enabled&&am?hH(_o):void 0,[_o,s.enabled,am]),mx=xe(Qs),px=xe(!1),Im=xe(!1),Li=wI({enabled:gH,useRendererViewportShell:Ao,isTranscriptMode:ie,hasCommitHandle:typeof ys(x)?.commitInlineScrollback=="function"}),va=de(()=>Gd({items:ba,viewportWidth:R,maxLines:Tt,showDetailedTools:!1,showAllContent:!1,windowed:!1}),[ba,R,Tt]),Lo=de(()=>{let f=Kd({activeItems:va.activeItems,viewportWidth:R,isLoading:Jt,maxLines:Tt,isThinking:Re.isThinking,thinkingCharCount:Re.thinkingCharCount,thinkingContent:Re.thinkingContent,streamingResponse:Re.currentResponse,currentTool:Re.currentTool,activeToolCalls:Re.activeToolCalls,toolInputCharCount:Re.toolInputCharCount,toolInputContent:Re.toolInputContent,iterationHistory:Re.iterationHistory,currentIteration:Re.currentIteration,isCompacting:Re.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:Re.lastLiveActivityLabel,currentTodoActiveForm:bi,showFullThinking:!1,showDetailedTools:!1,showAllContent:!1,showLiveProgressRows:fx}),S=Ub(va,f,qr);return CI(S,Li)},[B.agentMode,Li,Jt,Re.activeToolCalls,Re.currentIteration,Re.currentTool,Re.isCompacting,Re.currentResponse,Re.isThinking,Re.iterationHistory,Re.lastLiveActivityLabel,Re.thinkingCharCount,Re.thinkingContent,Re.toolInputCharCount,Re.toolInputContent,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,fx,va,qr,R,Tt,bi]),km=de(()=>Gd({items:Ca,viewportWidth:R,maxLines:Tt,showDetailedTools:Et,showAllContent:Et,windowed:!1}),[Ca,R,Tt,Et]),jl=de(()=>{if(!ie||Ao)return;let f=Kd({activeItems:km.activeItems,viewportWidth:R,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 kk(Xh(Vd(km,f)),qr)},[B.agentMode,dn,Ul,qr,ie,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,R,ut,Tt,km,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,Ao,bi]),Ia=de(()=>{if(Ct)return ie?kk(zd({items:Dt,viewportWidth:R,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}),qr):Xh(Lo)},[B.agentMode,nr,Dt,Ul,qr,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,Lo,oe,ie,R,Tt,Ct,Et,bi]),rr=de(()=>Ia??jl,[Ia,jl]),ka=de(()=>py({status:G,isLoading:oe,agentMode:B.agentMode}),[B.agentMode,oe,G]).workStripText,Ra=Ot?.workStripText??Io,Pi=de(()=>py({status:G,isLoading:oe,agentMode:B.agentMode,parallelTextOverride:Ra}),[B.agentMode,Ra,oe,G]),Po=de(()=>EI(Dt).filter(f=>f!==Xd),[Dt]),Qe=de(()=>Df(He,Po,He.selectedItemId),[Po,He]),fn=de(()=>Dt.find(f=>f.id===Qe),[Dt,Qe]),hx=de(()=>({...He,supportsSelection:He.supportsSelection&&Ct,supportsCopyOnSelect:He.supportsCopyOnSelect&&Ct}),[He,Ct]),bn=de(()=>JI({state:hx,selectableItemIds:Po,selectedItemId:Qe,selectedItemType:fn?.type,isExpanded:Qe?dn.has(Qe):!1}),[dn,Po,fn?.type,Qe,hx]),gx=bn.selectionEnabled,yx=bn.copyCapabilities.copyOnSelect,nW=bn.selectedItemIndex,xx=de(()=>RI(fn),[fn]),Gl=de(()=>bI(Dt.filter(f=>!Jh(f))),[Dt]),Mt=de(()=>vI(Gl,qt),[Gl,qt]),Kl=de(()=>ek({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]),Jr=Kl.clampedSelectedIndex,wx=Kl.statusText,Rm=Kl.detailText,Sx=Kl.searchState,rW=bn.detailState==="expanded",Vl=bn.selectionEnabled&&Po.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),Io===ka)return;if(Io){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(!Io){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,Io]),Fe(()=>()=>{xa()},[xa]);let Qr=de(()=>LI({state:He,ownsViewport:Ct,isAwaitingUserInteraction:Xr,isHistorySearchActive:lt,isTranscriptMode:ie,historySearchQuery:qt}),[qt,Xr,lt,ie,He,Ct]);Fe(()=>{Zn(f=>{let S=v0(f,Hn);return S=b0(S,Ta),S=k0(S,s.enabled&&Ct?!fm||lt||Xr:ie||lt||Xr),S=M0(S,Jr),S})},[Jr,s.enabled,Hn,Xr,lt,ie,Ta,Ct,fm]),Fe(()=>{Hl!==Jr&&Gn(Jr)},[Jr,Hl]),Fe(()=>{if(!lt){Tm.current=qt;return}if(qt===Tm.current)return;Tm.current=qt;let f=kI(Gl,Mt,He.searchAnchorItemId);Gn(f)},[Mt,qt,lt,He.searchAnchorItemId,Gl]);let Tx=ie?Se:{isThinking:Re.isThinking,thinkingCharCount:Re.thinkingCharCount,currentTool:Re.currentTool,activeToolCalls:Re.activeToolCalls,toolInputCharCount:Re.toolInputCharCount,toolInputContent:Re.toolInputContent,currentIteration:Re.currentIteration,isCompacting:Re.isCompacting},Ea=ie?ut:Jt,[Em,Mm]=Ge(()=>sn(B.permissionMode)?l.getGuardrail().getEngine():void 0),Yl=de(()=>qI({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(Fo(B.provider,B.model)),isTranscriptMode:ie,streamingState:Tx,maxIter:P.maxIter,contextUsage:ox,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:Em}),[n.sessionId,B.permissionMode,B.agentMode,B.provider,B.model,B.thinking,B.reasoningMode,ie,Tx,P.maxIter,ox,Ea,G?.phase,G?.harnessProfile,G?.activeWorkerTitle,G?.currentRound,G?.maxRounds,G?.globalWorkBudget,G?.budgetUsage,G?.budgetApprovalRequired,G?.idleWaiting,G?.idleWaitingPendingCount,Em]),Am=tt?"confirm":Le?.kind,Zr=de(()=>XI({isTranscriptMode:ie,isLoading:Ea,streamingState:Re,managedState:Ea?{phase:G?.phase,harnessProfile:G?.harnessProfile,workerTitle:G?.activeWorkerTitle}:void 0,waitingReason:Am}),[Re.activeToolCalls,Re.currentTool,Re.isCompacting,Re.isThinking,Re.thinkingCharCount,Re.toolInputCharCount,Re.toolInputContent,ie,G?.activeWorkerTitle,G?.harnessProfile,G?.phase,Am,Ea]),_m=Zr?.text,vr=de(()=>jv(bl,{now:Date.now(),lastAllCompletedAt:null}),[bl]),Cx=xe(!1);Fe(()=>{Cx.current&&!oe&&Kr(f=>f.length>0?[]:f),Cx.current=oe},[oe]);let Lm=de(()=>Zd(Yl),[Yl]),bx=de(()=>Lm,[Lm]),vx=bx.text,xE=de(()=>Cv(P.pendingInputs),[P.pendingInputs]),Pm=de(()=>Gv({isHistorySearchActive:lt,isTranscriptMode:ie,pendingInputCount:P.pendingInputs.length,buffering:He.buffering,pendingLiveUpdates:Ta}),[lt,ie,Ta,P.pendingInputs.length,He.buffering]),Ix=Pm.leftItems,kx=Pm.rightItems,Rx=Pm.summary,ql=de(()=>nk({historySearchQuery:qt,pendingInputCount:P.pendingInputs.length}),[qt,P.pendingInputs.length]),Jl=de(()=>tk({historySearchQuery:qt,isHistorySearchActive:lt,historySearchMatchCount:Mt.length,pendingInputCount:P.pendingInputs.length,maxPendingInputs:5}),[Mt.length,qt,lt,P.pendingInputs.length]),Ex=de(()=>Jl.map(f=>f.text).join(" | "),[Jl]),Ql=de(()=>rk({inputText:um,isTranscriptMode:ie,isHistorySearchActive:lt}),[um,lt,ie]),Mx=He.supportsOverlaySurface&&He.supportsSearchViewport&&Ct,Zl=de(()=>QI({runtime:bn,itemSummary:xx}),[xx,bn]),$m=de(()=>ok(ql),[ql]),Ax=de(()=>ik({textSelection:br,selectionState:Zl,isHistorySearchActive:lt,historySearchDetailText:Rm,historySearchHasMatches:!!wx&&Mt.length>0,showAllActive:Et,baseFooterNotices:ql}),[br,ql,Rm,Mt.length,wx,lt,Et,Zl]),wE=Ax.secondaryText,SE=Ax.budgetNotices,_x=ie?SE:$m,Lx=x.rows??24,Px=ie?"":um,$x=ie?void 0:xE,Ox=Ra,Dx=ie?!1:Zy,Nt=de(()=>w0({terminalRows:Lx,terminalWidth:R,windowedTranscript:Ao,inputText:Px,footerHeaderText:Rx,activitySummary:ie?void 0:_m,activityBarVisible:ie?!1:!!_m||oe&&vr.shouldRender,todoSurfaceRows:ie?0:oe&&vr.shouldRender?vr.rows.length:0,pendingInputSummary:$x,stashNoticeSummary:Ql,notificationSummary:Ex,statusNoticeSummary:_x.join(" | "),workStripText:Ox,suggestionsReserved:Wl,suggestionsMode:"inline",showHelp:Dx,statusBarText:vx,confirmPrompt:tt?.prompt,confirmInstruction:Sa,dialogMode:"inline",reviewHint:s.enabled&&Ct?void 0:Qr.browseHintText,uiRequest:Le?Le.kind==="select"?{kind:"select",title:Le.title,options:Le.options.map(f=>({label:f.label,description:f.description})),buffer:Le.buffer,error:Le.error}:{kind:"input",prompt:Le.prompt,defaultValue:Le.defaultValue,buffer:Le.buffer,error:Le.error}:null}),[Lx,R,Px,Rx,_m,$x,Ql,Ex,_x,Ox,Wl,Mx,Dx,vx,tt,Sa,s.enabled,Qr.browseHintText,Ct,Le]),Om=de(()=>{if(!Li)return{model:Lo,committedSections:[]};let{committedSections:f,liveRows:S}=jb(va.staticSections,Lo.rows,Lo.previewRows,Nt.messageRows);return{model:{...Lo,staticSections:[],rows:S,previewRows:[]},committedSections:f}},[Li,Lo,va.staticSections,Nt.messageRows]),Nx=Om.model;Fe(()=>{let f=ys(x),S=typeof f?.commitInlineScrollback=="function",C=SI({active:Li,hasCommitHandle:S,wasActive:px.current,forceRebuild:Im.current,prior:mx.current,finalizedSections:Om.committedSections,bannerSection:qr,width:R,identify:Gb}),M=!1,E=!1;if(C.kind==="commit"){let W=C.sections.flatMap(ne=>ne.rows),K=xI(W.length>0?[{key:"il-delta",rows:W}]:[],{width:R,theme:re("dark")});if(E=K.length>0,C.mode==="append"&&!K)Rk("empty-append-text");else try{f?.commitInlineScrollback?.({mode:C.mode,text:K}),M=!0}catch(ne){Rk("commit-threw",ne)}}let H=TI(C,{committed:M,hadContent:E},Im.current);mx.current=H.state,px.current=H.wasActive,Im.current=H.owns},[Li,Om.committedSections,qr,R,x]);let TE=de(()=>le(pg,{reserveSpace:Wl,width:R,hidden:ie,mode:"inline"}),[Wl,R,ie,Mx]),Ma=de(()=>PI(Nt.messageRows),[Nt.messageRows]),Bx=de(()=>$I(Ma),[Ma]),Oi=!cx&&s.transcriptSpinnerAnimation,Aa=rr?rr.rows.length+rr.previewRows.length:tE,eu=X(f=>{rr||nE(f.scrollHeight)},[rr]),_a=X(f=>FI({window:f,stickyHeader:Qr.stickyHeader,width:R,topChromeRows:0}),[R,Qr.stickyHeader]),Di=X((f=fa.current,S=Tl.current,C=mm.current?_a(mm.current):Sl.current)=>{if(!C||f.length===0){Ti.current=null;return}Sl.current=C,Ti.current=WI(f,{allRows:S,rowIndexByKey:ly(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]),CE=X(f=>{mm.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,pm(void 0),hm(void 0)},[]),Dm=X(()=>{Kt(),Zn(f=>Js(f,void 0))},[Kt]);Fe(()=>{Di()},[Di]),Fe(()=>{oE(f=>OI(f,Aa,Nt.messageRows))},[Aa,Nt.messageRows]),Fe(()=>{if(!Ci)return;let f=setTimeout(()=>{Uy(void 0)},2e3);return()=>{clearTimeout(f)}},[Ci]);let Ir=X((f,S="success")=>{let C=f?.trim();C&&Uy({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 ei(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||NI({items:Dt,renderModel:rr,terminalWidth:R,transcriptMaxLines:Tt,viewportRows:La(),itemId:f,visibleRows:fa.current,expandedItemKeys:dn,showDetailedTools:!1}))return;let S=BI({items:Dt,renderModel:rr,terminalWidth:R,transcriptMaxLines:Tt,viewportRows:La(),itemId:f,expandedItemKeys:dn,showDetailedTools:!1});yl(S)},[Dt,R,Tt,rr,dn,La,yl,fa]),Hx=X(f=>{Zn(S=>Js(S,f)),f&&Bi(f)},[Bi]),Nm=X(f=>{f&&Bi(f)},[Bi]),Fx=X(f=>{if(!Vl)return;let S=MI(Po,Qe,f);S&&Hx(S)},[Vl,Po,Qe,Hx]),Wx=X(()=>{!Xl||!Qe||(aE(f=>{let S=new Set(f);return S.has(Qe)?S.delete(Qe):S.add(Qe),S}),Bi(Qe))},[Bi,Xl,Qe]),Ux=X(async()=>{if(!$i||!fn)return;let f=cy(fn);if(f)try{await ei(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]),jx=X(async()=>{if(!zl||!fn)return;let f=AI(fn);if(f)try{await ei(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,[]),Gx=X((f,S)=>{if(!s.enabled||!Ct)return;let C=Ti.current;return C?dy(C,f,S):void 0},[s.enabled,Ct]),Hi=X((f,S,C)=>{let M=Pa(),E=GI(M,f,S,{animateSpinners:Oi,selectFullRowOnCollapsed:C?.selectFullRowOnCollapsed});ie?hm(E):pm(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]),Kx=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]),Bm=X(()=>{if(!ie||!Dt.length||tt||Le)return;Kt();let f=HI({items:Dt,selectedItemId:Qe,renderModel:rr,terminalWidth:R,transcriptMaxLines:Tt,viewportRows:La(),scrollOffset:Hn,expandedItemKeys:dn,showDetailedTools:!1,preferViewportAnchor:!0});Zn(S=>R0(S,{anchorItemId:f,initialMatchIndex:0})),Ai(""),Gn(0)},[tt,Dt,dn,Hn,ie,Qe,rr,R,Tt,Le,La,Kt]),Hm=X(()=>{Zn(f=>E0(f)),Ai(""),Gn(0),Kt()},[Kt]),ru=X(()=>{!lt||Mt.length===0||Gn(-1)},[Mt.length,lt]),Vx=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(`
423
+ `,1)[0]??tt.prompt,instruction:Sa,planContent:f}}return{prompt:tt.prompt,instruction:Sa}},[Sa,tt]),zx=de(()=>Le?Le.kind==="select"?{kind:"select",title:Le.title,options:Le.options,buffer:Le.buffer,error:Le.error,visibleSelectOptions:Nt.visibleSelectOptions,focusedIndex:Le.focusedIndex,selectedIndices:Le.selectedIndices,multiSelect:Le.multiSelect}:{kind:"input",prompt:Le.prompt,defaultValue:Le.defaultValue,buffer:Le.buffer,error:Le.error}:null,[Le,Nt.visibleSelectOptions]),bE=de(()=>le(gg,{confirm:Vx,request:zx}),[Vx,zx]),Fm=de(()=>{if(Ci)return le(Wv,{text:Ci.text,tone:Ci.tone})},[Ci]),Wm=de(()=>{if(Fm)return le(k,{flexDirection:"column",width:"100%",children:Fm})},[Fm]),ou=X(()=>{Zn(f=>I0(C0(f))),dm(!1),wl(),Ai(""),Gn(0),Kt()},[Kt,wl]),Xx=X(()=>{ie&&dm(f=>!f)},[ie]),vE=X(()=>{if(ie){ou();return}dm(!1),Zn(f=>T0(f)),Ai(""),Gn(0),Kt()},[Kt,ou,ie]);Fe(()=>{gx||!He.selectedItemId||Zn(f=>Js(f,void 0))},[gx,He.selectedItemId]),Fe(()=>{if(!ie||!$i||!yx){wa.current=void 0;return}if(vo||!Qe||!fn)return;if(!wa.current){wa.current=Qe;return}if(wa.current===Qe)return;wa.current=Qe;let f=cy(fn);f&&ei(f,{terminalWrite:A}).catch(()=>{})},[ie,fn,Qe,$i,yx,vo,A]),Fe(()=>{if(x?.isTTY!==!0)return;let f=ys(x);f?.setShellMode?.(ix,Fl),Cm||f?.setAltScreenActive?.(!1)},[ix,x,Cm,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:xy(B.permissionMode,l)}),vn=xe(B.permissionMode);Fe(()=>{vn.current=B.permissionMode},[B.permissionMode]);let IE=de(()=>Rs(),[]),Yx=xe(IE),Um=xe(B);Fe(()=>{Um.current=B},[B]);let jm=xe(null);jm.current===null&&(jm.current=gu({getProvider:i(()=>Do(Um.current.provider),"getProvider"),getModel:i(()=>Um.current.model??"","getModel")}));let qx=xe(sd());Fe(()=>{B.permissionMode==="auto-in-project"&&qx.current()},[]);let Gm=X(f=>{nt(S=>({...S,permissionMode:f})),vn.current=f,Ze.current={...Ze.current,guardrails:xy(f,l)},Mm(sn(f)?l.getGuardrail().getEngine():void 0),f==="auto-in-project"&&qx.current()},[l]),Jx=xe(P.pendingInputs),ot=xe(!1),$a=xe(0),iu=X(()=>{if(ua.current)return;let f=xm.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=>So(H)),...f&&f!==C?[{type:"info",text:f}]:[]]:[...Yt.current.map(H=>So(H)),...fH(_(),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(()=>{Jx.current=P.pendingInputs},[P.pendingInputs]);let Qx=X(()=>{ot.current=!0,V(),Y(),q(),Ie(),De(),me(),ue(void 0),zr(),ht(void 0),ha(),ko.current=[],vi.current=[],ma([]),ze(!1)},[V,me,Ie,De,zr,ha,ue,ma,ze,ht,Y,q]),su=xe(0),kE=500;yn(zt.Critical,f=>{if(!oe)return!1;switch(W0({keyName:f.name,ctrl:!!f.ctrl,isTranscriptMode:ie,isAwaitingUserInteraction:Xr,isInputEmpty:lm,pendingInputCount:P.pendingInputs.length,hasTranscriptTextSelection:!!vo,timeSinceLastEscapeMs:Date.now()-su.current,doubleEscapeIntervalMs:kE}).kind){case"interrupt":return su.current=0,iu(),Qx(),!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,Xr,lm,P.pendingInputs.length,Be,iu,Qx]),yn(zt.Critical,f=>{let S=H0({itemsLength:Dt.length,currentResponse:Ke.currentResponse,thinkingContent:Ke.thinkingContent,activeToolCallsLength:Ke.activeToolCalls.length}),C=F0({keyName:f.name,hasTranscript:S,historyScrollOffset:Hn,reviewPageSize:Ma,reviewWheelStep:Bx,hasMouse:!!f.mouse,mouseButton:f.mouse?.button,mouseAction:f.mouse?.action,usesManagedMouseClicks:sx,supportsMouseTracking:He.supportsMouseTracking,usesRendererMouseTracking:Fl,usesManagedMouseWheel:ax,supportsWheelHistory:He.supportsWheelHistory});if(C.kind==="mouse-phase"){let E=f.mouse;if(!E)return!1;C.phase==="press"&&Fn.current&&Kx(Fn.current);let H=Gx(E.row,E.column);if(C.phase==="press"){if(!H||!S)return br||Qe?(Dm(),!0):(Kt(),!1);let W=yk({previous:Wy.current,time:Date.now(),row:E.row,column:E.column});Wy.current=W;let K=W.count>=3?"line":W.count===2?"word":"char";if(ru(),Zn(ne=>Js(ne,void 0)),ie?hm(void 0):pm(void 0),K!=="char"){let ne=Vf(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?VI(W,E.row):0;K!==0&&xl(K);let ne=H??(W?fy(W,E.row,E.column):void 0);if(!ne)return!1;let Ce=Fn.current;if(Ce.mode!=="char"&&Ce.anchorSpan){let xt=Vf(Pa(),ne.point,Ce.mode);if(!xt)return!1;let Vt=yy(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?fy(Ti.current,E.row,E.column):void 0))?.point??K;if(W.mode!=="char"&&W.anchorSpan){let xt=Vf(Pa(),Ce,W.mode);if(xt){let Vt=yy(W.anchorSpan,xt);W.anchor=Vt.anchor,Ce=Vt.focus}}return Kx(W,{focusPoint:Ce}),!0}}if(C.kind==="scroll-by")return ru(),xl(C.delta),!0;if(C.kind==="consume")return!0;let M=U0({key:f,isTranscriptMode:ie,isHistorySearchActive:lt,historySearchMatchCount:Mt.length,hasTextSelection:!!br,hasFocusedItem:!!Qe,canCopySelectedItem:$i,canCopySelectedToolInput:zl,canToggleSelectedDetail:Xl,canCycleTranscriptSelection:Vl});return j0({action:M,hasTranscript:S,isTranscriptMode:ie,pageScrollDelta:Ma,disarmHistorySearchSelection:ru,scrollTranscriptBy:xl,closeHistorySearchSurface:Hm,backspaceHistorySearchQuery:i(()=>{Ai(E=>E.slice(0,-1)),Gn(0)},"backspaceHistorySearchQuery"),stepHistorySearchSelection:i(E=>{Gn(H=>ay(Mt.length,H,E))},"stepHistorySearchSelection"),submitHistorySearchSelection:i(()=>{let E=Mt[Jr];E&&(Nm(E.itemId),Hm())},"submitHistorySearchSelection"),appendHistorySearchQuery:i(E=>{Ai(H=>H+E),Gn(0)},"appendHistorySearchQuery"),openHistorySearchSurface:Bm,clearTranscriptSelectionFocus:Dm,exitTranscriptModeSurface:ou,toggleTranscriptShowAll:Xx,scrollTranscriptHome:i(()=>{yl(Math.max(0,Aa-Nt.messageRows))},"scrollTranscriptHome"),scrollTranscriptToBottom:i(()=>{wl(),Kt()},"scrollTranscriptToBottom"),cycleTranscriptSelection:Fx,copySelectedTranscriptText:i(()=>{nu()},"copySelectedTranscriptText"),copySelectedTranscriptItem:i(()=>{Ux()},"copySelectedTranscriptItem"),copySelectedTranscriptToolInput:i(()=>{jx()},"copySelectedTranscriptToolInput"),toggleSelectedTranscriptDetail:Wx,navigateSearchMatch:i(E=>{Gn(H=>{let W=ay(Mt.length,H,E),K=Mt[W];return K&&Nm(K.itemId),W})},"navigateSearchMatch"),dumpTranscriptToScrollback:i(()=>{G0({items:Dt.filter(E=>!Jh(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,Bx,Qe,Dm,ou,Xx,He,xl,yl,wl,Vl,Jr,Kt,nu,Mt,Bm,Hm,ru,Fx,$i,Ux,zl,jx,Xl,Wx,Nm,br,Gx,He.supportsMouseTracking,vo,sx,ax,bm,Ao,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}
424
+ \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),Mo.current?.({confirmed:!0}),Mo.current=null,!0):M&&(S==="a"||S==="always")?(E("approved_always"),Dl(null),Mo.current?.({confirmed:!0,always:!0}),Mo.current=null,!0):S==="n"||S==="no"||f.name==="escape"?(E("denied"),Dl(null),Mo.current?.({confirmed:!1}),Mo.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})}),[]),RE=X((f,S)=>Fi(f,S.map(C=>({label:C,value:C}))),[Fi]),Zx=X(async f=>{let S=f.options?Kf(f.options):[];return await Fi(my(f),S,f.multiSelect)??tp},[Fi]);Fe(()=>{let f=!1;return(async()=>{let{bindAskUserForConstruction:S}=await import("./construction-bootstrap-2FKNOZZE.js");f||S(Zx)})(),()=>{f=!0,(async()=>{let{bindAskUserForConstruction:S}=await import("./construction-bootstrap-2FKNOZZE.js");S(null)})()}},[Zx]);let ew=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:!!Le,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(()=>{Bo(n.gitRoot)},[n.gitRoot]),Fe(()=>{process.env.KODAX_PREWARM_REPO_INTELLIGENCE!=="0"&&Rw({executionCwd:n.gitRoot??process.cwd(),gitRoot:n.gitRoot??void 0},{mode:B.repoIntelligenceMode})},[n.gitRoot,B.repoIntelligenceMode]);let Km=X(()=>({onThinkingDelta:i(f=>{if(ot.current)return;P.currentTool&&(ue(void 0),De());let{header:S}=r0(_()+f),C=S?`[Thinking: ${S}]`:"[Thinking]";ht(Rf(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=e0(S,f);C&&C!==S&&(Ie(),ae(),Q(C.length),J(C)),st.current.workerId&&qy(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};Jy(C),st.current.workerId&&Un(C),ht(Hr(C,ct.current?.activeWorkerTitle))},"onToolUseStart"),onToolInputDelta:i((f,S,C)=>{if(ot.current)return;et(S.length),Ue(S);let M=Qy(C?.toolId,f,E=>{let H=E.preview??"",W=Jv(`${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(Hr(M,ct.current?.activeWorkerTitle)))},"onToolInputDelta"),onToolResult:i(f=>{if(ot.current)return;let S=typeof f.content=="string"?f.content:String(f.content??""),C=Qv(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(Hr(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(Hr(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(Hr(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(Hr(S,ct.current?.activeWorkerTitle)),q(),De(),ue(void 0)},"onStreamEnd"),hasPendingInputs:i(()=>Jx.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=Vr();S?.name&&ht(Hr(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(Hr(M,ct.current?.activeWorkerTitle));let E=lw(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(`
425
+ `);!!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=Cf(f,S,C);Cn({...E,id:`retry-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()})}else kg(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),zr(),ht(void 0),S){let M=bf(f);Cn({...M,id:`recovery-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()})}else Rg(v,f)},"onProviderRecovery"),onManagedTaskStatus:i(f=>{if(ot.current)return;let S=st.current;if(Tk(f)){if(S.workerId&&S.workerId!==f.activeWorkerId)mE({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,ym(f);let C=n0(f);pE(C);let M=Xs(f),H=Xs(f,{expanded:!0})??M;H&&(xm.current=H)},"onManagedTaskStatus"),onProviderRateLimit:i((f,S,C)=>{ot.current||Eo({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";Eo({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||Eo(h0(f),"repointel-trace")},"onRepoIntelligenceTrace"),onTodoUpdate:i(f=>{ot.current||Kr(f)},"onTodoUpdate"),onScoutSuspiciousCompletion:i(f=>{ot.current||vk&&Eo({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,ym(Ce)}let C=f>1?_().trim():"",M=f>1?Sy(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(Rf(ct.current?.activeWorkerTitle?`[Thinking] [${ct.current.activeWorkerTitle}]`:void 0,ct.current?.activeWorkerTitle)),ae(),f>1&&!W){let Ce=Ty({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=qo(C),E=Yx.current,H=n.gitRoot;if(jw(D.current,f,S))return`[Skipped] Previously denied operation. ${Gw(D.current)}`;if(C==="plan"&&(Pn.has(f)||f==="undo"))return`[Blocked] Tool '${f}' is not allowed in plan mode (read-only). ${wk}`;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)}... ${wk}`}if(f==="bash"){let W=S.command??"";if(zn(W))return!0}if(sn(C)&&Em==="llm")return!0;if(f==="bash"){let W=S.command??"",K=Ww(W);if(K.level==="dangerous"){let ne=await $o(f,{...S,_dangerousCommand:!0});return ne.confirmed?ne.confirmed:(D.current=op(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&&uh(K,H)&&(W=!0)}if(W){let K=await $o(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 ao(f,S,E,jm.current??void 0))return!0;let W=await $o(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=op(D.current,f,S),!1;W.always&&C==="accept-edits"&&(yd(f,S,!1),Yx.current=Rs())}return!0},"beforeToolExecute"),askUser:i(async f=>{let S=f.options?Kf(f.options):[],C=await Fi(my(f),S,f.multiSelect);return C===void 0?tp:C},"askUser"),exitPlanMode:i(async f=>vn.current!=="plan"?"not-in-plan-mode":(await $o("exit_plan_mode",{plan:f})).confirmed?(Gm("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=Kf(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=>ew(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?Tw(n.lineage,f,S.anchor,S.postCompactAttachments??[]):En(f,n.lineage);let C=No(f);n.contextTokenSnapshot={currentTokens:C,baselineEstimatedTokens:C,source:"estimate"},hr(n),Qn(C),ml.current?.().catch(()=>{})},"onCompactedMessages"),onCompact:i(f=>{_e();let S=la.current??f;la.current=null;let C=Math.round(S/1e3);Eo({type:"info",icon:"\u2728",text:`Context auto-compacted (was ~${C}k tokens)`},"compact")},"onCompact"),onCompactEnd:i(()=>{la.current=null,_e()},"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,_e,v,Ie,_,ee,Ml,ht,Ll,qy,Un,Jy,Qy,$l,ga,Vr,zr,Tn,P.currentTool]),$o=i((f,S)=>{let C=qv(f,S);return Cr(),new Promise(M=>{Mo.current=M,Dl({tool:f,input:S,prompt:C})})},"showConfirmDialog");Fe(()=>(u(async(f,S,C)=>(await $o(f.name,{...f.input,_reason:`[auto-mode] ${S}`,...C&&C.length>0?{_classifierSignals:C}:{}})).confirmed?"allow":"block"),m(f=>{Mm(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={...Km(),getCostReport:F},W=Rr(n.gitRoot).getSystemPromptSnippet(),K=g0(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{Aw()}},"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),Lf()&&Pf("persist",$f(n.messages,M,{historyItems:ge.current,foregroundItems:Yt.current,streamingResponse:Me.current.currentResponse,streamingThinking:Me.current.thinkingContent,persistedUiHistory:L.current}))},[n,kr,r]),Vm=X(()=>{if(pl.current)return pl.current;let f=(async()=>{try{for(;bo.current.requested;){bo.current.requested=!1;let S=bo.current.uiHistoryOverride;bo.current.uiHistoryOverride=void 0,await Da(S)}}finally{pl.current=null,bo.current.requested&&Vm()}})();return pl.current=f,Fy.current=f,f},[Da]),Wi=X(f=>{if(f!==void 0){let S=hi(f);L.current=S,bo.current.uiHistoryOverride=S}return bo.current.requested=!0,Vm()},[Vm]),EE=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 Fy.current.catch(()=>{}),await ml.current?.().catch(()=>{}),Gr(!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 tw=X(f=>{if(f.length===0)return;let S=zf(L.current,f);L.current=S,Wi(S)},[Wi]),Na=X(f=>{f.length!==0&&(z([...f]),tw(f))},[z,tw]),cu=X(f=>{f.length!==0&&(z([...f]),L.current=zf(L.current,f))},[z]);Fe(()=>(Si.current=Na,()=>{Si.current=null}),[Na]);let nw=X(async f=>{n.messages=f.messages,n.contextTokenSnapshot=f.contextTokenSnapshot,kr(f.messages);let S=f.success===!1&&!f.interrupted,C=_().trim(),M=vC(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&&lo(String(pe.text??"")).length>0),K=!S&&M&&!W,ne=[...vi.current],Ce=S?[]:ne.length===0?vk?$g(f):$g(f).filter(pe=>!Pg(pe)):[],xt=H?[]:Ty({thinking:C,response:void 0,toolCalls:jt.current,toolNames:tr.current}),Vt=[...E.map(pe=>So(pe)),...xt,...S?[]:ne.map(pe=>So(pe)),...Ce.map(pe=>Sk(pe)),...K?[{type:"assistant",text:f.interrupted?`${M}
426
+
427
+ [Interrupted]`:M}]:!M&&!W&&!f.interrupted&&!S?[{type:"info",text:"[No response text was produced for this round]"}]:[]],Ba=zf(L.current,Vt);Ie(),me();let We=[...E.map(pe=>So(pe)),...xt,...S?[]:[...Ce.map(pe=>Sk(pe)),...ne.map(pe=>So(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]"}]:[]];z(We),tr.current=[],jt.current=[],zr(),De(),ue(void 0),ht(void 0),ha(),ko.current=[],vi.current=[],ma([]),j(),Wi(Ba).catch(()=>{})},[z,j,De,me,Ie,n,ee,_,Wi,kr,zr,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 N0({initialPrompt:f,runRound:S,shiftPendingPrompt:$t,onRoundComplete:i(async M=>{$a.current===C&&await nw(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)}},[nw,$t,lu]),zm=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]),Xm=X(f=>{let S=f[f.length-1];if(S?.role!=="assistant")return;let C=yc(S);z(C.map(gc))},[z]),rw=X(async(f,S)=>{let C=await Af({...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),Xm(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(zf(W,K)),Lf()&&Pf("round-end",$f(n.messages,n.lineage,{historyItems:ge.current,foregroundItems:Yt.current,streamingResponse:Me.current.currentResponse,streamingThinking:Me.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 zm()},[v,Xm,n,B.provider,B.thinking,zm,Da,kr,Oa]),ME=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{}},[]),AE=X(async f=>{let{displayText:S,fullText:C,pastedContents:M}=f;if(!C.trim()||!wi||tt||Le)return;for(let We of M){if(We.type!=="text"||We.content.length<1024)continue;let pe=jC(We.content);GC(pe,We.content)}if(ex(!1),oe){if(!cm)return;if(P.pendingInputs.length>=5){Eo({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(D0(C)){Eo({type:"info",icon:"\u26A0",text:$0},O0);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=Sy(ee()),H=Yt.current.map(We=>So(We)),W=H.length>0;H.length>0&&(Al(Yt.current),cu(H)),!W&&E&&cu([{type:"assistant",text:E+`
430
+
431
+ [Interrupted]`}]),cu([{type:"user",text:S}]),gl(""),hl(!0),fl(We=>We+1),Lf()&&Pf("turn-start",$f(n.messages,n.lineage,{historyItems:ge.current,foregroundItems:Yt.current,streamingResponse:Me.current.currentResponse,streamingThinking:Me.current.thinkingContent,persistedUiHistory:L.current})),ze(!0),ot.current=!1,ua.current=!1,++$a.current,ym(null),ct.current=null,xm.current=null,ht(void 0),ha(),ko.current=[],vi.current=[],ma([]),xa(),Il(void 0),tr.current=[],jt.current=[],zr(),me(),De(),ue(void 0),j(),Ae(),hr(n),await new Promise(We=>setTimeout(We,50));let K=_s(C.trim());if(K){let We={exit:EE,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(),Kr([]),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",Xf)?(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(),Kr([]),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(`
432
+ [No saved sessions]`));return}console.log(Ye.bold(`
433
+ Recent Sessions:
434
+ `));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(),Kr([])},"clearHistory"),printHistory:i(()=>{if(n.messages.length===0){console.log(Ye.dim(`
435
+ [No conversation history]`));return}console.log(Ye.bold(`
436
+ Conversation History:
437
+ `));let U=n.messages.slice(-20);for(let he=0;he<U.length;he++){let Ee=U[he],Ui=Ye.cyan(Ee.role.padEnd(10)),sw=xc(Ee.content),OE=sw.slice(0,60).replace(/\n/g," "),DE=sw.length>60?"...":"";console.log(` ${(he+1).toString().padStart(2)}. ${Ui} ${OE}${DE}`)}console.log()},"printHistory"),switchProvider:i((U,he)=>{nt(Ee=>({...Ee,provider:U,model:he})),Ze.current.provider=U,Ze.current.model=he},"switchProvider"),setThinking:i(U=>{let he=U?"auto":"off";nt(Ee=>({...Ee,thinking:U,reasoningMode:he})),Ze.current.thinking=U,Ze.current.reasoningMode=he},"setThinking"),setReasoningMode:i(U=>{let he=U!=="off";nt(Ee=>({...Ee,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=>{Gm(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(`
438
+ [No session tree available for this session]`));return}let he=If(mu(U));console.log(Ye.bold(`
439
+ Session Tree:
440
+ `)),he.forEach(Ee=>console.log(` ${Ee}`)),console.log()},"printSessionTree"),switchSessionBranch:i(async U=>{if(!di(B,"Switching session branches",Xf))return"blocked";let Ee=await r.setActiveEntry?.(n.sessionId,U,{summarizeCurrentBranch:!0});return Ee?(n.messages=Ee.messages,n.uiHistory=na(Ee.uiHistory),n.title=Ee.title,n.contextTokenSnapshot=void 0,L.current=n.uiHistory??[],Qn(null),fe(),Kr([]),console.log(Ye.green(`
441
+ [Switched to tree entry: ${U}]`)),console.log(Ye.dim(` Messages: ${Ee.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(`
442
+ [${Ui}]`)),!0},"labelSessionBranch"),forkSession:i(async U=>{if(!di(B,"Forking a session branch",Xf))return"blocked";let Ee=await r.fork?.(n.sessionId,U);if(!Ee)return"failed";n.sessionId=Ee.sessionId,n.messages=Ee.data.messages,n.uiHistory=na(Ee.data.uiHistory),n.title=Ee.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:Ee.sessionId},Qn(null),fe(),Kr([]),se(Ee.sessionId),g?.writer.update({sessionId:Ee.sessionId}),console.log(Ye.green(`
443
+ [Forked session: ${Ee.sessionId}]`)),console.log(Ye.dim(` Messages: ${Ee.data.messages.length}`)),"forked"},"forkSession"),rewindSession:i(async U=>{if(!di(B,"Rewinding session",Xf))return"blocked";let Ee=await r.rewind?.(n.sessionId,U);return Ee?(n.messages=Ee.messages,n.uiHistory=na(Ee.uiHistory),n.title=Ee.title,n.contextTokenSnapshot=void 0,L.current=n.uiHistory??[],Qn(null),fe(),Kr([]),console.log(Ye.green(`
444
+ [Rewound session${U?` to ${U}`:" to previous turn"}]`)),console.log(Ye.dim(` Messages: ${Ee.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),Mm(U))},"setAutoModeEngine"),createKodaXOptions:i(()=>({...Ze.current,provider:B.provider,model:B.model,thinking:B.thinking,reasoningMode:B.reasoningMode,agentMode:B.agentMode,guardrails:xy(vn.current,l),events:Km()}),"createKodaXOptions"),reloadAgentsFiles:i(async()=>{let U=await np({cwd:process.cwd(),projectRoot:n.gitRoot??void 0});return h(U),U},"reloadAgentsFiles"),startCompacting:i(()=>{te()},"startCompacting"),stopCompacting:i(()=>{_e()},"stopCompacting"),onCompactStats:i(U=>{la.current=U.tokensBefore,Qn(U.tokensAfter)},"onCompactStats"),confirm:i(async U=>(await $o("confirm",{_alwaysConfirm:!0,_message:U})).confirmed,"confirm"),ui:{select:i(async(U,he)=>RE(U,he),"select"),confirm:i(async U=>(await $o("confirm",{_alwaysConfirm:!0,_message:U})).confirmed,"confirm"),input:i(async(U,he)=>ew(U,he),"input")}},pe=[],mn=console.log;console.log=(...U)=>{let he=U.map(Ee=>typeof Ee=="string"?Ee:String(Ee)).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(`
445
+ `)}),In){ze(!1),Y(),ze(!0),Ae(),ae();try{await rw(In,C.trim())}catch(U){let he=U instanceof Error?U:new Error(String(U)),Ee=he.name==="AbortError"||he.message.includes("aborted")||he.message.includes("ABORTED");console.log=mn,Ee?iu():Na([{type:"error",text:he.message}])}finally{ze(!1),Y(),Ie()}return}ze(!1),Y();return}let ne=await Ig(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}
446
+ 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}
447
+ 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}
448
+ Suggestion: Check your internet connection`:(pe.message.includes("token")||pe.message.includes("context too long"))&&(In=`[Context Error] ${pe.message}
449
+ 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(`
450
+ `)})}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=No(n.messages);n.contextTokenSnapshot={currentTokens:We,baselineEstimatedTokens:We,source:"estimate"},Qn(We)}},[wi,n,B,cm,P.pendingInputs.length,r,tt,Le,y,a,v,fe,Ae,Y,me,Km,rw,Rt,ee,_,cu,Xm,Da,kr,uu,zm,te,_e,zr,ga,Un,xa]),_E=le(lf,{left:le(af,{items:Ix}),right:le(cf,{items:kx}),queued:le(xg,{pendingInputs:P.pendingInputs}),stashNotice:le(gf,{text:Ql}),notifications:le(hf,{notifications:Jl}),inlineNotices:$m.length>0?le(wg,{notices:$m}):void 0,activityBar:Zr||oe&&vr.shouldRender?Zt(k,{paddingX:1,flexDirection:"row",children:[Zt(k,{flexGrow:1,children:[Zr?.showSpinner?le(Dn,{color:re("dark").colors.accent}):null,Zr?Zt(b,{color:Zr.kind==="waiting"?re("dark").colors.warning:re("dark").colors.accent,children:[Zr.showSpinner?" ":"",Zr.text]}):null,Zr?.showSpinner&&P.roundStartedAt!=null?le(Tb,{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(k,{paddingX:1,children:le(Uv,{viewModel:vr})}):void 0,composer:le(cg,{onSubmit:AE,onHistoryRecall:ME,onPopPendingInputs:i(()=>{let f=ce();if(f.length!==0)return f.join(`
451
+ ---
452
+ `)},"onPopPendingInputs"),prompt:">",placeholder:zI({isLoading:oe,canQueueFollowUps:cm,waitingReason:Am}),focus:!tt&&!Le&&!lt,cwd:process.cwd(),gitRoot:e.context?.gitRoot||n.gitRoot,onInputChange:gE}),inlineSuggestions:TE,helpSurface:Zy?le(ug,{sections:Of()}):void 0,taskBar:Ra?le(yf,{items:Pi.backgroundTask.items,overflowLabel:Pi.backgroundTask.overflowLabel,ctaHint:Pi.backgroundTask.ctaHint,showSpinner:oe}):void 0,statusLine:le(k,{children:le(Fs,{...Yl,viewModel:bx})}),inlineDialogs:bE}),LE=le(lf,{left:le(af,{items:Ix}),right:le(cf,{items:kx}),stashNotice:le(gf,{text:Ql}),notifications:le(hf,{notifications:Jl}),composer:le(Bv,{searchActive:lt,selectionActive:!!(br||Qe),showAllActive:Et,searchQuery:qt,searchCurrent:Mt.length>0?Jr+1:0,searchCount:Mt.length,searchDetailText:Rm,pendingLiveUpdates:Ta,secondaryText:wE}),taskBar:Ra?le(yf,{items:Pi.backgroundTask.items,overflowLabel:Pi.backgroundTask.overflowLabel,ctaHint:Pi.backgroundTask.ctaHint,showSpinner:ut}):void 0,statusLine:le(k,{children:le(Fs,{...Yl,viewModel:Lm})})}),Ym=X(f=>le(Hv,{banner:f?.bannerVisible?le(wy,{..._o}):void 0,items:ba,isLoading:Jt,viewportRows:Nt.messageRows,viewportWidth:R,scrollOffset:Hn,windowed:!!f?.rendererWindow,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Ia:Nx,maxLines:Tt,selectedTextRanges:bm?Cl?.rowRanges:void 0,onMetricsChange:eu,onVisibleRowsChange:tu}),[_o,ba,Jt,eu,tu,Hn,Nx,R,Tt,Cl?.rowRanges,Nt.messageRows,bm]),qm=X(f=>le(Fv,{banner:f?.bannerVisible?le(wy,{..._o}):void 0,items:Ca,browse:{hintText:Qr.browseHintText},selection:Zl,search:Sx,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:R,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:vo?.rowRanges,expandedItemKeys:bn.selectionEnabled?dn:void 0,onMetricsChange:eu,onVisibleRowsChange:tu}),[_o,B.agentMode,ut,dn,s.transcriptSpinnerAnimation,eu,tu,Hn,cx,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,Ia,jl,Qr.browseHintText,Qe,Zl,R,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,vo?.rowRanges,Sx,Et,Nt.messageRows]),PE=ie?qm({bannerVisible:!1,windowed:Ct}):Ym({bannerVisible:!1}),ow=ie?LE:_E,$E=s.enabled&&Ao,iw=Zt(k,{flexDirection:"column",width:R,flexShrink:0,flexGrow:$E?1:0,children:[le(Hg,{currentConfig:B,setCurrentConfig:nt,isLoading:oe,abort:V,stopThinking:q,clearThinkingContent:Ie,setCurrentTool:ue,setIsLoading:ze,onToggleHelp:hE,setShowHelp:ex,onSetThinking:i(f=>{Ze.current.thinking=f},"onSetThinking"),onSetReasoningMode:i(f=>{Ze.current.reasoningMode=f,Ze.current.thinking=f!=="off"},"onSetReasoningMode"),onToggleTranscriptMode:vE,onOpenTranscriptSearch:Bm,canOpenTranscriptSearch:ie&&!tt&&!Le,isInteractiveDialogActive:!!(tt||Le),onSetAgentMode:i(f=>{Ze.current.agentMode=f},"onSetAgentMode"),onSetPermissionMode:i(f=>{Gm(f)},"onSetPermissionMode"),isInputEmpty:lm,onSavePermissionMode:Tc}),am&&(s.enabled?null:le(ws,{items:[1],children:i(()=>le(wy,{..._o},"banner"),"children")})),Ao?le(og,{width:R,stickyHeader:Qr.stickyHeader,jumpToLatest:Qr.jumpToLatest,transcript:!s.enabled||!Ct?ie?qm({bannerVisible:!1}):Ym({bannerVisible:!1}):void 0,renderTranscriptWindow:s.enabled&&Ct?f=>(()=>{let C=_a(f).contentWindow;return ie?qm({bannerVisible:!1,windowed:!0,rendererWindow:C}):Ym({bannerVisible:!1,rendererWindow:C})})():void 0,overlay:Wm,scrollTop:Hn,scrollHeight:Aa,viewportHeight:Nt.messageRows,stickyScroll:!ie&&!Xr&&fm,overscanRows:mH,scrollRef:rE,onWindowChange:CE,onScrollTopChange:iE,onStickyChange:sE,footer:ow}):Zt(lH,{children:[Zt(k,{flexDirection:"column",flexGrow:1,children:[PE,Wm?le(k,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:Wm}):null]}),ow]})]});return Cm?le(Kp,{mouseTracking:Yr.usesRendererMouseTracking,children:iw}):iw},"InkREPLInner"),xH=i(e=>{let t=process.cwd(),n=e.options?.context?.gitRoot??void 0;return le(ff,{children:le(xf,{children:le(id,{children:le(Ng,{children:le(Dh,{cwd:t,gitRoot:n,children:le(yH,{...e})})})})})})},"InkREPL");function wH(){return process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function"}i(wH,"isRawModeSupported");async function Cy(e){if(!wH())throw new Zm("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=jo(),r=Go(),o=Ko(n,r),{prepareRuntimeConfig:s,getGitRoot:a}=await import("./utils-LY3LB65Z.js"),{loadCompactionConfig:c}=await import("./compaction-config-PFTBIGQT.js"),{resolveProvider:l}=await import("./dist-JLMKDPEL.js"),u=s(),m=e.provider??u.provider??du,p=e.model??u.model,h=uH(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-2FKNOZZE.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 np({cwd:process.cwd(),projectRoot:fe??void 0})},Me={current:null},Ae={current:null},Y={current:I},V=gd(),ae=await Kc({askUser:i(async(Q,J,q)=>{let Ie=Me.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=>{Ae.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(xH,{options:e,config:I,context:L,storage:t,compactionInfo:ge,rendererMode:r,fullscreenPolicy:o,autoModeBootstrap:ae,setAutoModeAskUser:i(Ue=>{Me.current=Ue},"setAutoModeAskUser"),setAutoModeEngineChange:i(Ue=>{Ae.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(`
453
+ [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 Zm("Interactive mode failed to start.",['kodax -p "your task" # Run a single task',"kodax -c # Continue last session"]):Q}}i(Cy,"runInkInteractiveMode");import Sn from"chalk";var Mk=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],Ak=["\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=Ak[t%Ak.length],l="\x1B[0m",u=Mk[e%Mk.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 SH(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(`
454
+ `),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(`
455
+ `),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(`
456
+ [Assistant]`)),t=Qc()},"onIterationStart"),onCompactStart:i(()=>{console.log(Sn.dim(`
457
+ [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(`
458
+ [KodaX] Done!`))},"onComplete"),onError:i(s=>{t&&(t.stop(),t=null),console.log(Sn.red(`
459
+ [Error] ${s.message}`))},"onError"),onScoutSuspiciousCompletion:i(s=>{console.log(Sn.yellow(`
460
+ [Scout] Completion marked uncertain \u2014 signals: ${s.signals.join(", ")}. Verify the result before continuing.`))},"onScoutSuspiciousCompletion"),beforeToolExecute:i(async(s,a)=>!0,"beforeToolExecute")}}i(SH,"createCliEvents");function ft(e,t){e.write(`${JSON.stringify(t)}
461
+ `)}i(ft,"writeJsonLine");function TH(e){return{type:"error",name:e.name,message:e.message,stack:e.stack}}i(TH,"serializeError");function CH(e={}){let t=e.stdout??process.stdout,n=e.stderr??process.stderr;return{onSessionStart:i(r=>{ft(t,{type:"session.start",provider:r.provider,sessionId:r.sessionId})},"onSessionStart"),onIterationStart:i((r,o)=>{ft(t,{type:"iteration.start",iter:r,maxIter:o})},"onIterationStart"),onIterationEnd:i(r=>{ft(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=>{ft(t,{type:"text.delta",text:r})},"onTextDelta"),onThinkingDelta:i(r=>{ft(t,{type:"thinking.delta",text:r})},"onThinkingDelta"),onThinkingEnd:i(r=>{ft(t,{type:"thinking.end",thinking:r})},"onThinkingEnd"),onToolUseStart:i(r=>{ft(t,{type:"tool.start",id:r.id,name:r.name,input:r.input})},"onToolUseStart"),onToolInputDelta:i((r,o,s)=>{ft(t,{type:"tool.input.delta",toolName:r,partialJson:o,toolId:s?.toolId})},"onToolInputDelta"),onToolResult:i(r=>{ft(t,{type:"tool.result",id:r.id,name:r.name,content:r.content})},"onToolResult"),onStreamEnd:i(()=>{ft(t,{type:"stream.end"})},"onStreamEnd"),onCompactStart:i(()=>{ft(t,{type:"compact.start"})},"onCompactStart"),onCompact:i(r=>{ft(t,{type:"compact.finish",estimatedTokens:r})},"onCompact"),onCompactStats:i(r=>{ft(t,{type:"compact.stats",tokensBefore:r.tokensBefore,tokensAfter:r.tokensAfter})},"onCompactStats"),onCompactEnd:i(()=>{ft(t,{type:"compact.end"})},"onCompactEnd"),onRetry:i((r,o,s)=>{ft(t,{type:"retry",reason:r,attempt:o,maxAttempts:s})},"onRetry"),onProviderRecovery:i(r=>{ft(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)=>{ft(t,{type:"provider.rate_limit",attempt:r,maxRetries:o,delayMs:s})},"onProviderRateLimit"),onRepoIntelligenceTrace:i(r=>{ft(t,{type:"repo_intelligence.trace",stage:r.stage,summary:r.summary,capability:r.capability,trace:r.trace})},"onRepoIntelligenceTrace"),onToolProgress:i(r=>{ft(t,{type:"tool.progress",id:r.id,message:r.message})},"onToolProgress"),onManagedTaskStatus:i(r=>{ft(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=>{ft(t,{type:"scout.suspicious_completion",confidence:r.confidence,signals:r.signals,sessionId:r.sessionId,lastTextPreview:r.lastTextPreview})},"onScoutSuspiciousCompletion"),onComplete:i(()=>{ft(t,{type:"complete"})},"onComplete"),onError:i(r=>{ft(n,TH(r))},"onError")}}i(CH,"createJsonEvents");import{jsx as pt,jsxs as cn}from"react/jsx-runtime";import RH,{useMemo as el}from"react";var by=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@.*$/,_k=/^---\s+(.+)$/;function Lk(e){if(!e)return[];let t=e.split(`
462
+ `),n=[],r=[],o=[],s=!1,a=null,c=null,l=0,u=0,m=i(()=>{if(r.length===0)return;let h=r.join(`
463
+ `);h.length>0&&n.push({kind:"text",text:h}),r=[]},"flushText"),p=i(()=>{o.length!==0&&(n.push({kind:"diff",text:o.join(`
464
+ `),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=_k.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("+++ ")||by.test(t[A]??"")){I=!0;break}if(I){m(),s=!0,a=w[1]??null,c=a,o.push(g);continue}}if(by.test(g)){m(),s=!0,o.push(g);continue}r.push(g);continue}let y=_k.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("+++ ")||by.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(Lk,"parseUnifiedDiff");function Pk(e){return e?/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/m.test(e):!1}i(Pk,"containsUnifiedDiff");import{jsxs as oa,jsx as bH}from"react/jsx-runtime";import vH from"react";function IH(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(IH,"classifyLine");function kH(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(kH,"colorFor");var vy=vH.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(`
465
+ `),u=l.map(IH),m=`(${t>0?`+${t}`:"\xB10"} ${n>0?`-${n}`:""})`.trim();if(l.length>a)return oa(k,{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(k,{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=kH(g.kind,c);return bH(b,{color:w,children:g.text||" "},y)})]})});vy.displayName="DiffHunk";function $k(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($k,"getStatusIcon");function Ok(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(Ok,"getStatusColor");function EH(e,t){if(!t)return"";let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(EH,"formatDuration");function MH(e){if(!e)return"";let t=JSON.stringify(e);return t.length<=50?t:t.slice(0,47)+"..."}i(MH,"formatInputSummary");var AH=i(({status:e,theme:t})=>{let n=t??el(()=>re("dark"),[]),r=$k(e),o=Ok(e,n);return pt(b,{color:o,children:r})},"ToolStatusBadge"),Dk=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(k,{children:[pt(b,{color:r.colors.primary,children:c}),pt(b,{dimColor:!0,children:l}),cn(b,{children:[" ",o,"%"]})]})},"ToolProgressBar"),Nk=i(({tool:e,collapsed:t=!1,theme:n})=>{let r=n??el(()=>re("dark"),[]),o=$k(e.status),s=Ok(e.status,r),a=MH(e.input),c=EH(e.startTime,e.endTime);return t?cn(k,{children:[cn(b,{color:s,children:[o," "]}),pt(b,{color:r.colors.text,children:e.name})]}):cn(k,{flexDirection:"column",marginLeft:2,children:[cn(k,{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(k,{marginLeft:2,children:pt(Dk,{progress:e.progress,theme:r})}),e.progressLines&&e.progressLines.length>0&&e.status===N.Executing&&pt(k,{flexDirection:"column",marginLeft:2,children:e.progressLines.slice(-5).map((l,u)=>pt(b,{dimColor:!0,children:l},u))}),e.error&&pt(k,{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(Bk,{output:e.output,theme:r}),c&&e.status!==N.Executing&&pt(k,{marginLeft:2,children:cn(b,{dimColor:!0,children:["Completed in ",c]})})]})},"ToolCallDisplay"),Bk=RH.memo(({output:e,theme:t})=>{if(!Pk(e))return pt(k,{marginLeft:2,children:pt(b,{dimColor:!0,children:e})});let n=Lk(e);return pt(k,{flexDirection:"column",marginLeft:2,children:n.map((r,o)=>r.kind==="text"?pt(b,{dimColor:!0,children:r.text},o):pt(vy,{text:r.text,addedLines:r.addedLines,removedLines:r.removedLines,filePath:r.filePath,theme:t},o))})});Bk.displayName="ToolOutputBlock";var _H=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(k,{flexDirection:"column",marginBottom:1,children:cn(k,{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(k,{flexDirection:"column",marginBottom:1,children:[cn(k,{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(Nk,{tool:c,theme:o},c.id))]})},"ToolGroup");import{jsxs as Hk,jsx as LH}from"react/jsx-runtime";var PH=i(({pendingInputs:e})=>{let t=Tv(e);if(!t)return null;let n=re("dark");return Hk(k,{children:[Hk(b,{color:n.colors.hint,children:["\u23F3"," "]}),LH(b,{color:n.colors.dim,children:t})]})},"PendingInputsIndicator");import*as Fk from"child_process";var tl;function $H(){if(process.platform!=="win32")return null;if(tl!==void 0)return tl;try{tl=Fk.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($H,"detectWindowsCodePage");function Yf(){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(Yf,"supportsTrueColor");function Wk(){if(Yf())return!0;let e=process.env.TERM||"";return e.includes("256color")||e==="xterm-256color"||e==="screen-256color"||e==="tmux-256color"}i(Wk,"supports256Colors");function Ur(){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:$H()==="65001":!0}i(Ur,"supportsUnicode");function Uk(){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(Uk,"supportsEmoji");function jk(){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(jk,"getTerminalWidth");function Gk(){let e=process.env;return!!(e.NO_COLOR||e.TERM==="dumb"||e.CI)}i(Gk,"isScreenReader");function OH(){return process.stdout?.isTTY??!1}i(OH,"isTTY");function DH(){return{trueColor:Yf(),colors256:Wk(),unicode:Ur(),emoji:Uk(),tty:OH(),columns:jk(),screenReader:Gk()}}i(DH,"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 NH(e){let t=new nl;t.start();try{let n=await e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}i(NH,"withCapture");function BH(e){let t=new nl;t.start();try{let n=e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}i(BH,"withCaptureSync");import*as oR from"readline";import we from"chalk";import qn from"chalk";var HH=[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel the action",value:"no"}],FH=[{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 WH(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(WH,"formatOptions");function ia(){return process.stdout.columns??80}i(ia,"getTerminalWidth");function UH(){return Ur()}i(UH,"supportsUnicode");function jH(){let e=UH();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(jH,"getSymbols");async function GH(e,t){let{message:n,default:r,options:o,showDescription:s=!0}=t,a=o??HH,c=WH(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(GH,"confirmEnhanced");async function rl(e,t,n,r){let{isOutsideProject:o=!1,isProtectedPath:s=!1,permissionMode:a="accept-edits"}=r??{},c=jH(),l,u,m={...n,...o?{_outsideProject:!0}:{},...s?{_alwaysConfirm:!0}:{}},p=kf(t,m),h=p.details.map(y=>` ${qn.dim(y)}`);o||s?(l=`${qn.yellow(c.warning)} Safety Warning`,h.length>0&&(l+=`
466
+ ${h.join(`
467
+ `)}`),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+=`
468
+ ${h.join(`
469
+ `)}`),u=a==="accept-edits"?FH:[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]);let g=await GH(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 qf=/\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 KH(e,t){if(t<=0)return"";let n="",r=0,o=0;for(;o<e.length&&r<t;){qf.lastIndex=o;let s=qf.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(KH,"truncateAnsi");function Kk(e){return qf.lastIndex=0,e.replace(qf,"")}i(Kk,"stripAnsi");function VH(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 Kk(l).length>u&&(l=`${KH(l,Math.max(0,u-3))}...`),l}i(VH,"buildStatusBarContent");var Jf=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=VH(this.state,t),r=n+" ".repeat(Math.max(0,t-Kk(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 Vk(e,t,n,r,o="off"){return{sessionId:e,permissionMode:t,reasoningMode:o,provider:n,model:r}}i(Vk,"createStatusBarState");function zk(){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(zk,"supportsStatusBar");import Lee from"chalk";function Xk(){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(Xk,"getUnicodeSymbols");function Iy(){return{prompt:">",success:"[OK]",error:"[X]",warning:"[!]",info:"[i]",arrow:"->",bullet:"*",check:"[v]",cross:"[x]",spinner:["|","/","-","\\","|","/","-","\\"]}}i(Iy,"getAsciiSymbols");var Yk={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:Ur()?Xk():Iy(),spinner:{frames:Ur()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},zH={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:Ur()?Xk():Iy(),spinner:{frames:Ur()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},XH={name:"minimal",description:"Minimal theme without colors (for CI or limited terminals)",colors:{primary:"",secondary:"",accent:"",text:"",dim:"",success:"",warning:"",error:"",info:""},symbols:Iy(),spinner:{frames:[".","o","O","0","O","o"],interval:120}},YH={dark:Yk,light:zH,minimal:XH},qk=Yk;function gi(){return qk}i(gi,"getCurrentTheme");function ol(e){let t=YH[e];return t?(qk=t,!0):!1}i(ol,"setTheme");function qH(){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(qH,"autoSelectTheme");qH();var Qf=class{static{i(this,"ReadlineUIContext")}rl;constructor(t){this.rl=t}async select(t,n){if(n.length!==0)return console.log(`
470
+ ${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 Jk from"child_process";import*as sl from"path";import*as il from"fs";import*as Qk from"os";import wr from"chalk";function Zk(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(Zk,"getPrompt");async function eR(e,t){let n=gi(),r=[],o=await new Promise(a=>{e.question(t,a)});if(o===""||o.toLowerCase()==="/e")return await ky(r.join(`
471
+ `));for(r.push(o);JH(r.join(`
472
+ `));){let a=wr.hex(n.colors.dim)("... "),c=await new Promise(l=>{e.question(a,l)});r.push(c)}return r.join(`
473
+ `).replace(/\\\n/g,`
474
+ `)}i(eR,"askInput");async function ky(e){let t=sl.join(Qk.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(`
475
+ [Security] Editor path sanitized: ${a}`)),r=a}console.log(wr.dim(`
476
+ [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.
477
+ `):wr.dim(`Save and close the editor to continue...
478
+ `)),Jk.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(`
479
+ [Editor Error] ${o.message}`)),e}finally{try{await il.promises.unlink(n)}catch{}}}i(ky,"openExternalEditor");function JH(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(JH,"needsContinuation");import Ve from"chalk";function tR(e){e?.workspaceRoot&&(console.log(Ve.dim(` Workspace: ${xn(e)}`)),console.log(Ve.dim(` Use /status workspace for runtime details.
480
+ `)))}i(tR,"printWorkspaceEntryNotice");function nR(e,t,n,r){let o=gi(),s=e.model??Mn(e.provider)??e.provider;if(console.log(Ve.hex(o.colors.primary)(`
481
+ `+`
482
+ \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
483
+ \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
484
+ \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
485
+ \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
486
+ \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
487
+ \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)(`
488
+ v${Zi} | AI Coding Agent | ${e.provider}:${s}`)),console.log(Ve.hex(o.colors.dim)(`
489
+ \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
490
+ `)),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
491
+ `))}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)(`
492
+ Keyboard: Tab (complete) | Esc+Esc (edit last) | Ctrl+T (reasoning) | Ctrl+E (editor) | Ctrl+R (history)
493
+ `))}i(nR,"printStartupBanner");var Ey=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?Ho(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 Ry(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(Ry,"applyRuntimeContext");function QH(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:(e.thinking===!0||t.thinking===!0,"auto")}i(QH,"resolveInitialReasoningMode");var My={current:null};async function ZH(e){let t=await Ms({cwd:process.cwd()}),n=t.workspaceRoot??await Wo()??void 0,r=e.storage??new Ey,o=fu({meta:{cwd:process.cwd(),startedAt:Date.now()}}),s=lp(),a=e.provider??s.provider??du,c=e.model??s.model,l=QH(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)(`
494
+ ${j}`));for(let _e of te)console.log(we.dim(_e));console.log()}),"guardSessionTransition"),fe=await wu(n??void 0),{resolveProvider:se}=await import("./dist-JLMKDPEL.js"),ge=se(w.provider),L=fe.contextWindow??ge.getEffectiveContextWindow?.(w.model)??ge.getContextWindow?.()??2e5,{loadAgentsFiles:R}=await import("./dist-JLMKDPEL.js"),P=i(async()=>R({cwd:process.cwd(),projectRoot:v.gitRoot??void 0}),"reloadAgentsFiles"),Me=await P();nR(w,w.permissionMode,{contextWindow:L,triggerPercent:fe.triggerPercent,enabled:fe.enabled},Me),tR(t);let Ae=rb(()=>v.gitRoot??process.cwd()),Y=oR.createInterface({input:process.stdin,output:process.stdout,terminal:process.stdout.isTTY??!0,historySize:100,completer:i((_,O)=>{Ae(_).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(()=>Me,"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;zk()&&(q=new Jf(Vk(v.sessionId,w.permissionMode,w.provider,J,w.reasoningMode)),sn(T)&&q.update({autoModeEngine:ae.getGuardrail().getEngine()}));let Ie=`
495
+ Keyboard Shortcuts:
496
+ Tab Auto-complete (@paths, /commands)
497
+ Esc+Esc Edit last message
498
+ Ctrl+T Cycle reasoning mode
499
+ Ctrl+E Open external editor
500
+ Ctrl+R Search command history (built-in)
501
+ Ctrl+C Cancel current input
502
+ 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(`
503
+ [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}};My.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,Ry(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=ni(O),_e=te??j;return te?.workspaceRoot&&!XC(te)?(console.log(we.yellow(`
504
+ [Saved workspace unavailable]`)),console.log(we.dim(` Session workspace: ${xn(te)}`)),console.log(we.dim(` Falling back to current workspace: ${xn(j)}`)),_e=j):te?.workspaceRoot&&j.workspaceRoot&&te.workspaceRoot!==j.workspaceRoot&&(console.log(we.cyan(`
505
+ [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(),Ry(v,me,_e),me.session={...me.session,id:_},q?.update({sessionId:_,messageCount:O.messages.length}),o?.writer.update({sessionId:_}),console.log(we.green(`
506
+ [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(`
507
+ [No saved sessions]`));return}console.log(we.bold(`
508
+ Recent Sessions:
509
+ `)),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(`
510
+ [No conversation history]`));return}console.log(we.bold(`
511
+ Conversation History:
512
+ `));let _=v.messages.slice(-20);for(let O=0;O<_.length;O++){let j=_[O],te=we.cyan(j.role.padEnd(10)),_e=typeof j.content=="string"?j.content:"[Complex content]",at=_e.slice(0,60).replace(/\n/g," "),ke=_e.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=cw(_)?.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(`
513
+ [No session tree available for this session]`));return}let O=If(mu(_));console.log(we.bold(`
514
+ Session Tree:
515
+ `));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(`
516
+ [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(`
517
+ [${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,Ry(v,me,ni(O.data)??v.runtimeInfo),me.session={...me.session,id:O.sessionId},q?.update({sessionId:O.sessionId,messageCount:v.messages.length}),console.log(we.green(`
518
+ [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(`
519
+ [Rewound session${_?` to ${_}`:" to previous turn"}]`)),console.log(we.dim(` Messages: ${O.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:i(()=>My.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 _e=T,at=qo(_e);if(_e==="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:_e})).confirmed?!0:(console.log(we.dim("[Cancelled] Operation on protected path requires confirmation")),!1)}if(at.has(j)){if(_e==="accept-edits"&&j==="bash"&&await ao(j,te,I,Q))return!0;let ke=await rl(Y,j,te,{isOutsideProject:te._outsideProject===!0,reason:te._reason,permissionMode:_e});if(!ke.confirmed)return console.log(we.dim("[Cancelled] Operation cancelled by user")),!1;ke.always&&_e==="accept-edits"&&(yd(j,te,!1),I=Rs())}return!0},"beforeToolExecute")}}},"createKodaXOptions"),reloadAgentsFiles:i(async()=>(Me=await P(),Me),"reloadAgentsFiles"),readline:Y,ui:new Qf(Y)};Y.on("SIGINT",async()=>{console.log(we.dim(`
520
+
521
+ [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 Af({...me,provider:w.provider,thinking:w.thinking,reasoningMode:w.reasoningMode},_.invocation,O,te=>console.log(we.dim(`
522
+ ${te}`)));if(j.mode==="manual"){j.manualOutput&&console.log(we.yellow(`
523
+ ${j.manualOutput}
524
+ `)),await j.finalize();return}if(!j.prompt||!j.options){await j.finalize();return}try{let te=j.mode==="fork"?[]:v.messages,_e=await rR(j.options,v,j.prompt,te);if(j.mode==="fork"){let at=wc(_e.messages);at.trim()&&(console.log(`
525
+ ${at}
526
+ `),v.messages.push({role:"assistant",content:at}))}else v.messages=_e.messages,v.contextTokenSnapshot=_e.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 ky($);if(ke&&ke.trim()&&ke!==$){console.log(we.dim(`
527
+ [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 Ay(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(`
528
+ ${B}`));v.messages.push({role:"user",content:oe.messageContent}),$=Be,q?.update({messageCount:v.messages.length});let ze=v.lineage?Fw({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??ep(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(`
529
+ [Error] ${nt.message}`))}continue}else ke===$&&console.log(we.dim(`
530
+ [No changes made, continuing...]`))}let _=Zk(w.permissionMode,w),O=await eR(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 _e=await Ay(j);if(j.startsWith("!")&&Vc(_e))continue;let at=zc(_e,me.context?.executionCwd??process.cwd());for(let ke of at.warnings)console.log(we.yellow(`
531
+ ${ke}`));v.messages.push({role:"user",content:at.messageContent}),$=j,q?.update({messageCount:v.messages.length});try{let ke=await rR(me,v,_e,v.messages,at.inputArtifacts);if(v.messages=ke.messages,v.contextTokenSnapshot=ke.contextTokenSnapshot,v.artifactLedger=Fa(v.artifactLedger??[],ke.artifactLedger??ep(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(`
532
+ [Rate Limit] ${Be.message}`)),console.log(we.dim(`Suggestion: Wait a moment and try again, or switch provider with /mode
533
+ `))):Be.message.includes("API key")||Be.message.includes("not configured")?(console.log(we.red(`
534
+ [Configuration Error] ${Be.message}`)),console.log(we.dim(`Suggestion: Set the required API key environment variable
535
+ `))):Be.message.includes("network")||Be.message.includes("ECONNREFUSED")||Be.message.includes("ETIMEDOUT")?(console.log(we.red(`
536
+ [Network Error] ${Be.message}`)),console.log(we.dim(`Suggestion: Check your internet connection and try again
537
+ `))):Be.message.includes("token")||Be.message.includes("context too long")?(console.log(we.yellow(`
538
+ [Context Error] ${Be.message}`)),console.log(we.dim(`Suggestion: Use /clear to start a fresh conversation
539
+ `))):(console.log(we.red(`
540
+ [Error] ${Be.message}`)),console.log(we.dim(`Your message was not sent. Please try again.
541
+ `)))}}}i(ZH,"runInteractiveMode");async function Ay(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 Tf(n,{cwd:process.cwd()})}return e}i(Ay,"processSpecialSyntax");async function rR(e,t,n,r=t.messages,o){let s={...e.events??{},getCostReport:My};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(rR,"runAgentRound");function al(e){return ks(e)}i(al,"extractTitle");import Zf from"node:fs";import eF from"node:path";function tF(){let e=tm();return nm(e).map(n=>em(n))}i(tF,"listCustomProviders");function nF(e){if(typeof e!="string"||e.length===0)return;let t=nm(tm()).find(n=>n.name===e);return t?em(t):void 0}i(nF,"getCustomProviderConfig");function rF(e){aw(e);let t=em(e),n=tm(),r=nm(n),o=r.findIndex(a=>a.name===t.name),s=o>=0?r.map((a,c)=>c===o?t:a):[...r,t];return sR({...n,customProviders:s}),Qm(s),em(t)}i(rF,"upsertCustomProvider");function oF(e){if(typeof e!="string"||e.length===0)return!1;let t=tm(),n=nm(t),r=n.filter(o=>o.name!==e);return r.length===n.length?!1:(sR({...t,customProviders:r}),Qm(r),!0)}i(oF,"removeCustomProvider");function iR(){return kn("config.json")}i(iR,"configFilePath");function tm(){let e=iR();if(!Zf.existsSync(e))return{};try{let t=JSON.parse(Zf.readFileSync(e,"utf-8"));return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}i(tm,"readWholeConfig");function sR(e){let t=iR();Zf.mkdirSync(eF.dirname(t),{recursive:!0}),Zf.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}i(sR,"writeWholeConfig");function nm(e){let t=e.customProviders;return Array.isArray(t)?t:[]}i(nm,"extractCustomProviders");function em(e){return structuredClone(e)}i(em,"cloneCustomProvider");import rm from"node:fs";import iF from"node:path";function sF(){let e=om();return uF(im(e))}i(sF,"listMcpServers");function aF(e){if(typeof e!="string"||e.length===0)return;let n=im(om())[e];return n?_y(n):void 0}i(aF,"getMcpServerConfig");function cF(e,t){if(typeof e!="string"||e.length===0)throw new TypeError("upsertMcpServer: name must be a non-empty string");aR(e,t);let n=_y(t),r=om(),s={...im(r),[e]:n};return lR({...r,mcpServers:s}),_y(n)}i(cF,"upsertMcpServer");function lF(e){if(typeof e!="string"||e.length===0)return!1;let t=om(),n=im(t);if(!(e in n))return!1;let r={};for(let o of Object.keys(n))o!==e&&(r[o]=n[o]);return lR({...t,mcpServers:r}),!0}i(lF,"removeMcpServer");function aR(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(aR,"validateMcpServerConfig");function cR(){return kn("config.json")}i(cR,"configFilePath");function om(){let e=cR();if(!rm.existsSync(e))return{};try{let t=JSON.parse(rm.readFileSync(e,"utf-8"));return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}i(om,"readWholeConfig");function lR(e){let t=cR();rm.mkdirSync(iF.dirname(t),{recursive:!0}),rm.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}i(lR,"writeWholeConfig");function im(e){let t=e.mcpServers;return!t||typeof t!="object"||Array.isArray(t)?{}:t}i(im,"extractMcpServers");function _y(e){return structuredClone(e)}i(_y,"cloneMcpServerConfig");function uF(e){return structuredClone(e)}i(uF,"cloneMcpServers");import Je from"fs/promises";import Jn from"fs";import Ne from"path";import vR from"chalk";import Ly from"path";import{createHash as dF}from"crypto";var cl="_unknown",uR=80;function fF(e){return process.platform==="win32"||process.platform==="darwin"?e.toLowerCase():e}i(fF,"caseFold");function mF(e){return fF(Ly.resolve(e).replace(/\\/g,"/"))}i(mF,"normalizeRoot");function dR(e){return dF("sha256").update(e).digest("hex").slice(0,10)}i(dR,"shortHash");function pF(e){let t=e.replace(/[^a-z0-9]+/gi,"-").replace(/^-+|-+$/g,"");return t.length>uR?t.slice(t.length-uR):t}i(pF,"slugify");function sa(e){if(!e||!e.trim())return{key:cl,canonicalRoot:null,displayName:cl};let t=mF(e),n=pF(t),r=n?`${n}-${dR(t)}`:dR(t),o=Ly.basename(Ly.resolve(e).replace(/\\/g,"/"))||e;return{key:r,canonicalRoot:t,displayName:o}}i(sa,"deriveProjectKeyFromRoot");function aa(e){let t=ni({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 mR from"fs";import Ft from"path";var hF=2,gF=300*1e3,fR=65536,Py=i(e=>Ft.join(e,".layout.json"),"layoutMarkerPath"),Oy=i(e=>Ft.join(e,".migration-lock"),"lockDirPath"),pR=i(e=>Ft.join(Oy(e),"owner.json"),"ownerPath"),$y=i(e=>Ft.join(e,".migration-journal.jsonl"),"journalPath"),hR=i(e=>Ft.join(Ft.dirname(e),"sessions-archive"),"sessionsArchiveDir");function gR(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")}i(gR,"isSessionFile");function yR(e){return e.endsWith(".archive.jsonl")||e.endsWith(".islands.jsonl")?e.slice(0,-14):null}i(yR,"sidecarId");async function yF(e){let t;try{t=await yt.open(e,"r");let n=Buffer.allocUnsafe(fR),{bytesRead:r}=await t.read(n,0,fR,0);if(r===0)return null;let o=n.toString("utf8",0,r),s=o.indexOf(`
542
+ `),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(yF,"readMeta");async function xF(e){let t=await yF(e);return t?aa({gitRoot:t.gitRoot,runtimeInfo:t.runtimeInfo}).key:cl}i(xF,"destKeyFor");async function xR(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(".")||(gR(a.name)||o&&yR(a.name)!==null)&&t.push(Ft.join(r,a.name))},"pushDir");return await n(e,!0),await n(hR(e),!0),t}i(xR,"collectFlatSources");async function wF(e){let t=await xR(e),n=t.filter(s=>gR(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 xF(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}`);mR.existsSync(u)&&o.push({from:u,to:Ft.join(e,c,`${a}.islands.jsonl`),reason:"sidecar\u2192islands"})}}for(let s of t){let a=yR(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(wF,"planMigration");async function wR(e){try{return await yt.access(Py(e)),!0}catch{return!1}}i(wR,"isMigrated");async function SF(e){return await wR(e)?!1:(await xR(e)).length>0}i(SF,"needsMigration");async function TF(e){try{let t=JSON.parse(await yt.readFile(pR(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>gF}catch{return!0}}i(TF,"lockIsStale");async function CF(e){let t=Oy(e);for(let n=0;n<2;n+=1)try{return await yt.mkdir(t),await yt.writeFile(pR(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 TF(e)){await yt.rm(t,{recursive:!0,force:!0}).catch(()=>{});continue}return!1}return!1}i(CF,"acquireLock");async function bF(e){await yt.rm(Oy(e),{recursive:!0,force:!0}).catch(()=>{})}i(bF,"releaseLock");async function vF(e){let t=new Set;try{let n=await yt.readFile($y(e),"utf8");for(let r of n.split(`
543
+ `))if(r.trim())try{let o=JSON.parse(r);o.done&&typeof o.from=="string"&&t.add(o.from)}catch{}}catch{}return t}i(vF,"readJournalDone");async function IF(e){if(await yt.mkdir(Ft.dirname(e.to),{recursive:!0}),mR.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(IF,"executeMove");async function SR(e){await yt.mkdir(e,{recursive:!0});let t=`${Py(e)}.${process.pid}.tmp`,n=JSON.stringify({version:hF,migratedAt:new Date().toISOString(),from:"flat-v1"});await yt.writeFile(t,n+`
544
+ `,"utf8"),await yt.rename(t,Py(e))}i(SR,"writeMarker");async function kF(e){let t=hR(e);try{(await yt.readdir(t)).length===0&&await yt.rmdir(t).catch(()=>{})}catch{}}i(kF,"retireSessionsArchive");async function RF(e){if(!await CF(e))return{moved:0,planned:0};try{let t=await wF(e),n=await vF(e),r=await yt.open($y(e),"a"),o=0;try{for(let s of t)n.has(s.from)||(await IF(s),await r.write(JSON.stringify({from:s.from,to:s.to,done:!0})+`
545
+ `),o+=1)}finally{await r.close()}return await kF(e),await SR(e),await yt.rm($y(e),{force:!0}).catch(()=>{}),{moved:o,planned:t.length}}finally{await bF(e)}}i(RF,"runMigration");async function ll(e){try{if(await wR(e))return;if(!await SF(e)){await SR(e).catch(()=>{});return}await RF(e)}catch{}}i(ll,"ensureLayoutMigrated");var EF=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 TR(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(TR,"isKodaXExtensionSessionRecord");function CR(e){return kt(e)?Object.values(e).every(t=>kt(t)?Object.values(t).every(yi):!1):!1}i(CR,"isKodaXExtensionSessionState");function MF(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(MF,"isKodaXContentBlock");function Dy(e){return!kt(e)||typeof e.role!="string"||!EF.has(e.role)?!1:typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(MF)}i(Dy,"isKodaXMessage");function bR(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(bR,"isSessionErrorMetadata");function AF(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(AF,"isKodaXSessionUiHistoryItem");function Ny(e){return Array.isArray(e)&&e.every(AF)}i(Ny,"isKodaXSessionUiHistory");function _F(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||Ny(e.uiHistory))&&(e.scope===void 0||typeof e.scope=="string")}i(_F,"isPersistedMetaUpdateLine");function IR(e,t){t!==0&&process.stderr.write(`[KodaX] Skipped ${t} malformed session record(s) from ${Ne.basename(e)}.
546
+ `)}i(IR,"warnMalformedSessionData");function jr(e){process.stderr.write(`${e}
547
+ `)}i(jr,"writeStorageNotice");function kR(e){return{_type:"extension_record",...e}}i(kR,"toExtensionRecordLine");function RR(e){return{_type:"lineage_entry",entry:e}}i(RR,"toLineageEntryLine");function ER(e){return{_type:"artifact_ledger_entry",entry:e}}i(ER,"toArtifactLedgerLine");function LF(e){return kt(e)&&e._type==="extension_record"&&TR(e)}i(LF,"isPersistedExtensionRecordLine");function PF(e){return kt(e)&&typeof e.id=="string"&&(e.parentId===null||typeof e.parentId=="string")&&typeof e.timestamp=="string"&&typeof e.type=="string"}i(PF,"hasEntryBase");function $F(e){if(!PF(e))return!1;let t=e;switch(t.type){case"message":return Dy(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($F,"isKodaXSessionEntry");function OF(e){return kt(e)&&e._type==="lineage_entry"&&$F(e.entry)}i(OF,"isPersistedLineageEntryLine");function DF(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(DF,"isKodaXSessionArtifactLedgerEntry");function NF(e){return kt(e)&&e._type==="artifact_ledger_entry"&&DF(e.entry)}i(NF,"isPersistedArtifactLedgerLine");function PR(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(PR,"isKodaXSessionRuntimeInfo");function MR(e,t){return process.platform==="win32"||process.platform==="darwin"?e.toLowerCase()===t.toLowerCase():e===t}i(MR,"pathsEqual");function BF(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(BF,"getLastNavigableEntryId");function HF(e){if(e.lineageEntries.length>0)return{version:2,activeEntryId:e.meta?.activeEntryId??BF(e.lineageEntries),entries:e.lineageEntries};if(e.legacyMessages.length!==0)return En(e.legacyMessages)}i(HF,"buildLineage");function AR(e){return typeof e=="string"?`t:${e}`:`j:${JSON.stringify(e)}`}i(AR,"serializeMessageContentForCompare");function FF(e,t){return e===t?!0:e.role===t.role&&AR(e.content)===AR(t.content)}i(FF,"sameMessageByContent");function WF(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)=>FF(s,n[a])))return t}return En(e.messages,t)}i(WF,"resolveSnapshotLineage");function UF(e){let t=HF(e);return{createdAt:e.meta?.createdAt,data:{messages:t?At(t):[...e.legacyMessages],title:e.meta?.title??"",gitRoot:e.meta?.gitRoot??"",runtimeInfo:PR(e.meta?.runtimeInfo)?{...e.meta.runtimeInfo}:void 0,scope:e.meta?.scope??"user",uiHistory:Ny(e.meta?.uiHistory)?e.meta.uiHistory.map(n=>({...n})):void 0,errorMetadata:bR(e.meta?.errorMetadata)?{...e.meta.errorMetadata}:void 0,extensionState:CR(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(UF,"buildSessionData");function jF(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?Ho(n):t.messages.length}}i(jF,"createSessionMeta");async function GF(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(`
548
+ `);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(_F(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(OF(a)){r.lineageEntries.push(a.entry);continue}if(NF(a)){r.artifactLedger.push(a.entry);continue}if(LF(a)){r.extensionRecords.push({id:a.id,extensionId:a.extensionId,type:a.type,ts:a.ts,data:a.data,dedupeKey:a.dedupeKey});continue}if(Dy(a)){r.legacyMessages.push(a);continue}r.malformedCount+=1}catch{r.malformedCount+=1}return r}i(GF,"readPersistedSessionFile");var _R=65536;async function KF(e){let t;try{t=await Je.open(e,"r");let n=Buffer.allocUnsafe(_R),{bytesRead:r}=await t.read(n,0,_R,0);if(r===0)return null;let o=n.toString("utf8",0,r),s=o.indexOf(`
549
+ `);if(s>=0)return o.slice(0,s).trim();let a=await Je.readFile(e,"utf-8"),c=a.indexOf(`
550
+ `);return(c>=0?a.slice(0,c):a).trim()}catch{return null}finally{await t?.close()}}i(KF,"readSessionFirstLine");async function LR(e){try{let t=(await Je.readFile(e,"utf-8")).trim();return t?t.split(`
551
+ `).length:0}catch{return 0}}i(LR,"countSessionLines");var To=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 jr(`[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 GF(n);return r?(IR(n,r.malformedCount),UF(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+`
552
+ `,"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=jF(t,n,c,r);try{let u=await Je.open(a,"w");try{await u.write(JSON.stringify(l)+`
553
+ `);for(let p of c.entries)await u.write(JSON.stringify(RR(p))+`
554
+ `);for(let p of n.artifactLedger??[])await u.write(JSON.stringify(ER(p))+`
555
+ `);for(let p of n.extensionRecords??[])await u.write(JSON.stringify(kR(p))+`
556
+ `)}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:WF(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(RR(p)));for(let p of c)u.push(JSON.stringify(ER(p)));for(let p of l)u.push(JSON.stringify(kR(p)));let m={_type:"meta_update",title:n.title,activeEntryId:n.lineage.activeEntryId,activeMessageCount:Ho(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,`
557
+ `+u.join(`
558
+ `),"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)}
559
+ `)})}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}=Cw(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})+`
560
+ `);for(let m of o)await l.write(JSON.stringify({_type:"archived_entry",archiveBatchId:s,entry:m})+`
561
+ `)}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 Wo(this.hostCwd),c=await Ms({cwd:this.hostCwd}),l=ni(r);(c.canonicalRepoRoot&&l?.canonicalRepoRoot&&!Rd(c,l)||a&&r.gitRoot&&a!==r.gitRoot&&!Rd(c,{canonicalRepoRoot:r.gitRoot}))&&(jr(vR.yellow(`
562
+ [Warning] Session project mismatch:`)),c.workspaceRoot&&jr(` Current workspace: ${c.workspaceRoot}`),l?.workspaceRoot&&jr(` Session workspace: ${l.workspaceRoot}`),c.canonicalRepoRoot&&jr(` Current repo: ${c.canonicalRepoRoot}`),l?.canonicalRepoRoot?jr(` Session repo: ${l.canonicalRepoRoot}`):r.gitRoot&&jr(` Session repo: ${r.gitRoot}`),jr(` Continuing anyway...
563
+ `))}if(r.errorMetadata?.consecutiveErrors&&r.errorMetadata.consecutiveErrors>0){let a=dw(r.messages);if(a!==r.messages){jr(vR.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 IR(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 Wo(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 KF(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=PR(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?MR(D.workspaceRoot,o.workspaceRoot??""):MR(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 LR(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 LR(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 Wo(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 VF(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(VF,"collectSessionFilePaths");function Co(e){return e!==void 0?new To({sessionsDir:e}):new To}i(Co,"getStorage");function $R(e){return e??ja}i($R,"resolveSessionsDir");async function OR(e){return DR(e,void 0)}i(OR,"listSessions");async function DR(e,t){try{let n=$R(t);await ll(n);let r=e?.projectRoot,o=Co(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(zF);let u=await VF(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(`
564
+ `)[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(`
565
+ `).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"?NR(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(DR,"listSessionsImpl");function NR(e){if(!(!e.workspaceRoot&&!e.canonicalRepoRoot))return{...e.workspaceRoot?{workspaceRoot:e.workspaceRoot}:{},...e.canonicalRepoRoot?{gitRoot:e.canonicalRepoRoot}:{}}}i(NR,"extractRuntimeInfoSummary");function zF(e){let t=e.runtimeInfo?NR(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(zF,"toSessionSummary");async function BR(e){return HR(e,void 0)}i(BR,"loadSession");async function HR(e,t){try{return await Co(t).load(e)}catch{return null}}i(HR,"loadSessionImpl");async function FR(e,t){return WR(e,t,void 0)}i(FR,"forkSession");async function WR(e,t,n){try{return await Co(n).fork(e,t?.selector,{sessionId:t?.sessionId,title:t?.title})}catch{return null}}i(WR,"forkSessionImpl");async function UR(e,t){return jR(e,t,void 0)}i(UR,"rewindSession");async function jR(e,t,n){try{return await Co(n).rewind(e,t?.selector)}catch{return null}}i(jR,"rewindSessionImpl");async function GR(e,t){return KR(e,t,void 0)}i(GR,"setActiveEntry");async function KR(e,t,n){try{return await Co(n).setActiveEntry(e,t)}catch{return null}}i(KR,"setActiveEntryImpl");async function sm(){try{return uw({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(sm,"listRunningSessions");async function VR(e){return zR(e,void 0)}i(VR,"deleteSession");async function zR(e,t){try{let r=(await sm()).find(o=>o.sessionId===e);return r?{error:{code:"session_running",runningProcess:{pid:r.pid,startedAt:r.startedAt}}}:(await Co(t).delete(e),{ok:!0})}catch{return{ok:!0}}}i(zR,"deleteSessionImpl");async function XR(e){return YR(e,void 0)}i(XR,"archiveSession");async function YR(e,t){try{return await Co(t).archive(e)}catch{return!1}}i(YR,"archiveSessionImpl");async function qR(e){return JR(e,void 0)}i(qR,"unarchiveSession");async function JR(e,t){try{return await Co(t).unarchive(e)}catch{return!1}}i(JR,"unarchiveSessionImpl");function QR(e){return ZR(e,void 0)}i(QR,"watchSessions");function ZR(e,t){let n=$R(t);return ll(n).catch(()=>{}),process.platform==="win32"?qF(e,n):XF(e,n)}i(ZR,"watchSessionsImpl");function By(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(By,"sessionIdFromFilename");function XF(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=By(m);if(!p)return;let h=l==="rename"?YF(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(XF,"watchSessionsPosix");function YF(e,t){try{return xi.statSync(Bn.join(e,t)),"add"}catch{return"remove"}}i(YF,"detectRenameKind");function qF(e,t){let n=!1,r=new Set;function o(c,l){try{for(let u of xi.readdirSync(l)){let m=By(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=By(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(qF,"watchSessionsWindows");function JF(e){let t=e?.sessionsDir,n=t!==void 0?new To({sessionsDir:t}):new To;return t===void 0?{listSessions:OR,loadSession:BR,forkSession:FR,rewindSession:UR,setActiveEntry:GR,deleteSession:VR,archiveSession:XR,unarchiveSession:qR,listRunningSessions:sm,watchSessions:QR,storage:n}:{listSessions:i(r=>DR(r,t),"listSessions"),loadSession:i(r=>HR(r,t),"loadSession"),forkSession:i((r,o)=>WR(r,o,t),"forkSession"),rewindSession:i((r,o)=>jR(r,o,t),"rewindSession"),setActiveEntry:i((r,o)=>KR(r,o,t),"setActiveEntry"),deleteSession:i(r=>zR(r,t),"deleteSession"),archiveSession:i(r=>YR(r,t),"archiveSession"),unarchiveSession:i(r=>JR(r,t),"unarchiveSession"),listRunningSessions:sm,watchSessions:i(r=>ZR(r,t),"watchSessions"),storage:n}}i(JF,"createSessionManager");export{ts as a,ns as b,Ka as c,rs as d,Va as e,up as f,Uo as g,jo as h,os as i,Go as j,Tu as k,Ko as l,is as m,Cu as n,bu as o,ss as p,pn as q,or as r,ir as s,GE as t,en as u,za as v,mp as w,pp as x,tn as y,hp as z,gp as A,iS as B,sS as C,re as D,mW as E,qp as F,oL as G,od as H,lc as I,GT as J,lL as K,uL as L,gn as M,N,gK as O,zt as P,Qp as Q,eh as R,id as S,th as T,zT as U,uc as V,bs as W,qo as X,nh as Y,lr as Z,zn as _,Xn as $,ao as aa,dd as ba,ur as ca,md as da,Qo as ea,mh as fa,Dr as ga,xc as ha,ks as ia,cP as ja,vh as ka,_s as la,Ls as ma,Dh as na,ii as oa,Pd as pa,Nh as qa,Mc as ra,Hh as sa,Os as ta,i1 as ua,Dn as va,Cb as wa,bb as xa,f1 as ya,m1 as za,iO as Aa,ci as Ba,aO as Ca,Fs as Da,RO as Ea,MO as Fa,AO as Ga,og as Ha,ig as Ia,LO as Ja,ag as Ka,cg as La,af as Ma,cf as Na,lf as Oa,ug as Pa,df as Qa,uf as Ra,fg as Sa,ff as Ta,Nc as Ua,Bc as Va,xv as Wa,pf as Xa,pg as Ya,gg as Za,xg as _a,hf as $a,wg as ab,gf as bb,yf as cb,bg as db,xf as eb,Wc as fb,Uc as gb,Pv as hb,sD as ib,aD as jb,Ov as kb,dD as lb,fD as mb,jc as nb,hr as ob,Kc as pb,Ks as qb,mD as rb,Tf as sb,gD as tb,yD as ub,Cf as vb,kg as wb,bf as xb,Rg as yb,Cy as zb,SH as Ab,CH as Bb,AH as Cb,Dk as Db,Nk as Eb,_H as Fb,PH as Gb,Yf as Hb,Wk as Ib,Ur as Jb,Uk as Kb,jk as Lb,Gk as Mb,DH as Nb,nl as Ob,NH as Pb,BH as Qb,ZH as Rb,Ay as Sb,tF as Tb,nF as Ub,rF as Vb,oF as Wb,sF as Xb,aF as Yb,cF as Zb,lF as _b,aR as $b,To as ac,OR as bc,BR as cc,FR as dc,UR as ec,GR as fc,sm as gc,VR as hc,XR as ic,qR as jc,QR as kc,JF as lc};