@kodax-ai/kodax 0.7.46 → 0.7.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -1
- package/dist/chunks/{chunk-Z4UT32NN.js → chunk-2SMCCP44.js} +1 -1
- package/dist/chunks/{chunk-2GEKCIIW.js → chunk-66B6ZOU7.js} +13 -13
- package/dist/chunks/{chunk-JRT447X5.js → chunk-KRHAO2T3.js} +217 -215
- package/dist/chunks/{chunk-K4RBLNSY.js → chunk-QZFZIGPF.js} +1 -1
- package/dist/chunks/{chunk-XUEINS3X.js → chunk-VGRG2F6H.js} +301 -263
- package/dist/chunks/chunk-VX6HN3JP.js +415 -0
- package/dist/chunks/{compaction-config-PFTBIGQT.js → compaction-config-YU7SI6L6.js} +1 -1
- package/dist/chunks/{construction-bootstrap-2FKNOZZE.js → construction-bootstrap-6UN3OY7X.js} +1 -1
- package/dist/chunks/dist-DS2KIZQG.js +2 -0
- package/dist/chunks/{dist-QTV5M2JW.js → dist-IDNOAB4M.js} +1 -1
- package/dist/chunks/{utils-LY3LB65Z.js → utils-3ISOUEFC.js} +1 -1
- package/dist/index.d.ts +7 -4
- package/dist/index.js +5 -5
- package/dist/kodax_cli.js +736 -706
- package/dist/provider-capabilities.json +3 -8
- package/dist/sdk-agent.d.ts +34 -3
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +65 -5
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-llm.js +1 -1
- package/dist/sdk-mcp.d.ts +1 -1
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-repl.d.ts +4 -3
- package/dist/sdk-repl.js +1 -1
- package/dist/sdk-session.js +1 -1
- package/dist/sdk-skills.js +1 -1
- package/dist/types-chunks/{bash-prefix-extractor.d-BICYx8pt.d.ts → bash-prefix-extractor.d-D6hL0Cuv.d.ts} +280 -2
- package/dist/types-chunks/{manager.d-87belpiS.d.ts → manager.d-U3UEwY1P.d.ts} +15 -0
- package/dist/types-chunks/{utils.d-pzHPkrb8.d.ts → utils.d-umRKgMAu.d.ts} +1 -1
- package/package.json +2 -1
- package/dist/chunks/chunk-VBIVZOSD.js +0 -425
- package/dist/chunks/dist-JLMKDPEL.js +0 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
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(`
|
|
2
|
+
import{A as Jw,B as Qw,C as Zw,a as Z,c as ja,j as Zi,k as Mn,l as es,m as Wo,n as Yw,o as qw,p as yu,q as sp,r as xu,s as ap,t as cp,u as lp,w as Ga,x as up,y as Kn,z as Uo}from"./chunk-QZFZIGPF.js";import{a as wu}from"./chunk-2SMCCP44.js";import{n as eS,o as tS,p as nS}from"./chunk-EVIDQWMF.js";import{Ab as Er,Da as Lw,Ec as Fw,Fb as hu,Fc as Ww,Ia as Pw,Ib as Dw,Jd as zw,Ka as $w,Kb as Nw,La as Ow,Mb as Bw,Oa as op,R as Rw,S as pu,U as Wa,V as Ew,ba as Mw,c as ep,d as Ha,dc as Hw,de as Xw,e as uw,g as np,gd as Uw,ge as gu,hd as Ua,sa as Aw,sd as jw,t as kw,ta as rp,td as Gw,ua as _w,vd as ip,wd as Kw,xd as Vw}from"./chunk-VGRG2F6H.js";import{S as du,ca as cw,ea as Zm,fa as lw,j as Do,sa as No,ta as ji,ua as Gi}from"./chunk-66B6ZOU7.js";import{Bc as Yi,Cc as qi,Dc as Ji,Ec as mu,Fc as Fo,Gc as bw,Ic as Qi,Jc as vw,La as Rn,Nb as xw,Nc as tp,Ob as ww,Oc as Fa,Pb as Sw,Yc as Iw,ac as Rr,bb as dw,bc as Ho,gb as fu,gc as Tw,ib as fw,k as Bo,lc as Vi,mb as mw,nb as pw,ob as hw,pb as gw,rb as yw,tc as En,va as Ki,vc as At,wa as kn,xc as zi,yc as Xi,zc as Cw}from"./chunk-VX6HN3JP.js";import{a as i,b as Qm,c as WE}from"./chunk-V4WSBIXB.js";var tC=Qm((DK,eC)=>{"use strict";eC.exports=i(function(t){return t.map(function(n){return n===""?"''":n&&typeof n=="object"?n.op.replace(/(.)/g,"\\$1"):/["\s\\]/.test(n)&&!/'/.test(n)?"'"+n.replace(/(['])/g,"\\$1")+"'":/["'\s]/.test(n)?'"'+n.replace(/(["\\$`!])/g,"\\$1")+'"':String(n).replace(/([A-Za-z]:)?([#!"$&'()*,:;<=>?@[\\\]^`{|}])/g,"$1\\$2")}).join(" ")},"quote")});var cC=Qm((BK,aC)=>{"use strict";var sC="(?:"+["\\|\\|","\\&\\&",";;","\\|\\&","\\<\\(","\\<\\<\\<",">>",">\\&","<\\&","[&;()|<>]"].join("|")+")",nC=new RegExp("^"+sC+"$"),rC="|&;()<> \\t",TL='"((\\\\"|[^"])*?)"',CL="'((\\\\'|[^'])*?)'",bL=/^#$/,oC="'",iC='"',oh="$",Qo="",vL=4294967296;for(ih=0;ih<4;ih++)Qo+=(vL*Math.random()).toString(16);var ih,IL=new RegExp("^"+Qo);function kL(e,t){for(var n=t.lastIndex,r=[],o;o=t.exec(e);)r.push(o),t.lastIndex===o.index&&(t.lastIndex+=1);return t.lastIndex=n,r}i(kL,"matchAll");function RL(e,t,n){var r=typeof e=="function"?e(n):e[n];return typeof r>"u"&&n!=""?r="":typeof r>"u"&&(r="$"),typeof r=="object"?t+Qo+JSON.stringify(r)+Qo:t+r}i(RL,"getVar");function EL(e,t,n){n||(n={});var r=n.escape||"\\",o="(\\"+r+`['"`+rC+`]|[^\\s'"`+rC+"])+",s=new RegExp(["("+sC+")","("+o+"|"+TL+"|"+CL+")+"].join("|"),"g"),a=kL(e,s);if(a.length===0)return[];t||(t={});var c=!1;return a.map(function(l){var u=l[0];if(!u||c)return;if(nC.test(u))return{op:u};var m=!1,p=!1,h="",g=!1,y;function x(){y+=1;var I,A,$=u.charAt(y);if($==="{"){if(y+=1,u.charAt(y)==="}")throw new Error("Bad substitution: "+u.slice(y-2,y+1));if(I=u.indexOf("}",y),I<0)throw new Error("Bad substitution: "+u.slice(y));A=u.slice(y,I),y=I}else if(/[*@#?$!_-]/.test($))A=$,y+=1;else{var F=u.slice(y);I=F.match(/[^\w\d_]/),I?(A=F.slice(0,I.index),y+=I.index-1):(A=F,y=u.length)}return RL(t,"",A)}for(i(x,"parseEnvVar"),y=0;y<u.length;y++){var w=u.charAt(y);if(g=g||!m&&(w==="*"||w==="?"),p)h+=w,p=!1;else if(m)w===m?m=!1:m==oC?h+=w:w===r?(y+=1,w=u.charAt(y),w===iC||w===r||w===oh?h+=w:h+=r+w):w===oh?h+=x():h+=w;else if(w===iC||w===oC)m=w;else{if(nC.test(w))return{op:u};if(bL.test(w)){c=!0;var T={comment:e.slice(l.index+y+1)};return h.length?[h,T]:[T]}else w===r?p=!0:w===oh?h+=x():h+=w}}return g?{op:"glob",pattern:h}:h}).reduce(function(l,u){return typeof u>"u"?l:l.concat(u)},[])}i(EL,"parseInternal");aC.exports=i(function(t,n,r){var o=EL(t,n,r);return typeof n!="function"?o:o.reduce(function(s,a){if(typeof a=="object")return s.concat(a);var c=a.split(RegExp("("+Qo+".*?"+Qo+")","g"));return c.length===1?s.concat(c[0]):s.concat(c.filter(Boolean).map(function(l){return IL.test(l)?JSON.parse(l.split(Qo)[1]):l}))},[])},"parse")});var lC=Qm(sh=>{"use strict";sh.quote=tC();sh.parse=cC()});import{spawnSync as UE}from"node:child_process";function Su(e){return e==="1"||e?.toLowerCase()==="true"}i(Su,"isTruthyEnv");function rS(e){return e==="0"||e?.toLowerCase()==="false"}i(rS,"isFalseyEnv");function ts(e=process.env){return e.TERM_PROGRAM?.toLowerCase()==="vscode"||!!e.VSCODE_GIT_IPC_HANDLE||!!e.VSCODE_INJECTION}i(ts,"isVsCodeTerminalHostEnv");function ns(e={}){let t=e.env??process.env;return(e.platform??process.platform)==="win32"||!!t.WT_SESSION}i(ns,"hasCursorUpViewportYankRisk");function jE(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}i(jE,"isSshSession");function Ka(e={}){let t=e.env??process.env;return Su(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&jE(t)}i(Ka,"isRemoteConptyHost");function rs(e={}){let t=e.env??process.env;return ns(e)||ts(t)}i(rs,"hasMainScreenRenderScrollRisk");function GE(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}i(GE,"isTmuxControlModeEnvHeuristic");var Mr;function Va(e={}){if(typeof e.tmuxControlMode=="boolean")return e.tmuxControlMode;let t=e.env??process.env,n=e.platform??process.platform;if(n==="win32")return!1;if(GE(t))return!0;if(!(t===process.env&&n===process.platform))return!1;if(Mr!==void 0||(Mr=!1,!t.TMUX)||t.TERM_PROGRAM&&t.TERM_PROGRAM!=="iTerm.app")return Mr;try{let o=UE("tmux",["display-message","-p","#{client_control_mode}"],{encoding:"utf8",timeout:2e3});o.status===0&&(Mr=o.stdout.trim()==="1")}catch{Mr=!1}return Mr}i(Va,"isTmuxControlMode");function dp(){Mr=void 0}i(dp,"resetTmuxControlModeProbeForTesting");function jo(e={}){let t=e.env??process.env,n=e.isTTY??process.stdout.isTTY===!0,r=e.rawModeSupported??(process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function");return!n||!r||t.TERM==="dumb"||t.CI==="true"?"unsupported_control_host":Va(e)?"tmux_control_mode":ts(t)?"xtermjs_host":Ka(e)?"remote_conpty_host":ns(e)?"degraded_vt":"native_vt"}i(jo,"detectTerminalRenderHost");var Go=jo;function os(e={}){let t=e.env??process.env;if(Su(t.KODAX_FORCE_INK))return"legacy";let n=t.KODAX_TUI_RENDERER?.trim().toLowerCase();return n==="legacy"||n==="owned"||n==="auto"?n:"auto"}i(os,"resolveConfiguredTuiRendererMode");function Ko(e={}){let t=os(e);if(t==="legacy"||t==="owned")return t;let n=jo(e);return n==="unsupported_control_host"||n==="tmux_control_mode"?"legacy":"owned"}i(Ko,"resolveEffectiveTuiRendererMode");function Tu(e={}){let t=e.env??process.env;if(Su(t.KODAX_FORCE_CLASSIC_REPL))return"classic";let n=os({env:t});if(n==="legacy"||n==="owned")return"ink";let r=jo(e);return r==="unsupported_control_host"||r==="tmux_control_mode"?"classic":"ink"}i(Tu,"resolveInteractiveSurfacePreference");var KE={enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!0},oS={enabled:!0,promptShell:"main-screen",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!1,transcriptSpinnerAnimation:!0};function Vo(e,t="owned",n={}){let r=n.env??process.env;return rS(r.KODAX_FULLSCREEN)?t==="owned"&&e!=="tmux_control_mode"&&e!=="unsupported_control_host"?oS:KE:VE(e,t)}i(Vo,"resolveFullscreenPolicy");function VE(e,t){if(t==="legacy")switch(e){case"native_vt":return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!0,transcriptSpinnerAnimation:!0};case"xtermjs_host":case"degraded_vt":case"remote_conpty_host":return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1};default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}switch(e){case"native_vt":return{enabled:!0,promptShell:"virtual",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!0,transcriptSpinnerAnimation:!0};case"xtermjs_host":return{enabled:!0,promptShell:"virtual",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!0,transcriptSpinnerAnimation:!0};case"degraded_vt":return{enabled:!0,promptShell:"virtual",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!0,transcriptSpinnerAnimation:!0};case"remote_conpty_host":return oS;default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}}i(VE,"buildFullscreenPolicy");function is(e,t={}){let n=t.rendererMode??"owned",r=Vo(e,n,{env:t.env}),o=e!=="unsupported_control_host"&&e!=="tmux_control_mode";return{profile:e,ownsViewportByDefault:r.enabled&&r.promptShell==="virtual",supportsMouseTracking:r.mouseWheel||r.mouseClicks,bufferingMode:r.streamingPreview?"live":"buffered-fallback",supportsFullscreenLayout:r.enabled,supportsOverlaySurface:r.enabled,supportsSelection:o,supportsCopyOnSelect:!1,supportsWheelHistory:r.mouseWheel,supportsViewportChrome:r.enabled,supportsSearchViewport:r.enabled,supportsStickyPrompt:r.enabled}}i(is,"getTerminalHostCapabilities");function Cu(e={}){return Ko(e)==="owned"}i(Cu,"isOwnedRendererPreferred");function bu(e={}){let t=e.env??process.env;return Su(t.KODAX_FORCE_CLASSIC_REPL)&&!rS(t.KODAX_FORCE_CLASSIC_REPL)}i(bu,"isClassicReplForced");var ss=class{static{i(this,"LRUCache")}capacity;cache;constructor(t){this.capacity=t,this.cache=new Map}get(t){if(!this.cache.has(t))return;let n=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,n),n}set(t,n){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.capacity){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(t,n)}has(t){return this.cache.has(t)}delete(t){return this.cache.delete(t)}clear(){this.cache.clear()}get size(){return this.cache.size}},fp=1,mp=2,zE=1e3,iS;function vu(){if(!(typeof Intl>"u"||typeof Intl.Segmenter!="function"))return iS??=new Intl.Segmenter("en",{granularity:"grapheme"}),iS}i(vu,"getGraphemeSegmenter");function pn(e){if(!e)return 0;let t=vu();if(t){let n=0;for(let r of t.segment(e))n++;return n}return[...e].length}i(pn,"getCodePointLength");function or(e){if(!e)return!1;let t=e.codePointAt(0);return t===void 0?!1:t>=19968&&t<=40959||t>=13312&&t<=19903||t>=63744&&t<=64255||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=44032&&t<=55215||t>=12288&&t<=12351||t>=65280&&t<=65519||t>=128512&&t<=128591||t>=127744&&t<=128511||t>=128640&&t<=128767||t>=127456&&t<=127487||t>=9728&&t<=9983||t>=9984&&t<=10175||t>=129280&&t<=129535||t>=129536&&t<=129647||t>=129648&&t<=129791}i(or,"isWideChar");function ir(e){if(!e)return 0;let t=0,n=vu();if(n)for(let r of n.segment(e))t+=or(r.segment)?mp:fp;else for(let r of e)t+=or(r)?mp:fp;return t}i(ir,"getVisualWidth");function XE(e,t){if(!e||t<0)return"";let n=vu();if(n){let o=0;for(let s of n.segment(e)){if(o===t)return s.segment;o++}return""}let r=[...e];return t>=r.length?"":r[t]}i(XE,"getCharAtCodePoint");function en(e){if(!e)return[];let t=vu();if(t){let n=[];for(let r of t.segment(e))n.push(r.segment);return n}return[...e]}i(en,"splitByCodePoints");function YE(e,t,n){return en(e).slice(t,n).join("")}i(YE,"sliceByCodePoints");function sS(e,t){let n=Math.max(0,t),r=en(e),o=0,s=0;for(;o<r.length;){let a=or(r[o])?mp:fp;if(s+a>n)break;s+=a,o++}return{before:r.slice(0,o).join(""),current:r[o]??"",after:r.slice(o+1).join("")}}i(sS,"splitAtVisualColumn");function za(e,t,n=!1){if(!e||t<=0)return"";let r="\u2026",s=n?t-1:t,a="",c=0,l=en(e);for(let u of l){let m=or(u)?2:1;if(c+m>s)break;a+=u,c+=m}return n&&a.length<e.length&&(a+=r),a}i(za,"truncateByVisualWidth");var pp=new ss(zE);function hp(e){let t=pp.get(e);if(t!==void 0)return t;let n=ir(e);return pp.set(e,n),n}i(hp,"getVisualWidthCached");function tn(e,t,n,r){let o=[],s=[],a=[];for(let c=0;c<e.length;c++){let l=e[c]||"";if(s[c]=[],l.length===0){o.push("");let p=o.length-1;s[c].push([p,0]),a.push([c,0]);continue}let u=0,m=en(l);for(;u<m.length;){let p="",h=0,g=u,y=-1;for(let x=u;x<m.length;x++){let w=m[x],T=or(w)?2:1;if(h+T>t){y>=0&&x-u>0?(p=m.slice(u,y).join(""),h=m.slice(u,y).reduce((I,A)=>I+(or(A)?2:1),0),g=y):p.length===0&&T>t&&(p=w,h=T,g=x+1);break}p+=w,h+=T,g=x+1,w===" "&&(y=x+1)}if(p.length>0||o.length===0){let x=u,w=o.length;o.push(p),s[c].push([w,x]),a.push([c,x])}u=g}}return{visualLines:o,logicalToVisualMap:s,visualToLogicalMap:a}}i(tn,"calculateVisualLayout");function gp(e,t){let{logicalToVisualMap:n,visualLines:r}=e;if(r.length===0)return[0,0];let[o,s]=t,a=n[o];if(!a||a.length===0)return[0,0];let c;for(let[g,y]of a)if(y<=s)c=[g,y];else break;let[l,u]=c??a[0],m=r[l]??"",p=Math.max(0,s-u),h=ir(YE(m,0,p));return[l,h]}i(gp,"calculateVisualCursorFromLayout");var yp={name:"dark",colors:{primary:"#01A4FF",secondary:"#8B5CF6",accent:"#F59E0B",text:"#CCCCCC",dim:"#666666",thinking:"#A3ADC2",success:"#19C37D",warning:"#FF9F43",error:"#FF5F56",info:"#01A4FF",hint:"#8B5CF6",background:"#0D0D0D",inputBackground:"#1A1A1A"},symbols:{prompt:">",success:"\u2713",error:"\u2717",warning:"!",spinner:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]}},aS={name:"minimal",colors:{primary:"#01A4FF",secondary:"#8B5CF6",accent:"#F59E0B",text:"#CCCCCC",dim:"#666666",thinking:"#A3ADC2",success:"#19C37D",warning:"#FF9F43",error:"#FF5F56",info:"#01A4FF",hint:"#8B5CF6",background:"#0D0D0D",inputBackground:"#1A1A1A"},symbols:{prompt:"$",success:"+",error:"-",warning:"?",spinner:["-","\\","|","/"]}};var cS={dark:yp,minimal:aS};function re(e="dark"){return cS[e]??yp}i(re,"getTheme");function CW(){return Object.keys(cS)}i(CW,"getThemeNames");import{jsx as on,jsxs as _n,Fragment as iL}from"react/jsx-runtime";import{useMemo as rd}from"react";import{jsx as BT}from"react/jsx-runtime";import{createContext as $_,useContext as qo,useEffect as xs,useMemo as NT,useState as O_,useCallback as HT,useRef as Xu}from"react";import{Stream as u_}from"node:stream";import{openSync as d_,writeSync as IT}from"node:fs";import{performance as f_}from"node:perf_hooks";import{tmpdir as m_}from"node:os";import{join as p_}from"node:path";import xp,{forwardRef as QE,useContext as ZE}from"react";import{createContext as qE}from"react";var as=qE({isScreenReaderEnabled:!1});import{createContext as JE}from"react";var Iu=JE(void 0);var lS=QE(({children:e,backgroundColor:t,"aria-label":n,"aria-hidden":r,"aria-role":o,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:l}=ZE(as),u=n?xp.createElement("ink-text",null,n):void 0;if(l&&r)return null;let m=xp.createElement("ink-box",{ref:c,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:0,flexShrink:1,...a,backgroundColor:t,overflowX:a.overflowX??a.overflow??"visible",overflowY:a.overflowY??a.overflow??"visible"},internal_accessibility:{role:o,state:s}},l&&u?u:e);return t?xp.createElement(Iu.Provider,{value:t},m):m});lS.displayName="Box";var An=lS;import rM,{useContext as uS}from"react";import cs from"chalk";import to from"chalk";var eM=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,tM=/^ansi256\(\s?(\d+)\s?\)$/;function nM(e){return e in to}i(nM,"isNamedColor");function Vn(e,t,n){if(!t)return e;if(nM(t)){let r=to;if(n==="foreground")return r[t]?.(e)??e;let o=`bg${t[0].toUpperCase()+t.slice(1)}`;return r[o]?.(e)??e}if(t.startsWith("#"))return n==="foreground"?to.hex(t)(e):to.bgHex(t)(e);if(t.startsWith("ansi256")){let r=tM.exec(t);if(!r)return e;let o=Number(r[1]);return n==="foreground"?to.ansi256(o)(e):to.bgAnsi256(o)(e)}if(t.startsWith("rgb")){let r=eM.exec(t);if(!r)return e;let o=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?to.rgb(o,s,a)(e):to.bgRgb(o,s,a)(e)}return e}i(Vn,"colorize");function nn({color:e,backgroundColor:t,dimColor:n=!1,bold:r=!1,italic:o=!1,underline:s=!1,strikethrough:a=!1,inverse:c=!1,wrap:l="wrap",children:u,"aria-label":m,"aria-hidden":p=!1,internal_cursorAnchor:h=!1}){let{isScreenReaderEnabled:g}=uS(as),y=uS(Iu),x=g&&m?m:u;if(x==null)return null;let w=i(T=>{let I=T;n&&(I=cs.dim(I)),e&&(I=Vn(I,e,"foreground"));let A=t??y;return A&&(I=Vn(I,A,"background")),r&&(I=cs.bold(I)),o&&(I=cs.italic(I)),s&&(I=cs.underline(I)),a&&(I=cs.strikethrough(I)),c&&(I=cs.inverse(I)),I},"transform");return g&&p?null:rM.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:l},internal_transform:w,...h?{internal_cursorAnchor:!0}:{}},g&&m?m:u)}i(nn,"Text");import oM,{useLayoutEffect as iM,useMemo as dS,useState as sM}from"react";function wp({items:e,children:t,style:n}){let[r,o]=sM(0),s=dS(()=>e.slice(r),[e,r]);iM(()=>{o(e.length)},[e.length]);let a=s.map((l,u)=>t(l,r+u)),c=dS(()=>({position:"absolute",flexDirection:"column",...n}),[n]);return oM.createElement("ink-box",{internal_static:!0,style:c},a)}i(wp,"Static");import Yo from"node:process";import CT from"react";import{throttle as KA}from"es-toolkit/compat";import rn from"ansi-escapes";import ro from"is-in-ci";import VA from"auto-bind";import{onExit as zA}from"signal-exit";import XA from"patch-console";import{LegacyRoot as YA,ConcurrentRoot as qA}from"react-reconciler/constants.js";import JA from"yoga-layout";import QA from"wrap-ansi";import ZA from"terminal-size";import aM from"node:process";var ku=i(()=>aM.env.DEV==="true","isDev");import $M from"react-reconciler";import{DefaultEventPriority as OM,NoEventPriority as RS}from"react-reconciler/constants.js";import*as no from"scheduler";import bS from"yoga-layout";import{createContext as DM}from"react";import CM from"yoga-layout";import cM from"widest-line";var fS=new Map,lM=i(e=>{if(e.length===0)return{width:0,height:0};let t=fS.get(e);if(t)return t;let n=cM(e),r=e.split(`
|
|
3
|
+
`).length,o={width:n,height:r};return fS.set(e,o),o},"measureText"),Sp=lM;import uM from"wrap-ansi";import dM from"cli-truncate";var mS={},fM=i((e,t,n)=>{let r=e+String(t)+String(n),o=mS[r];if(o)return o;let s=e;if(n==="wrap"&&(s=uM(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=dM(e,t,{position:a})}return mS[r]=s,s},"wrapText"),Ru=fM;var mM=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),pM=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),hM=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),gS=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),gM=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),yS=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),pS=i((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!mM(c))break;n++}let r=e.slice(t,n),o=n;for(;n<e.length;){let c=e[n];if(!pM(c))break;n++}let s=e.slice(o,n),a=e[n];if(!(a===void 0||!hM(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),hS=i((e,t,n)=>{for(let r=t;r<e.length;r++){let o=e[r];if(n&&o==="\x07"||o==="\x9C")return r+1;if(o==="\x1B"){let s=e[r+1];if(s==="\x1B"){r++;continue}if(s==="\\")return r+2}}},"findControlStringTerminatorIndex"),yM=i((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!gS(s))break;n++}let r=e.slice(t,n),o=e[n];if(!(o===void 0||!gM(o)))return{endIndex:n+1,intermediateString:r,finalCharacter:o}},"readEscapeSequence"),xM=i(e=>{switch(e){case"]":return{type:"osc",allowBellTerminator:!0};case"P":return{type:"dcs",allowBellTerminator:!1};case"^":return{type:"pm",allowBellTerminator:!1};case"_":return{type:"apc",allowBellTerminator:!1};case"X":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromEscapeIntroducer"),wM=i(e=>{switch(e){case"\x9D":return{type:"osc",allowBellTerminator:!0};case"\x90":return{type:"dcs",allowBellTerminator:!1};case"\x9E":return{type:"pm",allowBellTerminator:!1};case"\x9F":return{type:"apc",allowBellTerminator:!1};case"\x98":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromC1Introducer"),Tp=i(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(yS(t))return!0;return!1},"hasAnsiControlCharacters"),ls=i((e,t,n,r)=>(r>n&&e.push({type:"text",value:t.slice(n,r)}),e.push({type:"invalid",value:t.slice(r)}),e),"malformedFromIndex"),xS=i(e=>{if(!Tp(e))return[{type:"text",value:e}];let t=[],n=0;for(let r=0;r<e.length;){let o=e[r];if(o===void 0)break;if(o==="\x1B"){let a=e[r+1];if(a===void 0)return ls(t,e,n,r);if(a==="["){let u=pS(e,r+2);if(u===void 0)return ls(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,u.endIndex),parameterString:u.parameterString,intermediateString:u.intermediateString,finalCharacter:u.finalCharacter}),r=u.endIndex,n=r;continue}let c=xM(a);if(c!==void 0){let u=hS(e,r+2,c.allowBellTerminator);if(u===void 0)return ls(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:c.type,value:e.slice(r,u)}),r=u,n=r;continue}let l=yM(e,r+1);if(l===void 0){if(gS(a))return ls(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),r++,n=r;continue}r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"esc",value:e.slice(r,l.endIndex),intermediateString:l.intermediateString,finalCharacter:l.finalCharacter}),r=l.endIndex,n=r;continue}if(o==="\x9B"){let a=pS(e,r+1);if(a===void 0)return ls(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,a.endIndex),parameterString:a.parameterString,intermediateString:a.intermediateString,finalCharacter:a.finalCharacter}),r=a.endIndex,n=r;continue}let s=wM(o);if(s!==void 0){let a=hS(e,r+1,s.allowBellTerminator);if(a===void 0)return ls(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:s.type,value:e.slice(r,a)}),r=a,n=r;continue}if(o==="\x9C"){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"st",value:o}),r++,n=r;continue}if(yS(o)){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"c1",value:o}),r++,n=r;continue}r++}return n<e.length&&t.push({type:"text",value:e.slice(n)}),t},"tokenizeAnsi");var SM=/^[\d:;]*$/,TM=i(e=>{if(!Tp(e))return e;let t="";for(let n of xS(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&SM.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),wS=TM;var SS=i(e=>{let t="";for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r===void 0)continue;let o="";r.nodeName==="#text"?o=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(o=SS(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o,n))),t+=o}return wS(t)},"squashTextNodes"),Xa=SS;var Eu=i(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:CM.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(bM.bind(null,t)),t},"createNode"),Mu=i((e,t)=>{t.parentNode&&Ya(t.parentNode,t),t.parentNode=e,e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount()),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Au(e)},"appendChildNode"),Cp=i((e,t,n)=>{t.parentNode&&Ya(t.parentNode,t),t.parentNode=e;let r=e.childNodes.indexOf(n);r>=0?(e.childNodes.splice(r,0,t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,r)):(e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Au(e)},"insertBeforeNode"),Ya=i((e,t)=>{t.yogaNode&&t.parentNode?.yogaNode?.removeChild(t.yogaNode),t.parentNode=void 0;let n=e.childNodes.indexOf(t);n>=0&&e.childNodes.splice(n,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Au(e)},"removeChildNode"),bp=i((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),vp=i((e,t)=>{e.style=t},"setStyle"),TS=i(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return qa(t,e),t},"createTextNode"),bM=i(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:Xa(e),r=Sp(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let o=e.style?.textWrap??"wrap",s=Ru(n,t,o);return Sp(s)},"measureTextNode"),CS=i(e=>{if(e?.parentNode)return e.yogaNode??CS(e.parentNode)},"findClosestYogaNode"),Au=i(e=>{CS(e)?.markDirty()},"markNodeAsDirty"),qa=i((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,Au(e)},"setTextNodeValue");import Te from"yoga-layout";var IM=i((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?Te.POSITION_TYPE_ABSOLUTE:Te.POSITION_TYPE_RELATIVE),"top"in t&&e.setPosition(Te.EDGE_TOP,t.top??0),"bottom"in t&&e.setPosition(Te.EDGE_BOTTOM,t.bottom??0),"left"in t&&e.setPosition(Te.EDGE_LEFT,t.left??0),"right"in t&&e.setPosition(Te.EDGE_RIGHT,t.right??0)},"applyPositionStyles"),kM=i((e,t)=>{"margin"in t&&e.setMargin(Te.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(Te.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(Te.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(Te.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(Te.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(Te.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(Te.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),RM=i((e,t)=>{"padding"in t&&e.setPadding(Te.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(Te.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(Te.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(Te.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(Te.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(Te.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(Te.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),EM=i((e,t)=>{"flexGrow"in t&&e.setFlexGrow(t.flexGrow??0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexWrap"in t&&(t.flexWrap==="nowrap"&&e.setFlexWrap(Te.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(Te.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(Te.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(Te.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(Te.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(Te.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(Te.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(Number.NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(Te.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(Te.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(Te.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(Te.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(Te.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(Te.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(Te.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(Te.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(Te.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(Te.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(Te.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(Te.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(Te.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(Te.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),MM=i((e,t)=>{"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth(t.minWidth??0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight(t.minHeight??0))},"applyDimensionStyles"),AM=i((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?Te.DISPLAY_FLEX:Te.DISPLAY_NONE)},"applyDisplayStyles"),_M=i((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(Te.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(Te.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(Te.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(Te.EDGE_RIGHT,n)}},"applyBorderStyles"),LM=i((e,t)=>{"gap"in t&&e.setGap(Te.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(Te.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(Te.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),PM=i((e,t={})=>{IM(e,t),kM(e,t),RM(e,t),EM(e,t),MM(e,t),AM(e,t),_M(e,t),LM(e,t)},"styles"),Ip=PM;if(ku())try{await import("./devtools-YINBSZC7.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
|
|
4
4
|
The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
|
|
5
5
|
but this failed as it was not installed. Debugging with React Devtools requires it.
|
|
6
6
|
|
|
@@ -8,64 +8,64 @@ To install use this command:
|
|
|
8
8
|
|
|
9
9
|
$ npm install --save-dev react-devtools-core
|
|
10
10
|
`.trim()+`
|
|
11
|
-
`);else throw e}var
|
|
11
|
+
`);else throw e}var vS=i((e,t)=>{if(e===t)return;if(!e)return t;let n={},r=!1;for(let o of Object.keys(e))(!t||!Object.hasOwn(t,o))&&(n[o]=void 0,r=!0);if(t)for(let o of Object.keys(t))t[o]!==e[o]&&(n[o]=t[o],r=!0);return r?n:void 0},"diff"),IS=i(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),_u=RS,kp,kS={name:void 0,version:void 0},Ar=$M({getRootHostContext:i(()=>({isInsideText:!1}),"getRootHostContext"),prepareForCommit:i(()=>null,"prepareForCommit"),preparePortalMount:i(()=>null,"preparePortalMount"),clearContainer:i(()=>!1,"clearContainer"),resetAfterCommit(e){if(typeof e.onComputeLayout=="function"&&e.onComputeLayout(),e.isStaticDirty){e.isStaticDirty=!1,typeof e.onImmediateRender=="function"&&e.onImmediateRender();return}typeof e.onRender=="function"&&e.onRender()},getChildHostContext(e,t){let n=e.isInsideText,r=t==="ink-text"||t==="ink-virtual-text";return n===r?e:{isInsideText:r}},shouldSetTextContent:i(()=>!1,"shouldSetTextContent"),createInstance(e,t,n,r){if(r.isInsideText&&e==="ink-box")throw new Error("<Box> can\u2019t be nested inside <Text> component");let o=e==="ink-text"&&r.isInsideText?"ink-virtual-text":e,s=Eu(o);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){vp(s,c),s.yogaNode&&Ip(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_cursorAnchor"){s.internal_cursorAnchor=c;continue}if(a==="internal_static"){kp=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}bp(s,a,c)}return s},createTextInstance(e,t,n){if(!n.isInsideText)throw new Error(`Text string "${e}" must be rendered inside <Text> component`);return TS(e)},resetTextContent(){},hideTextInstance(e){qa(e,"")},unhideTextInstance(e,t){qa(e,t)},getPublicInstance:i(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(bS.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(bS.DISPLAY_FLEX)},appendInitialChild:Mu,appendChild:Mu,insertBefore:Cp,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:no.unstable_scheduleCallback,cancelCallback:no.unstable_cancelCallback,shouldYield:no.unstable_shouldYield,now:no.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:i(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:i(()=>null,"getInstanceFromScope"),appendChildToContainer:Mu,insertInContainerBefore:Cp,removeChildFromContainer(e,t){Ya(e,t),IS(t.yogaNode)},commitUpdate(e,t,n,r){kp&&e.internal_static&&(kp.isStaticDirty=!0);let o=vS(n,r),s=vS(n.style,r.style);if(!(!o&&!s)){if(o)for(let[a,c]of Object.entries(o)){if(a==="style"){vp(e,c);continue}if(a==="internal_transform"){e.internal_transform=c;continue}if(a==="internal_cursorAnchor"){e.internal_cursorAnchor=c;continue}if(a==="internal_static"){e.internal_static=!0;continue}bp(e,a,c)}s&&e.yogaNode&&Ip(e.yogaNode,s)}},commitTextUpdate(e,t,n){qa(e,n)},removeChild(e,t){Ya(e,t),IS(t.yogaNode)},setCurrentUpdatePriority(e){_u=e},getCurrentUpdatePriority:i(()=>_u,"getCurrentUpdatePriority"),resolveUpdatePriority(){return _u!==RS?_u:OM},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:DM(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:kS.name,rendererVersion:kS.version});import WM from"widest-line";import UM from"indent-string";import us from"yoga-layout";import Lu from"yoga-layout";var NM=i(e=>e.getComputedWidth()-e.getComputedPadding(Lu.EDGE_LEFT)-e.getComputedPadding(Lu.EDGE_RIGHT)-e.getComputedBorder(Lu.EDGE_LEFT)-e.getComputedBorder(Lu.EDGE_RIGHT),"getMaxWidth"),ES=NM;import BM from"cli-boxes";import Pu from"chalk";var HM=i((e,t,n,r)=>{if(n.style.borderStyle){let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?BM[n.style.borderStyle]:n.style.borderStyle,c=n.style.borderTopColor??n.style.borderColor,l=n.style.borderBottomColor??n.style.borderColor,u=n.style.borderLeftColor??n.style.borderColor,m=n.style.borderRightColor??n.style.borderColor,p=n.style.borderTopDimColor??n.style.borderDimColor,h=n.style.borderBottomDimColor??n.style.borderDimColor,g=n.style.borderLeftDimColor??n.style.borderDimColor,y=n.style.borderRightDimColor??n.style.borderDimColor,x=n.style.borderTop!==!1,w=n.style.borderBottom!==!1,T=n.style.borderLeft!==!1,I=n.style.borderRight!==!1,A=o-(T?1:0)-(I?1:0),$=x?Vn((T?a.topLeft:"")+a.top.repeat(A)+(I?a.topRight:""),c,"foreground"):void 0;x&&p&&($=Pu.dim($));let F=s;x&&(F-=1),w&&(F-=1);let D=(Vn(a.left,u,"foreground")+`
|
|
12
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"),
|
|
14
|
-
`.repeat(o)+
|
|
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"),
|
|
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
|
|
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
|
|
18
|
-
`),height:t.length}}};var _r={Single:0,Wide:1,SpacerTail:2},sr={char:" ",width:_r.Single,style:"",hyperlink:void 0};function
|
|
13
|
+
`).repeat(F);y&&(v=Pu.dim(v));let z=w?Vn((T?a.bottomLeft:"")+a.bottom.repeat(A)+(I?a.bottomRight:""),l,"foreground"):void 0;w&&h&&(z=Pu.dim(z));let fe=x?1:0;$&&r.write(e,t,$,{transformers:[]}),T&&r.write(e,t+fe,D,{transformers:[]}),I&&r.write(e+o-1,t+fe,v,{transformers:[]}),z&&r.write(e,t+s-1,z,{transformers:[]})}},"renderBorder"),MS=HM;var FM=i((e,t,n,r)=>{if(!n.style.backgroundColor)return;let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=n.style.borderStyle&&n.style.borderLeft!==!1?1:0,c=n.style.borderStyle&&n.style.borderRight!==!1?1:0,l=n.style.borderStyle&&n.style.borderTop!==!1?1:0,u=n.style.borderStyle&&n.style.borderBottom!==!1?1:0,m=o-a-c,p=s-l-u;if(!(m>0&&p>0))return;let h=Vn(" ".repeat(m),n.style.backgroundColor,"background");for(let g=0;g<p;g++)r.write(e+a,t+l+g,h,{transformers:[]})},"renderBackground"),AS=FM;var jM=i((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),o=n.getComputedTop();t=`
|
|
14
|
+
`.repeat(o)+UM(t,r)}return t},"applyPaddingToText"),$u=i((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===us.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=Xa(e);else if(e.nodeName==="ink-box"||e.nodeName==="ink-root"){let r=e.style.flexDirection==="row"||e.style.flexDirection==="row-reverse"?" ":`
|
|
15
|
+
`;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>$u(s,{parentRole:e.internal_accessibility?.role,skipStaticElements:t.skipStaticElements})).filter(Boolean).join(r)}if(e.internal_accessibility){let{role:r,state:o}=e.internal_accessibility;if(o){let a=Object.keys(o).filter(c=>o[c]).join(", ");a&&(n=`(${a}) ${n}`)}r&&r!==t.parentRole&&(n=`${r}: ${n}`)}return n},"renderNodeToScreenReaderOutput"),_S=i((e,t,n)=>{let{offsetX:r=0,offsetY:o=0,transformers:s=[],skipStaticElements:a}=n;if(a&&e.internal_static)return;let{yogaNode:c}=e;if(c){if(c.getDisplay()===us.DISPLAY_NONE)return;let l=r+c.getComputedLeft(),u=o+c.getComputedTop();e.internal_cursorAnchor&&(t.cursorPosition={x:l,y:u});let m=s;if(typeof e.internal_transform=="function"&&(m=[e.internal_transform,...s]),e.nodeName==="ink-text"){let h=Xa(e);if(h.length>0){let g=WM(h),y=ES(c);if(g>y){let x=e.style.textWrap??"wrap";h=Ru(h,y,x)}h=jM(e,h),t.write(l,u,h,{transformers:m})}return}let p=!1;if(e.nodeName==="ink-box"){AS(l,u,e,t),MS(l,u,e,t);let h=e.style.overflowX==="hidden"||e.style.overflow==="hidden",g=e.style.overflowY==="hidden"||e.style.overflow==="hidden";if(h||g){let y=h?l+c.getComputedBorder(us.EDGE_LEFT):void 0,x=h?l+c.getComputedWidth()-c.getComputedBorder(us.EDGE_RIGHT):void 0,w=g?u+c.getComputedBorder(us.EDGE_TOP):void 0,T=g?u+c.getComputedHeight()-c.getComputedBorder(us.EDGE_BOTTOM):void 0;t.clip({x1:y,x2:x,y1:w,y2:T}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let h of e.childNodes)_S(h,t,{offsetX:l,offsetY:u,transformers:m,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),Rp=_S;import GM from"slice-ansi";import KM from"string-width";import{styledCharsFromTokens as VM,styledCharsToString as zM,tokenize as XM}from"@alcalzone/ansi-tokenize";var Ep=class{static{i(this,"OutputCaches")}widths=new Map;blockWidths=new Map;styledChars=new Map;getStyledChars(t){let n=this.styledChars.get(t);return n===void 0&&(n=VM(XM(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=KM(t),this.widths.set(t,n)),n}getWidestLine(t){let n=this.blockWidths.get(t);if(n===void 0){let r=0;for(let o of t.split(`
|
|
16
|
+
`))r=Math.max(r,this.getStringWidth(o));n=r,this.blockWidths.set(t,n)}return n}},ds=class{static{i(this,"Output")}width;height;operations=[];caches=new Ep;constructor(t){let{width:n,height:r}=t;this.width=n,this.height=r}write(t,n,r,o){let{transformers:s}=o;r&&this.operations.push({type:"write",x:t,y:n,text:r,transformers:s})}clip(t){this.operations.push({type:"clip",clip:t})}unclip(){this.operations.push({type:"unclip"})}getGrid(){let t=[];for(let r=0;r<this.height;r++){let o=[];for(let s=0;s<this.width;s++)o.push({type:"char",value:" ",fullWidth:!1,styles:[]});t.push(o)}let n=[];for(let r of this.operations)if(r.type==="clip"&&n.push(r.clip),r.type==="unclip"&&n.pop(),r.type==="write"){let{text:o,transformers:s}=r,{x:a,y:c}=r,l=o.split(`
|
|
17
|
+
`),u=n.at(-1);if(u){let p=typeof u?.x1=="number"&&typeof u?.x2=="number",h=typeof u?.y1=="number"&&typeof u?.y2=="number";if(p){let g=this.caches.getWidestLine(o);if(a+g<u.x1||a>u.x2)continue}if(h){let g=l.length;if(c+g<u.y1||c>u.y2)continue}if(p&&(l=l.map(g=>{let y=a<u.x1?u.x1-a:0,x=this.caches.getStringWidth(g),w=a+x>u.x2?u.x2-a:x;return GM(g,y,w)}),a<u.x1&&(a=u.x1)),h){let g=c<u.y1?u.y1-c:0,y=l.length,x=c+y>u.y2?u.y2-c:y;l=l.slice(g,x),c<u.y1&&(c=u.y1)}}let m=0;for(let[p,h]of l.entries()){let g=t[c+m];if(!g)continue;for(let w of s)h=w(h,p);let y=this.caches.getStyledChars(h),x=a;for(let w of y){g[x]=w;let T=Math.max(1,this.caches.getStringWidth(w.value));if(T>1)for(let I=1;I<T;I++)g[x+I]={type:"char",value:"",fullWidth:!1,styles:w.styles};x+=T}m++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let o=r.filter(s=>s!==void 0);return zM(o).trimEnd()}).join(`
|
|
18
|
+
`),height:t.length}}};var _r={Single:0,Wide:1,SpacerTail:2},sr={char:" ",width:_r.Single,style:"",hyperlink:void 0};function LS(e,t){if(e<0||t<0)throw new RangeError(`Screen dimensions must be non-negative (got width=${e}, height=${t})`);let n=new Array(e*t).fill(sr);return{width:e,height:t,cells:n}}i(LS,"createScreen");function fs(e,t,n){if(!(t<0||n<0||t>=e.width||n>=e.height))return e.cells[n*e.width+t]}i(fs,"cellAt");function PS(e,t){if(e<0||t<0)throw new RangeError(`Screen dimensions must be non-negative (got width=${e}, height=${t})`);let n=new Array(e*t).fill(sr),r=!1;return{width:e,height:t,setCellAt(o,s,a){if(r)throw new Error("ScreenBuilder.setCellAt called after build()");if(o<0||s<0||o>=e||s>=t)throw new RangeError(`ScreenBuilder.setCellAt out of bounds: (${o}, ${s}) on ${e}x${t}`);n[s*e+o]=a},build(){if(r)throw new Error("ScreenBuilder.build called twice");return r=!0,{width:e,height:t,cells:n}}}}i(PS,"createScreenBuilder");function*Ou(e,t){let n=Math.max(e.width,t.width),r=Math.max(e.height,t.height);for(let o=0;o<r;o++)for(let s=0;s<n;s++){let a=fs(e,s,o),c=fs(t,s,o);YM(a,c)||(yield{x:s,y:o,prev:a,next:c})}}i(Ou,"diffEach");function $S(e,t,n,r){if(r===0||e.height===0)return e;let o=Math.max(0,t),s=Math.min(e.height-1,n);if(o>s)return e;let a=e.width,c=e.cells.slice(),l=s-o+1,u=i(m=>{for(let p=0;p<a;p++)c[m*a+p]=sr},"blankRow");if(Math.abs(r)>=l){for(let m=o;m<=s;m++)u(m);return{...e,cells:c}}if(r>0){for(let m=o;m<=s-r;m++)for(let p=0;p<a;p++)c[m*a+p]=e.cells[(m+r)*a+p]??sr;for(let m=s-r+1;m<=s;m++)u(m)}else{let m=-r;for(let p=s;p>=o+m;p--)for(let h=0;h<a;h++)c[p*a+h]=e.cells[(p-m)*a+h]??sr;for(let p=o;p<=o+m-1;p++)u(p)}return{...e,cells:c}}i($S,"shiftRowsRegion");function YM(e,t){return e===t?!0:e===void 0||t===void 0?!1:e.char===t.char&&e.width===t.width&&e.style===t.style&&e.hyperlink===t.hyperlink}i(YM,"cellsEqual");var Mp="\x1B]8;";function qM(e){return e.endsWith("\x07")?e.slice(0,-1):e}i(qM,"stripOsc8Terminator");function JM(e){if(!e.startsWith(Mp))return;let t=e.slice(Mp.length),n=t.indexOf(";");if(n<0)return;let r=t.slice(n+1),o=qM(r);return o.length>0?o:void 0}i(JM,"parseOsc8Url");function QM(e){if(e.value==="")return{char:"",width:_r.SpacerTail,style:"",hyperlink:void 0};let t="",n;for(let r of e.styles)if(r.code.startsWith(Mp)){let o=JM(r.code);o!==void 0&&(n=o)}else t+=r.code;return{char:e.value,width:e.fullWidth?_r.Wide:_r.Single,style:t,hyperlink:n}}i(QM,"styledCharToCell");function Du(e){let t=e.getGrid(),n=e.width,r=e.height,o=PS(n,r),s=Math.min(t.length,r);for(let a=0;a<s;a++){let c=t[a];if(!c)continue;let l=Math.min(c.length,n);for(let u=0;u<l;u++){let m=c[u];if(!m)continue;let p=QM(m);p.char===sr.char&&p.width===sr.width&&p.style===sr.style&&p.hyperlink===sr.hyperlink||o.setCellAt(u,a,p)}}return o.build()}i(Du,"outputToScreen");var ZM=i((e,t,n)=>{if(e.yogaNode){if(t){let h=$u(e,{skipStaticElements:!0}),g=h===""?0:h.split(`
|
|
19
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()});
|
|
21
|
-
`:"",frame:p}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),
|
|
22
|
-
`)}]}i(
|
|
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?
|
|
25
|
-
`).slice(1).map(a=>{let c=
|
|
20
|
+
`:"",frame:void 0}}let r=new ds({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});Rp(e,r,{skipStaticElements:!0});let o;e.staticNode?.yogaNode&&(o=new ds({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),Rp(e.staticNode,o,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=Du(r),l=n?.columns??e.yogaNode.getComputedWidth(),u=n?.rows??e.yogaNode.getComputedHeight(),m=r.cursorPosition,p={screen:c,viewport:{width:l,height:u},cursor:{x:0,y:c.height,visible:!1},...m?{inputCursor:{x:m.x,y:m.y}}:{}};return{output:s,outputHeight:a,staticOutput:o?`${o.get().output}
|
|
21
|
+
`:"",frame:p}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),Ap=ZM;function hn(...e){if(e.length===0)return"\x1B[";if(e.length===1)return`\x1B[${e[0]}`;let t=e.slice(0,-1),n=e[e.length-1];return`\x1B[${t.join(";")}${n}`}i(hn,"csi");function OS(e=1){return e===0?"":hn(e,"A")}i(OS,"cursorUp");function eA(e=1){return e===0?"":hn(e,"B")}i(eA,"cursorDown");function tA(e=1){return e===0?"":hn(e,"C")}i(tA,"cursorForward");function nA(e=1){return e===0?"":hn(e,"D")}i(nA,"cursorBack");function DS(e){return hn(e,"G")}i(DS,"cursorTo");var rA=hn("G"),NS=hn("H");function BS(e,t){let n="";return e<0?n+=nA(-e):e>0&&(n+=tA(e)),t<0?n+=OS(-t):t>0&&(n+=eA(t)),n}i(BS,"cursorMove");var oA=hn(2,"K");function HS(e){if(e<=0)return"";let t="";for(let n=0;n<e;n++)t+=oA,n<e-1&&(t+=OS(1));return t+=rA,t}i(HS,"eraseLines");var FS=hn("r"),WS="\x1B7",US="\x1B8";function jS(e,t){return hn(e,t,"r")}i(jS,"setScrollRegion");function GS(e=1){return hn(e,"S")}i(GS,"scrollUp");function KS(e=1){return hn(e,"T")}i(KS,"scrollDown");var Nu=hn(0,"m");function VS(e){return`\x1B]${e.join(";")}\x07`}i(VS,"osc");function iA(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return(t>>>0).toString(36)}i(iA,"osc8Id");function Ja(e,t){if(!e)return Qa;let n={id:iA(e),...t??{}},r=Object.entries(n).map(([o,s])=>`${o}=${s}`).join(":");return VS(["8",r,e])}i(Ja,"link");var Qa=VS(["8","",""]);function _p(e){let{screen:t}=e;if(t.width===0||t.height===0)return[];let n=[],r="",o;for(let s=0;s<t.height;s++){let a="";for(let c=0;c<t.width;c++){let l=fs(t,c,s);!l||l.width===_r.SpacerTail||(l.hyperlink!==o&&(o!==void 0&&(a+=Qa),l.hyperlink!==void 0&&(a+=Ja(l.hyperlink)),o=l.hyperlink),l.style!==r&&(r!==""&&(a+=Nu),l.style!==""&&(a+=l.style),r=l.style),a+=l.char)}o!==void 0&&(a+=Qa,o=void 0),r!==""&&(a+=Nu,r=""),n.push(a.trimEnd())}return[{type:"stdout",content:n.join(`
|
|
22
|
+
`)}]}i(_p,"renderFullFrame");var sA=Object.freeze([]),aA=Object.freeze([]);function ms(e,t){if(e===t)return{patches:sA,current:e};let n=[];return e!==""&&n.push({type:"stdout",content:Nu}),t!==""&&n.push({type:"stdout",content:t}),{patches:n,current:t}}i(ms,"transitionStyle");function Bu(e,t){let n=ms(e,t),r="";for(let o of n.patches)o.type==="stdout"&&(r+=o.content);return{str:r,current:n.current}}i(Bu,"transitionStyleStr");function zo(e,t){if(e===t)return{patches:aA,current:e};let n=[];return e!==void 0&&n.push({type:"stdout",content:Qa}),t!==void 0&&n.push({type:"stdout",content:Ja(t)}),{patches:n,current:t}}i(zo,"transitionHyperlink");function zS(e){let t=e.codePointAt(0);if(t===void 0)return!1;if(t>=129648&&t<=129791||t>=129792&&t<=130047)return!0;if(e.length>=2){for(let n=0;n<e.length;n++)if(e.charCodeAt(n)===65039)return!0}return!1}i(zS,"needsWidthCompensation");var ps=class{static{i(this,"VirtualScreen")}viewportWidth;cursor;diff;_cursorMut;_diffMut=[];constructor(t,n){this.viewportWidth=n,this._cursorMut={x:t.x,y:t.y},this.cursor=this._cursorMut,this.diff=this._diffMut}txn(t){let[n,r]=t(this.cursor);for(let o of n)this._diffMut.push(o);this._cursorMut.x+=r.dx,this._cursorMut.y+=r.dy}},Lr={type:"carriageReturn"},Za={type:"stdout",content:`
|
|
23
|
+
`};function Hu(e,t,n){let r=t.width===_r.Wide?2:1,o=e.viewportWidth,s=!1;return e.txn(a=>{let c=a.x;if(r===2&&c<o){let m=t.char.length>2?o:o+1;if(c+2>=m)return[[],{dx:0,dy:0}]}let l=[];n.length>0&&l.push({type:"stdout",content:n});let u=r===2&&zS(t.char);return u&&c+1<o&&(l.push({type:"cursorTo",col:c+2}),l.push({type:"stdout",content:" "}),l.push({type:"cursorTo",col:c+1})),l.push({type:"stdout",content:t.char}),u&&l.push({type:"cursorTo",col:c+r+1}),s=!0,c>=o?[l,{dx:r-c,dy:1}]:[l,{dx:r,dy:0}]}),s}i(Hu,"writeCellWithStyleStr");function ec(e,t,n){e.txn(r=>{let o=t-r.x,s=n-r.y;return r.x>=e.viewportWidth?[[Lr,{type:"cursorMove",x:t,y:s}],{dx:o,dy:s}]:s!==0?[[Lr,{type:"cursorMove",x:t,y:s}],{dx:o,dy:s}]:[[{type:"cursorMove",x:o,y:s}],{dx:o,dy:s}]})}i(ec,"moveCursorTo");function Fu(e,t,n,r,o=!1){let s="",a;for(let c=n;c<r;c++){if(e.cursor.y<c){let p=c-e.cursor.y;e.txn(h=>{let g=new Array(1+p);g[0]=Lr;for(let y=0;y<p;y++)g[1+y]=Za;return[g,{dx:-h.x,dy:p}]})}for(let p=0;p<t.screen.width;p++){let h=fs(t.screen,p,c);if(!h||h.width===_r.SpacerTail||h.char===" "&&h.style===""&&h.hyperlink===void 0)continue;ec(e,p,c);let g=zo(a,h.hyperlink);for(let x of g.patches)e.txn(()=>[[x],{dx:0,dy:0}]);a=g.current;let y=Bu(s,h.style);Hu(e,h,y.str)&&(s=y.current)}let l=ms(s,"");for(let p of l.patches)e.txn(()=>[[p],{dx:0,dy:0}]);s=l.current;let u=zo(a,void 0);for(let p of u.patches)e.txn(()=>[[p],{dx:0,dy:0}]);a=u.current;let m=c===r-1&&t.screen.height<=t.viewport.height&&(c+1>=t.viewport.height||o);e.txn(p=>m?[[Lr],{dx:-p.x,dy:0}]:[[Lr,Za],{dx:-p.x,dy:1}])}if(s!==""||a!==void 0){let c=ms(s,"");for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);let l=zo(a,void 0);for(let u of l.patches)e.txn(()=>[[u],{dx:0,dy:0}])}}i(Fu,"renderFrameSlice");function Lp(e,t){let n="";for(let r=0;r<e.width;r++){let o=fs(e,r,t);n+=o?.char??" "}return n.trimEnd()}i(Lp,"readLine");function Wu(e,t,n=!1){let r=new ps({x:0,y:0},e.viewport.width);Fu(r,e,0,e.screen.height,n);let o=[{type:"clearTerminal",reason:t}];for(let s of r.diff)o.push(s);return o}i(Wu,"fullResetSequence_CAUSES_FLICKER");function Pp(e,t){let n=e.cursor.y>=e.screen.height,r=t.screen.height>e.screen.height,o=t.screen.height<e.screen.height,s=n&&e.screen.height>=e.viewport.height,a=t.screen.height<=e.viewport.height,c=s?1:0;return{viewportY:r?Math.max(0,e.screen.height-e.viewport.height+c):Math.max(e.screen.height,t.screen.height)-t.viewport.height+c,cursorAtBottom:n,growing:r,shrinking:o,prevHadScrollback:s,nextFitsViewport:a}}i(Pp,"computeViewportState");function XS(e,t,n){if(t.viewport.height<e.viewport.height||e.viewport.width!==0&&t.viewport.width!==e.viewport.width)return{reset:!0,reason:"resize"};let r=Pp(e,t);if(r.prevHadScrollback&&r.nextFitsViewport&&r.shrinking)return{reset:!0,reason:"offscreen"};if(e.screen.height>=e.viewport.height&&e.screen.height>0&&r.cursorAtBottom&&!r.growing){let s=e.screen.height-e.viewport.height+1;for(let a of Ou(e.screen,t.screen))if(a.y<s)return{reset:!0,reason:"offscreen",trigger:{y:a.y,prevLine:n(e.screen,a.y),nextLine:n(t.screen,a.y)}}}return r.shrinking&&e.screen.height-t.screen.height>e.viewport.height?{reset:!0,reason:"offscreen"}:{reset:!1}}i(XS,"shouldFullReset");function YS(e,t,n){return!!(t&&t.width===2||e&&e.width===2&&!t||t&&n&&!e)}i(YS,"shouldSkipDiff");var Uu=class{static{i(this,"LogUpdate")}options;constructor(t){this.options=t}render(t,n,r={}){if(!this.options.isTTY)return _p(n);let o=r.inlineBottomAnchored??!1,s=qS(t,o),a=qS(n,o),c=XS(s,a,Lp);if(c.reset)return Wu(a,c.reason,o);let l=a.scrollHint;if(l&&r.altScreen&&r.decstbmSafe&&process.env.KODAX_SCROLL_DECSTBM==="1"&&l.delta!==0&&l.top>=0&&l.bottom<s.screen.height&&l.bottom<a.screen.height&&Math.abs(l.delta)<=l.bottom-l.top){let u={type:"scrollRegion",top:l.top,bottom:l.bottom,delta:l.delta},m={...s,screen:$S(s.screen,l.top,l.bottom,l.delta)};return[u,...JS(m,a,o)]}return JS(s,a,o)}reset(){}};function $p(e,t){for(let n of t)e.txn(()=>[[n],{dx:0,dy:0}])}i($p,"emitPatches");function QS(e,t,n){if(t!==""){let r=ms(t,"");$p(e,r.patches)}if(n!==void 0){let r=zo(n,void 0);$p(e,r.patches)}return{style:"",hyperlink:void 0}}i(QS,"resetStyleAndHyperlink");function cA(e,t,n){let r=t.screen.height-n.screen.height;e.txn(o=>[[{type:"clear",count:r},{type:"cursorMove",x:0,y:-1}],{dx:-o.x,dy:-r}])}i(cA,"applyShrink");function lA(e,t,n,r){let o="",s,a=!1;for(let c of Ou(t.screen,n.screen)){let{x:l,y:u,prev:m,next:p}=c;if(r.growing&&u>=t.screen.height)continue;let h=!!(p&&p.char===" "&&p.style===""&&p.hyperlink===void 0);if(!YS(m,p,h)){if(u<r.viewportY){a=!0;break}if(ec(e,l,u),p){let g=zo(s,p.hyperlink);$p(e,g.patches),s=g.current;let y=Bu(o,p.style);Hu(e,p,y.str)&&(o=y.current)}else if(m){let g=QS(e,o,s);o=g.style,s=g.hyperlink,e.txn(()=>[[{type:"stdout",content:" "}],{dx:1,dy:0}])}}}return{currentStyle:o,currentHyperlink:s,needsFullReset:a}}i(lA,"diffPass");function qS(e,t){let n=t?Math.max(0,Math.min(e.viewport.height-1,e.screen.height-1)):Math.max(0,e.viewport.height-1);return e.cursor.y<=n?e:{...e,cursor:{...e.cursor,y:n}}}i(qS,"clampRestingCursor");function uA(e,t){t.cursor.y>=t.screen.height?e.txn(n=>{let r=t.cursor.y-n.y;if(r>0){let s=new Array(1+r);s[0]=Lr;for(let a=0;a<r;a++)s[1+a]=Za;return[s,{dx:-n.x,dy:r}]}let o=t.cursor.y-n.y;return o!==0||n.x!==t.cursor.x?[[Lr,{type:"cursorMove",x:t.cursor.x,y:o}],{dx:t.cursor.x-n.x,dy:o}]:[[],{dx:0,dy:0}]}):ec(e,t.cursor.x,t.cursor.y)}i(uA,"restoreCursor");function JS(e,t,n=!1){let r=Pp(e,t),o=new ps(e.cursor,t.viewport.width);r.shrinking&&cA(o,e,t);let s=lA(o,e,t,r);return s.needsFullReset?Wu(t,"offscreen",n):(QS(o,s.currentStyle,s.currentHyperlink),r.growing&&Fu(o,t,e.screen.height,t.screen.height,n),uA(o,t),o.diff)}i(JS,"renderIncremental");var dA="\x1B[?25l",fA="\x1B[?25h",mA=`\x1B[2J${NS}`,pA="\x1B[?2026h",hA="\x1B[?2026l";function gA(e){switch(e.type){case"stdout":return e.content;case"carriageReturn":return"\r";case"cursorHide":return dA;case"cursorShow":return fA;case"cursorMove":return BS(e.x,e.y);case"cursorTo":return DS(e.col);case"clear":return HS(e.count);case"clearTerminal":return mA;case"hyperlink":return Ja(e.uri);case"scrollRegion":{let t=e.top+1,n=e.bottom+1,r=Math.abs(e.delta),o=e.delta>0?GS(r):KS(r);return WS+jS(t,n)+o+FS+US}}}i(gA,"patchToBytes");function ju(e,t,n=!1){let r="",o=!1;for(let s of t)s.type==="clearTerminal"&&(o=!0),r+=gA(s);if(r.length!==0){if(n&&o){e.write(pA+r+hA);return}e.write(r)}}i(ju,"applyDiff");function ZS(e,t,n={}){if(t===void 0)return!1;let r=e.cellLogUpdate.render(e.prevFrame,t,n);return ju(e.stdout,r,n.synchronized??!1),e.prevFrame=t,!0}i(ZS,"applyCellFrame");function tc(e,t){return{screen:LS(0,0),viewport:{width:t,height:e},cursor:{x:0,y:0,visible:!0}}}i(tc,"emptyFrame");import yA from"is-in-ci";var Pr="\x1B[?2026h",ar="\x1B[?2026l";function $r(e){return"isTTY"in e&&e.isTTY===!0&&!yA}i($r,"shouldSynchronize");var xA=new WeakMap,eT=xA;import{EventEmitter as BA}from"node:events";import HA from"node:process";import Xo,{useState as Np,useRef as hs,useCallback as wt,useMemo as gs,useEffect as xT}from"react";import FA from"cli-cursor";var wA=i(e=>e>=48&&e<=63,"isCsiParameterByte"),SA=i(e=>e>=32&&e<=47,"isCsiIntermediateByte"),nT=i(e=>e>=64&&e<=126,"isCsiFinalByte");function TA(e,t,n){let r=t+n+1,o=r;for(;o<e.length;o+=1){let s=e.codePointAt(o);if(s===void 0)return"pending";if(!(wA(s)||SA(s))&&!(s===91&&o===r))return nT(s)?{sequence:e.slice(t,o+1),nextIndex:o+1}:void 0}return"pending"}i(TA,"parseCsiSequence");function CA(e,t,n){let r=t+n+2;if(r>e.length)return"pending";let o=e.codePointAt(r-1);if(!(o===void 0||!nT(o)))return{sequence:e.slice(t,r),nextIndex:r}}i(CA,"parseSs3Sequence");function tT(e,t,n){let r=e[t+n];if(r===void 0)return"pending";if(r==="[")return TA(e,t,n);if(r==="O")return CA(e,t,n)}i(tT,"parseControlSequence");function bA(e,t){let n=e.codePointAt(t+1),r=n!==void 0&&n>65535?2:1,o=t+1+r;return{sequence:e.slice(t,o),nextIndex:o}}i(bA,"parseEscapedCodePoint");function vA(e){let t=[],n=0,r=i(o=>({events:t,pending:e.slice(o)}),"pendingFrom");for(;n<e.length;){let o=e.indexOf("\x1B",n);if(o===-1)return t.push(e.slice(n)),{events:t,pending:""};if(o>n&&t.push(e.slice(n,o)),o===e.length-1)return r(o);let s=tT(e,o,1);if(s==="pending")return r(o);if(s){t.push(s.sequence),n=s.nextIndex;continue}if(e[o+1]==="\x1B"){if(o+2>=e.length)return r(o);let l=tT(e,o,2);if(l==="pending")return r(o);if(l){t.push(l.sequence),n=l.nextIndex;continue}t.push(e.slice(o,o+2)),n=o+2;continue}let c=bA(e,o);t.push(c.sequence),n=c.nextIndex}return{events:t,pending:""}}i(vA,"parseKeypresses");function Gu(){let e="";return{push(t){let n=vA(e+t);return e=n.pending,n.events},hasPendingEscape(){return e.startsWith("\x1B")},flushPendingEscape(){if(!e.startsWith("\x1B"))return;let t=e;return e="",t},reset(){e=""}}}i(Gu,"createInputParser");import{createContext as IA}from"react";var rT=IA({exit(){}});rT.displayName="InternalAppContext";var oT=rT;import{EventEmitter as kA}from"node:events";import{createContext as RA}from"react";var EA={isTTY:!1,isRaw:!1,on(){},off(){},pause(){},resume(){},setRawMode(){}},iT=RA({stdin:EA,internal_eventEmitter:new kA,setRawMode(){},isRawModeSupported:!1,internal_exitOnCtrlC:!0});iT.displayName="InternalStdinContext";var sT=iT;import{createContext as MA}from"react";var AA={isTTY:!1,columns:80,rows:24,write(){return!0},on(){},off(){}},aT=MA({stdout:AA,write(){}});aT.displayName="InternalStdoutContext";var cT=aT;import{createContext as _A}from"react";var LA={isTTY:!1,write(){return!0},on(){},off(){}},lT=_A({stderr:LA,write(){}});lT.displayName="InternalStderrContext";var uT=lT;import{createContext as PA}from"react";var dT=PA({activeId:void 0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){}});dT.displayName="InternalFocusContext";var fT=dT;import{createContext as $A}from"react";var mT=$A({setCursorPosition(){}});mT.displayName="InternalCursorContext";var pT=mT;import DA,{PureComponent as NA}from"react";import*as Ku from"node:fs";import{cwd as yT}from"node:process";import bt from"react";import hT from"stack-utils";import OA from"code-excerpt";var Op=i(e=>e?.replace(`file://${yT()}/`,""),"cleanupPath"),gT=new hT({cwd:yT(),internals:hT.nodeInternals()});function Dp({error:e}){let t=e.stack?e.stack.split(`
|
|
24
|
+
`).slice(1):void 0,n=t?gT.parseLine(t[0]):void 0,r=Op(n?.file),o,s=0;if(r&&n?.line&&Ku.existsSync(r)){let a=Ku.readFileSync(r,"utf8");if(o=OA(a,n.line),o)for(let{line:c}of o)s=Math.max(s,String(c).length)}return bt.createElement(An,{flexDirection:"column",padding:1},bt.createElement(An,null,bt.createElement(nn,{backgroundColor:"red",color:"white"}," ","ERROR"," "),bt.createElement(nn,null," ",e.message)),n&&r&&bt.createElement(An,{marginTop:1},bt.createElement(nn,{dimColor:!0},r,":",n.line,":",n.column)),n&&o&&bt.createElement(An,{marginTop:1,flexDirection:"column"},o.map(({line:a,value:c})=>bt.createElement(An,{key:a},bt.createElement(An,{width:s+1},bt.createElement(nn,{dimColor:a!==n.line,backgroundColor:a===n.line?"red":void 0,color:a===n.line?"white":void 0,"aria-label":a===n.line?`Line ${a}, error`:`Line ${a}`},String(a).padStart(s," "),":")),bt.createElement(nn,{key:a,backgroundColor:a===n.line?"red":void 0,color:a===n.line?"white":void 0}," "+c)))),e.stack&&bt.createElement(An,{marginTop:1,flexDirection:"column"},e.stack.split(`
|
|
25
|
+
`).slice(1).map(a=>{let c=gT.parseLine(a);return c?bt.createElement(An,{key:a},bt.createElement(nn,{dimColor:!0},"- "),bt.createElement(nn,{dimColor:!0,bold:!0},c.function),bt.createElement(nn,{dimColor:!0,color:"gray","aria-label":`at ${Op(c.file)??""} line ${c.line} column ${c.column}`}," ","(",Op(c.file)??"",":",c.line,":",c.column,")")):bt.createElement(An,{key:a},bt.createElement(nn,{dimColor:!0},"- "),bt.createElement(nn,{dimColor:!0,bold:!0},a,"\\t"," "))})))}i(Dp,"ErrorOverview");var nc=class extends NA{static{i(this,"ErrorBoundary")}static displayName="InternalErrorBoundary";static getDerivedStateFromError(t){return{error:t}}state={error:void 0};componentDidCatch(t){this.props.onError(t)}render(){return this.state.error?DA.createElement(Dp,{error:this.state.error}):this.props.children}};var WA=" ",UA="\x1B[Z",jA="\x1B";function wT({children:e,stdin:t,stdout:n,stderr:r,writeToStdout:o,writeToStderr:s,exitOnCtrlC:a,onExit:c,setCursorPosition:l}){let[u,m]=Np(!0),[p,h]=Np(void 0),[,g]=Np([]),y=hs(0),x=hs(0),w=hs(new BA);w.current.setMaxListeners(1/0);let T=hs(void 0),I=hs(Gu()),A=hs(void 0),$=wt(()=>{A.current&&(clearImmediate(A.current),A.current=void 0)},[]),F=t.isTTY,D=wt(()=>{T.current&&(t.removeListener("readable",T.current),T.current=void 0)},[t]),v=wt(()=>{t.setRawMode(!1),D(),t.unref(),x.current=0,I.current.reset(),$()},[t,D,$]),z=wt(ee=>{F&&x.current>0&&v(),c(ee)},[F,v,c]),fe=wt(ee=>{if(ee===""&&a){z();return}ee===jA&&h(_=>_&&void 0)},[a,z]),se=wt(ee=>{fe(ee),w.current.emit("input",ee)},[fe]),ge=wt(()=>{$(),A.current=setImmediate(()=>{A.current=void 0;let ee=I.current.flushPendingEscape();ee&&se(ee)})},[$,se]),L=wt(()=>{$();let ee;for(;(ee=t.read())!==null;){let _=I.current.push(ee);for(let O of _)se(O)}I.current.hasPendingEscape()&&ge()},[t,se,$,ge]),k=wt(ee=>{if(!F)throw t===HA.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default.
|
|
26
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}},[]),
|
|
28
|
-
`;if(this.options.debug){c&&(this.fullStaticOutput+=s),this.options.stdout.write(this.fullStaticOutput+r);return}if(
|
|
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=
|
|
27
|
+
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(t.setEncoding("utf8"),ee){x.current===0&&(t.ref(),t.setRawMode(!0),T.current=L,t.addListener("readable",L)),x.current++;return}x.current!==0&&--x.current===0&&v()},[F,t,L,v]),P=wt((ee,_)=>{let O=ee.findIndex(j=>j.id===_);for(let j=O+1;j<ee.length;j++){let te=ee[j];if(te?.isActive)return te.id}},[]),Re=wt((ee,_)=>{let O=ee.findIndex(j=>j.id===_);for(let j=O-1;j>=0;j--){let te=ee[j];if(te?.isActive)return te.id}},[]),_e=wt(()=>{g(ee=>(h(_=>{let O=ee.find(te=>te.isActive)?.id;return P(ee,_)??O}),ee))},[P]),Y=wt(()=>{g(ee=>(h(_=>{let O=ee.findLast(te=>te.isActive)?.id;return Re(ee,_)??O}),ee))},[Re]);xT(()=>{let ee=i(O=>{!u||y.current===0||(O===WA&&_e(),O===UA&&Y())},"handleTabNavigation");w.current.on("input",ee);let _=w.current;return()=>{_.off("input",ee)}},[u,_e,Y]);let V=wt(()=>{m(!0)},[]),ae=wt(()=>{m(!1)},[]),Q=wt(ee=>{g(_=>(_.some(j=>j?.id===ee)&&h(ee),_))},[]),J=wt((ee,{autoFocus:_})=>{g(O=>(y.current=O.length+1,[...O,{id:ee,isActive:!0}])),_&&h(O=>O??ee)},[]),q=wt(ee=>{h(_=>_===ee?void 0:_),g(_=>{let O=_.filter(j=>j.id!==ee);return y.current=O.length,O})},[]),Ie=wt(ee=>{g(_=>_.map(O=>O.id!==ee?O:{id:ee,isActive:!0}))},[]),ue=wt(ee=>{h(_=>_===ee?void 0:_),g(_=>_.map(O=>O.id!==ee?O:{id:ee,isActive:!1}))},[]);xT(()=>()=>{FA.show(n),F&&x.current>0&&v()},[n,F,v]);let et=gs(()=>({exit:z}),[z]),Ue=gs(()=>({stdin:t,setRawMode:k,isRawModeSupported:F,internal_exitOnCtrlC:a,internal_eventEmitter:w.current}),[t,k,F,a]),De=gs(()=>({stdout:n,write:o}),[n,o]),me=gs(()=>({stderr:r,write:s}),[r,s]),Pt=gs(()=>({setCursorPosition:l}),[l]),Rt=gs(()=>({activeId:p,add:J,remove:q,activate:Ie,deactivate:ue,enableFocus:V,disableFocus:ae,focusNext:_e,focusPrevious:Y,focus:Q}),[p,J,q,Ie,ue,V,ae,_e,Y,Q]);return Xo.createElement(oT.Provider,{value:et},Xo.createElement(sT.Provider,{value:Ue},Xo.createElement(cT.Provider,{value:De},Xo.createElement(uT.Provider,{value:me},Xo.createElement(fT.Provider,{value:Rt},Xo.createElement(pT.Provider,{value:Pt},Xo.createElement(nc,{onError:z},e)))))))}i(wT,"App");wT.displayName="InternalApp";var ST=wT;var GA={disambiguateEscapeCodes:1,reportEventTypes:2,reportAlternateKeys:4,reportAllKeysAsEscapeCodes:8,reportAssociatedText:16};function TT(e){let t=0;for(let n of e)t|=GA[n];return t}i(TT,"resolveFlags");var Or={shift:1,alt:2,ctrl:4,super:8,hyper:16,meta:32,capsLock:64,numLock:128};var Bp=i((e,t)=>(t<0?rn.cursorUp(-t):t>0?rn.cursorDown(t):"")+(e<0?rn.cursorBackward(-e):e>0?rn.cursorForward(e):""),"cursorMoveSeq"),Hp=i((e,t=!1)=>{let n=Math.max(0,e.screen.height-e.viewport.height),r=t?Math.max(0,Math.min(e.viewport.height-1,e.screen.height-1)):Math.max(0,e.viewport.height-1);return o=>({x:o.x,y:Math.min(Math.max(o.y-n,0),r)})},"toVisibleCursor"),Vu=i(()=>{},"noop"),e_=27,t_=91,n_=63,r_=117,o_=48,i_=57,s_=i(e=>e>=o_&&e<=i_,"isDigitByte"),bT=i((e,t)=>{if(e[t]!==e_||e[t+1]!==t_||e[t+2]!==n_)return;let n=t+3,r=n;for(;n<e.length&&s_(e[n]);)n++;if(n!==r){if(n===e.length)return{state:"partial"};if(e[n]===r_)return{state:"complete",endIndex:n}}},"matchKittyQueryResponse"),a_=i(e=>{for(let t=0;t<e.length;t++)if(bT(e,t)?.state==="complete")return!0;return!1},"hasCompleteKittyQueryResponse"),c_=i(e=>{let t=[],n=0;for(;n<e.length;){let r=bT(e,n);if(r?.state==="complete"){n=r.endIndex+1;continue}if(r?.state==="partial")break;t.push(e[n]),n++}return t},"stripKittyQueryResponsesAndTrailingPartial"),Fp=i(e=>e instanceof Error||Object.prototype.toString.call(e)==="[object Error]","isErrorInput"),l_=class{static{i(this,"Ink")}isConcurrent;options;cursorPosition;isScreenReaderEnabled;isUnmounted;isUnmounting;lastOutput;lastOutputToRender;lastOutputHeight;lastTerminalWidth;container;rootNode;fullStaticOutput;exitPromise;exitResult;beforeExitHandler;restoreConsole;unsubscribeResize;throttledOnRender;hasPendingThrottledRender=!1;kittyProtocolEnabled=!1;cancelKittyDetection;altScreenActive=!1;shellMode;mouseTrackingActive=!1;shellTransitionPhase=void 0;cursorHidden=!1;constructor(t){VA(this),this.options=t,this.rootNode=Eu("ink-root"),this.rootNode.onComputeLayout=this.calculateLayout,this.isScreenReaderEnabled=t.isScreenReaderEnabled??Yo.env.INK_SCREEN_READER==="true";let n=t.debug||this.isScreenReaderEnabled,r=t.maxFps??30,o=r>0?Math.max(1,Math.ceil(1e3/r)):0;if(n)this.rootNode.onRender=this.onRender,this.throttledOnRender=void 0;else{let a=KA(this.onRender,o,{leading:!0,trailing:!0});this.rootNode.onRender=()=>{this.hasPendingThrottledRender=!0,a()},this.throttledOnRender=a}this.rootNode.onImmediateRender=this.onRender,this.cellLogUpdate=new Uu({isTTY:!!t.stdout.isTTY}),this.prevFrame=tc(t.stdout.rows??24,t.stdout.columns??80),this.cursorPosition=void 0,this.isUnmounted=!1,this.isUnmounting=!1,this.isConcurrent=t.concurrent??!1,this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.lastTerminalWidth=this.getTerminalWidth(),this.fullStaticOutput="",this.shellMode=t.shellMode??"virtual";let s=t.concurrent?qA:YA;this.container=Ar.createContainer(this.rootNode,s,null,!1,null,"id",()=>{},()=>{},()=>{},()=>{}),this.unsubscribeExit=zA(this.unmount,{alwaysLast:!1}),ku()&&Ar.injectIntoDevTools(),t.patchConsole&&this.patchConsole(),ro||(t.stdout.on("resize",this.resized),this.unsubscribeResize=()=>{t.stdout.off("resize",this.resized)}),this.initKittyKeyboard()}getTerminalWidth=i(()=>this.options.stdout.columns?this.options.stdout.columns:ZA()?.columns??80,"getTerminalWidth");resized=i(()=>{let t=this.getTerminalWidth();if(t<this.lastTerminalWidth){this.returnCursorToRest();let n=this.altScreenActive?this.lastOutputHeight>0?rn.eraseLines(this.lastOutputHeight):"":this.eraseInlineLiveBlock();n.length>0&&this.options.stdout.write(n),this.lastOutput="",this.lastOutputToRender="",this.cellLogUpdate.reset(),this.prevFrame=tc(this.options.stdout.rows??24,t)}this.calculateLayout(),this.onRender(),this.lastTerminalWidth=t},"resized");resolveExitPromise=i(()=>{},"resolveExitPromise");rejectExitPromise=i(()=>{},"rejectExitPromise");unsubscribeExit=i(()=>{},"unsubscribeExit");handleAppExit=i(t=>{if(!(this.isUnmounted||this.isUnmounting)){if(Fp(t)){this.unmount(t);return}this.exitResult=t,this.unmount()}},"handleAppExit");setCursorPosition=i(t=>{if(t===void 0){this.cursorPosition=void 0;return}let n=this.getTerminalWidth(),r=this.options.stdout.rows??24;if(n<=0||r<=0){this.cursorPosition=void 0;return}let o=Math.max(0,Math.min(t.x|0,n-1)),s=Math.max(0,Math.min(t.y|0,r-1));this.cursorPosition={x:o,y:s}},"setCursorPosition");resetOutputTracking=i(()=>{this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.cursorPosition=void 0,this.invalidateCellFrame()},"resetOutputTracking");usesVirtualShellOwnership=i((t={})=>t.altScreenActive??this.altScreenActive,"usesVirtualShellOwnership");beginShellTransition(t){this.shellTransitionPhase=t}setShellMode(t,n){let r=this.shellMode,o=this.mouseTrackingActive,s=this.usesVirtualShellOwnership(),a=n??!1;this.shellMode=t,this.mouseTrackingActive=a;let c=this.usesVirtualShellOwnership();(r!==t&&(s||c)||o!==a&&c)&&this.resetOutputTracking()}setAltScreenActive(t,n){let r=this.altScreenActive,o=this.mouseTrackingActive,s=this.usesVirtualShellOwnership(),a=n??!1;this.altScreenActive=t,this.mouseTrackingActive=a,this.shellTransitionPhase=void 0;let c=this.usesVirtualShellOwnership();(r!==t||o!==a&&(s||c))&&this.resetOutputTracking()}clearTextSelection(){}restoreLastOutput=i(()=>{if(this.prevFrame.screen.height===0)return;let t=tc(this.options.stdout.rows??24,this.getTerminalWidth()),n=this.cellLogUpdate.render(t,this.prevFrame);ju(this.options.stdout,n)},"restoreLastOutput");shouldRestoreManagedShellAfterExternalWrite=i(()=>this.altScreenActive,"shouldRestoreManagedShellAfterExternalWrite");calculateLayout=i(()=>{let t=this.getTerminalWidth();this.rootNode.yogaNode.setWidth(t),this.rootNode.yogaNode.calculateLayout(void 0,void 0,JA.DIRECTION_LTR)},"calculateLayout");onRender=i(()=>{if(this.hasPendingThrottledRender=!1,this.isUnmounted)return;let t=performance.now(),n={rows:this.options.stdout.rows??24,columns:this.getTerminalWidth()},{output:r,outputHeight:o,staticOutput:s,frame:a}=Ap(this.rootNode,this.isScreenReaderEnabled,n);this.options.onRender?.({renderTime:performance.now()-t}),!ro&&!this.options.debug&&!this.isScreenReaderEnabled&&!this.cursorHidden&&(this.options.stdout.write(rn.cursorHide),this.cursorHidden=!0);let c=s&&s!==`
|
|
28
|
+
`;if(this.options.debug){c&&(this.fullStaticOutput+=s),this.options.stdout.write(this.fullStaticOutput+r);return}if(ro){c&&this.options.stdout.write(s),this.lastOutput=r,this.lastOutputToRender=r+`
|
|
29
|
+
`,this.lastOutputHeight=o;return}if(this.isScreenReaderEnabled){let w=$r(this.options.stdout);if(w&&this.options.stdout.write(Pr),c){let A=this.lastOutputHeight>0?rn.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(A+s),this.lastOutputHeight=0}if(r===this.lastOutput&&!c){w&&this.options.stdout.write(ar);return}let T=this.getTerminalWidth(),I=QA(r,T,{trim:!1,hard:!0});if(c)this.options.stdout.write(I);else{let A=this.lastOutputHeight>0?rn.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(A+I)}this.lastOutput=r,this.lastOutputToRender=I,this.lastOutputHeight=I===""?0:I.split(`
|
|
30
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(
|
|
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()),
|
|
33
|
-
`),
|
|
34
|
-
`),c=0,l=0,u=g,m+=1,p?.(h)}}let o=
|
|
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
|
|
31
|
+
`;if(this.lastOutputHeight>=this.options.stdout.rows&&h){if(Yo.env.KODAX_FULLSCREEN_CELLDIFF!=="0"&&this.altScreenActive&&this.fullStaticOutput===""){let I=$r(this.options.stdout);I&&this.options.stdout.write(Pr),this.applyCellFrame(a),I&&this.options.stdout.write(ar),this.lastOutput=r,this.lastOutputToRender=y,this.lastOutputHeight=o;return}let w=$r(this.options.stdout);w&&this.options.stdout.write(Pr);let T=this.fullStaticOutput+y;if(this.altScreenActive){let I=this.lastOutputHeight>0?rn.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(I+T)}else this.options.stdout.write(rn.clearTerminal+this.fullStaticOutput+r);this.lastOutput=r,this.lastOutputToRender=this.altScreenActive?T:y,this.lastOutputHeight=o,this.invalidateCellFrame(),w&&this.options.stdout.write(ar);return}let x=!u&&$r(this.options.stdout);try{if(c?(x&&m(Pr),m(this.eraseInlineLiveBlock()+s),this.invalidateCellFrame(),this.applyCellFrame(a,p),x&&m(ar)):!this.altScreenActive&&this.prevFrame&&this.prevFrame.screen.height!==a.screen.height&&this.lastOutputHeight>0&&o<=this.options.stdout.rows&&this.lastOutputHeight<this.options.stdout.rows?(x&&m(Pr),m(this.eraseInlineLiveBlock()),this.invalidateCellFrame(),this.applyCellFrame(a,p),x&&m(ar)):this.applyCellFrame(a,p),a?.inputCursor){let w=Hp(a,!this.altScreenActive),T=w(a.cursor),I=w(a.inputCursor),A=Bp(I.x-T.x,I.y-T.y);m(A),this.displayCursor=I}}finally{u&&this.flushCursorTxn(u)}this.lastOutput=r,this.lastOutputToRender=y,this.lastOutputHeight=o},"onRender");applyCellFrame=i((t,n=null)=>{let r={cellLogUpdate:this.cellLogUpdate,prevFrame:this.prevFrame,stdout:n??this.options.stdout},o=$r(this.options.stdout),s={altScreen:this.altScreenActive,decstbmSafe:o,synchronized:n?!1:o,inlineBottomAnchored:!this.altScreenActive},a=ZS(r,t,s);return this.prevFrame=r.prevFrame,a},"applyCellFrame");invalidateCellFrame=i(()=>{this.cellLogUpdate.reset(),this.prevFrame=tc(this.options.stdout.rows??24,this.getTerminalWidth())},"invalidateCellFrame");eraseInlineLiveBlock=i(()=>this.lastOutputHeight>0?rn.eraseLines(this.lastOutputHeight):"","eraseInlineLiveBlock");commitInlineScrollback=i(({mode:t,text:n})=>{if(this.altScreenActive||this.isUnmounted)return;let r=[],o=i(c=>{c&&r.push(c)},"emit"),s={write:o};o(this.computeReturnToRestSeq());let a=t==="rebuild"?"\x1B[2J\x1B[3J\x1B[H":this.eraseInlineLiveBlock();o(a+(n??"")),this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.fullStaticOutput="",this.invalidateCellFrame();try{this.calculateLayout();let c={rows:this.options.stdout.rows??24,columns:this.getTerminalWidth()},{output:l,outputHeight:u,frame:m}=Ap(this.rootNode,this.isScreenReaderEnabled,c);if(this.applyCellFrame(m,s),m?.inputCursor){let p=Hp(m,!this.altScreenActive),h=p(m.cursor),g=p(m.inputCursor),y=Bp(g.x-h.x,g.y-h.y);o(y),this.displayCursor=g}this.lastOutput=l,this.lastOutputToRender=l,this.lastOutputHeight=u}finally{this.flushCursorTxn(r)}},"commitInlineScrollback");flushCursorTxn(t){let n=t.join("");if(!n)return;let r=$r(this.options.stdout);this.options.stdout.write(r?Pr+n+ar:n)}render(t){let n=CT.createElement(as.Provider,{value:{isScreenReaderEnabled:this.isScreenReaderEnabled}},CT.createElement(ST,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,exitOnCtrlC:this.options.exitOnCtrlC,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,setCursorPosition:this.setCursorPosition,onExit:this.handleAppExit},t));this.options.concurrent?Ar.updateContainer(n,this.container,null,Vu):(Ar.updateContainerSync(n,this.container,null,Vu),Ar.flushSyncWork())}computeReturnToRestSeq(){if(this.displayCursor&&this.prevFrame){let t=Hp(this.prevFrame,!this.altScreenActive)(this.prevFrame.cursor),n=Bp(t.x-this.displayCursor.x,t.y-this.displayCursor.y);return this.displayCursor=null,n}return""}returnCursorToRest(){let t=this.computeReturnToRestSeq();t&&this.options.stdout.write(t)}writeToStdout(t){if(this.isUnmounted)return;if(this.options.debug){this.options.stdout.write(t+this.fullStaticOutput+this.lastOutput);return}if(ro){this.options.stdout.write(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.options.stdout.write(t),this.invalidateCellFrame();return}let n=$r(this.options.stdout);n&&this.options.stdout.write(Pr),this.returnCursorToRest();let r=this.lastOutputHeight>0?rn.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(r+t),this.restoreLastOutput(),n&&this.options.stdout.write(ar)}writeToStderr(t){if(this.isUnmounted)return;if(this.options.debug){this.options.stderr.write(t),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(ro){this.options.stderr.write(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.options.stderr.write(t),this.invalidateCellFrame();return}let n=$r(this.options.stdout);n&&this.options.stdout.write(Pr),this.returnCursorToRest();let r=this.lastOutputHeight>0?rn.eraseLines(this.lastOutputHeight):"";r.length>0&&this.options.stdout.write(r),this.options.stderr.write(t),this.restoreLastOutput(),n&&this.options.stdout.write(ar)}unmount(t){if(this.isUnmounted||this.isUnmounting)return;this.isUnmounting=!0,this.beforeExitHandler&&(Yo.off("beforeExit",this.beforeExitHandler),this.beforeExitHandler=void 0);let n=this.options.stdout,r=!n.destroyed&&!n.writableEnded&&(n.writable??!0);if(i(u=>{typeof u.flush=="function"&&(r?u.flush():typeof u.cancel=="function"&&u.cancel())},"settleThrottle")(this.throttledOnRender??{}),r&&(!this.throttledOnRender||!this.hasPendingThrottledRender&&this.fullStaticOutput==="")&&(this.calculateLayout(),this.onRender()),this.isUnmounted=!0,this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),this.cancelKittyDetection&&this.cancelKittyDetection(),r){if(this.kittyProtocolEnabled)try{this.options.stdout.write("\x1B[<u")}catch{}ro&&this.options.stdout.write(this.lastOutput+`
|
|
32
|
+
`)}this.kittyProtocolEnabled=!1,this.shellTransitionPhase=void 0,this.options.concurrent?Ar.updateContainer(null,this.container,null,Vu):(Ar.updateContainerSync(null,this.container,null,Vu),Ar.flushSyncWork()),eT.delete(this.options.stdout);let{exitResult:s}=this,a=i(()=>{Fp(t)?this.rejectExitPromise(t):this.resolveExitPromise(s)},"resolveOrReject"),c=t!==void 0&&!Fp(t),l=n._writableState!==void 0||n.writableLength!==void 0;c?a():r&&l?this.options.stdout.write("",a):setImmediate(a)}async waitUntilExit(){return this.exitPromise||=new Promise((t,n)=>{this.resolveExitPromise=t,this.rejectExitPromise=n}),this.beforeExitHandler||(this.beforeExitHandler=()=>{this.unmount()},Yo.once("beforeExit",this.beforeExitHandler)),this.exitPromise}clear(){if(!ro&&!this.options.debug){this.returnCursorToRest();let t=this.altScreenActive?this.lastOutputHeight>0?rn.eraseLines(this.lastOutputHeight):"":this.eraseInlineLiveBlock();t.length>0&&this.options.stdout.write(t),this.invalidateCellFrame()}}patchConsole(){this.options.debug||(this.restoreConsole=XA((t,n)=>{t==="stdout"&&this.writeToStdout(n),t==="stderr"&&(n.startsWith("The above error occurred")||this.writeToStderr(n))}))}initKittyKeyboard(){if(!this.options.kittyKeyboard)return;let t=this.options.kittyKeyboard,n=t.mode??"auto";if(n==="disabled"||!this.options.stdin.isTTY||!this.options.stdout.isTTY)return;let r=t.flags??["disambiguateEscapeCodes"];if(n==="enabled"){this.enableKittyProtocol(r);return}let o=Yo.env.TERM??"",s=Yo.env.TERM_PROGRAM??"",a="KITTY_WINDOW_ID"in Yo.env||o==="xterm-kitty"||s==="WezTerm"||s==="ghostty";!ro&&a&&this.confirmKittySupport(r)}confirmKittySupport(t){let{stdin:n,stdout:r}=this.options,o=[],s=i(()=>{this.cancelKittyDetection=void 0,clearTimeout(c),n.removeListener("data",a);let l=c_(o);o=[],l.length>0&&n.unshift(Buffer.from(l))},"cleanup"),a=i(l=>{let u=typeof l=="string"?Buffer.from(l):l;for(let m of u)o.push(m);a_(o)&&(s(),this.isUnmounted||this.enableKittyProtocol(t))},"onData");n.on("data",a);let c=setTimeout(s,200);this.cancelKittyDetection=s,r.write("\x1B[?u")}enableKittyProtocol(t){this.options.stdout.write(`\x1B[>${TT(t)}u`),this.kittyProtocolEnabled=!0}},vT=l_;var rc=class{static{i(this,"KodaXRenderer")}engineInstance;isConcurrent;constructor(t){this.engineInstance=new vT(t),this.isConcurrent=this.engineInstance.isConcurrent}render=i(t=>{this.engineInstance.render(t)},"render");unmount=i(t=>{this.engineInstance.unmount(t)},"unmount");waitUntilExit=i(()=>this.engineInstance.waitUntilExit(),"waitUntilExit");clear=i(()=>{this.engineInstance.clear()},"clear");setAltScreenActive=i((t,n)=>{this.engineInstance.setAltScreenActive?.(t,n)},"setAltScreenActive");setShellMode=i((t,n)=>{this.engineInstance.setShellMode?.(t,n)},"setShellMode");beginShellTransition=i(t=>{this.engineInstance.beginShellTransition?.(t)},"beginShellTransition");clearTextSelection=i(()=>{this.engineInstance.clearTextSelection?.()},"clearTextSelection");commitInlineScrollback=i(t=>{this.engineInstance.commitInlineScrollback?.(t)},"commitInlineScrollback")};var oo=null;function kT(){if(oo===-1)return null;if(oo!==null)return oo;let e=process.env.KODAX_RENDER_TRACE;if(!e||e==="0"||e==="false")return oo=-1,null;let t=e==="1"||e==="true"?p_(m_(),`kodax-render-trace-${process.pid}.log`):e;try{return oo=d_(t,"a"),IT(oo,`=== KODAX render trace pid=${process.pid} ${new Date().toISOString()} platform=${process.platform} node=${process.version} ===
|
|
33
|
+
`),oo}catch{return oo=-1,null}}i(kT,"resolveTraceFd");function h_(e){let t=kT();if(t!==null)try{IT(t,e)}catch{}}i(h_,"traceLine");var zu=new WeakMap,g_={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},y_={isTTY:!1,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},x_={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function w_(e={}){return e instanceof u_?{stdout:e}:e}i(w_,"getOptions");function S_(e,t,n){let r=zu.get(e);return r?r.isConcurrent!==n&&console.warn(`Warning: render() was called with concurrent: ${n}, but the existing renderer for this stdout uses concurrent: ${r.isConcurrent}. The concurrent option only takes effect on the first render. Call unmount() first if you need to change the rendering mode.`):(r=t(),zu.set(e,r)),r}i(S_,"getInstance");function ys(e){return zu.get(e)}i(ys,"getRendererInstance");function Wp(e,t){let n={stdout:g_,stdin:x_,stderr:y_,debug:!1,exitOnCtrlC:!0,patchConsole:!1,maxFps:30,concurrent:!1,...w_(t)};if(kT()!==null){let s=n.stdout,a=s.write.bind(s),c=0,l=0;s.write=((h,...g)=>(c+=1,l+=typeof h=="string"?Buffer.byteLength(h,"utf8"):h?.length??0,a(h,...g)));let u=0,m=0,p=n.onRender;n.onRender=h=>{let g=f_.now(),y=u===0?0:g-u,x=s,w=x.columns??0,T=x.rows??0;return h_(`frame=${m} renderTime=${h.renderTime.toFixed(2)}ms interval=${y.toFixed(2)}ms writes=${c} bytes=${l} viewport=${w}x${T}
|
|
34
|
+
`),c=0,l=0,u=g,m+=1,p?.(h)}}let o=S_(n.stdout,()=>new rc(n),n.concurrent??!1);return o.render(e),{rerender:o.render,unmount(){o.unmount()},waitUntilExit:o.waitUntilExit,cleanup:i(()=>{zu.delete(n.stdout)},"cleanup"),clear:o.clear}}i(Wp,"render");var RT=An,ET=nn,MT=wp;import{Buffer as C_}from"node:buffer";var b_=/^(?:\x1b)([a-zA-Z0-9])$/,v_=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,_T={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"},LT=[...Object.values(_T),"backspace"],I_=i(e=>["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e),"isShiftKey"),k_=i(e=>["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e),"isCtrlKey"),PT=/^\x1b\[(\d+)(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/,R_=/^\x1b\[(\d+);(\d+):(\d+)([A-Za-z~])$/,E_={A:"up",B:"down",C:"right",D:"left",E:"clear",F:"end",H:"home",P:"f1",Q:"f2",R:"f3",S:"f4"},M_={2:"insert",3:"delete",5:"pageup",6:"pagedown",7:"home",8:"end",11:"f1",12:"f2",13:"f3",14:"f4",15:"f5",17:"f6",18:"f7",19:"f8",20:"f9",21:"f10",23:"f11",24:"f12"},AT={27:"escape",9:"tab",127:"delete",8:"backspace",57358:"capslock",57359:"scrolllock",57360:"numlock",57361:"printscreen",57362:"pause",57363:"menu",57376:"f13",57377:"f14",57378:"f15",57379:"f16",57380:"f17",57381:"f18",57382:"f19",57383:"f20",57384:"f21",57385:"f22",57386:"f23",57387:"f24"},$T=i(e=>e>=0&&e<=1114111&&!(e>=55296&&e<=57343),"isValidCodepoint"),Up=i(e=>$T(e)?String.fromCodePoint(e):"?","safeFromCodePoint");function OT(e){return e===3?"release":e===2?"repeat":"press"}i(OT,"resolveEventType");function DT(e){return{ctrl:!!(e&Or.ctrl),shift:!!(e&Or.shift),meta:!!(e&Or.meta),option:!!(e&Or.alt),super:!!(e&Or.super),hyper:!!(e&Or.hyper),capsLock:!!(e&Or.capsLock),numLock:!!(e&Or.numLock)}}i(DT,"parseKittyModifiers");function A_(e){let t=PT.exec(e);if(!t)return null;let n=Number.parseInt(t[1],10),r=t[2]?Math.max(0,Number.parseInt(t[2],10)-1):0,o=t[3]?Number.parseInt(t[3],10):1,s=t[4];if(!$T(n))return null;let a;s&&(a=s.split(":").map(u=>Up(Number.parseInt(u,10))).join(""));let c,l;return n===32?(c="space",l=!0):n===13?(c="return",l=!0):AT[n]?(c=AT[n],l=!1):n>=1&&n<=26?(c=String.fromCodePoint(n+96),l=!1):(c=Up(n).toLowerCase(),l=!0),l&&!a&&(a=Up(n)),{name:c,...DT(r),eventType:OT(o),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:l,text:a}}i(A_,"parseKittyKeypress");function __(e){let t=R_.exec(e);if(!t)return null;let n=Number.parseInt(t[1],10),r=Math.max(0,Number.parseInt(t[2],10)-1),o=Number.parseInt(t[3],10),s=t[4],a=s==="~"?M_[n]:E_[s];return a?{name:a,...DT(r),eventType:OT(o),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:!1}:null}i(__,"parseKittySpecialKey");var jp="\x1B[200~",L_="\x1B[201~";function P_(e){if(!e.startsWith(jp))return null;let t=e.indexOf(L_,jp.length);return t===-1?null:e.slice(jp.length,t)}i(P_,"extractBracketedPaste");function Gp(e=""){let t=e,n;if(C_.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t="\x1B"+String(t)):t=String(t):t!==void 0&&typeof t!="string"?t=String(t):t||(t=""),typeof t=="string"){let a=P_(t);if(a!==null)return{name:"paste",ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,isPaste:!0,isPrintable:!1,text:a}}let r=A_(t);if(r)return r;let o=__(t);if(o)return o;if(PT.test(t))return{name:"",ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,isKittyProtocol:!0,isPrintable:!1};let s={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t};if(s.sequence=s.sequence||t||s.name,t==="\r"||t==="\x1B\r")s.raw=void 0,s.name="return",s.option=t.length===2;else if(t===`
|
|
35
|
+
`)s.name="enter";else if(t===" ")s.name="tab";else if(t==="\b"||t==="\x1B\b")s.name="backspace",s.meta=t.charAt(0)==="\x1B";else if(t==="\x7F"||t==="\x1B\x7F")s.name="delete",s.meta=t.charAt(0)==="\x1B";else if(t==="\x1B"||t==="\x1B\x1B")s.name="escape",s.meta=t.length===2;else if(t===" "||t==="\x1B ")s.name="space",s.meta=t.length===2;else if(t.length===1&&t<="")s.name=String.fromCharCode(t.charCodeAt(0)+97-1),s.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")s.name="number";else if(t.length===1&&t>="a"&&t<="z")s.name=t;else if(t.length===1&&t>="A"&&t<="Z")s.name=t.toLowerCase(),s.shift=!0;else if(n=b_.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(n[1]??"");else if(n=v_.exec(t)){let a=[...t];a[0]==="\x1B"&&a[1]==="\x1B"&&(s.option=!0);let c=[n[1],n[2],n[4],n[6]].filter(Boolean).join(""),l=Number(n[3]||n[5]||1)-1;s.ctrl=!!(l&4),s.meta=!!(l&10),s.shift=!!(l&1),s.code=c,s.name=_T[c]??"",s.shift=I_(c)||s.shift,s.ctrl=k_(c)||s.ctrl}return s}i(Gp,"parseKeypress");var D_=50;function Yu(e){return{columns:e?.columns??80,rows:e?.rows??24}}i(Yu,"resolveTerminalSize");var io=$_(null),Kp={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")};var FT={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function N_(e){for(let t of e)if(t.rawMode)return!0;return!1}i(N_,"hasRawModeSubscribers");function B_({stdin:e,setRawMode:t,isRawModeSupported:n}){let r=new Set,o,s=!1,a=i(m=>{for(let p of r)p.listener(m)},"handleData"),c=i(()=>{if(s){try{t(!1)}catch{}s=!1}},"disableRawModeIfOwned"),l=i(()=>{o?.off?.("data",a),o=void 0,c()},"detachInput"),u=i(()=>{if(o&&o!==e&&l(),!e||r.size===0){l();return}if(o!==e&&(e.on?.("data",a),o=e),!(n&&N_(r))){c();return}if(e.isRaw===!1&&!s)try{t(!0),s=!0}catch{s=!1}},"syncInputOwnership");return{subscribe(m,p={}){let h={listener:m,rawMode:p.rawMode!==!1};return r.add(h),u(),()=>{r.delete(h),u()}},dispose(){r.clear(),l()}}}i(B_,"createTerminalInputController");var H_=i(({children:e,runtime:t})=>{let[n,r]=O_(()=>t.terminalSize);xs(()=>{if(r(Yu(t.stdout)),typeof t.stdout?.on!="function"||typeof t.stdout?.off!="function")return;let c=i(()=>{r(Yu(t.stdout))},"handleResize");return t.stdout.on("resize",c),()=>{t.stdout.off?.("resize",c)}},[t.stdout]);let o=HT(c=>typeof t.stdout?.write!="function"?!1:(t.stdout.write(c),!0),[t.stdout]),s=NT(()=>B_({stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported}),[t.stdin,t.isRawModeSupported,t.setRawMode]);xs(()=>()=>{s.dispose()},[s]);let a=NT(()=>({stdout:t.stdout,stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported,exit:t.exit,terminalSize:n,isTTY:t.stdout?.isTTY===!0,writeRaw:o,subscribeInput:s.subscribe}),[s.subscribe,t.exit,t.isRawModeSupported,t.setRawMode,t.stdin,t.stdout,s.subscribe,n,o]);return BT(io.Provider,{value:a,children:e})},"TuiRuntimeProvider");function F_(e){let t=e?.stdout??Kp,n=e?.stdin??FT,r=i(s=>{typeof n?.setRawMode=="function"&&n.setRawMode(s)},"setRawMode"),o;return{stdout:t,stdin:n,setRawMode:r,isRawModeSupported:typeof n?.setRawMode=="function",exit:i(()=>{o?.()},"exit"),terminalSize:Yu(t),isTTY:t?.isTTY===!0,writeRaw:i(s=>typeof t?.write!="function"?!1:(t.write(s),!0),"writeRaw"),subscribeInput:i(()=>()=>{},"subscribeInput"),attachExit(s){o=s}}}i(F_,"createRuntimeValue");function qu(e,t){let n=F_(t),r=Wp(BT(H_,{runtime:n,children:e}),t);return n.attachExit(r.unmount),r}i(qu,"render");var R=RT,b=ET,ws=MT;function W_(e){let t={upArrow:e.name==="up",downArrow:e.name==="down",leftArrow:e.name==="left",rightArrow:e.name==="right",pageDown:e.name==="pagedown",pageUp:e.name==="pageup",home:e.name==="home",end:e.name==="end",return:e.name==="return",escape:e.name==="escape",ctrl:e.ctrl,shift:e.shift,tab:e.name==="tab",backspace:e.name==="backspace",delete:e.name==="delete",meta:e.meta||e.name==="escape"||e.option===!0,super:e.super??!1,hyper:e.hyper??!1,capsLock:e.capsLock??!1,numLock:e.numLock??!1,eventType:e.eventType},n="";return e.isKittyProtocol?e.isPrintable?n=e.text??e.name:e.ctrl&&e.name.length===1&&(n=e.name):e.ctrl?n=e.name:n=e.sequence,!e.isKittyProtocol&<.includes(e.name)&&(n=""),n.startsWith("\x1B")&&(n=n.slice(1)),n.length===1&&typeof n[0]=="string"&&/[A-Z]/.test(n[0])&&(t.shift=!0),{input:n,key:t}}i(W_,"createCompatKeypress");function Ju(e,t={}){let{isActive:n=!0}=t,r=Xu(e),o=Xu(null),s=Xu(null);xs(()=>{r.current=e},[e]),xs(()=>{if(!n){o.current=null,s.current&&(clearTimeout(s.current),s.current=null);return}return o.current=Gu(),()=>{o.current?.reset(),o.current=null,s.current&&(clearTimeout(s.current),s.current=null)}},[n]);let a=HT(c=>{let{input:l,key:u}=W_(Gp(c));l==="c"&&u.ctrl||r.current(l,u)},[]);ic(c=>{if(!n)return;s.current&&(clearTimeout(s.current),s.current=null);let l=o.current,u=typeof c=="string"?c:c.toString("utf8"),m=l?.push(u)??[u];for(let p of m)a(p);u.length>0&&(s.current=setTimeout(()=>{let p=o.current?.flushPendingEscape();p&&a(p)},D_))},{isActive:n,rawMode:!0})}i(Ju,"useInput");function cr(){return{stdout:qo(io)?.stdout??Kp}}i(cr,"useStdout");function oc(){let e=qo(io),t=e?.stdin??FT,n=e?.setRawMode??(r=>{typeof t?.setRawMode=="function"&&t.setRawMode(r)});return{stdin:t,setRawMode:n,isRawModeSupported:e?.isRawModeSupported??typeof t?.setRawMode=="function"}}i(oc,"useStdin");function so(){return{exit:qo(io)?.exit??(()=>{})}}i(so,"useApp");function Ss(){return qo(io)?.stdout??Kp}i(Ss,"useTerminalOutput");function Ts(){let e=Ss();return qo(io)?.terminalSize??Yu(e)}i(Ts,"useTerminalSize");function Cs(){let e=Ss();return qo(io)?.writeRaw??(n=>typeof e?.write!="function"?!1:(e.write(n),!0))}i(Cs,"useTerminalWrite");function ic(e,t={}){let{isActive:n=!0,rawMode:r=!0}=t,o=qo(io),{stdin:s,setRawMode:a,isRawModeSupported:c}=oc(),l=Xu(e);xs(()=>{l.current=e},[e]),xs(()=>{if(!n||!s)return;if(o)return o.subscribeInput(h=>{l.current(h)},{rawMode:r});let u=s,m=u.isRaw;r&&c&&m===!1&&a(!0);let p=i(h=>{l.current(h)},"handleData");return u.on?.("data",p),()=>{if(u.off?.("data",p),r&&c&&m===!1)try{a(!1)}catch{}}},[o,s,n,r,c,a])}i(ic,"useTerminalInput");import{jsx as z_}from"react/jsx-runtime";import{useInsertionEffect as X_,useMemo as Y_}from"react";var U_="\x1B[?1049h",j_="\x1B[?1049l";var G_="\x1B[2J",K_="\x1B[?1000h\x1B[?1002h\x1B[?1006h",V_="\x1B[?1006l\x1B[?1002l\x1B[?1000l";function Qu(e={}){let t=e.mouseTracking!==!1,n=e.clearOnEnter===!0;return U_+(n?G_:"")+"\x1B[H"+(t?K_:"")}i(Qu,"buildAlternateScreenEnterSequence");function Zu(e={}){return(e.mouseTracking!==!1?V_:"")+j_}i(Zu,"buildAlternateScreenExitSequence");var Vp=i(({children:e,mouseTracking:t=!0,enabled:n=!0,clearOnEnter:r=!1})=>{let o=Ss(),{rows:s}=Ts(),a=Cs(),c=Y_(()=>n&&o.isTTY===!0,[n,o]);return X_(()=>{if(!c)return;let l=ys(o);if(l?.setShellMode?.("virtual",t),l?.beginShellTransition?.("enter-alt-screen"),!!a(Qu({mouseTracking:t,clearOnEnter:r})))return l?.setAltScreenActive?.(!0,t),()=>{l?.beginShellTransition?.("exit-alt-screen"),l?.clearTextSelection?.(),l?.setAltScreenActive?.(!1),a(Zu({mouseTracking:t}))}},[r,c,t,o,a]),z_(R,{flexDirection:"column",height:s,width:"100%",flexGrow:1,flexShrink:0,children:e})},"AlternateScreen");import{jsx as ao,jsxs as KT}from"react/jsx-runtime";import{jsx as J_}from"react/jsx-runtime";import Q_,{useEffect as zp,useImperativeHandle as Z_,useMemo as eL,useRef as ed,useCallback as ac,useState as tL}from"react";function q_(e,t,n){return Math.max(t,Math.min(e,n))}i(q_,"clamp");function sc(e){let t=Math.max(0,Math.floor(e.overscan??80)),n=Math.max(1,Math.floor(e.quantum??40)),r=Math.max(0,Math.floor(e.viewportHeight)),o=Math.max(0,Math.floor(e.contentHeight)),s=Math.max(0,o-r),a=q_(Math.floor(e.globalScrollTop),0,s),c=Math.floor(a/n),l=c*n,u=Math.max(0,l-t),m=Math.min(o,l+r+t),p=Math.max(0,m-u),h=a-u;return{blockTop:u,blockHeight:p,inBlockOffset:h,bin:c}}i(sc,"computeOverscanWindow");function WT(e,t,n){let r=sc({...n,globalScrollTop:e}),o=sc({...n,globalScrollTop:t});return r.bin===o.bin}i(WT,"staysWithinOverscanBlock");function UT(e){let t=e??void 0;for(;t?.parentNode;)t=t.parentNode;return t&&typeof t.onRender=="function"?(t.onRender(),!0):!1}i(UT,"scheduleRenderFromNode");function jT(e){let t={...e,scrollHeight:Math.max(0,Math.floor(e.scrollHeight)),viewportHeight:Math.max(0,Math.floor(e.viewportHeight)),pendingDelta:Math.floor(e.pendingDelta)};return{...t,scrollTop:td(t,t.scrollTop)}}i(jT,"normalizeScrollSnapshot");function GT(e,t){return e.scrollTop===t.scrollTop&&e.scrollHeight===t.scrollHeight&&e.viewportHeight===t.viewportHeight&&e.pendingDelta===t.pendingDelta&&e.clampMin===t.clampMin&&e.clampMax===t.clampMax&&e.sticky===t.sticky&&e.overscanRows===t.overscanRows}i(GT,"areSnapshotsEqual");function nL(e,t){return e.start===t.start&&e.end===t.end&&e.scrollTop===t.scrollTop&&e.scrollHeight===t.scrollHeight&&e.viewportHeight===t.viewportHeight&&e.viewportTop===t.viewportTop&&e.pendingDelta===t.pendingDelta&&e.sticky===t.sticky&&e.inWindowScrollTop===t.inWindowScrollTop}i(nL,"areWindowsEqual");function td(e,t){let n=Math.max(0,e.scrollHeight-e.viewportHeight),r=e.clampMin??0,o=e.clampMax??n;return Math.max(r,Math.min(Math.floor(t),Math.min(n,o)))}i(td,"clampScrollTop");function Xp(e){let t=Math.max(0,e.viewportHeight),n=td(e,e.scrollTop),r=Math.max(0,e.scrollHeight-n),o=Math.max(0,r-t),s=Math.max(0,Math.floor(e.overscanRows??0));if(s>0&&t>0){let a=sc({globalScrollTop:o,viewportHeight:t,contentHeight:e.scrollHeight,overscan:s});return{start:a.blockTop,end:a.blockTop+a.blockHeight,scrollTop:n,scrollHeight:e.scrollHeight,viewportHeight:t,viewportTop:o,pendingDelta:e.pendingDelta,sticky:e.sticky,inWindowScrollTop:a.inBlockOffset}}return{start:o,end:r,scrollTop:n,scrollHeight:e.scrollHeight,viewportHeight:t,viewportTop:o,pendingDelta:e.pendingDelta,sticky:e.sticky,inWindowScrollTop:0}}i(Xp,"resolveScrollWindow");function rL(e){let t=td(e,e.scrollTop);return Math.max(0,e.scrollHeight-e.viewportHeight-t)}i(rL,"resolveNativeScrollTop");var Yp=i(({children:e,width:t,flexGrow:n=0,flexShrink:r=1,paddingTop:o=0,scrollTop:s=0,scrollHeight:a=0,viewportHeight:c=0,stickyScroll:l=!0,scrollRef:u,onScrollTopChange:m,onStickyChange:p,onWindowChange:h,renderWindow:g,overscanRows:y})=>{let x=ed(null),w=ed(new Set),T=ed(jT({scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,sticky:l,overscanRows:y})),[I,A]=tL(()=>Xp(T.current)),$=ed(null),F=ac(()=>{for(let Y of w.current)Y()},[]),D=ac((Y,V=!0)=>{let ae=T.current,Q=jT(Y),J=Xp(Q);return T.current=Q,A(q=>nL(q,J)?q:J),V&&!GT(ae,Q)&&F(),{previous:ae,snapshot:Q,window:J,changed:!GT(ae,Q)}},[F]),v=ac(Y=>{let V=T.current,ae=Math.max(0,Math.floor(V.overscanRows??0)),Q=x.current;if(ae<=0||!Q||V.viewportHeight<=0)return!1;let J=Math.max(0,V.scrollHeight-V.viewportHeight),q=$.current??td(V,V.scrollTop),Ie=Math.max(0,Math.min(Math.floor(q+Y),J));if(Ie===q)return!0;let ue=Math.max(0,V.scrollHeight-V.viewportHeight-q),et=Math.max(0,V.scrollHeight-V.viewportHeight-Ie),Ue={viewportHeight:V.viewportHeight,contentHeight:V.scrollHeight,overscan:ae};if(!WT(ue,et,Ue))return!1;let De=sc({...Ue,globalScrollTop:et});return Q.scrollTop=et,Q.attributes&&(Q.attributes.inWindowScrollTop=De.inBlockOffset),UT(Q)?($.current=Ie,V.sticky&&(T.current={...T.current,sticky:!1},p?.(!1)),F(),!0):!1},[F,p]),z=ac(Y=>{let V=x.current;V&&T.current.overscanRows&&(V.scrollTop=Y.viewportTop)},[]);zp(()=>{let Y=T.current,V={scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,clampMin:Y.clampMin,clampMax:Y.clampMax,sticky:l,overscanRows:y},ae=D(V);ae.previous.sticky!==l&&p?.(l),ae.window.scrollTop!==s&&m?.(ae.window.scrollTop)},[D,p,m,y,a,s,l,c]);let fe=ac(()=>{let Y=x.current;if(!Y)return;$.current=null;let V=typeof Y.scrollHeight=="number"?Math.max(0,Math.floor(Y.scrollHeight)):void 0,ae=typeof Y.scrollViewportHeight=="number"?Math.max(0,Math.floor(Y.scrollViewportHeight)):void 0,Q=typeof Y.scrollViewportTop=="number"?Math.max(0,Math.floor(Y.scrollViewportTop)):void 0;if(V===void 0||ae===void 0||Q===void 0)return;let J=Math.max(0,V-ae-Q),q=D({...T.current,scrollTop:J,scrollHeight:V,viewportHeight:ae});q.changed&&q.window.scrollTop!==q.previous.scrollTop&&m?.(q.window.scrollTop)},[D,m]);zp(()=>{fe()},[fe]);let se=eL(()=>({scrollTo(Y){$.current=null;let V=D({...T.current,scrollTop:Y,pendingDelta:0,sticky:!1});V.previous.sticky!==!1&&p?.(!1),z(V.window),m?.(V.window.scrollTop)},scrollBy(Y){if(v(Y))return;let V=$.current??T.current.scrollTop;$.current=null;let ae=D({...T.current,scrollTop:V+Y,pendingDelta:T.current.pendingDelta+Math.floor(Y),sticky:!1});ae.previous.sticky!==!1&&p?.(!1),z(ae.window),m?.(ae.window.scrollTop)},scrollToElement(Y,V=0){$.current=null;let ae=D({...T.current,scrollTop:Y-V,pendingDelta:0,sticky:!1});ae.previous.sticky!==!1&&p?.(!1),z(ae.window),m?.(ae.window.scrollTop)},scrollToBottom(){$.current=null;let Y=D({...T.current,scrollTop:0,pendingDelta:0,sticky:!0});z(Y.window),m?.(Y.window.scrollTop),Y.previous.sticky!==!0&&p?.(!0)},getScrollTop(){return $.current??T.current.scrollTop},getPendingDelta(){return T.current.pendingDelta},getScrollHeight(){return x.current?.scrollHeight??T.current.scrollHeight},getViewportHeight(){return x.current?.scrollViewportHeight??I.viewportHeight},getViewportTop(){return x.current?.scrollViewportTop??I.viewportTop},isSticky(){return T.current.sticky},subscribe(Y){return w.current.add(Y),()=>{w.current.delete(Y)}},setClampBounds(Y,V){$.current=null;let ae=D({...T.current,clampMin:Y,clampMax:V});z(ae.window),ae.window.scrollTop!==ae.previous.scrollTop&&m?.(ae.window.scrollTop)}}),[D,m,p,v,z]);Z_(u,()=>se,[se]),zp(()=>{h?.(I)},[h,I]);let ge=$.current!==null,L=ge?{...T.current,scrollTop:$.current}:T.current,k=ge?Xp(L):I,P=g?g(k):e,Re=Math.max(0,c+o),_e=rL(L);return Q_.createElement("ink-box",{ref:x,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:n,flexShrink:r,width:t,height:Re,paddingTop:o,overflowX:"visible",overflowY:"scroll"},scrollTop:_e,scrollHeight:T.current.scrollHeight,scrollViewportHeight:T.current.viewportHeight,scrollViewportTop:k.viewportTop,pendingScrollDelta:T.current.pendingDelta,virtualScrollWindowed:!!g,...T.current.overscanRows?{inWindowScrollTop:k.inWindowScrollTop}:{},...T.current.clampMin!==void 0?{scrollClampMin:T.current.clampMin}:{},...T.current.clampMax!==void 0?{scrollClampMax:T.current.clampMax}:{},...l?{stickyScroll:!0}:{}},J_(R,{flexDirection:"column",flexGrow:1,flexShrink:0,width:"100%",children:P}))},"ScrollBox");var oL=80;function cc(e){if(!(!e?.visible||!e.label))return e.hint?`${e.label}: ${e.hint}`:e.label}i(cc,"resolveFullscreenChromeSlotText");function nd(e,t){if(!e)return 0;let n=Math.max(1,(typeof t=="number"?t:oL)-2);return Math.max(1,tn(e.split(`
|
|
36
|
+
`),n,0,0).visualLines.length)}i(nd,"measureFullscreenChromeSlotRows");var qp=i(({top:e,topRows:t=0,scrollable:n,renderScrollableWindow:r,bottom:o,overlay:s,stickyHeader:a,jumpToLatest:c,width:l,scrollTop:u=0,scrollHeight:m=0,viewportHeight:p=0,stickyScroll:h=!0,scrollRef:g,onScrollTopChange:y,onStickyChange:x,onWindowChange:w,overscanRows:T})=>{let I=i((se,ge)=>ge?ao(R,{paddingX:1,children:ao(b,{dimColor:se?.tone!=="accent",children:ge})}):null,"renderChromeSlot"),A=cc(a),$=cc(c),F=nd(A,l),D=I(a,A),v=s?null:I(c,$),z=Math.max(0,e?t:0),fe=Math.max(0,p-F-z);return KT(R,{flexDirection:"column",width:l,flexGrow:1,flexShrink:0,children:[e?ao(R,{flexDirection:"column",flexShrink:0,children:e}):null,KT(R,{flexDirection:"column",flexGrow:1,overflowY:"hidden",children:[ao(Yp,{width:l,flexGrow:1,flexShrink:1,paddingTop:F,scrollTop:u,scrollHeight:m,viewportHeight:fe,stickyScroll:h,scrollRef:g,onScrollTopChange:y,onStickyChange:x,onWindowChange:w,renderWindow:r,overscanRows:T,children:n}),D?ao(R,{position:"absolute",top:0,left:0,right:0,flexDirection:"column",children:D}):null,v?ao(R,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:v}):null,s?ao(R,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:s}):null]}),ao(R,{flexDirection:"column",flexShrink:0,children:o})]})},"FullscreenLayout");import sL from"string-width";function aL(){return Ts().columns}i(aL,"useTerminalWidth");var Jp=i(({lines:e,cursorRow:t,cursorCol:n,prompt:r=">",placeholder:o="Type your message...",focus:s=!0,terminalFocused:a=!0,isPasting:c=!1,editingMode:l="idle",theme:u="dark",width:m})=>{let p=rd(()=>re(u),[u]),h=aL(),g=m??h,y=sL(r)+1,x=rd(()=>{let F=Math.max(20,g-y);return tn(e,F,t,n)},[e,g,t,n,y]),w=rd(()=>{if(!x)return null;let[F,D]=gp(x,[t,n]);return{row:F,col:D}},[x,t,n]),T=s&&a,I=c&&e.some(F=>F.length>0),A=x,$=w;return _n(R,{flexDirection:"column",borderStyle:"round",borderColor:p.colors.dim,borderTop:!0,borderBottom:!0,borderLeft:!1,borderRight:!1,width:m??"100%",children:[I?on(R,{children:on(b,{dimColor:!0,children:l==="pasting"?"Pasting input...":"Editing input..."})}):null,A.visualLines.length===0||A.visualLines.length===1&&A.visualLines[0]===""?_n(R,{children:[_n(b,{color:p.colors.primary,children:[r," "]}),T?_n(iL,{children:[on(b,{internal_cursorAnchor:!0,backgroundColor:p.colors.primary,color:"#000000",children:" "}),on(b,{dimColor:!0,children:o})]}):on(b,{dimColor:!0,children:o})]}):A.visualLines.map((F,D)=>{let v=D===$.row,z=D===0?r:" ".repeat(y-1);if(v&&T){let{before:fe,current:se,after:ge}=sS(F,$.col),L=se||" ";return _n(R,{children:[_n(b,{color:p.colors.primary,children:[z," "]}),on(b,{color:p.colors.text,children:fe}),on(b,{internal_cursorAnchor:!0,backgroundColor:p.colors.primary,color:"#000000",children:L}),on(b,{color:p.colors.text,children:ge})]},D)}return _n(R,{children:[_n(b,{color:p.colors.dim,children:[z," "]}),on(b,{color:p.colors.text,children:F})]},D)})]})},"TextInput"),cL=i(({value:e,cursorCol:t,prompt:n=">",placeholder:r,focus:o=!0,theme:s="dark"})=>{let a=rd(()=>re(s),[s]);if(!e)return _n(R,{children:[_n(b,{color:a.colors.primary,children:[n," "]}),r&&on(b,{dimColor:!0,children:r}),o&&on(b,{backgroundColor:a.colors.primary,color:"#000000",children:" "})]});let c=en(e),l=c.slice(0,t).join(""),u=c[t]??" ",m=c.slice(t+1).join("");return _n(R,{children:[_n(b,{color:a.colors.primary,children:[n," "]}),on(b,{color:a.colors.text,children:l}),on(b,{backgroundColor:a.colors.primary,color:"#000000",children:u}),on(b,{color:a.colors.text,children:m})]})},"SingleLineTextInput");var Qp={"[A":{name:"up"},"[B":{name:"down"},"[C":{name:"right"},"[D":{name:"left"},"[200~":{name:"paste_start"},"[201~":{name:"paste_end"},"[Z":{name:"tab",shift:!0},"[1;2A":{name:"up",shift:!0},"[1;2B":{name:"down",shift:!0},"[1;2C":{name:"right",shift:!0},"[1;2D":{name:"left",shift:!0},"[13;2u":{name:"return",shift:!0},"[13;3u":{name:"return",meta:!0},"[13;5u":{name:"return",ctrl:!0},"[H":{name:"home"},"[F":{name:"end"},"[1~":{name:"home"},"[4~":{name:"end"},"[7~":{name:"home"},"[8~":{name:"end"},"[2~":{name:"insert"},"[3~":{name:"delete"},"[5~":{name:"pageup"},"[6~":{name:"pagedown"},"[11~":{name:"f1"},"[12~":{name:"f2"},"[13~":{name:"f3"},"[14~":{name:"f4"},"[15~":{name:"f5"},"[17~":{name:"f6"},"[18~":{name:"f7"},"[19~":{name:"f8"},"[20~":{name:"f9"},"[21~":{name:"f10"},"[23~":{name:"f11"},"[24~":{name:"f12"},OP:{name:"f1"},OQ:{name:"f2"},OR:{name:"f3"},OS:{name:"f4"},OA:{name:"up"},OB:{name:"down"},OC:{name:"right"},OD:{name:"left"},OH:{name:"home"},OF:{name:"end"}},lL=/^\x1b\[([0-9]+);?([0-9]+)?([~A-Za-z])?/,uL=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/;function dL(e){switch(e&3){case 0:return"left";case 1:return"middle";case 2:return"right";default:return"unknown"}}i(dL,"parseMouseButton");function fL(e){return{shift:(e&1)!==0,alt:(e&2)!==0,ctrl:(e&4)!==0,meta:(e&8)!==0}}i(fL,"parseModifier");function od(e,t=!1){let n={name:"",sequence:e,ctrl:!1,meta:!1,shift:!1,insertable:!1,isPasted:!1};if(!e||e.length===0)return n;let r=e.match(uL);if(r){let[,o,s,a,c]=r,l=Number(o),u=Number(s),m=Number(a),p=l&28;return n.shift=(p&4)!==0,n.meta=(p&8)!==0,n.ctrl=(p&16)!==0,l===64?(n.name="wheelup",n.mouse={action:"wheel",button:"wheelup",row:m,column:u},n):l===65?(n.name="wheeldown",n.mouse={action:"wheel",button:"wheeldown",row:m,column:u},n):(n.name="mouse",n.mouse={action:c==="m"?"release":(l&32)!==0?"drag":"press",button:dL(l),row:m,column:u},n)}if(e===`\r
|
|
37
37
|
`)return n.name="newline",n;if(e==="\r")return n.name=t?"newline":"return",n;if(e===`
|
|
38
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(
|
|
39
|
+
`)return n.name=e==="\x1B\r"?"return":"enter",n.shift=!0,n;if(e==="\x1B"||e==="\x1B\x1B")return n.name="escape",n.meta=e.length===2,n;if(e===" "||e==="\x1B ")return n.name="space",n.meta=e.length===2,n.insertable=!n.meta,n;if(e.length===1&&e.charCodeAt(0)<=26)return n.name=String.fromCharCode(e.charCodeAt(0)+96),n.ctrl=!0,n;if(e.length===1&&e>="0"&&e<="9"||e.length===1&&e>="a"&&e<="z")return n.name=e,n.insertable=!0,n;if(e.length===1&&e>="A"&&e<="Z")return n.name=e.toLowerCase(),n.shift=!0,n.insertable=!0,n;if(e.length===1&&e.charCodeAt(0)>=32)return n.name=e,n.insertable=!0,n;if(e.startsWith("\x1B")){let o=e.slice(1);if(o.length===1)return n.meta=!0,o>="a"&&o<="z"?(n.name=o,n.insertable=!0):o>="A"&&o<="Z"?(n.name=o.toLowerCase(),n.shift=!0,n.insertable=!0):o.charCodeAt(0)>=32&&(n.name=o,n.insertable=!0),n;let s=e.match(lL);if(s){let[,l,u,m]=s,p=m||"~",g=Qp[o];if(g)return Object.assign(n,g),n;let y="["+l+p+"]",x=Qp[y];if(x&&x.name){if(n.name=x.name,u){let w=parseInt(u,10)-1,T=fL(w);Object.assign(n,T)}return n}}let c=Qp[o];if(c)return Object.assign(n,c),n;if(e.startsWith("\x1B\x1B")){n.meta=!0;let l="\x1B"+e.slice(2),u=od(l);return n.name=u.name,n}}return n}i(od,"parseKeypress");var lc=class{static{i(this,"KeypressParser")}buffer="";listeners=[];flushing=!1;inBracketedPaste=!1;pasteAccumulator="";onKeypress(t){return this.listeners.push(t),()=>{let n=this.listeners.indexOf(t);n>=0&&this.listeners.splice(n,1)}}feed(t,n=!1){let r=typeof t=="string"?t:t.toString("utf8");this.buffer+=r,this.flushing=n,this.processBuffer()}processBuffer(){for(;this.buffer.length>0;){let t=this.extractNextSequence();if(!t){if(this.flushing&&this.buffer.length>0){let s=this.buffer;this.buffer="";let a=od(s,this.inBracketedPaste);this.emit(a)}break}let{sequence:n,remaining:r}=t;this.buffer=r;let o=od(n,this.inBracketedPaste);if(o.name==="paste_start"){this.inBracketedPaste=!0,this.pasteAccumulator="";continue}if(o.name==="paste_end"){this.inBracketedPaste=!1,this.flushPasteAccumulator();continue}this.emit(o)}}flushPasteAccumulator(){if(this.pasteAccumulator.length===0)return;let t={name:"paste",sequence:this.pasteAccumulator,ctrl:!1,meta:!1,shift:!1,insertable:!0,isPasted:!0};this.pasteAccumulator="";for(let n of this.listeners)n(t)}extractNextSequence(){if(this.buffer.length===0)return null;let t=this.buffer[0];if(t!=="\x1B")return t==="\r"&&this.buffer.length>=2&&this.buffer[1]===`
|
|
40
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(
|
|
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=
|
|
44
|
-
`):""}i(xc,"extractTextContent");function
|
|
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
|
|
41
|
+
`;return}return}for(let n of this.listeners)n(t)}clear(){this.buffer=""}};function VT(e){return["up","down","left","right","home","end","insert","delete","pageup","pagedown","wheelup","wheeldown","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","tab","return","enter","backspace","escape"].includes(e.name)}i(VT,"isFunctionKey");function mL(e){return e.ctrl||e.meta||VT(e)?!1:e.sequence.length===1&&e.sequence.charCodeAt(0)>=32}i(mL,"isPrintable");function pL(e){let t=[];return e.ctrl&&t.push("Ctrl"),e.meta&&t.push("Alt"),e.shift&&t.push("Shift"),e.name?t.push(e.name.toUpperCase()):e.sequence&&t.push(e.sequence),t.join("+")}i(pL,"getKeyDisplayName");var gn;(function(e){e.Idle="idle",e.Responding="responding",e.WaitingForConfirmation="waiting_for_confirmation"})(gn||(gn={}));var N;(function(e){e.Scheduled="scheduled",e.Validating="validating",e.AwaitingApproval="awaiting_approval",e.Executing="executing",e.Success="success",e.Error="error",e.Cancelled="cancelled"})(N||(N={}));var IK={[N.Scheduled]:"\u25CB",[N.Validating]:"\u25CC",[N.AwaitingApproval]:"?",[N.Executing]:"\u25CB",[N.Success]:"\u2713",[N.Error]:"\u2717",[N.Cancelled]:"-"},zt;(function(e){e[e.Low=-100]="Low",e[e.Normal=0]="Normal",e[e.High=100]="High",e[e.Critical=200]="Critical"})(zt||(zt={}));var Zp={streamingState:gn.Idle,currentResponse:"",history:[],pendingToolCalls:[],sessionId:"",provider:"",model:"",isLoading:!1};import hL,{createContext as gL,useContext as yL,useEffect as zT,useCallback as xL,useRef as eh}from"react";var wL=50;function th(){let e=new Map,t=null,n=i(()=>(t===null&&(t=[...e.keys()].sort((r,o)=>o-r)),t),"getSortedPriorities");return{register(r,o){return e.has(r)||e.set(r,[]),e.get(r).push(o),t=null,()=>{let s=e.get(r);if(!s)return;let a=s.indexOf(o);a>=0&&s.splice(a,1),s.length===0&&e.delete(r),t=null}},dispatch(r){let o=n();for(let s of o){let a=e.get(s);if(a)for(let c=a.length-1;c>=0;c-=1){let l=a[c];if(l&&l(r)===!0)return!0}}return!1},size(){let r=0;for(let o of e.values())r+=o.length;return r}}}i(th,"createKeypressManager");var XT=gL(null);function id({children:e,enabled:t=!0}){let{stdout:n}=cr(),r=eh(th()),o=eh(null),s=eh(null),a=xL(c=>{t&&r.current.dispatch(c)},[t]);return zT(()=>{if(!t)return;n?.write?.("\x1B[?2004h");let c=new lc;o.current=c;let l=c.onKeypress(a);return()=>{s.current&&(clearTimeout(s.current),s.current=null),l(),o.current=null;try{n?.write?.("\x1B[?2004l")}catch{}}},[a,t,n]),ic(c=>{t&&(s.current&&clearTimeout(s.current),o.current?.feed(c),c.length!==0&&(s.current=setTimeout(()=>{o.current?.feed("",!0)},wL)))},{isActive:t,rawMode:!0}),hL.createElement(XT.Provider,{value:r.current},e)}i(id,"KeypressProvider");function nh(){let e=yL(XT);if(!e)throw new Error("useKeypressManager must be used within a KeypressProvider");return e}i(nh,"useKeypressManager");function yn(e,t,n=[]){let r=nh(),o=typeof e=="function",s,a,c;if(o){s=e;let l=t??{};c=l.isActive??!0;let u=l.priority;a=typeof u=="boolean"?u?zt.High:zt.Normal:u??zt.Normal}else a=typeof e=="boolean"?e?zt.High:zt.Normal:e,s=t,c=!0;zT(()=>c?r.register(a,s):void 0,[r,a,c,...o?[]:n])}i(yn,"useKeypress");function Ln(e){return t=>!(e.name!==void 0&&t.name!==e.name||e.ctrl!==void 0&&t.ctrl!==e.ctrl||e.meta!==void 0&&t.meta!==e.meta||e.shift!==void 0&&t.shift!==e.shift||e.sequence!==void 0&&t.sequence!==e.sequence||e.insertable!==void 0&&t.insertable!==e.insertable)}i(Ln,"createKeyMatcher");var YT={isEnter:Ln({name:"return"}),isEscape:Ln({name:"escape"}),isCtrlC:Ln({name:"c",ctrl:!0}),isCtrlD:Ln({name:"d",ctrl:!0}),isUp:Ln({name:"up"}),isDown:Ln({name:"down"}),isLeft:Ln({name:"left"}),isRight:Ln({name:"right"}),isBackspace:Ln({name:"backspace"}),isDelete:Ln({name:"delete"}),isTab:Ln({name:"tab"}),isShiftEnter:i(e=>e.name==="return"&&e.shift===!0,"isShiftEnter"),isCtrlEnter:i(e=>e.name==="return"&&e.ctrl===!0,"isCtrlEnter"),isInsertable:i(e=>e.insertable===!0&&!e.ctrl&&!e.meta,"isInsertable")};var uc=["plan","accept-edits","auto","auto-in-project"];function sn(e){return e==="auto"||e==="auto-in-project"}i(sn,"isAutoMode");function bs(e){switch(e){case"plan":return"Plan";case"accept-edits":return"Edits";case"auto":case"auto-in-project":return"Auto"}}i(bs,"permissionModeDisplayName");var SL='[deprecated] permissionMode "auto-in-project" is now an alias for "auto" (FEATURE_092, v0.7.33). The alias will be removed in v0.7.38 \u2014 please update ~/.kodax/config.json to use "auto".';function sd(e=console.warn){let t=!1;return()=>{t||(t=!0,e(SL))}}i(sd,"createAutoInProjectDeprecationEmitter");var qT=Nw(),Pn=new Set(qT.filter(e=>e.sideEffect==="mutates-fs"&&e.requiredParams.includes("path")).map(e=>e.name)),JT=new Set(qT.filter(e=>e.sideEffect!=="readonly").map(e=>e.name)),QT=new Set(["npm install","npm i","npm uninstall","npm remove","npm update","npm ci","yarn add","yarn remove","yarn upgrade","pnpm add","pnpm remove","pnpm update","git clean","git reset","git checkout","git switch","git merge","git rebase","git cherry-pick","git revert","git commit","git push","git pull","rm","mv","cp","mkdir","rmdir","touch","chmod","chown","del","erase","rd","copy","move","ren","curl","wget","dd","tar","kill","pkill","killall"]),ZT=new Set(["ls","cat","pwd","echo","whoami","date","which","whereis","tree","dir","type","get-childitem","get-content","select-string","get-location","where","grep","find","awk","sed","head","tail","less","more","wc","findstr","fc","git status","git diff","git log","git show","git branch","git remote","git ls-files","git rev-parse","git grep","git tag","git stash list","git describe","git config --get","node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc"]);function Jo(e){switch(e){case"plan":return new Set(["bash","write","edit","undo"]);case"accept-edits":return new Set(["bash"]);case"auto":case"auto-in-project":return new Set}}i(Jo,"computeConfirmTools");function rh(e){return e!==void 0&&uc.includes(e)}i(rh,"isPermissionMode");function lr(e,t){return rh(e)?e:t}i(lr,"normalizePermissionMode");import ad from"fs";import vt from"path";import fc from"os";var fC=WE(lC(),1);var uC=new Set(["/dev/null","nul","NUL"]);function ah(e){return uC.has(e)||uC.has(e.toLowerCase())}i(ah,"isNullDevice");function dc(e){let t=e.trim();if(!t)return{statements:[],unparseable:!1};if(t.includes("`"))return{statements:[],unparseable:!0};let n;try{n=(0,fC.parse)(t)}catch{return{statements:[],unparseable:!0}}let r=[],o=[],s=[],a=[],c=null,l=!1,u=i(()=>{(s.length>0||a.length>0)&&(o.push({argv:s,redirections:a}),s=[],a=[])},"flushStage"),m=i(p=>{u(),o.length>0&&(r.push({precedingOp:c,stages:o}),o=[]),c=p},"flushStatement");for(let p=0;p<n.length;p+=1){let h=n[p];if(typeof h=="string"){s.push(h);continue}if("op"in h){let g=h.op;if(g==="&&"||g==="||"||g===";"){m(g);continue}if(g==="|"){u();continue}if(g==="&"){let y=n[p+1];if(y!==void 0&&typeof y!="string"&&"op"in y&&(y.op===">"||y.op===">>")){let x=n[p+2];if(typeof x!="string"){l=!0,p+=1;continue}a.push(dC(`&${y.op}`,x)),p+=2;continue}l=!0;continue}if(AL(g)){let y=null,x=s[s.length-1];x!==void 0&&/^[0-9]+$/.test(x)&&(y=x,s.pop());let w=n[p+1];if(typeof w!="string"){l=!0;continue}a.push(dC(y?`${y}${g}`:g,w)),p+=1;continue}if(g==="glob"){let y=h.pattern;typeof y=="string"?s.push(y):l=!0;continue}l=!0;continue}if("comment"in h)break;l=!0}return m(null),{statements:r,unparseable:l}}i(dc,"parseBashCommand");var ML=new Set([">",">>","<","<<","<<<","&>","&>>"]),mC=/^([0-9]+|&)(>>?|<<?)$/;function AL(e){return ML.has(e)||mC.test(e)}i(AL,"isRedirectionOp");function dC(e,t){let n=null,r=e,o=mC.exec(e);return o&&(n=o[1],r=o[2]),{op:e,fd:n,append:r===">>"||e==="&>>",input:r==="<"||r==="<<"||e==="<<<",target:t}}i(dC,"parseRedirection");var _L=vt.join(".agent","plan_mode_doc.md"),cd=new Map,ld=null;function LL(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\s+/g," ").toLowerCase();for(let n of ZT)if(t===n||t.startsWith(n+" ")){if(n==="sed"&&t.split(/\s+/).some(s=>s.startsWith("-i")||s==="--in-place"))return!1;if(n==="awk"){let o=t.split(/\s+/);if(o.includes("-f")||o.includes("--file"))return!1}if(["node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc","ruby","perl"].includes(n)){let o=t.split(/\s+/).slice(1);if(o.length>0&&!o.every(s=>/^(-v|--version|-h|--help)$/.test(s)))return!1}return!0}return!1}i(LL,"isSingleBashReadCommand");var PL=/^[a-zA-Z0-9]+$/;function $L(e){let t=e.trim();if(!t.endsWith("--help")||t.includes('"')||t.includes("'"))return!1;let n=!1;for(let r of t.split(/\s+/))if(r.startsWith("-"))if(r==="--help")n=!0;else return!1;else if(!PL.test(r))return!1;return n}i($L,"isHelpCommand");function zn(e){if(!e||!e.trim())return!1;if($L(e))return!0;let t=e.trim().replace(/\\\r?\n/g," "),n=dc(t);if(n.unparseable||n.statements.length===0)return!1;let r=n.statements.length>1||(n.statements[0]?.stages.length??0)>1;for(let o of n.statements){if(o.precedingOp!==null&&o.precedingOp!=="&&")return!1;for(let s of o.stages){for(let c of s.redirections)if(c.input||!ah(c.target))return!1;let a=s.argv.join(" ");if(a&&!(r&&s.argv[0]?.toLowerCase()==="cd"&&s.argv.length>=2)&&!LL(a))return!1}}return!0}i(zn,"isBashReadCommand");function lh(e){let t=e.trim();return t?zn(t)?null:"[Blocked] Direct !command execution only supports safe read-only commands. Use the bash tool for commands that write files, invoke shells, or require confirmation.":"[Shell: No command provided]"}i(lh,"getDirectShellBypassBlockReason");var hC=new Set(["remove-item","set-content","add-content","out-file","new-item","copy-item","move-item","rename-item","ni"]);function Xn(e){if(!e||!e.trim())return!1;let t=dc(e);if(t.unparseable)return!1;for(let n of t.statements)for(let r of n.stages){let o=r.argv.map(s=>s.toLowerCase());if(o.length>0){let s=o[0],a=o.length>=2?`${o[0]} ${o[1]}`:null;for(let c of QT)if(c===s||a!==null&&c===a)return!0}for(let s of o)if(hC.has(s))return!0;for(let s of r.redirections)if(!s.input&&!ah(s.target))return!0}return!1}i(Xn,"isBashWriteCommand");function uh(e){let t=e.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\((.+)\)$/);return t?{tool:t[1].toLowerCase(),pattern:t[2]}:{tool:e.toLowerCase(),pattern:null}}i(uh,"parseAllowedToolPattern");function OL(e,t){if(t==="*")return!1;if(t.endsWith(":*")){let n=t.slice(0,-2);return e.startsWith(n)}return e===t}i(OL,"matchesBashPatternLegacy");function DL(e,t){if(t==="*")return!1;if(t.endsWith(":*")){let n=t.slice(0,-2);return e===n}return e===t}i(DL,"matchesBashPatternByExtractedPrefix");async function co(e,t,n,r,o){if(e.toLowerCase()!=="bash")return!1;let s=t.command??"",a=[];for(let c of n){let l=uh(c);if(l.tool==="bash"){if(l.pattern===null)return!0;a.push({pattern:l.pattern})}}if(a.length===0)return!1;if(r){let c;try{c=await r.extract(s,o)}catch{return!1}if(c.kind!=="prefix")return!1;for(let{pattern:l}of a)if(l&&DL(c.value,l))return!0;return!1}for(let{pattern:c}of a)if(c&&OL(s,c))return!0;return!1}i(co,"isToolCallAllowed");function dd(e,t,n){if(e.toLowerCase()!=="bash")return"";let r=t.command??"",o=r.split(" ");return o.length>1?`Bash(${o.slice(0,2).join(" ")}:*)`:`Bash(${r})`}i(dd,"generateSavePattern");function ur(e,t){try{let n=vt.resolve(e),r=vt.resolve(t),o=Ki(),s=vt.join(r,".kodax");return vs(n,s)||vs(n,o)?!0:!(vs(n,r)||xC().some(c=>vs(n,c)))}catch{return!1}}i(ur,"isAlwaysConfirmPath");function pC(e){return!e||e.startsWith("-")?!1:/^\.\.?[/\\]/.test(e)||e.startsWith("~/")||e.startsWith("~\\")||/^[a-zA-Z]:[/\\]/.test(e)?!0:e.startsWith("/")&&e.length>1?!(process.platform==="win32"&&NL.test(e)):!!(e.startsWith(".")&&/[/\\]/.test(e))}i(pC,"looksLikePath");var NL=/^\/[A-Za-z][A-Za-z0-9]*(?::[A-Za-z0-9]+)?$/;function BL(e){let t=[],n=/["']([^"']+)["']/g,r;for(;(r=n.exec(e))!==null;)t.push(r[1]);let o=/(?:^|\s)(\.\.?\/[^\s]+|\.\.?\\[^\s]+|[a-zA-Z]:\\[^\s]+|~\/[^\s]+|\.[^\s]*[/\\][^\s]*)/g;for(;(r=o.exec(e))!==null;)t.push(r[1]);return t}i(BL,"legacyRegexPathScan");function fd(e){let t=new Set,n=dc(e);if(!n.unparseable)for(let r of n.statements)for(let o of r.stages){for(let s of o.argv)pC(s)&&t.add(s);for(let s of o.redirections)pC(s.target)&&t.add(s.target)}for(let r of BL(e))t.add(r);return Array.from(t)}i(fd,"extractPathsFromCommand");function dh(e,t){let n=fd(e);for(let r of n)if(ur(r,t))return!0;return!1}i(dh,"isCommandOnProtectedPath");function ud(e){let t=vt.normalize(e);return process.platform==="win32"?t.toLowerCase():t}i(ud,"normalizePathForComparison");function HL(e,t){return ud(e)===ud(t)}i(HL,"pathsEqual");function vs(e,t){let n=ud(e),r=ud(t);return n===r||n.startsWith(r+vt.sep)}i(vs,"isPathInsideDirectory");function md(e,t){try{let n=vt.resolve(t),r=vt.resolve(n,yC(gC(e)));return vs(r,n)}catch{return!1}}i(md,"isPathInsideProject");function FL(e){let t=e.match(/[A-Za-z]:[\\/][^\s;|&<>(){}'"]+|\/[^\s;|&<>(){}'"]+/g);return t?t.filter(n=>!/^(?:\/dev\/|\/proc\/)/i.test(n)):[]}i(FL,"collectAbsolutePathCandidates");function fh(e){let t=vt.resolve(e),n=cd.get(t);if(n)return n;if(ad.existsSync(t)){let c=ad.realpathSync.native(t);return cd.set(t,c),c}let r=[],o=t;for(;!ad.existsSync(o);){let c=vt.dirname(o);if(c===o)return cd.set(t,t),t;r.unshift(vt.basename(o)),o=c}let s=ad.realpathSync.native(o),a=vt.join(s,...r);return cd.set(t,a),a}i(fh,"resolveExistingPathPrefix");function gC(e){return e==="~"?fc.homedir():e.startsWith(`~${vt.sep}`)||e.startsWith("~/")||e.startsWith("~\\")?vt.join(fc.homedir(),e.slice(2)):e}i(gC,"expandHomeDirectory");function yC(e){let t=fc.tmpdir(),n=[[/^%temp%/i,t],[/^%tmp%/i,t],[/^\$env:temp\b/i,t],[/^\$env:tmp\b/i,t],[/^\$tmpdir\b/i,t],[/^\$temp\b/i,t],[/^\$tmp\b/i,t]];for(let[r,o]of n)if(r.test(e))return e.replace(r,o);return e}i(yC,"expandSystemTempAlias");function WL(e,t){let n=vt.resolve(t??process.cwd()),r=yC(gC(e)),o=vt.isAbsolute(r)?vt.resolve(r):vt.resolve(n,r);return fh(o)}i(WL,"resolvePermissionPath");function xC(){if(ld)return ld;let e=new Set,t=[fc.tmpdir(),process.env.TEMP,process.env.TMP,process.env.TMPDIR].filter(n=>typeof n=="string"&&n.trim().length>0);for(let n of t)try{e.add(fh(n))}catch{}return ld=Array.from(e),ld}i(xC,"getSystemTempDirectories");function mh(e){let t=fh(e??process.cwd());return{projectPlanDoc:vt.join(t,_L),systemTempDirs:xC()}}i(mh,"getPlanModeAllowedWritablePaths");function ch(e,t){let n=WL(e,t),{projectPlanDoc:r,systemTempDirs:o}=mh(t);return HL(n,r)?!0:o.some(s=>vs(n,s))}i(ch,"isPlanModeAllowedPath");function UL(e){let{projectPlanDoc:t,systemTempDirs:n}=mh(e),r=n[0]??fc.tmpdir();return`${t} or the system temp directory (${r})`}i(UL,"formatPlanModeAllowedLocations");var jL=new Set(["-a","--append","-i","--ignore-interrupts"]);function GL(e){let t=[];for(let n=1;n<e.argv.length;n+=1){let r=e.argv[n];jL.has(r)||r.startsWith("-")||t.push(r)}return t}i(GL,"collectTeeTargets");function KL(e){let t=[],n=1,r=!1;for(;n<e.argv.length;){let o=e.argv[n],s=o.toLowerCase();if(s==="-path"||s==="-literalpath"||s==="-destination"){let a=e.argv[n+1];if(a!==void 0&&!a.startsWith("-")){t.push(a),n+=2;continue}}!o.startsWith("-")&&!r&&(t.push(o),r=!0),n+=1}return t}i(KL,"collectPowerShellWriteTargets");function Zo(e){let t=new Set,n=i(o=>{let s=o?.trim();s&&t.add(s)},"pushTarget");for(let o of fd(e))n(o);let r=dc(e);if(r.unparseable)return Array.from(t);for(let o of r.statements)for(let s of o.stages){for(let c of s.redirections)c.input||n(c.target);let a=s.argv[0]?.toLowerCase();if(a){if(a==="tee")for(let c of GL(s))n(c);else if(hC.has(a))for(let c of KL(s))n(c)}}return Array.from(t)}i(Zo,"collectBashWriteTargets");function ph(e,t){if(!Xn(e))return{dangerous:!1};let n=new Set([...Zo(e),...FL(e)]);for(let r of n)if(!md(r,t))return{dangerous:!0,reason:`Command may modify file outside project: ${r}`};return{dangerous:!1}}i(ph,"getBashOutsideProjectWriteRisk");function Dr(e,t,n){let r=UL(n);if(Bw(e))return null;if(Pn.has(e)){let o=typeof t.path=="string"?t.path:"";return o?ch(o,n)?null:`[Blocked] Plan mode only allows file modifications in ${r}. Requested path: ${o}`:`[Blocked] Tool '${e}' is not allowed in plan mode unless it targets ${r}.`}if(e==="bash"){let o=t.command??"";if(!Xn(o))return null;let s=Zo(o);if(s.length===0)return`[Blocked] Plan mode only allows bash write operations when every target is either ${r}. Could not determine a safe target from: ${o.slice(0,80)}${o.length>80?"...":""}`;let a=s.find(c=>!ch(c,n));return a?`[Blocked] Plan mode only allows bash write operations in ${r}. Blocked target: ${a}`:null}return`[Blocked] Tool '${e}' has side effects and is not permitted in plan mode. Switch to accept-edits or auto mode to use it, or work within ${r}.`}i(Dr,"getPlanModeBlockReason");import lo from"node:path";import VL from"node:os";function Is(e,t){try{let n=lo.resolve(e),r=lo.resolve(t);return n===r?!0:n.startsWith(r+lo.sep)}catch{return!1}}i(Is,"isPathUnder");function zL(){try{return Ki()}catch{return}}i(zL,"safeGetAgentConfigHome");function wC(e,t){let n=zL();if(n&&Is(e,n))return"user-kodax";let r=lo.join(lo.resolve(t),".kodax");if(Is(e,r))return"project-kodax"}i(wC,"resolveProtectedZone");function XL(){let e=new Set;try{e.add(VL.tmpdir())}catch{}for(let t of["TEMP","TMP","TMPDIR"]){let n=process.env[t];n&&n.length>0&&e.add(n)}return Array.from(e)}i(XL,"getSystemTempDirs");var YL=new Set(["bash"]),mc={toolNames:YL,collect(e,t){let n=typeof e.input.command=="string"?e.input.command:"";if(!n||!t)return[];let r=[],o=new Set,s=new Set,a=XL(),c=lo.resolve(t);for(let l of fd(n)){let u;try{u=lo.resolve(t,l)}catch{continue}let m=wC(u,t);if(m){o.has(u)||(o.add(u),r.push({kind:"protected_path",path:l,zone:m}));continue}if(ur(l,t)){let p=a.some(g=>Is(u,g)),h=Is(u,c);!p&&!h&&!s.has(u)&&(s.add(u),r.push({kind:"outside_project",path:l}))}}for(let l of Zo(n)){let u;try{u=lo.resolve(t,l)}catch{continue}wC(u,t)||Is(u,c)||a.some(h=>Is(u,h))||r.push({kind:"shell_redirect_outside",target:l})}return r}};function gc(e){return e.type==="tool_summary"?{type:"event",text:e.text,icon:"tool"}:e}i(gc,"seedToHistoryItem");var qL="[Thinking]",JL="[/Thinking]",QL="Untitled Session",SC=50,ZL=60,CC="...",bC=["[Managed Task]","[Managed Task Protocol Retry]","Assigned native agent identity:","Tool policy:","Blocked tools:","Allowed shell patterns:","Dependency handoff artifacts:","Dependency summary preview:","Preferred agent:","Read structured bundle first:","Read human summary next:"],vC=[/(?:^|\n)You are the [^\n]+ role for a managed KodaX task\./,/(?:^|\n)Primary task:/,/(?:^|\n)Work intent:/,/(?:^|\n)Complexity:/,/(?:^|\n)Risk:/,/(?:^|\n)Harness:/,/(?:^|\n)Brainstorm required:/],eP=/(^|\r?\n)\[Thinking\]\r?\n([\s\S]*?)\r?\n\[\/Thinking\](?=\r?\n|$)/g;function tP(e){let t=-1;for(let n of bC){let r=e.indexOf(n);r>=0&&(t===-1||r<t)&&(t=r)}for(let n of vC){let r=n.exec(e);r&&r.index>=0&&(t===-1||r.index<t)&&(t=r.index)}return t}i(tP,"findControlPlaneCutIndex");function nP(e){return bC.some(t=>e.includes(t))||vC.some(t=>t.test(e))}i(nP,"hasControlPlaneSignal");function IC(e){let t=[];for(let n of e)n&&typeof n=="object"&&"type"in n&&n.type==="text"&&"text"in n&&t.push(String(n.text));return t}i(IC,"collectTextBlocks");function rP(e){return typeof e=="string"?e:Array.isArray(e)?IC(e).join(`
|
|
42
|
+
`):""}i(rP,"extractAssistantTextOnly");function hc(e,t,n){n.trim().length!==0&&e.push({type:t,text:n})}i(hc,"pushSeed");function TC(e){return e.replace(/^\n+/,"").replace(/\n+$/,"")}i(TC,"stripLegacyTagBoundaryNewlines");function oP(e){let t=e.name,n=e.input;if(!n)return`\u26A1 ${t}`;let r=t==="bash"?pc(String(n.command??"")):t==="read"||t==="write"||t==="edit"?pc(String(n.file_path??n.path??"")):t==="grep"||t==="glob"?pc(String(n.pattern??"")):t==="web_search"||t==="web_fetch"?pc(String(n.query??n.url??"")):void 0;return r?`\u26A1 ${t}(${r})`:`\u26A1 ${t}`}i(oP,"formatToolUseSummary");function pc(e,t=60){let n=e.replace(/\s+/g," ").trim();return n.length>t?`${n.slice(0,t)}...`:n}i(pc,"truncateToolHint");function iP(e){if(!e.includes(qL)||!e.includes(JL))return e.trim().length>0?[{type:"assistant",text:e}]:[];let t=[],n=0;for(let r of e.matchAll(eP)){let o=r.index??-1,s=r[1]??"",a=r[2]??"";if(o<0)continue;let c=o+s.length;hc(t,"assistant",TC(e.slice(n,c))),hc(t,"thinking",a),n=o+r[0].length}return hc(t,"assistant",TC(e.slice(n))),t.length===0?e.trim().length>0?[{type:"assistant",text:e}]:[]:t}i(iP,"parseLegacyAssistantContent");function sP(e){if(typeof e=="string")return iP(e);if(!Array.isArray(e))return[];let t=[],n=[],r=i(()=>{n.length!==0&&(hc(t,"assistant",n.join(`
|
|
43
|
+
`)),n.length=0)},"flushAssistantBuffer");for(let o of e)if(!(!o||typeof o!="object"||!("type"in o)))switch(o.type){case"text":"text"in o&&n.push(String(o.text));break;case"thinking":r(),"thinking"in o&&hc(t,"thinking",String(o.thinking));break;case"tool_use":if(r(),"name"in o){let s=oP(o);s&&t.push({type:"tool_summary",text:s})}break;case"tool_result":case"redacted_thinking":break;default:break}return r(),t}i(sP,"extractAssistantHistorySeeds");var aP=["You are the Scout role","You are the Generator role","You are the Planner role","You are the Evaluator role"],cP=/\r?\n?\`\`\`kodax[\w-]*[\s\S]*?\`\`\`\s*/g;function lP(e){return aP.some(t=>e.includes(t))}i(lP,"isManagedWorkerPrompt");function uP(e){return e.replace(cP,"").trim()}i(uP,"stripManagedProtocolBlocks");function yc(e){switch(e.role){case"assistant":return sP(e.content).map(n=>({...n,text:uP(n.text)})).filter(n=>n.text.length>0);case"user":{if(e._synthetic)return[];let t=xc(e.content);return t.trim().length===0||lP(t)?[]:[{type:"user",text:t}]}case"system":return[];default:return[]}}i(yc,"extractHistorySeedsFromMessage");function xc(e){return typeof e=="string"?e:Array.isArray(e)?IC(e).join(`
|
|
44
|
+
`):""}i(xc,"extractTextContent");function dP(e){let t=e.replace(/\s+/g," ").trim();return t?t.length>SC?`${t.slice(0,SC)}${CC}`:t:QL}i(dP,"formatSessionTitle");function wc(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.role!=="assistant")continue;let r=rP(n.content);if(r)return r}return""}i(wc,"extractLastAssistantText");function kC(e,t,n,r){let o=[wc(e),t.trim(),n?.trim()??"",r?.trim()??""];for(let s of o){let a=uo(s);if(a)return a}return""}i(kC,"resolveCompletedAssistantText");function uo(e){let t=e.trim();if(!t)return"";let n=tP(t);return n===0?"":(n>0?t.slice(0,n):t).trim()}i(uo,"sanitizeUserFacingAssistantText");function RC(e){let t=e.trim();return t.length>0&&uo(t).length===0&&nP(t)}i(RC,"isControlPlaneOnlyAssistantText");function ks(e){let t=e.find(r=>r.role==="user"),n=t?xc(t.content):"";return dP(n)}i(ks,"extractTitle");function fP(e,t=ZL){let n=e.replace(/\n/g," "),r=n.length>t?CC:"";return n.slice(0,t)+r}i(fP,"formatMessagePreview");import d from"chalk";import pd from"fs";import MC from"path";var hd=kn("config.json");function AC(){return MC.join(process.cwd(),".kodax","config.local.json")}i(AC,"getProjectConfigFile");function gd(e=process.env){let n=Sc(hd).autoMode??{},r=e.KODAX_AUTO_MODE_ENGINE?.trim(),o=r==="llm"||r==="rules"?r:void 0,s=n.engine==="llm"||n.engine==="rules"?n.engine:void 0,a=o??s??"llm",c=EC(n.classifierModel),l=EC(e.KODAX_AUTO_MODE_CLASSIFIER_MODEL),u=e.KODAX_AUTO_MODE_TIMEOUT_MS?.trim(),m=u!==void 0?Number(u):NaN,p=Number.isFinite(m)&&m>0?Math.floor(m):void 0,h=typeof n.timeoutMs=="number"&&n.timeoutMs>0?Math.floor(n.timeoutMs):void 0;return{engine:a,classifierModel:c,classifierModelEnv:l,timeoutMs:p??h}}i(gd,"loadAutoModeSettings");function EC(e){if(typeof e!="string")return;let t=e.trim();return t.length===0?void 0:t}i(EC,"nonEmptyString");function Sc(e){try{if(pd.existsSync(e))return JSON.parse(pd.readFileSync(e,"utf-8"))}catch{}return{}}i(Sc,"readJsonFile");function _C(e,t){pd.mkdirSync(MC.dirname(e),{recursive:!0}),pd.writeFileSync(e,JSON.stringify(t,null,2))}i(_C,"writeJsonFile");function Tc(e){let t=Sc(hd);_C(hd,{...t,permissionMode:e})}i(Tc,"savePermissionModeUser");function Rs(){let e=Sc(hd),t=Sc(AC()),n=e.alwaysAllowTools??[],r=t.alwaysAllowTools??[];return[...new Set([...n,...r])]}i(Rs,"loadAlwaysAllowTools");function yd(e,t,n=!1){let r=dd(e,t,n);if(!r)return;let o=AC(),s=Sc(o),a=s.alwaysAllowTools??[];a.includes(r)||_C(o,{...s,alwaysAllowTools:[...a,r]})}i(yd,"saveAlwaysAllowToolPattern");var Es=class{static{i(this,"CommandRegistry")}commands=new Map;aliases=new Map;register(t){let n=t.name.toLowerCase();if(this.commands.has(n))throw new Error(`Command "${t.name}" is already registered`);if(this.aliases.has(n)){let o=this.aliases.get(n);throw new Error(`Command "${t.name}" conflicts with existing alias for "${o}"`)}let r=new Set;for(let o of t.aliases??[]){let s=o.toLowerCase();if(s!==n){if(r.has(s))throw new Error(`Alias "${o}" is duplicated within command "${t.name}"`);if(this.commands.has(s))throw new Error(`Alias "${o}" conflicts with existing command "${s}"`);if(this.aliases.has(s)){let a=this.aliases.get(s);throw new Error(`Alias "${o}" is already registered for "${a}"`)}r.add(s)}}if(this.commands.set(n,{...t,source:t.source??"builtin"}),t.aliases)for(let o of t.aliases){let s=o.toLowerCase();s!==n&&this.aliases.set(s,n)}}unregister(t){let n=t.toLowerCase(),r=this.aliases.get(n)??n;if(!this.commands.has(r))return!1;let o=this.commands.get(r);if(o?.aliases)for(let s of o.aliases)this.aliases.delete(s.toLowerCase());return this.commands.delete(r),!0}get(t){let n=t.toLowerCase(),r=this.aliases.get(n)??n;return this.commands.get(r)}has(t){let n=t.toLowerCase(),r=this.aliases.get(n)??n;return this.commands.has(r)}getAll(t){let n=new Map;for(let[r,o]of this.commands)t&&o.source!==t||n.has(r)||n.set(r,{name:o.name,aliases:o.aliases,description:o.description,source:o.source??"builtin",usage:o.usage,priority:o.priority,location:o.location,path:o.path,userInvocable:o.userInvocable,disableModelInvocation:o.disableModelInvocation,allowedTools:o.allowedTools,context:o.context,agent:o.agent,argumentHint:o.argumentHint,model:o.model});return Array.from(n.values()).sort((r,o)=>r.name.localeCompare(o.name))}getBySource(t){return this.getAll(t)}getNames(){return Array.from(this.commands.keys()).sort()}clear(){this.commands.clear(),this.aliases.clear()}get size(){return this.commands.size}get aliasCount(){return this.aliases.size}},mP=new Es;import $n from"chalk";import{Buffer as OC}from"node:buffer";import{spawn as pP}from"node:child_process";import LC from"node:process";var ei="\x1B",hP="\x07",hh=`${ei}\\`;function PC(e,t){return e.SSH_CONNECTION?!1:t==="win32"||t==="darwin"||t==="linux"}i(PC,"shouldPreferNativeClipboard");function gP(e,t){let n=OC.from(e,"utf8").toString("base64"),r=t.TERM==="xterm-kitty"?hh:hP,o=`${ei}]52;c;${n}${r}`;return t.TMUX?`${ei}Ptmux;${o.replaceAll(ei,`${ei}${ei}`)}${hh}`:t.STY?`${ei}P${o}${hh}`:o}i(gP,"buildOscSequence");async function xd(e,t,n){return new Promise((r,o)=>{let s=pP(e,t,{stdio:["pipe","ignore","pipe"],windowsHide:!0}),a="";s.on("error",o),s.stderr?.on("data",c=>{a+=c.toString()}),s.on("close",c=>{if(c===0){r(!0);return}o(new Error(a.trim()||`${e} exited with code ${c??"unknown"}`))}),s.stdin?.write(n),s.stdin?.end()})}i(xd,"execClipboardCommand");function yP(e){let t="$stream = [Console]::OpenStandardInput(); $buffer = New-Object byte[] 8192; $memory = New-Object System.IO.MemoryStream; while (($read = $stream.Read($buffer, 0, $buffer.Length)) -gt 0) { $memory.Write($buffer, 0, $read) }; $text = [System.Text.Encoding]::UTF8.GetString($memory.ToArray()); Set-Clipboard -Value $text",n=OC.from(e,"utf8");return[["powershell",["-NoProfile","-NonInteractive","-Command",t],n],["pwsh",["-NoProfile","-NonInteractive","-Command",t],n],["cmd",["/c","chcp 65001 >nul & clip"],n]]}i(yP,"buildWindowsClipboardCandidates");async function $C(e,t,n){if(t.SSH_CONNECTION)return!1;switch(n){case"win32":{let r=yP(e);for(let[o,s,a]of r)try{if(await xd(o,s,a))return!0}catch{}return!1}case"darwin":return xd("pbcopy",[],e);case"linux":{let r=[["wl-copy",[]],["xclip",["-selection","clipboard"]],["xsel",["--clipboard","--input"]]];for(let[o,s]of r)try{if(await xd(o,s,e))return!0}catch{}return!1}default:return!1}}i($C,"tryNativeClipboard");async function xP(e,t){if(!t.TMUX)return!1;let n=t.LC_TERMINAL==="iTerm2"?["load-buffer","-"]:["load-buffer","-w","-"];try{return await xd("tmux",n,e)}catch{return!1}}i(xP,"tryTmuxClipboard");async function ti(e,t={}){let n=t.env??LC.env,r=t.platform??LC.platform,o=e.trimEnd(),s=gP(o,n);if(!o)throw new Error("Nothing to copy.");if(PC(n,r))try{if(await $C(o,n,r))return{path:"native"}}catch{}if(await xP(o,n))return{path:"tmux-buffer"};if(t.terminalWrite?.(s))return{path:"osc52"};if(!PC(n,r))try{if(await $C(o,n,r))return{path:"native"}}catch{}throw new Error("Unable to access any clipboard path.")}i(ti,"copyTextToClipboard");var gh={name:"copy",description:"Copy last assistant message to clipboard",usage:"/copy",handler:i(async(e,t)=>{let n=wc(t.messages);if(!n){console.log($n.yellow(`
|
|
45
|
+
No assistant message found to copy.`)),console.log($n.dim("The assistant needs to respond first before you can copy its message."));return}try{await ti(n);let r=n.length>50?n.slice(0,50)+"...":n;console.log($n.green(`
|
|
46
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
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
48
|
/copy - Copy Last Assistant Message
|
|
49
49
|
`)),console.log("Usage:"),console.log($n.cyan(" /copy")+` - Copy the last assistant message to clipboard
|
|
50
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
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
|
|
53
|
-
[memory] per-project memory directory`)),console.log(be.dim(` ${e}`));let n=
|
|
52
|
+
`)),console.log("Notes:"),console.log(" - Only copies assistant messages, not user messages"),console.log(" - Works with both plain text and formatted responses"),console.log(" - Requires clipboard permissions on some systems")},"detailedHelp")};import*as dr from"node:fs";import*as wd from"node:path";import be from"chalk";function wP(e){return e.runtimeInfo?.workspaceRoot??e.runtimeInfo?.executionCwd??process.cwd()}i(wP,"resolveCwd");function NC(e){let t;try{t=dr.readdirSync(e,{withFileTypes:!0})}catch(r){return r.code!=="ENOENT"&&console.error(`[memory] failed to read memory directory ${e}:`,r),[]}let n=[];for(let r of t){if(!r.isFile()||!r.name.endsWith(".md")||r.name==="MEMORY.md")continue;let o=wd.join(e,r.name),s="",a=0;try{s=dr.readFileSync(o,"utf-8"),a=dr.statSync(o).mtimeMs}catch(p){console.error(`[memory] failed to read ${o}:`,p);continue}let l=yw(s).frontmatter,u=l.name!==void 0||l.description!==void 0||l.type!==void 0,m=wd.basename(r.name,".md");n.push({filename:r.name,absPath:o,mtimeMs:a,title:l.name?.trim()||m,description:l.description?.trim()||m,type:l.type,parseOk:u})}return n}i(NC,"readTopicFiles");function SP(e){return e.map(t=>`- [${t.title}](${t.filename}) \u2014 ${t.description}`)}i(SP,"buildIndexLines");async function TP(e,t){console.log(be.cyan(`
|
|
53
|
+
[memory] per-project memory directory`)),console.log(be.dim(` ${e}`));let n=NC(e),r=n.filter(a=>!a.parseOk);console.log(be.dim(` ${n.length} topic file${n.length===1?"":"s"}`+(r.length>0?`, ${r.length} without parsable frontmatter`:"")));let o=!1,s="";try{s=dr.readFileSync(t,"utf-8"),o=!0}catch{o=!1}if(!o){console.log(be.yellow(`
|
|
54
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
55
|
--- MEMORY.md ---`)),s.trim().length===0?console.log(be.dim(" (empty)")):console.log(s.trimEnd()),console.log(be.cyan(`--- end ---
|
|
56
|
-
`))}i(
|
|
56
|
+
`))}i(TP,"listMemory");async function CP(e,t){let n=!1;try{n=dr.statSync(e).isDirectory()}catch{n=!1}if(!n){console.log(be.yellow(`
|
|
57
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=
|
|
58
|
+
`));return}let r=NC(e);if(r.length===0){console.log(be.yellow(`
|
|
59
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=
|
|
60
|
+
`));return}let o=[...r].sort((l,u)=>u.mtimeMs-l.mtimeMs),a=SP(o).join(`
|
|
61
61
|
`)+`
|
|
62
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(
|
|
63
|
+
[memory] rebuilt MEMORY.md with ${o.length} entries (newest first).`)),console.log(be.dim(` ${t}`));let c=o.filter(l=>!l.parseOk);if(c.length>0){console.log(be.yellow(` ${c.length} file(s) had no parsable frontmatter \u2014 used filename as fallback:`));for(let l of c)console.log(be.dim(` - ${l.filename}`));console.log(be.dim(" Tip: add `---\\nname: ...\\ndescription: ...\\ntype: ...\\n---` at the top of those files."))}console.log()}i(CP,"rebuildMemory");function bP(e,t){console.log(be.cyan(`
|
|
64
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
65
|
(No in-REPL editor is provided \u2014 open the file in your usual editor.
|
|
66
66
|
Use \`/memory rebuild\` after manual edits if you renamed any topic file.)
|
|
67
|
-
`))}i(
|
|
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(
|
|
67
|
+
`))}i(bP,"openMemory");function DC(){console.log(be.cyan(`
|
|
68
|
+
/memory - Inspect or rebuild per-project memory`)),console.log(be.dim(" /memory List MEMORY.md + memory directory")),console.log(be.dim(" /memory list Same as `/memory`")),console.log(be.dim(" /memory rebuild Regenerate MEMORY.md from topic frontmatter")),console.log(be.dim(" /memory open Print paths so you can open them in your editor")),console.log(be.dim(" /memory help Show this help")),console.log()}i(DC,"printHelp");function vP(){console.log(be.bold(`
|
|
69
69
|
/memory - Inspect or rebuild project memory
|
|
70
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
71
|
`)),console.log("Description:"),console.log(be.dim(` Each project gets its own memory directory under your KodaX agent
|
|
@@ -73,8 +73,8 @@ Failed to copy to clipboard: ${o}`)),console.log($n.dim("You may need to check c
|
|
|
73
73
|
owns reads/writes; this command is your escape hatch when the
|
|
74
74
|
MEMORY.md index drifts from the topic files on disk.
|
|
75
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(
|
|
77
|
-
[memory] unknown subcommand: ${s}`))
|
|
76
|
+
`))}i(vP,"printDetailedHelp");var yh={name:"memory",description:"Inspect or rebuild per-project memory (FEATURE_124)",usage:"/memory [list|rebuild|open|help]",argumentHint:"list | rebuild | open | help",handler:i(async(e,t)=>{let n=wP(t),r=mw(n),o=pw(n),s=(e[0]??"list").toLowerCase();if(s==="help"||s==="--help"||s==="-h"){DC();return}if(s==="list"){await TP(r,o);return}if(s==="rebuild"){await CP(r,o);return}if(s==="open"){bP(r,o);return}console.log(be.yellow(`
|
|
77
|
+
[memory] unknown subcommand: ${s}`)),DC()},"handler"),detailedHelp:vP};import $e from"chalk";function BC(){console.log(`
|
|
78
78
|
${$e.bold("/goal")} \u2014 persistent session goal
|
|
79
79
|
|
|
80
80
|
${$e.bold("Subcommands:")}
|
|
@@ -90,8 +90,8 @@ ${$e.bold("Notes:")}
|
|
|
90
90
|
- Token budget is optional; set it only when you want a hard ceiling.
|
|
91
91
|
- update_goal({complete}) is verifier-gated; the agent cannot
|
|
92
92
|
self-declare done without runtime confirmation.
|
|
93
|
-
`.trim())}i(
|
|
94
|
-
`)}i(
|
|
93
|
+
`.trim())}i(BC,"printHelp");function IP(e){let t=null,n=[];for(let o=0;o<e.length;o++){let s=e[o];if(s==="--tokens"){let a=e[o+1];if(!a)return{error:"--tokens requires a value (e.g. `--tokens 50000`)"};let c=Number(a);if(!op(c))return{error:"--tokens value must be a positive integer"};t=c,o++;continue}if(s.startsWith("--tokens=")){let a=s.slice(9),c=Number(a);if(!op(c))return{error:"--tokens value must be a positive integer"};t=c;continue}if(s.startsWith("--"))return{error:`unknown flag: ${s}`};n.push(s)}let r=n.join(" ").trim();return r?{objective:r,tokenBudget:t}:{error:"objective is required"}}i(IP,"parseCreateArgs");function kP(e){if(!e)return $e.dim("No goal set. Use `/goal <objective>` to create one.");let t=[`${$e.bold("Goal:")} ${e.objective}`,`${$e.bold("Status:")} ${e.status}`,`${$e.bold("Tokens used:")} ${e.tokensUsed}`];if(e.tokenBudget!==null){let n=Math.max(0,e.tokenBudget-e.tokensUsed);t.push(`${$e.bold("Token budget:")} ${e.tokenBudget} (remaining ${n})`)}else t.push(`${$e.bold("Token budget:")} ${$e.dim("none")}`);return t.push(`${$e.bold("Elapsed:")} ${e.timeUsedSeconds}s`),e.status==="blocked"&&e.lastBlockerKind&&t.push(`${$e.bold("Blocker:")} ${e.lastBlockerKind}`),t.join(`
|
|
94
|
+
`)}i(kP,"renderStatus");async function Cc(e,t,n,r){if(!e.lineage)throw new Error("session lineage unavailable \u2014 open or start a new session before using /goal");e.lineage=vw(e.lineage,n,r),await t.saveSession()}i(Cc,"persist");async function RP(e,t,n){if(!t.lineage){console.log($e.red("[/goal] no active session lineage"));return}let r=Qi(t.lineage);if(r&&r.status!=="complete"){console.log($e.yellow(`[/goal] a goal is already active (status: ${r.status}). Clear it first with \`/goal clear\` before creating a new one.`));return}let o=IP(e);if("error"in o){console.log($e.red(`[/goal] ${o.error}`));return}try{r&&r.status==="complete"&&await Cc(t,n,null,"cleared");let s=Pw(o.objective,o.tokenBudget);await Cc(t,n,s,"created"),console.log($e.green(`[/goal] created: "${s.objective}"`)),s.tokenBudget!==null&&console.log($e.dim(` budget: ${s.tokenBudget} tokens`))}catch(s){let a=s instanceof Error?s.message:String(s);console.log($e.red(`[/goal] ${a}`))}}i(RP,"doCreate");async function EP(e){if(!e.lineage){console.log($e.red("[/goal] no active session lineage"));return}let t=Qi(e.lineage);console.log(kP(t))}i(EP,"doStatus");async function MP(e,t){if(!e.lineage){console.log($e.red("[/goal] no active session lineage"));return}let n=Qi(e.lineage);if(!n){console.log($e.yellow("[/goal] no goal to pause"));return}if(n.status!=="active"){console.log($e.yellow(`[/goal] cannot pause from status '${n.status}' (only 'active' is pausable)`));return}let r=$w(n);await Cc(e,t,r,"paused"),console.log($e.green("[/goal] paused"))}i(MP,"doPause");async function AP(e,t){if(!e.lineage){console.log($e.red("[/goal] no active session lineage"));return}let n=Qi(e.lineage);if(!n){console.log($e.yellow("[/goal] no goal to resume"));return}if(n.status!=="paused"){console.log($e.yellow(`[/goal] cannot resume from status '${n.status}' (only 'paused' is resumable)`));return}let r=Ow(n);await Cc(e,t,r,"resumed"),console.log($e.green("[/goal] resumed"))}i(AP,"doResume");async function _P(e,t){if(!e.lineage){console.log($e.red("[/goal] no active session lineage"));return}if(!Qi(e.lineage)){console.log($e.yellow("[/goal] no goal to clear"));return}await Cc(e,t,null,"cleared"),console.log($e.green("[/goal] cleared"))}i(_P,"doClear");var HC={name:"goal",description:"Manage a persistent session goal (FEATURE_192)",usage:"/goal [<objective> [--tokens N] | status | pause | resume | clear | help]",argumentHint:"<objective> | status | pause | resume | clear | help",handler:i(async(e,t,n)=>{let r=(e[0]??"status").toLowerCase();if(r==="help"||r==="--help"||r==="-h"){BC();return}if(r==="status"){await EP(t);return}if(r==="pause"){await MP(t,n);return}if(r==="resume"){await AP(t,n);return}if(r==="clear"){await _P(t,n);return}await RP(e,t,n)},"handler"),detailedHelp:BC};import Qt from"chalk";var xh={name:"new",description:"Start a new conversation session",usage:"/new",handler:i(async(e,t,n)=>{if(t.messages.length===0){console.log(Qt.yellow(`
|
|
95
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
96
|
Cancelled. Current session preserved.`));return}try{await n.saveSession(),console.log(Qt.dim(`
|
|
97
97
|
[Previous session saved]`))}catch{console.log(Qt.yellow(`
|
|
@@ -101,10 +101,10 @@ Cancelled. Current session preserved.`));return}try{await n.saveSession(),consol
|
|
|
101
101
|
`)),console.log("Usage:"),console.log(Qt.cyan(" /new")+` - Clear current session and start fresh
|
|
102
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
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
|
|
104
|
+
`)),console.log("Notes:"),console.log(" \u2022 Automatically saves previous session before clearing"),console.log(" \u2022 Prompts for confirmation if there are messages in the current session"),console.log(" \u2022 Use /load to resume a previous session"),console.log(" \u2022 Use /sessions to see all saved sessions")},"detailedHelp")};import{execFile as LP}from"node:child_process";import{promisify as PP}from"node:util";var $P=PP(LP),wh=1e5;async function Sd(e,t){let{stdout:n}=await $P("git",e,{cwd:t,maxBuffer:67108864});return n}i(Sd,"git");async function OP(e){for(let t of["main","master","develop"])try{return await Sd(["rev-parse","--verify",t],e),t}catch{}return"HEAD"}i(OP,"detectBaseBranch");async function DP(e,t){let n=e[0];if(n==="base"){let r=await OP(t);return{diff:await Sd(["diff",`${r}...HEAD`],t),label:`changes against ${r}`}}return n==="sha"&&e[1]?{diff:await Sd(["show",e[1]],t),label:`commit ${e[1]}`}:{diff:await Sd(["diff","HEAD"],t),label:"uncommitted changes"}}i(DP,"getDiff");var FC={name:"review",description:"Review code changes (git diff) for bugs, security, performance, and design",usage:"/review [base | sha <hash>] (default: uncommitted changes)",handler:i(async(e,t)=>{let n=t.gitRoot??process.cwd(),r,o;try{({diff:r,label:o}=await DP(e,n))}catch(c){return{success:!1,message:`/review: git failed \u2014 ${c instanceof Error?c.message:String(c)}`}}if(!r.trim())return{success:!0,message:"No changes to review."};let s=r;return s.length>wh&&(s=`${s.slice(0,wh)}
|
|
105
105
|
|
|
106
|
-
[diff truncated to ${
|
|
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(`
|
|
106
|
+
[diff truncated to ${wh} chars \u2014 review the rest with a narrower scope]`),{success:!0,invocation:{prompt:[`Review the following ${o} as a third-party reviewer (not the author).`,"Look for bugs (logic errors, null/undefined handling, off-by-one, races),","security (injection, secret exposure, auth bypass), performance hotpaths,","and design (over-engineering vs missing abstraction).","Cite specific diff lines. For each finding, note whether it is verifiable by","tsc / lint / test / build. If the diff is small or risk-free, say so briefly.","","```diff",s,"```"].join(`
|
|
107
|
+
`),source:"prompt",displayName:"/review"}}},"handler")};function Cd(e){let t=e.match(/\r\n|\r|\n/g);return t?t.length:0}i(Cd,"getPastedTextRefNumLines");function NP(e,t){return t===0?`[Pasted text #${e}]`:`[Pasted text #${e} +${t} lines]`}i(NP,"formatPastedTextRef");function BP(e,t){return`[...Truncated text #${e} +${t} lines...]`}i(BP,"formatTruncatedTextRef");var HP=/\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;function FP(e){let t=[],n=new RegExp(HP.source,"g");for(let r of e.matchAll(n)){let o=Number.parseInt(r[2]??"0",10);!Number.isFinite(o)||o<=0||t.push({id:o,kind:r[1],match:r[0],index:r.index??0})}return t}i(FP,"parseReferences");function WP(e,t){let n=FP(e);if(n.length===0)return e;let r=i(s=>t instanceof Map?t.get(s):t[s],"getContent"),o=e;for(let s=n.length-1;s>=0;s--){let a=n[s];if(a.kind==="Image")continue;let c=r(a.id);!c||c.type!=="text"||(o=o.slice(0,a.index)+c.content+o.slice(a.index+a.match.length))}return o}i(WP,"expandPastedTextRefs");var UP=/\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]$/,jP=/^\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/;function GP(e,t){if(t>=e.length)return!0;let n=e[t];return!n||/\s/.test(n)}i(GP,"isAtWordBoundaryAfter");function KP(e,t){if(t===0)return!0;let n=e[t-1];return!n||/\s/.test(n)}i(KP,"isAtWordBoundaryBefore");function bd(e,t){if(t<=0||!GP(e,t))return null;let r=e.slice(0,t).match(UP);if(!r)return null;let o=t-r[0].length,s=Number.parseInt(r[2]??"0",10);return!Number.isFinite(s)||s<=0?null:{start:o,end:t,id:s,kind:r[1]}}i(bd,"findPlaceholderBeforeCursor");function vd(e,t){if(t>=e.length||!KP(e,t))return null;let r=e.slice(t).match(jP);if(!r)return null;let o=Number.parseInt(r[2]??"0",10);return!Number.isFinite(o)||o<=0?null:{start:t,end:t+r[0].length,id:o,kind:r[1]}}i(vd,"findPlaceholderAfterCursor");function WC(e){return e.length>800||Cd(e)>2}i(WC,"shouldReplacePasteWithPlaceholder");function UC(e,t){if(e.length<=1e4)return{truncatedText:e,placeholderContent:""};let n=Math.floor(1e3/2),r=Math.floor(1e3/2),o=e.slice(0,n),s=e.slice(-r),a=e.slice(n,-r),c=Cd(a),l=BP(t,c);return{truncatedText:o+l+s,placeholderContent:a}}i(UC,"maybeTruncateLongInput");var Sh=class{static{i(this,"PasteStore")}contents=new Map;nextId=1;registerText(t){let n=this.nextId++,r=Cd(t);return this.contents.set(n,{id:n,type:"text",content:t}),{id:n,placeholder:NP(n,r),numLines:r}}registerTruncatedText(t){let n=this.nextId++,r=Cd(t);return this.contents.set(n,{id:n,type:"text",content:t}),{id:n,numLines:r}}adopt(t){this.contents.set(t.id,t),t.id>=this.nextId&&(this.nextId=t.id+1)}peekNextId(){return this.nextId}get(t){return this.contents.get(t)}expand(t){return WP(t,this.contents)}snapshot(){return new Map(this.contents)}restore(t){this.contents.clear();for(let[n,r]of t)this.contents.set(n,r);for(let n of t.keys())n>=this.nextId&&(this.nextId=n+1)}reset(){this.contents.clear(),this.nextId=1}size(){return this.contents.size}export(){return Array.from(this.contents.values())}},Td=null;function jC(){return Td===null&&(Td=new Sh),Td}i(jC,"getOrCreateModulePasteStore");function Id(){return Td??void 0}i(Id,"getActivePasteStore");import{createHash as VP}from"node:crypto";import{mkdir as zP,readdir as XP,readFile as YP,stat as qP,unlink as JP,writeFile as QP}from"node:fs/promises";import*as Th from"node:path";var ZP="paste-cache",e$=720*60*60*1e3;function Ch(){return kn(ZP)}i(Ch,"getPasteCacheDir");function GC(e){return Th.join(Ch(),`${e}.txt`)}i(GC,"getPastePath");function KC(e){return VP("sha256").update(e).digest("hex").slice(0,16)}i(KC,"hashPastedText");async function VC(e,t){try{let n=Ch();return await zP(n,{recursive:!0}),await QP(GC(e),t,{encoding:"utf8",mode:384}),!0}catch{return!1}}i(VC,"storePastedText");async function kd(e){try{return await YP(GC(e),{encoding:"utf8"})}catch{return null}}i(kd,"retrievePastedText");async function zC(e=e$){let t=Ch(),n=Date.now()-e,r=0,o=0,s;try{s=await XP(t)}catch{return{scanned:r,removed:o}}for(let a of s){if(!a.endsWith(".txt"))continue;r+=1;let c=Th.join(t,a);try{(await qP(c)).mtimeMs<n&&(await JP(c),o+=1)}catch{}}return{scanned:r,removed:o}}i(zC,"cleanupOldPastes");import*as Eh from"path";import*as XC from"os";function t$(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}i(t$,"escapeRegExp");function n$(e,t){if(!e)return;let n=e.trim();if(!n.startsWith("/"))return;let r=new RegExp(`^/${t$(t)}(?:\\s+)?`,"i"),o=n.replace(r,"").trim();return o.length>0?o:void 0}i(n$,"deriveArgumentHintFromUsage");function bh(e,t="builtin"){return{...e,source:e.source??t,userInvocable:e.userInvocable??!0,disableModelInvocation:e.disableModelInvocation??!1,argumentHint:e.argumentHint??n$(e.usage,e.name)}}i(bh,"toCommandDefinition");function vh(e){for(let t of Ih)try{let n=bh(t,"builtin");e.register(n)}catch(n){console.error(`Failed to register command "${t.name}":`,n)}}i(vh,"registerBuiltinCommands");import*as Nr from"fs";import*as ni from"path";function r$(e){if(Array.isArray(e))return e.map(t=>String(t).trim()).filter(t=>t.length>0);if(typeof e=="string")return e.split(",").map(t=>t.trim()).filter(t=>t.length>0)}i(r$,"normalizeAliases");function o$(e){if(e==="critical"||e==="high"||e==="medium"||e==="low")return e}i(o$,"normalizePriority");function i$(e){return{disableModelInvocation:e["disable-model-invocation"]===!0,userInvocable:e["user-invocable"]!==!1,allowedTools:ww(e["allowed-tools"]),context:e.context==="fork"?"fork":void 0,agent:typeof e.agent=="string"?e.agent:void 0,argumentHint:typeof e["argument-hint"]=="string"?e["argument-hint"]:void 0,model:typeof e.model=="string"?e.model:void 0,hooks:Sw(e.hooks),frontmatter:e}}i(i$,"buildExecutionMetadata");function s$(e,t){try{let n=Nr.readFileSync(e,"utf-8"),[r,o]=xw(n),s=r??{},a=ni.basename(e,".md"),c=typeof s.name=="string"&&s.name.trim()?s.name.trim():a;if(!c||o.trim().length===0)return;let l=typeof s.description=="string"&&s.description.trim()?s.description.trim():`Custom command from ${t} level`;return{name:c,description:l,aliases:r$(s.aliases),priority:o$(s.priority),content:o.trim(),location:t,path:e,frontmatter:s,execution:i$(s)}}catch(n){console.error(`Error parsing command file ${e}:`,n);return}}i(s$,"parseCommandFile");function kh(e){let t=[],n=new Set;for(let r=0;r<e.length;r++){let o=e[r],s=typeof o=="string"?o:o.path,a=typeof o=="string"?r===0?"user":"project":o.location;if(!Nr.existsSync(s))continue;let c=ni.resolve(s);try{c=Nr.realpathSync.native?.(s)??Nr.realpathSync(s)}catch{c=ni.resolve(s)}if(!n.has(c)){n.add(c);try{let l=Nr.readdirSync(s);for(let u of l){if(!u.endsWith(".md"))continue;let m=ni.join(s,u),p=s$(m,a);p&&t.push(p)}}catch(l){console.error(`Error scanning directory ${s}:`,l)}}}return t}i(kh,"discoverCommands");function Rh(e,t){for(let n of e)try{t.register({name:n.name,aliases:n.aliases,description:n.description,source:"extension",priority:n.priority,location:n.location,path:n.path,userInvocable:n.execution.userInvocable,disableModelInvocation:n.execution.disableModelInvocation,allowedTools:n.execution.allowedTools,context:n.execution.context,agent:n.execution.agent,argumentHint:n.execution.argumentHint,model:n.execution.model,hooks:n.execution.hooks,frontmatter:n.frontmatter,handler:i(async()=>({success:!0,invocation:{...n.execution,prompt:n.content,source:"prompt",displayName:n.name,path:n.path}}),"handler")})}catch(r){console.error(`Error registering command ${n.name}:`,r)}}i(Rh,"registerDiscoveredCommands");function YC(e,t){vh(e);try{let n=XC.homedir(),r=t??process.cwd(),o=kh([{path:Eh.join(r,".kodax","commands"),location:"project"},{path:kn("commands"),location:"user"},{path:Eh.join(n,".agents","commands"),location:"user"}]);Rh(o,e)}catch(n){console.error("Failed to discover commands:",n)}}i(YC,"registerAllCommands");import{execFile as a$}from"child_process";import c$ from"fs";import Mh from"path";import{promisify as l$}from"util";var u$=l$(a$);function fo(e){if(!(!e||!e.trim()))return Mh.resolve(e).replace(/\\/g,"/")}i(fo,"normalizePath");async function bc(e,t){try{let{stdout:n}=await u$("git",t,{cwd:e,windowsHide:!0,maxBuffer:1048576}),r=n.trim();return r||void 0}catch{return}}i(bc,"gitStdout");function d$(e){let t=fo(e);if(t)return Mh.posix.basename(t)===".git"?Mh.posix.dirname(t):t}i(d$,"deriveCanonicalRepoRoot");async function Ms(e={}){let t=fo(e.cwd??process.cwd())??process.cwd().replace(/\\/g,"/"),n=fo(await bc(t,["rev-parse","--show-toplevel"])),r=await bc(n??t,["rev-parse","--path-format=absolute","--git-common-dir"])??await bc(n??t,["rev-parse","--git-common-dir"]),o=await bc(n??t,["branch","--show-current"])??await bc(n??t,["rev-parse","--abbrev-ref","HEAD"]);return{canonicalRepoRoot:d$(r)??n,workspaceRoot:n,executionCwd:t,branch:o&&o!=="HEAD"?o:void 0,workspaceKind:e.workspaceKind??"detected"}}i(Ms,"inspectWorkspaceRuntime");function Rd(e,t){return!e?.canonicalRepoRoot||!t?.canonicalRepoRoot?!1:fo(e.canonicalRepoRoot)===fo(t.canonicalRepoRoot)}i(Rd,"isSameCanonicalRepo");function qC(e){return!!(e?.workspaceRoot&&c$.existsSync(e.workspaceRoot))}i(qC,"workspaceExists");function ri(e){let t=fo(e.runtimeInfo?.workspaceRoot??e.gitRoot),n=fo(e.runtimeInfo?.executionCwd??t),r=fo(e.runtimeInfo?.canonicalRepoRoot??t);if(!(!t&&!n&&!r))return{canonicalRepoRoot:r,workspaceRoot:t,executionCwd:n,branch:e.runtimeInfo?.branch,workspaceKind:e.runtimeInfo?.workspaceKind??"detected"}}i(ri,"resolveSessionRuntimeInfo");function xn(e){if(!e?.workspaceRoot)return"No git workspace detected";let t=e.branch?` @ ${e.branch}`:"",n=e.workspaceKind??"detected";return`${e.workspaceRoot}${t} [${n}]`}i(xn,"formatWorkspaceTruth");function f$(e){return{global:e.filter(t=>t.scope==="global").length,directory:e.filter(t=>t.scope==="directory").length,project:e.filter(t=>t.scope==="project").length}}i(f$,"summarizeAgentsFiles");function m$(e,t,n){if(!Number.isFinite(t)||t<=0||n<=0)return{...e,enabled:!0};let r=t/n*100,o=Math.max(1,Math.ceil(r)-1);return{...e,enabled:!0,triggerPercent:Math.min(e.triggerPercent,o)}}i(m$,"createManualCompactionConfig");function Ah(e){e.runtimeInfo?.workspaceRoot?console.log(d.dim(` Workspace unchanged: ${xn(e.runtimeInfo)}`)):console.log(d.dim(" Workspace unchanged."))}i(Ah,"printWorkspaceUnchangedNote");var Ih=[{name:"help",aliases:["h","?"],description:"Show all available commands",usage:"/help [command]",handler:i(async e=>{if(e.length>0){let t=e[0];Hr.size===0&&Md(),Hr.has(t.toLowerCase())||!!_h(t)?I$(t):v$(t)}else b$()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
108
108
|
/help - Show Command Help
|
|
109
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
110
|
Session saved. Goodbye!`)),await n.exit()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
@@ -129,9 +129,9 @@ Pasted text #${o} (${a.length} chars):
|
|
|
129
129
|
`)),console.log(a),console.log();return}console.log(d.yellow(`
|
|
130
130
|
[Unknown /paste subcommand: ${t}]`)),console.log(d.dim(" Try /paste show <id> or /paste list"))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
131
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=
|
|
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??
|
|
134
|
-
[Compacting conversation...]`)),n.startCompacting?.();try{let p=await
|
|
132
|
+
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /paste list - Show all pasted text ids in this session")),console.log(d.dim(" /paste show <id> - Print the full content of paste #<id>")),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" When you paste more than ~800 chars into the input bar, KodaX")),console.log(d.dim(" replaces the pasted text with a `[Pasted text #N +K lines]` anchor")),console.log(d.dim(" to keep the UI responsive. The full content is preserved and sent")),console.log(d.dim(" to the LLM on submit. Use this command to see what was captured.")),console.log()},"detailedHelp")},{name:"compact",description:"Manually trigger context compaction",usage:"/compact [instructions]",handler:i(async(e,t,n,r)=>{try{let o=await wu(t.gitRoot),s=r.provider,a=No(s);if(!a){console.log(d.red(`
|
|
133
|
+
[Provider not found: ${s}]`));return}let c=e.length>0?e.join(" "):void 0,l=o.contextWindow??a.getEffectiveContextWindow?.(r.model)??a.getContextWindow?.()??2e5,u=t.contextTokenSnapshot?.currentTokens??Bo(t.messages),m=m$(o,u,l);console.log(d.dim(`
|
|
134
|
+
[Compacting conversation...]`)),n.startCompacting?.();try{let p=await Iw(t.messages,m,a,l,c,void 0,u,Fw,Ww);if(!p.compacted){console.log(d.green(`
|
|
135
135
|
[No compaction needed]`)),console.log(d.dim(`Current token usage: ${p.tokensBefore.toLocaleString()}
|
|
136
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
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(`
|
|
@@ -140,7 +140,7 @@ Pasted text #${o} (${a.length} chars):
|
|
|
140
140
|
/compact - Manual Context Compaction
|
|
141
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
142
|
Reloading project rule files and runtime extensions...
|
|
143
|
-
`));try{let o=await n.reloadAgentsFiles?.()??[],s=
|
|
143
|
+
`));try{let o=await n.reloadAgentsFiles?.()??[],s=f$(o),a=Er(),c=a?As(a).loadedExtensions.length:0,l=a?As(a).failures.length:0,u=0,m=0;if(a){await a.reloadExtensions({continueOnError:!0});let p=As(a);u=c||p.loadedExtensions.length,m=Math.max(0,p.failures.length-l)}if(o.length===0&&u===0){console.log(d.yellow(`No project rule files or active extensions found.
|
|
144
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
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
146
|
`)),console.log(d.dim(` Error: ${o instanceof Error?o.message:String(o)}`)),console.log()}},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
@@ -149,7 +149,7 @@ Reloading project rule files and runtime extensions...
|
|
|
149
149
|
[No active extension runtime]
|
|
150
150
|
`));return}let t=As(e),n=t.tools.filter(r=>r.source.kind==="extension");if(console.log(d.bold(`
|
|
151
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=
|
|
152
|
+
`)),console.log(d.dim(` Loaded: ${t.loadedExtensions.length}`)),console.log(d.dim(` Capabilities: ${t.capabilityProviders.length}`)),console.log(d.dim(` Commands: ${t.commands.length}`)),console.log(d.dim(` Hooks: ${t.hooks.length}`)),console.log(d.dim(` Failures: ${t.failures.length}`)),console.log(d.dim(` Extension Tools: ${n.length}`)),t.defaults.activeTools!==void 0&&console.log(d.dim(` Active Tools: ${t.defaults.activeTools.join(", ")||"(none)"}`)),(t.defaults.modelSelection.provider||t.defaults.modelSelection.model)&&console.log(d.dim(` Model Override: ${t.defaults.modelSelection.provider??"(inherit)"} / ${t.defaults.modelSelection.model??"(inherit)"}`)),t.defaults.thinkingLevel&&console.log(d.dim(` Thinking: ${t.defaults.thinkingLevel}`)),console.log(),t.loadedExtensions.length>0){console.log(d.bold("Loaded Extensions:"));for(let r of t.loadedExtensions)console.log(d.dim(` - ${r.label} [${r.loadSource}] (${r.path})`));console.log()}if(t.commands.length>0){console.log(d.bold("Extension Commands:"));for(let r of t.commands){let o=r.aliases?.length?` [${r.aliases.join(", ")}]`:"";console.log(d.dim(` - /${r.name}${o} ${r.description}`))}console.log()}if(t.capabilityProviders.length>0){console.log(d.bold("Capability Providers:"));for(let r of t.capabilityProviders){let o=_$(r.metadata);console.log(d.dim(` - ${r.id} [${r.kinds.join(", ")}]${o?` ${o}`:""}`))}console.log()}if(n.length>0){console.log(d.bold("Extension Tools:"));for(let r of n){let o=r.shadowedSources.length>0?` overrides: ${r.shadowedSources.map(s=>s.label??s.id??s.kind).join(", ")}`:"";console.log(d.dim(` - ${r.name}${o}`))}console.log()}if(t.hooks.length>0){console.log(d.bold("Hook Participation:"));for(let r of t.hooks)console.log(d.dim(` - ${r.hook} [#${r.order}] ${r.source.label}`));console.log()}if(t.failures.length>0){console.log(d.bold("Recent Failures:"));for(let r of t.failures.slice(-10))console.log(d.dim(` - [${r.stage}] ${r.source.label}: ${r.target} -> ${r.message}`));console.log()}},"handler")},{name:"status",aliases:["info","ctx"],description:"Show current session status",handler:i(async(e,t,n,r)=>{await k$(t,r,e)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
153
153
|
/status - Show Session Status
|
|
154
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
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(`
|
|
@@ -158,19 +158,19 @@ MCP Status
|
|
|
158
158
|
`)),!r){console.log(d.yellow(" No MCP provider registered.")),console.log(d.dim(` Add mcpServers to ~/.kodax/config.json to enable MCP.
|
|
159
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
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});
|
|
161
|
+
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /mcp ")+"Show MCP server status"),console.log(d.dim(" /mcp status ")+"Same as /mcp"),console.log(d.dim(" /mcp refresh ")+"Force-refresh all MCP server catalogs"),console.log()},"detailedHelp")},{name:"repointel",aliases:["ri"],description:"Inspect or control the repo-intelligence premium runtime",usage:"/repointel [status|mode|trace|warm|endpoint|bin]",handler:i(async(e,t,n,r)=>{let o=e[0]?.toLowerCase()??"status";if(o==="status"){let s=await Wa({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace,probePremium:!0});tb(s);return}if(o==="warm"){let s=await Ew({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace});C$(s);return}if(o==="mode"){if(e.length===1){console.log(d.dim(`
|
|
162
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=
|
|
163
|
+
`));return}let s=x$(e[1]);if(!s){console.log(d.red(`
|
|
164
164
|
[Invalid repo-intelligence mode: ${e[1]}]`)),console.log(d.dim(`Usage: /repointel mode [auto|off|oss|premium-shared|premium-native]
|
|
165
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
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=
|
|
167
|
+
`));return}let a=w$(s,r.repoIntelligenceTrace??!1);if(a===null){console.log(d.red(`
|
|
168
168
|
[Invalid trace value: ${e[1]}]`)),console.log(d.dim(`Usage: /repointel trace [on|off|toggle]
|
|
169
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
170
|
Current repointel endpoint: ${d.cyan(c.endpoint)}`)),console.log(d.dim(`Usage: /repointel endpoint [http://host:port|default]
|
|
171
|
-
`));return}let s=
|
|
171
|
+
`));return}let s=JC(e[1]),a=Ed({endpoint:s},{repointelEndpoint:s??void 0},n,r);Br(`Repointel endpoint: ${s??"default"}`,a);return}if(o==="bin"){if(e.length===1){let c=await Wa({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace});console.log(d.dim(`
|
|
172
172
|
Current repointel bin: ${d.cyan(c.bin)}`)),console.log(d.dim(`Usage: /repointel bin [<path-or-command>|default]
|
|
173
|
-
`));return}let s=
|
|
173
|
+
`));return}let s=JC(e.slice(1).join(" ")),a=Ed({bin:s},{repointelBin:s??void 0},n,r);Br(`Repointel bin: ${s??"default"}`,a);return}console.log(d.red(`
|
|
174
174
|
[Unknown /repointel subcommand: ${e[0]}]`)),console.log(d.dim(`Usage: /repointel [status|mode|trace|warm|endpoint|bin]
|
|
175
175
|
`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
176
176
|
/repointel - Repo-Intelligence Runtime Control
|
|
@@ -200,7 +200,7 @@ Classifier engine: ${d.cyan(r.engine)}`)),console.log(d.dim(` consecutive denia
|
|
|
200
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
201
|
/auto-denials - Auto-Mode Classifier Diagnostic Dump
|
|
202
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]`)),
|
|
203
|
+
[Session saved]`)),Ah(t)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
204
204
|
/save - Save Current Session
|
|
205
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
206
|
[Usage: /load <session-id>]`)),await n.listSessions();return}await n.loadSession(e[0])==="missing"&&console.log(d.red(`
|
|
@@ -225,12 +225,12 @@ Classifier engine: ${d.cyan(r.engine)}`)),console.log(d.dim(` consecutive denia
|
|
|
225
225
|
/history - Show Conversation History
|
|
226
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
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]`)),
|
|
229
|
-
[Session deleted: ${e[0]}]`)),
|
|
228
|
+
[All sessions deleted]`)),Ah(t)):(await n.deleteSession?.(e[0]),console.log(d.green(`
|
|
229
|
+
[Session deleted: ${e[0]}]`)),Ah(t))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
230
230
|
/delete - Delete Saved Sessions
|
|
231
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
232
|
Available Providers:
|
|
233
|
-
`));let c=
|
|
233
|
+
`));let c=lp(o);for(let l of c){let u=l.configured?d.green("[configured]"):d.red("[not configured]"),m=l.custom?d.yellow(" [custom]"):"",p=l.name===r.provider,h=p?d.cyan(" *"):"";console.log(` ${d.bold(l.name)}${h} ${u}${m}`),l.capabilityProfile.transport==="cli-bridge"&&console.log(d.yellow(` ! ${sp(l.capabilityProfile)}`));let g=es(l.name,o),y=p?r.model:null;for(let x of g){let T=p&&(y===x||!y&&x===l.model)?d.cyan(">"):" ";console.log(` ${T} ${x}`)}console.log()}console.log(d.dim(`Current: provider=${r.provider}${r.model?`, model=${r.model}`:""}`)),console.log(d.dim("Usage:")),console.log(d.dim(" /model <provider> Switch provider")),console.log(d.dim(" /model <provider>/<model> Switch to specific model")),console.log(d.dim(` /model /<model> Switch model within current provider
|
|
234
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
235
|
[Missing model name after /]`));return}let l=es(r.provider,o);if(!l.includes(c)){console.log(d.red(`
|
|
236
236
|
[Unknown model: ${c}]`)),console.log(d.dim(`Available models for ${r.provider}: ${l.join(", ")}
|
|
@@ -248,36 +248,36 @@ Available Providers:
|
|
|
248
248
|
/model - Switch LLM Provider/Model
|
|
249
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
250
|
[Unknown provider: ${s}]`)),console.log(d.dim(`Available: ${Gi().join(", ")}
|
|
251
|
-
`));return}let c=
|
|
252
|
-
[Provider details unavailable: ${s}]`)),console.log();return}let l=
|
|
251
|
+
`));return}let c=qw(s,a);if(!c){console.log(d.red(`
|
|
252
|
+
[Provider details unavailable: ${s}]`)),console.log();return}let l=Zw(s,a,r.reasoningMode);console.log(d.bold(`
|
|
253
253
|
Provider Details:
|
|
254
|
-
`)),console.log(d.dim(` Provider: ${d.cyan(c.provider)}${c.model?` / ${d.cyan(c.model)}`:""}`)),console.log(d.dim(` Source: ${
|
|
254
|
+
`)),console.log(d.dim(` Provider: ${d.cyan(c.provider)}${c.model?` / ${d.cyan(c.model)}`:""}`)),console.log(d.dim(` Source: ${Jw(c.sourceKind)}`)),console.log(),console.log(d.bold("Capability Matrix:"));for(let u of Qw(c))console.log(d.dim(` - ${u}`));if(console.log(),l.length>0){console.log(d.bold("Common Scenarios:"));for(let u of l){let m=u.decision.status==="block"?d.red:u.decision.status==="warn"?d.yellow:d.green;console.log(m(` - ${u.label}: ${u.decision.status.toUpperCase()}`)),console.log(d.dim(` ${u.decision.summary}`))}console.log()}},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
255
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=
|
|
257
|
-
Thinking: ${a}`)),console.log(d.dim(`Reasoning mode: ${d.cyan(r.reasoningMode)}`)),console.log(d.dim(`Effective control: ${d.cyan(
|
|
258
|
-
`));return}let o=e[0].toLowerCase();if(o==="on"||o==="off"||
|
|
256
|
+
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /provider ")+"Inspect the current provider/model"),console.log(d.dim(" /provider <provider> ")+"Inspect a provider using its default model"),console.log(d.dim(" /provider <provider>/<model> ")+"Inspect a specific provider/model pair"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Shows the provider capability matrix and common 029 policy outcomes.")),console.log(d.dim(" Use this to understand why long-running, harness, or evidence-heavy flows may warn or block.")),console.log()},"detailedHelp")},{name:"thinking",aliases:["think","t"],description:"Show or change reasoning mode (compat alias)",usage:"/thinking [on|off|auto|quick|balanced|deep]",handler:i(async(e,t,n,r)=>{if(e.length===0){let s=Wo(r.provider,r.model),a=r.thinking?d.green("ON"):d.dim("OFF");console.log(d.dim(`
|
|
257
|
+
Thinking: ${a}`)),console.log(d.dim(`Reasoning mode: ${d.cyan(r.reasoningMode)}`)),console.log(d.dim(`Effective control: ${d.cyan(ap(s))}`)),console.log(d.dim(`Actual execution: ${cp(r.reasoningMode,s)}`)),console.log(d.dim(`Usage: /thinking on|off|auto|quick|balanced|deep
|
|
258
|
+
`));return}let o=e[0].toLowerCase();if(o==="on"||o==="off"||Do.includes(o)){let s=o==="on"?"auto":o==="off"?"off":o,a=QC(s,n,r);Br(`Reasoning mode: ${s}`,a);return}console.log(d.red(`
|
|
259
259
|
[Invalid value: ${e[0]}]`)),console.log(d.dim(`Usage: /thinking on|off|auto|quick|balanced|deep
|
|
260
260
|
`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
261
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=
|
|
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(
|
|
264
|
-
`));return}let o=e[0].toLowerCase();if(!
|
|
262
|
+
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /thinking ")+"Show current reasoning status"),console.log(d.dim(" /thinking on ")+"Map to /reasoning auto"),console.log(d.dim(" /thinking off ")+"Map to /reasoning off"),console.log(d.dim(" /thinking auto ")+"Set reasoning mode to auto"),console.log(d.dim(" /thinking quick ")+"Set reasoning mode to quick"),console.log(d.dim(" /thinking balanced ")+"Set reasoning mode to balanced"),console.log(d.dim(" /thinking deep ")+"Set reasoning mode to deep"),console.log(d.dim(" /t ")+"Alias for /thinking"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Compatibility command for the new unified reasoning modes.")),console.log(d.dim(" Use /reasoning for the primary interface.")),console.log()},"detailedHelp")},{name:"reasoning",aliases:["reason"],description:"Show or set reasoning mode",usage:"/reasoning [off|auto|quick|balanced|deep]",handler:i(async(e,t,n,r)=>{if(e.length===0){let a=Wo(r.provider,r.model);console.log(d.dim(`
|
|
263
|
+
Reasoning mode: ${d.cyan(r.reasoningMode)}`)),console.log(d.dim(`Thinking compatibility: ${r.thinking?d.green("ON"):d.dim("OFF")}`)),console.log(d.dim(`Effective control: ${d.cyan(ap(a))}`)),console.log(d.dim(`Actual execution: ${cp(r.reasoningMode,a)}`)),console.log(d.dim(`Usage: /reasoning off|auto|quick|balanced|deep
|
|
264
|
+
`));return}let o=e[0].toLowerCase();if(!Do.includes(o)){console.log(d.red(`
|
|
265
265
|
[Invalid reasoning mode: ${e[0]}]`)),console.log(d.dim(`Usage: /reasoning off|auto|quick|balanced|deep
|
|
266
|
-
`));return}let s=
|
|
266
|
+
`));return}let s=QC(o,n,r);Br(`Reasoning mode: ${o}`,s)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
267
267
|
/reasoning - Set Reasoning Mode
|
|
268
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
269
|
Agent mode: ${d.cyan(r.agentMode.toUpperCase())}`)),console.log(d.dim(`Usage: /agent-mode [ama|sa|toggle]
|
|
270
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
271
|
[Invalid agent mode: ${e[0]}]`)),console.log(d.dim(`Usage: /agent-mode [ama|sa|toggle]
|
|
272
|
-
`));return}let a=
|
|
272
|
+
`));return}let a=S$(s,n,r);Br(`Agent mode: ${s.toUpperCase()}`,a)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
273
273
|
/agent-mode - Adaptive Multi-Agent Mode Control
|
|
274
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
275
|
[Switched to auto mode] (saved)`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
276
276
|
/auto - Quick Switch to Auto Mode
|
|
277
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
|
|
278
|
+
[/skills is deprecated. Use /skill instead]`)),await eb(e,t)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
279
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
|
|
280
|
+
`)),console.log(d.yellow("This command is deprecated. Use /skill instead.")),console.log(),console.log(d.dim(" /skill ")+"List all available skills"),console.log(d.dim(" /skill:<name> ")+"Invoke a skill"),console.log()},"detailedHelp")},{name:"skill",description:"Skill namespace - invoke skills with /skill:name",usage:"/skill[:name] [args]",handler:i(async(e,t,n,r)=>{await eb(e,t)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
281
281
|
/skill - Skill Namespace
|
|
282
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
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]
|
|
@@ -291,99 +291,101 @@ Stall Sidecar log: ${d.cyan(a)}${c}`)),console.log(d.dim(" When on, a one-line
|
|
|
291
291
|
[Invalid value: ${e[0]}]`)),console.log(d.dim(`Usage: /stall-log [on|off]
|
|
292
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
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")},
|
|
294
|
+
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /stall-log ")+"Show current state"),console.log(d.dim(" /stall-log on ")+"Enable + persist to config"),console.log(d.dim(" /stall-log off ")+"Disable + persist to config"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" The Stall Sidecar (FEATURE_178) is the L2 anti-loop LLM judge that")),console.log(d.dim(" fires when the L1 rule-based detector spots a repeat-tool pattern.")),console.log(d.dim(" Off by default (silent happy path). When on, every L2 verdict emits")),console.log(d.dim(" a one-line summary:")),console.log(d.dim(" [Stall Sidecar] isStuck=true \xB7 zhipu/glm-5.1 (inherit) \xB7 1842ms \xB7 sidecar_ok")),console.log(),console.log(d.bold("Equivalent env var:")),console.log(d.dim(" KODAX_STALL_LOG=1 ")+"Same effect, env wins over config"),console.log()},"detailedHelp")},gh,yh,HC,xh,FC],p$={General:["help","copy","exit","clear","compact","reload","extensions","status"],Permission:["mode","auto"],Session:["new","save","load","sessions","history","delete"],Settings:["model","provider","thinking","reasoning","agent-mode","plan","repointel"],Skills:["skill"]};function h$(e){let t=Ad();return e.map(n=>t.get(n)).filter(n=>n!==void 0).filter(n=>n.userInvocable!==!1)}i(h$,"getCommandsForCategory");function g$(e){return e!=="off"}i(g$,"reasoningModeToLegacyThinking");var y$=["auto","off","oss","premium-shared","premium-native"];function x$(e){return e&&y$.includes(e)?e:null}i(x$,"normalizeRepoIntelligenceMode");function JC(e){let t=e?.trim();return!t||t==="default"||t==="reset"||t==="clear"?null:t}i(JC,"normalizeRuntimeOverride");function w$(e,t){return e?e==="toggle"?!t:e==="on"||e==="true"||e==="1"?!0:e==="off"||e==="false"||e==="0"?!1:null:null}i(w$,"resolveToggleFlag");function vc(e){try{return Kn(e),{saved:!0}}catch(t){return{saved:!1,error:t instanceof Error?t:new Error(String(t))}}}i(vc,"persistUserConfig");function Br(e,t){if(t.saved){console.log(d.cyan(`
|
|
295
295
|
[${e}] (saved)`));return}console.log(d.yellow(`
|
|
296
|
-
[${e}]`)),console.log(d.red(`[Config save failed: ${t.error.message}]`))}i(Br,"printPersistedCommandStatus");function
|
|
296
|
+
[${e}]`)),console.log(d.red(`[Config save failed: ${t.error.message}]`))}i(Br,"printPersistedCommandStatus");function QC(e,t,n){let r=g$(e),o=vc({reasoningMode:e,thinking:r});return t.setReasoningMode?t.setReasoningMode(e):(n.reasoningMode=e,n.thinking=r),o}i(QC,"applyReasoningMode");function S$(e,t,n){let r=vc({agentMode:e});return t.setAgentMode?t.setAgentMode(e):n.agentMode=e,r}i(S$,"applyAgentMode");function Ed(e,t,n,r){let o=vc(t);return n.setRepoIntelligenceRuntime?n.setRepoIntelligenceRuntime(e):(e.mode!==void 0&&(r.repoIntelligenceMode=e.mode),e.endpoint!==void 0&&(r.repointelEndpoint=e.endpoint??void 0),e.bin!==void 0&&(r.repointelBin=e.bin??void 0),e.trace!==void 0&&(r.repoIntelligenceTrace=e.trace)),o}i(Ed,"applyRepoIntelligenceRuntimeConfig");function T$(e){let t=e.configuredMode===e.requestedMode?e.configuredMode:`${e.configuredMode} -> ${e.requestedMode}`,n=`${e.effectiveEngine}/${e.effectiveBridge}`,r=e.transport?`, ${e.transport}`:"",o=e.fallbackToOss?", fallback=oss":"";return`${t} => ${n} (${e.status}${r}${o})`}i(T$,"formatRepoIntelligenceSummary");function tb(e){console.log(d.bold(`
|
|
297
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(
|
|
298
|
+
`)),console.log(d.dim(` Configured: ${d.cyan(e.configuredMode)}`)),console.log(d.dim(` Requested: ${d.cyan(e.requestedMode)}`)),console.log(d.dim(` Active: ${d.cyan(`${e.effectiveEngine}/${e.effectiveBridge}`)}`)),console.log(d.dim(` Status: ${d.cyan(e.status)}${e.transport?d.dim(` (${e.transport})`):""}`)),console.log(d.dim(` Trace: ${d.cyan(e.traceEnabled?"on":"off")}`)),console.log(d.dim(` Endpoint: ${e.endpoint}`)),console.log(d.dim(` Bin: ${e.bin}`)),e.clientBuildId&&console.log(d.dim(` Client ID: ${e.clientBuildId}`)),e.daemonBuildId&&console.log(d.dim(` Daemon ID: ${e.daemonBuildId}`)),e.daemonPid!==void 0&&console.log(d.dim(` Daemon PID: ${e.daemonPid}`)),e.daemonStartedAt&&console.log(d.dim(` Daemon Up: ${e.daemonStartedAt}`)),e.fallbackToOss&&console.log(d.yellow(" Fallback: OSS baseline is currently active")),e.error&&console.log(d.red(` Error: ${e.error}`));for(let t of e.warnings)console.log(d.yellow(` Warning: ${t}`));console.log()}i(tb,"printRepoIntelligenceInspection");function C$(e){e.warmed?console.log(d.green(`
|
|
299
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`)),
|
|
300
|
+
[repointel warm did not reach a ready daemon state]`)),e.warmLatencyMs!==void 0&&console.log(d.dim(` Warm latency: ${e.warmLatencyMs} ms`)),tb(e)}i(C$,"printRepoIntelligenceWarmResult");function ZC(e,t){if(t.length!==0){console.log(d.dim(`${e}:`));for(let n of t){let r=n.aliases?.length?` (${n.aliases.join(", ")})`:"";console.log(` ${d.cyan(`/${n.name}`)}${d.dim(r)} ${n.description}`)}console.log()}}i(ZC,"printCommandSection");function b$(){console.log(d.bold(`
|
|
301
301
|
Available Commands:
|
|
302
|
-
`));let e=
|
|
302
|
+
`));let e=Ad(),t=new Set;for(let[r,o]of Object.entries(p$)){let s=h$(o);if(s.length!==0){for(let a of s)t.add(a.name.toLowerCase());ZC(r,s)}}let n=new Map;for(let r of e.getAll()){if(r.userInvocable===!1||t.has(r.name.toLowerCase()))continue;let o=r.source==="extension"?"Extensions":r.source==="skill"?"Skill Commands":r.source==="prompt"?"Prompt Commands":"Other Commands",s=n.get(o)??[];s.push(r),n.set(o,s)}for(let r of E$()){if(t.has(r.name.toLowerCase()))continue;let o=n.get("Extensions")??[];o.push({name:r.name,aliases:r.aliases,description:r.description}),n.set("Extensions",o)}for(let r of["Extensions","Skill Commands","Prompt Commands","Other Commands"])ZC(r,n.get(r)??[]);console.log(d.dim("Special syntax:")),console.log(` ${d.cyan("@path")} Attach image to context`),console.log(` ${d.cyan("!command")} Execute shell command`),console.log(),console.log(d.dim("Skills:")),console.log(` ${d.cyan("/skill")} List all available skills`),console.log(` ${d.cyan("/skill:<name>")} Invoke a skill (e.g., /skill:code-review)`),console.log()}i(b$,"printHelp");function v$(e){let t=kw({topic:e});console.log(`
|
|
303
|
+
${d.cyan(t.title)}`),console.log(t.content),t.nextTopics.length>0&&console.log(d.dim(`
|
|
304
|
+
Related topics: ${t.nextTopics.join(", ")}`)),console.log()}i(v$,"printManualTopic");function I$(e){Hr.size===0&&Md();let t=Hr.get(e.toLowerCase());if(!t){let n=_h(e);if(!n){console.log(d.yellow(`
|
|
303
305
|
[Unknown command: /${e}. Type /help for available commands]`));return}console.log(d.cyan(`
|
|
304
306
|
/${n.name}`)),n.aliases?.length&&console.log(d.dim(`Aliases: ${n.aliases.join(", ")}`)),console.log(d.dim(`
|
|
305
307
|
${n.description}`)),console.log(d.dim(`
|
|
306
|
-
Usage: ${
|
|
308
|
+
Usage: ${M$(n)}`)),console.log();return}t.detailedHelp?t.detailedHelp():(console.log(d.cyan(`
|
|
307
309
|
/${t.name}`)),t.aliases?.length&&console.log(d.dim(`Aliases: ${t.aliases.join(", ")}`)),console.log(d.dim(`
|
|
308
310
|
${t.description}`)),t.usage&&console.log(d.dim(`
|
|
309
|
-
Usage: ${t.usage}`)),console.log())}i(
|
|
311
|
+
Usage: ${t.usage}`)),console.log())}i(I$,"printDetailedHelp");async function k$(e,t,n=[]){let r=n[0]?.toLowerCase(),o=e.contextTokenSnapshot?.currentTokens??Bo(e.messages),s=e.contextTokenSnapshot?.source??"estimate",a=Yw(t.provider),c=yu(t.provider,t.model,t.reasoningMode);if(console.log(d.bold(`
|
|
310
312
|
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=
|
|
313
|
+
`)),console.log(d.dim(` Provider: ${d.cyan(t.provider)}${t.model?` / ${d.cyan(t.model)}`:""}`)),console.log(d.dim(` Permission: ${d.cyan(t.permissionMode)}`)),console.log(d.dim(` Reasoning: ${d.cyan(t.reasoningMode)}`)),console.log(d.dim(` Agent Mode: ${d.cyan(t.agentMode.toUpperCase())}`)),a){let u=sp(a),m=a.transport==="cli-bridge"?d.yellow(u):d.cyan(u);console.log(d.dim(` Provider Cap: ${m}`))}if(c&&c.status!=="allow"){let u=c.status==="block"?d.red:d.yellow;console.log(d.dim(` Provider Policy: ${u(c.summary)}`))}console.log(d.dim(` Session ID: ${e.sessionId}`)),console.log(d.dim(` Messages: ${e.messages.length}`)),console.log(d.dim(` Tokens: ~${o} (${s})`));let l=await Wa({mode:t.repoIntelligenceMode,trace:t.repoIntelligenceTrace});console.log(d.dim(` Repo Intel: ${d.cyan(T$(l))}`)),e.runtimeInfo?.workspaceRoot?console.log(d.dim(` Workspace: ${d.cyan(xn(e.runtimeInfo))}`)):e.gitRoot&&console.log(d.dim(` Workspace: ${d.cyan(e.gitRoot)}`)),(r==="workspace"||r==="worktree"||r==="runtime")&&(e.runtimeInfo?.canonicalRepoRoot&&console.log(d.dim(` Canonical: ${e.runtimeInfo.canonicalRepoRoot}`)),e.runtimeInfo?.executionCwd&&console.log(d.dim(` Exec CWD: ${e.runtimeInfo.executionCwd}`)),e.runtimeInfo?.workspaceKind&&console.log(d.dim(` Kind: ${e.runtimeInfo.workspaceKind}`))),console.log(d.dim(` Created: ${e.createdAt}`)),console.log(d.dim(` Last Active: ${e.lastAccessed}`)),console.log()}i(k$,"printStatus");async function eb(e,t){let n=Rr(t.gitRoot);n.size===0&&await Ho(t.gitRoot),R$(n.listUserInvocable())}i(eb,"handleSkillNamespaceCommand");function R$(e){if(console.log(d.bold(`
|
|
312
314
|
Available Skills:
|
|
313
315
|
`)),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(
|
|
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=
|
|
316
|
+
Skills can be placed in:`)),console.log(d.dim(" - .kodax/skills/")),console.log(d.dim(" - ~/.kodax/skills/"));return}let t=Math.max(...e.map(n=>n.name.length));for(let n of e){let r=n.name.padEnd(t),o=n.argumentHint?` ${n.argumentHint}`:"",s=n.source==="builtin"?" [builtin]":n.source==="user"?" [user]":n.source==="plugin"?" [plugin]":"",a=n.description.length>50?n.description.slice(0,50)+"...":n.description;console.log(` ${d.cyan(`/skill:${r}`)}${d.dim(o)}${d.dim(s)} ${d.dim(a)}`)}console.log(),console.log(d.dim(`Total: ${e.length} skills`)),console.log(d.dim("Usage: /skill:<name> [args] or ask naturally")),console.log()}i(R$,"printSkillsListPiMonoStyle");var Hr=new Es;function Md(e){Hr.size>0||YC(Hr,e)}i(Md,"initCommandRegistry");function Ad(e){return Md(e),Hr}i(Ad,"getCommandRegistry");function E$(){return Er()?.listCommands().filter(t=>t.metadata?.userInvocable!==!1)??[]}i(E$,"getActiveExtensionCommands");function _h(e){let t=Er(),n=e.trim().toLowerCase();if(!n)return;let r=t?.listCommands().find(o=>o.name.trim().toLowerCase()===n||(o.aliases??[]).some(s=>s.trim().toLowerCase()===n));if(r)return r.metadata?.userInvocable===!1?void 0:r}i(_h,"getActiveExtensionCommand");function M$(e){return e.usage??`/${e.name}`}i(M$,"formatExtensionCommandUsage");function A$(e){return Array.isArray(e)?e.map(t=>String(t)).join(", "):e&&typeof e=="object"?JSON.stringify(e):String(e)}i(A$,"formatExtensionDiagnosticValue");function _$(e){if(!e)return;let t=Object.entries(e).filter(([,n])=>n!==void 0).map(([n,r])=>`${n}=${A$(r)}`);return t.length>0?t.join(" | "):void 0}i(_$,"formatExtensionDiagnosticMetadata");function As(e){let t=e.getDiagnostics;if(typeof t=="function")return t.call(e);let n=e.getDefaults,r=typeof n=="function"?n.call(e):void 0;return{loadedExtensions:[],capabilityProviders:e.listCapabilityProviders().map(o=>({id:o.id,kinds:[...o.kinds],source:{kind:"extension",id:`extension:${o.id}`,label:o.id,path:"(runtime)"}})),commands:e.listCommands().map(o=>({name:o.name,aliases:o.aliases,description:o.description,usage:o.usage,metadata:o.metadata,source:{kind:"extension",id:`extension-command:${o.name}`,label:o.name,path:"(runtime)"}})),tools:[],hooks:[],failures:[],defaults:{activeTools:r?.activeTools,modelSelection:r?.modelSelection??{},thinkingLevel:r?.thinkingLevel}}}i(As,"getExtensionRuntimeDiagnostics");function L$(e,t){if(t.invocation)return{prompt:t.invocation.prompt,source:"extension",displayName:t.invocation.displayName??`/${e.name}`,disableModelInvocation:t.invocation.disableModelInvocation,allowedTools:t.invocation.allowedTools,context:t.invocation.context,model:t.invocation.model}}i(L$,"toExtensionInvocationRequest");async function P$(e,t,n){let r=Er();if(!r)return console.log(d.yellow(`
|
|
317
|
+
[Extension runtime is not active for /${e.name}]`)),!1;let o=await e.handler(t,{sessionId:n.sessionId,gitRoot:n.gitRoot,workingDirectory:n.runtimeInfo?.executionCwd??n.gitRoot??process.cwd(),reloadExtensions:i(()=>r.reloadExtensions(),"reloadExtensions"),getDiagnostics:i(()=>As(r),"getDiagnostics"),logger:{debug:i((...a)=>console.debug(`[kodax:extension-command:${e.name}]`,...a),"debug"),info:i((...a)=>console.info(`[kodax:extension-command:${e.name}]`,...a),"info"),warn:i((...a)=>console.warn(`[kodax:extension-command:${e.name}]`,...a),"warn"),error:i((...a)=>console.error(`[kodax:extension-command:${e.name}]`,...a),"error")}});if(!o)return!0;o.message&&console.log(o.message);let s=L$(e,o);return s?{invocation:s}:!0}i(P$,"executeExtensionCommand");function _s(e){let t=e.trim();if(!t.startsWith("/"))return null;let n=t.slice(1).split(/\s+/),o=n[0]?.toLowerCase(),s=n.slice(1).filter(Boolean);if(!o)return null;if(o.startsWith("skill:")){let c=o.slice(6);return c?{command:"skill",args:s,skillInvocation:{name:c}}:{command:"skill",args:s}}let a=o.indexOf(":");if(a>0){let c=o.slice(a+1).trim();o=o.slice(0,a),s=c?[c,...s]:s}return{command:o,args:s}}i(_s,"parseCommand");async function Ls(e,t,n,r){if(Hr.size===0&&Md(t.gitRoot),e.skillInvocation)return await $$({command:e.skillInvocation.name,args:e.args},t);let o=Hr.get(e.command);if(o){if(o.userInvocable===!1)return console.log(d.yellow(`
|
|
316
318
|
[Command /${o.name} is not user-invocable]`)),!1;try{let a=await o.handler(e.args,t,n,r);return a&&typeof a=="object"?a:!0}catch(a){return console.log(d.red(`
|
|
317
|
-
[Command failed: ${a instanceof Error?a.message:String(a)}]`)),!1}}let s=
|
|
319
|
+
[Command failed: ${a instanceof Error?a.message:String(a)}]`)),!1}}let s=_h(e.command);if(s)try{return await P$(s,e.args,t)}catch(a){return console.log(d.red(`
|
|
318
320
|
[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
|
|
321
|
+
[Unknown command: /${e.command}. Type /help for available commands]`)),!1}i(Ls,"executeCommand");async function $$(e,t){let n=Rr(t.gitRoot),r=e.command,o=e.args.join(" ");n.size===0&&await Ho(t.gitRoot);try{let s=n.get(r);if(!s)return console.log(d.red(`
|
|
320
322
|
[Skill not found: ${r}]`)),!1;if(!s.userInvocable)return console.log(d.yellow(`
|
|
321
323
|
[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
|
|
323
|
-
[Error invoking skill: ${s instanceof Error?s.message:String(s)}]`)),!1}}i(
|
|
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(`
|
|
324
|
+
[Invoking skill: ${r}]`)),s.argumentHint&&console.log(d.dim(`Arguments: ${o||"(none)"}`)),console.log();let a=await n.loadFull(r),c={workingDirectory:process.cwd(),projectRoot:t.gitRoot??void 0,sessionId:t.sessionId,environment:{}},l=await Tw(a,o,c);return console.log(d.green(`Skill activated: ${r}`)),console.log(d.dim("The skill context has been prepared for the AI.")),console.log(),{invocation:{prompt:l.content,source:"skill",displayName:r,path:a.skillFilePath,disableModelInvocation:l.disableModelInvocation,userInvocable:a.userInvocable,allowedTools:a.allowedTools,context:a.context,agent:a.agent,argumentHint:a.argumentHint,model:a.model,hooks:a.hooks,skillInvocation:{name:r,path:a.skillFilePath,description:a.description,arguments:o||void 0,allowedTools:a.allowedTools,context:a.context,agent:a.agent,argumentHint:a.argumentHint,model:a.model,hookEvents:a.hooks?Object.entries(a.hooks).filter(([,u])=>Array.isArray(u)&&u.length>0).map(([u])=>u):void 0,expandedContent:l.content}}}}catch(s){return console.log(d.red(`
|
|
325
|
+
[Error invoking skill: ${s instanceof Error?s.message:String(s)}]`)),!1}}i($$,"executeSkillCommand");import{jsx as Q$}from"react/jsx-runtime";import{useState as Z$,useEffect as ub,useCallback as po,useMemo as db,createContext as e1,useContext as fb}from"react";import*as _d from"fs";import*as Ic from"path";import{exec as O$}from"node:child_process";import*as Ps from"node:path";import{promisify as D$}from"node:util";var nb=D$(O$);function N$(e){let t=e.slice(3);if(!t)return;let n=t.indexOf(" -> ");return(n===-1?t:t.slice(n+4)).replace(/^"(.*)"$/,"$1").trim()||void 0}i(N$,"pathFromPorcelainLine");async function rb(e,t=10){try{let[{stdout:n},{stdout:r}]=await Promise.all([nb("git rev-parse --show-toplevel",{cwd:e}),nb("git status --porcelain=v1 -uall",{cwd:e})]),o=n.trim(),s=[],a=new Set;for(let c of r.split(`
|
|
326
|
+
`)){if(!c.trim())continue;let l=N$(c);if(!l)continue;let u=Ps.resolve(o,l),m=Ps.relative(e,u).split(Ps.sep).join("/");if(!(!m||m.startsWith("..")||a.has(m))&&(a.add(m),s.push(m),s.length>=t))break}return s}catch{return[]}}i(rb,"getRecentWorkingSetFiles");function mo(e){let t=e.lastIndexOf("/");if(t===-1)return-1;for(;t>0&&!/\s/.test(e[t-1]??"");)if(t=e.lastIndexOf("/",t-1),t===-1)return-1;return t}i(mo,"findCommandSlashIndex");var oi=class{static{i(this,"FileCompleter")}cwdSource;cache=new Map;cacheTimeout=5e3;recentCache=new Map;recentFilesProvider;constructor(t,n=rb){this.cwdSource=t,this.recentFilesProvider=n}canComplete(t,n){let r=t.slice(0,n),o=r.lastIndexOf("@");return!(o===-1||o>0&&!/\s/.test(r[o-1]??"")||r.slice(o+1).includes(" "))}async getCompletions(t,n){let r=t.slice(0,n),o=r.lastIndexOf("@");if(o===-1)return[];let s=r.slice(o+1),a=[],c=this.resolveCwd(),l=s.lastIndexOf("/"),u=l===-1?c:Ic.join(c,s.slice(0,l)),m=l===-1?s:s.slice(l+1);try{let h=(await this.readdir(u)).filter(g=>g.toLowerCase().startsWith(m.toLowerCase()));for(let g of h){let y=Ic.join(u,g),x=await this.isDirectory(y),w=l===-1?g:s.slice(0,l+1)+g;a.push({text:"@"+w+(x?"/":""),display:g+(x?"/":""),description:x?"directory":"file",type:"file"})}}catch{}if(l===-1){let p=await this.getRecentFiles(c),h=new Set(a.map(x=>x.text)),g=m.toLowerCase(),y=[];for(let x of p){if(m&&!Ic.basename(x).toLowerCase().startsWith(g))continue;let w="@"+x;h.has(w)||(h.add(w),y.push({text:w,display:x,description:"recent",type:"file"}))}a.unshift(...y)}return a}async getRecentFiles(t){let n=Date.now(),r=this.recentCache.get(t);if(r&&r.expiresAt>n)return r.files;let o=await this.recentFilesProvider(t);return this.recentCache.set(t,{files:o,expiresAt:Date.now()+this.cacheTimeout}),o}resolveCwd(){return typeof this.cwdSource=="function"?this.cwdSource():this.cwdSource??process.cwd()}async readdir(t){let n=Date.now(),r=this.cache.get(t);return r&&r.expiresAt>n?r.entries:(r&&this.cache.delete(t),new Promise(o=>{_d.readdir(t,(s,a)=>{s?o([]):(this.cache.set(t,{entries:a,expiresAt:Date.now()+this.cacheTimeout}),o(a))})}))}async isDirectory(t){return new Promise(n=>{_d.stat(t,(r,o)=>{n(!r&&o.isDirectory())})})}},kc=class{static{i(this,"CommandCompleter")}commands;constructor(){this.commands=new Map,this.loadCommands()}loadCommands(){for(let n of Ad().getAll())n.userInvocable!==!1&&this.commands.set(n.name,{description:n.description,aliases:n.aliases??[]});let t=Er();for(let n of t?.listCommands()??[])n.metadata?.userInvocable!==!1&&this.commands.set(n.name,{description:n.description,aliases:n.aliases??[]})}canComplete(t,n){let r=t.slice(0,n),o=mo(r);return o===-1?!1:!r.slice(o).includes(" ")}async getCompletions(t,n){let r=t.slice(0,n),o=mo(r);if(o===-1)return[];this.commands.clear(),this.loadCommands();let s=r.slice(o+1).toLowerCase(),a=[];for(let[c,l]of this.commands){this.fuzzyMatch(s,c)&&a.push({text:"/"+c,display:"/"+c,description:l.description,type:"command"});for(let u of l.aliases)u!==c&&this.fuzzyMatch(s,u)&&a.push({text:"/"+u,display:"/"+u,description:`Alias for /${c}: ${l.description}`,type:"command"})}return a}fuzzyMatch(t,n){if(!t)return!0;let r=t.toLowerCase(),o=n.toLowerCase(),s=0;for(let a=0;a<o.length&&s<r.length;a++)o[a]===r[s]&&s++;return s===r.length}};function ob(e){let t=new oi(e),n=new kc;return async r=>{let o=r.includes("@"),s=r.includes("/");if(!o&&!s)return[[],r];let a=[];if(s&&n.canComplete(r,r.length)){let l=await n.getCompletions(r,r.length);a.push(...l)}if(o&&t.canComplete(r,r.length)){let l=await t.getCompletions(r,r.length);a.push(...l)}return[a.map(l=>l.display),r]}}i(ob,"createCompleter");var Rc=class{static{i(this,"SkillCompleter")}gitRoot;skillsCache=null;cacheTimestamp=0;CACHE_TTL=5e3;constructor(t){this.gitRoot=t}canComplete(t,n){let r=t.slice(0,n);if(!/\/skill:[^\s]*$/.test(r))return!1;let o=r.lastIndexOf("/skill:");return!(o>0&&!/\s/.test(r[o-1]??""))}async getCompletions(t,n){let o=t.slice(0,n).match(/\/skill:([^\s]*)$/);if(!o)return[];let s=(o[1]??"").toLowerCase();return(await this.getSkills()).filter(c=>{let l=c.name.toLowerCase();return l.includes(s)||this.fuzzyIncludes(s,l)}).map(c=>({text:`/skill:${c.name}`,display:c.name,description:this.truncateDescription(c.description),type:"command"})).sort((c,l)=>{let u=c.display.toLowerCase().startsWith(s),m=l.display.toLowerCase().startsWith(s);return u&&!m?-1:!u&&m?1:c.display.length-l.display.length})}setGitRoot(t){this.gitRoot!==t&&(this.gitRoot=t,this.skillsCache=null)}async getSkills(){let t=Date.now();if(this.skillsCache&&t-this.cacheTimestamp<this.CACHE_TTL)return this.skillsCache;try{let n=Rr(this.gitRoot);return n.size===0&&await Ho(this.gitRoot),this.skillsCache=n.listUserInvocable(),this.cacheTimestamp=t,this.skillsCache}catch{return[]}}fuzzyIncludes(t,n){let r=0;for(let o=0;o<n.length&&r<t.length;o++)n[o]===t[r]&&r++;return r===t.length}truncateDescription(t,n=50){return t.length<=n?t:t.slice(0,n-3)+"..."}};var B$=[{name:"plan",description:"Read-only planning mode - blocks all modifications",type:"enum"},{name:"accept-edits",description:"File edits auto-approved, bash requires confirmation",type:"enum"},{name:"auto-in-project",description:"All tools auto within project directory",type:"enum"}],Ld=[{name:"on",description:"Map to reasoning auto",type:"enum"},{name:"off",description:"Disable reasoning",type:"enum"},{name:"auto",description:"Use semantic routing with adaptive depth",type:"enum"},{name:"quick",description:"Low-depth reasoning mode",type:"enum"},{name:"balanced",description:"Medium-depth reasoning mode",type:"enum"},{name:"deep",description:"High-depth reasoning mode",type:"enum"}],ib=Ld.slice(2).concat([{name:"off",description:"Disable reasoning",type:"enum"}]);function H$(e){if(e&&e.includes("/")){let t=e.indexOf("/"),n=e.slice(0,t),r=e.slice(t+1);if(ji(n))try{return es(n).filter(s=>!r||s.toLowerCase().includes(r.toLowerCase())).map(s=>({name:`${n}/${s}`,description:s,type:"enum"}))}catch{}return[]}return Gi().map(t=>({name:t,description:`Switch to ${t} provider`,type:"enum"}))}i(H$,"getModelArgs");var sb=[{name:"on",description:"Enable plan mode for all requests",type:"enum"},{name:"off",description:"Disable plan mode",type:"enum"},{name:"once",description:"Run plan mode for a single request (followed by task)",type:"enum"},{name:"list",description:"List all saved plans",type:"enum"},{name:"resume",description:"Resume a saved plan (followed by plan ID)",type:"enum"},{name:"clear",description:"Clear completed plans",type:"enum"}],Lh=[{name:"workspace",description:"Inspect current workspace/runtime truth in more detail",type:"enum"},{name:"runtime",description:"Alias for workspace runtime inspection",type:"enum"},{name:"worktree",description:"Alias for workspace runtime inspection",type:"enum"}],Ph=[{name:"all",description:"Delete ALL sessions",type:"enum"}],F$=[{name:"status",description:"Inspect the current repo-intelligence runtime state",type:"enum"},{name:"warm",description:"Warm or start the local premium runtime if available",type:"enum"},{name:"mode",description:"Switch repo-intelligence runtime mode",type:"enum"},{name:"trace",description:"Toggle repo-intelligence trace output",type:"enum"},{name:"endpoint",description:"Inspect or override the local repointel daemon endpoint",type:"enum"},{name:"bin",description:"Inspect or override the local repointel command or path",type:"enum"}],W$=[{name:"auto",description:"Resolve to premium-native when available, otherwise fall back to oss",type:"enum"},{name:"off",description:"Disable repo-intelligence injection",type:"enum"},{name:"oss",description:"Use only the public OSS repo-intelligence baseline",type:"enum"},{name:"premium-shared",description:"Use premium without the native KodaX auto lane",type:"enum"},{name:"premium-native",description:"Use premium through the native KodaX bridge",type:"enum"}],U$=[{name:"on",description:"Enable repo-intelligence trace output",type:"enum"},{name:"off",description:"Disable repo-intelligence trace output",type:"enum"},{name:"toggle",description:"Toggle repo-intelligence trace output",type:"enum"}],ab=[{name:"default",description:"Clear the override and use the default value again",type:"enum"}];function j$(e){let[t=""]=e,n=t.toLowerCase(),r=e.length===1&&e[0]===""?0:e.length;return r<=1?F$:r>2?[]:n==="mode"?W$:n==="trace"?U$:n==="endpoint"?[...ab,{name:Rw,description:"Default local repointel daemon endpoint",type:"string"}]:n==="bin"?ab:[]}i(j$,"getRepointelArgs");var G$=new Map([["mode",B$],["thinking",Ld],["think",Ld],["t",Ld],["reasoning",ib],["reason",ib],["plan",sb],["p",sb],["status",Lh],["info",Lh],["ctx",Lh],["delete",Ph],["rm",Ph],["del",Ph]]),K$=new Set(["model","m"]),V$=new Set(["repointel","ri"]);function $h(e,t,n=[]){let r=e.toLowerCase();return K$.has(r)?H$(t):V$.has(r)?j$(n):G$.get(r)??[]}i($h,"getCommandArguments");var Pd=class{static{i(this,"ArgumentCompleter")}canComplete(t,n){let r=t.slice(0,n),o=mo(r);if(o===-1)return!1;let s=r.slice(o),a=s.split(/\s+/);if(a.length>=2&&a[0]!=="")return!0;let c=s.slice(1).toLowerCase();return $h(c).length>0}async getCompletions(t,n){let r=t.slice(0,n),o=mo(r);if(o===-1)return[];let s=r.slice(o),a=s.indexOf(" "),c=(a===-1?s.slice(1):s.slice(1,a)).toLowerCase(),l=a===-1?"":s.slice(a+1),u=l?l.split(/\s+/):[""],m=u.length-1,p=(u[m]??"").toLowerCase(),h=$h(c,p,u);if(!h||h.length===0)return[];let g=new Set(u.slice(0,-1).map(x=>x.toLowerCase()));return h.filter(x=>!g.has(x.name.toLowerCase())).filter(x=>!p||x.name.includes("/")?!0:x.name.toLowerCase().includes(p)).map(x=>({text:x.name,display:x.name,description:x.description,type:"argument"})).sort((x,w)=>{let T=x.display.toLowerCase().startsWith(p),I=w.display.toLowerCase().startsWith(p);return T&&!I?-1:!T&&I?1:x.display.length-w.display.length})}};function z$(e,t){if(!e)return{matched:!0,score:0,highlights:[]};if(e.length>t.length)return{matched:!1,score:0,highlights:[]};let n=e.toLowerCase(),r=t.toLowerCase(),o=0,s=-1,a=[];for(let l=0;l<e.length;l++){let u=n[l];if(u===void 0)continue;let m=r.indexOf(u,s+1);if(m===-1)return{matched:!1,score:0,highlights:[]};m===s+1?o+=10:m===0?o+=5:o-=1,t[m]===e[l]&&(o+=2),a.push(m),s=m}let c=X$(t,a);return o+=c,{matched:!0,score:o,highlights:a}}i(z$,"fuzzyMatch");function X$(e,t){let n=0;for(let r of t)if(r===0)n+=3;else if(r>0){let o=e[r-1];(o===" "||o==="-"||o==="_")&&(n+=2)}return n}i(X$,"calculateWordBoundaryBonus");function Y$(e,t){return e?t.toLowerCase().startsWith(e.toLowerCase()):!0}i(Y$,"prefixMatch");function q$(e,t){if(Y$(e,t)){let o=e?Array.from({length:e.length},(s,a)=>a):[];return{matched:!0,score:100+e.length*10,highlights:o,isPrefix:!0}}return{...z$(e,t),isPrefix:!1}}i(q$,"combinedMatch");function cb(e,t,n=0){return e?t.map(r=>{let o=q$(e,r.text);return{...r,_fuzzyScore:o.matched?o.score:-1,_fuzzyHighlights:o.highlights}}).filter(r=>(r._fuzzyScore??-1)>=n).sort((r,o)=>{let s=(o._fuzzyScore??0)-(r._fuzzyScore??0);return s!==0?s:r.text.length-o.text.length}):t}i(cb,"sortCandidatesCombined");var J$={debounceDelay:100,minTriggerChars:1,maxCompletions:10,minScore:0},Oh=class{static{i(this,"AutocompleteProvider")}completers;options;state;listeners=new Set;debounceTimer=null;lastInput="";lastCursorPos=0;constructor(t={}){this.options={...J$,...t},this.completers=[new Rc(this.options.gitRoot),new Pd,new kc,new oi(this.options.cwd)],this.state={visible:!1,selectedIndex:0,completions:[],loading:!1}}getOptions(){return{...this.options}}getState(){return{...this.state}}subscribe(t){return this.listeners.add(t),()=>this.listeners.delete(t)}updateOptions(t){let n=t.gitRoot!==void 0&&t.gitRoot!==this.options.gitRoot,r=t.cwd!==void 0&&t.cwd!==this.options.cwd;if(this.options={...this.options,...t},n&&this.completers.find(s=>s instanceof Rc)?.setGitRoot(this.options.gitRoot),r){let o=this.completers.findIndex(s=>s instanceof oi);o!==-1&&(this.completers[o]=new oi(this.options.cwd))}}handleInput(t,n){if(this.lastInput=t,this.lastCursorPos=n,this.debounceTimer&&clearTimeout(this.debounceTimer),!this.shouldTrigger(t,n)){this.state.visible&&this.updateState({visible:!1,completions:[],selectedIndex:0});return}this.debounceTimer=setTimeout(()=>{this.fetchCompletions(t,n)},this.options.debounceDelay)}async fetchImmediate(t,n){return this.fetchCompletionsInternal(t,n)}selectPrevious(){if(!this.state.visible||this.state.completions.length===0)return;let t=this.state.selectedIndex>0?this.state.selectedIndex-1:this.state.completions.length-1;this.updateState({selectedIndex:t})}selectNext(){if(!this.state.visible||this.state.completions.length===0)return;let t=this.state.selectedIndex<this.state.completions.length-1?this.state.selectedIndex+1:0;this.updateState({selectedIndex:t})}getSelectedCompletion(){return!this.state.visible||this.state.completions.length===0?null:this.state.completions[this.state.selectedIndex]??null}acceptCompletion(){let t=this.getSelectedCompletion();return t?(this.updateState({visible:!1,completions:[],selectedIndex:0}),t.text):null}acceptCompletionWithType(){let t=this.getSelectedCompletion();return t?(this.updateState({visible:!1,completions:[],selectedIndex:0}),{text:t.text,type:t.type}):null}cancel(){this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.state.visible&&this.updateState({visible:!1,completions:[],selectedIndex:0})}shouldTrigger(t,n){if(t.length<this.options.minTriggerChars)return!1;let r=t.slice(0,n),s=mo(r)!==-1,a=r.lastIndexOf("@"),c=a===0||a>0&&/\s/.test(r[a-1]??"");return s||c}fetchCompletions(t,n){this.updateState({loading:!0}),this.fetchCompletionsInternal(t,n).then(r=>{this.lastInput!==t||this.lastCursorPos!==n||(r.length>0?this.updateState({visible:!0,completions:r.slice(0,this.options.maxCompletions),selectedIndex:0,loading:!1}):this.updateState({visible:!1,completions:[],selectedIndex:0,loading:!1}))}).catch(()=>{this.updateState({loading:!1})})}async fetchCompletionsInternal(t,n){let r=this.completers.filter(l=>l.canComplete(t,n));if(r.length===0)return[];let o=[];for(let l of r)try{let u=await l.getCompletions(t,n);o.push(...u)}catch(u){console.error("[Autocomplete] Completer error:",u)}let s=this.extractPattern(t,n),a=o.map((l,u)=>({_idx:u,text:l.type==="command"&&l.display.startsWith("/")?l.display.slice(1):l.display}));return cb(s,a,this.options.minScore).map(l=>o[l._idx]).filter(l=>l!==void 0)}extractPattern(t,n){let r=t.slice(0,n),o=mo(r);if(o!==-1){let c=r.slice(o),l=c.match(/^\/skill:(\S*)$/);if(l)return l[1]??"";let u=c.match(/^\/(\S*)$/);if(u)return u[1]??"";let m=c.split(/\s+/);return(m[m.length-1]??"").toLowerCase()}let s=r.lastIndexOf("@");if(s!==-1){let c=r.slice(s+1),l=c.lastIndexOf("/");return l===-1?c:c.slice(l+1)}let a=r.match(/(\S+)$/);return a?a[1]??"":""}updateState(t){this.state={...this.state,...t};for(let n of this.listeners)try{n(this.state)}catch(r){console.error("[Autocomplete] Listener error:",r)}}};function lb(e){return new Oh(e)}i(lb,"createAutocompleteProvider");var Dh=e1(null);function Nh({children:e,cwd:t,gitRoot:n}){let r=$d({cwd:t,gitRoot:n,enabled:!0});return Q$(Dh.Provider,{value:r,children:e})}i(Nh,"AutocompleteContextProvider");function ii(){return fb(Dh)}i(ii,"useAutocompleteContext");function t1(e,t){let n={command:"command",file:"file",argument:"argument",skill:"skill"},r={command:"\u26A1",file:"\u{1F4C4}",argument:"\u2022",skill:"\u2605"};return{id:`autocomplete-${t}`,text:e.text,displayText:e.display,description:e.description,type:n[e.type]??"command",icon:r[e.type]??">"}}i(t1,"completionToSuggestion");function $d(e={}){let t=fb(Dh);return t&&!e.cwd&&!e.gitRoot?t:n1(e)}i($d,"useAutocomplete");function n1(e){let{cwd:t,gitRoot:n,enabled:r=!0}=e,o=db(()=>lb({cwd:t,gitRoot:n,debounceDelay:100,minTriggerChars:1,maxCompletions:8}),[]);ub(()=>{o.updateOptions({cwd:t,gitRoot:n})},[o,t,n]);let[s,a]=Z$({visible:!1,selectedIndex:0,completions:[],loading:!1});ub(()=>o.subscribe(T=>{a(T)}),[o]);let c=db(()=>s.completions.map((w,T)=>t1(w,T)),[s.completions]),l=po((w,T)=>{if(!r){o.cancel();return}o.handleInput(w,T)},[o,r]),u=po(()=>s.visible?o.acceptCompletionWithType():null,[o,s.visible]),m=po(()=>s.visible?o.acceptCompletionWithType():null,[o,s.visible]),p=po(()=>{s.visible&&o.selectPrevious()},[o,s.visible]),h=po(()=>{s.visible&&o.selectNext()},[o,s.visible]),g=po(()=>{s.visible&&o.cancel()},[o,s.visible]),y=po(()=>{o.cancel()},[o]),x=po(()=>o,[o]);return{state:s,suggestions:c,handleInput:l,handleTab:u,handleEnter:m,handleUp:p,handleDown:h,handleEscape:g,cancel:y,getProvider:x}}i(n1,"useAutocompleteImpl");import{useCallback as Ec,useRef as mb}from"react";var On=[];function Bh(e={}){let{maxSize:t=1e3,onSave:n}=e,r=mb(-1),o=mb(""),s=Ec((m,p)=>{if(!m.trim())return;if(On[On.length-1]?.text!==m){let g={text:m,timestamp:Date.now(),...p?.pastedContents&&p.pastedContents.length>0?{pastedContents:[...p.pastedContents]}:{}};On.push(g),On.length>t&&On.splice(0,On.length-t),n?.(g)}r.current=-1,o.current=""},[t,n]),a=Ec(()=>On.length===0?null:r.current===-1?(r.current=On.length-1,On[r.current]??null):r.current>0?(r.current--,On[r.current]??null):null,[]),c=Ec(()=>r.current===-1?null:r.current<On.length-1?(r.current++,On[r.current]??null):(r.current=-1,{text:o.current,timestamp:Date.now()}),[]),l=Ec(()=>{r.current=-1,o.current=""},[]),u=Ec(m=>{r.current===-1&&(o.current=m)},[]);return{add:s,navigateUp:a,navigateDown:c,reset:l,saveTempInput:u}}i(Bh,"useInputHistory");function an(e,t,n){return en(e).slice(t,n).join("")}i(an,"sliceByCodePoints");var Mc=class{static{i(this,"TextBuffer")}_text="";_lines=[""];_cursor={row:0,col:0};_rememberedCol=0;_history=[];_historyIndex=-1;_maxHistory;constructor(t={}){this._maxHistory=t.maxHistory??100}get text(){return this._text}get lines(){return[...this._lines]}get cursor(){return{...this._cursor}}get lineCount(){return this._lines.length}get currentLine(){return this._lines[this._cursor.row]??""}get isEmpty(){return this._text.length===0}get currentLineVisualWidth(){return ir(this.currentLine)}get visualCursor(){let t=this._lines[this._cursor.row]??"",n=an(t,0,this._cursor.col);return{row:this._cursor.row,col:ir(n)}}getCharWidthAtCursor(){let t=this._lines[this._cursor.row]??"",r=en(t)[this._cursor.col];return r?or(r)?2:1:0}visualColToLogicalCol(t){let n=this._lines[this._cursor.row]??"",r=en(n),o=0;for(let s=0;s<r.length;s++){let a=or(r[s])?2:1;if(o+a>t)return s;o+=a}return r.length}moveToVisualCol(t){this._cursor.col=this.visualColToLogicalCol(t),this._rememberedCol=this._cursor.col}setText(t){this._saveHistory(),this._setTextInternal(t),this._clampCursor()}replaceRange(t,n,r){this._saveHistory();let o=Math.max(0,Math.min(t,this._text.length)),s=Math.max(o,Math.min(n,this._text.length)),a=this._text.slice(0,o)+r+this._text.slice(s);this._setTextInternal(a),this.moveToAbsoluteOffset(o+r.length)}insert(t,n){if(this._saveHistory(),n?.paste){this._insertText(t);return}let r=t.split(`
|
|
325
327
|
`);for(let o=0;o<r.length;o++)o>0&&this._insertNewline(),this._insertText(r[o])}_insertText(t){let n=this._lines[this._cursor.row],r=an(n,0,this._cursor.col),o=an(n,this._cursor.col);this._lines[this._cursor.row]=r+t+o,this._cursor.col+=pn(t),this._rememberedCol=this._cursor.col,this._updateText()}newline(){this._saveHistory(),this._insertNewline()}_insertNewline(){let t=this._lines[this._cursor.row],n=an(t,0,this._cursor.col),r=an(t,this._cursor.col);this._lines[this._cursor.row]=n,this._lines.splice(this._cursor.row+1,0,r),this._cursor.row++,this._cursor.col=0,this._rememberedCol=0,this._updateText()}backspace(){if(this._cursor.col>0){this._saveHistory();let t=this._lines[this._cursor.row],n=this._cursor.col-1,r=an(t,0,n),o=an(t,this._cursor.col);this._lines[this._cursor.row]=r+o,this._cursor.col=n,this._rememberedCol=this._cursor.col,this._updateText()}else if(this._cursor.row>0){this._saveHistory();let t=this._lines[this._cursor.row],n=this._lines[this._cursor.row-1];this._cursor.col=pn(n),this._lines[this._cursor.row-1]=n+t,this._lines.splice(this._cursor.row,1),this._cursor.row--,this._rememberedCol=this._cursor.col,this._updateText()}}delete(){let t=this._lines[this._cursor.row];if(this._cursor.col<pn(t)){this._saveHistory();let n=an(t,0,this._cursor.col),r=an(t,this._cursor.col+1);this._lines[this._cursor.row]=n+r,this._updateText()}else if(this._cursor.row<this._lines.length-1){this._saveHistory();let n=this._lines[this._cursor.row+1];this._lines[this._cursor.row]=t+n,this._lines.splice(this._cursor.row+1,1),this._updateText()}}move(t){switch(t){case"up":this._moveUp();break;case"down":this._moveDown();break;case"left":this._moveLeft();break;case"right":this._moveRight();break;case"home":this._moveHome();break;case"end":this._moveEnd();break}}_moveUp(){this._cursor.row>0&&(this._cursor.row--,this._clampColumn())}_moveDown(){this._cursor.row<this._lines.length-1&&(this._cursor.row++,this._clampColumn())}_moveLeft(){this._cursor.col>0?(this._cursor.col--,this._rememberedCol=this._cursor.col):this._cursor.row>0&&(this._cursor.row--,this._cursor.col=pn(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col)}_moveRight(){let t=this._lines[this._cursor.row];this._cursor.col<pn(t)?(this._cursor.col++,this._rememberedCol=this._cursor.col):this._cursor.row<this._lines.length-1&&(this._cursor.row++,this._cursor.col=0,this._rememberedCol=0)}_moveHome(){this._cursor.col=0,this._rememberedCol=0}_moveEnd(){this._cursor.col=pn(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col}_clampColumn(){let t=this._lines[this._cursor.row],n=pn(t);this._cursor.col=Math.min(this._rememberedCol,n)}_clampCursor(){this._cursor.row=Math.max(0,Math.min(this._cursor.row,this._lines.length-1)),this._cursor.col=Math.max(0,Math.min(this._cursor.col,pn(this._lines[this._cursor.row]))),this._rememberedCol=this._cursor.col}killLineRight(){let t=this._lines[this._cursor.row];this._cursor.col<pn(t)&&(this._saveHistory(),this._lines[this._cursor.row]=an(t,0,this._cursor.col),this._updateText())}killLineLeft(){if(this._cursor.col>0){this._saveHistory();let t=this._lines[this._cursor.row];this._lines[this._cursor.row]=an(t,this._cursor.col),this._cursor.col=0,this._rememberedCol=0,this._updateText()}}deleteWordLeft(){if(this._cursor.col===0)return;this._saveHistory();let t=this._lines[this._cursor.row],n=this._cursor.col-1,r=en(t);for(;n>0&&/\s/.test(r[n]??"");)n--;for(;n>0&&!/\s/.test(r[n-1]??"");)n--;let o=an(t,0,n),s=an(t,this._cursor.col);this._lines[this._cursor.row]=o+s,this._cursor.col=n,this._rememberedCol=this._cursor.col,this._updateText()}_saveHistory(){this._history=this._history.slice(0,this._historyIndex+1),this._history.push(this._text),this._history.length>this._maxHistory&&this._history.shift(),this._historyIndex=this._history.length-1}undo(){return this._historyIndex>0?(this._historyIndex--,this._text=this._history[this._historyIndex]??"",this._lines=this._text.split(`
|
|
326
328
|
`),this._lines.length===0&&(this._lines=[""]),this._clampCursor(),!0):!1}redo(){return this._historyIndex<this._history.length-1?(this._historyIndex++,this._text=this._history[this._historyIndex]??"",this._lines=this._text.split(`
|
|
327
329
|
`),this._lines.length===0&&(this._lines=[""]),this._clampCursor(),!0):!1}_updateText(){this._text=this._lines.join(`
|
|
328
330
|
`)}_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
|
|
331
|
+
`),this._lines.length===0&&(this._lines=[""])}moveToAbsoluteOffset(t){let r=Math.max(0,Math.min(t,this._text.length));for(let o=0;o<this._lines.length;o++){let s=this._lines[o]??"",a=s.length;if(r<=a){this._cursor={row:o,col:pn(s.slice(0,r))},this._rememberedCol=this._cursor.col;return}r-=a,o<this._lines.length-1&&(r-=1)}this.moveToEnd()}clear(){this._saveHistory(),this._text="",this._lines=[""],this._cursor={row:0,col:0},this._rememberedCol=0}getAbsoluteOffset(){let t=0;for(let r=0;r<this._cursor.row;r++)t+=(this._lines[r]?.length??0)+1;let n=this._lines[this._cursor.row]??"";return t+=an(n,0,this._cursor.col).length,t}isLineContinuation(){return this._lines[this._cursor.row].endsWith("\\")}moveToEnd(){this._cursor.row=this._lines.length-1,this._cursor.col=pn(this._lines[this._cursor.row]??""),this._rememberedCol=this._cursor.col}};import{useState as r1,useCallback as _t,useRef as Hh,useEffect as o1}from"react";function Fh(e={}){let{initialValue:t="",onTextChange:n}=e,r=Hh(null),o=Hh(null),s=Hh(null),[a,c]=r1({text:t,cursor:{row:0,col:0},lines:[""],isPasting:!1,editingMode:t?"typing":"idle"});r.current===null&&(r.current=new Mc,t&&r.current.setText(t)),o.current===null&&(o.current=jC());let l=r.current,u=o.current,m=_t(L=>{c(k=>({text:l.text,cursor:l.cursor,lines:l.lines,isPasting:L?.isPasting??k.isPasting,editingMode:L?.editingMode??k.editingMode})),n?.(l.text)},[l,n]),p=_t(()=>{s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{c(L=>({...L,isPasting:!1,editingMode:L.text?"typing":"idle"})),s.current=null},120)},[]),h=_t(L=>{l.setText(L),m({isPasting:!1,editingMode:L?"typing":"idle"})},[l,m]),g=_t((L,k,P)=>{l.replaceRange(L,k,P),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),y=_t((L,k)=>{let P=k?.paste??!1;if(P&&WC(L)){let Re=L.replace(/\r\n/g,`
|
|
330
332
|
`).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}
|
|
333
|
+
`),{placeholder:_e}=u.registerText(Re);l.insert(_e,{paste:!0}),m({isPasting:!0,editingMode:"pasting"}),p();return}l.insert(L,{paste:!1}),m({isPasting:P,editingMode:P?"pasting":"typing"}),P&&p()},[l,u,p,m]),x=_t(()=>{l.newline(),m({isPasting:!1,editingMode:"typing"})},[l,m]),w=_t(()=>{let L=l.getAbsoluteOffset(),k=bd(l.text,L);k?l.replaceRange(k.start,k.end,""):l.backspace(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),T=_t(()=>{let L=l.getAbsoluteOffset(),k=vd(l.text,L);k?l.replaceRange(k.start,k.end,""):l.delete(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),I=_t(L=>{l.move(L),m()},[l,m]),A=_t(()=>{l.clear(),m({isPasting:!1,editingMode:"idle"})},[l,m]),$=_t(()=>{let L=l.undo();return L&&m(),L},[l,m]),F=_t(()=>{let L=l.redo();return L&&m(),L},[l,m]),D=_t(()=>{l.moveToEnd(),m()},[l,m]),v=_t(L=>{l.moveToAbsoluteOffset(L),m()},[l,m]),z=_t(()=>{l.killLineRight(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),fe=_t(()=>{l.killLineLeft(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),se=_t(()=>{l.deleteWordLeft(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),ge=_t(()=>{s.current&&(clearTimeout(s.current),s.current=null),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]);return o1(()=>()=>{s.current&&clearTimeout(s.current),r.current=null},[]),{buffer:l,text:a.text,cursor:a.cursor,lines:a.lines,isPasting:a.isPasting,editingMode:a.editingMode,pasteStore:u,resetTransientState:ge,setText:h,replaceRange:g,insert:y,newline:x,backspace:w,delete:T,move:I,moveToEnd:D,moveToOffset:v,killLineRight:z,killLineLeft:fe,deleteWordLeft:se,clear:A,undo:$,redo:F}}i(Fh,"useTextBuffer");import{jsx as si,jsxs as Dd}from"react/jsx-runtime";import{useState as yb}from"react";import{useCallback as $s,useEffect as Wh,useRef as Od}from"react";function pb(e,t,n){let r=Math.max(0,Math.min(t,e.length)),o=e.slice(0,r);if(n.type==="command"||n.type==="skill"){let a=o.lastIndexOf("/");return{start:a===-1?0:a,end:r,replacement:n.text}}if(n.type==="argument"){let a=o.match(/\S+$/);return{start:a?r-a[0].length:0,end:r,replacement:n.text}}let s=o.lastIndexOf("@");return{start:s===-1?0:s,end:r,replacement:n.text}}i(pb,"buildAutocompleteReplacement");var s1=500;function hb(e,t,n){return n==="up"?e===0:e>=Math.max(0,t-1)}i(hb,"shouldUseHistoryNavigation");function a1(e){return e.isAutocompleteVisible?"cancel-autocomplete":e.hasText?e.timeSinceLastEscapeMs<s1?"clear-input":"arm-clear":"pass-through"}i(a1,"resolvePromptEscapeBehavior");function c1(e){return e.keyName==="newline"||e.keyName==="return"&&(e.ctrl||e.shift)||e.isPasting?"newline":e.isAutocompleteVisible?"accept-completion-and-submit":e.isLineContinuation?"line-continuation":"submit"}i(c1,"resolvePromptEnterBehavior");function l1(e){if(e.meta&&e.name==="backspace")return"delete-word-left";if(e.ctrl)switch(e.name){case"a":return"move-home";case"e":return"move-end";case"z":return"undo";case"y":return"redo";case"k":return"kill-line-right";case"u":return"kill-line-left";case"w":return"delete-word-left";default:return}}i(l1,"resolvePromptEditingCommand");function gb({onSubmit:e,onExit:t,focus:n=!0,initialValue:r="",cwd:o,gitRoot:s,autocompleteEnabled:a=!0,onInputChange:c,onHistoryRecall:l,onPopPendingInputs:u}){let m=Od(0),{add:p,navigateUp:h,navigateDown:g,reset:y,saveTempInput:x}=Bh(),{buffer:w,text:T,cursor:I,lines:A,isPasting:$,editingMode:F,pasteStore:D,resetTransientState:v,setText:z,replaceRange:fe,clear:se,move:ge,moveToOffset:L,insert:k,backspace:P,newline:Re,delete:_e,undo:Y,redo:V,killLineRight:ae,killLineLeft:Q,deleteWordLeft:J}=Fh({initialValue:r,onTextChange:c}),q=Od(0);Wh(()=>{if($)return;if(T.length<=1e4){q.current=0;return}if(T.length===q.current)return;let ce=D.peekNextId(),{truncatedText:oe,placeholderContent:ze}=UC(T,ce);ze&&(D.registerTruncatedText(ze),q.current=oe.length,z(oe))},[T,$,D,z]);let Ie=ii(),ue=$d({cwd:o,gitRoot:s,enabled:a}),{state:et,suggestions:Ue,handleInput:De,handleTab:me,handleEnter:Pt,handleUp:Rt,handleDown:ee,handleEscape:_}=Ie??ue;Wh(()=>{n||(m.current=0,v(),et.visible&&_())},[et.visible,n,_,v]);let O=Od(T);Wh(()=>{a&&T!==O.current&&(O.current=T,De(T,w.getAbsoluteOffset()))},[a,w,De,T]);let j=$s(ce=>{if(!ce?.text)return;let oe=pb(T,w.getAbsoluteOffset(),ce),ze=T.slice(0,oe.start)+oe.replacement+T.slice(oe.end);return fe(oe.start,oe.end,oe.replacement),ze},[w,fe,T]),te=$s(ce=>{let oe=ce??T;if(!oe.trim())return;let ze=D.expand(oe),B=new Set,nt=/\[(Pasted text|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;for(let wi of oe.matchAll(nt)){let Kr=Number.parseInt(wi[2]??"0",10);Number.isFinite(Kr)&&Kr>0&&B.add(Kr)}let un=[];for(let wi of B){let Kr=D.get(wi);Kr&&un.push(Kr)}p(oe,{pastedContents:un}),e({displayText:oe,fullText:ze,pastedContents:un}),se()},[p,se,e,D,T]),Le=$s(ce=>{if(ce){if(ce.pastedContents&&ce.pastedContents.length>0){for(let oe of ce.pastedContents)D.adopt(oe);l?.({text:ce.text,pastedContents:[...ce.pastedContents]})}z(ce.text)}},[l,D,z]),at=$s(async ce=>{try{let oe=await eS(ce);if(oe.kind==="images"){let ze=oe.blocks.map(B=>`@${B.path}`).join(" ");k(`${ze} `,{paste:!1})}else oe.kind==="error"&&console.warn(`[KodaX paste] ${oe.message}`)}catch(oe){console.warn(`[KodaX paste] image handling failed: ${oe instanceof Error?oe.message:String(oe)}`)}},[k]),ke=Od(!1),Be=$s(async()=>{if(!ke.current){ke.current=!0;try{let ce=await tS();if(ce.kind==="images"){let oe=ce.blocks.map(ze=>`@${ze.path}`).join(" ");k(`${oe} `,{paste:!1})}else ce.kind==="error"&&console.warn(`[KodaX clipboard] ${ce.message}`)}catch(ce){console.warn(`[KodaX clipboard] image handling failed: ${ce instanceof Error?ce.message:String(ce)}`)}finally{ke.current=!1}}},[k]),$t=$s(ce=>{if(!n)return!1;if(ce.name==="v"&&(ce.ctrl||ce.meta))return Be(),!0;if(ce.name==="paste"&&ce.isPasted&&nS(ce.sequence).length>0)return at(ce.sequence),!0;let oe=et.visible&&Ue.length>0;if(ce.name==="tab"&&oe){let B=me();return B&&j(B),!0}if(ce.ctrl&&ce.name==="c")return T.length>0?(se(),y()):t?.(),!0;if(ce.name==="escape")switch(a1({isAutocompleteVisible:oe,hasText:T.length>0,timeSinceLastEscapeMs:Date.now()-m.current})){case"cancel-autocomplete":return _(),m.current=0,!0;case"clear-input":return m.current=0,se(),y(),!0;case"arm-clear":return m.current=Date.now(),!0;default:return!1}if(ce.name==="up"){if(oe)return Rt(),!0;if(ce.ctrl)return ge("up"),!0;if(T.length===0&&u){let B=u();if(typeof B=="string"&&B.length>0)return z(B),!0}if(hb(I.row,A.length,"up")){x(T);let B=h();Le(B)}else ge("up");return!0}if(ce.name==="down"){if(oe)return ee(),!0;if(ce.ctrl)return ge("down"),!0;if(hb(I.row,A.length,"down")){let B=g();Le(B)}else ge("down");return!0}if(ce.name==="left"){let B=w.getAbsoluteOffset(),nt=bd(w.text,B);return nt?L(nt.start):ge("left"),!0}if(ce.name==="right"){let B=w.getAbsoluteOffset(),nt=vd(w.text,B);return nt?L(nt.end):ge("right"),!0}if(ce.name==="home")return ge("home"),!0;if(ce.name==="end")return ge("end"),!0;let ze=l1(ce);if(ze)switch(ze){case"move-home":return ge("home"),!0;case"move-end":return ge("end"),!0;case"undo":return Y(),!0;case"redo":return V(),!0;case"kill-line-right":return ae(),!0;case"kill-line-left":return Q(),!0;case"delete-word-left":return J(),!0;default:break}if(ce.name==="backspace")return P(),!0;if(ce.name==="delete")return _e(),!0;if(ce.name==="return"||ce.name==="newline")switch(c1({keyName:ce.name,ctrl:ce.ctrl,shift:ce.shift,isAutocompleteVisible:oe,isLineContinuation:!!A[I.row]?.endsWith("\\"),isPasting:$})){case"accept-completion-and-submit":{let nt=Pt();if(nt){let un=j(nt);te(un)}else te();return!0}case"newline":return Re(),!0;case"line-continuation":return P(),Re(),!0;default:return te(),!0}return ce.insertable&&!ce.ctrl&&!ce.meta?(k(ce.sequence,ce.isPasted?{paste:!0}:void 0),!0):!1},[j,p,et.visible,P,w,se,I.row,_e,n,ee,_,Rt,Pt,Le,me,at,Be,A,Q,ae,ge,L,g,h,Re,t,u,V,y,x,z,te,Ue.length,T.length,J,$,Y]);return{text:T,cursor:I,lines:A,isPasting:$,terminalFocused:n,editingMode:F,handleKey:$t}}i(gb,"usePromptInputController");var Os=i(({onSubmit:e,onHistoryRecall:t,onPopPendingInputs:n,placeholder:r="Type a message...",prompt:o=">",focus:s=!0,initialValue:a="",cwd:c,gitRoot:l,autocompleteEnabled:u=!0,onInputChange:m})=>{let{exit:p}=so(),{cursor:h,lines:g,handleKey:y,isPasting:x,terminalFocused:w,editingMode:T}=gb({onSubmit:e,onExit:p,focus:s,initialValue:a,cwd:c,gitRoot:l,autocompleteEnabled:u,onInputChange:m,onHistoryRecall:t,onPopPendingInputs:n});return yn(zt.High,I=>y(I),[y]),si(R,{flexDirection:"column",children:si(Jp,{lines:g,cursorRow:h.row,cursorCol:h.col,prompt:o,placeholder:r,focus:s,terminalFocused:w,isPasting:x,editingMode:T,theme:"dark"})})},"InputPrompt"),u1=i(({onSubmit:e,placeholder:t,prompt:n=">"})=>{let[r,o]=yb(""),[s,a]=yb(0);yn(zt.High,p=>{if(p.name==="return")return r.trim()&&(e(r),o(""),a(0)),!0;if(p.name==="backspace"&&s>0){let h=[...r].slice(0,s-1).join(""),g=[...r].slice(s).join("");return o(h+g),a(s-1),!0}if(p.name==="left"&&s>0)return a(s-1),!0;if(p.name==="right"&&s<[...r].length)return a(s+1),!0;if(p.insertable&&!p.ctrl&&!p.meta){let h=[...r].slice(0,s).join(""),g=[...r].slice(s).join("");return o(h+p.sequence+g),a(s+1),!0}return!1},[r,s,e]);let c=re("dark");if(!r)return Dd(R,{children:[Dd(b,{color:c.colors.primary,children:[n," "]}),t&&si(b,{dimColor:!0,children:t}),si(b,{backgroundColor:c.colors.primary,color:"#000000",children:" "})]});let l=[...r].slice(0,s).join(""),u=[...r][s]??" ",m=[...r].slice(s+1).join("");return Dd(R,{children:[Dd(b,{color:c.colors.primary,children:[n," "]}),si(b,{children:l}),si(b,{backgroundColor:c.colors.primary,color:"#000000",children:u}),si(b,{children:m})]})},"SimpleInputPrompt");import{jsx as dt,jsxs as Bt}from"react/jsx-runtime";import{useState as wb,useEffect as Sb}from"react";var xb=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],d1=80,Nd=new Set,Ac=null;function f1(){let e=Array.from(Nd);for(let t of e)t()}i(f1,"dispatchSharedSpinnerTick");function m1(e){return Nd.add(e),Ac===null&&(Ac=setInterval(f1,d1)),()=>{Nd.delete(e),Nd.size===0&&Ac!==null&&(clearInterval(Ac),Ac=null)}}i(m1,"subscribeToSharedSpinnerClock");function Tb(e=!0){let[t,n]=wb(0);return Sb(()=>{if(e)return m1(()=>{n(r=>r+1)})},[e]),t}i(Tb,"useSharedSpinnerTick");var Dn=i(({color:e,theme:t})=>{let n=t??re("dark"),o=Tb(!0)%xb.length,s=e??n.colors.accent;return dt(b,{color:s,children:xb[o]})},"Spinner");function p1(e){return e<=0?0:Math.round(e/4)}i(p1,"estimateOutputTokens");function h1(e){let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/3600),r=Math.floor(t%3600/60),o=t%60;return n===0?`${r}m${o}s`:`${n}h${r}m${o}s`}i(h1,"formatElapsedDuration");var Cb=i(({roundStartedAt:e,charCount:t,theme:n})=>{let r=n??re("dark");if(Tb(e!==null),e===null)return null;let o=g1(Date.now()-e,t);return dt(b,{color:r.colors.dim,children:o})},"SpinnerStatsTail");function g1(e,t){let n=h1(e),r=p1(t);return r>0?` (${n} \xB7 \u2193 ${r} tokens)`:` (${n})`}i(g1,"buildSpinnerStatsText");var bb=i(({label:e,dotCount:t=3,theme:n})=>{let r=n??re("dark"),[o,s]=wb(1);Sb(()=>{let c=setInterval(()=>{s(l=>l%t+1)},300);return()=>clearInterval(c)},[t]);let a=".".repeat(o);return Bt(R,{children:[e&&dt(b,{color:r.colors.text,children:e}),dt(b,{color:r.colors.accent,children:a})]})},"DotsIndicator"),vb=i(({progress:e,label:t,width:n=20,theme:r})=>{let o=r??re("dark"),s=Math.max(0,Math.min(100,e)),a=Math.round(s/100*n),c=n-a,l="\u2588".repeat(a),u="\u2591".repeat(c);return Bt(R,{flexDirection:"column",children:[t&&dt(R,{marginBottom:1,children:dt(b,{color:o.colors.text,children:t})}),Bt(R,{children:[dt(b,{color:o.colors.primary,children:l}),dt(b,{dimColor:!0,children:u}),Bt(b,{children:[" ",s,"%"]})]})]})},"ProgressIndicator"),y1=i(({message:e,showSpinner:t=!1,theme:n})=>{let r=n??re("dark"),o=e??"Thinking";return Bt(R,{children:[t&&dt(R,{marginRight:1,children:dt(Dn,{theme:r})}),Bt(b,{color:r.colors.accent,children:[o,"\u2026"]})]})},"ThinkingIndicator"),x1=i(({message:e,subMessage:t,progress:n,type:r="spinner",compact:o=!1,theme:s})=>{let a=s??re("dark"),c=e??"Loading";return o?Bt(R,{children:[dt(Dn,{theme:a}),Bt(b,{color:a.colors.text,children:[" ",c,"\u2026"]})]}):r==="bar"&&n!==void 0?Bt(R,{flexDirection:"column",children:[dt(vb,{progress:n,label:c,theme:a}),t&&dt(R,{marginTop:1,children:dt(b,{dimColor:!0,children:t})})]}):r==="dots"?Bt(R,{flexDirection:"column",children:[dt(bb,{label:c,theme:a}),t&&dt(R,{marginTop:1,children:dt(b,{dimColor:!0,children:t})})]}):r==="simple"?Bt(R,{flexDirection:"column",children:[Bt(b,{color:a.colors.accent,children:[c,"\u2026"]}),t&&dt(R,{marginTop:1,children:dt(b,{dimColor:!0,children:t})}),n!==void 0&&dt(R,{marginTop:1,children:Bt(b,{dimColor:!0,children:[n,"%"]})})]}):Bt(R,{flexDirection:"column",children:[Bt(R,{children:[dt(Dn,{theme:a}),Bt(b,{color:a.colors.text,children:[" ",c,"\u2026"]}),n!==void 0&&Bt(b,{dimColor:!0,children:[" (",n,"%)"]})]}),t&&dt(R,{marginTop:1,children:dt(b,{dimColor:!0,children:t})})]})},"LoadingIndicator");import{jsx as ye,jsxs as je,Fragment as Zh}from"react/jsx-runtime";import{useEffect as iv,useMemo as pr,memo as wn}from"react";import*as Lc from"node:path";function _c(e){if(hw(e)){let t=gw(e);return t?`[memory:${t}]`:"[memory]"}if(w1(e))return"[memory]"}i(_c,"memoryBadgeFor");function w1(e){let t=Lc.resolve(e),n=kn("projects");if(!t.startsWith(n+Lc.sep)&&t!==n)return!1;let o=t.slice(n.length+1).split(Lc.sep);return o.length>=2&&o[1]==="memory"}i(w1,"isInsideAnyMemoryDir");function qe(e,t=120){return e.length>t?`${e.slice(0,t-3)}...`:e}i(qe,"truncateValue");function Ib(e){if(e)return e.split(/\r?\n/).map(t=>t.trim()).find(Boolean)}i(Ib,"extractFirstMeaningfulLine");function Eb(e){let t=e.match(/^\[([^\]]+)\]\s+(.*)$/);if(!t)return{toolLabel:e};let n=t[1]?.trim(),r=t[2]?.trim()??e,o=new RegExp(`^${n?.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}:`,"i"),s=r.replace(o,"").trim();return{rolePrefix:n?`[${n}]`:void 0,toolLabel:s||r}}i(Eb,"splitDisplayToolName");function Bd(e){let{rolePrefix:t,toolLabel:n}=Eb(e);return t?`${t} ${n}`:n}i(Bd,"normalizeDisplayToolName");function Pc(e){return Eb(e).toolLabel}i(Pc,"stripRolePrefix");function Hd(e){if(!(!e||Array.isArray(e)||typeof e!="object"))return e}i(Hd,"asRecord");function Mb(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i(Mb,"readString");function It(e,...t){for(let n of t){let r=Mb(e?.[n]);if(r)return r}}i(It,"readFirstString");function fr(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim().length>0){let t=Number(e.trim());return Number.isFinite(t)?t:void 0}}i(fr,"readNumber");function Ab(e){if(!Array.isArray(e))return;let t=e.map(n=>typeof n=="string"?n.trim():"").filter(Boolean);return t.length>0?t:void 0}i(Ab,"readStringArray");function S1(e){if(typeof e=="string")return e.trim()||void 0;let t=Hd(e);if(t)return Mb(t.preview)??void 0}i(S1,"extractPreview");function kb(e){if(e)try{return Hd(JSON.parse(e))}catch{return}}i(kb,"parsePreviewRecord");function Oe(e,t){return e&&e.match(new RegExp(`"${t}"\\s*:\\s*"([^"]+)`))?.[1]?.trim()||void 0}i(Oe,"extractFieldFromPreview");function mr(e,t){if(!e)return;let n=e.match(new RegExp(`"${t}"\\s*:\\s*(\\d+)`));return n?.[1]?Number(n[1]):void 0}i(mr,"extractNumberFromPreview");function _b(e){if(!e)return;let t=e.match(/"paths"\s*:\s*\[([^\]]*)/);if(!t?.[1])return;let n=Array.from(t[1].matchAll(/"([^"]+)"/g)).map(r=>r[1]?.trim()??"").filter(Boolean);return n.length>0?n:void 0}i(_b,"extractPathsFromPreview");function T1(e){let t=S1(e);if(typeof e=="string")return{record:kb(t),preview:t};let n=Hd(e),r=kb(t);return n?r?{record:{...n,...r},preview:t}:{record:n,preview:t}:{record:r,preview:t}}i(T1,"resolveInputRecord");function Ds(e,t,n,r=!1){let o=It(t,"path","target_path","targetPath")??Oe(n,"path")??Oe(n,"target_path")??Oe(n,"targetPath"),s=Ab(t?.paths)??_b(n);if(r&&s?.length){if(s.length===1){let a=_c(s[0]);a&&e.push(a),e.push(qe(s[0]))}else e.push(`${s.length} files`);return}if(o){let a=_c(o);a&&e.push(a),e.push(qe(o));return}if(s?.length)if(s.length===1){let a=_c(s[0]);a&&e.push(a),e.push(qe(s[0]))}else e.push(`${s.length} files`)}i(Ds,"pushPathSummary");function Ns(e,t,n){n!==void 0&&e.push(`${t}=${n}`)}i(Ns,"pushNumericSummary");function Uh(e,t,n){let r=It(t,"baseRef","base_ref")??Oe(n,"baseRef")??Oe(n,"base_ref"),o=It(t,"targetRef","target_ref")??Oe(n,"targetRef")??Oe(n,"target_ref");r&&o&&e.push(qe(`${r}...${o}`,88))}i(Uh,"pushRangeSummary");function C1(e,t){let{record:n,preview:r}=T1(t),o=Pc(e).toLowerCase(),s=[];if(o.includes("changed_diff_bundle")){let a=Ab(n?.paths)??_b(r);a?.length?(s.push(a.length===1?qe(a[0]):`${a.length} files`),a.length>1&&s.push(qe(a[0]))):Ds(s,n,r,!0);let c=fr(n?.limit_per_path)??fr(n?.limitPerPath)??mr(r,"limit_per_path")??mr(r,"limitPerPath");return c!==void 0&&s.push(`limit=${c}`),Uh(s,n,r),s}if(o.includes("changed_diff"))return Ds(s,n,r),Ns(s,"offset",fr(n?.offset)??mr(r,"offset")),Ns(s,"limit",fr(n?.limit)??mr(r,"limit")),Uh(s,n,r),s;if(o==="read"||o.includes("read_"))return Ds(s,n,r),Ns(s,"offset",fr(n?.offset)??mr(r,"offset")),Ns(s,"limit",fr(n?.limit)??mr(r,"limit")),s;if(o.includes("changed_scope"))return Ds(s,n,r,!0),Uh(s,n,r),s;if(o.includes("repo_overview"))return Ds(s,n,r),s;if(o.includes("bash")||o.includes("shell_command")){let a=It(n,"command")??Oe(r,"command");return a&&s.push(`cmd=${qe(a,140)}`),s}if(o==="glob"||o.includes("glob_")){let a=It(n,"pattern")??Oe(r,"pattern"),c=It(n,"path","root","directory","cwd")??Oe(r,"path")??Oe(r,"root")??Oe(r,"directory")??Oe(r,"cwd");if(a&&s.push(`pattern=${qe(a,96)}`),c){let l=_c(c);l&&s.push(l),s.push(qe(c))}return s}if(o==="grep"||o.includes("grep_")){let a=It(n,"pattern","query")??Oe(r,"pattern")??Oe(r,"query"),c=It(n,"path","root","directory","cwd")??Oe(r,"path")??Oe(r,"root")??Oe(r,"directory")??Oe(r,"cwd");if(a&&s.push(`pattern=${qe(a,96)}`),c){let l=_c(c);l&&s.push(l),s.push(qe(c))}return s}if(o==="web_fetch"){let a=It(n,"url")??Oe(r,"url"),c=It(n,"provider_id","providerId")??Oe(r,"provider_id")??Oe(r,"providerId"),l=It(n,"capability_id","capabilityId")??Oe(r,"capability_id")??Oe(r,"capabilityId");return a&&s.push(qe(a,120)),c&&s.push(`provider=${qe(c,48)}`),l&&s.push(`cap=${qe(l,48)}`),s}if(o==="mcp_describe"||o==="mcp_read_resource"){let a=It(n,"id")??Oe(r,"id");return a&&s.push(qe(a,120)),s}if(o==="mcp_call"){let a=It(n,"id")??Oe(r,"id"),c=Hd(n?.args),l=c?Object.keys(c).length:void 0;return a&&s.push(qe(a,120)),l!==void 0&&s.push(`args=${l}`),s}if(o==="mcp_search"){let a=It(n,"query")??Oe(r,"query"),c=It(n,"server")??Oe(r,"server"),l=It(n,"kind")??Oe(r,"kind"),u=fr(n?.limit)??mr(r,"limit");return a&&s.push(`query=${qe(a,96)}`),c&&s.push(`server=${qe(c,48)}`),l&&s.push(`kind=${l}`),u!==void 0&&s.push(`limit=${u}`),s}if(o==="web_search"||o==="code_search"||o==="semantic_lookup"){let a=It(n,"query","pattern")??Oe(r,"query")??Oe(r,"pattern"),c=It(n,"path","target_path","targetPath")??Oe(r,"path")??Oe(r,"target_path")??Oe(r,"targetPath"),l=It(n,"provider_id","providerId")??Oe(r,"provider_id")??Oe(r,"providerId"),u=fr(n?.limit)??mr(r,"limit");return a&&s.push(`query=${qe(a,96)}`),c&&s.push(qe(c,72)),l&&s.push(`provider=${qe(l,48)}`),u!==void 0&&s.push(`limit=${u}`),s}return Ds(s,n,r,!0),Ns(s,"offset",fr(n?.offset)??mr(r,"offset")),Ns(s,"limit",fr(n?.limit)??mr(r,"limit")),s}i(C1,"summarizeToolDetails");function Lb(e){let t=e.match(/Showing diff lines\s+(\d+)-(\d+)\s+of\s+(\d+)/i);if(t)return`${t[1]}-${t[2]}/${t[3]}`}i(Lb,"extractChangedDiffRange");function b1(e){return e.split(/\r?\n/).map(t=>t.trim()).find(t=>t.startsWith("+")||t.startsWith("-")||t.startsWith("@@"))}i(b1,"extractDiffPreviewLine");function v1(e){let t=[],n=Lb(e);if(n){let[o,s]=n.split("/");t.push(s?`Diff range: ${o} of ${s}`:`Diff range: ${n}`)}let r=b1(e);return r&&t.push(`Preview: ${qe(r,220)}`),t}i(v1,"formatChangedDiffExplanation");function I1(e){let t=[],n=e.match(/^Changed diff bundle for\s+(\d+)\s+file\(s\)/im);if(n?.[1]){let o=Number(n[1]);Number.isFinite(o)&&o>0&&t.push(`Bundle: ${o===1?"1 file":`${o} files`}`)}let r=e.match(/^===\s+(.+?)\s+===/m);return r?.[1]&&t.push(`First file: ${qe(r[1].trim(),220)}`),t}i(I1,"formatChangedDiffBundleExplanation");function Pb(e,t){if(!t)return[];let n=Pc(e).toLowerCase(),r=[];if(n.includes("changed_diff_bundle")){let o=t.match(/^Changed diff bundle for\s+(\d+)\s+file\(s\)/im);if(o?.[1]){let a=Number(o[1]);Number.isFinite(a)&&a>0&&r.push(a===1?"1 file":`${a} files`)}let s=t.match(/^===\s+(.+?)\s+===/m);return s?.[1]&&r.push(qe(s[1].trim())),r}if(n.includes("changed_diff")){let o=t.match(/^Changed diff for\s+(.+)$/im);o?.[1]&&r.push(qe(o[1].trim()));let s=Lb(t);return s&&r.push(s),r}if(n==="read"||n.includes("read_")){let o=t.match(/^Reading\s+(.+)$/im);return o?.[1]&&r.push(qe(o[1].trim())),r}return[]}i(Pb,"summarizeToolOutputDetails");function jh(e,t){let n=Bd(e);return t.length>0?`${n} - ${t.join(" - ")}`:n}i(jh,"formatToolDetailSummary");function k1(e,t){if(!t)return;let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(k1,"formatDuration");function R1(e){switch(e.status){case N.Scheduled:return"scheduled";case N.Validating:return"validating";case N.AwaitingApproval:return"awaiting approval";case N.Executing:return"running";case N.Error:return"failed";case N.Cancelled:return"cancelled";default:return}}i(R1,"formatToolStatusDetail");function Rb(e){switch(e.status){case N.Scheduled:return["Queued: waiting to start"];case N.Validating:return["Validating: checking inputs and policy"];case N.AwaitingApproval:return["Waiting: approval required before execution"];case N.Executing:return e.progress!==void 0?[`Progress: ${e.progress}% complete`]:e.progressLines&&e.progressLines.length>0?e.progressLines.slice(-5):e.preview?[`Running: ${e.preview}`]:["Running: waiting for tool output"];case N.Cancelled:return["Cancelled before completion"];default:return[]}}i(Rb,"formatToolProgressExplanation");function Gh(e){return e.startsWith("Error:")?"error":e.startsWith("Waiting:")?"accent":e.startsWith("Progress:")||e.startsWith("Running:")?"primary":"dim"}i(Gh,"resolveToolExplanationTone");function E1(e){let t=Ib(e.error),n=typeof e.output=="string"?Ib(e.output):void 0,r=[];return t&&r.push(`Error: ${qe(t,220)}`),e.status===N.Error&&n&&(!t||n.toLowerCase()!==t.toLowerCase())&&r.push(`Last output: ${qe(n,220)}`),r}i(E1,"formatToolFailureExplanation");function Kh(e){if(typeof e.output!="string"||!e.output.trim())return Rb(e);let t=Pc(e.name).toLowerCase();return e.status===N.Error?E1(e):e.status!==N.Success?Rb(e):t.includes("changed_diff_bundle")?I1(e.output):t.includes("changed_diff")?v1(e.output):[]}i(Kh,"formatToolResultExplanation");function Vh(e,t){return jh(e,C1(e,t))}i(Vh,"formatToolSummary");function Fd(e){let t=typeof e.output=="string"?Pb(e.name,e.output):[],n=t.length>0?jh(e.name,t):Vh(e.name,e.input),r=R1(e),o=k1(e.startTime,e.endTime),s=e.status===N.Executing&&e.progress!==void 0?`${e.progress}%`:e.status===N.Executing&&e.preview?e.preview:void 0,a=[r,s,o].filter(Boolean);return a.length>0?`${n} (${a.join(" - ")})`:n}i(Fd,"formatToolCallInlineText");function Wd(e){let t=new Map;for(let n of e){let r=typeof n.output=="string"?Pb(n.name,n.output):[],o=r.length>0?jh(n.name,r):Vh(n.name,n.input),a=n.progressLines&&n.progressLines.length>0?`${o}|${n.id}`:`${o}|${n.error??""}`,c=t.get(a);c?(c.tool=n,c.count+=1):t.set(a,{tool:n,count:1})}return[...t.values()]}i(Wd,"collapseToolCalls");function $c(e){let t=Fd(e.tool);return e.count>1?`${t} x${e.count}`:t}i($c,"formatCollapsedToolInlineText");function Ud(e,t,n){let r=Vh(e,t);return r!==Bd(e)?`[Tools] ${r}`:n>0?`[Tools] ${Bd(e)} (${n} chars)`:`[Tools] ${Bd(e)}`}i(Ud,"formatLiveToolLabel");function zh(e,t=e.length){let n=0,r=Math.min(t,e.length);for(let o=0;o<r;o++)e.charCodeAt(o)===10&&(n+=1);return n}i(zh,"countNewlines");function jd(e,t={}){let n=t.maxChars??1e4,r=t.headChars??2500,o=t.tailChars??2500;if(e.length<=n)return e;let s=e.slice(0,r),a=e.slice(-o),c=zh(e),l=zh(s),u=zh(a),m=Math.max(0,c-l-u);return`${s}
|
|
332
334
|
\u2026 +${m} lines \u2026
|
|
333
|
-
${a}`}i(
|
|
334
|
-
)+`),
|
|
335
|
-
[ \r]*)+(${
|
|
336
|
-
`),o=tn(r.length>0?r:[""],n,0,0);return o.visualLines.length>0?o.visualLines:[""]}i(
|
|
335
|
+
${a}`}i(jd,"truncateUserMessageForDisplay");var $b="(?:\x1B[[0-9;]*m)*",M1=new RegExp(`^(${$b})(?:[ \r]*
|
|
336
|
+
)+`),A1=new RegExp(`(?:
|
|
337
|
+
[ \r]*)+(${$b})$`);function Ob(e){return e.replace(M1,"$1").replace(A1,"$1")}i(Ob,"stripOuterBlankLines");var _1=new Set(["edit","write","multi_edit","insert_after_anchor"]),L1=20;function P1(e){return _1.has(Pc(e.name).trim().toLowerCase())}i(P1,"isMutationTool");function $1(e){return e.startsWith("--- ")||e.startsWith("+++ ")?{color:"dim",skip:!0}:/^(File (edited|created|updated|written)|Content inserted)/.test(e)?{color:"dim",skip:!0}:e.startsWith("@@")?{color:"dim",skip:!1}:e.startsWith("+")?{color:"success",skip:!1}:e.startsWith("-")?{color:"error",skip:!1}:{color:"dim",skip:!1}}i($1,"classifyDiffLine");function O1(e,t,n,r,o){let s=[],a=!1;for(let p of n.split(/\r?\n/)){let{color:h,skip:g}=$1(p);g||((h==="success"||h==="error")&&(a=!0),s.push({text:p,color:h}))}if(!a)return!1;let c=0,l=s.length;for(;c<l&&s[c].text.trim()==="";)c++;for(;l>c&&s[l-1].text.trim()==="";)l--;let u=s.slice(c,l);if(u.length===0)return!1;let m=o?u:u.slice(0,L1);return m.forEach((p,h)=>{Ae(e,`${t}-diff-${h}`,p.text,ft(r,4),{color:p.color,indent:4})}),!o&&u.length>m.length&&Ae(e,`${t}-diff-more`,`... (${u.length-m.length} more lines)`,ft(r,4),{color:"dim",indent:4}),!0}i(O1,"pushDiffRows");var Db=400,D1="... (thinking truncated; press Ctrl+O to inspect full reasoning)",Nb=2e5,N1="... (thinking show-all truncated at 200K chars; full content available via session artifacts)",Wb=1e5,Bb=120,B1=" \u2026 (Ctrl+O to expand)";function Ub(){return process.env.KODAX_THINKING_COLLAPSE!=="0"}i(Ub,"isThinkingCollapseEnabled");function H1(e){let t=e.split(/\r?\n/).map(a=>a.trim()).filter(a=>a.length>0),n=t[0]??"",r=t.length>1,o=n.length>Bb;return{summary:o?`${n.slice(0,Bb).trimEnd()}\u2026`:n,hasMore:r||o}}i(H1,"buildCollapsedThinkingLine");function F1(e,t){if(!e||!t)return e;let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`^\\[Tools\\]\\s+\\[${n}\\]\\s+`,"i"),"[Tools] ").replace(new RegExp(`^\\[Thinking\\]\\s+\\[${n}\\]\\s*`,"i"),"[Thinking] ").replace(new RegExp(`^\\[${n}\\]\\s+thinking\\b`,"i"),"[Thinking]").trim()}i(F1,"normalizeManagedLiveActivityLabel");function Gd(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(Gd,"formatTimestamp");function jb(e){switch(e){case N.Scheduled:return"\u25CB";case N.Validating:return"\u25D0";case N.AwaitingApproval:return"\u23F8";case N.Executing:return"\u25CF";case N.Success:return"\u2713";case N.Error:return"\u2717";case N.Cancelled:return"\u2298";default:return"[tool]"}}i(jb,"getToolStatusIcon");function Gb(e){switch(e){case N.Scheduled:case N.Validating:return"dim";case N.AwaitingApproval:return"accent";case N.Executing:return"primary";case N.Success:return"success";case N.Error:return"error";case N.Cancelled:return"dim";default:return"text"}}i(Gb,"getToolStatusColor");function W1(e,t){let n=Math.max(1,t),r=e.split(`
|
|
338
|
+
`),o=tn(r.length>0?r:[""],n,0,0);return o.visualLines.length>0?o.visualLines:[""]}i(W1,"wrapText");function Xh(e,t,n,r=!1){if(n||r)return e.length>Nb?`${e.slice(0,Nb)}
|
|
337
339
|
|
|
338
|
-
${
|
|
339
|
-
`):e,c=a.length>
|
|
340
|
+
${N1}`:e;let o=e.split(/\r?\n/),s=o.length>t,a=s?o.slice(0,t).join(`
|
|
341
|
+
`):e,c=a.length>Db,l=c?a.slice(0,Db):a;return!s&&!c?e:`${l}
|
|
340
342
|
|
|
341
|
-
${
|
|
342
|
-
`),P=
|
|
343
|
-
`),r=n.slice(0,t),o=n.length>t;return{lines:r,hasMore:o}}i(
|
|
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]=
|
|
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(
|
|
349
|
-
[Executing: ${r}]`));let{stdout:s,stderr:a}=await
|
|
343
|
+
${D1}`}i(Xh,"buildThinkingPreview");function U1(e){for(let t=e.length-1;t>=0;t--)if(e[t]?.type==="user")return t;return 0}i(U1,"findActiveRoundStartIndex");function Ae(e,t,n,r,o){let s=W1(n,r);if(s.length===0){e.push({key:`${t}-0`,text:"",...o});return}s.forEach((a,c)=>{e.push({key:`${t}-${c}`,text:a,...o})})}i(Ae,"pushWrappedRows");function Oc(e,t){e.push({key:t,text:" "})}i(Oc,"pushBlankRow");function ft(e,t=0){return Math.max(20,e-t)}i(ft,"getBodyWidth");function j1(e){if(!e.input)return[];let t=JSON.stringify(e.input,null,2)?.trim();return t?t.split(/\r?\n/).slice(0,6).map((n,r)=>r===0?`input: ${n}`:n):[]}i(j1,"buildToolInputPreview");function G1(e){switch(e){case"H0_DIRECT":return"H0";case"H1_EXECUTE_EVAL":return"H1";case"H2_PLAN_EXECUTE_EVAL":return"H2";default:return e}}i(G1,"formatHarnessProfileShort");function K1(e,t,n,r,o,s=!1,a=!1){Ae(e,`${t}-tool-${n.id}-main`,`${jb(n.status)} ${$c({tool:n,count:r})}`,ft(o,2),{color:Gb(n.status),indent:2,bold:n.status===N.Executing}),Kh(n).forEach((u,m)=>{let p=Gh(u);Ae(e,`${t}-tool-${n.id}-explanation-${m}`,u,ft(o,4),{color:p,indent:4})});let l=n.status===N.Success&&typeof n.output=="string"&&n.output.trim().length>0&&P1(n)&&O1(e,`${t}-tool-${n.id}`,n.output,o,a);if(s){let u=j1(n),m=a?u:u.slice(0,6);m.forEach((p,h)=>{Ae(e,`${t}-tool-${n.id}-input-${h}`,p,ft(o,4),{color:"dim",indent:4})}),!a&&u.length>m.length&&Ae(e,`${t}-tool-${n.id}-input-more`,`... (${u.length-m.length} more lines)`,ft(o,4),{color:"dim",indent:4})}if(s&&!l&&typeof n.output=="string"&&n.output.trim()){let u=n.output.trim().split(/\r?\n/),m=a?u:u.slice(0,8);m.forEach((h,g)=>{Ae(e,`${t}-tool-${n.id}-output-${g}`,h,ft(o,4),{color:"dim",indent:4})});let p=u.length;!a&&p>m.length&&Ae(e,`${t}-tool-${n.id}-output-more`,`... (${p-m.length} more lines)`,ft(o,4),{color:"dim",indent:4})}}i(K1,"buildToolRows");function V1(e,t,n,r){let o=n.status===N.Executing,s=o?"":`${jb(n.status)} `;Ae(e,`${t}-tool-${n.id}-main`,`${s}${$c({tool:n,count:1})}`,ft(r,2),{color:Gb(n.status),indent:2,bold:o,spinner:o}),Kh(n).forEach((c,l)=>{let u=Gh(c);Ae(e,`${t}-tool-${n.id}-explanation-${l}`,c,ft(r,4),{color:u,indent:4})})}i(V1,"buildLiveToolRows");function Kb(e){let{items:t,viewportWidth:n,isLoading:r=!1,maxLines:o=1e3,isThinking:s=!1,thinkingCharCount:a=0,thinkingContent:c="",streamingResponse:l="",currentTool:u,activeToolCalls:m=[],toolInputCharCount:p=0,toolInputContent:h="",iterationHistory:g=[],currentIteration:y=1,isCompacting:x=!1,managedAgentMode:w,managedPhase:T,managedHarnessProfile:I,managedWorkerTitle:A,managedRound:$,managedMaxRounds:F,lastLiveActivityLabel:D,currentTodoActiveForm:v,showFullThinking:z=!1,showDetailedTools:fe=!1,showAllContent:se=!1,showLiveProgressRows:ge=!0}=e,L=[];for(let k of t)switch(k.type){case"user":Ae(L,`${k.id}-header`,`You [${Gd(k.timestamp)}]`,n,{color:"primary",bold:!0,itemId:k.id}),Ae(L,`${k.id}-body`,jd(k.text),ft(n,2),{color:"text",indent:2,itemId:k.id}),L.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break;case"assistant":{let P=se?k.text:k.compactText??k.text;Ae(L,`${k.id}-header`,`Assistant [${Gd(k.timestamp)}]`,n,{color:"secondary",bold:!0,spinner:k.isStreaming,itemId:k.id}),Ae(L,`${k.id}-body`,P,ft(n,2),{color:"text",indent:2,itemId:k.id}),L.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break}case"system":Ae(L,`${k.id}-header`,`System [${Gd(k.timestamp)}]`,n,{color:"dim",bold:!0,itemId:k.id}),Ae(L,`${k.id}-body`,k.text,ft(n,2),{color:"dim",indent:2,itemId:k.id}),L.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break;case"tool_group":Ae(L,`${k.id}-header`,`Tools [${Gd(k.timestamp)}]`,n,{color:"accent",bold:!0,itemId:k.id}),Wd(k.tools).forEach(P=>K1(L,k.id,P.tool,P.count,n,fe,se)),L.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break;case"thinking":{Ae(L,`${k.id}-header`,"Thinking",n,{color:"thinking",italic:!0,itemId:k.id});let P=Ub()&&!z&&!se?H1(k.compactText??k.text):void 0;if(P?.hasMore){Ae(L,`${k.id}-body`,`${P.summary}${B1}`,ft(n,2),{color:"thinking",indent:2,italic:!0,itemId:k.id}),L.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break}let Re=se?Xh(k.text,o,z,se):k.compactText??Xh(k.text,o,z,se);Ae(L,`${k.id}-body`,Re,ft(n,2),{color:"thinking",indent:2,italic:!0,itemId:k.id}),L.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break}case"error":Ae(L,`${k.id}-header`,"\u2717 Error",n,{color:"error",bold:!0,itemId:k.id}),Ae(L,`${k.id}-body`,k.text,ft(n,2),{color:"error",indent:2,itemId:k.id}),L.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break;case"info":Ae(L,`${k.id}-body`,`${k.icon??"\u2139"} ${Ob(se?k.text:k.compactText??k.text)}`,n,{color:"info",itemId:k.id}),L.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break;case"event":Ae(L,`${k.id}-body`,`${k.icon??">"} ${se?k.text:k.compactText??k.text}`,n,{color:"text",itemId:k.id}),L.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break;case"hint":Ae(L,`${k.id}-header`,"\u{1F4A1} Hint",n,{color:"hint",bold:!0,itemId:k.id}),Ae(L,`${k.id}-body`,k.text,ft(n,2),{color:"dim",indent:2,itemId:k.id}),L.push({key:`${k.id}-blank`,text:" ",itemId:k.id});break;default:break}if(ge&&g.length>0&&(g.forEach(k=>{if(Ae(L,`iteration-${k.iteration}-header`,`\u2500\u2500 Round ${k.iteration} \u2500\u2500`,n,{color:"dim",bold:!0}),k.thinkingSummary){let P=k.thinkingLength>60?` (${k.thinkingLength} chars total)`:"";Ae(L,`iteration-${k.iteration}-thinking`,`\u{1F4AD} ${k.thinkingSummary}${P}`,ft(n,1),{color:"thinking",indent:1,italic:!0})}if(k.response){let P=k.response.slice(0,200);Ae(L,`iteration-${k.iteration}-response`,P,ft(n,1),{color:"text",indent:1}),k.response.length>200&&Ae(L,`iteration-${k.iteration}-response-more`,`... (${k.response.length} chars total)`,ft(n,1),{color:"dim",indent:1})}k.toolsUsed.length>0&&Ae(L,`iteration-${k.iteration}-tools`,`* tools: ${k.toolsUsed.join(", ")}`,ft(n,1),{color:"accent",indent:1}),Oc(L,`iteration-${k.iteration}-blank`)}),Ae(L,"iteration-current-header",`\u2500\u2500 Round ${y} (current) \u2500\u2500`,n,{color:"accent",bold:!0}),Oc(L,"iteration-current-blank")),r&&c){let k=Xh(c,o,z,se);Ae(L,"thinking-stream-header","Thinking",n,{color:"thinking",italic:!0}),Ae(L,"thinking-stream-body",k,ft(n,2),{color:"thinking",indent:2,italic:!0}),Oc(L,"thinking-stream-blank")}if(r){let k="Thinking",P="",Re=G1(I),_e=F1(D,A),Y=A??"Scout",V=T==="routing"?`[${w?w.toUpperCase():"AMA"} Routing] `:T==="preflight"?`[${w?w.toUpperCase():"AMA"} ${Y}] `:T==="verifying"?`[${w?w.toUpperCase():"AMA"} Verifying] `:I?`[${w?w.toUpperCase():"AMA"} ${Re??I}${A?` - ${A}`:""}] `:"",ae=m.filter(ue=>ue.status===N.Executing).length,Q=m.filter(ue=>ue.status===N.Success).length,J=m.filter(ue=>ue.status===N.Error).length,q=m.filter(ue=>ue.status===N.Cancelled).length,Ie=m.length>0&&(ae>0||!l);if(x)k="Compacting";else if(T==="verifying")P=V,k="checking agent output";else if(Ie){let ue=[];if(ae>0&&ue.push(`${ae} running`),Q>0&&ue.push(`${Q} done`),J>0&&ue.push(`${J} error`),q>0&&ue.push(`${q} cancelled`),ue.length===0&&ue.push(`${m.length} tools`),Ae(L,"loading-tools-header",`${V}[Tools] ${ue.join(", ")}`,n,{color:"primary",bold:!0,spinner:ae>0}),m.forEach(et=>{V1(L,"loading-tools",et,n)}),Oc(L,"loading-tools-blank"),ae>0&&!l&&!ge)return L}else if(v)P=V||"[Plan] ",k=v;else if(u)P=V||"[Tool] ",k=_e?.startsWith("[Tools]")?_e:Ud(u,h,p);else if(s){P=V||"[Thinking] ";let ue=$&&F&&$>1?` round ${$}/${F}`:"";k=a>0?`${a} chars${ue}`:_e?`${_e}${ue}`:`processing${ue}`}else _e&&(k=_e);ge&&Ae(L,"loading-indicator",`${P}${k}...`,n,{color:"accent",spinner:!0})}if(l){let k=l.lastIndexOf(`
|
|
344
|
+
`),P=k>=0?l.slice(0,k+1):"";P.length>0&&(Ae(L,"streaming-header","Assistant",n,{color:"secondary",bold:!0}),Ae(L,"streaming-body",P,ft(n,2),{color:"text",indent:2}),Oc(L,"streaming-blank"))}return L}i(Kb,"buildTranscriptRows");function z1(e,t,n=1e3,r=!1,o=!1,s=!1){return Bs(e,t,n,r,void 0,o,s)}i(z1,"buildStaticTranscriptSections");var Hb=new WeakMap,Fb=new Set(["thinking","tool_group"]);function X1(){return process.env.KODAX_TRANSCRIPT_TIGHT!=="0"}i(X1,"isTightRunSpacingEnabled");function Y1(e,t){return X1()?t.map((n,r)=>{let o=e[r],s=e[r+1];if(!o||!s||!Fb.has(o.type)||!Fb.has(s.type))return n;let a=n.rows,c=a[a.length-1];return c&&c.text===" "&&c.key.endsWith("-blank")?{...n,rows:a.slice(0,-1)}:n}):t}i(Y1,"suppressTightRunBlanks");function Bs(e,t,n=1e3,r=!1,o,s=!1,a=!1){let c=e.map(l=>{let u=r||!!o?.has(l.id),m=`${t}|${n}|${s?1:0}|${u?1:0}|${Ub()?1:0}|${a?1:0}`,p=Hb.get(l);if(p!==void 0&&p.sig===m)return p.section;let h={key:l.id,rows:Kb({items:[l],viewportWidth:t,maxLines:n,showAllContent:s,showDetailedTools:u,showFullThinking:a})};return Hb.set(l,{sig:m,section:h}),h});return Y1(e,c)}i(Bs,"buildHistoryItemTranscriptSections");function q1(e,t){return{key:e,rows:Kb(t)}}i(q1,"buildDynamicTranscriptSection");function Kd(e){let{items:t,viewportWidth:n,maxLines:r=1e3,showDetailedTools:o=!1,showAllContent:s=!1,showFullThinking:a=!1,windowed:c=!1}=e;if(c)return{staticSections:[],activeItems:t};let l=U1(t),u=t.slice(0,l),m=t.slice(l);return{staticSections:z1(u,n,r,o,s,a),activeItems:m}}i(Kd,"buildTranscriptStaticPortion");function Vd(e){let{activeItems:t,viewportWidth:n,maxLines:r=1e3,showDetailedTools:o=!1,showAllContent:s=!1,showFullThinking:a=!1,expandedItemKeys:c,...l}=e,u=Bs(t,n,r,o,c,s,a),m=q1("active-pending",{...l,items:[],managedLiveEvents:[],lastLiveActivityLabel:l.lastLiveActivityLabel,viewportWidth:n,maxLines:r,showAllContent:s,showDetailedTools:o,showFullThinking:a,expandedItemKeys:c}),p=m.rows.length>0?[m]:[];return{sections:u,previewSections:p}}i(Vd,"buildTranscriptDynamicPortion");function zd(e,t){return{staticSections:e.staticSections,sections:t.sections,rows:ai(t.sections),previewSections:t.previewSections,previewRows:ai(t.previewSections)}}i(zd,"composeTranscriptRenderModel");function Vb(e,t,n){let r=zd(e,t);return n?{...r,staticSections:[n,...r.staticSections]}:r}i(Vb,"buildInlinePromptRenderModel");function zb(e,t,n,r){let o=Number.isFinite(r)?Math.max(1,Math.floor(r)):1,s=[...t,...n],a=Math.max(0,s.length-o),c=s.slice(a),l=e.flatMap(h=>h.rows),u=s.slice(0,a).filter(h=>h.spinner!==!0);return{committedSections:[...l,...u].map((h,g)=>({key:`il-${g}`,rows:[{...h,key:`il-${g}`}]})),liveRows:c}}i(zb,"splitInlineLedgerModel");function J1(e){return e.replace(/^(You|Assistant|Tools|System) \[\d{1,2}:\d{2}[^\]]*\]$/u,"$1")}i(J1,"stripHeaderTimestamp");function Xb(e){let t=5381;for(let n of e.rows){let r=J1(n.text);for(let o=0;o<n.key.length;o++)t=(t<<5)+t+n.key.charCodeAt(o)|0;t=(t<<5)+t+0|0;for(let o=0;o<r.length;o++)t=(t<<5)+t+r.charCodeAt(o)|0;t=(t<<5)+t+1|0}return{key:e.key,fingerprint:`${t>>>0}`}}i(Xb,"identifyInlineCommitSection");function Xd(e){let t=Kd({items:e.items,viewportWidth:e.viewportWidth,maxLines:e.maxLines,showDetailedTools:e.showDetailedTools,showAllContent:e.showAllContent,showFullThinking:e.showFullThinking,windowed:e.windowed}),{items:n,...r}=e,o=Vd({...r,activeItems:t.activeItems});return zd(t,o)}i(Xd,"buildTranscriptRenderModel");function ai(e){return e.flatMap(t=>t.rows)}i(ai,"flattenTranscriptSections");function Yb(e){let t=5381;for(let n of e.rows){let r=`${n.key}\0${n.text}`;for(let o=0;o<r.length;o++)t=Math.imul(t,33)+r.charCodeAt(o)|0}return{key:e.key,fingerprint:`${e.rows.length}:${(t>>>0).toString(36)}`}}i(Yb,"identifyTranscriptSection");function Yh(e){let t=[...e.staticSections,...e.sections];return{staticSections:[],sections:t,rows:ai(t),previewSections:[...e.previewSections],previewRows:ai(e.previewSections)}}i(Yh,"materializeTranscriptRenderModel");function qb(e,t={}){let{start:n,end:r,viewportTop:o,viewportHeight:s,viewportRows:a,scrollOffset:c=0,windowed:l=!1}=t;if(typeof o=="number"&&typeof s=="number"){let u=Math.max(0,o),m=Math.max(u,o+Math.max(0,s));return e.slice(u,m)}return typeof n=="number"&&typeof r=="number"?e.slice(Math.max(0,n),Math.max(0,r)):l?Jh(e,a,c):e}i(qb,"resolveVisibleTranscriptRows");var Q1=200,Z1=50,qh=30;function Jb(e,t,n=Q1,r=Z1){let o=t.current,s=o?e.findIndex(l=>l.id===o.id):-1,a=s>=0?s:o?Math.min(o.idx,Math.max(0,e.length-n)):0;e.length-a>n+r&&(a=e.length-n);let c=e[a];return c&&(o?.id!==c.id||o.idx!==a)?t.current={id:c.id,idx:a}:!c&&o&&(t.current=null),a}i(Jb,"computeTranscriptCapStart");function Qb(e,t){if(t<=0||e.length===0)return[];let n=0,r=0;for(let o=e.length-1;o>=0;o--)if(e[o]?.type==="user"&&(n++,n>t)){r=o+1;break}return e.slice(r)}i(Qb,"sliceHistoryToRecentRounds");function Jh(e,t,n=0){if(!t||t<=0)return e;let r=Math.max(0,n),o=Math.max(0,e.length-r),s=Math.max(0,o-t);return e.slice(s,o)}i(Jh,"getVisibleTranscriptRows");function Zb(e,t,n){if(!t||!n||n<=0)return 0;let r=ai(e),o=e.find(u=>u.key===t);if(!o||o.rows.length===0)return 0;let s=o.rows[0]?.key,a=r.findIndex(u=>u.key===s);if(a===-1)return 0;let c=Math.max(0,a-Math.floor(n/3)),l=Math.min(r.length,c+n);return Math.max(0,r.length-l)}i(Zb,"resolveScrollOffsetForTranscriptItem");function ev(e,t){if(t)switch(t){case"warning":return e.colors.warning;case"info":return e.colors.info;case"hint":return e.colors.hint;default:return e.colors[t]}}i(ev,"resolveTranscriptColor");var Yd="__transcript_hidden_divider__";function tv(e,t){let n=e===1?"message":"messages";return{id:Yd,type:"info",timestamp:t?Math.max(0,t-1):0,text:`${e} earlier ${n} hidden \u2014 press Ctrl+E to show all`,icon:"\u2191"}}i(tv,"buildTranscriptHiddenDivider");function Qh(e){return e.id===Yd}i(Qh,"isTranscriptHiddenDivider");var nv=new ss(500);function eO(e){let t=en(e),n=[],r=[],o=0,s=0;for(let a of t)n.push(o),r.push(s),o+=a.length,s+=hp(a);return{graphemes:t,codeUnitOffsets:n,visualOffsets:r,length:t.length,displayWidth:s}}i(eO,"buildTranscriptTextMetrics");function Dc(e){let t=nv.get(e);if(t)return t;let n=eO(e);return nv.set(e,n),n}i(Dc,"getTranscriptTextMetrics");function ho(e){return Dc(e).length}i(ho,"getTranscriptTextLength");function rv(e){return Dc(e).displayWidth}i(rv,"getTranscriptTextDisplayWidth");function qd(e,t){let n=Dc(e),r=Math.max(0,Math.min(n.length-1,t));return n.graphemes[r]??""}i(qd,"charAtTranscriptText");function Hs(e,t,n){let r=Dc(e),o=Math.max(0,Math.min(r.length,Math.floor(t))),s=typeof n=="number"?Math.max(o,Math.min(r.length,Math.floor(n))):r.length;return r.graphemes.slice(o,s).join("")}i(Hs,"sliceTranscriptText");function ov(e,t){let n=Dc(e),r=Math.max(0,Math.floor(t));if(r<=0||n.length===0)return 0;for(let o=0;o<n.length;o+=1){let s=n.visualOffsets[o]??0,a=o+1<n.length?n.visualOffsets[o+1]??n.displayWidth:n.displayWidth;if(r<a||r===s)return o}return n.length}i(ov,"resolveTranscriptTextIndexAtVisualColumn");function Jd(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(Jd,"formatTimestamp");function tO(e,t){let n=e.split(`
|
|
345
|
+
`),r=n.slice(0,t),o=n.length>t;return{lines:r,hasMore:o}}i(tO,"truncateLines");function nO(e){switch(e){case N.Scheduled:return"\u25CB";case N.Validating:return"\u25D0";case N.AwaitingApproval:return"\u23F8";case N.Executing:return"\u25CF";case N.Success:return"\u2713";case N.Error:return"\u2717";case N.Cancelled:return"\u2298";default:return"?"}}i(nO,"getToolStatusIcon");function rO(e,t){switch(e){case N.Scheduled:case N.Validating:return t.colors.dim;case N.AwaitingApproval:return t.colors.accent;case N.Executing:return t.colors.primary;case N.Success:return t.colors.success;case N.Error:return t.colors.error;case N.Cancelled:return t.colors.dim;default:return t.colors.text}}i(rO,"getToolStatusColor");var oO=wn(({item:e,theme:t})=>{let n=pr(()=>jd(e.text),[e.text]);return je(R,{flexDirection:"column",marginBottom:1,children:[je(R,{children:[ye(b,{color:t.colors.primary,bold:!0,children:"You"}),je(b,{dimColor:!0,children:[" [",Jd(e.timestamp),"]"]})]}),ye(R,{marginLeft:2,children:ye(b,{color:t.colors.text,children:n})})]})}),iO=wn(({item:e,theme:t,maxLines:n})=>{let r=e.compactText??e.text,{lines:o,hasMore:s}=tO(r,n);return je(R,{flexDirection:"column",marginBottom:1,children:[je(R,{children:[ye(b,{color:t.colors.secondary,bold:!0,children:"Assistant"}),e.isStreaming&&je(Zh,{children:[ye(b,{children:" "}),ye(Dn,{color:t.colors.accent})]}),je(b,{dimColor:!0,children:[" [",Jd(e.timestamp),"]"]})]}),je(R,{marginLeft:2,flexDirection:"column",children:[o.map((a,c)=>ye(b,{color:t.colors.text,children:a||" "},c)),s&&je(b,{dimColor:!0,children:["... (",r.split(`
|
|
346
|
+
`).length-n," more lines)"]})]})]})}),sO=wn(({item:e,theme:t})=>je(R,{flexDirection:"column",marginBottom:1,children:[je(R,{children:[ye(b,{color:t.colors.dim,bold:!0,children:"System"}),je(b,{dimColor:!0,children:[" [",Jd(e.timestamp),"]"]})]}),ye(R,{marginLeft:2,children:ye(b,{dimColor:!0,children:e.text})})]})),aO=wn(({tool:e,count:t=1,theme:n})=>{let r=nO(e.status),o=rO(e.status,n);return je(R,{flexDirection:"column",marginLeft:2,children:[je(R,{children:[je(b,{color:o,children:[r," "]}),ye(b,{color:n.colors.text,bold:!0,children:$c({tool:e,count:t})})]}),e.error&&ye(R,{marginLeft:2,children:ye(b,{color:n.colors.error,children:e.error})})]})}),cO=wn(({item:e,theme:t})=>{let n=Wd(e.tools);return je(R,{flexDirection:"column",marginBottom:1,children:[je(R,{children:[ye(b,{color:t.colors.accent,bold:!0,children:"Tools"}),je(b,{dimColor:!0,children:[" [",Jd(e.timestamp),"]"]})]}),n.map(r=>ye(aO,{tool:r.tool,count:r.count,theme:t},`${r.tool.id}-${r.count}`))]})}),lO=wn(({item:e,theme:t})=>je(R,{flexDirection:"column",marginBottom:1,children:[ye(R,{children:ye(b,{color:t.colors.thinking,italic:!0,children:"Thinking"})}),ye(R,{marginLeft:2,children:ye(b,{color:t.colors.thinking,italic:!0,children:e.compactText??e.text})})]})),uO=wn(({item:e,theme:t})=>je(R,{flexDirection:"column",marginBottom:1,children:[ye(R,{children:je(b,{color:t.colors.error,bold:!0,children:["\u2717"," Error"]})}),ye(R,{marginLeft:2,children:ye(b,{color:t.colors.error,children:e.text})})]})),dO=wn(({item:e,theme:t})=>ye(R,{flexDirection:"column",marginBottom:1,children:je(b,{color:t.colors.text,children:[ye(b,{color:t.colors.accent,bold:!0,children:e.icon??">"}),ye(b,{children:" "}),e.compactText??e.text]})})),fO=wn(({item:e,theme:t})=>ye(R,{flexDirection:"column",marginBottom:e.tightSpacing?0:1,children:je(b,{color:t.colors.info,children:[je(b,{bold:!0,children:[e.icon??"\u2139"," "]}),e.compactText??e.text]})})),mO=wn(({item:e,theme:t})=>je(R,{flexDirection:"column",marginBottom:1,children:[ye(R,{children:je(b,{color:t.colors.hint,bold:!0,children:["\u{1F4A1}"," Hint"]})}),ye(R,{marginLeft:2,children:ye(b,{dimColor:!0,children:e.text})})]})),pO=wn(({item:e,theme:t,maxLines:n=1e3})=>{let r=pr(()=>re("dark"),[]),o=t??r;switch(e.type){case"user":return ye(oO,{item:e,theme:o});case"assistant":return ye(iO,{item:e,theme:o,maxLines:n});case"system":return ye(sO,{item:e,theme:o});case"tool_group":return ye(cO,{item:e,theme:o});case"thinking":return ye(lO,{item:e,theme:o});case"error":return ye(uO,{item:e,theme:o});case"event":return ye(dO,{item:e,theme:o});case"info":return ye(fO,{item:e,theme:o});case"hint":return ye(mO,{item:e,theme:o});default:return ye(R,{children:ye(b,{dimColor:!0,children:"Unknown item type"})})}});function hO(e,t){if(e.theme!==t.theme||(e.animateSpinners??!0)!==(t.animateSpinners??!0)||(e.selectedItem??!1)!==(t.selectedItem??!1))return!1;let n=e.row,r=t.row;if(n!==r){if(n.key!==r.key||n.text!==r.text||n.color!==r.color||n.bold!==r.bold||n.italic!==r.italic||n.indent!==r.indent||n.spinner!==r.spinner||n.itemId!==r.itemId)return!1}let o=e.selectionRange,s=t.selectionRange;return o===s?!0:!o||!s?!1:o.start===s.start&&o.end===s.end}i(hO,"areTranscriptRowPropsEqual");var sv=wn(({row:e,theme:t,animateSpinners:n=!0,selectedItem:r=!1,selectionRange:o})=>{let s=ev(t,e.color),a=e.text===" "?"":e.text,c=a||" ",l=o&&a?Hs(a,o.start,o.end):"",u=o&&a?Hs(a,0,o.start):a,m=o&&a?Hs(a,o.end):"",p=r&&!o,h=!p&&e.color==="dim",g={bold:e.bold||p,italic:e.italic,dimColor:h};return je(R,{marginLeft:e.indent??0,children:[e.spinner&&n&&je(Zh,{children:[ye(Dn,{color:t.colors.accent,theme:t}),ye(b,{children:" "})]}),ye(b,{color:p?t.colors.accent:s,...g,children:o&&a?je(Zh,{children:[u?ye(b,{color:p?t.colors.accent:s,...g,children:u}):null,ye(b,{backgroundColor:t.colors.accent,color:t.colors.background,bold:!0,italic:e.italic,children:l}),m?ye(b,{color:p?t.colors.accent:s,...g,children:m}):null]}):c})]})},hO),eg=wn(({section:e,theme:t,animateSpinners:n=!0})=>ye(R,{flexDirection:"column",children:e.rows.map(r=>ye(sv,{row:r,theme:t,animateSpinners:n},r.key))})),ci=i(({items:e,isLoading:t=!1,maxLines:n=1e3,isThinking:r=!1,thinkingCharCount:o=0,thinkingContent:s="",streamingResponse:a="",currentTool:c,activeToolCalls:l,toolInputCharCount:u=0,toolInputContent:m="",iterationHistory:p=[],currentIteration:h=1,isCompacting:g=!1,agentMode:y,managedPhase:x,managedHarnessProfile:w,managedWorkerTitle:T,managedRound:I,managedMaxRounds:A,managedGlobalWorkBudget:$,managedBudgetUsage:F,managedBudgetApprovalRequired:D,lastLiveActivityLabel:v,viewportRows:z,viewportWidth:fe,scrollOffset:se=0,animateSpinners:ge=!0,windowed:L=!1,showFullThinking:k=!1,showDetailedTools:P=!1,showAllContent:Re=!1,showLiveProgressRows:_e=!0,selectedItemId:Y,expandedItemKeys:V,onMetricsChange:ae,onVisibleRowsChange:Q,rendererWindow:J,selectedTextRanges:q,transcriptModel:Ie,visibleRowsOverride:ue})=>{let et=pr(()=>re("dark"),[]),{stdout:Ue}=cr(),De=fe??Ue?.columns??80,me=pr(()=>Ie??Xd({items:e,viewportWidth:De,isLoading:t,maxLines:n,isThinking:r,thinkingCharCount:o,thinkingContent:s,streamingResponse:a,currentTool:c,activeToolCalls:l,toolInputCharCount:u,toolInputContent:m,iterationHistory:p,currentIteration:h,isCompacting:g,managedAgentMode:y,managedPhase:x,managedHarnessProfile:w,managedWorkerTitle:T,managedRound:I,managedMaxRounds:A,managedGlobalWorkBudget:$,managedBudgetUsage:F,managedBudgetApprovalRequired:D,lastLiveActivityLabel:v,windowed:L,showFullThinking:k,showDetailedTools:P,showAllContent:Re,showLiveProgressRows:_e,expandedItemKeys:V}),[Ie,e,De,t,n,r,o,s,a,c,l,u,m,p,h,g,y,x,w,T,I,A,$,F,D,v,L,k,P,Re,_e,V]),Pt=me.staticSections,Rt=me.rows,ee=me.previewRows,_=pr(()=>[...Rt,...ee],[ee,Rt]),j=!(_.length>0)&&e.length===0&&!t,te=pr(()=>L||J||ue?_:Rt,[_,J,Rt,ue,L]),Le=pr(()=>ue||qb(te,{viewportTop:J?Math.max(0,J.viewportTop):void 0,viewportHeight:J?Math.max(0,J.viewportHeight):void 0,start:void 0,end:void 0,viewportRows:z,scrollOffset:se,windowed:L}),[J,se,z,ue,L,te]),at=pr(()=>ue||L||J?Le:_,[_,J,Le,ue,L]),ke=pr(()=>_,[_]),Be=J?Math.max(0,J.viewportHeight):z;return iv(()=>{ae?.({scrollHeight:_.length,viewportHeight:J?Math.max(0,J.viewportHeight):Be??_.length})},[_.length,Be,ae,J]),iv(()=>{Q?.({rows:at,allRows:ke})},[ke,Q,at]),j?ye(R,{paddingY:1,children:ye(b,{dimColor:!0,children:"No messages yet. Start typing to begin."})}):je(R,{flexDirection:"column",children:[!L&&Pt.length>0&&ye(ws,{items:Pt,children:i($t=>ye(eg,{section:$t,theme:et,animateSpinners:ge},$t.key),"children")}),at.map($t=>ye(sv,{row:$t,theme:et,animateSpinners:ge,selectedItem:Y?$t.key.startsWith(`${Y}-`):!1,selectionRange:q?.get($t.key)},$t.key))]})},"MessageList");var gO=i(({role:e,content:t})=>{let n=pr(()=>re("dark"),[]),r={user:n.colors.primary,assistant:n.colors.secondary,system:n.colors.dim}[e];return je(R,{flexDirection:"column",marginBottom:1,children:[ye(b,{color:r,bold:!0,children:e==="user"?">":e==="assistant"?"<":"#"}),ye(b,{children:t})]})},"SimpleMessageDisplay");import{jsx as ng,jsxs as tf}from"react/jsx-runtime";import $O,{useMemo as rg}from"react";var yO="\u{1F504}",xO="\u2588",wO="\u2592",SO="\u2192",TO=" \xB7 ";function CO(e){switch(e){case"auto":return"auto";case"balanced":return"balanced";case"quick":return"quick";case"deep":return"deep";case"off":return"off";default:return e.toLowerCase()}}i(CO,"formatReasoningModeShort");function bO(e){switch(e){case"budget":case"B":return"B";case"effort":case"E":return"E";case"toggle":case"T":return"T";case"prompt":case"-":return"-";case"unknown":case"?":return"?";default:return e??""}}i(bO,"formatReasoningCapabilityShort");function vO(e){switch(e){case"off":return"dim";case"quick":return"green";case"balanced":return"yellow";case"deep":return"magenta";default:return"cyan"}}i(vO,"getReasoningColor");function av(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(av,"formatTokenCount");function IO(e){let t=Math.min(10,Math.max(0,Math.round(e/10))),n=10-t;return`${xO.repeat(t)}${wO.repeat(n)}`}i(IO,"createMiniProgressBar");function kO(e,t,n){if(t===0)return"green";let r=e/t*100,o=n*(2/3);return r>=n?"red":r>=o?"yellow":"green"}i(kO,"getContextColor");function RO(e){switch(e.toLowerCase()){case"plan":return"blue";case"accept-edits":return"green";case"auto":case"auto-in-project":return"warning";default:return"magenta"}}i(RO,"getPermissionModeColor");function EO(e,t){let n=bs(e);return!(e==="auto"||e==="auto-in-project")||!t?n:`${n}${t==="llm"?"[LLM]":"[RULES]"}`}i(EO,"buildPermissionModeText");function MO(e){let t=e.toLowerCase();return t.includes("read")||t.includes("view")||t.includes("search")||t.includes("list")||t.includes("find")||t.includes("browser")||t.includes("get")?"Read":t.includes("write")||t.includes("replace")||t.includes("edit")||t.includes("modify")?"Edit":t.includes("command")||t.includes("bash")||t.includes("terminal")?"Bash":t.includes("ask")||t.includes("notify")||t.includes("user")||t.includes("question")?"Ask":t.includes("think")||t.includes("reason")?"Think":e}i(MO,"formatToolAction");function AO(e){switch(e){case"H0_DIRECT":return"H0";case"H1_EXECUTE_EVAL":return"H1";case"H2_PLAN_EXECUTE_EVAL":return"H2";default:return e}}i(AO,"formatHarnessProfileShort");function Qd(e,t){return t&&t>0?`${e} (${t} chars)`:e}i(Qd,"formatThinkingStatus");function Zd(e,t,n){let r=MO(e);return n?`${r} (${n}...)`:t&&t>0?`${r} (${t} chars)`:r}i(Zd,"formatToolStatus");function tg({activeToolCount:e,currentTool:t,isThinkingActive:n,thinkingCharCount:r,isCompacting:o,toolInputCharCount:s,toolInputContent:a,managedPhase:c,managedHarnessProfile:l,managedWorkerTitle:u,managedIdleWaiting:m,managedIdleWaitingPendingCount:p}){let h=e&&e>0?`${e} tool${e===1?"":"s"} running`:void 0;if(o)return"Compacting";if(c==="routing")return h?`Routing - ${h}`:t?`Routing - ${Zd(t,s,a)}`:n?Qd("Routing",r):"Routing";if(c==="preflight"){let g=u??"Scout";return h?`${g} - ${h}`:t?`${g} - ${Zd(t,s,a)}`:n?Qd(g,r):g}if(l){let y=`${AO(l)}${u?` - ${u}`:""}`;if(m===!0&&!h&&!t&&!n){let x=p??0,w=x>1?`waiting for ${x} children`:x===1?"waiting for 1 child":"idle - resuming";return`${y} - ${w}`}return h?`${y} - ${h}`:t?`${y} - ${Zd(t,s,a)}`:n?Qd(y,r):y}if(h)return h;if(t)return Zd(t,s,a);if(n)return Qd("Thinking",r)}i(tg,"buildBusyStatusText");function _O({agentMode:e,managedPhase:t,managedHarnessProfile:n,managedRound:r,managedMaxRounds:o,managedGlobalWorkBudget:s,managedBudgetUsage:a,currentIteration:c,maxIter:l}){let u=[];return t==="routing"||t==="preflight"||(n&&r&&o&&r>1&&u.push({label:"Round",current:r,max:o}),n&&s&&typeof a=="number"?u.push({label:"Work",current:a,max:s}):e==="sa"&&c&&l&&u.push({label:"Iter",current:c,max:l})),u}i(_O,"resolveIterationSegments");function LO(e){if(e.length!==0)return`${yO} ${e.map(t=>`${t.label} ${t.current}/${t.max}`).join(TO)}`}i(LO,"formatLabeledIterationStatus");function PO(e){let{sessionId:t,permissionMode:n,agentMode:r,provider:o,model:s,tokenUsage:a,currentTool:c,activeToolCount:l,thinking:u,isThinkingActive:m,thinkingCharCount:p,reasoningMode:h=u?"auto":"off",reasoningCapability:g,isCompacting:y,toolInputCharCount:x,toolInputContent:w,currentIteration:T,maxIter:I,contextUsage:A,showBusyStatus:$=!0,managedPhase:F,managedHarnessProfile:D,managedWorkerTitle:v,managedRound:z,managedMaxRounds:fe,managedGlobalWorkBudget:se,managedBudgetUsage:ge,managedIdleWaiting:L,managedIdleWaitingPendingCount:k}=e,P=[{id:"agent-mode",text:`KodaX - ${r.toUpperCase()}`,color:"primary",bold:!0},{id:"permission-mode",text:EO(n,e.autoModeEngine),color:RO(n)}],Re=CO(h),_e=bO(g);P.push({id:"reasoning-mode",text:g?`${Re}/${_e}`:Re,color:vO(h)});let Y=_O({agentMode:r,managedPhase:F,managedHarnessProfile:D,managedRound:z,managedMaxRounds:fe,managedGlobalWorkBudget:se,managedBudgetUsage:ge,currentIteration:T,maxIter:I}),V=LO(Y);if(V){let Q=Math.max(...Y.map(q=>q.current/q.max)),J="green";Q>=.8?J="red":Q>=.5&&(J="yellow"),P.push({id:"iteration-status",text:V,color:J})}P.push({id:"session-id",text:t,color:"dim"});let ae=$?tg({activeToolCount:l,currentTool:c,isThinkingActive:m,thinkingCharCount:p,isCompacting:y,toolInputCharCount:x,toolInputContent:w,managedPhase:F,managedHarnessProfile:D,managedWorkerTitle:v,managedIdleWaiting:L,managedIdleWaitingPendingCount:k}):void 0;if(ae&&P.push({id:"busy-status",text:ae,color:"dim"}),P.push({id:"provider-model",text:`${o}/${s}`,color:"secondary"}),A&&A.contextWindow!==0){let Q=Math.round(A.currentTokens/A.contextWindow*100),J=av(A.currentTokens),q=av(A.contextWindow),Ie=IO(Q);P.push({id:"context-usage",text:`${J}/${q} ${Ie} ${Q}%`,color:kO(A.currentTokens,A.contextWindow,A.triggerPercent)})}return a&&P.push({id:"token-usage",text:`${a.input}${SO}${a.output} (${a.total})`,color:"dim"}),P}i(PO,"buildStatusBarSegments");function ef(e){let t=PO(e);return{text:t.map(n=>n.text).join(" | "),segments:t}}i(ef,"buildStatusBarViewModel");function OO(e,t){if(e.color)return t.colors[e.color]??e.color;switch(e.tone){case"primary":return t.colors.primary;case"accent":return t.colors.accent;case"success":return t.colors.success;case"warning":return t.colors.warning;case"error":return t.colors.error;default:return t.colors.dim}}i(OO,"resolveViewModelSegmentColor");var Fs=i(({viewModel:e,...t})=>{let n=rg(()=>re("dark"),[]),r=rg(()=>e??ef(t),[t,e]);return ng(R,{paddingX:1,children:r.segments.map((o,s)=>tf($O.Fragment,{children:[ng(b,{color:OO(o,n),bold:o.bold,children:o.text}),s<r.segments.length-1?ng(b,{dimColor:!0,children:" | "}):null]},o.id))})},"StatusBar"),DO=i(({permissionMode:e,provider:t,model:n})=>{let r=rg(()=>re("dark"),[]);return tf(R,{children:[tf(b,{color:r.colors.primary,bold:!0,children:["[",e,"]"]}),tf(b,{dimColor:!0,children:[" ",t,"/",n]})]})},"SimpleStatusBar");import{jsx as go,jsxs as of}from"react/jsx-runtime";import{useState as og,useCallback as nf,useMemo as cv}from"react";function rf(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(rf,"generateId");function NO(e){let t={id:e.id,timestamp:e.timestamp};switch(e.role){case"user":return{...t,type:"user",text:e.content};case"assistant":return{...t,type:"assistant",text:e.content};case"system":return{...t,type:"system",text:e.content};default:return{...t,type:"info",text:e.content}}}i(NO,"messageToHistoryItem");var BO=i(({model:e,provider:t,onSubmit:n,permissionMode:r="accept-edits",agentMode:o="ama"})=>{let{stdout:s}=cr(),a=cv(()=>re("dark"),[]),[c,l]=og({messages:[],isLoading:!1,sessionId:rf()}),[u,m]=og(null),[p,h]=og(),g=nf(async T=>{if(!T.trim())return;let I={id:rf(),role:"user",content:T,timestamp:Date.now()};l(A=>({...A,messages:[...A.messages,I],isLoading:!0}));try{await n(T)}catch(A){let $={id:rf(),role:"system",content:`Error: ${A instanceof Error?A.message:"Unknown error"}`,timestamp:Date.now()};l(F=>({...F,messages:[...F.messages,$],isLoading:!1}))}finally{l(A=>({...A,isLoading:!1}))}},[n]),y=nf((T,I)=>{let A={id:rf(),role:T,content:I,timestamp:Date.now()};l($=>({...$,messages:[...$.messages,A]}))},[]),x=nf((T,I)=>{m({input:T,output:I,total:T+I})},[]),w=nf(T=>{h(T)},[]);return of(R,{flexDirection:"column",children:[go(R,{flexGrow:1,flexDirection:"column",overflow:"hidden",children:go(ci,{items:c.messages.map(NO),isLoading:c.isLoading})}),go(R,{flexShrink:0,children:go(Os,{onSubmit:i(T=>g(T.fullText),"onSubmit"),prompt:">",focus:!c.isLoading})}),go(R,{flexShrink:0,children:go(Fs,{sessionId:c.sessionId,permissionMode:r,agentMode:o,provider:t,model:e,tokenUsage:u??void 0,currentTool:p})})]})},"App"),HO=i(({model:e,provider:t,onInput:n})=>{let r=cv(()=>re("dark"),[]);return of(R,{flexDirection:"column",children:[of(R,{marginBottom:1,children:[go(b,{color:r.colors.primary,bold:!0,children:"KodaX CLI"}),of(b,{dimColor:!0,children:[" ","- ",t,"/",e]})]}),go(Os,{onSubmit:i(o=>n(o.fullText),"onSubmit"),placeholder:"Type a message...",prompt:">"})]})},"SimpleApp");import{jsx as FO}from"react/jsx-runtime";var ig=i(({top:e,topRows:t=0,transcript:n,renderTranscriptWindow:r,footer:o,overlay:s,stickyHeader:a,jumpToLatest:c,width:l,scrollTop:u=0,scrollHeight:m=0,viewportHeight:p=0,stickyScroll:h=!0,scrollRef:g,onScrollTopChange:y,onStickyChange:x,onWindowChange:w,overscanRows:T})=>FO(qp,{width:l,top:e,topRows:t,stickyHeader:a,jumpToLatest:c,scrollable:n,renderScrollableWindow:r,overlay:s,bottom:o,scrollTop:u,scrollHeight:m,viewportHeight:p,stickyScroll:h,scrollRef:g,onScrollTopChange:y,onStickyChange:x,onWindowChange:w,overscanRows:T}),"FullscreenTranscriptLayout");import{jsx as lv}from"react/jsx-runtime";function Ws({copyMessage:e=!1,copyToolInput:t=!1,copyOnSelect:n=!1,toggleDetail:r=!1,selectionNavigation:o=!1,matchNavigation:s=!1,dismissAction:a}){let c=[];return o&&c.push("\u2190/\u2192 browse"),e&&c.push("C copy"),t&&c.push("I tool input"),n&&c.push("Mouse select copies"),r&&c.push("V details"),s&&c.push("N/Shift+N matches"),a==="clear"&&c.push("Esc clear"),a==="close-search"&&c.push("Esc close search"),c.length>0?c.join(" | "):void 0}i(Ws,"buildMessageActionsText");var sg=i(({copyMessage:e=!1,copyToolInput:t=!1,copyOnSelect:n=!1,toggleDetail:r=!1,selectionNavigation:o=!1,matchNavigation:s=!1,dismissAction:a})=>{let c=re("dark"),l=Ws({copyMessage:e,copyToolInput:t,copyOnSelect:n,toggleDetail:r,selectionNavigation:o,matchNavigation:s,dismissAction:a});return l?lv(R,{paddingX:1,children:lv(b,{color:c.colors.dim,children:l})}):null},"MessageActions");import{jsx as uv}from"react/jsx-runtime";function ag({itemSummary:e,itemKind:t,position:n,detailState:r="compact"}){if(!e||!n||n.total<=0)return;let o=r==="expanded"?"expanded":"compact",s=t?`${t}: `:"";return`Selected item ${n.current}/${n.total}: ${s}${e} | ${o}`}i(ag,"buildMessageSelectorText");var WO=i(({itemSummary:e,itemKind:t,position:n,detailState:r="compact"})=>{let o=re("dark"),s=ag({itemSummary:e,itemKind:t,position:n,detailState:r});return s?uv(R,{paddingX:1,children:uv(b,{color:o.colors.dim,children:s})}):null},"MessageSelector");import{jsx as Us,jsxs as UO}from"react/jsx-runtime";import{useMemo as dv}from"react";function sf(e,t){return Math.max(1,tn(e.length>0?e.split(`
|
|
347
|
+
`):[""],Math.max(1,t),0,0).visualLines.length)}i(sf,"countWrappedRows");var cg=i(({browse:e,selection:t,search:n,chromeMode:r="inline",...o})=>{let s=r==="inline",a=t?.itemSummary,c=t?.position,l=t?.itemKind,u=t?.detailState??"compact",m=t?.copyCapabilities,p=m?.message??!1,h=m?.toolInput??!1,g=m?.copyOnSelect??!1,y=t?.toggleDetail??!1,x=t?.navigationCapabilities?.selection??!1,w=n?.statusText,T=n?.matches?.length??0,I=n?.surface,A=o.viewportWidth??80,$=Math.max(1,A-2),F=n?.query?.trim()?"close-search":a||p||h||y||x?"clear":void 0,D=ag({itemSummary:a,itemKind:l,position:c,detailState:u}),v=dv(()=>Ws({copyMessage:p,copyToolInput:h,copyOnSelect:g,toggleDetail:y,selectionNavigation:x,matchNavigation:!!w&&T>0,dismissAction:F}),[p,h,x,y,F,T,w,g]),z=dv(()=>{if(!s)return 0;let se=0;return e?.hintText&&(se+=sf(e.hintText,$)),D&&(se+=sf(D,$)),v&&(se+=sf(v,$)),w&&(se+=sf(w,$)),I&&(se+=1),se},[v,e?.hintText,$,s,w,I,D]),fe=typeof o.viewportRows=="number"?Math.max(1,o.viewportRows-z):o.viewportRows;return UO(R,{flexDirection:"column",flexGrow:o.windowed?0:1,children:[s&&e?.hintText?Us(R,{paddingX:1,children:Us(b,{dimColor:!0,children:e.hintText})}):null,null,s&&(p||h||g||y||x||T>0)?Us(sg,{copyMessage:p,copyToolInput:h,copyOnSelect:g,toggleDetail:y,selectionNavigation:x,matchNavigation:!!w&&T>0,dismissAction:F}):null,s&&w?Us(R,{paddingX:1,children:Us(b,{dimColor:!0,children:w})}):null,s?I:null,Us(ci,{...o,viewportRows:fe})]})},"TranscriptViewport");import{jsx as fv}from"react/jsx-runtime";var lg=i(e=>fv(R,{flexDirection:"column",children:fv(Os,{...e})}),"PromptComposer");import{jsx as li,jsxs as af}from"react/jsx-runtime";import mv from"react";var pv=" \xB7 ",cf=i(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=re("dark");return t.length===0?null:li(R,{flexGrow:1,children:t.map((r,o)=>af(mv.Fragment,{children:[li(b,{color:r.accent?n.colors.accent:n.colors.dim,bold:r.accent,children:r.label}),o<t.length-1?li(b,{dimColor:!0,children:pv}):null]},r.id))})},"PromptFooterLeftSide"),lf=i(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=re("dark");return t.length===0?null:li(R,{justifyContent:"flex-end",children:t.map((r,o)=>af(mv.Fragment,{children:[li(b,{color:r.accent?n.colors.primary:n.colors.dim,bold:r.accent,children:r.label}),o<t.length-1?li(b,{dimColor:!0,children:pv}):null]},r.id))})},"PromptFooterRightSide"),uf=i(({left:e,right:t,queued:n,stashNotice:r,notifications:o,inlineNotices:s,activityBar:a,todoSurface:c,composer:l,inlineSuggestions:u,helpSurface:m,taskBar:p,statusLine:h,inlineDialogs:g})=>af(R,{flexDirection:"column",children:[e||t?af(R,{paddingX:1,children:[li(R,{flexGrow:1,children:e}),t]}):null,n,r,o,s,a,c,l,u,g,m,p,h]}),"PromptFooter");import{jsx as ug,jsxs as hv}from"react/jsx-runtime";var dg=i(({sections:e,title:t="Help"})=>{let n=re("dark"),r=e.filter(o=>o.items.length>0);return r.length===0?null:hv(R,{flexDirection:"column",borderStyle:"round",borderColor:n.colors.accent,paddingX:1,marginTop:1,children:[ug(b,{color:n.colors.accent,bold:!0,children:t}),r.map(o=>hv(R,{flexDirection:"column",children:[ug(b,{color:n.colors.primary,bold:!0,children:o.title}),ug(b,{dimColor:!0,children:o.items.map(s=>s.label).join(" | ")})]},o.id))]})},"PromptHelpMenu");import{jsx as gv}from"react/jsx-runtime";import{createContext as xv,useContext as wv,useReducer as jO,useCallback as Ht,useMemo as GO}from"react";var KO=150;function ff(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(ff,"generateId");function df(e){return{...e,id:ff(),timestamp:Date.now()}}i(df,"createHistoryItem");function yv(e){if(e.length<=KO)return e;let t=0,n=0;for(let r=e.length-1;r>=0;r--)if(e[r]?.type==="user"&&(t++,t>50)){n=r;break}return n>0?e.slice(n):e}i(yv,"trimHistoryToRounds");function fg(e,t){return e.filter(n=>n.type==="user"&&typeof n.id=="string"&&!t.has(n.id))}i(fg,"selectUncommittedLedgerUserItems");function mg(e){return{...e,id:ff(),startTime:Date.now()}}i(mg,"createToolCall");function VO(e,t){switch(t.type){case"SET_STREAMING_STATE":return{...e,streamingState:t.payload};case"APPEND_TO_RESPONSE":return{...e,currentResponse:e.currentResponse+t.payload};case"CLEAR_RESPONSE":return{...e,currentResponse:""};case"ADD_HISTORY_ITEM":return{...e,history:yv([...e.history,t.payload])};case"BULK_ADD_HISTORY_ITEMS":return{...e,history:yv([...e.history,...t.payload])};case"UPDATE_HISTORY_ITEM":return{...e,history:e.history.map(n=>n.id===t.payload.id?{...n,...t.payload.updates}:n)};case"CLEAR_HISTORY":return{...e,history:[]};case"ADD_TOOL_CALL":return{...e,pendingToolCalls:[...e.pendingToolCalls,t.payload]};case"UPDATE_TOOL_CALL":return{...e,pendingToolCalls:e.pendingToolCalls.map(n=>n.id===t.payload.id?{...n,...t.payload.updates}:n)};case"CLEAR_TOOL_CALLS":return{...e,pendingToolCalls:[]};case"SET_SESSION_ID":return{...e,sessionId:t.payload};case"SET_PROVIDER":return{...e,provider:t.payload};case"SET_MODEL":return{...e,model:t.payload};case"SET_TOKEN_USAGE":return{...e,tokenUsage:t.payload};case"SET_ERROR":return{...e,error:t.payload};case"SET_LOADING":return{...e,isLoading:t.payload};case"RESET_STATE":return{...Zp,sessionId:e.sessionId};default:return e}}i(VO,"uiReducer");var Sv=xv(null),Tv=xv(null);function mf({children:e,initialState:t}){let[n,r]=jO(VO,{...Zp,...t}),o=Ht(D=>{r({type:"SET_STREAMING_STATE",payload:D})},[]),s=Ht(D=>{r({type:"APPEND_TO_RESPONSE",payload:D})},[]),a=Ht(()=>{r({type:"CLEAR_RESPONSE"})},[]),c=Ht(D=>{let v=df(D);r({type:"ADD_HISTORY_ITEM",payload:v})},[]),l=Ht(D=>{D.length!==0&&r({type:"BULK_ADD_HISTORY_ITEMS",payload:D.map(df)})},[]),u=Ht((D,v)=>{r({type:"UPDATE_HISTORY_ITEM",payload:{id:D,updates:v}})},[]),m=Ht(()=>{r({type:"CLEAR_HISTORY"})},[]),p=Ht(D=>{let v=mg(D);return r({type:"ADD_TOOL_CALL",payload:v}),v.id},[]),h=Ht((D,v)=>{r({type:"UPDATE_TOOL_CALL",payload:{id:D,updates:v}})},[]),g=Ht(()=>{r({type:"CLEAR_TOOL_CALLS"})},[]),y=Ht(D=>{r({type:"SET_SESSION_ID",payload:D})},[]),x=Ht(D=>{r({type:"SET_MODE",payload:D})},[]),w=Ht(D=>{r({type:"SET_PROVIDER",payload:D})},[]),T=Ht(D=>{r({type:"SET_MODEL",payload:D})},[]),I=Ht(D=>{r({type:"SET_TOKEN_USAGE",payload:D})},[]),A=Ht(D=>{r({type:"SET_ERROR",payload:D})},[]),$=Ht(D=>{r({type:"SET_LOADING",payload:D})},[]),F=GO(()=>({setStreamingState:o,appendToResponse:s,clearResponse:a,addHistoryItem:c,addHistoryItems:l,updateHistoryItem:u,clearHistory:m,addToolCall:p,updateToolCall:h,clearToolCalls:g,setSessionId:y,setMode:x,setProvider:w,setModel:T,setTokenUsage:I,setError:A,setLoading:$}),[o,s,a,c,l,u,m,p,h,g,y,x,w,T,I,A,$]);return gv(Sv.Provider,{value:n,children:gv(Tv.Provider,{value:F,children:e})})}i(mf,"UIStateProvider");function Nc(){let e=wv(Sv);if(!e)throw new Error("useUIState must be used within a UIStateProvider");return e}i(Nc,"useUIState");function Bc(){let e=wv(Tv);if(!e)throw new Error("useUIActions must be used within a UIStateProvider");return e}i(Bc,"useUIActions");function Cv(){let e=Nc(),t=Bc();return{state:e,actions:t}}i(Cv,"useUI");function pg(){return re()}i(pg,"useTheme");import{jsxs as yo,jsx as pf,Fragment as zO}from"react/jsx-runtime";import{useMemo as XO}from"react";var YO=80,qO=7,JO={command:">",file:"\u{1F4C4}",history:"\u23F1",argument:"\u2022",snippet:"\u25C7",skill:"\u2605"};function QO(e,t,n){if(t<=n)return{start:0,end:t};let r=Math.floor(n/2),o=e-r,s=o+n;return o<0?(o=0,s=n):s>t&&(s=t,o=t-n),{start:o,end:s}}i(QO,"getVisibleRange");function ZO({suggestion:e,isSelected:t,width:n}){let r=pg(),o=e.icon||e.type&&JO[e.type]||"",s=o?ir(o)+1:0,a=ir(e.displayText||e.text),c=e.description?ir(e.description):0,l=Math.min(a,n-s-2),u=n-s-l-3,m=Math.max(0,u),p=za(e.displayText||e.text,l),h=e.description?za(e.description,m):"";return yo(R,{children:[o&&yo(b,{color:t?r.colors.accent:r.colors.dim,children:[o," "]}),pf(b,{color:t?r.colors.primary:r.colors.text,bold:t,children:p}),h&&yo(zO,{children:[pf(b,{children:" "}),pf(b,{color:r.colors.dim,children:za(e.description||"",m)})]}),t&&yo(b,{color:r.colors.accent,children:[" ","\u25C0"]})]})}i(ZO,"SuggestionItem");function hf({suggestions:e,selectedIndex:t,visible:n,maxVisible:r=qO,width:o=YO,showCount:s=!1}){let a=pg();if(!n||e.length===0)return null;let{start:c,end:l}=XO(()=>QO(t,e.length,r),[t,e.length,r]),u=e.slice(c,l);return yo(R,{flexDirection:"column",marginLeft:2,children:[c>0&&yo(b,{color:a.colors.dim,children:[" ","\u25B2 ",c," more..."]}),u.map((m,p)=>{let g=c+p===t;return pf(ZO,{suggestion:m,isSelected:g,width:o},m.id)}),l<e.length&&yo(b,{color:a.colors.dim,children:[" ","\u25BC ",e.length-l," more..."]}),s&&yo(b,{color:a.colors.dim,children:[t+1,"/",e.length]})]})}i(hf,"SuggestionsDisplay");import{jsx as js,jsxs as eD}from"react/jsx-runtime";var hg=i(({reserveSpace:e,width:t,hidden:n=!1,mode:r="inline"})=>{let o=ii(),s=re("dark");if(n)return null;if(!o)return e?js(R,{height:8}):null;let{state:a,suggestions:c}=o;return a.visible&&c.length>0?r==="overlay"?eD(R,{flexDirection:"column",borderStyle:"round",borderColor:s.colors.accent,paddingX:1,marginTop:1,children:[js(b,{color:s.colors.accent,bold:!0,children:"Suggestions"}),js(hf,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-6)})]}):js(R,{height:8,children:js(hf,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-2)})}):e?js(R,{height:8}):null},"PromptSuggestionsSurface");import{jsxs as Yn,jsx as Nn,Fragment as gg}from"react/jsx-runtime";import tD,{useEffect as nD,useState as rD}from"react";var Gs=15,bv=Math.max(1,Gs-2),yg=i(({confirm:e,request:t})=>e?Yn(R,{flexDirection:"column",borderStyle:"round",borderColor:"yellow",paddingX:1,marginTop:1,width:"100%",children:[Yn(b,{color:"yellow",bold:!0,children:[Z("dialog.confirm")," ",e.prompt]}),e.planContent?Nn(oD,{content:e.planContent}):null,e.instruction?Nn(b,{dimColor:!0,children:e.instruction}):null]}):t?Yn(R,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,marginTop:1,width:"100%",children:[t.kind==="select"?Yn(gg,{children:[Yn(b,{color:"cyan",bold:!0,children:[Z("dialog.select")," ",t.title]}),(()=>{let n=t.options??[],r=t.visibleSelectOptions??5,o=t.focusedIndex??0,s=n.length,a=0;if(s>r){let u=Math.floor(r/2);a=Math.max(0,Math.min(o-u,s-r))}let c=a,l=Math.max(0,s-a-r);return Yn(gg,{children:[c>0?Nn(b,{dimColor:!0,children:Z("select.more_above",{count:c})}):null,n.slice(a,a+r).map((u,m)=>{let p=a+m,h=p===o,g=t.selectedIndices?.includes(p)??!1,y=h?"\u276F ":" ",x=g?" \u2713":"",w=u.description?` - ${u.description}`:"";return Nn(b,{color:h?"cyan":void 0,dimColor:!h,children:`${y}${u.label}${w}${x}`},`${u.value}-${p}`)}),l>0?Nn(b,{dimColor:!0,children:Z("select.more_below",{count:l})}):null]})})(),Nn(b,{dimColor:!0,children:t.multiSelect?Z("select.multiselect_hint"):Z("select.navigate_hint")})]}):Yn(gg,{children:[Yn(b,{color:"cyan",bold:!0,children:[Z("dialog.input")," ",t.prompt]}),t.defaultValue!==void 0?Nn(b,{dimColor:!0,children:`${Z("input.default")} ${t.defaultValue}`}):null,Nn(b,{dimColor:!0,children:`${Z("input.value")} ${t.buffer||Z("input.type_response")}`}),Nn(b,{dimColor:!0,children:Z("select.confirm_hint")})]}),t.error?Nn(b,{color:"red",children:t.error}):null]}):null,"DialogSurface"),oD=i(({content:e})=>{let t=tD.useMemo(()=>e.split(`
|
|
348
|
+
`),[e]),n=t.length,r=n>Gs,[o,s]=rD(0);nD(()=>{s(u=>{let m=Math.max(0,n-Gs);return u>m?m:u})},[n]),Ju((u,m)=>{if(!r)return;let p=Math.max(0,n-Gs);m.upArrow?s(h=>Math.max(0,h-1)):m.downArrow?s(h=>Math.min(p,h+1)):m.pageUp?s(h=>Math.max(0,h-bv)):m.pageDown&&s(h=>Math.min(p,h+bv))},{isActive:!0});let a=t.slice(o,o+Gs),c=o,l=Math.max(0,n-o-Gs);return Yn(R,{flexDirection:"column",marginTop:1,children:[r&&c>0?Yn(b,{dimColor:!0,children:["\u2026 ",c," more line",c===1?"":"s"," above"]}):null,a.map((u,m)=>Nn(b,{children:u},`plan-line-${o+m}`)),r&&l>0?Yn(b,{dimColor:!0,children:["\u2026 ",l," more line",l===1?"":"s"," below"]}):null,r?Nn(b,{dimColor:!0,children:"PgUp/PgDn/\u2191\u2193 to scroll"}):null]})},"PlanScrollPanel");import{jsxs as Hc,jsx as iD}from"react/jsx-runtime";function vv(e){let t=e.replace(/\s+/g," ").trim();return t.length<=72?t:`${t.slice(0,69)}...`}i(vv,"normalizePendingPreview");function Iv(e){if(e.length===0)return;let t=vv(e[e.length-1]??"");return e.length===1?`Queued 1 follow-up: ${t} (Esc removes it)`:`Queued ${e.length} follow-ups. Latest: ${t} (Esc removes latest)`}i(Iv,"formatPendingInputsSummary");function xg(e){if(e.length===0)return[];let t=e.length;return e.map((n,r)=>({index:r+1,total:t,preview:vv(n)}))}i(xg,"formatPendingInputsLines");function kv(e){let t=xg(e);return t.length===0?void 0:[...t.map(o=>`\u23F3 [${o.index}/${o.total}] ${o.preview}`)," \u2191 pull all into editor \xB7 Esc drops latest"].join(`
|
|
349
|
+
`)}i(kv,"formatPendingInputsBudgetText");var wg=i(({pendingInputs:e})=>{let t=xg(e);if(t.length===0)return null;let n=re("dark");return Hc(R,{flexDirection:"column",children:[t.map(r=>Hc(R,{children:[Hc(b,{color:n.colors.hint,children:["\u23F3"," "]}),Hc(b,{color:n.colors.dim,children:["[",r.index,"/",r.total,"] ",r.preview]})]},r.index)),iD(R,{children:Hc(b,{color:n.colors.dim,children:[" ","\u2191 pull all into editor \xB7 Esc drops latest"]})})]})},"QueuedCommandsSurface");import{jsx as Rv}from"react/jsx-runtime";function sD(e,t){switch(e){case"warning":return t.warning;case"accent":return t.accent;default:return t.dim}}i(sD,"resolveNotificationColor");var gf=i(({notifications:e})=>{let t=e.filter(r=>r.text.trim().length>0),n=re("dark");return t.length===0?null:Rv(R,{flexDirection:"column",paddingX:1,children:t.map(r=>Rv(b,{color:sD(r.tone,n.colors),children:r.text},r.id))})},"NotificationsSurface");import{jsx as Ev}from"react/jsx-runtime";var Sg=i(({notices:e})=>{let t=e.filter(r=>r.trim().length>0);if(t.length===0)return null;let n=re("dark");return Ev(R,{flexDirection:"column",paddingX:1,children:t.map((r,o)=>Ev(b,{color:n.colors.dim,children:r},`${r}-${o}`))})},"StatusNoticesSurface");import{jsxs as Mv,jsx as aD}from"react/jsx-runtime";var yf=i(({text:e})=>{let t=e?.trim();if(!t)return null;let n=re("dark");return Mv(R,{paddingX:1,children:[Mv(b,{color:n.colors.hint,children:["\u22EF"," "]}),aD(b,{color:n.colors.dim,children:t})]})},"StashNotice");import{jsx as ui,jsxs as cD}from"react/jsx-runtime";function Av({text:e,accent:t=!1,selected:n=!1}){let r=re("dark");return ui(R,{marginRight:1,children:ui(b,{color:t?r.colors.accent:r.colors.primary,bold:n||t,children:`[ ${e} ]`})})}i(Av,"Pill");var xf=i(({items:e,overflowLabel:t,ctaHint:n,showSpinner:r=!1})=>{let o=e.filter(s=>s.label.trim().length>0);return o.length===0&&!t&&!n&&!r?null:cD(R,{flexDirection:"row",paddingX:1,children:[r?ui(R,{marginRight:1,children:ui(Dn,{})}):null,o.map(s=>ui(Av,{text:s.hint?`${s.label} (${s.hint})`:s.label,accent:s.accent,selected:s.selected},s.id)),t?ui(Av,{text:t}):null,n?ui(b,{dimColor:!0,children:n}):null]})},"BackgroundTaskBar");import _v,{createContext as Pv,useContext as $v,useReducer as lD,useCallback as Xe,useRef as uD,useEffect as Lv}from"react";function dD(e){return e.agentId===void 0&&e.priority==="user"&&e.mode==="prompt"}i(dD,"isMainThreadPrompt");function bg(){return Rn().getSnapshot().filter(dD)}i(bg,"getMainThreadPrompts");function Tg(){return bg().map(e=>e.content)}i(Tg,"getMainThreadPromptContents");var Cg={state:gn.Idle,currentResponse:"",error:void 0,abortController:void 0,isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentTool:void 0,toolInputCharCount:0,toolInputContent:"",iterationHistory:[],currentIteration:1,maxIter:200,isCompacting:!1,pendingInputs:[],roundStartedAt:null};function vg(){let e={...Cg,pendingInputs:Tg()},t=new Set,n="",r="",o=0,s=null,a=!1,c=80,l=i(()=>{for(let y of t)y(e)},"notify"),u=i(()=>{let y=Tg();if(y.length===e.pendingInputs.length){let x=!0;for(let w=0;w<y.length;w++)if(y[w]!==e.pendingInputs[w]){x=!1;break}if(x)return}e={...e,pendingInputs:y},l()},"syncReactStateFromQueue"),m=Rn().subscribe(()=>{u()}),p=i(()=>Rn().dequeue({maxPriority:"user",mode:"prompt"}).map(x=>x.content),"drainOurSlice"),h=i(()=>{if(s&&(clearTimeout(s),s=null),n||r||o>0){let x=e.thinkingContent+r,w=r?x.length:e.thinkingCharCount+o;e={...e,currentResponse:e.currentResponse+n,thinkingContent:x,thinkingCharCount:w,...r||o>0?{isThinking:!0}:{}},n="",r="",o=0,l()}},"flushPendingUpdates"),g=i(()=>{s||(s=setTimeout(h,c))},"scheduleFlush");return{getState:i(()=>e,"getState"),setState:i(y=>{h(),e={...e,state:y},l()},"setState"),startStreaming:i(()=>{a=!1,n="",r="",o=0,s&&(clearTimeout(s),s=null),e={...e,state:gn.Responding,currentResponse:"",abortController:new AbortController,error:void 0,roundStartedAt:Date.now()},l()},"startStreaming"),stopStreaming:i(()=>{h(),e={...e,state:gn.Idle,abortController:void 0,roundStartedAt:null},l()},"stopStreaming"),appendResponse:i(y=>{a||(n+=y,g())},"appendResponse"),clearResponse:i(()=>{h(),e={...e,currentResponse:""},l()},"clearResponse"),setError:i(y=>{h(),e={...e,error:y,state:y?gn.Idle:e.state},l()},"setError"),abort:i(y=>{a=!0,h(),e.abortController?.abort(),n="",r="",o=0,s&&(clearTimeout(s),s=null),y?.preservePendingInputs||p(),e={...e,state:gn.Idle,abortController:void 0,roundStartedAt:null},l()},"abort"),reset:i(()=>{a=!0,h(),e.abortController?.abort(),n="",r="",o=0,s&&(clearTimeout(s),s=null),p(),e={...Cg,pendingInputs:Tg()},a=!1,l()},"reset"),isStreaming:i(()=>e.state===gn.Responding||e.state===gn.WaitingForConfirmation,"isStreaming"),subscribe:i(y=>(t.add(y),()=>{t.delete(y)}),"subscribe"),startThinking:i(()=>{h(),e={...e,isThinking:!0,thinkingCharCount:0,thinkingContent:""},l()},"startThinking"),appendThinkingChars:i(y=>{a||(o+=y,g())},"appendThinkingChars"),appendThinkingContent:i(y=>{a||(r+=y,g())},"appendThinkingContent"),stopThinking:i(()=>{h(),e={...e,isThinking:!1,thinkingCharCount:0},l()},"stopThinking"),clearThinkingContent:i(()=>{h(),e={...e,isThinking:!1,thinkingCharCount:0,thinkingContent:""},l()},"clearThinkingContent"),setCurrentTool:i(y=>{h(),e={...e,currentTool:y,toolInputCharCount:0,toolInputContent:""},l()},"setCurrentTool"),appendToolInputChars:i(y=>{e={...e,toolInputCharCount:e.toolInputCharCount+y},l()},"appendToolInputChars"),appendToolInputContent:i(y=>{e.toolInputContent.length<240&&(e={...e,toolInputContent:(e.toolInputContent+y).slice(0,240)},l())},"appendToolInputContent"),clearToolInputContent:i(()=>{e={...e,toolInputContent:""},l()},"clearToolInputContent"),getSignal:i(()=>e.abortController?.signal,"getSignal"),getFullResponse:i(()=>e.currentResponse+n,"getFullResponse"),getThinkingContent:i(()=>e.thinkingContent+r,"getThinkingContent"),startNewIteration:i(y=>{h(),e.thinkingContent||e.currentResponse?e={...e,thinkingContent:"",thinkingCharCount:0,currentResponse:"",isThinking:!1,currentTool:void 0,toolInputCharCount:0,toolInputContent:"",currentIteration:y}:e={...e,currentIteration:y},l()},"startNewIteration"),clearIterationHistory:i(()=>{h(),e={...e,iterationHistory:[],currentIteration:1,maxIter:Cg.maxIter,thinkingContent:"",thinkingCharCount:0,currentResponse:"",currentTool:void 0,toolInputCharCount:0,toolInputContent:""},l()},"clearIterationHistory"),setMaxIter:i(y=>{h(),e={...e,maxIter:y},l()},"setMaxIter"),startCompacting:i(()=>{h(),e={...e,isCompacting:!0},l()},"startCompacting"),stopCompacting:i(()=>{h(),e={...e,isCompacting:!1},l()},"stopCompacting"),addPendingInput:i(y=>{let x=y.trim();x&&(bg().length>=5||(h(),Rn().enqueue({priority:"user",mode:"prompt",content:x})))},"addPendingInput"),removeLastPendingInput:i(()=>{let y=bg(),x=y[y.length-1];x&&(h(),Rn().dequeue({maxPriority:"user",mode:"prompt",id:x.id}))},"removeLastPendingInput"),shiftPendingInput:i(()=>(h(),Rn().dequeue({maxPriority:"user",mode:"prompt",limit:1})[0]?.content),"shiftPendingInput"),clearPendingInputs:i(()=>{h(),p()},"clearPendingInputs"),consumePendingInputs:i(()=>(h(),p()),"consumePendingInputs"),dispose:i(()=>{m()},"dispose")}}i(vg,"createStreamingManager");var Ov=Pv(null),Dv=Pv(null);function wf({children:e,onStateChange:t}){let n=uD(vg()),[,r]=lD(V=>V+1,0);Lv(()=>n.current.subscribe(ae=>{r(),t?.(ae)}),[t]),Lv(()=>{let V=n.current;return()=>{V.dispose()}},[]);let o=Xe(()=>{n.current.startStreaming()},[]),s=Xe(()=>{n.current.stopStreaming()},[]),a=Xe(V=>{n.current.appendResponse(V)},[]),c=Xe(()=>{n.current.clearResponse()},[]),l=Xe(V=>{n.current.setError(V)},[]),u=Xe(V=>{n.current.abort(V)},[]),m=Xe(()=>{n.current.reset()},[]),p=Xe(()=>{n.current.startThinking()},[]),h=Xe(V=>{n.current.appendThinkingChars(V)},[]),g=Xe(V=>{n.current.appendThinkingContent(V)},[]),y=Xe(()=>{n.current.stopThinking()},[]),x=Xe(()=>{n.current.clearThinkingContent()},[]),w=Xe(V=>{n.current.setCurrentTool(V)},[]),T=Xe(V=>{n.current.appendToolInputChars(V)},[]),I=Xe(V=>{n.current.appendToolInputContent(V)},[]),A=Xe(()=>{n.current.clearToolInputContent()},[]),$=Xe(()=>n.current.getSignal(),[]),F=Xe(()=>n.current.getFullResponse(),[]),D=Xe(()=>n.current.getThinkingContent(),[]),v=Xe(V=>{n.current.startNewIteration(V)},[]),z=Xe(()=>{n.current.clearIterationHistory()},[]),fe=Xe(V=>{n.current.setMaxIter(V)},[]),se=Xe(()=>{n.current.startCompacting()},[]),ge=Xe(()=>{n.current.stopCompacting()},[]),L=Xe(V=>{n.current.addPendingInput(V)},[]),k=Xe(()=>{n.current.removeLastPendingInput()},[]),P=Xe(()=>n.current.shiftPendingInput(),[]),Re=Xe(()=>{n.current.clearPendingInputs()},[]),_e=Xe(()=>n.current.consumePendingInputs(),[]),Y={startStreaming:o,stopStreaming:s,appendResponse:a,clearResponse:c,setError:l,abort:u,reset:m,startThinking:p,appendThinkingChars:h,appendThinkingContent:g,stopThinking:y,clearThinkingContent:x,setCurrentTool:w,appendToolInputChars:T,appendToolInputContent:I,clearToolInputContent:A,getSignal:$,getFullResponse:F,getThinkingContent:D,startNewIteration:v,clearIterationHistory:z,setMaxIter:fe,startCompacting:se,stopCompacting:ge,addPendingInput:L,removeLastPendingInput:k,shiftPendingInput:P,clearPendingInputs:Re,consumePendingInputs:_e};return _v.createElement(Ov.Provider,{value:n.current.getState()},_v.createElement(Dv.Provider,{value:Y},e))}i(wf,"StreamingProvider");function Wc(){let e=$v(Ov);if(!e)throw new Error("useStreamingState must be used within a StreamingProvider");return e}i(Wc,"useStreamingState");function Uc(){let e=$v(Dv);if(!e)throw new Error("useStreamingActions must be used within a StreamingProvider");return e}i(Uc,"useStreamingActions");function Nv(){let e=Wc(),t=Uc(),n=e.state===gn.Responding||e.state===gn.WaitingForConfirmation;return{state:e,actions:t,isStreaming:n}}i(Nv,"useStreaming");import{useCallback as fD,useRef as mD}from"react";var pD=500;function hD(e={}){let{onKey:t,onEsc:n,onCtrlC:r,enabled:o=!0}=e,s=mD(0),{exit:a}=so(),c=fD(l=>{if(!o)return!1;if(l.name==="escape"){let u=Date.now(),m=u-s.current<pD;return s.current=u,m&&(l.name="escape-escape"),n?.(),t?.(l),!0}return l.ctrl&&l.name==="c"?(r?.(),t?.(l),!0):l.ctrl&&l.name==="d"?(a(),!0):(t?.(l),!1)},[o,a,r,n,t]);return yn(c,{isActive:o}),{lastEscTime:s.current}}i(hD,"useKeypress");function gD(e){return{is:i((t,n)=>!(e.name!==t||n?.ctrl!==void 0&&e.ctrl!==n.ctrl||n?.shift!==void 0&&e.shift!==n.shift||n?.meta!==void 0&&e.meta!==n.meta),"is"),isCtrl:i(t=>e.ctrl&&e.name===t,"isCtrl"),isShift:i(t=>e.shift&&e.name===t,"isShift"),isArrow:i(()=>["up","down","left","right"].includes(e.name),"isArrow"),isChar:i(()=>e.sequence?.length===1&&!e.ctrl&&!e.meta,"isChar"),getChar:i(()=>e.sequence?.length===1?e.sequence:null,"getChar")}}i(gD,"createKeyMatcher");import{useCallback as yD,useSyncExternalStore as xD}from"react";function wD(e){return e.agentId===void 0&&e.priority==="user"&&e.mode==="prompt"}i(wD,"isMainThreadPrompt");var Ig=null,Sf=Object.freeze([]);function Bv(){let e=Rn().getSnapshot();return e===Ig||(Ig=e,Sf=Object.freeze(e.filter(wD))),Sf}i(Bv,"getQueueSliceSnapshot");function Hv(){let e=yD(t=>Rn().subscribe(t),[]);return xD(e,Bv,Bv)}i(Hv,"useQueuedPrompts");function SD(){return Hv().map(t=>t.content)}i(SD,"useQueuedPromptContents");function TD(){Ig=null,Sf=Object.freeze([])}i(TD,"_resetQueuedPromptsCacheForTests");async function jc(e){return{messages:e.existingMessages??[],uiHistory:e.existingUiHistory?.map(t=>({...t})),lineage:e.existingLineage??void 0,artifactLedger:e.existingArtifactLedger?.map(t=>({...t,metadata:t.metadata?{...t.metadata}:void 0})),sessionId:e.sessionId??Gc(),title:"",gitRoot:e.gitRoot,runtimeInfo:e.runtimeInfo,createdAt:new Date().toISOString(),lastAccessed:new Date().toISOString()}}i(jc,"createInteractiveContext");function Gc(){let e=new Date,t=e.toISOString().split("T")[0].replace(/-/g,""),n=e.toTimeString().split(" ")[0].replace(/:/g,"");return`${t}_${n}`}i(Gc,"generateSessionId");function hr(e){e.lastAccessed=new Date().toISOString()}i(hr,"touchContext");async function Kc(e){let t=await zw({userKodaxDir:Aw(),projectRoot:e.projectRoot}),n;return{getGuardrail:i(()=>n||(n=Xw({rules:t.merged,claudeMd:_w(e.getAgentsFiles()),getToolProjection:i(o=>(hu(o)??Dw(o))?.toClassifierInput,"getToolProjection"),resolveProvider:i(o=>{try{return No(o)}catch{return}},"resolveProvider"),defaultProvider:e.getCurrentProviderName(),defaultModel:e.getCurrentModel()??"",getDefaultProvider:e.getCurrentProviderName,getDefaultModel:i(()=>{let o=e.getCurrentModel();return o||(e.log?.("warn","[auto-mode] classifier defaultModel is empty; main session has no model set \u2014 classifier will likely fail"),"")},"getDefaultModel"),askUser:e.askUser,log:e.log,onEngineChange:e.onEngineChange,projectRoot:e.projectRoot,extraCollectors:e.extraCollectors,initialEngine:e.autoModeSettings.engine,timeoutMs:e.autoModeSettings.timeoutMs,userSettings:e.autoModeSettings.classifierModel,envVar:e.autoModeSettings.classifierModelEnv}),n),"getGuardrail"),rulesLoadResult:t}}i(Kc,"bootstrapAutoMode");var Ks=class{static{i(this,"MemorySessionStorage")}sessions=new Map;async save(t,n){let r=this.sessions.get(t);this.sessions.set(t,{...structuredClone(n),scope:n.scope??r?.scope??"user",uiHistory:n.uiHistory??r?.uiHistory,extensionState:n.extensionState??r?.extensionState,artifactLedger:n.artifactLedger??r?.artifactLedger,extensionRecords:n.extensionRecords??r?.extensionRecords,lineage:En(n.messages,n.lineage??r?.lineage)})}async load(t){return structuredClone(this.sessions.get(t)??null)}async getLineage(t){return structuredClone(this.sessions.get(t)?.lineage??null)}async setActiveEntry(t,n,r){let o=this.sessions.get(t);if(!o?.lineage)return null;let s=zi(o.lineage,n,r);if(!s)return null;let a={...structuredClone(o),messages:At(s),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async setLabel(t,n,r){let o=this.sessions.get(t);if(!o?.lineage)return null;let s=Xi(o.lineage,n,r);if(!s)return null;let a={...structuredClone(o),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async fork(t,n,r){let o=this.sessions.get(t);if(!o?.lineage)return null;let s=Ji(o.lineage,n);if(!s)return null;let a=r?.sessionId??await Vi(),c={messages:At(s),title:r?.title??o.title,gitRoot:o.gitRoot,uiHistory:o.uiHistory?o.uiHistory.map(l=>({...l})):void 0,extensionState:o.extensionState?structuredClone(o.extensionState):void 0,artifactLedger:o.artifactLedger?structuredClone(o.artifactLedger):void 0,extensionRecords:o.extensionRecords?structuredClone(o.extensionRecords):void 0,lineage:s};return this.sessions.set(a,c),{sessionId:a,data:structuredClone(c)}}async rewind(t,n){let r=this.sessions.get(t);if(!r?.lineage)return null;let o=n??Yi(r.lineage);if(!o)return null;let s=qi(r.lineage,o);if(!s)return null;let a={...r,messages:At(s),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async list(t){return Array.from(this.sessions.entries()).filter(([,n])=>(n.scope??"user")==="user").map(([n,r])=>({id:n,title:r.title,msgCount:r.lineage?Fo(r.lineage):r.messages.length}))}async delete(t){this.sessions.delete(t)}async deleteAll(t){this.sessions.clear()}};function CD(){return new Ks}i(CD,"createMemorySessionStorage");import*as Fv from"child_process";import*as Wv from"util";import Tf from"chalk";var bD=Wv.promisify(Fv.exec),vD={maxBuffer:1024*1024,timeout:3e4,maxOutputLength:8e3,maxErrorLength:4e3};async function Cf(e,t={}){let n={...vD,...t},r=e.trim(),o=lh(r);if(o)return o.startsWith("[Blocked]")&&(console.log(Tf.yellow(`
|
|
350
|
+
${o}`)),console.log()),o;try{console.log(Tf.dim(`
|
|
351
|
+
[Executing: ${r}]`));let{stdout:s,stderr:a}=await bD(r,{cwd:n.cwd,maxBuffer:n.maxBuffer,timeout:n.timeout,windowsHide:!0}),c="";return s&&(c+=s),a&&(c+=(c?`
|
|
350
352
|
`:"")+`[stderr] ${a}`),c.length>n.maxOutputLength&&(c=c.slice(0,n.maxOutputLength)+`
|
|
351
|
-
...[output truncated]`),console.log(
|
|
353
|
+
...[output truncated]`),console.log(Tf.dim(c||"[No output]")),console.log(),`[Shell command executed: ${r}]
|
|
352
354
|
|
|
353
355
|
Output:
|
|
354
356
|
${c||"(no output)"}`}catch(s){let c=(s instanceof Error?s:new Error(String(s))).message;return c.length>n.maxErrorLength&&(c=c.slice(0,n.maxErrorLength)+`
|
|
355
|
-
...[error truncated]`),console.log(
|
|
357
|
+
...[error truncated]`),console.log(Tf.red(`
|
|
356
358
|
[Shell Error: ${c}]`)),console.log(),`[Shell command failed: ${r}]
|
|
357
359
|
|
|
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=
|
|
360
|
+
Error: ${c}`}}i(Cf,"executeShellCommand");async function kg(e,t={}){if(e.startsWith("!")){let n=e.slice(1).trim();return Cf(n,t)}return e}i(kg,"processSpecialSyntax");function ID(e){return e.trim().startsWith("!")}i(ID,"isShellCommand");function kD(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell:")}i(kD,"isShellCommandSuccess");function Vc(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell command failed:")||e.startsWith("[Shell:")||e.startsWith("[Blocked]")}i(Vc,"isShellCommandHandled");function bf(e,t,n){let r=e.trim();return{type:"info",icon:"\u23F3",text:/\bretry\s+\d+\/\d+\b/i.test(r)||/\b\d+\/\d+\b/.test(r)?r:`${r} \xB7 retry ${t}/${n}`}}i(bf,"createRetryHistoryItem");function Rg(e,t,n,r){e(bf(t,n,r))}i(Rg,"emitRetryHistoryItem");function vf(e){let{recoveryAction:t,attempt:n,maxAttempts:r,delayMs:o,stage:s,fallbackUsed:a}=e,c=Math.round(o/1e3);if(t==="manual_continue")return{type:"info",icon:"\u26A0",text:'Recovery exhausted. Type "continue" to retry or "stop" to cancel.'};if(t==="non_streaming_fallback"||a)return{type:"info",icon:"\u23F3",text:"Stream unstable, switching to non-streaming mode"};if(t==="sanitize_thinking_and_retry")return{type:"info",icon:"\u23F3",text:"Provider rejected replay thinking, sanitizing history and retrying"};let l;switch(s){case"before_first_delta":case"before_request_accepted":l="Provider request timed out";break;case"mid_stream_text":case"mid_stream_thinking":l="Stream interrupted after partial output";break;case"mid_stream_tool_input":l="Stream interrupted during tool input";break;case"post_tool_execution_pre_assistant_close":l="Stream interrupted after tool execution";break;default:l="Stream interrupted";break}let u=t==="stable_boundary_retry"?"recovering":"retrying";return{type:"info",icon:"\u23F3",text:c>0?`${l} \xB7 ${u} ${n}/${r} in ${c}s`:`${l} \xB7 ${u} ${n}/${r}`}}i(vf,"createRecoveryHistoryItem");function Eg(e,t){e(vf(t))}i(Eg,"emitRecoveryHistoryItem");import{jsx as le,jsxs as Zt,Fragment as xH}from"react/jsx-runtime";import Ck,{useState as Ge,useCallback as X,useRef as xe,useEffect as Fe,useMemo as de}from"react";import{jsx as gr,Fragment as RD,jsxs as If}from"react/jsx-runtime";var Mg=" | ",Uv=i(({searchActive:e=!1,selectionActive:t=!1,showAllActive:n=!1,searchQuery:r="",searchCurrent:o=0,searchCount:s=0,searchDetailText:a,pendingLiveUpdates:c=0,secondaryText:l,noticeText:u})=>{let m=re("dark"),p=r.trim(),h=a?.trim(),g=l?.trim(),y=u?.trim(),x=e?p?`Search /${p}`:"Search":"Transcript",w=e?`Enter jump | n/N next/prev | Ctrl+E ${n?"collapse":"show all"} | Esc close | Ctrl+O/q back`:t?`PgUp/PgDn page | j/k scroll | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | Esc clear focus | Ctrl+O/q back`:`PgUp/PgDn page | j/k scroll | \u2190/\u2192 select | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | s dump | Ctrl+O/q/Esc back`,T=c>0?c===1?"1 new update":`${c} new updates`:void 0,I=e&&s>0?`${Math.max(0,o)}/${s}`:void 0,A=e&&h||g,$=!!(A||y);return If(R,{flexDirection:"column",children:[If(R,{paddingX:1,children:[gr(b,{color:m.colors.dim,children:x}),gr(b,{dimColor:!0,children:Mg}),gr(b,{color:m.colors.dim,children:w}),I||T?gr(R,{flexGrow:1}):null,I?If(RD,{children:[gr(b,{dimColor:!0,children:I}),T?gr(b,{dimColor:!0,children:Mg}):null]}):null,T?gr(b,{color:m.colors.accent,bold:!0,children:T}):null]}),$?If(R,{paddingX:1,children:[A?gr(b,{color:m.colors.dim,children:A}):null,A&&y?gr(b,{dimColor:!0,children:Mg}):null,y?gr(b,{color:m.colors.accent,bold:!0,children:y}):null]}):null]})},"TranscriptModeFooter");import{jsx as ED,jsxs as MD}from"react/jsx-runtime";var jv=i(({banner:e,...t})=>MD(R,{flexDirection:"column",children:[e,ED(ci,{...t,animateSpinners:!1,showFullThinking:!1,showDetailedTools:!1,showLiveProgressRows:!1})]}),"PromptTranscriptSurface");import{jsx as AD,jsxs as _D}from"react/jsx-runtime";var Gv=i(({banner:e,windowed:t=!1,showDetailedTools:n=!1,showAllContent:r=!1,...o})=>_D(R,{flexDirection:"column",children:[e,AD(cg,{...o,chromeMode:"hidden",windowed:t,showFullThinking:!0,showDetailedTools:n,showAllContent:r,showLiveProgressRows:!0})]}),"TranscriptModeSurface");import{jsxs as LD,jsx as PD}from"react/jsx-runtime";var Kv=i(({text:e,tone:t="success"})=>{let n=e?.trim();if(!n)return null;let r=re("dark"),o=t==="warning"?r.colors.warning:r.colors.accent,s=t==="warning"?"!":"\u2713";return PD(R,{paddingX:1,backgroundColor:r.colors.inputBackground,children:LD(b,{color:o,children:[s," ",n]})})},"ClipboardToastSurface");import{jsx as xo,Fragment as $D,jsxs as Ag}from"react/jsx-runtime";var OD=" \u23BF ";function DD(e){let t=re("dark");switch(e){case"cyan":return t.colors.primary;case"green":return t.colors.success;case"red":return t.colors.error;default:return t.colors.dim}}i(DD,"resolveSymbolColor");var ND=i(({row:e})=>{let t=DD(e.symbolColor),n=e.kind!=="item";return Ag(R,{flexDirection:"row",children:[xo(b,{color:t,bold:e.isActive,children:e.symbol}),xo(b,{children:" "}),xo(b,{dimColor:n,bold:e.isActive,strikethrough:e.isStrikethrough,children:e.text}),e.evaluatorBadge?Ag($D,{children:[xo(b,{children:" "}),xo(b,{dimColor:!0,children:e.evaluatorBadge})]}):null]})},"TodoListRow"),Vv=i(({viewModel:e})=>{if(!e.shouldRender||e.rows.length===0)return null;let t=re("dark").colors.dim;return Ag(R,{flexDirection:"row",children:[xo(b,{color:t,children:OD}),xo(R,{flexDirection:"column",flexGrow:1,children:e.rows.map((n,r)=>xo(ND,{row:n},`${n.kind}-${n.id??r}`))})]})},"TodoListSurface");function BD(e){switch(e){case"in_progress":return{symbol:"\u25CF",color:"cyan"};case"completed":return{symbol:"\u2713",color:"green"};case"failed":return{symbol:"\u2717",color:"red"};case"skipped":return{symbol:"\u2298",color:"gray"};case"cancelled":return{symbol:"\u2612",color:"gray"};default:return{symbol:"\u2610",color:"dim"}}}i(BD,"symbolForStatus");function HD(e){for(let t=0;t<e.length;t++)if(e[t].status==="in_progress")return t;for(let t=0;t<e.length;t++)if(e[t].status==="pending")return t;for(let t=e.length-1;t>=0;t--)if(e[t].status==="completed")return t;return 0}i(HD,"pickAnchorIndex");function FD(e){let{symbol:t,color:n}=BD(e.status),r=e.status==="failed"&&e.note?`${e.subject} (${e.note})`:e.subject,o=e.status==="cancelled",s=e.evaluator?`[${e.evaluator}]`:void 0;return{kind:"item",id:e.id,symbol:t,symbolColor:n,text:r,isActive:e.status==="in_progress",isStrikethrough:o,evaluatorBadge:s}}i(FD,"buildItemRow");function WD(e){return{kind:"summary_done",symbol:"\u2713",symbolColor:"green",text:`${e} done`,isActive:!1}}i(WD,"buildDoneSummary");function _g(e){return{kind:"summary_pending",symbol:"\u2610",symbolColor:"dim",text:`+${e} more`,isActive:!1}}i(_g,"buildPendingSummary");function UD(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].status==="failed"&&!t.has(n))return n;return-1}i(UD,"pickFailedToPromote");function jD(e,t){let n=e.length;if(n===0)return{visibleIdx:[],hiddenCompletedCount:0,hiddenPendingCount:0};let r=4,o=Math.max(0,t-1),s=Math.min(n,o+r);s-o<r&&o>0&&(o=Math.max(0,s-r)),s-o<r&&s<n&&(s=Math.min(n,o+r));let a=[];for(let u=o;u<s;u++)a.push(u);let c=0,l=0;for(let u=0;u<o;u++)e[u].status==="completed"&&c++;for(let u=s;u<n;u++){let m=e[u].status;(m==="pending"||m==="in_progress")&&l++}return{visibleIdx:a,hiddenCompletedCount:c,hiddenPendingCount:l}}i(jD,"decideWindow");function zv(e,t){let n=e.length,r=e.reduce((g,y)=>y.status==="completed"?g+1:g,0),o=i((g,y)=>({shouldRender:y,rows:g,completedCount:r,totalCount:n}),"baseVm");if(n<1)return o([],!1);t.now,t.lastAllCompletedAt;let s=HD(e),a=jD(e,s),c=new Set(a.visibleIdx),l=UD(e,c),u=[...a.visibleIdx],m=a.hiddenCompletedCount,p=a.hiddenPendingCount;if(l>=0){let g=-1;for(let y=u.length-1;y>=0;y--){let x=u[y];if(x!==s&&e[x].status==="pending"){g=y;break}}if(g>=0){let y=u[g];u[g]=l,p+=1,u.sort((T,I)=>T-I);let x=u[0],w=0;for(let T=0;T<x;T++)e[T].status==="completed"&&w++;m=w}}let h=[];m>0&&h.push(WD(m));for(let g of u)h.push(FD(e[g]));if(p>0&&h.push(_g(p)),h.length>6)for(;h.length>6;){let g=!1;for(let y=h.length-1;y>=0;y--){let x=h[y];if(x.kind==="item"&&!x.isActive){h.splice(y,1);let w=h[h.length-1];if(w&&w.kind==="summary_pending"){let T=/\+(\d+) more/.exec(w.text),I=T?Number.parseInt(T[1],10)+1:1;h[h.length-1]=_g(I)}else h.push(_g(1));g=!0;break}}if(!g)break}return o(h,!0)}i(zv,"buildTodoPlanViewModel");function Xv(e){let t=[];e.isHistorySearchActive?t.push({id:"search",label:"Search",accent:!0}):e.isTranscriptMode&&t.push({id:"transcript",label:"Transcript"}),e.pendingInputCount>0&&t.push({id:"queue",label:`Queue ${e.pendingInputCount}`}),e.buffering==="buffered-fallback"&&(e.isHistorySearchActive||e.isTranscriptMode)&&t.push({id:"buffered",label:"Buffered"}),e.isTranscriptMode&&e.pendingLiveUpdates>0&&t.push({id:"updates",label:e.pendingLiveUpdates===1?"1 update":`${e.pendingLiveUpdates} updates`,accent:!0});let n=[],r=[...t,...n].map(o=>o.label.trim()).filter(Boolean).join(" | ");return{leftItems:t,rightItems:n,summary:r}}i(Xv,"buildFooterHeaderViewModel");function GD(e){return yu(e.provider,e.model,"off",{longRunning:!0})}i(GD,"evaluateSessionTransitionPolicy");function KD(e,t){let n=t.snapshot.model?`${t.snapshot.provider}:${t.snapshot.model}`:t.snapshot.provider,r=[`[Provider Guardrail] ${e} on ${n}: ${t.summary}`],o=t.issues[0]?.detail;return o&&r.push(` ${o}`),t.status==="block"?r.push(" Switch to a provider with durable full-history session semantics before continuing."):t.status==="warn"&&r.push(" Continuing with degraded session semantics."),r}i(KD,"formatSessionTransitionGuardMessage");function di(e,t,n){let r=GD(e);if(!r||r.status==="allow")return!0;let[o,...s]=KD(t,r);return n(r.status,o,s),r.status!=="block"}i(di,"enforceSessionTransitionGuard");function VD(e){switch(e.type){case"message":{let n=(typeof e.message.content=="string"?e.message.content:"[complex content]").replace(/\s+/g," ").trim();return`${e.message.role}: ${n.slice(0,48)}${n.length>48?"...":""}`}case"compaction":return`compaction: ${e.summary.slice(0,48)}${e.summary.length>48?"...":""}`;case"branch_summary":return`branch: ${e.summary.slice(0,48)}${e.summary.length>48?"...":""}`;case"archive_marker":return`archived: ${e.summary.slice(0,48)}${e.summary.length>48?"...":""}`;default:return e}}i(VD,"summarizeEntry");function Yv(e,t,n,r){let o=t?n?"\\- ":"|- ":"",s=e.active?"*":" ",a=e.entry.id.slice(0,12),c=e.label?` [${e.label}]`:"";r.push(`${t}${o}${s} ${a} ${VD(e.entry)}${c}`);let l=t+(t?n?" ":"| ":"");e.children.forEach((u,m)=>{Yv(u,l,m===e.children.length-1,r)})}i(Yv,"formatNode");function kf(e){let t=[];return e.forEach((n,r)=>{Yv(n,"",r===e.length-1,t)}),t}i(kf,"formatSessionTree");var zD=100,XD=/\b(curl|wget|invoke-webrequest|invoke-restmethod|iwr|irm)\b/i,Jv=/\b(rm|del|erase|remove-item|rmdir|rd|git clean)\b/i,Qv=/\b(npm|pnpm|yarn|pip|choco|winget)\s+(install|add|remove|uninstall|update|upgrade|ci)\b/i,Zv=/\b(set-content|add-content|out-file|new-item|copy-item|move-item|rename-item|cp|mv|copy|move|ren|touch)\b/i;function Vs(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i(Vs,"readString");function Xt(e,t,n){n&&e.push({label:t,value:n})}i(Xt,"pushField");function YD(e){return e.replace(/\s+/g," ").trim()}i(YD,"normalizeWhitespace");function qD(e,t){if(e.length<=t)return e;let n=Math.ceil((t-3)/2),r=Math.floor((t-3)/2);return`${e.slice(0,n)}...${e.slice(e.length-r)}`}i(qD,"truncateMiddle");function JD(e){let t=e;return t=t.replace(/\b(authorization\s*:\s*bearer\s+)([^\s'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b((?:authorization|cookie)\s*:\s*)([^'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b(bearer\s+)([^\s'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b(api[_-]?key|access[_-]?token|refresh[_-]?token|token|secret|password|passwd|cookie|session)\b(\s*[:=]\s*)(['"]?)([^'"\s]+)(\3)/gi,(n,r,o,s)=>`${r}${o}${s}[REDACTED]${s}`),t=t.replace(/(--(?:api-key|token|secret|password|cookie)\s+)(\S+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/((?:-u|--user)\s+)(\S+)/gi,(n,r)=>`${r}[REDACTED]`),t}i(JD,"maskSensitiveSegments");function qv(e){return qD(JD(YD(e)),zD)}i(qv,"summarizeCommand");function QD(e){return zn(e)?Z("intent.read"):Jv.test(e)?Z("intent.delete"):Qv.test(e)?Z("intent.deps"):Xn(e)||Zv.test(e)?Z("intent.modify"):Z("intent.execute")}i(QD,"classifyShellIntent");function ZD(e){let t=[];return Jv.test(e)?t.push(Z("risk.destructive")):Qv.test(e)?t.push(Z("risk.deps")):Xn(e)||Zv.test(e)?t.push(Z("risk.modify")):zn(e)||t.push(Z("risk.unknown")),XD.test(e)&&t.push(Z("risk.network")),t}i(ZD,"classifyShellRisks");function eN(e){if(Array.isArray(e))return e.filter(t=>typeof t=="object"&&t!==null&&typeof t.kind=="string")}i(eN,"readSignals");function tN(e){if(e){if(e.some(t=>t.kind==="protected_path"))return Z("scope.protected");if(e.some(t=>t.kind==="outside_project"||t.kind==="shell_redirect_outside"))return Z("scope.outside")}}i(tN,"scopeFromSignals");function nN(e){if(e._outsideProject===!0)return Z("scope.outside");if(e._alwaysConfirm===!0)return Z("scope.protected")}i(nN,"scopeFromMarkers");function rN(e){if(!e)return[];let t=[],n=e.some(o=>o.kind==="dangerous_pattern"&&o.severity==="high"),r=e.some(o=>o.kind==="dangerous_pattern"&&o.severity==="medium");return n?t.push(Z("risk.destructive")):r&&t.push(Z("risk.modify")),e.some(o=>o.kind==="network")&&t.push(Z("risk.network")),e.some(o=>o.kind==="package_install")&&t.push(Z("risk.deps")),t}i(rN,"risksFromSignals");var oN={Reason:"field.reason",Intent:"field.intent",Target:"field.target",Scope:"field.scope",Risk:"field.risk",Summary:"field.summary"};function iN(e){return Z(oN[e])}i(iN,"localizeFieldLabel");function zs(e,t){return{title:e,fields:t,details:t.map(n=>`${iN(n.label)}: ${n.value}`)}}i(zs,"buildDisplayFromFields");function Rf(e,t){if(e==="confirm"){let l=Vs(t._message);if(l)return zs(l,[])}if(e==="exit_plan_mode"){let l=Vs(t.plan),u="Approve plan? (exits plan mode \u2192 accept-edits)";return l?{title:u,fields:[],details:l.split(`
|
|
361
|
+
`)}:zs(u,[])}let n=[],r=Vs(t.path),o=Vs(t.command),s=Vs(t._reason)??Vs(t.justification),a=eN(t._classifierSignals),c=tN(a)??nN(t);switch(Xt(n,"Reason",s),e){case"bash":case"shell_command":{if(o){Xt(n,"Intent",QD(o)),Xt(n,"Scope",c);let l=rN(a),u=l.length>0?l:ZD(o);u.length>0&&Xt(n,"Risk",u.join("; ")),Xt(n,"Summary",qv(o))}else Xt(n,"Scope",c);return zs(e==="bash"?Z("tool.bash.title"):Z("tool.shell.title"),n)}case"write":return Xt(n,"Intent",Z("intent.write_file")),Xt(n,"Target",r),Xt(n,"Scope",c),zs(Z("tool.write.title"),n);case"edit":return Xt(n,"Intent",Z("intent.edit_file")),Xt(n,"Target",r),Xt(n,"Scope",c),zs(Z("tool.edit.title"),n);default:return Xt(n,"Intent",Z("intent.use_tool",{tool:e})),Xt(n,"Target",r),Xt(n,"Scope",c),o&&Xt(n,"Summary",qv(o)),zs(Z("tool.generic.title",{tool:e}),n)}}i(Rf,"buildToolConfirmationDisplay");function e0(e,t){let n=Rf(e,t);return n.details.length>0?`${n.title}
|
|
360
362
|
${n.details.join(`
|
|
361
|
-
`)}`:n.title}i(
|
|
362
|
-
`)}i(
|
|
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}),
|
|
365
|
-
`)}i(
|
|
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(
|
|
367
|
-
${m.additionalContext}`:m.additionalContext),m.allow===!1){l.allow=!1;break}}return l}i(qs,"runHooks");async function
|
|
363
|
+
`)}`:n.title}i(e0,"buildToolConfirmationPrompt");function t0(e,t=240){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(t0,"truncateToolPreview");function n0(e,t=800){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(n0,"truncateToolOutputPreview");function Lg(e){return e.replace(/^\[[^\]]+\]\s+/,"").replace(/^[A-Za-z][A-Za-z0-9_-]*:\s*/,"").trim()}i(Lg,"stripToolRolePrefix");function Pg(e){return Lg(e).toLowerCase()}i(Pg,"normalizeToolNameForMatch");function $g(e){return e===`[${Z("managed.completed")}]`||e===`[${Z("managed.completed.blocked")}]`||e===`[${Z("managed.completed.continuation")}]`}i($g,"isCompletionTranscriptItem");function Ef(e,t){if(!e||!t)return e;let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`^\\[Tools\\]\\s+\\[${n}\\]\\s+`,"i"),"[Tools] ").replace(new RegExp(`^\\[Thinking\\]\\s+\\[${n}\\]\\s*`,"i"),"[Thinking] ").replace(new RegExp(`^\\[${n}\\]\\s+thinking\\b`,"i"),"[Thinking]").trim()}i(Ef,"formatManagedLiveActivityLabel");function Fr(e,t){return Ef(`[Tools] ${Fd(e)}`,t)??`[Tools] ${Fd(e)}`}i(Fr,"formatManagedLiveToolLabel");function Mf(e,t){if(e.type!==t.type)return!1;switch(e.type){case"assistant":{let n=t;return e.text===n.text&&e.compactText===n.compactText}case"thinking":{let n=t;return e.text===n.text&&e.compactText===n.compactText}case"event":{let n=t;return e.text===n.text&&e.compactText===n.compactText&&e.icon===n.icon}case"info":{let n=t;return e.text===n.text&&e.compactText===n.compactText&&e.icon===n.icon}case"error":case"hint":case"system":case"user":{let n=t;return e.text===n.text}case"tool_group":{let n=t;return JSON.stringify(e.tools)===JSON.stringify(n.tools)}default:return!1}}i(Mf,"areManagedLiveItemsEquivalent");function r0(e){return e==="Task completed"?Z("managed.completed"):e==="Task needs continuation"?Z("managed.completed.continuation"):e==="Task ended: blocked"?Z("managed.completed.blocked"):e==="Task ended: needs_continuation"?Z("managed.completed.continuation"):e.startsWith("Task ended:")?Z("managed.completed.blocked"):e}i(r0,"localizeManagedCompletionSummary");function sN(e){switch(e){case"H0_DIRECT":return"H0";case"H1_EXECUTE_EVAL":return"H1";case"H2_PLAN_EXECUTE_EVAL":return"H2";default:return e}}i(sN,"formatHarnessProfileShort");function o0(e,t){let n=e.trim();return t.trim()?n?e===t?e:t.startsWith(e)?t:e.startsWith(t)?e:t:t:e}i(o0,"mergeLiveThinkingContent");function Xs(e,t){let n=t?.expanded?e.detailNote??e.note:e.note,r=sN(e.harnessProfile)??e.harnessProfile,o=`${e.agentMode.toUpperCase()} ${r}`,s=e.activeWorkerTitle??"Scout",a=`${e.agentMode.toUpperCase()} ${s}`,c=`${e.agentMode.toUpperCase()} Routing`,l=e.currentRound&&e.maxRounds&&e.currentRound>1?` - Round ${e.currentRound}/${e.maxRounds}`:"";switch(e.phase){case"routing":return`${c} - Routing ready`;case"starting":return n?`${o} - ${n}`:`${o} - Managed task starting`;case"preflight":return n?`${a} - ${n}`:`${a} - ${s} preflight starting`;case"round":return n?`${o} - ${n}`:`${o} - Managed task round update${l}`;case"worker":return n?`${o} - ${n}${l}`:`${o} - ${e.activeWorkerTitle??"Worker"} starting${l}`;case"upgrade":return n?`${o} - ${n}`:`${o} - Harness transition${l}`;case"completed":return n?`${o} - ${n}`:`${o} - Managed task completed`;default:return}}i(Xs,"formatManagedTaskBreadcrumb");var i0=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1";function s0(e){if(e.events&&e.events.length>0)return e.events.reduce((r,o)=>{let s=o.summary.trim(),a=(o.detail??o.summary).trim();if(!s||!a)return r;let c=`managed-live-${o.key}`,l=Date.now(),u=o.persistToHistory??e.persistToHistory??!1;if(o.presentation==="thinking")return r.push({item:{id:c,type:"thinking",timestamp:l,text:a,...s!==a?{compactText:s}:{}},persistToHistory:u}),r;if(o.presentation==="assistant")return r.push({item:{id:c,type:"assistant",timestamp:l,text:a,...s!==a?{compactText:s}:{}},persistToHistory:u}),r;let m=o.kind==="completed";if(m&&!i0)return r;let p=m?`[${r0(s)}]`:void 0,h=p??s,g=p??a;return r.push({item:{id:c,type:"event",timestamp:l,text:g,icon:o.kind==="warning"?"!":m?"\u2713":">",...h!==g?{compactText:h}:{}},persistToHistory:u}),r},[]);if(e.phase==="completed"&&!i0)return[];let t=Xs(e),n=Xs(e,{expanded:!0})??t;return!t||!n?[]:[{item:{id:`managed-live-fallback-${e.phase??"worker"}-${t.toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48)}`,type:"event",timestamp:Date.now(),text:n,icon:">",...t!==n?{compactText:t}:{}},persistToHistory:e.persistToHistory??!1}]}i(s0,"buildManagedLiveEventDrafts");function aN(e,t){return!(t||e.role!=="evaluator"||e.signal!=="COMPLETE")}i(aN,"shouldFilterSidecarAcceptEntry");function cN(e){let t=e.runtime?.rawRoutingDecision,n=e.runtime?.finalRoutingDecision;return!t||!n||t.harnessProfile==="H0_DIRECT"&&n.harnessProfile==="H0_DIRECT"?void 0:["[Routing]",`AMA routing: raw=${t.harnessProfile}(${t.routingSource??"unknown"}) -> final=${n.harnessProfile}`,`Primary task: ${t.primaryTask}`,`Review target: ${n.reviewTarget??"general"}`,`Review scale: ${n.reviewScale??"unknown"}`,`Solo boundary: ${t.soloBoundaryConfidence?.toFixed(2)??"n/a"}`,`Independent QA: ${t.needsIndependentQA?"yes":"no"}`,e.runtime?.qualityAssuranceMode?`Quality assurance: ${e.runtime.qualityAssuranceMode}`:void 0,e.runtime?.budget?`Adaptive budget: rounds=${e.runtime.budget.plannedRounds} total=${e.runtime.budget.totalBudget} reserve=${e.runtime.budget.reserveBudget}`:void 0,e.runtime?.routingOverrideReason?`Override reason: ${e.runtime.routingOverrideReason}`:void 0,n.upgradeCeiling?`Upgrade ceiling: ${n.upgradeCeiling}`:void 0].filter(o=>!!o).join(`
|
|
364
|
+
`)}i(cN,"buildManagedTaskRoutingTranscript");function Og(e,t){let n=e.managedTask;if(!n)return[];let r=t?.verifierLog??process.env.KODAX_VERIFIER_LOG==="1",o=i(p=>{if(!e.interrupted&&!n.verdict.signalReason?.includes("Orchestration cancelled"))return!1;let h=p.signalReason?.trim()??"",g=p.summary?.trim()??"",y=p.output?.trim()??"",x=h.includes("Orchestration cancelled"),w=g.includes("Orchestration cancelled"),T=!y||g==="No textual output produced.";return p.status!=="completed"&&(x||w||T)||(x||w)&&T},"isInterruptedCancellation"),s=cN(n),a=new Map(n.roleAssignments.map((p,h)=>[p.id,h])),c=n.verdict.decidedByAssignmentId,l=Math.max(0,...n.evidence.entries.filter(p=>p.assignmentId===c).map(p=>p.round??1)),u=[...n.evidence.entries].sort((p,h)=>{let g=(p.round??1)-(h.round??1);return g!==0?g:(a.get(p.assignmentId)??0)-(a.get(h.assignmentId)??0)}).filter(p=>!o(p)).filter(p=>!aN(p,r)).filter(p=>e.interrupted||!(p.assignmentId===c&&(p.round??1)===l)).map(p=>{let h=p.output?.trim()??"",g=p.summary?.trim()??"",y=h?uo(h):"",x=g?uo(g):"",w=p.role==="scout"?x?`Scout completed: ${x}`:"Scout completed.":x;return{entry:p,text:x||y||w}}).filter(({text:p})=>!!p).map(({entry:p,text:h})=>{let g=p.role==="scout"?" Preflight":(p.round??1)>1?` Round ${p.round}`:"";return`[${p.title??p.assignmentId}${g}]
|
|
365
|
+
${h}`}),m=n.verdict.disposition==="complete"?Z("managed.completed"):n.verdict.disposition==="needs_continuation"?Z("managed.completed.continuation"):n.verdict.disposition==="blocked"?Z("managed.completed.blocked"):void 0;return[...s?[s]:[],...u,...m?[`[${m}]`]:[]]}i(Og,"buildManagedTaskTranscriptItems");function a0(e){let r=e.slice(0,400).match(new RegExp("\\*\\*([^*\\n]{1,80}?)\\*\\*"))?.[1]?.trim();return r?{header:r}:{}}i(a0,"extractBoldHeader");var Dg=[" \u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557"," \u2588\u2588\u2551 \u2588\u2588\u2554\u255D \u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u255A\u2588\u2588\u2557\u2588\u2588\u2554\u255D"," \u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2554\u255D "," \u2588\u2588\u2554\u2550\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551 \u2588\u2588\u2554\u2588\u2588\u2557 "," \u2588\u2588\u2551 \u2588\u2588\u2557 \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u255D \u2588\u2588\u2557"," \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D"];import Ye from"chalk";var Af=class e{static{i(this,"ShortcutsRegistry")}static instance=null;shortcuts=new Map;static getInstance(){return e.instance||(e.instance=new e),e.instance}static resetInstance(){e.instance=null}register(t){let n=this.shortcuts.get(t.id);this.shortcuts.set(t.id,{definition:t,effectiveBindings:n?.effectiveBindings??t.defaultBindings,handler:n?.handler})}registerAll(t){for(let n of t)this.register(n)}unregister(t){return this.shortcuts.delete(t)}setHandler(t,n){let r=this.shortcuts.get(t);r&&(r.handler=n)}findMatchingShortcut(t,n){let r=null,o=-1/0;for(let s of this.shortcuts.values()){let a=s.definition.context;a!=="global"&&a!==n||this.matchesBinding(t,s.effectiveBindings)&&s.handler&&s.definition.priority>o&&(o=s.definition.priority,r=s)}return r}matchesBinding(t,n){for(let r of n){let o=this.normalizeKeyName(t.name),s=this.normalizeKeyName(r.key);if(o===s){let a=(r.ctrl??!1)===t.ctrl,c=(r.shift??!1)===t.shift,l=(r.meta??!1)===t.meta;if(a&&c&&l)return!0}}return!1}normalizeKeyName(t){let n={return:"enter",esc:"escape",del:"delete",backspace:"backspace"," ":"space"},r=t.toLowerCase();return n[r]??r}executeShortcut(t,n){let r=this.findMatchingShortcut(t,n);return r?.handler?r.handler()===!0:!1}getAllShortcuts(){return Array.from(this.shortcuts.values())}getShortcutsByCategory(t){return this.getAllShortcuts().filter(n=>n.definition.category===t)}getShortcutsByContext(t){return this.getAllShortcuts().filter(n=>{let r=n.definition.context;return r==="global"||r===t})}formatBinding(t){let n=[];t.ctrl&&n.push("Ctrl"),t.meta&&n.push("Alt"),t.shift&&n.push("Shift");let r=t.key.length===1?t.key.toUpperCase():t.key;return n.push(r),n.join("+")}formatBindings(t){return t.map(n=>this.formatBinding(n)).join(" or ")}},yr=i(()=>Af.getInstance(),"getShortcutsRegistry");var Ys=[{id:"interrupt",name:"Interrupt",description:"Interrupt the current streaming response",defaultBindings:[{key:"c",ctrl:!0}],context:"global",priority:200,category:"global",configurable:!1},{id:"showHelp",name:"Toggle Help",description:"Show or hide shortcut help when the input is empty",defaultBindings:[{key:"?"}],context:"global",priority:150,category:"global",configurable:!0},{id:"toggleThinking",name:"Cycle Reasoning",description:"Cycle reasoning mode: off, auto, quick, balanced, deep",defaultBindings:[{key:"t",ctrl:!0}],context:"global",priority:150,category:"mode",configurable:!0},{id:"toggleTranscriptMode",name:"Toggle Transcript Mode",description:"Toggle transcript mode on or off",defaultBindings:[{key:"o",ctrl:!0}],context:"global",priority:150,category:"mode",configurable:!0},{id:"openTranscriptSearch",name:"Search Transcript",description:"Open transcript search",defaultBindings:[{key:"f",ctrl:!0}],context:"global",priority:150,category:"navigation",configurable:!0},{id:"togglePermissionMode",name:"Cycle Permissions",description:"Cycle permission mode: plan, accept-edits, auto-in-project",defaultBindings:[{key:"tab",shift:!0}],context:"global",priority:150,category:"mode",configurable:!0},{id:"toggleAgentMode",name:"Toggle Agent Mode",description:"Switch between AMA and SA",defaultBindings:[{key:"m",meta:!0}],context:"global",priority:150,category:"mode",configurable:!0},{id:"submitInput",name:"Submit Input",description:"Submit the current input",defaultBindings:[{key:"enter"}],context:"input",priority:50,category:"global",configurable:!1},{id:"acceptCompletion",name:"Accept Completion",description:"Accept the current autocomplete suggestion",defaultBindings:[{key:"tab"}],context:"input",priority:60,category:"editing",configurable:!0},{id:"cancelInput",name:"Cancel Input",description:"Cancel or clear the current input",defaultBindings:[{key:"escape"}],context:"input",priority:70,category:"editing",configurable:!0},{id:"newline",name:"Insert Newline",description:"Insert a newline in the current input",defaultBindings:[{key:"enter",shift:!0},{key:"j",ctrl:!0}],context:"input",priority:40,category:"editing",configurable:!0},{id:"historyUp",name:"History Up",description:"Browse previous input history",defaultBindings:[{key:"up"}],context:"input",priority:30,category:"navigation",configurable:!0},{id:"historyDown",name:"History Down",description:"Browse next input history",defaultBindings:[{key:"down"}],context:"input",priority:30,category:"navigation",configurable:!0},{id:"moveLeft",name:"Move Left",description:"Move the cursor left",defaultBindings:[{key:"left"}],context:"input",priority:20,category:"navigation",configurable:!1},{id:"moveRight",name:"Move Right",description:"Move the cursor right",defaultBindings:[{key:"right"}],context:"input",priority:20,category:"navigation",configurable:!1},{id:"moveToStart",name:"Move To Start",description:"Move the cursor to the start of the line",defaultBindings:[{key:"a",ctrl:!0}],context:"input",priority:25,category:"navigation",configurable:!0},{id:"moveToEnd",name:"Move To End",description:"Move the cursor to the end of the line",defaultBindings:[{key:"e",ctrl:!0}],context:"input",priority:25,category:"navigation",configurable:!0},{id:"killLineRight",name:"Delete To End",description:"Delete from the cursor to the end of the current line",defaultBindings:[{key:"k",ctrl:!0}],context:"input",priority:25,category:"editing",configurable:!0},{id:"killLineLeft",name:"Delete To Start",description:"Delete from the start of the line to the cursor",defaultBindings:[{key:"u",ctrl:!0}],context:"input",priority:25,category:"editing",configurable:!0},{id:"deleteWordLeft",name:"Delete Word Left",description:"Delete the word before the cursor",defaultBindings:[{key:"w",ctrl:!0},{key:"backspace",meta:!0}],context:"input",priority:25,category:"editing",configurable:!0},{id:"moveLineUp",name:"Move Line Up",description:"Move to the previous visual line in multiline input",defaultBindings:[{key:"up",ctrl:!0}],context:"input",priority:20,category:"navigation",configurable:!0},{id:"moveLineDown",name:"Move Line Down",description:"Move to the next visual line in multiline input",defaultBindings:[{key:"down",ctrl:!0}],context:"input",priority:20,category:"navigation",configurable:!0},{id:"backspace",name:"Backspace",description:"Delete the previous character",defaultBindings:[{key:"backspace"}],context:"input",priority:10,category:"editing",configurable:!1},{id:"delete",name:"Delete",description:"Delete the next character",defaultBindings:[{key:"delete"}],context:"input",priority:10,category:"editing",configurable:!1}];import{useEffect as lN,useCallback as uN,useRef as dN}from"react";function Wr(e,t,n={}){let{context:r,isActive:o=!0}=n,s=yr(),a=dN(t);a.current=t,lN(()=>(s.setHandler(e,(...u)=>a.current(...u)),()=>{s.setHandler(e,void 0)}),[s,e]);let c=uN(u=>{if(!o)return!1;let p=s.getAllShortcuts().find(x=>x.definition.id===e);if(!p)return!1;let h=r??p.definition.context,g=h==="global"?"input":h,y=s.findMatchingShortcut(u,g);return y&&y.definition.id===e?a.current()===!0:!1},[s,e,o,r]),l=fN(e,s);yn(c,{isActive:o,priority:l})}i(Wr,"useShortcut");function fN(e,t){let r=t.getAllShortcuts().find(o=>o.definition.id===e);return r?r.definition.priority:0}i(fN,"getShortcutPriority");import mN,{createContext as pN,useContext as hN,useState as c0,useCallback as Ng}from"react";var l0=pN(null);function Bg({children:e,initialContext:t="input"}){let[n,r]=c0(!1),[o,s]=c0(t);yr().registerAll(Ys);let c=Ng(()=>{r(p=>!p)},[]),l=Ng(()=>{let h=yr().getAllShortcuts(),g={global:[],mode:[],navigation:[],editing:[]};for(let y of h){let x=y.definition.category;g[x]||(g[x]=[]),g[x].push(y)}return g},[]),u=Ng(()=>yr().getShortcutsByContext(o),[o]),m={showHelp:n,toggleHelp:c,setShowHelp:r,currentContext:o,setCurrentContext:s,getShortcutsByCategory:l,getContextShortcuts:u};return mN.createElement(l0.Provider,{value:m},e)}i(Bg,"ShortcutsProvider");function Hg(){let e=hN(l0);if(!e)throw new Error("useShortcutsContext must be used within a ShortcutsProvider");return e}i(Hg,"useShortcutsContext");import gN from"chalk";function Fg({currentConfig:e,setCurrentConfig:t,isLoading:n,abort:r,stopThinking:o,clearThinkingContent:s,setCurrentTool:a,setIsLoading:c,onToggleHelp:l,setShowHelp:u,onSetThinking:m,onSetReasoningMode:p,onToggleTranscriptMode:h,onOpenTranscriptSearch:g,canOpenTranscriptSearch:y=!0,isInteractiveDialogActive:x=!1,onSetAgentMode:w,onSetPermissionMode:T,isInputEmpty:I,onSavePermissionMode:A}){return Wr("interrupt",()=>n?(r(),o(),s(),a(void 0),c(!1),console.log(gN.yellow(`
|
|
366
|
+
[Interrupted]`)),!0):!1,{isActive:n}),Wr("showHelp",()=>x?!1:I?(l(),!0):!1,{isActive:I}),Wr("toggleThinking",()=>{if(x)return!1;let $=Do.indexOf(e.reasoningMode),F=Do[($+1)%Do.length],D=F!=="off";return t(v=>({...v,thinking:D,reasoningMode:F})),Kn({reasoningMode:F,thinking:D}),p?.(F),m?.(D),u(!1),!0}),Wr("toggleTranscriptMode",()=>x?!1:(h?.(),u(!1),!0)),Wr("openTranscriptSearch",()=>x||!y?!1:(g?.(),u(!1),!0)),Wr("togglePermissionMode",()=>{if(x)return!1;let $=["plan","accept-edits","auto"],F=e.permissionMode==="auto-in-project"?"auto":e.permissionMode,v=($.indexOf(F)+1)%$.length,z=$[v];return t(fe=>({...fe,permissionMode:z})),T?.(z),A?.(z),u(!1),!0}),Wr("toggleAgentMode",()=>{if(x)return!1;let $=e.agentMode==="ama"?"sa":"ama";return t(F=>({...F,agentMode:$})),Kn({agentMode:$}),w?.($),u(!1),!0}),null}i(Fg,"GlobalShortcuts");import{exec as yN}from"child_process";import{promisify as xN}from"util";var wN=xN(yN),SN={read:"read",grep:"grep",glob:"glob",write:"write",edit:"edit",bash:"bash",undo:"undo",askuserquestion:"ask-user-question",askuser:"ask-user-question"};function u0(e){let t=[],n="",r=0;for(let o of e){if(o===","&&r===0){n.trim()&&t.push(n.trim()),n="";continue}o==="("?r++:o===")"&&r>0&&r--,n+=o}return n.trim()&&t.push(n.trim()),t}i(u0,"splitTopLevelCommaList");function TN(e){if(!e?.trim())return{configured:!1,rules:[],invalidEntries:[]};let t=[];return{configured:!0,rules:u0(e).map(r=>{if(r==="*")return{tool:"*"};if(r.includes("(")&&!r.endsWith(")")){t.push(r);return}let o=r.match(/^([^(]+?)(?:\((.*)\))?$/);if(!o){t.push(r);return}let s=SN[o[1].replace(/[^a-z]/gi,"").toLowerCase()];if(!s){t.push(r);return}let a=o[2]?u0(o[2]).map(c=>c.trim()).filter(Boolean):void 0;return{tool:s,patterns:a&&a.length>0?a:void 0}}).filter(r=>r!==void 0),invalidEntries:t}}i(TN,"parseAllowedTools");function CN(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${t}$`,"i")}i(CN,"wildcardToRegExp");function d0(e,t){return CN(e).test(t)}i(d0,"matchesPattern");function f0(e,t,n){if(!e.configured)return!0;if(e.rules.length===0)return!1;let r=t.toLowerCase(),o=r==="bash"?String(n.command??"").trim():"";return e.rules.some(s=>s.tool!=="*"&&s.tool!==r?!1:!s.patterns||s.patterns.length===0||r!=="bash"?!0:s.patterns.some(a=>d0(a,o)))}i(f0,"isToolAllowed");function bN(e,t){return e.matcher?d0(e.matcher,t):!0}i(bN,"hookMatches");function vN(e){let t=e.source==="skill"?"skill":e.source==="extension"?"extension command":"command";return[`Note: ${e.displayName} has model invocation disabled.`,`The ${t} content is shown below for manual use:`,"",`--- ${e.displayName} ---`,e.prompt,`--- end ${e.displayName} ---`].join(`
|
|
367
|
+
`)}i(vN,"formatManualOutput");function IN(e,t){if(!t)return;let n=t.trim();if(n){if(!["haiku","sonnet","opus"].includes(n))return n;if(e==="anthropic")switch(n){case"haiku":return"claude-3-5-haiku-latest";case"opus":return"claude-opus-4-1";default:return"claude-sonnet-4-6"}}}i(IN,"resolveModelOverride");async function kN(e,t,n,r,o,s){let a=typeof n.displayName=="string"?n.displayName:"frontmatter invocation",c={command:t.command,_reason:`Frontmatter hook ${e} for ${a}`,_frontmatterHook:!0,_hookEvent:e,_hookMatcher:t.matcher};if(!f0(s,"bash",c))return{allow:!1,message:`Hook ${e} for ${a} is blocked by allowed-tools policy.`};if(o.beforeToolExecute&&!await o.beforeToolExecute("bash",c))return{allow:!1,message:`Hook ${e} for ${a} was blocked by the current permission policy.`};try{let{stdout:l,stderr:u}=await wN(t.command,{env:{...process.env,KODAX_HOOK_EVENT:e,KODAX_HOOK_PAYLOAD:JSON.stringify(n)},maxBuffer:1048576,windowsHide:!0}),m=[l.trim(),u.trim()].filter(Boolean).join(`
|
|
368
|
+
`);m&&o.onToolResult?.({id:`frontmatter-hook:${e}`,name:"bash",content:m}),u.trim()&&await r(`[Hook ${e} stderr] ${u.trim()}`);let p=l.trim();if(!p)return{};try{let h=JSON.parse(p);return{allow:typeof h.allow=="boolean"?h.allow:typeof h.continue=="boolean"?h.continue:void 0,message:typeof h.message=="string"?h.message:void 0,additionalContext:typeof h.additionalContext=="string"?h.additionalContext:typeof h.additional_context=="string"?h.additional_context:void 0}}catch{return{message:p,additionalContext:p}}}catch(l){return await r(`[Hook ${e} failed] ${l instanceof Error?l.message:String(l)}`),{}}}i(kN,"executeHookCommand");async function qs(e,t,n,r,o,s,a){let c=e?.[t];if(!c||c.length===0)return{};let l={};for(let u of c){if(!bN(u,n))continue;let m=await kN(t,u,r,o,s,a);if(m.message&&await o(`[Hook ${t}] ${m.message}`),m.additionalContext&&(l.additionalContext=l.additionalContext?`${l.additionalContext}
|
|
369
|
+
${m.additionalContext}`:m.additionalContext),m.allow===!1){l.allow=!1;break}}return l}i(qs,"runHooks");async function _f(e,t,n,r){if(t.disableModelInvocation)return{mode:"manual",manualOutput:vN(t),finalize:i(async()=>{},"finalize")};let o=e.events??{},s=TN(t.allowedTools),a=IN(e.provider,t.model),c=!1,l=i(async w=>{if(r(w),!(c||!t.hooks?.Notification?.length)){c=!0;try{await qs(t.hooks,"Notification",w,{displayName:t.displayName,source:t.source,path:t.path,message:w},async T=>{r(T)},o,s)}finally{c=!1}}},"emitWithNotifications");t.model&&!a&&await l(`[Info] Model preference '${t.model}' is not supported by provider '${e.provider}', using the current model.`),s.invalidEntries.length>0&&await l(`[Warning] ${t.displayName} has invalid allowed-tools entries: ${s.invalidEntries.join(", ")}`),s.configured&&s.rules.length===0&&await l(`[Warning] ${t.displayName} has no valid allowed-tools entries, so all tool execution will be blocked.`);let u=await qs(t.hooks,"SessionStart",t.displayName,{displayName:t.displayName,source:t.source,path:t.path},l,o,s);if(u.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped before execution.`,finalize:i(async()=>{},"finalize")};let m=await qs(t.hooks,"UserPromptSubmit",n,{displayName:t.displayName,source:t.source,prompt:n,path:t.path},l,o,s);if(m.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped by a UserPromptSubmit hook.`,finalize:i(async()=>{},"finalize")};let p=[t.agent?`Preferred agent: ${t.agent}`:void 0,u.additionalContext,m.additionalContext].filter(w=>typeof w=="string"&&w.trim().length>0),h=[p.length>0?p.join(`
|
|
368
370
|
|
|
369
|
-
`):void 0,t.prompt,`User request: ${n}`].filter(w=>typeof w=="string"&&w.trim().length>0),g={...o,beforeToolExecute:i(async(w,T)=>
|
|
371
|
+
`):void 0,t.prompt,`User request: ${n}`].filter(w=>typeof w=="string"&&w.trim().length>0),g={...o,beforeToolExecute:i(async(w,T)=>f0(s,w,T)?(await qs(t.hooks,"PreToolUse",w,{tool:w,input:T,displayName:t.displayName,source:t.source,path:t.path},l,o,s)).allow===!1?(await l(`[Blocked] PreToolUse hook blocked '${w}' for ${t.displayName}`),!1):o.beforeToolExecute?await o.beforeToolExecute(w,T):!0:(await l(`[Blocked] Tool '${w}' is not allowed by ${t.displayName}`),!1),"beforeToolExecute"),onToolResult:i(w=>{o.onToolResult?.(w),qs(t.hooks,"PostToolUse",w.name,{...w,displayName:t.displayName,source:t.source,path:t.path},l,o,s)},"onToolResult")},y=!1,x=i(async w=>{y||(y=!0,await qs(t.hooks,t.context==="fork"?"SubagentStop":"Stop",t.displayName,{displayName:t.displayName,source:t.source,path:t.path,error:w?.message},l,o,s))},"finalize");return{mode:t.context==="fork"?"fork":"inline",prompt:h.join(`
|
|
370
372
|
|
|
371
|
-
`),options:{...e,modelOverride:a,context:{...e.context,rawUserInput:n,skillInvocation:t.source==="skill"?t.skillInvocation:e.context?.skillInvocation},events:g},finalize:x}}i(
|
|
372
|
-
`)}catch{}}i(
|
|
373
|
-
`))}i(
|
|
374
|
-
`);
|
|
375
|
-
`)}catch{}}}i(
|
|
376
|
-
`):[""],Math.max(1,t),0,0);return Math.max(1,n.visualLines.length)}i(it,"wrapLineCount");function
|
|
377
|
-
`):[""],o,0,0);return Math.max(1,s.visualLines.length)+2}i(
|
|
373
|
+
`),options:{...e,modelOverride:a,context:{...e.context,rawUserInput:n,skillInvocation:t.source==="skill"?t.skillInvocation:e.context?.skillInvocation},events:g},finalize:x}}i(_f,"prepareInvocationExecution");import{appendFileSync as RN,mkdirSync as EN,writeFileSync as MN}from"node:fs";import{join as p0}from"node:path";import m0 from"node:v8";var jg=parseInt(process.env.KODAX_MEMORY_DIAG??"0",10),Gg=jg>=1,Kg=Ki(),h0=p0(Kg,"memory-diag.log"),Wg=0,Ug=!1;function g0(){if(!Ug)try{EN(Kg,{recursive:!0}),Ug=!0}catch{Ug=!0}}i(g0,"ensureLogDir");function AN(e){g0();try{RN(h0,e+`
|
|
374
|
+
`)}catch{}}i(AN,"writeLog");function St(e){return`${(e/1024/1024).toFixed(2)}MB`}i(St,"formatMB");function _N(){return typeof globalThis.gc=="function"?(globalThis.gc(),!0):!1}i(_N,"tryGC");function Lt(e){return e?e.length*2:0}i(Lt,"strBytes");function fi(e,t=0){if(t>8)return 0;if(e==null)return 8;if(typeof e=="string")return e.length*2;if(typeof e=="number"||typeof e=="boolean")return 8;if(Array.isArray(e)){let n=32;for(let r of e)n+=fi(r,t+1);return n}if(typeof e=="object"){let n=64;for(let[r,o]of Object.entries(e))n+=r.length*2,n+=fi(o,t+1);return n}return 16}i(fi,"estimateJsonBytes");function y0(e){if(!e||typeof e!="object")return 64;let t=e,n=64,r=new Set(["type","text","thinking","content","partial_json","input","data","signature","path","mediaType","tool_use_id","id","name","is_error"]);if(typeof t.text=="string"&&(n+=t.text.length*2),typeof t.thinking=="string"&&(n+=t.thinking.length*2),typeof t.content=="string")n+=t.content.length*2;else if(Array.isArray(t.content))for(let o of t.content)n+=y0(o);typeof t.partial_json=="string"&&(n+=t.partial_json.length*2),typeof t.data=="string"&&(n+=t.data.length*2),typeof t.signature=="string"&&(n+=t.signature.length*2),typeof t.path=="string"&&(n+=t.path.length*2),t.input!==void 0&&(n+=fi(t.input));for(let[o,s]of Object.entries(t))r.has(o)||(n+=o.length*2+fi(s));return n}i(y0,"estimateBlockBytes");function Vg(e){if(typeof e.content=="string")return e.content.length*2+64;if(Array.isArray(e.content)){let t=64;for(let n of e.content)t+=y0(n);return t}return 200}i(Vg,"estimateMessageBytes");function Lf(e){let t=128;switch(t+=Lt(e.id)+Lt(e.parentId??void 0)+Lt(e.timestamp),e.type){case"message":return t+Vg(e.message);case"compaction":return t+=Lt(e.summary),t+=Lt(e.firstKeptEntryId),t+=Lt(e.reason),t+=Lt(e.artifactLedgerId),e.details!==void 0&&(t+=fi(e.details)),e.memorySeed!==void 0&&(t+=fi(e.memorySeed)),t;case"branch_summary":return t+=Lt(e.summary),t+=Lt(e.fromId),e.details!==void 0&&(t+=fi(e.details)),t;case"label":return t+=Lt(e.targetId),t+=Lt(e.label),t;case"archive_marker":return t+=Lt(e.archiveBatchId),t+=Lt(e.summary),t+=8,t;default:return t}}i(Lf,"estimateEntryBytes");function LN(e){let t={},n=[];for(let o=0;o<e.length;o++){let s=e[o],a=Vg(s);n.push({index:o,role:s.role,bytes:a});let c=t[s.role]??{count:0,bytes:0};c.count++,c.bytes+=a,t[s.role]=c}return n.sort((o,s)=>s.bytes-o.bytes),{totalBytes:n.reduce((o,s)=>o+s.bytes,0),biggest:n.slice(0,5),byRole:t}}i(LN,"buildMessageBreakdown");function Pf(){return Gg}i(Pf,"memDiagEnabled");function $f(e,t){if(!Gg)return;e==="turn-start"&&Wg++;let n=process.memoryUsage(),r=new Date().toISOString(),o=t.biggestMessages,s=["",`\u2550\u2550\u2550 [MEMDIAG] turn=${Wg} phase=${e} @${r} \u2550\u2550\u2550`,` V8 heap: used=${St(n.heapUsed)} total=${St(n.heapTotal)} rss=${St(n.rss)} ext=${St(n.external)}`," \u2500\u2500 Data breakdown \u2500\u2500",` context.messages: ${t.messageCount} msgs, ${St(t.messageBytes)}`,` lineage.entries: ${t.lineageEntryCount} total (msg=${t.lineageMessageEntryCount}, compact=${t.lineageCompactionCount}, branch=${t.lineageBranchSummaryCount}, label=${t.lineageLabelCount}, archive=${t.lineageArchiveMarkerCount})`,` lineage non-message: ${St(t.lineageNonMessageBytes)} (compaction.details/memorySeed + branch_summary payloads)`,` lineage orphan messages: ${t.lineageOrphanMessageCount} msgs, ${St(t.lineageOrphanMessageBytes)} (in lineage but not in context.messages \u2014 branches/pruned)`,` UI history: ${t.historyItemCount} items, ${St(t.historyTextBytes)}`,` foreground turn: ${t.foregroundItemCount} items, ${St(t.foregroundTextBytes)}`,` streaming response: ${St(t.streamingResponseBytes)}`,` streaming thinking: ${St(t.streamingThinkingBytes)}`,` persisted UI history: ${t.persistedUiHistoryCount} items, ${St(t.persistedUiHistoryBytes)}`];if(o.length>0){s.push(" \u2500\u2500 Top 5 biggest messages \u2500\u2500");for(let u of o)s.push(` [${u.index}] role=${u.role} ${St(u.bytes)}`)}let a=t.messageBytes+t.lineageNonMessageBytes+t.lineageOrphanMessageBytes+t.historyTextBytes+t.foregroundTextBytes+t.streamingResponseBytes+t.streamingThinkingBytes+t.persistedUiHistoryBytes;s.push(" \u2500\u2500 V8 heap spaces \u2500\u2500");let c=m0.getHeapSpaceStatistics();for(let u of c)u.space_used_size>1024*1024&&s.push(` ${u.space_name.padEnd(25)} used=${St(u.space_used_size)} allocated=${St(u.space_size)}`);if(s.push(" \u2500\u2500 Summary \u2500\u2500"),s.push(` tracked data total: ${St(a)}`),s.push(` V8 heap used: ${St(n.heapUsed)}`),s.push(` unaccounted (overhead): ${St(n.heapUsed-a)}`),s.push(" (React/Ink tree, provider SDK buffers, module metadata,"),s.push(' tokenizer caches, source maps \u2014 see "Blind spots" note)'),_N()){let u=process.memoryUsage();s.push(` after forced GC: heap=${St(u.heapUsed)} (freed ${St(n.heapUsed-u.heapUsed)})`)}else s.push(" after forced GC: UNAVAILABLE \u2014 re-run with `node --expose-gc` to distinguish"),s.push(` "real leak" from "GC hasn't run yet".`);if(jg>=2)try{let u=p0(Kg,`heap-turn${Wg}-${e}.heapsnapshot`);m0.writeHeapSnapshot(u),s.push(` heap snapshot: ${u}`)}catch{s.push(" heap snapshot: FAILED")}AN(s.join(`
|
|
375
|
+
`))}i($f,"memDiagSnapshot");function Of(e,t,n){let r=LN(e),o=new Set(e),s=0,a=0,c=0,l=0,u=0,m=0,p=0,h=0,g=t?.entries??[];for(let T of g)switch(T.type){case"message":h++,o.has(T.message)||(c++,a+=Vg(T.message));break;case"compaction":l++,s+=Lf(T);break;case"branch_summary":u++,s+=Lf(T);break;case"label":m++,s+=Lf(T);break;case"archive_marker":p++,s+=Lf(T);break}let y=0;for(let T of n.historyItems)y+=Lt(T.text);let x=0;for(let T of n.foregroundItems)x+=Lt(T.text);let w=0;for(let T of n.persistedUiHistory)w+=Lt(T.text);return{messageCount:e.length,messageBytes:r.totalBytes,biggestMessages:r.biggest,lineageEntryCount:g.length,lineageMessageEntryCount:h,lineageCompactionCount:l,lineageBranchSummaryCount:u,lineageLabelCount:m,lineageArchiveMarkerCount:p,lineageNonMessageBytes:s,lineageOrphanMessageBytes:a,lineageOrphanMessageCount:c,historyItemCount:n.historyItems.length,historyTextBytes:y,foregroundItemCount:n.foregroundItems.length,foregroundTextBytes:x,streamingResponseBytes:Lt(n.streamingResponse),streamingThinkingBytes:Lt(n.streamingThinking),persistedUiHistoryCount:n.persistedUiHistory.length,persistedUiHistoryBytes:w}}i(Of,"buildMemDiagBreakdown");function x0(){if(Gg){g0();try{let e=typeof globalThis.gc=="function",t=[`[MEMDIAG] Session started at ${new Date().toISOString()}`,`[MEMDIAG] Level=${jg} gc=${e?"available":"UNAVAILABLE (run with node --expose-gc)"}`,"[MEMDIAG] Blind spots: React/Ink trees, provider SDK buffers, WeakMap/Map caches,","[MEMDIAG] tokenizer internal state, source-map strings, native handles.",'[MEMDIAG] A large "unaccounted" number living in these buckets is expected;',"[MEMDIAG] use Level 2 (KODAX_MEMORY_DIAG=2) to dump heap snapshots for DevTools.",""].join(`
|
|
376
|
+
`);MN(h0,t+`
|
|
377
|
+
`)}catch{}}}i(x0,"memDiagReset");import PN from"node:fs";import Xg from"node:path";var $N={".gif":"image/gif",".jpeg":"image/jpeg",".jpg":"image/jpeg",".png":"image/png",".webp":"image/webp"},ON=/@(?:"([^"]+)"|'([^']+)'|([^\s]+))/g;function DN(e){return $N[Xg.extname(e).toLowerCase()]}i(DN,"resolveImageMediaType");var zg="[Image unavailable]";function NN(e){return""}i(NN,"buildImageAnchor");function zc(e,t){let n=[],r=[],o=new Set,s=new Map,a=new Set,c=[],l=0;for(let m of e.matchAll(ON)){let p=m.index??l;c.push(e.slice(l,p));let h=m[1]??m[2]??m[3];if(!h){c.push(m[0]),l=p+m[0].length;continue}let g=DN(h);if(!g){c.push(m[0]),l=p+m[0].length;continue}let y=Xg.resolve(t,h);try{if(!PN.statSync(y).isFile()){a.has(y)||(r.push(`[Image input skipped] ${h} is not a file.`),a.add(y)),c.push(zg),l=p+m[0].length;continue}}catch{a.has(y)||(r.push(`[Image input missing] ${h} was not found from ${t}.`),a.add(y)),c.push(zg),l=p+m[0].length;continue}if(!o.has(y)){o.add(y);let x=NN(n.length+1);s.set(y,x),n.push({kind:"image",path:y,mediaType:g,source:"user-inline",description:`Attached image ${Xg.basename(y)}`})}c.push(s.get(y)??zg),l=p+m[0].length}c.push(e.slice(l));let u=c.join("");return{promptText:u,messageContent:Hw(u,n),inputArtifacts:n,warnings:r}}i(zc,"preparePromptInputArtifacts");function w0(e){let t=BN(e.stage),n=HN(e);return{type:"info",icon:"\u{1F4E1}",text:n?`[RepoIntel] ${t} \xB7 ${n}`:`[RepoIntel] ${t}`,tightSpacing:!0}}i(w0,"createRepoIntelTraceHistoryItem");function BN(e){switch(e){case"routing":return"routing";case"preturn":return"preturn";case"module":return"module";case"impact":return"impact";case"task-snapshot":return"task-snapshot";default:return String(e)}}i(BN,"stageDisplayName");function HN(e){let t=[],n=e.capability;n&&(t.push(`mode=${n.mode}`),n.status!=="ok"&&t.push(`status=${n.status}`));let r=e.trace;return r&&(r.daemonLatencyMs!==void 0&&t.push(`daemon ${r.daemonLatencyMs}ms`),r.cliLatencyMs!==void 0&&t.push(`cli ${r.cliLatencyMs}ms`),r.cacheHit!==void 0&&t.push(r.cacheHit?"cache hit":"cache miss"),r.capsuleEstimatedTokens!==void 0&&t.push(`${FN(r.capsuleEstimatedTokens)} tokens`)),t.length===0&&e.summary?WN(e.summary):t.join(" \xB7 ")}i(HN,"buildRepoIntelDetailLine");function FN(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(FN,"formatTokens");function WN(e){return e.replace(/^stage=[^|]+\|\s*/,"").trim()}i(WN,"stripSummaryStagePrefix");function S0(e,t,n,r){let o=e?.gitRoot??t??void 0,s=e?.executionCwd??o??process.cwd();return{...e,gitRoot:o,executionCwd:s,contextTokenSnapshot:n,taskSurface:"repl",skillsPrompt:r}}i(S0,"buildManagedRunContext");var UN=["global","mode","navigation","editing"],jN={global:["showHelp","interrupt"],mode:["toggleThinking","toggleTranscriptMode","togglePermissionMode","toggleAgentMode"],navigation:["openTranscriptSearch","historyUp","historyDown","moveToStart","moveToEnd"],editing:["acceptCompletion","cancelInput","newline","killLineRight","killLineLeft","deleteWordLeft"]},GN={global:"Global",mode:"Modes",navigation:"Navigation",editing:"Editing"},KN={id:"transcript",title:"Transcript",items:[{id:"mode",label:"Ctrl+O transcript mode"},{id:"search",label:"Ctrl+F search transcript"},{id:"browse",label:"PgUp/PgDn/j/k scroll"},{id:"match",label:"n/N next match"},{id:"latest",label:"End back to live"},{id:"exit",label:"q or Esc back to live"}]};function VN(e){let t=yr(),n=t.getAllShortcuts().find(o=>o.definition.id===e);if(n?.effectiveBindings?.length)return t.formatBindings(n.effectiveBindings);let r=Ys.find(o=>o.id===e);if(r?.defaultBindings?.length)return t.formatBindings(r.defaultBindings)}i(VN,"resolveShortcutBindingLabel");function zN(e){return`${VN(e.id)??e.id} ${e.name}`}i(zN,"buildMenuItemLabel");function XN(e){return yr().getAllShortcuts().find(r=>r.definition.id===e)?.definition??Ys.find(r=>r.id===e)}i(XN,"resolveShortcutDefinition");function Df(){return[...UN.map(t=>{let n=jN[t].map(r=>XN(r)).filter(r=>!!r).map(r=>({id:r.id,label:zN(r)}));return{id:t,title:GN[t],items:n}}).filter(t=>t.items.length>0),KN]}i(Df,"buildHelpMenuSections");var Yg=2,T0=1,C0=4;function it(e,t){let n=tn(e.length>0?e.split(`
|
|
378
|
+
`):[""],Math.max(1,t),0,0);return Math.max(1,n.visualLines.length)}i(it,"wrapLineCount");function YN(e,t,n=">"){let r=n.length+1,o=Math.max(20,t-r),s=tn(e.length>0?e.split(`
|
|
379
|
+
`):[""],o,0,0);return Math.max(1,s.visualLines.length)+2}i(YN,"calculateInputPromptRows");function b0(e){let{terminalRows:t,terminalWidth:n,windowedTranscript:r=!1,inputText:o,inputPrompt:s=">",footerHeaderText:a,activitySummary:c,pendingInputSummary:l,stashNoticeSummary:u,notificationSummary:m,statusNoticeSummary:p,workStripText:h,suggestionsReserved:g,suggestionsMode:y="inline",showHelp:x,statusBarText:w,confirmPrompt:T,confirmInstruction:I,uiRequest:A,dialogMode:$="inline",historySearch:F,maxVisibleSelectOptions:D=5,reviewHint:v,todoSurfaceRows:z=0,activityBarVisible:fe=!1}=e,se=Math.max(0,Math.floor(z)),ge=a?it(a,Math.max(1,n-2)):0,L=c?it(c,Math.max(1,n-2)):0,k=fe?Math.max(1,L):L,P=l?it(l,Math.max(1,n-2)):0,Re=u?it(u,Math.max(1,n-2)):0,_e=m?it(m,Math.max(1,n-2)):0,Y=p?it(p,Math.max(1,n-2)):0,V=h?it(h,Math.max(1,n-2)):0,ae=YN(o,n,s),Q=g?8:0,J=x?T0+C0+Df().reduce((O,j)=>O+it(j.title,Math.max(1,n-Yg))+it(j.items.map(te=>te.label).join(" | "),Math.max(1,n-Yg)),0):0,q=it(w,Math.max(1,n-2)),Ie=0;if(T&&I){let O=Math.max(1,n-4);Ie=3+it(`[Confirm] ${T}`,O)+it(I,O)}let ue=0,et=0;if(A){let O=Math.max(1,n-4);A.kind==="select"?(et=Math.min(D,A.options.length),ue=3+it(`[Select] ${A.title}`,O)+A.options.slice(0,et).reduce((j,te,Le)=>j+it(`${Le+1}. ${te.label}${te.description?` - ${te.description}`:""}`,O),0)+(A.options.length>et?2:0)+it(`Choice: ${A.buffer||"(type a number)"}`,O)+1+(A.error?it(A.error,O):0)):ue=3+it(`[Input] ${A.prompt}`,O)+(A.defaultValue!==void 0?it(`Default: ${A.defaultValue}`,O):0)+it(`Value: ${A.buffer||"(type your response)"}`,O)+1+(A.error?it(A.error,O):0)}let Ue=0;if(F){let O=Math.max(1,n-4);Ue=3+it(`Query: ${F.query||"(type to search)"}`,O)+(F.matchCount===0?it("No matches yet",O):it(`${Math.max(1,F.matchCount)} matches`,O)+it(F.selectedExcerpt||"",O))+1}let De=v?it(v,Math.max(1,n-2)):0,me=ge+k+se+P+Re+_e+ae+J+Y+De+(y==="inline"?Q:0)+($==="inline"?Ie+ue+Ue:0),Pt=(y==="overlay"?Q:0)+($==="overlay"?Ie+ue+Ue:0),Rt=me+V+q,ee=Math.max(1,t-Rt);return{messageRows:ee,reservedBottomRows:Rt,headerRows:ge,activityRows:k,pendingInputRows:P,stashNoticeRows:Re,notificationRows:_e,workStripRows:V,inputRows:ae,suggestionsRows:Q,helpRows:J,statusNoticeRows:Y,statusRows:q,confirmRows:Ie,uiRequestRows:ue,historySearchRows:Ue,footerRows:me,overlayRows:Pt,visibleSelectOptions:et,reviewHintRows:De,todoSurfaceRows:se,slots:[{name:"transcript",rows:ee},{name:"footer",rows:me},{name:"overlay",rows:Pt},{name:"status",rows:q},{name:"task-bar",rows:V}]}}i(b0,"calculateViewportBudget");function v0(e,t={}){let n=is(e,{rendererMode:t.rendererMode??"owned"});return{hostProfile:e,surface:"prompt",buffering:n.bufferingMode,ownsViewportByDefault:n.ownsViewportByDefault,supportsMouseTracking:n.supportsMouseTracking,supportsFullscreenLayout:n.supportsFullscreenLayout,supportsOverlaySurface:n.supportsOverlaySurface,supportsSelection:n.supportsSelection,supportsCopyOnSelect:n.supportsCopyOnSelect,supportsWheelHistory:n.supportsWheelHistory,supportsViewportChrome:n.supportsViewportChrome,supportsSearchViewport:n.supportsSearchViewport,supportsStickyPrompt:n.supportsStickyPrompt,scrollAnchor:0,jumpToLatestAvailable:!1,stickyPromptVisible:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(v0,"createTranscriptDisplayState");function I0(e){return{...e,surface:"transcript",jumpToLatestAvailable:e.pendingLiveUpdates>0}}i(I0,"enterTranscriptMode");function k0(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(k0,"exitTranscriptMode");function R0(e,t){let n=Math.max(0,t);return{...e,pendingLiveUpdates:n,jumpToLatestAvailable:e.surface==="transcript"?n>0:e.scrollAnchor>0}}i(R0,"setTranscriptPendingLiveUpdates");function E0(e,t){let n=Math.max(0,t);return{...e,scrollAnchor:n,jumpToLatestAvailable:e.surface==="transcript"?e.pendingLiveUpdates>0:n>0}}i(E0,"setTranscriptScrollAnchor");function M0(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(M0,"jumpTranscriptToLatest");function A0(e,t){return{...e,stickyPromptVisible:t}}i(A0,"setTranscriptStickyPromptVisible");function Js(e,t){return{...e,selectedItemId:t,selectionMode:t?"message":"none"}}i(Js,"setTranscriptSelectedItem");function _0(e,t){return{...e,surface:"transcript",searchMode:"history",searchAnchorItemId:t?.anchorItemId??e.selectedItemId??e.searchAnchorItemId,currentMatchIndex:Math.max(0,t?.initialMatchIndex??e.currentMatchIndex),jumpToLatestAvailable:e.pendingLiveUpdates>0}}i(_0,"openTranscriptSearch");function L0(e){return{...e,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0}}i(L0,"closeTranscriptSearch");function P0(e,t){return{...e,currentMatchIndex:Math.max(-1,t)}}i(P0,"setTranscriptSearchMatchIndex");function $0(e){return e.supportsFullscreenLayout&&e.ownsViewportByDefault}i($0,"shouldWindowTranscript");function O0(e){return e.surface==="transcript"}i(O0,"shouldPauseLiveTranscript");function qg(e){return e.supportsSelection}i(qg,"ownsTranscriptSelectionPath");function Nf(e,t,n){if(!(!qg(e)||!n))return t.includes(n)?n:void 0}i(Nf,"resolveTranscriptSelectedItemId");function D0(e){return e.supportsSelection&&e.supportsCopyOnSelect}i(D0,"supportsPassiveTranscriptCopyOnSelect");function N0(e){if(e.surface==="transcript")return"Transcript | PgUp/PgDn page | j/k scroll | \u2190/\u2192 select | / search | n/N matches | q/Esc/Ctrl+O back"}i(N0,"buildTranscriptBrowseHint");var B0="Slash commands cannot be queued mid-task. Press Esc to abort the current task, then run the command.",H0="slash-guard";function F0(e){return e.trimStart().startsWith("/")}i(F0,"isSlashCommandText");var qN=`
|
|
378
380
|
|
|
379
381
|
---
|
|
380
382
|
|
|
381
|
-
`;async function
|
|
382
|
-
`)}i(
|
|
383
|
+
`;async function W0(e){let{initialPrompt:t,runRound:n,shiftPendingPrompt:r,onRoundComplete:o,onBeforeQueuedRound:s,shouldContinue:a=i(()=>!0,"shouldContinue")}=e,c=t,l=await n(c);for(;;){if(await o?.(l),!a(l))return l;let u=[];for(;;){let m=r();if(m===void 0)break;let p=typeof m=="string"?m.trim():"";p.length>0&&u.push(p)}if(u.length===0)return l;c=u.length===1?u[0]:u.join(qN),await s?.(c),l=await n(c)}}i(W0,"runQueuedPromptSequence");function j0(e){return e.itemsLength>0||e.currentResponse.length>0||e.thinkingContent.length>0||e.activeToolCallsLength>0}i(j0,"hasTranscriptInputActivity");function JN(e){return e.keyName==="mouse"&&e.hasMouse&&e.usesManagedMouseClicks&&e.supportsMouseTracking&&e.usesRendererMouseTracking}i(JN,"shouldHandleManagedTranscriptMouse");function U0(e){return e.usesManagedMouseWheel&&e.supportsWheelHistory&&e.hasTranscript}i(U0,"shouldHandleManagedTranscriptWheel");function G0(e){if(JN({keyName:e.keyName,hasMouse:e.hasMouse,usesManagedMouseClicks:e.usesManagedMouseClicks,supportsMouseTracking:e.supportsMouseTracking,usesRendererMouseTracking:e.usesRendererMouseTracking})){if(e.mouseButton!=="left")return{kind:"none"};if(e.mouseAction==="press"||e.mouseAction==="drag"||e.mouseAction==="release")return{kind:"mouse-phase",phase:e.mouseAction}}return e.keyName==="pageup"?e.hasTranscript?{kind:"scroll-by",delta:e.reviewPageSize}:{kind:"consume"}:e.keyName==="wheelup"?U0({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?{kind:"scroll-by",delta:e.reviewWheelStep}:{kind:"none"}:e.keyName==="wheeldown"?U0({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?e.historyScrollOffset===0?{kind:"consume"}:{kind:"scroll-by",delta:-e.reviewWheelStep}:{kind:"none"}:{kind:"none"}}i(G0,"resolveTranscriptPointerAction");function QN(e){return e.isTranscriptMode&&e.hasTextSelection}i(QN,"shouldDeferInterruptToTranscriptSelectionCopy");function K0(e){return e.ctrl&&e.keyName==="c"?QN({isTranscriptMode:e.isTranscriptMode,hasTextSelection:e.hasTranscriptTextSelection})?{kind:"none"}:{kind:"interrupt"}:e.keyName!=="escape"?{kind:"none"}:e.isTranscriptMode||e.isAwaitingUserInteraction?{kind:"none"}:e.isInputEmpty&&e.pendingInputCount>0?{kind:"pop-pending-input"}:e.isInputEmpty?e.timeSinceLastEscapeMs<e.doubleEscapeIntervalMs?{kind:"interrupt"}:{kind:"arm-double-escape"}:{kind:"none"}}i(K0,"resolveStreamingInterruptAction");function V0(e){let{key:t,isTranscriptMode:n,isHistorySearchActive:r,historySearchMatchCount:o,hasTextSelection:s,hasFocusedItem:a,canCopySelectedItem:c,canCopySelectedToolInput:l,canToggleSelectedDetail:u,canCycleTranscriptSelection:m}=e;if(t.name==="pageup")return{kind:"scroll-page-up"};if(r){if(t.name==="escape")return{kind:"close-history-search"};if(t.name==="backspace")return{kind:"history-search-backspace"};if(t.name==="down")return{kind:"history-search-step",direction:"next"};if(t.name==="up")return{kind:"history-search-step",direction:"prev"};if(t.name==="enter"||t.name==="return")return{kind:"history-search-submit"};if(t.insertable&&t.sequence)return{kind:"history-search-append",text:t.sequence}}return n&&!r&&!t.ctrl&&!t.meta&&t.insertable&&t.sequence==="/"?{kind:"open-history-search"}:n&&!t.ctrl&&!t.meta&&t.name==="q"?{kind:"exit-transcript"}:n&&t.name==="escape"?s||a?{kind:"clear-selection-focus"}:{kind:"exit-transcript"}:t.name==="home"?{kind:"scroll-home"}:t.name==="pagedown"?{kind:"scroll-page-down"}:t.name==="end"?{kind:"scroll-end"}:n?t.ctrl&&!t.meta&&t.name==="e"?{kind:"toggle-show-all"}:t.name==="j"||t.name==="down"?{kind:"scroll-line-down"}:t.name==="k"||t.name==="up"?{kind:"scroll-line-up"}:!t.ctrl&&!t.meta&&t.name==="g"&&t.shift?{kind:"jump-latest"}:!t.ctrl&&!t.meta&&t.name==="g"&&!t.shift?{kind:"jump-oldest"}:t.name==="left"?m?{kind:"cycle-selection",direction:"prev"}:{kind:"none"}:t.name==="right"?m?{kind:"cycle-selection",direction:"next"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="c"?s?{kind:"copy-selection"}:c?{kind:"copy-item"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="i"?l?{kind:"copy-tool-input"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="v"?u?{kind:"toggle-detail"}:{kind:"none"}:!t.ctrl&&!t.meta&&!t.shift&&t.name==="s"?{kind:"dump-to-scrollback"}:!t.ctrl&&!t.meta&&t.name==="n"?o===0?{kind:"none"}:{kind:"search-match-nav",direction:t.shift?"prev":"next"}:{kind:"none"}:{kind:"none"}}i(V0,"resolveTranscriptKeyboardAction");function z0(e){switch(e.action.kind){case"none":return!1;case"scroll-page-up":return e.hasTranscript&&(e.disarmHistorySearchSelection(),e.scrollTranscriptBy(e.pageScrollDelta)),!0;case"close-history-search":return e.closeHistorySearchSurface(),!0;case"history-search-backspace":return e.backspaceHistorySearchQuery(),!0;case"history-search-step":return e.stepHistorySearchSelection(e.action.direction),!0;case"history-search-submit":return e.submitHistorySearchSelection(),!0;case"history-search-append":return e.appendHistorySearchQuery(e.action.text),!0;case"open-history-search":return e.openHistorySearchSurface(),!0;case"clear-selection-focus":return e.clearTranscriptSelectionFocus(),!0;case"exit-transcript":return e.exitTranscriptModeSurface(),!0;case"toggle-show-all":return e.toggleTranscriptShowAll(),!0;case"scroll-home":case"jump-oldest":return e.disarmHistorySearchSelection(),e.scrollTranscriptHome(),!0;case"scroll-page-down":return e.disarmHistorySearchSelection(),e.scrollTranscriptBy(-e.pageScrollDelta),!0;case"scroll-end":return e.isTranscriptMode?(e.exitTranscriptModeSurface(),!0):(e.scrollTranscriptToBottom(),!0);case"scroll-line-down":return e.disarmHistorySearchSelection(),e.scrollTranscriptBy(-1),!0;case"scroll-line-up":return e.disarmHistorySearchSelection(),e.scrollTranscriptBy(1),!0;case"jump-latest":return e.scrollTranscriptToBottom(),!0;case"cycle-selection":return e.cycleTranscriptSelection(e.action.direction),!0;case"copy-selection":return e.copySelectedTranscriptText(),!0;case"copy-item":return e.copySelectedTranscriptItem(),!0;case"copy-tool-input":return e.copySelectedTranscriptToolInput(),!0;case"toggle-detail":return e.toggleSelectedTranscriptDetail(),!0;case"search-match-nav":return e.navigateSearchMatch(e.action.direction),!0;case"dump-to-scrollback":return e.dumpTranscriptToScrollback(),!0;default:return!1}}i(z0,"executeTranscriptKeyboardAction");function mi(e){let t=/\u001b\[[0-9;?]*[ -/]*[@-~]/g,n=/\u001b\][^\u0007\u001b]*(?:\u0007|\u001b\\)/g,r=/\u001b[@-_]/g;return e.replace(t,"").replace(n,"").replace(r,"")}i(mi,"stripAnsi");function ZN(e){return e.tools.map(n=>`tool: ${n.name}`).join(`
|
|
384
|
+
`)}i(ZN,"serializeToolGroup");function eB(e){switch(e.type){case"thinking":return null;case"user":return`user: ${mi(e.text)}`;case"assistant":return`assistant: ${mi(e.text)}`;case"system":return`system: ${mi(e.text)}`;case"info":return`info: ${mi(e.text)}`;case"error":return`error: ${mi(e.text)}`;case"event":return`event: ${mi(e.text)}`;case"hint":return`hint: ${mi(e.text)}`;case"tool_group":return ZN(e);default:return e}}i(eB,"serializeOne");function tB(e){let t=[];for(let n of e){let r=eB(n);r!==null&&r!==""&&t.push(r)}return t.join(`
|
|
383
385
|
|
|
384
|
-
`)}i(
|
|
385
|
-
`),o()}i(
|
|
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(`
|
|
386
|
+
`)}i(tB,"serializeTranscriptForScrollback");function X0(e){let{items:t,writeToScrollback:n,exitAltScreen:r,enterAltScreen:o}=e,s=tB(t);r(),s.length>0&&n(`${s}
|
|
387
|
+
`),o()}i(X0,"dumpTranscriptToNativeScrollback");var Qs={committed:[],width:0,hasBanner:!1};function Y0(e,t,n){let r=e.bannerSection!==null,o=e.bannerSection!==null?[e.bannerSection,...e.finalizedSections]:[...e.finalizedSections],s=o.map(t),a={committed:s,width:e.width,hasBanner:r},c=i(m=>({plan:{kind:"rebuild",sections:o,reason:m},nextState:a}),"rebuild"),l=n.committed.length>0;if(l&&n.width!==e.width)return c("width-change");if(l&&n.hasBanner!==r)return c("banner-change");let u=Math.min(n.committed.length,s.length);for(let m=0;m<u;m++){let p=r&&m===0;if(n.committed[m].key!==s[m].key)return c(p?"banner-change":"key-order-change");if(n.committed[m].fingerprint!==s[m].fingerprint)return c(p?"banner-change":"fingerprint-change")}return s.length<n.committed.length?c("source-rewrite"):s.length===n.committed.length?{plan:{kind:"none"},nextState:a}:{plan:{kind:"append",sections:o.slice(n.committed.length)},nextState:a}}i(Y0,"planInlineScrollback");import{jsx as TI}from"react/jsx-runtime";import XB from"yoga-layout";import{LegacyRoot as YB}from"react-reconciler/constants.js";import EB from"react-reconciler";import{DefaultEventPriority as MB,NoEventPriority as fI}from"react-reconciler/constants.js";import*as wo from"scheduler";import cI from"yoga-layout";import{createContext as AB}from"react";import gB from"yoga-layout";import nB from"widest-line";var q0=new Map,rB=i(e=>{if(e.length===0)return{width:0,height:0};let t=q0.get(e);if(t)return t;let n=nB(e),r=e.split(`
|
|
388
|
+
`).length,o={width:n,height:r};return q0.set(e,o),o},"measureText"),Jg=rB;import oB from"wrap-ansi";import iB from"cli-truncate";var J0={},sB=i((e,t,n)=>{let r=e+String(t)+String(n),o=J0[r];if(o)return o;let s=e;if(n==="wrap"&&(s=oB(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=iB(e,t,{position:a})}return J0[r]=s,s},"wrapText"),Bf=sB;var aB=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),cB=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),lB=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),eI=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),uB=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),tI=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),Q0=i((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!aB(c))break;n++}let r=e.slice(t,n),o=n;for(;n<e.length;){let c=e[n];if(!cB(c))break;n++}let s=e.slice(o,n),a=e[n];if(!(a===void 0||!lB(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),Z0=i((e,t,n)=>{for(let r=t;r<e.length;r++){let o=e[r];if(n&&o==="\x07"||o==="\x9C")return r+1;if(o==="\x1B"){let s=e[r+1];if(s==="\x1B"){r++;continue}if(s==="\\")return r+2}}},"findControlStringTerminatorIndex"),dB=i((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!eI(s))break;n++}let r=e.slice(t,n),o=e[n];if(!(o===void 0||!uB(o)))return{endIndex:n+1,intermediateString:r,finalCharacter:o}},"readEscapeSequence"),fB=i(e=>{switch(e){case"]":return{type:"osc",allowBellTerminator:!0};case"P":return{type:"dcs",allowBellTerminator:!1};case"^":return{type:"pm",allowBellTerminator:!1};case"_":return{type:"apc",allowBellTerminator:!1};case"X":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromEscapeIntroducer"),mB=i(e=>{switch(e){case"\x9D":return{type:"osc",allowBellTerminator:!0};case"\x90":return{type:"dcs",allowBellTerminator:!1};case"\x9E":return{type:"pm",allowBellTerminator:!1};case"\x9F":return{type:"apc",allowBellTerminator:!1};case"\x98":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromC1Introducer"),Qg=i(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(tI(t))return!0;return!1},"hasAnsiControlCharacters"),Zs=i((e,t,n,r)=>(r>n&&e.push({type:"text",value:t.slice(n,r)}),e.push({type:"invalid",value:t.slice(r)}),e),"malformedFromIndex"),nI=i(e=>{if(!Qg(e))return[{type:"text",value:e}];let t=[],n=0;for(let r=0;r<e.length;){let o=e[r];if(o===void 0)break;if(o==="\x1B"){let a=e[r+1];if(a===void 0)return Zs(t,e,n,r);if(a==="["){let u=Q0(e,r+2);if(u===void 0)return Zs(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,u.endIndex),parameterString:u.parameterString,intermediateString:u.intermediateString,finalCharacter:u.finalCharacter}),r=u.endIndex,n=r;continue}let c=fB(a);if(c!==void 0){let u=Z0(e,r+2,c.allowBellTerminator);if(u===void 0)return Zs(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:c.type,value:e.slice(r,u)}),r=u,n=r;continue}let l=dB(e,r+1);if(l===void 0){if(eI(a))return Zs(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),r++,n=r;continue}r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"esc",value:e.slice(r,l.endIndex),intermediateString:l.intermediateString,finalCharacter:l.finalCharacter}),r=l.endIndex,n=r;continue}if(o==="\x9B"){let a=Q0(e,r+1);if(a===void 0)return Zs(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,a.endIndex),parameterString:a.parameterString,intermediateString:a.intermediateString,finalCharacter:a.finalCharacter}),r=a.endIndex,n=r;continue}let s=mB(o);if(s!==void 0){let a=Z0(e,r+1,s.allowBellTerminator);if(a===void 0)return Zs(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:s.type,value:e.slice(r,a)}),r=a,n=r;continue}if(o==="\x9C"){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"st",value:o}),r++,n=r;continue}if(tI(o)){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"c1",value:o}),r++,n=r;continue}r++}return n<e.length&&t.push({type:"text",value:e.slice(n)}),t},"tokenizeAnsi");var pB=/^[\d:;]*$/,hB=i(e=>{if(!Qg(e))return e;let t="";for(let n of nI(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&pB.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),rI=hB;var oI=i(e=>{let t="";for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r===void 0)continue;let o="";r.nodeName==="#text"?o=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(o=oI(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o,n))),t+=o}return rI(t)},"squashTextNodes"),Xc=oI;var Hf=i(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:gB.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(yB.bind(null,t)),t},"createNode"),Ff=i((e,t)=>{t.parentNode&&Yc(t.parentNode,t),t.parentNode=e,e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount()),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Wf(e)},"appendChildNode"),Zg=i((e,t,n)=>{t.parentNode&&Yc(t.parentNode,t),t.parentNode=e;let r=e.childNodes.indexOf(n);r>=0?(e.childNodes.splice(r,0,t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,r)):(e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Wf(e)},"insertBeforeNode"),Yc=i((e,t)=>{t.yogaNode&&t.parentNode?.yogaNode?.removeChild(t.yogaNode),t.parentNode=void 0;let n=e.childNodes.indexOf(t);n>=0&&e.childNodes.splice(n,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Wf(e)},"removeChildNode"),ey=i((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),ty=i((e,t)=>{e.style=t},"setStyle"),iI=i(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return qc(t,e),t},"createTextNode"),yB=i(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:Xc(e),r=Jg(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let o=e.style?.textWrap??"wrap",s=Bf(n,t,o);return Jg(s)},"measureTextNode"),sI=i(e=>{if(e?.parentNode)return e.yogaNode??sI(e.parentNode)},"findClosestYogaNode"),Wf=i(e=>{sI(e)?.markDirty()},"markNodeAsDirty"),qc=i((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,Wf(e)},"setTextNodeValue");import ve from"yoga-layout";var xB=i((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?ve.POSITION_TYPE_ABSOLUTE:ve.POSITION_TYPE_RELATIVE)},"applyPositionStyles"),wB=i((e,t)=>{"margin"in t&&e.setMargin(ve.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(ve.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(ve.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(ve.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(ve.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(ve.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(ve.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),SB=i((e,t)=>{"padding"in t&&e.setPadding(ve.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(ve.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(ve.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(ve.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(ve.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(ve.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(ve.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),TB=i((e,t)=>{"flexGrow"in t&&e.setFlexGrow(t.flexGrow??0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexWrap"in t&&(t.flexWrap==="nowrap"&&e.setFlexWrap(ve.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(ve.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(ve.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(ve.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(ve.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(ve.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(ve.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(Number.NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(ve.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(ve.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(ve.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(ve.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(ve.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(ve.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(ve.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(ve.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(ve.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(ve.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(ve.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(ve.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(ve.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(ve.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),CB=i((e,t)=>{"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth(t.minWidth??0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight(t.minHeight??0))},"applyDimensionStyles"),bB=i((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?ve.DISPLAY_FLEX:ve.DISPLAY_NONE)},"applyDisplayStyles"),vB=i((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(ve.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(ve.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(ve.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(ve.EDGE_RIGHT,n)}},"applyBorderStyles"),IB=i((e,t)=>{"gap"in t&&e.setGap(ve.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(ve.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(ve.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),kB=i((e,t={})=>{xB(e,t),wB(e,t),SB(e,t),TB(e,t),CB(e,t),bB(e,t),vB(e,t),IB(e,t)},"styles"),ny=kB;import RB from"node:process";var aI=i(()=>RB.env.DEV==="true","isDev");if(aI())try{await import("./devtools-4CRULTR2.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
|
|
387
389
|
The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
|
|
388
390
|
but this failed as it was not installed. Debugging with React Devtools requires it.
|
|
389
391
|
|
|
@@ -391,93 +393,93 @@ To install use this command:
|
|
|
391
393
|
|
|
392
394
|
$ npm install --save-dev react-devtools-core
|
|
393
395
|
`.trim()+`
|
|
394
|
-
`);else throw e}var
|
|
395
|
-
`).repeat(F);g&&(D=
|
|
396
|
-
`).repeat(F);y&&(v=
|
|
397
|
-
`.repeat(o)+
|
|
398
|
-
`;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>
|
|
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
|
|
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
|
|
401
|
-
`),height:t.length}}};var
|
|
402
|
-
`).length,g="";return e.staticNode&&(g=
|
|
403
|
-
`:"",frame:void 0}}let r=new ta({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});
|
|
404
|
-
`:"",frame:m}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),
|
|
405
|
-
`&&(o+=l)};let s,a=ea.createContainer(r,
|
|
396
|
+
`);else throw e}var lI=i((e,t)=>{if(e===t)return;if(!e)return t;let n={},r=!1;for(let o of Object.keys(e))(!t||!Object.hasOwn(t,o))&&(n[o]=void 0,r=!0);if(t)for(let o of Object.keys(t))t[o]!==e[o]&&(n[o]=t[o],r=!0);return r?n:void 0},"diff"),uI=i(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),Uf=fI,ry,dI={name:void 0,version:void 0},ea=EB({getRootHostContext:i(()=>({isInsideText:!1}),"getRootHostContext"),prepareForCommit:i(()=>null,"prepareForCommit"),preparePortalMount:i(()=>null,"preparePortalMount"),clearContainer:i(()=>!1,"clearContainer"),resetAfterCommit(e){if(typeof e.onComputeLayout=="function"&&e.onComputeLayout(),e.isStaticDirty){e.isStaticDirty=!1,typeof e.onImmediateRender=="function"&&e.onImmediateRender();return}typeof e.onRender=="function"&&e.onRender()},getChildHostContext(e,t){let n=e.isInsideText,r=t==="ink-text"||t==="ink-virtual-text";return n===r?e:{isInsideText:r}},shouldSetTextContent:i(()=>!1,"shouldSetTextContent"),createInstance(e,t,n,r){if(r.isInsideText&&e==="ink-box")throw new Error("<Box> can\u2019t be nested inside <Text> component");let o=e==="ink-text"&&r.isInsideText?"ink-virtual-text":e,s=Hf(o);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){ty(s,c),s.yogaNode&&ny(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_static"){ry=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}ey(s,a,c)}return s},createTextInstance(e,t,n){if(!n.isInsideText)throw new Error(`Text string "${e}" must be rendered inside <Text> component`);return iI(e)},resetTextContent(){},hideTextInstance(e){qc(e,"")},unhideTextInstance(e,t){qc(e,t)},getPublicInstance:i(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(cI.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(cI.DISPLAY_FLEX)},appendInitialChild:Ff,appendChild:Ff,insertBefore:Zg,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:wo.unstable_scheduleCallback,cancelCallback:wo.unstable_cancelCallback,shouldYield:wo.unstable_shouldYield,now:wo.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:i(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:i(()=>null,"getInstanceFromScope"),appendChildToContainer:Ff,insertInContainerBefore:Zg,removeChildFromContainer(e,t){Yc(e,t),uI(t.yogaNode)},commitUpdate(e,t,n,r){ry&&e.internal_static&&(ry.isStaticDirty=!0);let o=lI(n,r),s=lI(n.style,r.style);if(!(!o&&!s)){if(o)for(let[a,c]of Object.entries(o)){if(a==="style"){ty(e,c);continue}if(a==="internal_transform"){e.internal_transform=c;continue}if(a==="internal_static"){e.internal_static=!0;continue}ey(e,a,c)}s&&e.yogaNode&&ny(e.yogaNode,s)}},commitTextUpdate(e,t,n){qc(e,n)},removeChild(e,t){Yc(e,t),uI(t.yogaNode)},setCurrentUpdatePriority(e){Uf=e},getCurrentUpdatePriority:i(()=>Uf,"getCurrentUpdatePriority"),resolveUpdatePriority(){return Uf!==fI?Uf:MB},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:AB(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:dI.name,rendererVersion:dI.version});import HB from"widest-line";import FB from"indent-string";import So from"yoga-layout";import jf from"yoga-layout";var _B=i(e=>e.getComputedWidth()-e.getComputedPadding(jf.EDGE_LEFT)-e.getComputedPadding(jf.EDGE_RIGHT)-e.getComputedBorder(jf.EDGE_LEFT)-e.getComputedBorder(jf.EDGE_RIGHT),"getMaxWidth"),mI=_B;import DB from"cli-boxes";import Gf from"chalk";import Ur from"chalk";var LB=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,PB=/^ansi256\(\s?(\d+)\s?\)$/,$B=i(e=>e in Ur,"isNamedColor"),OB=i((e,t,n)=>{if(!t)return e;if($B(t)){if(n==="foreground")return Ur[t](e);let r=`bg${t[0].toUpperCase()+t.slice(1)}`;return Ur[r](e)}if(t.startsWith("#"))return n==="foreground"?Ur.hex(t)(e):Ur.bgHex(t)(e);if(t.startsWith("ansi256")){let r=PB.exec(t);if(!r)return e;let o=Number(r[1]);return n==="foreground"?Ur.ansi256(o)(e):Ur.bgAnsi256(o)(e)}if(t.startsWith("rgb")){let r=LB.exec(t);if(!r)return e;let o=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?Ur.rgb(o,s,a)(e):Ur.bgRgb(o,s,a)(e)}return e},"colorize"),pi=OB;var NB=i((e,t,n,r)=>{if(n.style.borderStyle){let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?DB[n.style.borderStyle]:n.style.borderStyle,c=n.style.borderTopColor??n.style.borderColor,l=n.style.borderBottomColor??n.style.borderColor,u=n.style.borderLeftColor??n.style.borderColor,m=n.style.borderRightColor??n.style.borderColor,p=n.style.borderTopDimColor??n.style.borderDimColor,h=n.style.borderBottomDimColor??n.style.borderDimColor,g=n.style.borderLeftDimColor??n.style.borderDimColor,y=n.style.borderRightDimColor??n.style.borderDimColor,x=n.style.borderTop!==!1,w=n.style.borderBottom!==!1,T=n.style.borderLeft!==!1,I=n.style.borderRight!==!1,A=o-(T?1:0)-(I?1:0),$=x?pi((T?a.topLeft:"")+a.top.repeat(A)+(I?a.topRight:""),c,"foreground"):void 0;x&&p&&($=Gf.dim($));let F=s;x&&(F-=1),w&&(F-=1);let D=(pi(a.left,u,"foreground")+`
|
|
397
|
+
`).repeat(F);g&&(D=Gf.dim(D));let v=(pi(a.right,m,"foreground")+`
|
|
398
|
+
`).repeat(F);y&&(v=Gf.dim(v));let z=w?pi((T?a.bottomLeft:"")+a.bottom.repeat(A)+(I?a.bottomRight:""),l,"foreground"):void 0;w&&h&&(z=Gf.dim(z));let fe=x?1:0;$&&r.write(e,t,$,{transformers:[]}),T&&r.write(e,t+fe,D,{transformers:[]}),I&&r.write(e+o-1,t+fe,v,{transformers:[]}),z&&r.write(e,t+s-1,z,{transformers:[]})}},"renderBorder"),pI=NB;var BB=i((e,t,n,r)=>{if(!n.style.backgroundColor)return;let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=n.style.borderStyle&&n.style.borderLeft!==!1?1:0,c=n.style.borderStyle&&n.style.borderRight!==!1?1:0,l=n.style.borderStyle&&n.style.borderTop!==!1?1:0,u=n.style.borderStyle&&n.style.borderBottom!==!1?1:0,m=o-a-c,p=s-l-u;if(!(m>0&&p>0))return;let h=pi(" ".repeat(m),n.style.backgroundColor,"background");for(let g=0;g<p;g++)r.write(e+a,t+l+g,h,{transformers:[]})},"renderBackground"),hI=BB;function gI(e){let{rawScrollTop:t,contentHeight:n,viewportHeight:r,previousScrollHeight:o,stickyScroll:s,clampMin:a,clampMax:c,virtualScrollWindowed:l,inWindowScrollTop:u,previousAppliedScrollTop:m,regionTop:p}=e,h=Math.max(0,n-r),g=Math.max(0,Math.min(Math.floor(t),h)),x=s&&n>=o?h:g,w=a!==void 0||c!==void 0?Math.max(a??0,Math.min(x,Math.min(h,c??h))):x,T=l&&u!==void 0,I=Math.max(0,Math.floor(u??0)),A=l?T?I:0:w,$=T?A:w,F=null;if(m!==void 0&&m!==$&&r>0){let D=p+r-1;D>=p&&(F={top:p,bottom:D,delta:$-m})}return{scrollHeight:n,viewportTop:w,appliedScrollTop:$,scrollTop:w,scrollOffsetY:A,scrollHint:F}}i(gI,"computeScrollState");var WB=i((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),o=n.getComputedTop();t=`
|
|
399
|
+
`.repeat(o)+FB(t,r)}return t},"applyPaddingToText"),Kf=i((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===So.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=Xc(e);else if(e.nodeName==="ink-box"||e.nodeName==="ink-root"){let r=e.style.flexDirection==="row"||e.style.flexDirection==="row-reverse"?" ":`
|
|
400
|
+
`;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>Kf(s,{parentRole:e.internal_accessibility?.role,skipStaticElements:t.skipStaticElements})).filter(Boolean).join(r)}if(e.internal_accessibility){let{role:r,state:o}=e.internal_accessibility;if(o){let a=Object.keys(o).filter(c=>o[c]).join(", ");a&&(n=`(${a}) ${n}`)}r&&r!==t.parentRole&&(n=`${r}: ${n}`)}return n},"renderNodeToScreenReaderOutput"),oy=null;function yI(){oy=null}i(yI,"resetScrollHint");function xI(){return oy}i(xI,"getScrollHint");var wI=i((e,t,n)=>{let{offsetX:r=0,offsetY:o=0,transformers:s=[],skipStaticElements:a}=n;if(a&&e.internal_static)return;let{yogaNode:c}=e;if(c){if(c.getDisplay()===So.DISPLAY_NONE)return;let l=r+c.getComputedLeft(),u=o+c.getComputedTop(),m=s;if(typeof e.internal_transform=="function"&&(m=[e.internal_transform,...s]),e.nodeName==="ink-text"){let g=Xc(e);if(g.length>0){let y=HB(g),x=mI(c);if(y>x){let w=e.style.textWrap??"wrap";g=Bf(g,x,w)}g=WB(e,g),t.write(l,u,g,{transformers:m})}return}let p=!1,h=0;if(e.nodeName==="ink-box"){hI(l,u,e,t),pI(l,u,e,t);let g=e.style.overflowX??e.style.overflow,y=e.style.overflowY??e.style.overflow,x=g==="hidden"||g==="scroll",w=y==="hidden"||y==="scroll";if(y==="scroll"){let T=c.getComputedBorder(So.EDGE_TOP),I=c.getComputedBorder(So.EDGE_BOTTOM),A=Math.max(0,c.getComputedHeight()-T-I),$=e.attributes?.virtualScrollWindowed===!0,F=e.childNodes[0],D=Math.max(0,Math.floor($?e.attributes?.scrollHeight??0:F?.yogaNode?.getComputedHeight()??e.attributes?.scrollHeight??0)),v=typeof e.scrollHeight=="number"?e.scrollHeight:D,z=gI({rawScrollTop:e.scrollTop??e.attributes?.scrollTop??0,contentHeight:D,viewportHeight:A,previousScrollHeight:v,stickyScroll:e.stickyScroll??!!e.attributes?.stickyScroll,clampMin:e.attributes?.scrollClampMin,clampMax:e.attributes?.scrollClampMax,virtualScrollWindowed:$,inWindowScrollTop:e.attributes?.inWindowScrollTop,previousAppliedScrollTop:e.appliedScrollTop,regionTop:u+T});e.scrollHeight=z.scrollHeight,e.scrollViewportHeight=A,e.scrollViewportTop=z.viewportTop,e.appliedScrollTop=z.appliedScrollTop,z.scrollHint&&(oy=z.scrollHint),e.scrollTop=z.scrollTop,h=z.scrollOffsetY}if(x||w){let T=x?l+c.getComputedBorder(So.EDGE_LEFT):void 0,I=x?l+c.getComputedWidth()-c.getComputedBorder(So.EDGE_RIGHT):void 0,A=w?u+c.getComputedBorder(So.EDGE_TOP):void 0,$=w?u+c.getComputedHeight()-c.getComputedBorder(So.EDGE_BOTTOM):void 0;t.clip({x1:T,x2:I,y1:A,y2:$}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let g of e.childNodes)wI(g,t,{offsetX:l,offsetY:u-h,transformers:m,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),iy=wI;import UB from"slice-ansi";import jB from"string-width";import{styledCharsFromTokens as GB,styledCharsToString as KB,tokenize as VB}from"@alcalzone/ansi-tokenize";var sy=class{static{i(this,"OutputCaches")}widths=new Map;blockWidths=new Map;styledChars=new Map;getStyledChars(t){let n=this.styledChars.get(t);return n===void 0&&(n=GB(VB(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=jB(t),this.widths.set(t,n)),n}getWidestLine(t){let n=this.blockWidths.get(t);if(n===void 0){let r=0;for(let o of t.split(`
|
|
401
|
+
`))r=Math.max(r,this.getStringWidth(o));n=r,this.blockWidths.set(t,n)}return n}},ta=class{static{i(this,"Output")}width;height;operations=[];caches=new sy;constructor(t){let{width:n,height:r}=t;this.width=n,this.height=r}write(t,n,r,o){let{transformers:s}=o;r&&this.operations.push({type:"write",x:t,y:n,text:r,transformers:s})}clip(t){this.operations.push({type:"clip",clip:t})}unclip(){this.operations.push({type:"unclip"})}getGrid(){let t=[];for(let r=0;r<this.height;r++){let o=[];for(let s=0;s<this.width;s++)o.push({type:"char",value:" ",fullWidth:!1,styles:[]});t.push(o)}let n=[];for(let r of this.operations)if(r.type==="clip"&&n.push(r.clip),r.type==="unclip"&&n.pop(),r.type==="write"){let{text:o,transformers:s}=r,{x:a,y:c}=r,l=o.split(`
|
|
402
|
+
`),u=n.at(-1);if(u){let p=typeof u?.x1=="number"&&typeof u?.x2=="number",h=typeof u?.y1=="number"&&typeof u?.y2=="number";if(p){let g=this.caches.getWidestLine(o);if(a+g<u.x1||a>u.x2)continue}if(h){let g=l.length;if(c+g<u.y1||c>u.y2)continue}if(p&&(l=l.map(g=>{let y=a<u.x1?u.x1-a:0,x=this.caches.getStringWidth(g),w=a+x>u.x2?u.x2-a:x;return UB(g,y,w)}),a<u.x1&&(a=u.x1)),h){let g=c<u.y1?u.y1-c:0,y=l.length,x=c+y>u.y2?u.y2-c:y;l=l.slice(g,x),c<u.y1&&(c=u.y1)}}let m=0;for(let[p,h]of l.entries()){let g=t[c+m];if(!g)continue;for(let w of s)h=w(h,p);let y=this.caches.getStyledChars(h),x=a;for(let w of y){g[x]=w;let T=Math.max(1,this.caches.getStringWidth(w.value));if(T>1)for(let I=1;I<T;I++)g[x+I]={type:"char",value:"",fullWidth:!1,styles:w.styles};x+=T}m++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let o=r.filter(s=>s!==void 0);return KB(o).trimEnd()}).join(`
|
|
403
|
+
`),height:t.length}}};var zB=i((e,t,n)=>{if(e.yogaNode){if(t){let p=Kf(e,{skipStaticElements:!0}),h=p===""?0:p.split(`
|
|
404
|
+
`).length,g="";return e.staticNode&&(g=Kf(e.staticNode,{skipStaticElements:!1})),{output:p,outputHeight:h,staticOutput:g?`${g}
|
|
405
|
+
`:"",frame:void 0}}let r=new ta({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});yI(),iy(e,r,{skipStaticElements:!0});let o;e.staticNode?.yogaNode&&(o=new ta({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),iy(e.staticNode,o,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=Du(r),l=n?.columns??e.yogaNode.getComputedWidth(),u=n?.rows??e.yogaNode.getComputedHeight(),m={screen:c,viewport:{width:l,height:u},cursor:{x:0,y:c.height,visible:!0},scrollHint:xI()};return{output:s,outputHeight:a,staticOutput:o?`${o.get().output}
|
|
406
|
+
`:"",frame:m}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),ay=zB;var qB=i((e,t)=>{let n=t?.columns??80,r=Hf("ink-root"),o="";r.onComputeLayout=()=>{r.yogaNode.setWidth(n),r.yogaNode.calculateLayout(void 0,void 0,XB.DIRECTION_LTR)},r.onImmediateRender=()=>{let{staticOutput:l}=ay(r,!1);l&&l!==`
|
|
407
|
+
`&&(o+=l)};let s,a=ea.createContainer(r,YB,null,!1,null,"render-to-string",l=>{s??=l},()=>{},()=>{},()=>{}),c=!1;try{ea.updateContainerSync(e,a,null,()=>{}),ea.flushSyncWork();let{output:l}=ay(r,!1);if(ea.updateContainerSync(null,a,null,()=>{}),ea.flushSyncWork(),c=!0,r.yogaNode.free(),s!==void 0)throw s instanceof Error?s:new Error(String(s));let u=o.endsWith(`
|
|
406
408
|
`)?o.slice(0,-1):o;return u&&l?u+`
|
|
407
|
-
`+l:u||l}finally{if(!c&&r.yogaNode)try{r.yogaNode.freeRecursive()}catch{}}},"renderToString"),
|
|
408
|
-
`)?r.slice(0,-1):r)+
|
|
409
|
-
`}i(
|
|
409
|
+
`+l:u||l}finally{if(!c&&r.yogaNode)try{r.yogaNode.freeRecursive()}catch{}}},"renderToString"),SI=qB;var JB="\x1B[0m";function CI(e,t){if(e.length===0)return"";let n=TI(R,{flexDirection:"column",children:e.map(s=>TI(eg,{section:s,theme:t.theme,animateSpinners:!1},s.key))}),r=SI(n,{columns:t.width});return(r.endsWith(`
|
|
410
|
+
`)?r.slice(0,-1):r)+JB+`
|
|
411
|
+
`}i(CI,"renderFinalizedSectionsToScrollbackText");function bI(e){return e.enabled&&!e.useRendererViewportShell&&!e.isTranscriptMode&&e.hasCommitHandle}i(bI,"isInlineLedgerActive");function vI(e){if(!e.active)return{kind:"reset"};if(!e.hasCommitHandle)return{kind:"skip"};let t=!e.wasActive,n=t?Qs:e.prior,{plan:r,nextState:o}=Y0({bannerSection:e.bannerSection??null,finalizedSections:e.finalizedSections,width:e.width},e.identify??Yb,n);return t?r.kind==="none"?e.forceRebuild?{kind:"commit",mode:"rebuild",sections:e.finalizedSections,nextState:o}:{kind:"noop",nextState:o}:{kind:"commit",mode:e.forceRebuild?"rebuild":"append",sections:r.sections,nextState:o}:r.kind==="none"?{kind:"noop",nextState:o}:{kind:"commit",mode:r.kind,sections:r.sections,nextState:o}}i(vI,"computeInlineLedgerStep");function II(e,t,n){return e.kind==="noop"?{state:e.nextState,wasActive:!0,owns:n}:e.kind==="commit"?t.committed?{state:e.nextState,wasActive:!0,owns:t.hadContent}:{state:Qs,wasActive:!1,owns:!0}:{state:Qs,wasActive:!1,owns:n}}i(II,"resolveInlineLedgerState");function kI(e,t){return t?{...e,staticSections:[]}:e}i(kI,"gateInlinePromptModel");function QB(e){switch(e.type){case"tool_group":return e.tools.map(t=>{let n=[t.name];return typeof t.output=="string"&&n.push(t.output),t.error&&n.push(t.error),n.join(`
|
|
410
412
|
`)}).join(`
|
|
411
|
-
`);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return e.text;default:return""}}i(
|
|
413
|
+
`);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return e.text;default:return""}}i(QB,"buildSearchText");function ZB(e,t){let n=e.replace(/\s+/g," ").trim();if(!n)return"";let r=n.toLowerCase(),o=t.toLowerCase(),s=r.indexOf(o);if(s===-1)return n.slice(0,120);let a=Math.max(0,s-40),c=Math.min(n.length,s+t.length+60),l=a>0?"...":"",u=c<n.length?"...":"";return`${l}${n.slice(a,c)}${u}`}i(ZB,"buildExcerpt");function RI(e){return e.map((t,n)=>({itemId:t.id,itemIndex:n,searchText:QB(t)}))}i(RI,"createTranscriptSearchIndex");function EI(e,t){let n=t.trim().toLowerCase();return n?e.flatMap(r=>{let o=r.searchText;return o.toLowerCase().includes(n)?[{itemId:r.itemId,itemIndex:r.itemIndex,excerpt:ZB(o,t.trim())}]:[]}):[]}i(EI,"searchTranscriptIndex");function cy(e,t,n){return e<=0?0:t<0?n==="next"?0:e-1:n==="next"?(t+1)%e:t<=0?e-1:t-1}i(cy,"stepTranscriptSearchMatch");function MI(e,t){return e.length===0?void 0:t<0?`${e.length} transcript matches`:`${Math.min(Math.max(t,0),e.length-1)+1}/${e.length} transcript matches`}i(MI,"buildTranscriptSearchSummary");function AI(e,t,n){if(t.length===0||!n)return 0;let r=t.findIndex(a=>a.itemId===n);if(r>=0)return r;let o=e.find(a=>a.itemId===n)?.itemIndex;if(o===void 0)return 0;let s=t.findIndex(a=>a.itemIndex>=o);return s>=0?s:0}i(AI,"resolveTranscriptSearchMatchIndex");function _I(e){if(e)switch(e.type){case"assistant":return{summary:"Assistant response",kindLabel:"assistant"};case"user":return{summary:"User prompt",kindLabel:"user"};case"system":return{summary:"System note",kindLabel:"system"};case"thinking":return{summary:"Thinking trace",kindLabel:"thinking"};case"tool_group":return{summary:eH(e),kindLabel:"tool"};case"error":return{summary:"Error entry",kindLabel:"error"};case"info":return{summary:"Info note",kindLabel:"info"};case"hint":return{summary:"Hint",kindLabel:"hint"};default:return{summary:"Transcript entry",kindLabel:"entry"}}}i(_I,"buildTranscriptSelectionSummary");function eH(e){return e.tools.length===1?`Tool call: ${e.tools[0]?.name??"tool"}`:`Tool group: ${e.tools.length} calls`}i(eH,"summarizeToolGroup");function LI(e){return e.map(t=>t.id)}i(LI,"getSelectableTranscriptItemIds");function PI(e,t,n){if(e.length===0)return;if(!t)return n==="next"?e[0]:e[e.length-1];let r=e.indexOf(t);return r===-1?n==="next"?e[0]:e[e.length-1]:n==="next"?e[Math.min(e.length-1,r+1)]:e[Math.max(0,r-1)]}i(PI,"moveTranscriptSelection");function ly(e){if(e)switch(e.type){case"tool_group":return e.tools.map(t=>{let n=[`Tool: ${t.name}`,`Status: ${t.status}`];return t.input&&n.push(`Input: ${JSON.stringify(t.input)}`),typeof t.output=="string"&&t.output.trim()&&n.push(`Output: ${t.output}`),t.error&&n.push(`Error: ${t.error}`),n.join(`
|
|
412
414
|
`)}).join(`
|
|
413
415
|
|
|
414
|
-
`);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return e.text;default:return}}i(
|
|
416
|
+
`);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return e.text;default:return}}i(ly,"buildTranscriptCopyText");function $I(e){if(!e||e.type!=="tool_group")return;let t=e.tools.map(n=>{if(!n.input)return;let r=typeof n.input=="string"?n.input:JSON.stringify(n.input,null,2);if(r?.trim())return[`Tool: ${n.name}`,r].join(`
|
|
415
417
|
`)}).filter(n=>!!n);return t.length>0?t.join(`
|
|
416
418
|
|
|
417
|
-
`):void 0}i(
|
|
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
|
+
`):void 0}i($I,"buildTranscriptToolInputCopyText");import{useCallback as Jc,useRef as tH,useState as OI}from"react";function DI(e){let{state:t,ownsViewport:n,isAwaitingUserInteraction:r,isHistorySearchActive:o,isTranscriptMode:s,historySearchQuery:a}=e,c=N0(t),l;if(t.supportsStickyPrompt&&t.stickyPromptVisible)if(o){let m=a.trim();l={visible:!0,label:m?`Searching transcript for "${m}"`:"Searching transcript"}}else s?l={visible:!0,label:"Transcript Mode"}:r&&(l={visible:!0,label:"Interaction active"});let u;return n&&t.supportsViewportChrome&&(s&&t.pendingLiveUpdates>0?u={visible:!0,label:t.pendingLiveUpdates===1?"1 new update":`${t.pendingLiveUpdates} new updates`,hint:"Ctrl+O",tone:"accent"}:!s&&t.jumpToLatestAvailable&&(u={visible:!0,label:"Back to live",hint:"End",tone:"accent"})),{browseHintText:c,stickyHeader:l,jumpToLatest:u}}i(DI,"buildTranscriptChromeModel");function NI(e){return Math.max(1,e-2)}i(NI,"resolveTranscriptPageSize");function BI(e){return Math.max(3,Math.floor(e/4))}i(BI,"resolveTranscriptWheelStep");function nH(e,t){return Math.max(0,e+t)}i(nH,"incrementTranscriptScrollOffset");function HI(e,t,n){let r=Math.max(0,t-n);return Math.min(Math.max(0,e),r)}i(HI,"clampTranscriptScrollOffset");function FI(){let e=tH(null),[t,n]=OI(0),[r,o]=OI(!0),s=Jc(m=>{n(Math.max(0,m))},[]),a=Jc(m=>{o(m)},[]),c=Jc(m=>{if(e.current){e.current.scrollTo(m);return}n(Math.max(0,m)),o(m===0)},[]),l=Jc(m=>{if(e.current){e.current.scrollBy(m);return}n(p=>nH(p,m)),o(!1)},[]),u=Jc(()=>{if(e.current){e.current.scrollToBottom();return}n(0),o(!0)},[]);return{scrollRef:e,scrollOffset:t,sticky:r,setScrollOffset:n,setSticky:o,handleScrollTopChange:s,handleStickyChange:a,scrollTo:c,scrollBy:l,scrollToBottom:u}}i(FI,"useTranscriptViewportScrollController");function WI(e){let{items:t,renderModel:n,terminalWidth:r,transcriptMaxLines:o,viewportRows:s,itemId:a,visibleRows:c,expandedItemKeys:l,showDetailedTools:u=!1}=e;if(!a||c.length===0)return!1;let p=(n?.sections??Bs(t,r,o,u,l)).find(y=>y.key===a);if(!p||p.rows.length===0)return!1;let h=new Set(c.map(y=>y.key)),g=Math.max(0,s??0);return g>0&&p.rows.length<=g?p.rows.every(y=>h.has(y.key)):h.has(p.rows[0]?.key??"")}i(WI,"isTranscriptItemVisible");function UI(e){let{items:t,renderModel:n,terminalWidth:r,transcriptMaxLines:o,viewportRows:s,itemId:a,expandedItemKeys:c,showDetailedTools:l=!1}=e,u=n?.sections??Bs(t,r,o,l,c);return Zb(u,a,s)}i(UI,"resolveTranscriptSelectionOffset");function jI(e){let{items:t,renderModel:n,selectedItemId:r,terminalWidth:o=80,transcriptMaxLines:s=1e3,viewportRows:a,scrollOffset:c=0,expandedItemKeys:l,showDetailedTools:u=!1,preferViewportAnchor:m=!1}=e;if(r&&t.some(p=>p.id===r))return r;if(m&&c>0&&a&&a>0){let p=n?.sections??Bs(t,o,s,u,l),h=n?.rows??ai(p),y=Jh(h,a,c)[0]?.key,x=y?p.find(w=>w.rows.some(T=>T.key===y)):void 0;if(x?.key)return x.key}return t[t.length-1]?.id}i(jI,"resolveTranscriptSearchAnchorItemId");function GI(e){let t=cc(e.stickyHeader),n=nd(t,e.width),r=Math.max(0,e.topChromeRows??0);return{contentWindow:e.window,topOffsetRows:n+r,stickyHeaderRows:n,topChromeRows:r}}i(GI,"resolveTranscriptOwnedWindowGeometry");function rH(e){return e.text===" "?"":e.text}i(rH,"normalizeTranscriptRowText");function uy(e){let t=new Map;return e.forEach((n,r)=>{t.set(n.key,r)}),t}i(uy,"buildTranscriptRowIndexByKey");function oH(e,t={}){let n=Math.max(0,e.indent??0),r=e.spinner&&t.animateSpinners!==!1?2:0;return 1+n+r}i(oH,"resolveTranscriptTextStartColumn");function KI(e,t={}){let n=Math.max(0,t.topOffsetRows??0),r=t.rowIndexByKey??uy(t.allRows??e),o=e.map((s,a)=>{let c=rH(s),l=oH(s,t),u=ho(c);return{key:s.key,row:s,modelRowIndex:r.get(s.key)??a,screenRow:n+a+1,text:c,textLength:u,textStartColumn:l,textEndColumn:l+rv(c)}});return{rows:o,topRow:o[0]?.screenRow??n+1,bottomRow:o[o.length-1]?.screenRow??n,viewportHeight:Math.max(0,t.viewportHeight??e.length)}}i(KI,"buildTranscriptScreenBuffer");function iH(e,t){let n=Math.max(1,Math.floor(t));return ov(e.text,n-e.textStartColumn)}i(iH,"clampTextColumn");function dy(e,t){return{screenRow:e,point:{rowKey:e.key,modelRowIndex:e.modelRowIndex,column:iH(e,t)}}}i(dy,"toHit");function fy(e,t,n){let r=e.rows.find(o=>o.screenRow===t);return r?dy(r,n):void 0}i(fy,"hitTestTranscriptScreen");function my(e,t,n){if(e.rows.length!==0)return t<=e.topRow?dy(e.rows[0],n):t>=e.bottomRow?dy(e.rows[e.rows.length-1],n):fy(e,t,n)}i(my,"clampTranscriptScreenHit");function VI(e){return e.text===" "?"":e.text}i(VI,"normalizeTranscriptRowText");function zI(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i(zI,"comparePoints");function XI(e,t,n,r={}){if(e.length===0)return;let[o,s]=zI(t,n)<=0?[t,n]:[n,t],a=r.selectFullRowOnCollapsed===!0,c=zI(t,n)===0,l=e[o.modelRowIndex],u=e[s.modelRowIndex];if(!l||!u)return;let m=a&&c?{...o,column:0}:o,p=a&&c?{...s,column:ho(VI(u))}:s,h=new Map,g=[],y=0;for(let x=m.modelRowIndex;x<=p.modelRowIndex;x+=1){let w=e[x];if(!w)continue;let T=VI(w),I=ho(T),A=x===m.modelRowIndex?m.column:0,$=x===p.modelRowIndex?p.column:I,F=Math.max(0,Math.min(A,I)),D=Math.max(F,Math.min($,I)),v=Hs(T,F,D);D>F&&(h.set(w.key,{start:F,end:D}),y+=D-F),g.push(v)}if(h.size!==0)return{anchor:t,focus:n,rowRanges:h,rowCount:g.length,charCount:y,text:g.join(`
|
|
420
|
+
`)}}i(XI,"buildTranscriptScreenSelection");function YI(e){if(!e)return;let t=`${e.charCount} char${e.charCount===1?"":"s"}`;return e.rowCount<=1?`Selected ${t}`:`Selected ${t} across ${e.rowCount} lines`}i(YI,"buildTranscriptScreenSelectionSummary");function qI(e,t){return e.rows.length===0?0:t<e.topRow?1:t>e.bottomRow?-1:0}i(qI,"resolveTranscriptDragEdgeScrollDirection");function Vf(e){return e?e.map(t=>({label:t.label,value:t.value,description:t.description})):[]}i(Vf,"toSelectOptions");function py(e){return e.question}i(py,"getAskUserDialogTitle");function sH(e){switch(e){case"confirm":return Z("waiting.confirm");case"select":return Z("waiting.select");case"input":return Z("waiting.input")}}i(sH,"formatPromptWaitingText");function JI(e){return e.waitingReason==="confirm"?Z("placeholder.confirm"):e.waitingReason==="select"?Z("placeholder.select"):e.waitingReason==="input"?Z("placeholder.input"):e.isLoading?e.canQueueFollowUps?Z("placeholder.queue"):Z("placeholder.busy"):Z("placeholder.idle")}i(JI,"buildPromptPlaceholderText");function QI(e){if(e.isTranscriptMode)return;if(e.waitingReason)return{kind:"waiting",text:sH(e.waitingReason),showSpinner:!1};if(!e.isLoading)return;let t=tg({activeToolCount:e.streamingState.activeToolCalls.filter(n=>n.status===N.Executing).length,currentTool:e.streamingState.currentTool,isThinkingActive:e.streamingState.isThinking,thinkingCharCount:e.streamingState.thinkingCharCount,isCompacting:e.streamingState.isCompacting,toolInputCharCount:e.streamingState.toolInputCharCount,toolInputContent:e.streamingState.toolInputContent,managedPhase:e.managedState?.phase,managedHarnessProfile:e.managedState?.harnessProfile,managedWorkerTitle:e.managedState?.workerTitle});return t?{kind:"busy",text:t,showSpinner:!0}:void 0}i(QI,"buildPromptActivityViewModel");function ZI(e,t,n){if(e){if(e.userOverrideContextWindow!==void 0)return e.contextWindow===e.userOverrideContextWindow?e:{...e,contextWindow:e.userOverrideContextWindow};try{let o=n(t.provider)?.getEffectiveContextWindow?.(t.model);if(o!==void 0&&o!==e.contextWindow)return{...e,contextWindow:o};if(o!==void 0)return e}catch{}return e}}i(ZI,"resolveEffectiveCompactionInfo");function ek(e){return{sessionId:e.sessionId,permissionMode:e.permissionMode,agentMode:e.agentMode,provider:e.provider,model:e.model,currentTool:e.streamingState.currentTool,activeToolCount:e.streamingState.activeToolCalls.filter(t=>t.status===N.Executing).length,thinking:e.thinking,reasoningMode:e.reasoningMode,reasoningCapability:e.reasoningCapability,isThinkingActive:e.streamingState.isThinking,thinkingCharCount:e.streamingState.thinkingCharCount,toolInputCharCount:e.isTranscriptMode?e.streamingState.toolInputCharCount:0,toolInputContent:e.isTranscriptMode?e.streamingState.toolInputContent:"",currentIteration:e.streamingState.currentIteration,maxIter:e.maxIter,contextUsage:e.contextUsage,isCompacting:e.streamingState.isCompacting,showBusyStatus:!1,managedPhase:e.isLoading?e.managedState?.phase:void 0,managedHarnessProfile:e.isLoading?e.managedState?.harnessProfile:void 0,managedWorkerTitle:e.isLoading?e.managedState?.workerTitle:void 0,managedRound:e.isLoading?e.managedState?.round:void 0,managedMaxRounds:e.isLoading?e.managedState?.maxRounds:void 0,managedGlobalWorkBudget:e.isLoading?e.managedState?.globalWorkBudget:void 0,managedBudgetUsage:e.isLoading?e.managedState?.budgetUsage:void 0,managedBudgetApprovalRequired:e.isLoading?e.managedState?.budgetApprovalRequired:void 0,managedIdleWaiting:e.isLoading?e.managedState?.idleWaiting:void 0,managedIdleWaitingPendingCount:e.isLoading?e.managedState?.idleWaitingPendingCount:void 0,autoModeEngine:e.autoModeEngine}}i(ek,"buildSurfaceStatusBarProps");function tk(e){let t=qg(e.state),n=t?Nf(e.state,e.selectableItemIds,e.selectedItemId):void 0,r=n?e.selectableItemIds.indexOf(n):-1;return{selectionEnabled:t,selectedItemId:n,selectedItemIndex:r,position:n?{current:Math.max(1,r+1),total:e.selectableItemIds.length}:void 0,detailState:n&&e.isExpanded?"expanded":"compact",copyCapabilities:{message:t&&!!n,toolInput:t&&!!n&&e.selectedItemType==="tool_group",copyOnSelect:t&&D0(e.state)},toggleDetail:t&&!!n,navigationCapabilities:{selection:t&&!!n&&e.selectableItemIds.length>0}}}i(tk,"buildTranscriptSelectionRuntimeState");function nk(e){if(!(!e.runtime.selectionEnabled||!e.runtime.selectedItemId))return{itemSummary:e.itemSummary?.summary,itemKind:e.itemSummary?.kindLabel,position:e.runtime.position,detailState:e.runtime.detailState,copyCapabilities:e.runtime.copyCapabilities,toggleDetail:e.runtime.toggleDetail,navigationCapabilities:e.runtime.navigationCapabilities}}i(nk,"buildTranscriptSelectionViewModel");function rk(e){return{query:e.query,matches:e.matches,currentMatchIndex:e.currentMatchIndex,anchorItemId:e.anchorItemId,statusText:e.useOverlaySurface?void 0:e.statusText}}i(rk,"buildTranscriptSearchViewModel");function aH(e,t){return e===0?0:t<0?-1:Math.min(t,e-1)}i(aH,"clampTranscriptSearchSelectedIndex");function cH(e){return e.isHistorySearchActive?e.historySearchQuery.trim()?e.matches.length===0?"No matches yet":e.clampedSelectedIndex<0?`${e.matches.length} matches | use n/N or Enter to jump`:e.matches[e.clampedSelectedIndex]?.excerpt:"Type to search transcript":void 0}i(cH,"buildTranscriptSearchDetailText");function ok(e){let t=aH(e.matches.length,e.selectedIndex),n=MI(e.matches,t),r=cH({isHistorySearchActive:e.isHistorySearchActive,historySearchQuery:e.historySearchQuery,matches:e.matches,clampedSelectedIndex:t});return{clampedSelectedIndex:t,statusText:n,detailText:r,searchState:rk({query:e.historySearchQuery,matches:e.matches,currentMatchIndex:t,anchorItemId:e.anchorItemId,statusText:n,useOverlaySurface:e.useOverlaySurface})}}i(ok,"buildTranscriptSearchChrome");function lH(e=!1){return`\u2190/\u2192 enter select mode | Ctrl+E ${e?"collapse":"show all"} | Mouse drag selects text`}i(lH,"buildDefaultTranscriptSecondaryText");function ik(e){let t=[];return e.historySearchQuery.trim().length>0&&e.isHistorySearchActive&&e.historySearchMatchCount===0&&t.push({id:"search-empty",text:"No transcript matches yet",tone:"info"}),e.pendingInputCount>=e.maxPendingInputs&&t.push({id:"queue-full",text:`Queued follow-up limit reached (${e.maxPendingInputs})`,tone:"warning"}),t}i(ik,"buildFooterNotifications");function sk(e){let t=[];return e.historySearchQuery.trim()&&t.push(`Search: ${e.historySearchQuery.trim()}`),e.pendingInputCount>0&&t.push(`Queued follow-ups: ${e.pendingInputCount}`),t}i(sk,"buildBaseFooterNotices");function ak(e){if(e.inputText.trim()&&(e.isTranscriptMode||e.isHistorySearchActive))return"Draft preserved while viewing transcript"}i(ak,"buildStashNoticeText");function ck(e){return[...e]}i(ck,"buildPromptFooterNotices");function uH(e){let n=(e.isHistorySearchActive?[e.historySearchDetailText]:[e.selectionSummary,e.actionSummary]).filter(r=>!!(r&&r.trim().length>0));return n.length===0?lH(e.showAllActive):n.join(" | ")}i(uH,"buildTranscriptFooterSecondaryText");function dH(e){let t=[];return e&&t.push(e),t}i(dH,"buildTranscriptFooterBudgetNotices");function lk(e){let t=e.selectionState?.copyCapabilities,n=e.selectionState?.navigationCapabilities,o=YI(e.textSelection),s=e.textSelection?Ws({copyMessage:!0,copyToolInput:!1,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!1,selectionNavigation:!1,matchNavigation:!1,dismissAction:"clear"}):e.selectionState?.itemSummary?Ws({copyMessage:!!t?.message,copyToolInput:!!t?.toolInput,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!!e.selectionState?.toggleDetail,selectionNavigation:!!n?.selection,matchNavigation:!1,dismissAction:"clear"}):void 0,a=uH({isHistorySearchActive:e.isHistorySearchActive,historySearchDetailText:e.historySearchDetailText,selectionSummary:o,actionSummary:s,showAllActive:e.showAllActive,baseFooterNotices:e.baseFooterNotices});return{selectionSummary:o,actionSummary:s,secondaryText:a,budgetNotices:dH(a)}}i(lk,"buildTranscriptFooterViewModel");import{jsx as K9,jsxs as V9}from"react/jsx-runtime";function uk(e,t){if(!(!e||!t||t<=0))switch(e){case"finding-validation":return`Validating ${t} finding${t===1?"":"s"}`;case"module-triage":return`Scanning ${t} module${t===1?"":"s"}`;case"evidence-scan":return`Parallel evidence pass (${t})`;case"hypothesis-check":return`Checking ${t} hypothesis${t===1?"":"es"}`;default:return}}i(uk,"formatAmaWorkStripText");function dk(e){return e.replace(/^\[[^\]]+\]\s*/,"").trim()}i(dk,"stripLiveActivityPrefix");function fk(e){let t=[],n=e.showPrimary??!0;if(e.isLoading&&n){let l=e.currentTool?dk(Ud(e.currentTool,e.toolInputContent??"",e.toolInputCharCount??0)):void 0,u=e.liveActivityLabel?dk(e.liveActivityLabel):void 0;e.activeWorkerTitle?t.push({id:"primary-worker",label:`${e.activeWorkerTitle} active`,accent:!0,selected:!0}):e.activePhase?t.push({id:"primary-phase",label:e.activePhase,accent:!0,selected:!0}):u?t.push({id:"primary-live-activity",label:u,accent:!0,selected:!0}):l?t.push({id:"primary-tool",label:l,accent:!0,selected:!0}):e.isThinkingActive?t.push({id:"primary-thinking",label:"Thinking",accent:!0,selected:!0}):t.push({id:"primary-generic",label:"Agent active",accent:!0,selected:!0})}e.parallelText&&t.push({id:"parallel",label:e.parallelText});let[r,o,s,...a]=t,c=[r,o,s].filter(l=>!!l);return e.isLoading?{items:c,overflowLabel:a.length>0?`+${a.length} more`:void 0,ctaHint:e.parallelText?"Ctrl+O transcript":void 0}:{items:c,overflowLabel:a.length>0?`+${a.length} more`:void 0,ctaHint:e.parallelText?"Ctrl+O transcript":void 0}}i(fk,"buildBackgroundTaskViewModel");function mk(e,t){if(!(!t||!e||e.agentMode!=="ama"))return uk(e.childFanoutClass,e.childFanoutCount)}i(mk,"buildAmaWorkStripFromStatus");function hy(e){let t=mk(e.status,e.isLoading);return{workStripText:t,backgroundTask:fk({isLoading:e.isLoading,showPrimary:!!(e.parallelTextOverride??t),activeWorkerTitle:e.status?.activeWorkerTitle,activePhase:e.status?.phase??(e.agentMode==="ama"?"AMA active":void 0),parallelText:e.parallelTextOverride??t,currentTool:e.currentTool,toolInputCharCount:e.toolInputCharCount,toolInputContent:e.toolInputContent,liveActivityLabel:e.liveActivityLabel,isThinkingActive:e.isThinkingActive})}}i(hy,"buildAmaSummaryViewModel");function gy(e){return{...e,items:[...e.items],managedLiveEvents:[...e.managedLiveEvents??[]]}}i(gy,"captureTranscriptSnapshot");function pk(e){if(!e.isTranscriptMode||!e.snapshot)return 0;let t=Math.max(0,e.currentItemsLength-e.snapshot.items.length);return e.isLoading!==e.snapshot.isLoading&&(t+=1),e.currentResponse!==e.snapshot.currentResponse&&(t+=1),e.thinkingContent!==e.snapshot.thinkingContent&&(t+=1),e.activeToolCallsLength!==e.snapshot.activeToolCalls.length&&(t+=1),(e.currentManagedLiveEventsLength??0)!==e.snapshot.managedLiveEvents.length&&(t+=1),t}i(pk,"countPendingTranscriptUpdates");function hk(e){return e.snapshot?[...e.snapshot.items]:e.surface==="transcript"?[...e.transcriptItems]:[...e.promptItems]}i(hk,"resolveTranscriptSurfaceItems");function gk(e){let t=[];for(let n of e)switch(n.type){case"user":case"system":case"error":case"tool_group":case"event":case"info":t.push({...n});break;case"assistant":case"thinking":{let{compactText:r,...o}=n;t.push(o);break}default:break}return t}i(gk,"buildPromptSurfaceItems");function yk(e,t){return e.enabled?t==="transcript"?e.transcriptShell:e.promptShell:"main-screen"}i(yk,"resolveFullscreenShellMode");function fH(e,t){return e.enabled&&yk(e,t)==="virtual"}i(fH,"shouldUseRendererViewportShell");function xk(e,t){let n=yk(e,t),r=e.enabled&&n==="virtual",o=e.enabled&&n==="virtual",s=r&&(e.mouseWheel||e.mouseClicks),a=s&&e.mouseClicks,c=o&&e.mouseWheel;return{shellMode:n,usesAlternateScreenShell:r,usesRendererViewportShell:o,usesRendererMouseTracking:s,usesManagedMouseClicks:a,usesManagedMouseWheel:c,usesManagedSelection:o,usesManagedWheelHistory:c,usesNativeMainScreenScrollback:!o}}i(xk,"resolveTranscriptInteractionPolicy");function wk(e,t,n){return fH(e,t)?t==="transcript"||n:!1}i(wk,"shouldOwnTranscriptViewport");var mH=500,pH=1,hH=/[\p{L}\p{N}_/.\-+~\\]/u;function gH(e){return e.text===" "?"":e.text}i(gH,"normalizeTranscriptRowText");function Sk(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i(Sk,"comparePoints");function yy(e){return e===""||/\s/.test(e)?0:hH.test(e)?1:2}i(yy,"charClass");function Tk(e){let t=e.timeoutMs??mH,n=e.distance??pH,r=e.time-e.previous.time<=t,o=Math.abs(e.row-e.previous.row)<=n&&Math.abs(e.column-e.previous.column)<=n,s=r&&o?Math.min(3,e.previous.count+1):1;return{time:e.time,row:e.row,column:e.column,count:s}}i(Tk,"resolveTranscriptMultiClickState");function zf(e,t,n){let r=e[t.modelRowIndex];if(!r)return;let o=gH(r);if(n==="line")return{kind:n,start:{...t,column:0},end:{...t,column:ho(o)}};let s=ho(o);if(s===0)return{kind:n,start:{...t,column:0},end:{...t,column:0}};let a=Math.max(0,Math.min(s-1,t.column));t.column===s&&(a=s-1);let c=yy(qd(o,a)),l=a,u=a+1;for(;l>0&&yy(qd(o,l-1))===c;)l-=1;for(;u<s&&yy(qd(o,u))===c;)u+=1;return{kind:n,start:{...t,column:l},end:{...t,column:u}}}i(zf,"resolveTranscriptSelectionSpanAt");function xy(e,t){return Sk(t.end,e.start)<0?{anchor:e.end,focus:t.start}:Sk(t.start,e.end)>0?{anchor:e.start,focus:t.end}:{anchor:e.start,focus:e.end}}i(xy,"extendTranscriptSelectionSpan");var bk="Do not try to modify files while planning. Finish the plan first, then call exit_plan_mode with the finalized plan \u2014 the user will review and approve or reject.";function wy(e,t){if(sn(e))return[t.getGuardrail()]}i(wy,"buildAutoModeGuardrails");function wH(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:e.thinking===!0||t.thinking===!0?"auto":"off"}i(wH,"resolveInitialReasoningMode");function SH(e){let t=e.split(/\r?\n/).map(s=>s.trim()).filter(Boolean);if(t.length===0)return;if(t.length===1)return t[0];let[n,r]=t,o=n.startsWith("[")?`${n} ${r}`:`${n} / ${r}`;return o.length>220?`${o.slice(0,217)}...`:o}i(SH,"buildManagedTranscriptCompactText");function vk(e){let t=SH(e);return{type:"event",icon:$g(e)?"\u2713":">",text:e,...t&&t!==e?{compactText:t}:{}}}i(vk,"toManagedTranscriptEventItem");function To(e){switch(e.type){case"assistant":return{type:"assistant",text:e.text,...e.compactText?{compactText:e.compactText}:{}};case"thinking":return{type:"thinking",text:e.text,...e.compactText?{compactText:e.compactText}:{}};case"event":return{type:"event",text:e.text,...e.icon?{icon:e.icon}:{},...e.compactText?{compactText:e.compactText}:{}};case"info":return{type:"info",text:e.text,...e.icon?{icon:e.icon}:{},...e.compactText?{compactText:e.compactText}:{}};case"error":return{type:"error",text:e.text};case"system":return{type:"system",text:e.text};case"hint":return{type:"hint",text:e.text};case"tool_group":return{type:"tool_group",tools:e.tools};case"user":return{type:"user",text:e.text};default:return e}}i(To,"toCreatableHistoryItem");function Ty(e){return RC(e)?"":uo(e).trim()}i(Ty,"sanitizeInterruptedAssistantText");function Ik(e){return!!(e?.activeWorkerId&&!e.childFanoutClass&&(e.phase==="preflight"||e.phase==="worker"))}i(Ik,"isForegroundManagedStreamingStatus");function TH(e,t,n){let r=[],o=n?.infoItems??[],s=Cy({thinking:e,toolCalls:n?.toolCalls,toolNames:n?.toolNames});for(let c of o){let l=c.trim();l&&r.push({type:"info",text:l})}r.push(...s);let a=Ty(t);return a&&r.push({type:"assistant",text:`${a}
|
|
419
421
|
|
|
420
|
-
[Interrupted]`}),r}i(
|
|
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
|
|
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]),
|
|
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),
|
|
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=
|
|
422
|
+
[Interrupted]`}),r}i(TH,"buildInterruptedPersistenceItems");function Cy({thinking:e,response:t,toolCalls:n,toolNames:r}){let o=[],s=e?.trim()??"",a=t?.trim()??"",c=n&&n.length>0?[...n]:[],l=r&&r.length>0?[...r]:[];return s&&o.push({type:"thinking",text:s}),c.length>0?o.push({type:"tool_group",tools:c}):!s&&!a&&l.length>0&&o.push({type:"info",icon:"*",text:`Tools: ${l.join(", ")}`}),a&&o.push({type:"assistant",text:a}),o}i(Cy,"buildRoundHistoryItems");function Lk(e){if(e.type==="tool_group")return;let t=typeof e.text=="string"?e.text.trimEnd():"";if(t)return{type:e.type,text:t,...typeof e.icon=="string"&&e.icon.length>0?{icon:e.icon}:{},...typeof e.compactText=="string"&&e.compactText.length>0?{compactText:e.compactText.trimEnd()}:{}}}i(Lk,"toPersistedUiHistoryItem");var kk=150,Rk=50,Ek=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1",CH=process.env.KODAX_SCROLL_OVERSCAN==="1"?80:void 0;function hi(e){if(e.length===0)return[];let t=[];for(let r=0;r<e.length;r+=1)e[r]?.type==="user"&&t.push(r);let n=[...e];if(t.length>Rk){let r=t[t.length-Rk]??0;n=e.slice(r)}if(n.length>kk){let r=n.slice(-kk),o=r.findIndex(s=>s.type==="user");n=o>0?r.slice(o):r}return[...n]}i(hi,"trimPersistedUiHistorySnapshot");function na(e){if(e)return hi(e)}i(na,"normalizePersistedUiHistory");function Mk(e){return hi(e.map(t=>Lk(t)).filter(t=>!!t))}i(Mk,"serializeUiHistorySnapshot");function bH(e){return e.map(t=>Lk(t)).filter(t=>!!t)}i(bH,"serializeCreatableHistoryItems");function Xf(e,t){return t.length===0?hi(e):hi([...e,...bH(t)])}i(Xf,"appendPersistedUiHistorySnapshot");function Yf(e,t,n){console.log((e==="block"?Ye.red:Ye.yellow)(t)),n.forEach(r=>console.log(Ye.dim(r)))}i(Yf,"logSessionTransitionGuard");var Sy=i(({config:e,sessionId:t,workingDir:n,terminalWidth:r,compactionInfo:o})=>{let s=re("dark"),a=e.model??Mn(e.provider)??e.provider,c=Wo(e.provider,e.model),l=xu(c),u=Math.min(60,r-4),m=o?Math.round(o.contextWindow/1e3):0,p=o?Math.round(o.contextWindow*o.triggerPercent/100/1e3):0;return Zt(R,{flexDirection:"column",marginBottom:1,children:[Dg.map((h,g)=>le(b,{color:s.colors.primary,children:h},g)),Zt(R,{children:[Zt(b,{bold:!0,color:s.colors.text,children:[" v",Zi]}),le(b,{dimColor:!0,children:" | "}),Zt(b,{color:s.colors.success,children:[e.provider,"/",a]}),le(b,{dimColor:!0,children:` [${l}]`}),le(b,{dimColor:!0,children:" | "}),le(b,{color:s.colors.primary,children:e.agentMode.toUpperCase()}),le(b,{dimColor:!0,children:" | "}),le(b,{color:s.colors.accent,children:e.permissionMode}),e.reasoningMode!=="off"&&le(b,{color:s.colors.warning,children:` +reason:${e.reasoningMode}`})]}),o&&Zt(R,{children:[le(b,{dimColor:!0,children:" Context: "}),Zt(b,{dimColor:!0,children:[m,"k"]}),le(b,{dimColor:!0,children:" | Compaction: "}),le(b,{color:o.enabled?s.colors.success:void 0,dimColor:!o.enabled,children:o.enabled?"on":"off"}),le(b,{dimColor:!0,children:` @ ${o.triggerPercent}% (${p}k)`})]}),Zt(b,{dimColor:!0,children:[" ","-".repeat(u)]}),Zt(R,{children:[le(b,{dimColor:!0,children:" Session: "}),le(b,{color:s.colors.accent,children:t}),le(b,{dimColor:!0,children:" | Working: "}),le(b,{dimColor:!0,children:n})]}),Zt(b,{dimColor:!0,children:[" ","-".repeat(u)]})]})},"Banner");function vH(e){let t=e.config.model??Mn(e.config.provider)??e.config.provider,n=Wo(e.config.provider,e.config.model),r=xu(n),o=Math.min(60,e.terminalWidth-4),s=e.compactionInfo?Math.round(e.compactionInfo.contextWindow/1e3):0,a=e.compactionInfo?Math.round(e.compactionInfo.contextWindow*e.compactionInfo.triggerPercent/100/1e3):0,c=` v${Zi} | ${e.config.provider}/${t} [${r}] | ${e.config.agentMode.toUpperCase()} | ${e.config.permissionMode}${e.config.reasoningMode!=="off"?` +reason:${e.config.reasoningMode}`:""}`,l=e.compactionInfo?` Context: ${s}k | Compaction: ${e.compactionInfo.enabled?"on":"off"} @ ${e.compactionInfo.triggerPercent}% (${a}k)`:void 0,u=` Session: ${e.sessionId} | Working: ${e.workingDir}`,m=` ${"-".repeat(o)}`,p=[],h=i(y=>{let x=tn(y.length>0?y.split(`
|
|
423
|
+
`):[""],Math.max(1,e.terminalWidth),0,0);return x.visualLines.length>0?x.visualLines:[""]},"wrapBannerLine"),g=i((y,x,w)=>{h(x).forEach((T,I)=>{p.push({key:`${y}-${I}`,text:T,...w})})},"pushLineRows");return Dg.forEach((y,x)=>{g(`banner-logo-${x}`,y,{color:"primary"})}),g("banner-version",c,{color:"text",bold:!0}),l&&g("banner-compaction",l,{color:"dim"}),g("banner-divider-top",m,{color:"dim"}),g("banner-session",u,{color:"dim"}),g("banner-divider-bottom",m,{color:"dim"}),p.push({key:"banner-blank",text:" "}),{key:"banner",rows:p}}i(vH,"buildBannerTranscriptSection");function Ak(e,t){return t?{...e,sections:[t,...e.sections],rows:[...t.rows,...e.rows]}:e}i(Ak,"prependTranscriptSection");var IH=process.env.KODAX_INLINE_LEDGER!=="0";function _k(e,t){if(process.env.KODAX_INLINE_LEDGER_DEBUG!=="1")return;let n=t instanceof Error?t.message:t!==void 0?String(t):"";process.stderr.write(`[inline-ledger] ${e}${n?`: ${n}`:""} \u2014 rebuilding on next change
|
|
424
|
+
`)}i(_k,"reportInlineLedgerFailure");var kH=i(({options:e,config:t,context:n,storage:r,rendererMode:o,fullscreenPolicy:s,onExit:a,compactionInfo:c,autoModeBootstrap:l,setAutoModeAskUser:u,setAutoModeEngineChange:m,setCurrentConfigRef:p,onAgentsFilesReload:h,teamModeHandle:g})=>{let{exit:y}=so(),{stdout:x}=cr(),{stdin:w,setRawMode:T,isRawModeSupported:I}=oc(),A=Cs(),{history:$}=Nc(),F=Ck.useRef(null),D=Ck.useRef(Gw()),{addHistoryItem:v,addHistoryItems:z,clearHistory:fe,setSessionId:se}=Bc(),ge=xe($),L=xe(Mk($));Fe(()=>{ge.current=$,L.current=Mk($)},[$]),Fe(()=>{x0()},[]),Fe(()=>{zC()},[]);let k=x.columns||80,P=Wc(),Re=xe(P);Fe(()=>{Re.current=P},[P]);let{startStreaming:_e,stopStreaming:Y,abort:V,startThinking:ae,appendThinkingChars:Q,appendThinkingContent:J,stopThinking:q,clearThinkingContent:Ie,setCurrentTool:ue,appendToolInputChars:et,appendToolInputContent:Ue,clearToolInputContent:De,clearResponse:me,appendResponse:Pt,getSignal:Rt,getFullResponse:ee,getThinkingContent:_,startNewIteration:O,clearIterationHistory:j,startCompacting:te,stopCompacting:Le,setMaxIter:at,addPendingInput:ke,removeLastPendingInput:Be,shiftPendingInput:$t,consumePendingInputs:ce}=Uc(),[oe,ze]=Ge(!1),[B,nt]=Ge(t),un=de(()=>ZI(c,{provider:B.provider,model:B.model},No),[c,B.provider,B.model]),[wi,Kr]=Ge(!0),[cm,aW]=Ge(!0),[dl,fl]=Ge(0),[lm,ca]=Ge(!1),[Fy,Qn]=Ge(null),oE=de(()=>Go(),[]),la=xe(null),ml=xe(null),Wy=xe(Promise.resolve()),pl=xe(null),vo=xe({requested:!1,uiHistoryOverride:void 0}),Si=xe(null),ua=xe(!1),da=xe(null),[um,hl]=Ge(!0),[dm,gl]=Ge(""),[He,Zn]=Ge(()=>v0(oE,{rendererMode:o})),[Et,fm]=Ge(!1),[iE,sE]=Ge(0),{scrollRef:aE,scrollOffset:Hn,sticky:mm,setScrollOffset:cE,handleScrollTopChange:lE,handleStickyChange:uE,scrollTo:yl,scrollBy:xl,scrollToBottom:wl}=FI(),pm=xe(null),Sl=xe(null),fa=xe([]),Tl=xe([]),Ti=xe(null),Fn=xe(null),Uy=xe({time:0,row:-1,column:-1,count:0}),[Cl,hm]=Ge(void 0),[Io,gm]=Ge(void 0),[Ci,jy]=Ge(void 0),[dn,dE]=Ge(()=>new Set),[ym,Gy]=Ge(null),[Wt,Ky]=Ge(null),[G,xm]=Ge(null),[bl,Vr]=Ge([]),bi=de(()=>{for(let f of bl)if(f.status==="in_progress"){if(f.activeForm&&f.activeForm.length>0)return f.activeForm;if(f.subject&&f.subject.length>0)return f.subject}},[bl]),[cW,ma]=Ge([]),[pa,fE]=Ge([]),[vl,ht]=Ge(void 0),[ko,Il]=Ge(void 0),ct=xe(null),wm=xe(null),Ro=xe([]),vi=xe([]),Yt=xe([]),Sm=xe(new Set),st=xe({}),gt=xe({activeToolGroupTools:[]}),Vy=xe(0),kl=xe({itemId:void 0,kind:"thinking",pendingText:""}),Wn=xe(null),mE=80,pE=20,hE=xe(null),Rl=de(()=>[...$,...pa],[$,pa]),Tm=de(()=>{let f=Jb(Rl,hE);return f===0?Rl:Rl.slice(f)},[Rl]),El=de(()=>Qb(Tm,pE),[Tm]),Ii=Tm,Ut=xe(null),er=xe(null),tr=xe([]),jt=xe([]),[Eo,gE]=Ge([]),Sr=xe([]),Tn=X(f=>{Sr.current=f,gE(f)},[]),zy=X(f=>{Ro.current=f,ma(f)},[]),ki=X(f=>{Yt.current=f,fE(f)},[]),Xy=X(f=>{let S=f([...Yt.current]);ki(S)},[ki]),Yy=X(f=>{f.length!==0&&ki([...Yt.current,...f])},[ki]),Ml=X(f=>{let S=gt.current,C=S.activeToolGroupTools.some(M=>M.status===N.Executing);gt.current={...f?.clearOwner?{}:{workerId:S.workerId,workerTitle:S.workerTitle},...C?{activeToolGroupItemId:S.activeToolGroupItemId,activeToolGroupTools:S.activeToolGroupTools}:{activeToolGroupTools:[]}},f?.clearOwner&&(st.current={})},[]),Al=X(f=>{for(let S of f)S.type==="user"&&typeof S.id=="string"&&Sm.current.add(S.id)},[]),ha=X(()=>{kl.current={itemId:void 0,kind:"thinking",pendingText:""},Wn.current&&(clearTimeout(Wn.current),Wn.current=null);let f=fg(Yt.current,Sm.current);if(f.length>0){for(let S of f)Sm.current.add(S.id);Si.current?.(f.map(S=>To(S)))}Ml({clearOwner:!0}),ki([])},[Ml,ki]),_l=X(f=>(Vy.current+=1,`managed-foreground-${f}-${Vy.current}`),[]),Cn=X(f=>(Yy([f]),f.id),[Yy]),Mo=X((f,S)=>{st.current.workerId?Cn({id:`${S}-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:f.type,text:f.text,...f.icon?{icon:f.icon}:{},...f.tightSpacing?{tightSpacing:!0}:{},timestamp:Date.now()}):v(f)},[v,Cn]),Tr=X((f,S)=>{if(!f)return;let C;return Xy(M=>M.map(E=>E.id!==f?E:(C=S(E),C))),C},[Xy]),Ri=X((f,S)=>{let C=gt.current;if(C.activeKind===f){if(f==="thinking"&&C.activeThinkingItemId)return C.activeThinkingItemId;if(f==="assistant"&&C.activeAssistantItemId)return C.activeAssistantItemId;if(f==="tool_group"&&C.activeToolGroupItemId)return C.activeToolGroupItemId}let M=Date.now(),E=S?.trim()?`[${S.trim()}] `:"",H=C.activeToolGroupTools.some(K=>K.status===N.Executing);if(f==="thinking"){let K=Cn({id:_l("thinking"),type:"thinking",timestamp:M,text:E});return gt.current={...gt.current,activeKind:"thinking",activeThinkingItemId:K,currentTurnThinkingItemId:K,activeAssistantItemId:void 0,...H?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},K}if(f==="assistant"){let K=Cn({id:_l("assistant"),type:"assistant",timestamp:M,text:E});return gt.current={...gt.current,activeKind:"assistant",activeThinkingItemId:void 0,activeAssistantItemId:K,...H?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},K}let W=Cn({id:_l("tool_group"),type:"tool_group",timestamp:M,tools:[]});return gt.current={...gt.current,activeKind:"tool_group",activeThinkingItemId:void 0,activeAssistantItemId:void 0,activeToolGroupItemId:W,activeToolGroupTools:[]},W},[Cn,_l]),Cr=X(()=>{Wn.current&&(clearTimeout(Wn.current),Wn.current=null);let f=kl.current;if(!f.pendingText||!f.itemId)return;let S=f.pendingText,C=f.itemId,M=f.kind;f.pendingText="",Tr(C,E=>E.type!==M?E:{...E,text:`${E.text}${S}`})},[Tr]),qy=X(()=>{Wn.current||(Wn.current=setTimeout(Cr,mE))},[Cr]),Ll=X((f,S)=>{if(!S)return;let C=gt.current.workerTitle,M=Ri(f,C),E=kl.current;E.itemId===M&&E.kind===f?E.pendingText+=S:(Cr(),E.itemId=M,E.kind=f,E.pendingText=S),qy()},[Ri,Cr,qy]),Jy=X(f=>{let S=f.trim();if(!S)return;let C=kl.current;C.kind==="thinking"&&C.pendingText&&(C.pendingText="",Wn.current&&(clearTimeout(Wn.current),Wn.current=null));let M=gt.current.workerTitle?.trim(),E=M?`[${M}] ${S}`:S,H=gt.current.currentTurnThinkingItemId;if(H){Tr(H,K=>K.type==="thinking"?{...K,text:E}:K);return}let W=Ri("thinking",gt.current.workerTitle);Tr(W,K=>K.type==="thinking"?{...K,text:E}:K)},[Ri,Tr]),Un=X(f=>{Cr();let S=gt.current;if(S.activeToolGroupItemId&&S.activeToolGroupTools.some(W=>W.id===f.id)){let W=S.activeToolGroupTools.map(ne=>ne.id===f.id?f:ne),K=W.every(ne=>ne.status===N.Success||ne.status===N.Error||ne.status===N.Cancelled);gt.current={...S,...K?{activeToolGroupItemId:void 0,activeToolGroupTools:[]}:{activeToolGroupTools:W}},Tr(S.activeToolGroupItemId,ne=>ne.type==="tool_group"?{...ne,tools:W}:ne);return}let C=Yt.current;for(let W=C.length-1;W>=0;W-=1){let K=C[W];if(K.type!=="tool_group"||!K.tools.some(Ce=>Ce.id===f.id))continue;let ne=K.tools.map(Ce=>Ce.id===f.id?f:Ce);Tr(K.id,Ce=>Ce.type==="tool_group"?{...Ce,tools:ne}:Ce);return}let M=Ri("tool_group",S.workerTitle),H=S.activeKind==="tool_group"&&S.activeToolGroupItemId===M?S.activeToolGroupTools.some(W=>W.id===f.id)?S.activeToolGroupTools.map(W=>W.id===f.id?f:W):[...S.activeToolGroupTools,f]:[f];gt.current={...gt.current,activeKind:"tool_group",activeToolGroupItemId:M,activeToolGroupTools:H},Tr(M,W=>W.type==="tool_group"?{...W,tools:H}:W)},[Ri,Tr,Cr]),yE=X(f=>{Cr();let S=gt.current,C=S.activeToolGroupTools.some(H=>H.status===N.Executing),M=Sr.current.filter(H=>H.status===N.Executing),E=new Set(M.map(H=>H.id));gt.current={workerId:f?.workerId,workerTitle:f?.workerTitle,...C?{activeToolGroupItemId:S.activeToolGroupItemId,activeToolGroupTools:S.activeToolGroupTools}:{activeToolGroupTools:[]}},st.current={workerId:f?.workerId,workerTitle:f?.workerTitle},tr.current=[],jt.current=jt.current.filter(H=>E.has(H.id)),Tn(M),De(),ue(void 0),q(),Ie(),me(),ht(void 0)},[Cr,De,me,Ie,ue,Tn,ht,q]),xE=X(f=>{if(f.length===0)return[];let S=[],C=[...Ro.current],M=[...vi.current];for(let E of f){let H=E.item,W=C.findIndex(K=>K.id===H.id);if(W>=0){let K=C[W];Mf(K,H)||(C=C.map((ne,Ce)=>Ce===W?{...H,timestamp:K.timestamp}:ne))}else C=[...C,H].slice(-12),S.push(H);if(E.persistToHistory){let K=M.findIndex(ne=>ne.id===H.id);if(K>=0){let ne=M[K];Mf(ne,H)||(M=M.map((Ce,xt)=>xt===K?{...H,timestamp:ne.timestamp}:Ce))}else M=[...M,H].slice(-48)}}return vi.current=M,(S.length>0||C.some((E,H)=>!Mf(E,Ro.current[H]??E)||E.id!==Ro.current[H]?.id))&&zy(C),S},[zy]),Pl=X(f=>{if(jt.current.findIndex(C=>C.id===f.id)===-1){jt.current=[...jt.current,f];return}jt.current=jt.current.map(C=>C.id===f.id?f:C)},[]),zr=X(f=>{let S=Sr.current.filter(C=>C.status===N.Executing);if(S.length!==0){if(f){let C=Pg(f);for(let M=S.length-1;M>=0;M-=1){let E=S[M];if(Pg(E.name)===C)return E}}return S[S.length-1]}},[]),Ei=X(()=>{let f=zr();ue(f?Lg(f.name):void 0)},[zr,ue]),Qy=X(f=>(Pl(f),Tn([...Sr.current.filter(S=>S.id!==f.id),f]),Ei(),f),[Tn,Ei,Pl]),Mi=X((f,S)=>{let C=Sr.current.find(E=>E.id===f);if(!C)return null;let M=S(C);return Pl(M),Tn(Sr.current.map(E=>E.id===f?M:E)),Ei(),M},[Tn,Ei,Pl]),Zy=X((f,S,C)=>{if(f){let E=Mi(f,C);if(E)return E}let M=zr(S);return M?Mi(M.id,C):null},[zr,Mi]),$l=X((f,S,C,M,E)=>{let H=f??zr(E)?.id;return H?Mi(H,W=>({...W,status:S,endTime:Date.now(),error:C,output:M})):null},[zr,Mi]),ga=X((f,S)=>{let C=Date.now(),M=new Map;for(let E of Sr.current){if(E.status!==N.Executing)continue;let H=S(E);M.set(E.id,{...E,status:f,endTime:C,...H})}return M.size===0?[]:(jt.current=jt.current.map(E=>M.get(E.id)??E),Tn(Sr.current.map(E=>M.get(E.id)??E)),Ei(),[...M.values()])},[Tn,Ei]),Xr=X(()=>{Tn([])},[Tn]),{showHelp:ex,toggleHelp:wE,setShowHelp:tx}=Hg(),SE=X(f=>{gl(f),hl(f.trim().length===0)},[]),Ol=ii(),nx=de(()=>Ol?Ol.state.visible&&Ol.suggestions.length>0:!1,[Ol]),[ya,rx]=Ge(!1),ox=xe(dl),xa=X(()=>{Ut.current&&(clearTimeout(Ut.current),Ut.current=null),er.current&&(clearTimeout(er.current),er.current=null)},[]);Fe(()=>{nx&&!ya&&rx(!0)},[nx,ya]),Fe(()=>{dl!==ox.current&&(ox.current=dl,ya&&rx(!1))},[dl,ya]);let[tt,Dl]=Ge(null),Ao=xe(null),[Pe,jn]=Ge(null),Nl=xe(null),Bl=xe(Pe);Bl.current=Pe;let[qt,Ai]=Ge(""),[Hl,Gn]=Ge(0),Cm=xe(""),wa=xe(void 0),ix=de(()=>{if(!un)return;let{contextWindow:f,triggerPercent:S}=un;return{currentTokens:Fy??n.contextTokenSnapshot?.currentTokens??Bo(n.messages),contextWindow:f,triggerPercent:S}},[n.messages,n.contextTokenSnapshot,un,Fy]),Sa=de(()=>{if(!tt)return;let f=!!tt.input._alwaysConfirm,S=B.permissionMode==="accept-edits"&&!f;return f?Z("confirm.instruction.protected"):S?Z("confirm.instruction.always"):Z("confirm.instruction.basic")},[tt,B.permissionMode]),lt=He.searchMode==="history",ie=He.surface==="transcript",Yr=!!tt||!!Pe||lt,Tt=ie?Et?Wb:1e3:12,qr=xk(s,He.surface),sx=qr.shellMode,bm=qr.usesAlternateScreenShell,_o=qr.usesRendererViewportShell,Fl=qr.usesRendererMouseTracking,ax=qr.usesManagedMouseClicks,cx=qr.usesManagedMouseWheel,vm=qr.usesManagedSelection,Ct=wk(s,He.surface,$0(He)),lx=O0(He),Wl=ya&&!ie,ux=X(()=>gy({items:Ii,managedLiveEvents:[],isLoading:oe,isThinking:P.isThinking,thinkingCharCount:P.thinkingCharCount,thinkingContent:P.thinkingContent,currentResponse:P.currentResponse,currentTool:P.currentTool,activeToolCalls:Eo,toolInputCharCount:P.toolInputCharCount,toolInputContent:P.toolInputContent,lastLiveActivityLabel:vl,workStripText:ko,iterationHistory:P.iterationHistory,currentIteration:P.currentIteration,isCompacting:P.isCompacting}),[Ii,oe,P.isThinking,P.thinkingCharCount,P.thinkingContent,P.currentResponse,P.currentTool,Eo,P.toolInputCharCount,P.toolInputContent,vl,ko,P.iterationHistory,P.currentIteration,P.isCompacting]);Fe(()=>{if(ie){Gy(f=>f??ux());return}Gy(null)},[ux,ie]);let Ta=de(()=>pk({isTranscriptMode:ie,snapshot:ym,currentItemsLength:Ii.length,currentManagedLiveEventsLength:0,isLoading:oe,currentResponse:P.currentResponse,thinkingContent:P.thinkingContent,activeToolCallsLength:Eo.length}),[Eo.length,oe,ie,Ii.length,P.currentResponse,P.thinkingContent,ym]),Ot=ie?ym:null,Im=de(()=>gk(El),[El]),TE=de(()=>!!(pa.length>0||Ik(G)),[pa.length,G]),Ul=pa.length>0,Gt=s.streamingPreview&&TE,_i=de(()=>hk({surface:"transcript",snapshot:Ot,promptItems:El,transcriptItems:Ii}),[Ot,El,Ii]),Ca=de(()=>{if(!ie||Et||_i.length<=qh)return _i;let f=_i.slice(-qh),S=_i.length-f.length;return[tv(S,f[0]?.timestamp),...f]},[_i,ie,Et]),ut=Ot?.isLoading??oe,rt=s.streamingPreview?{isThinking:Gt?!1:P.isThinking,thinkingCharCount:Gt?0:P.thinkingCharCount,thinkingContent:Gt?"":P.thinkingContent,currentResponse:Gt?"":P.currentResponse,currentTool:Gt?void 0:P.currentTool,activeToolCalls:Gt?[]:Eo,toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:Gt?vl:void 0,iterationHistory:[],currentIteration:P.currentIteration,isCompacting:!1}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:P.currentIteration,isCompacting:!1},Se=s.streamingPreview?{isThinking:Gt?!1:Ot?.isThinking??P.isThinking,thinkingCharCount:Gt?0:Ot?.thinkingCharCount??P.thinkingCharCount,thinkingContent:Gt?"":Ot?.thinkingContent??P.thinkingContent,currentResponse:Gt?"":Ot?.currentResponse??P.currentResponse,currentTool:Gt?void 0:Ot?.currentTool??P.currentTool,activeToolCalls:Gt?[]:Ot?.activeToolCalls??Eo,toolInputCharCount:Gt?0:Ot?.toolInputCharCount??P.toolInputCharCount,toolInputContent:Gt?"":Ot?.toolInputContent??P.toolInputContent,managedLiveEvents:[],lastLiveActivityLabel:Ot?.lastLiveActivityLabel??vl,iterationHistory:Gt?[]:Ot?.iterationHistory??P.iterationHistory,currentIteration:Ot?.currentIteration??P.currentIteration,isCompacting:Ot?.isCompacting??P.isCompacting}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:Ot?.currentIteration??P.currentIteration,isCompacting:!1},br=ie?Io:Cl,dx=!!Cl,fx=X(()=>gy({items:Im,managedLiveEvents:[],isLoading:oe,isThinking:rt.isThinking,thinkingCharCount:rt.thinkingCharCount,thinkingContent:rt.thinkingContent,currentResponse:rt.currentResponse,currentTool:rt.currentTool,activeToolCalls:rt.activeToolCalls,toolInputCharCount:rt.toolInputCharCount,toolInputContent:rt.toolInputContent,lastLiveActivityLabel:rt.lastLiveActivityLabel,iterationHistory:rt.iterationHistory,currentIteration:rt.currentIteration,isCompacting:rt.isCompacting}),[oe,Im,rt.activeToolCalls,rt.currentIteration,rt.currentResponse,rt.currentTool,rt.isCompacting,rt.isThinking,rt.iterationHistory,rt.lastLiveActivityLabel,rt.thinkingCharCount,rt.thinkingContent,rt.toolInputCharCount,rt.toolInputContent]);Fe(()=>{if(!dx){Ky(null);return}Ky(f=>f??fx())},[fx,dx]);let ba=Wt?.items??Im,Jt=Wt?.isLoading??oe,Ee=Wt?{isThinking:Wt.isThinking,thinkingCharCount:Wt.thinkingCharCount,thinkingContent:Wt.thinkingContent,currentResponse:Wt.currentResponse,currentTool:Wt.currentTool,activeToolCalls:Wt.activeToolCalls,toolInputCharCount:Wt.toolInputCharCount,toolInputContent:Wt.toolInputContent,managedLiveEvents:Wt.managedLiveEvents,lastLiveActivityLabel:Wt.lastLiveActivityLabel,iterationHistory:Wt.iterationHistory,currentIteration:Wt.currentIteration,isCompacting:Wt.isCompacting}:rt,Dt=ie?Ca:ba,nr=ie?ut:Jt,Ke=ie?Se:Ee,mx=Jt&&!P.currentResponse&&!P.thinkingContent&&Eo.length===0,Lo=de(()=>({config:B,sessionId:n.sessionId,workingDir:e.context?.gitRoot||process.cwd(),terminalWidth:k,compactionInfo:un??void 0}),[un,n.sessionId,B,e.context?.gitRoot,k]),Jr=de(()=>s.enabled&&cm?vH(Lo):void 0,[Lo,s.enabled,cm]),px=xe(Qs),hx=xe(!1),km=xe(!1),Li=bI({enabled:IH,useRendererViewportShell:_o,isTranscriptMode:ie,hasCommitHandle:typeof ys(x)?.commitInlineScrollback=="function"}),va=de(()=>Kd({items:ba,viewportWidth:k,maxLines:Tt,showDetailedTools:!1,showAllContent:!1,windowed:!1}),[ba,k,Tt]),Po=de(()=>{let f=Vd({activeItems:va.activeItems,viewportWidth:k,isLoading:Jt,maxLines:Tt,isThinking:Ee.isThinking,thinkingCharCount:Ee.thinkingCharCount,thinkingContent:Ee.thinkingContent,streamingResponse:Ee.currentResponse,currentTool:Ee.currentTool,activeToolCalls:Ee.activeToolCalls,toolInputCharCount:Ee.toolInputCharCount,toolInputContent:Ee.toolInputContent,iterationHistory:Ee.iterationHistory,currentIteration:Ee.currentIteration,isCompacting:Ee.isCompacting,managedAgentMode:B.agentMode,managedPhase:Jt?G?.phase:void 0,managedHarnessProfile:Jt?G?.harnessProfile:void 0,managedWorkerTitle:Jt?G?.activeWorkerTitle:void 0,managedRound:Jt?G?.currentRound:void 0,managedMaxRounds:Jt?G?.maxRounds:void 0,managedGlobalWorkBudget:Jt?G?.globalWorkBudget:void 0,managedBudgetUsage:Jt?G?.budgetUsage:void 0,managedBudgetApprovalRequired:Jt?G?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Ee.lastLiveActivityLabel,currentTodoActiveForm:bi,showFullThinking:!1,showDetailedTools:!1,showAllContent:!1,showLiveProgressRows:mx}),S=Vb(va,f,Jr);return kI(S,Li)},[B.agentMode,Li,Jt,Ee.activeToolCalls,Ee.currentIteration,Ee.currentTool,Ee.isCompacting,Ee.currentResponse,Ee.isThinking,Ee.iterationHistory,Ee.lastLiveActivityLabel,Ee.thinkingCharCount,Ee.thinkingContent,Ee.toolInputCharCount,Ee.toolInputContent,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,mx,va,Jr,k,Tt,bi]),Rm=de(()=>Kd({items:Ca,viewportWidth:k,maxLines:Tt,showDetailedTools:Et,showAllContent:Et,showFullThinking:!0,windowed:!1}),[Ca,k,Tt,Et]),jl=de(()=>{if(!ie||_o)return;let f=Vd({activeItems:Rm.activeItems,viewportWidth:k,isLoading:ut,maxLines:Tt,isThinking:Se.isThinking,thinkingCharCount:Se.thinkingCharCount,thinkingContent:Se.thinkingContent,streamingResponse:Se.currentResponse,currentTool:Se.currentTool,activeToolCalls:Se.activeToolCalls,toolInputCharCount:Se.toolInputCharCount,toolInputContent:Se.toolInputContent,iterationHistory:Se.iterationHistory,currentIteration:Se.currentIteration,isCompacting:Se.isCompacting,managedAgentMode:B.agentMode,managedPhase:ut?G?.phase:void 0,managedHarnessProfile:ut?G?.harnessProfile:void 0,managedWorkerTitle:ut?G?.activeWorkerTitle:void 0,managedRound:ut?G?.currentRound:void 0,managedMaxRounds:ut?G?.maxRounds:void 0,managedGlobalWorkBudget:ut?G?.globalWorkBudget:void 0,managedBudgetUsage:ut?G?.budgetUsage:void 0,managedBudgetApprovalRequired:ut?G?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Se.lastLiveActivityLabel,currentTodoActiveForm:bi,showFullThinking:!0,showDetailedTools:Et,showAllContent:Et,showLiveProgressRows:!Ul,expandedItemKeys:dn});return Ak(Yh(zd(Rm,f)),Jr)},[B.agentMode,dn,Ul,Jr,ie,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,k,ut,Tt,Rm,Se.activeToolCalls,Se.currentIteration,Se.currentResponse,Se.currentTool,Se.isCompacting,Se.isThinking,Se.iterationHistory,Se.lastLiveActivityLabel,Se.thinkingCharCount,Se.thinkingContent,Se.toolInputCharCount,Se.toolInputContent,Et,_o,bi]),Ia=de(()=>{if(Ct)return ie?Ak(Xd({items:Dt,viewportWidth:k,isLoading:nr,maxLines:Tt,isThinking:Ke.isThinking,thinkingCharCount:Ke.thinkingCharCount,thinkingContent:Ke.thinkingContent,streamingResponse:Ke.currentResponse,currentTool:Ke.currentTool,activeToolCalls:Ke.activeToolCalls,toolInputCharCount:Ke.toolInputCharCount,toolInputContent:Ke.toolInputContent,iterationHistory:Ke.iterationHistory,currentIteration:Ke.currentIteration,isCompacting:Ke.isCompacting,managedAgentMode:B.agentMode,managedPhase:nr?G?.phase:void 0,managedHarnessProfile:nr?G?.harnessProfile:void 0,managedWorkerTitle:nr?G?.activeWorkerTitle:void 0,managedRound:nr?G?.currentRound:void 0,managedMaxRounds:nr?G?.maxRounds:void 0,managedGlobalWorkBudget:nr?G?.globalWorkBudget:void 0,managedBudgetUsage:nr?G?.budgetUsage:void 0,managedBudgetApprovalRequired:nr?G?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Ke.lastLiveActivityLabel,currentTodoActiveForm:bi,windowed:!0,showFullThinking:ie,showDetailedTools:Et,showAllContent:Et,showLiveProgressRows:ie&&!Ul,expandedItemKeys:ie?dn:void 0}),Jr):Yh(Po)},[B.agentMode,nr,Dt,Ul,Jr,Ke.activeToolCalls,Ke.currentIteration,Ke.currentResponse,Ke.currentTool,Ke.isCompacting,Ke.isThinking,Ke.iterationHistory,Ke.lastLiveActivityLabel,Ke.thinkingCharCount,Ke.thinkingContent,Ke.toolInputCharCount,Ke.toolInputContent,dn,ie,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,Po,oe,ie,k,Tt,Ct,Et,bi]),rr=de(()=>Ia??jl,[Ia,jl]),ka=de(()=>hy({status:G,isLoading:oe,agentMode:B.agentMode}),[B.agentMode,oe,G]).workStripText,Ra=Ot?.workStripText??ko,Pi=de(()=>hy({status:G,isLoading:oe,agentMode:B.agentMode,parallelTextOverride:Ra}),[B.agentMode,Ra,oe,G]),$o=de(()=>LI(Dt).filter(f=>f!==Yd),[Dt]),Qe=de(()=>Nf(He,$o,He.selectedItemId),[$o,He]),fn=de(()=>Dt.find(f=>f.id===Qe),[Dt,Qe]),gx=de(()=>({...He,supportsSelection:He.supportsSelection&&Ct,supportsCopyOnSelect:He.supportsCopyOnSelect&&Ct}),[He,Ct]),bn=de(()=>tk({state:gx,selectableItemIds:$o,selectedItemId:Qe,selectedItemType:fn?.type,isExpanded:Qe?dn.has(Qe):!1}),[dn,$o,fn?.type,Qe,gx]),yx=bn.selectionEnabled,xx=bn.copyCapabilities.copyOnSelect,dW=bn.selectedItemIndex,wx=de(()=>_I(fn),[fn]),Gl=de(()=>RI(Dt.filter(f=>!Qh(f))),[Dt]),Mt=de(()=>EI(Gl,qt),[Gl,qt]),Kl=de(()=>ok({isHistorySearchActive:lt,historySearchQuery:qt,matches:Mt,selectedIndex:Hl,anchorItemId:He.searchAnchorItemId,useOverlaySurface:He.supportsOverlaySurface&&He.supportsSearchViewport&&Ct}),[Mt,qt,Hl,lt,He.searchAnchorItemId,He.supportsOverlaySurface,He.supportsSearchViewport,Ct]),Qr=Kl.clampedSelectedIndex,Sx=Kl.statusText,Em=Kl.detailText,Tx=Kl.searchState,fW=bn.detailState==="expanded",Vl=bn.selectionEnabled&&$o.length>0&&!br,$i=bn.copyCapabilities.message,zl=bn.copyCapabilities.toolInput,Xl=bn.toggleDetail;Fe(()=>{if(ka){if(er.current&&(clearTimeout(er.current),er.current=null),ko===ka)return;if(ko){Ut.current&&(clearTimeout(Ut.current),Ut.current=null),Il(ka);return}Ut.current&&clearTimeout(Ut.current),Ut.current=setTimeout(()=>{Il(ka),Ut.current=null},400);return}if(!ko){Ut.current&&(clearTimeout(Ut.current),Ut.current=null);return}Ut.current&&(clearTimeout(Ut.current),Ut.current=null),er.current&&clearTimeout(er.current),er.current=setTimeout(()=>{Il(void 0),er.current=null},300)},[xa,ka,ko]),Fe(()=>()=>{xa()},[xa]);let Zr=de(()=>DI({state:He,ownsViewport:Ct,isAwaitingUserInteraction:Yr,isHistorySearchActive:lt,isTranscriptMode:ie,historySearchQuery:qt}),[qt,Yr,lt,ie,He,Ct]);Fe(()=>{Zn(f=>{let S=E0(f,Hn);return S=R0(S,Ta),S=A0(S,s.enabled&&Ct?!mm||lt||Yr:ie||lt||Yr),S=P0(S,Qr),S})},[Qr,s.enabled,Hn,Yr,lt,ie,Ta,Ct,mm]),Fe(()=>{Hl!==Qr&&Gn(Qr)},[Qr,Hl]),Fe(()=>{if(!lt){Cm.current=qt;return}if(qt===Cm.current)return;Cm.current=qt;let f=AI(Gl,Mt,He.searchAnchorItemId);Gn(f)},[Mt,qt,lt,He.searchAnchorItemId,Gl]);let Cx=ie?Se:{isThinking:Ee.isThinking,thinkingCharCount:Ee.thinkingCharCount,currentTool:Ee.currentTool,activeToolCalls:Ee.activeToolCalls,toolInputCharCount:Ee.toolInputCharCount,toolInputContent:Ee.toolInputContent,currentIteration:Ee.currentIteration,isCompacting:Ee.isCompacting},Ea=ie?ut:Jt,[Mm,Am]=Ge(()=>sn(B.permissionMode)?l.getGuardrail().getEngine():void 0),Yl=de(()=>ek({sessionId:n.sessionId,permissionMode:B.permissionMode,agentMode:B.agentMode,provider:B.provider,model:B.model??Mn(B.provider)??B.provider,thinking:B.thinking,reasoningMode:B.reasoningMode,reasoningCapability:xu(Wo(B.provider,B.model)),isTranscriptMode:ie,streamingState:Cx,maxIter:P.maxIter,contextUsage:ix,isLoading:Ea,managedState:{phase:G?.phase,harnessProfile:G?.harnessProfile,workerTitle:G?.activeWorkerTitle,round:G?.currentRound,maxRounds:G?.maxRounds,globalWorkBudget:G?.globalWorkBudget,budgetUsage:G?.budgetUsage,budgetApprovalRequired:G?.budgetApprovalRequired,idleWaiting:G?.idleWaiting,idleWaitingPendingCount:G?.idleWaitingPendingCount},autoModeEngine:Mm}),[n.sessionId,B.permissionMode,B.agentMode,B.provider,B.model,B.thinking,B.reasoningMode,ie,Cx,P.maxIter,ix,Ea,G?.phase,G?.harnessProfile,G?.activeWorkerTitle,G?.currentRound,G?.maxRounds,G?.globalWorkBudget,G?.budgetUsage,G?.budgetApprovalRequired,G?.idleWaiting,G?.idleWaitingPendingCount,Mm]),_m=tt?"confirm":Pe?.kind,eo=de(()=>QI({isTranscriptMode:ie,isLoading:Ea,streamingState:Ee,managedState:Ea?{phase:G?.phase,harnessProfile:G?.harnessProfile,workerTitle:G?.activeWorkerTitle}:void 0,waitingReason:_m}),[Ee.activeToolCalls,Ee.currentTool,Ee.isCompacting,Ee.isThinking,Ee.thinkingCharCount,Ee.toolInputCharCount,Ee.toolInputContent,ie,G?.activeWorkerTitle,G?.harnessProfile,G?.phase,_m,Ea]),Lm=eo?.text,vr=de(()=>zv(bl,{now:Date.now(),lastAllCompletedAt:null}),[bl]),bx=xe(!1);Fe(()=>{bx.current&&!oe&&Vr(f=>f.length>0?[]:f),bx.current=oe},[oe]);let Pm=de(()=>ef(Yl),[Yl]),vx=de(()=>Pm,[Pm]),Ix=vx.text,CE=de(()=>kv(P.pendingInputs),[P.pendingInputs]),$m=de(()=>Xv({isHistorySearchActive:lt,isTranscriptMode:ie,pendingInputCount:P.pendingInputs.length,buffering:He.buffering,pendingLiveUpdates:Ta}),[lt,ie,Ta,P.pendingInputs.length,He.buffering]),kx=$m.leftItems,Rx=$m.rightItems,Ex=$m.summary,ql=de(()=>sk({historySearchQuery:qt,pendingInputCount:P.pendingInputs.length}),[qt,P.pendingInputs.length]),Jl=de(()=>ik({historySearchQuery:qt,isHistorySearchActive:lt,historySearchMatchCount:Mt.length,pendingInputCount:P.pendingInputs.length,maxPendingInputs:5}),[Mt.length,qt,lt,P.pendingInputs.length]),Mx=de(()=>Jl.map(f=>f.text).join(" | "),[Jl]),Ql=de(()=>ak({inputText:dm,isTranscriptMode:ie,isHistorySearchActive:lt}),[dm,lt,ie]),Ax=He.supportsOverlaySurface&&He.supportsSearchViewport&&Ct,Zl=de(()=>nk({runtime:bn,itemSummary:wx}),[wx,bn]),Om=de(()=>ck(ql),[ql]),_x=de(()=>lk({textSelection:br,selectionState:Zl,isHistorySearchActive:lt,historySearchDetailText:Em,historySearchHasMatches:!!Sx&&Mt.length>0,showAllActive:Et,baseFooterNotices:ql}),[br,ql,Em,Mt.length,Sx,lt,Et,Zl]),bE=_x.secondaryText,vE=_x.budgetNotices,Lx=ie?vE:Om,Px=x.rows??24,$x=ie?"":dm,Ox=ie?void 0:CE,Dx=Ra,Nx=ie?!1:ex,Nt=de(()=>b0({terminalRows:Px,terminalWidth:k,windowedTranscript:_o,inputText:$x,footerHeaderText:Ex,activitySummary:ie?void 0:Lm,activityBarVisible:ie?!1:!!Lm||oe&&vr.shouldRender,todoSurfaceRows:ie?0:oe&&vr.shouldRender?vr.rows.length:0,pendingInputSummary:Ox,stashNoticeSummary:Ql,notificationSummary:Mx,statusNoticeSummary:Lx.join(" | "),workStripText:Dx,suggestionsReserved:Wl,suggestionsMode:"inline",showHelp:Nx,statusBarText:Ix,confirmPrompt:tt?.prompt,confirmInstruction:Sa,dialogMode:"inline",reviewHint:s.enabled&&Ct?void 0:Zr.browseHintText,uiRequest:Pe?Pe.kind==="select"?{kind:"select",title:Pe.title,options:Pe.options.map(f=>({label:f.label,description:f.description})),buffer:Pe.buffer,error:Pe.error}:{kind:"input",prompt:Pe.prompt,defaultValue:Pe.defaultValue,buffer:Pe.buffer,error:Pe.error}:null}),[Px,k,$x,Ex,Lm,Ox,Ql,Mx,Lx,Dx,Wl,Ax,Nx,Ix,tt,Sa,s.enabled,Zr.browseHintText,Ct,Pe]),Dm=de(()=>{if(!Li)return{model:Po,committedSections:[]};let{committedSections:f,liveRows:S}=zb(va.staticSections,Po.rows,Po.previewRows,Nt.messageRows);return{model:{...Po,staticSections:[],rows:S,previewRows:[]},committedSections:f}},[Li,Po,va.staticSections,Nt.messageRows]),Bx=Dm.model;Fe(()=>{let f=ys(x),S=typeof f?.commitInlineScrollback=="function",C=vI({active:Li,hasCommitHandle:S,wasActive:hx.current,forceRebuild:km.current,prior:px.current,finalizedSections:Dm.committedSections,bannerSection:Jr,width:k,identify:Xb}),M=!1,E=!1;if(C.kind==="commit"){let W=C.sections.flatMap(ne=>ne.rows),K=CI(W.length>0?[{key:"il-delta",rows:W}]:[],{width:k,theme:re("dark")});if(E=K.length>0,C.mode==="append"&&!K)_k("empty-append-text");else try{f?.commitInlineScrollback?.({mode:C.mode,text:K}),M=!0}catch(ne){_k("commit-threw",ne)}}let H=II(C,{committed:M,hadContent:E},km.current);px.current=H.state,hx.current=H.wasActive,km.current=H.owns},[Li,Dm.committedSections,Jr,k,x]);let IE=de(()=>le(hg,{reserveSpace:Wl,width:k,hidden:ie,mode:"inline"}),[Wl,k,ie,Ax]),Ma=de(()=>NI(Nt.messageRows),[Nt.messageRows]),Hx=de(()=>BI(Ma),[Ma]),Oi=!lx&&s.transcriptSpinnerAnimation,Aa=rr?rr.rows.length+rr.previewRows.length:iE,eu=X(f=>{rr||sE(f.scrollHeight)},[rr]),_a=X(f=>GI({window:f,stickyHeader:Zr.stickyHeader,width:k,topChromeRows:0}),[k,Zr.stickyHeader]),Di=X((f=fa.current,S=Tl.current,C=pm.current?_a(pm.current):Sl.current)=>{if(!C||f.length===0){Ti.current=null;return}Sl.current=C,Ti.current=KI(f,{allRows:S,rowIndexByKey:uy(S),topOffsetRows:C.topOffsetRows,viewportHeight:C.contentWindow.viewportHeight,animateSpinners:Oi})},[_a,Oi]),La=X(()=>{let f=Sl.current;return f?.contentWindow.viewportHeight&&f.contentWindow.viewportHeight>0?f.contentWindow.viewportHeight:Nt.messageRows},[Nt.messageRows]),kE=X(f=>{pm.current=f;let S=_a(f);Sl.current=S,Di(fa.current,Tl.current,S)},[Di,_a]),tu=X(f=>{fa.current=f.rows,Tl.current=f.allRows,Di(f.rows,f.allRows)},[Di]),Kt=X(()=>{Fn.current=null,hm(void 0),gm(void 0)},[]),Nm=X(()=>{Kt(),Zn(f=>Js(f,void 0))},[Kt]);Fe(()=>{Di()},[Di]),Fe(()=>{cE(f=>HI(f,Aa,Nt.messageRows))},[Aa,Nt.messageRows]),Fe(()=>{if(!Ci)return;let f=setTimeout(()=>{jy(void 0)},2e3);return()=>{clearTimeout(f)}},[Ci]);let Ir=X((f,S="success")=>{let C=f?.trim();C&&jy({text:C,tone:S})},[]),Ni=X((f,S)=>{let C=S instanceof Error?S.message:String(S);return`${f}: ${C}`},[]),nu=X(async f=>{let S=f??br;if(!S)return!1;let C=S.text.trimEnd();if(!C)return!1;try{return await ti(C,{terminalWrite:A}),Ir(`Copied ${S.rowCount} selected line${S.rowCount===1?"":"s"} to clipboard.`,"success"),!0}catch(M){return Ir(Ni("Failed to copy transcript selection",M),"warning"),!1}},[br,Ni,Ir,A]),Bi=X(f=>{if(!f||WI({items:Dt,renderModel:rr,terminalWidth:k,transcriptMaxLines:Tt,viewportRows:La(),itemId:f,visibleRows:fa.current,expandedItemKeys:dn,showDetailedTools:!1}))return;let S=UI({items:Dt,renderModel:rr,terminalWidth:k,transcriptMaxLines:Tt,viewportRows:La(),itemId:f,expandedItemKeys:dn,showDetailedTools:!1});yl(S)},[Dt,k,Tt,rr,dn,La,yl,fa]),Fx=X(f=>{Zn(S=>Js(S,f)),f&&Bi(f)},[Bi]),Bm=X(f=>{f&&Bi(f)},[Bi]),Wx=X(f=>{if(!Vl)return;let S=PI($o,Qe,f);S&&Fx(S)},[Vl,$o,Qe,Fx]),Ux=X(()=>{!Xl||!Qe||(dE(f=>{let S=new Set(f);return S.has(Qe)?S.delete(Qe):S.add(Qe),S}),Bi(Qe))},[Bi,Xl,Qe]),jx=X(async()=>{if(!$i||!fn)return;let f=ly(fn);if(f)try{await ti(f,{terminalWrite:A}),Ir("Copied selected transcript entry to clipboard.","success")}catch(S){Ir(Ni("Failed to copy transcript entry",S),"warning")}},[Ni,$i,fn,Ir,A]),Gx=X(async()=>{if(!zl||!fn)return;let f=$I(fn);if(f)try{await ti(f,{terminalWrite:A}),Ir("Copied selected tool args to clipboard.","success")}catch(S){Ir(Ni("Failed to copy tool args",S),"warning")}},[Ni,zl,fn,Ir,A]),Pa=X(()=>Tl.current,[]),Kx=X((f,S)=>{if(!s.enabled||!Ct)return;let C=Ti.current;return C?fy(C,f,S):void 0},[s.enabled,Ct]),Hi=X((f,S,C)=>{let M=Pa(),E=XI(M,f,S,{animateSpinners:Oi,selectFullRowOnCollapsed:C?.selectFullRowOnCollapsed});ie?gm(E):hm(E);let H=M[Math.max(0,Math.min(S.modelRowIndex,M.length-1))];return C?.updateSelectedItem&&H?.itemId&&Zn(W=>Js(W,H.itemId)),E},[ie,Pa,Oi]),Vx=X((f,S)=>{if(!f)return;Fn.current=null;let C={...f,focus:S?.focusPoint??f.focus};if(!(C.mode!=="char"||C.didDrag)){Kt();return}let E=Hi(C.anchor,C.focus,{selectFullRowOnCollapsed:!1,updateSelectedItem:!1});if(!E){Kt();return}return S?.copySelection!==!1&&nu(E),E},[Kt,nu,Hi]),Hm=X(()=>{if(!ie||!Dt.length||tt||Pe)return;Kt();let f=jI({items:Dt,selectedItemId:Qe,renderModel:rr,terminalWidth:k,transcriptMaxLines:Tt,viewportRows:La(),scrollOffset:Hn,expandedItemKeys:dn,showDetailedTools:!1,preferViewportAnchor:!0});Zn(S=>_0(S,{anchorItemId:f,initialMatchIndex:0})),Ai(""),Gn(0)},[tt,Dt,dn,Hn,ie,Qe,rr,k,Tt,Pe,La,Kt]),Fm=X(()=>{Zn(f=>L0(f)),Ai(""),Gn(0),Kt()},[Kt]),ru=X(()=>{!lt||Mt.length===0||Gn(-1)},[Mt.length,lt]),zx=de(()=>{if(!tt)return null;if(tt.tool==="exit_plan_mode"){let f=typeof tt.input.plan=="string"?tt.input.plan:void 0;return{prompt:tt.prompt.split(`
|
|
425
|
+
`,1)[0]??tt.prompt,instruction:Sa,planContent:f}}return{prompt:tt.prompt,instruction:Sa}},[Sa,tt]),Xx=de(()=>Pe?Pe.kind==="select"?{kind:"select",title:Pe.title,options:Pe.options,buffer:Pe.buffer,error:Pe.error,visibleSelectOptions:Nt.visibleSelectOptions,focusedIndex:Pe.focusedIndex,selectedIndices:Pe.selectedIndices,multiSelect:Pe.multiSelect}:{kind:"input",prompt:Pe.prompt,defaultValue:Pe.defaultValue,buffer:Pe.buffer,error:Pe.error}:null,[Pe,Nt.visibleSelectOptions]),RE=de(()=>le(yg,{confirm:zx,request:Xx}),[zx,Xx]),Wm=de(()=>{if(Ci)return le(Kv,{text:Ci.text,tone:Ci.tone})},[Ci]),Um=de(()=>{if(Wm)return le(R,{flexDirection:"column",width:"100%",children:Wm})},[Wm]),ou=X(()=>{Zn(f=>M0(k0(f))),fm(!1),wl(),Ai(""),Gn(0),Kt()},[Kt,wl]),Yx=X(()=>{ie&&fm(f=>!f)},[ie]),EE=X(()=>{if(ie){ou();return}fm(!1),Zn(f=>I0(f)),Ai(""),Gn(0),Kt()},[Kt,ou,ie]);Fe(()=>{yx||!He.selectedItemId||Zn(f=>Js(f,void 0))},[yx,He.selectedItemId]),Fe(()=>{if(!ie||!$i||!xx){wa.current=void 0;return}if(Io||!Qe||!fn)return;if(!wa.current){wa.current=Qe;return}if(wa.current===Qe)return;wa.current=Qe;let f=ly(fn);f&&ti(f,{terminalWrite:A}).catch(()=>{})},[ie,fn,Qe,$i,xx,Io,A]),Fe(()=>{if(x?.isTTY!==!0)return;let f=ys(x);f?.setShellMode?.(sx,Fl),bm||f?.setAltScreenActive?.(!1)},[sx,x,bm,Fl]);let Ze=xe({...e,thinking:B.thinking,reasoningMode:B.reasoningMode,agentMode:B.agentMode,context:{...e.context,repoIntelligenceMode:B.repoIntelligenceMode,repoIntelligenceTrace:B.repoIntelligenceTrace,toolConstructionMode:!0},session:{...e.session,id:n.sessionId,persistedByHost:!0},guardrails:wy(B.permissionMode,l)}),vn=xe(B.permissionMode);Fe(()=>{vn.current=B.permissionMode},[B.permissionMode]);let ME=de(()=>Rs(),[]),qx=xe(ME),jm=xe(B);Fe(()=>{jm.current=B},[B]);let Gm=xe(null);Gm.current===null&&(Gm.current=gu({getProvider:i(()=>No(jm.current.provider),"getProvider"),getModel:i(()=>jm.current.model??"","getModel")}));let Jx=xe(sd());Fe(()=>{B.permissionMode==="auto-in-project"&&Jx.current()},[]);let Km=X(f=>{nt(S=>({...S,permissionMode:f})),vn.current=f,Ze.current={...Ze.current,guardrails:wy(f,l)},Am(sn(f)?l.getGuardrail().getEngine():void 0),f==="auto-in-project"&&Jx.current()},[l]),Qx=xe(P.pendingInputs),ot=xe(!1),$a=xe(0),iu=X(()=>{if(ua.current)return;let f=wm.current?.trim(),S=ge.current.length>0?ge.current[ge.current.length-1]:void 0,C=S&&"text"in S&&typeof S.text=="string"?S.text.trim():void 0,E=Yt.current.length>0?[...Yt.current.map(H=>To(H)),...f&&f!==C?[{type:"info",text:f}]:[]]:[...Yt.current.map(H=>To(H)),...TH(_(),ee(),{toolCalls:jt.current,toolNames:tr.current,infoItems:f&&f!==C?[f]:[]})];E.length!==0&&(ua.current=!0,Al(Yt.current),Si.current?.(E))},[ee,_,Al]);Fe(()=>{Qx.current=P.pendingInputs},[P.pendingInputs]);let Zx=X(()=>{ot.current=!0,V(),Y(),q(),Ie(),De(),me(),ue(void 0),Xr(),ht(void 0),ha(),Ro.current=[],vi.current=[],ma([]),ze(!1)},[V,me,Ie,De,Xr,ha,ue,ma,ze,ht,Y,q]),su=xe(0),AE=500;yn(zt.Critical,f=>{if(!oe)return!1;switch(K0({keyName:f.name,ctrl:!!f.ctrl,isTranscriptMode:ie,isAwaitingUserInteraction:Yr,isInputEmpty:um,pendingInputCount:P.pendingInputs.length,hasTranscriptTextSelection:!!Io,timeSinceLastEscapeMs:Date.now()-su.current,doubleEscapeIntervalMs:AE}).kind){case"interrupt":return su.current=0,iu(),Zx(),!0;case"pop-pending-input":return Be(),su.current=0,!0;case"arm-double-escape":return su.current=Date.now(),!0;default:break}return!1},[oe,ie,Yr,um,P.pendingInputs.length,Be,iu,Zx]),yn(zt.Critical,f=>{let S=j0({itemsLength:Dt.length,currentResponse:Ke.currentResponse,thinkingContent:Ke.thinkingContent,activeToolCallsLength:Ke.activeToolCalls.length}),C=G0({keyName:f.name,hasTranscript:S,historyScrollOffset:Hn,reviewPageSize:Ma,reviewWheelStep:Hx,hasMouse:!!f.mouse,mouseButton:f.mouse?.button,mouseAction:f.mouse?.action,usesManagedMouseClicks:ax,supportsMouseTracking:He.supportsMouseTracking,usesRendererMouseTracking:Fl,usesManagedMouseWheel:cx,supportsWheelHistory:He.supportsWheelHistory});if(C.kind==="mouse-phase"){let E=f.mouse;if(!E)return!1;C.phase==="press"&&Fn.current&&Vx(Fn.current);let H=Kx(E.row,E.column);if(C.phase==="press"){if(!H||!S)return br||Qe?(Nm(),!0):(Kt(),!1);let W=Tk({previous:Uy.current,time:Date.now(),row:E.row,column:E.column});Uy.current=W;let K=W.count>=3?"line":W.count===2?"word":"char";if(ru(),Zn(ne=>Js(ne,void 0)),ie?gm(void 0):hm(void 0),K!=="char"){let ne=zf(Pa(),H.point,K);if(ne)return Fn.current={anchor:ne.start,focus:ne.end,didDrag:!1,mode:K,anchorSpan:ne},Hi(ne.start,ne.end,{updateSelectedItem:!1}),!0}return Fn.current={anchor:H.point,focus:H.point,didDrag:!1,mode:"char"},!0}if(!Fn.current)return!1;if(C.phase==="drag"){let W=Ti.current,K=W?qI(W,E.row):0;K!==0&&xl(K);let ne=H??(W?my(W,E.row,E.column):void 0);if(!ne)return!1;let Ce=Fn.current;if(Ce.mode!=="char"&&Ce.anchorSpan){let xt=zf(Pa(),ne.point,Ce.mode);if(!xt)return!1;let Vt=xy(Ce.anchorSpan,xt);return Fn.current={...Ce,anchor:Vt.anchor,focus:Vt.focus,didDrag:!0},Hi(Vt.anchor,Vt.focus,{updateSelectedItem:!1}),!0}return Fn.current={...Ce,focus:ne.point,didDrag:!0},Hi(Ce.anchor,ne.point,{updateSelectedItem:!1}),!0}if(C.phase==="release"){let W=Fn.current,K=W.focus,Ce=(H??(Ti.current?my(Ti.current,E.row,E.column):void 0))?.point??K;if(W.mode!=="char"&&W.anchorSpan){let xt=zf(Pa(),Ce,W.mode);if(xt){let Vt=xy(W.anchorSpan,xt);W.anchor=Vt.anchor,Ce=Vt.focus}}return Vx(W,{focusPoint:Ce}),!0}}if(C.kind==="scroll-by")return ru(),xl(C.delta),!0;if(C.kind==="consume")return!0;let M=V0({key:f,isTranscriptMode:ie,isHistorySearchActive:lt,historySearchMatchCount:Mt.length,hasTextSelection:!!br,hasFocusedItem:!!Qe,canCopySelectedItem:$i,canCopySelectedToolInput:zl,canToggleSelectedDetail:Xl,canCycleTranscriptSelection:Vl});return z0({action:M,hasTranscript:S,isTranscriptMode:ie,pageScrollDelta:Ma,disarmHistorySearchSelection:ru,scrollTranscriptBy:xl,closeHistorySearchSurface:Fm,backspaceHistorySearchQuery:i(()=>{Ai(E=>E.slice(0,-1)),Gn(0)},"backspaceHistorySearchQuery"),stepHistorySearchSelection:i(E=>{Gn(H=>cy(Mt.length,H,E))},"stepHistorySearchSelection"),submitHistorySearchSelection:i(()=>{let E=Mt[Qr];E&&(Bm(E.itemId),Fm())},"submitHistorySearchSelection"),appendHistorySearchQuery:i(E=>{Ai(H=>H+E),Gn(0)},"appendHistorySearchQuery"),openHistorySearchSurface:Hm,clearTranscriptSelectionFocus:Nm,exitTranscriptModeSurface:ou,toggleTranscriptShowAll:Yx,scrollTranscriptHome:i(()=>{yl(Math.max(0,Aa-Nt.messageRows))},"scrollTranscriptHome"),scrollTranscriptToBottom:i(()=>{wl(),Kt()},"scrollTranscriptToBottom"),cycleTranscriptSelection:Wx,copySelectedTranscriptText:i(()=>{nu()},"copySelectedTranscriptText"),copySelectedTranscriptItem:i(()=>{jx()},"copySelectedTranscriptItem"),copySelectedTranscriptToolInput:i(()=>{Gx()},"copySelectedTranscriptToolInput"),toggleSelectedTranscriptDetail:Ux,navigateSearchMatch:i(E=>{Gn(H=>{let W=cy(Mt.length,H,E),K=Mt[W];return K&&Bm(K.itemId),W})},"navigateSearchMatch"),dumpTranscriptToScrollback:i(()=>{X0({items:Dt.filter(E=>!Qh(E)),exitAltScreen:i(()=>{A(Zu({mouseTracking:!0}))},"exitAltScreen"),writeToScrollback:i(E=>{A(E)},"writeToScrollback"),enterAltScreen:i(()=>{A(Qu({mouseTracking:!0,clearOnEnter:!1}))},"enterAltScreen")})},"dumpTranscriptToScrollback")})},[ie,Dt,Ke.currentResponse,Ke.thinkingContent,Ke.activeToolCalls,Hn,Aa,Ma,Hx,Qe,Nm,ou,Yx,He,xl,yl,wl,Vl,Qr,Kt,nu,Mt,Hm,Fm,ru,Wx,$i,jx,zl,Gx,Xl,Ux,Bm,br,Kx,He.supportsMouseTracking,Io,ax,cx,vm,_o,Fl,Hi,Nt.messageRows]),yn(f=>{if(!tt)return!1;let S=f.sequence.trim().toLowerCase(),C=!!tt.input._alwaysConfirm,M=B.permissionMode==="accept-edits"&&!C,E=i(H=>{let W=`${Z("dialog.confirm")} ${tt.prompt}
|
|
426
|
+
\u2192 ${Z(`confirm.result.${H}`)}`;!!st.current.workerId?Cn({id:`confirm-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"info",text:W,timestamp:Date.now()}):v({type:"info",text:W})},"recordConfirmResult");return S==="y"||S==="yes"?(E("approved"),Dl(null),Ao.current?.({confirmed:!0}),Ao.current=null,!0):M&&(S==="a"||S==="always")?(E("approved_always"),Dl(null),Ao.current?.({confirmed:!0,always:!0}),Ao.current=null,!0):S==="n"||S==="no"||f.name==="escape"?(E("denied"),Dl(null),Ao.current?.({confirmed:!1}),Ao.current=null,!0):f.insertable||f.name==="return"},{isActive:!!tt,priority:zt.Critical});let au=X(f=>{jn(null),Nl.current?.(f),Nl.current=null},[]),Fi=X((f,S,C)=>S.length===0?Promise.resolve(void 0):new Promise(M=>{Nl.current=M,jn({kind:"select",title:f,options:S,buffer:"",focusedIndex:0,selectedIndices:[],multiSelect:C})}),[]),_E=X((f,S)=>Fi(f,S.map(C=>({label:C,value:C}))),[Fi]),ew=X(async f=>{let S=f.options?Vf(f.options):[];return await Fi(py(f),S,f.multiSelect)??np},[Fi]);Fe(()=>{let f=!1;return(async()=>{let{bindAskUserForConstruction:S}=await import("./construction-bootstrap-6UN3OY7X.js");f||S(ew)})(),()=>{f=!0,(async()=>{let{bindAskUserForConstruction:S}=await import("./construction-bootstrap-6UN3OY7X.js");S(null)})()}},[ew]);let tw=X((f,S)=>new Promise(C=>{Nl.current=C,jn({kind:"input",prompt:f,defaultValue:S,buffer:""})}),[]);yn(f=>{let S=Bl.current;if(!S)return!1;if(f.name==="escape")return au(void 0),!0;if(S.kind==="select"){let C=S.options.length;if(f.name==="up"||f.sequence==="k")return jn(M=>M&&M.kind==="select"?{...M,focusedIndex:(M.focusedIndex-1+C)%C,error:void 0}:M),!0;if(f.name==="down"||f.sequence==="j")return jn(M=>M&&M.kind==="select"?{...M,focusedIndex:(M.focusedIndex+1)%C,error:void 0}:M),!0;if(f.sequence===" "&&S.multiSelect)return jn(M=>{if(!M||M.kind!=="select")return M;let E=M.focusedIndex,H=M.selectedIndices.includes(E)?M.selectedIndices.filter(W=>W!==E):[...M.selectedIndices,E];return{...M,selectedIndices:H,error:void 0}}),!0;if(f.name==="return"){let M=Bl.current;if(!M||M.kind!=="select")return!1;if(M.multiSelect){if(M.selectedIndices.length===0)return jn(H=>H&&H.kind==="select"?{...H,error:Z("select.multiselect_empty")}:H),!0;let E=M.selectedIndices.sort((H,W)=>H-W).map(H=>M.options[H]?.value).filter(Boolean).join(", ");au(E)}else au(M.options[M.focusedIndex]?.value);return!0}if(/^[1-9]$/.test(f.sequence)){let M=Number.parseInt(f.sequence,10)-1;if(M>=0&&M<C)return S.multiSelect?jn(E=>{if(!E||E.kind!=="select")return E;let H=E.selectedIndices.includes(M)?E.selectedIndices.filter(W=>W!==M):[...E.selectedIndices,M];return{...E,focusedIndex:M,selectedIndices:H,error:void 0}}):jn(E=>E&&E.kind==="select"?{...E,focusedIndex:M,error:void 0}:E),!0}return!1}if(f.name==="return"){let C=Bl.current;if(!C||C.kind!=="input")return!1;let M=C.buffer.trim();return au(M===""?C.defaultValue??void 0:M),!0}return f.name==="backspace"||f.name==="delete"?(jn(C=>C&&C.kind==="input"?{...C,buffer:C.buffer.slice(0,-1),error:void 0}:C),!0):(f.insertable||f.isPasted===!0)&&!f.ctrl&&!f.meta?(jn(C=>C&&C.kind==="input"?{...C,buffer:C.buffer+f.sequence,error:void 0}:C),!0):!1},{isActive:!!Pe,priority:zt.Critical}),Fe(()=>{if(n.messages.length>0&&$.length===0){if(n.uiHistory?.length){let S=hi(n.uiHistory);S.length!==n.uiHistory.length&&(n.uiHistory=S),z(S.map(C=>({type:C.type,text:C.text,...C.icon?{icon:C.icon}:{},...C.compactText?{compactText:C.compactText}:{}})));return}let f=n.messages.flatMap(S=>yc(S).map(gc));z(f)}},[n.messages,n.uiHistory,$.length,z]),Fe(()=>{Ho(n.gitRoot)},[n.gitRoot]),Fe(()=>{process.env.KODAX_PREWARM_REPO_INTELLIGENCE!=="0"&&Mw({executionCwd:n.gitRoot??process.cwd(),gitRoot:n.gitRoot??void 0},{mode:B.repoIntelligenceMode})},[n.gitRoot,B.repoIntelligenceMode]);let Vm=X(()=>({onThinkingDelta:i(f=>{if(ot.current)return;P.currentTool&&(ue(void 0),De());let{header:S}=a0(_()+f),C=S?`[Thinking: ${S}]`:"[Thinking]";ht(Ef(ct.current?.activeWorkerTitle?`[${ct.current.activeWorkerTitle}] ${C}`:C,ct.current?.activeWorkerTitle)),Q(f.length),J(f),st.current.workerId&&Ll("thinking",f)},"onThinkingDelta"),onThinkingEnd:i(f=>{if(ot.current)return;let S=_(),C=o0(S,f);C&&C!==S&&(Ie(),ae(),Q(C.length),J(C)),st.current.workerId&&Jy(C),q()},"onThinkingEnd"),onTextDelta:i(f=>{ot.current||(P.currentTool&&(ue(void 0),De()),q(),ht(void 0),Pt(f),st.current.workerId&&Ll("assistant",f))},"onTextDelta"),onToolUseStart:i(f=>{if(ot.current)return;tr.current.includes(f.name)||(tr.current=[...tr.current,f.name]);let S=ct.current?.activeWorkerTitle?`[${ct.current.activeWorkerTitle}] `:"",C={id:f.id,name:`${S}${f.name}`,status:N.Executing,startTime:Date.now(),input:f.input};Qy(C),st.current.workerId&&Un(C),ht(Fr(C,ct.current?.activeWorkerTitle))},"onToolUseStart"),onToolInputDelta:i((f,S,C)=>{if(ot.current)return;et(S.length),Ue(S);let M=Zy(C?.toolId,f,E=>{let H=E.preview??"",W=t0(`${H}${S}`);return{...E,preview:W||void 0,input:E.input?W?{...E.input,preview:W}:{...E.input}:W?{preview:W}:void 0}});M&&(st.current.workerId&&Un(M),ht(Fr(M,ct.current?.activeWorkerTitle)))},"onToolInputDelta"),onToolResult:i(f=>{if(ot.current)return;let S=typeof f.content=="string"?f.content:String(f.content??""),C=n0(S);if(/^\[(?:Tool Error|Error)\]/.test(S)){let E=$l(f.id,N.Error,C,C,f.name);E&&(st.current.workerId&&Un(E),ht(Fr(E,ct.current?.activeWorkerTitle)));return}if(/^\[(?:Cancelled|Blocked)\]/.test(S)){let E=$l(f.id,N.Cancelled,void 0,C,f.name);E&&(st.current.workerId&&Un(E),ht(Fr(E,ct.current?.activeWorkerTitle)));return}let M=$l(f.id,N.Success,void 0,C||void 0,f.name);M&&(st.current.workerId&&Un(M),ht(Fr(M,ct.current?.activeWorkerTitle)))},"onToolResult"),onToolProgress:i(f=>{if(ot.current)return;let S=f.message.length>100?f.message.slice(0,97)+"...":f.message,C=Mi(f.id,M=>({...M,preview:S,progressLines:[...(M.progressLines??[]).slice(-4),S]}));C&&st.current.workerId&&Un(C),ht(S)},"onToolProgress"),onStreamEnd:i(()=>{if(ot.current)return;let f=ga(N.Cancelled,()=>({error:"Stream ended before the tool completed.",output:void 0})),S=f[f.length-1];st.current.workerId&&f.forEach(C=>Un(C)),S&&ht(Fr(S,ct.current?.activeWorkerTitle)),q(),De(),ue(void 0)},"onStreamEnd"),hasPendingInputs:i(()=>Qx.current.length>0,"hasPendingInputs"),onMidTurnUserMessages:i(f=>{if(!ot.current)for(let S of f){let C=S.trim();C&&(st.current.workerId?Cn({id:`mid-turn-user-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"user",text:C,timestamp:Date.now()}):v({type:"user",text:C}))}},"onMidTurnUserMessages"),onError:i(f=>{let S=zr();S?.name&&ht(Fr(S,ct.current?.activeWorkerTitle));let C=ga(N.Error,()=>({error:f.message,output:void 0})),M=C[C.length-1];st.current.workerId&&C.forEach(xt=>Un(xt)),M&&ht(Fr(M,ct.current?.activeWorkerTitle));let E=uw(f),H=["Transient","Permanent","Tool Call ID","User Abort"];if(E.category===Ha.USER_ABORT)return;let K=[`\u274C API Error (${H[E.category]||"Unknown"}): ${f.message}`];E.shouldCleanup&&K.push(" \u{1F9F9} Cleaned incomplete tool calls"),E.category===Ha.PERMANENT?(K.push(" \u{1F4A1} This error requires manual intervention. Please check:"),f.message.includes("auth")||f.message.includes("401")?(K.push(" - Your API key is valid"),K.push(" - Run /config to check provider settings")):f.message.includes("400")?(K.push(" - The request parameters are correct"),K.push(" - Try restarting the conversation")):K.push(" - The error details above")):E.category===Ha.TRANSIENT?K.push(" \u23F3 Retries exhausted. Press Enter to continue the conversation"):E.category===Ha.TOOL_CALL_ID&&K.push(" \u2705 Session cleaned, ready to continue");let ne=K.join(`
|
|
427
|
+
`);!!st.current.workerId?Cn({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:ne,timestamp:Date.now()}):v({type:"error",text:ne})},"onError"),onRetry:i((f,S,C)=>{if(ot.current)return;if(!!st.current.workerId){let E=bf(f,S,C);Cn({...E,id:`retry-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()})}else Rg(v,f,S,C)},"onRetry"),onProviderRecovery:i(f=>{if(ot.current)return;let S=!!st.current.workerId,C=ee().trim();if(C&&(S?Ll("assistant",C):v({type:"assistant",text:C})),me(),Ie(),q(),De(),ue(void 0),Xr(),ht(void 0),S){let M=vf(f);Cn({...M,id:`recovery-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()})}else Eg(v,f)},"onProviderRecovery"),onManagedTaskStatus:i(f=>{if(ot.current)return;let S=st.current;if(Ik(f)){if(S.workerId&&S.workerId!==f.activeWorkerId)yE({workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle});else if(S.workerId!==f.activeWorkerId){let W=gt.current,K=W.activeToolGroupTools.some(ne=>ne.status===N.Executing);gt.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle,...K?{activeToolGroupItemId:W.activeToolGroupItemId,activeToolGroupTools:W.activeToolGroupTools}:{activeToolGroupTools:[]}},st.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle}}}ct.current=f,xm(f);let C=s0(f);xE(C);let M=Xs(f),H=Xs(f,{expanded:!0})??M;H&&(wm.current=H)},"onManagedTaskStatus"),onProviderRateLimit:i((f,S,C)=>{ot.current||Mo({type:"info",icon:"\u23F3",text:`[Rate Limit] Retrying in ${C/1e3}s (${f}/${S})...`},"ratelimit")},"onProviderRateLimit"),onRetryAfter:i(f=>{if(ot.current)return;let S=Math.round(f.waitMs/1e3),C=f.source==="exponential-backoff"?"no-header \u2192 backoff":f.source,M=f.reason==="overloaded"?"Overloaded":"Rate limited";Mo({type:"info",icon:"\u23F3",text:`[${M}] (${f.provider}) \u2014 retrying in ${S}s [${C}] (${f.attempt}/${f.maxAttempts})`},"ratelimit")},"onRetryAfter"),onRepoIntelligenceTrace:i(f=>{ot.current||Mo(w0(f),"repointel-trace")},"onRepoIntelligenceTrace"),onTodoUpdate:i(f=>{ot.current||Vr(f)},"onTodoUpdate"),onScoutSuspiciousCompletion:i(f=>{ot.current||Ek&&Mo({type:"info",icon:"\u26A0",text:`[Scout] Completion marked uncertain \u2014 signals: ${f.signals.join(", ")}. Verify the result before continuing.`},"scout-uncertain")},"onScoutSuspiciousCompletion"),onIterationStart:i((f,S)=>{if(ot.current)return;if(S&&at(S),ct.current?.globalWorkBudget){let Ce={...ct.current,budgetUsage:Math.min(ct.current.globalWorkBudget,(ct.current.budgetUsage??0)+1)};ct.current=Ce,xm(Ce)}let C=f>1?_().trim():"",M=f>1?Ty(ee()):"",E=f>1?[...tr.current]:[],H=f>1?[...jt.current]:[],W=!!st.current.workerId;O(f),W&&Ml({clearOwner:!1});let K=Sr.current.filter(Ce=>Ce.status===N.Executing),ne=new Set(K.map(Ce=>Ce.id));if(tr.current=[],jt.current=jt.current.filter(Ce=>ne.has(Ce.id)),Tn(K),De(),ue(void 0),ht(Ef(ct.current?.activeWorkerTitle?`[Thinking] [${ct.current.activeWorkerTitle}]`:void 0,ct.current?.activeWorkerTitle)),ae(),f>1&&!W){let Ce=Cy({thinking:C,response:M,toolCalls:H,toolNames:E});Si.current?Si.current(Ce):z([...Ce])}},"onIterationStart"),beforeToolExecute:i(async(f,S)=>{let C=vn.current,M=Jo(C),E=qx.current,H=n.gitRoot;if(Kw(D.current,f,S))return`[Skipped] Previously denied operation. ${Vw(D.current)}`;if(C==="plan"&&(Pn.has(f)||f==="undo"))return`[Blocked] Tool '${f}' is not allowed in plan mode (read-only). ${bk}`;if(C==="plan"&&f==="bash"){let W=S.command??"";if(Xn(W))return`[Blocked] Bash write operation not allowed in plan mode: ${W.slice(0,50)}... ${bk}`}if(f==="bash"){let W=S.command??"";if(zn(W))return!0}if(sn(C)&&Mm==="llm")return!0;if(f==="bash"){let W=S.command??"",K=jw(W);if(K.level==="dangerous"){let ne=await Oo(f,{...S,_dangerousCommand:!0});return ne.confirmed?ne.confirmed:(D.current=ip(D.current,f,S,K.reason),`[Blocked] Dangerous command requires confirmation: ${K.reason}`)}}if(H){let W=!1;if(Pn.has(f)){let K=S.path;K&&ur(K,H)&&(W=!0)}if(f==="bash"){let K=S.command;K&&dh(K,H)&&(W=!0)}if(W){let K=await Oo(f,{...S,_alwaysConfirm:!0});if(vn.current==="plan"&&(Pn.has(f)||f==="undo"))return!1;if(vn.current==="plan"&&f==="bash"){let ne=S.command??"";if(Xn(ne))return!1}return K.confirmed}}if(M.has(f)){if(C==="accept-edits"&&f==="bash"&&await co(f,S,E,Gm.current??void 0))return!0;let W=await Oo(f,S);if(vn.current==="plan"&&(Pn.has(f)||f==="undo"))return!1;if(vn.current==="plan"&&f==="bash"){let K=S.command??"";if(Xn(K))return!1}if(!W.confirmed)return v({type:"info",text:Z("cancelled")}),D.current=ip(D.current,f,S),!1;W.always&&C==="accept-edits"&&(yd(f,S,!1),qx.current=Rs())}return!0},"beforeToolExecute"),askUser:i(async f=>{let S=f.options?Vf(f.options):[],C=await Fi(py(f),S,f.multiSelect);return C===void 0?np:C},"askUser"),exitPlanMode:i(async f=>vn.current!=="plan"?"not-in-plan-mode":(await Oo("exit_plan_mode",{plan:f})).confirmed?(Km("accept-edits"),!0):!1,"exitPlanMode"),askUserMulti:i(async f=>{let S=f.questions,C={},M="__back__",E=0;for(;E<S.length;){let H=S[E],W=Vf(H.options);E>0&&W.push({label:Z("select.back_prev"),value:M});let K=`[${E+1}/${S.length}] ${H.question}`,ne=await Fi(K,W,H.multiSelect);if(ne===void 0)return;if(ne===M){E--;continue}C[H.question]=ne,E++}return C},"askUserMulti"),askUserInput:i(async f=>tw(f.question,f.default),"askUserInput"),onCompactStart:i(()=>{te()},"onCompactStart"),onCompactStats:i(f=>{la.current=f.tokensBefore,Qn(f.tokensAfter)},"onCompactStats"),onCompactedMessages:i((f,S)=>{n.messages=f,S?.artifactLedger&&S.artifactLedger.length>0&&(n.artifactLedger=Fa(n.artifactLedger??[],S.artifactLedger)),n.lineage=S?.anchor?Cw(n.lineage,f,S.anchor,S.postCompactAttachments??[]):En(f,n.lineage);let C=Bo(f);n.contextTokenSnapshot={currentTokens:C,baselineEstimatedTokens:C,source:"estimate"},hr(n),Qn(C),ml.current?.().catch(()=>{})},"onCompactedMessages"),onCompact:i(f=>{Le();let S=la.current??f;la.current=null;let C=Math.round(S/1e3);Mo({type:"info",icon:"\u2728",text:`Context auto-compacted (was ~${C}k tokens)`},"compact")},"onCompact"),onCompactEnd:i(()=>{la.current=null,Le()},"onCompactEnd"),onIterationEnd:i(f=>{f.scope!=="worker"&&(n.contextTokenSnapshot=f.contextTokenSnapshot),Qn(f.tokenCount)},"onIterationEnd")}),[Q,J,q,Pt,ue,et,Ue,De,O,ae,B,n,te,Le,v,Ie,_,ee,Ml,ht,Ll,Jy,Un,Qy,Zy,$l,ga,zr,Xr,Tn,P.currentTool]),Oo=i((f,S)=>{let C=e0(f,S);return Cr(),new Promise(M=>{Ao.current=M,Dl({tool:f,input:S,prompt:C})})},"showConfirmDialog");Fe(()=>(u(async(f,S,C)=>(await Oo(f.name,{...f.input,_reason:`[auto-mode] ${S}`,...C&&C.length>0?{_classifierSignals:C}:{}})).confirmed?"allow":"block"),m(f=>{Am(f)}),()=>{u(null),m(null)}),[]),Fe(()=>{p(B)},[B,p]);let Oa=i(async(f,S,C=n.lineage?At(n.lineage,n.lineage.activeEntryId):n.messages,M)=>{let E={...Vm(),getCostReport:F},W=Rr(n.gitRoot).getSystemPromptSnippet(),K=S0(f.context,n.gitRoot,n.contextTokenSnapshot,W);M&&M.length>0&&(K.inputArtifacts=[...M]),K.planModeBlockCheck=(ne,Ce)=>vn.current!=="plan"?null:Dr(ne,Ce,n.gitRoot??process.cwd());try{return await Ua({...f,session:{...f.session,initialMessages:C},context:K,events:E,abortSignal:Rt()},S)}finally{Lw()}},"runAgentRound"),kr=X(f=>{let S=En([...f],n.lineage);return n.lineage=S,S},[n]),Da=X(async f=>{if(n.messages.length===0)return;let S=ks(n.messages),C=hi(f??L.current);L.current=C,n.title=S,n.uiHistory=C;let M=n.lineage??kr(n.messages);n.lineage=M;let E={messages:n.messages,title:S,gitRoot:n.gitRoot??"",uiHistory:C,lineage:M,artifactLedger:n.artifactLedger};"appendSessionDelta"in r&&typeof r.appendSessionDelta=="function"?await r.appendSessionDelta(n.sessionId,E):await r.save(n.sessionId,E),Pf()&&$f("persist",Of(n.messages,M,{historyItems:ge.current,foregroundItems:Yt.current,streamingResponse:Re.current.currentResponse,streamingThinking:Re.current.thinkingContent,persistedUiHistory:L.current}))},[n,kr,r]),zm=X(()=>{if(pl.current)return pl.current;let f=(async()=>{try{for(;vo.current.requested;){vo.current.requested=!1;let S=vo.current.uiHistoryOverride;vo.current.uiHistoryOverride=void 0,await Da(S)}}finally{pl.current=null,vo.current.requested&&zm()}})();return pl.current=f,Wy.current=f,f},[Da]),Wi=X(f=>{if(f!==void 0){let S=hi(f);L.current=S,vo.current.uiHistoryOverride=S}return vo.current.requested=!0,zm()},[zm]),LE=X(async()=>{if(da.current)return da.current;let f=(async()=>{ot.current=!0,V(),Y(),q(),Ie(),De(),me(),ue(void 0),ze(!1),await Wy.current.catch(()=>{}),await ml.current?.().catch(()=>{}),Kr(!1),I&&w?.isRaw&&T(!1),w?.pause?.(),w?.unref?.(),y(),a()})();return da.current=f.finally(()=>{da.current=null}),da.current},[V,me,Ie,De,y,I,a,ue,ze,T,w,Y,q]);Fe(()=>(ml.current=Wi,()=>{ml.current=null}),[Wi]);let nw=X(f=>{if(f.length===0)return;let S=Xf(L.current,f);L.current=S,Wi(S)},[Wi]),Na=X(f=>{f.length!==0&&(z([...f]),nw(f))},[z,nw]),cu=X(f=>{f.length!==0&&(z([...f]),L.current=Xf(L.current,f))},[z]);Fe(()=>(Si.current=Na,()=>{Si.current=null}),[Na]);let rw=X(async f=>{n.messages=f.messages,n.contextTokenSnapshot=f.contextTokenSnapshot,kr(f.messages);let S=f.success===!1&&!f.interrupted,C=_().trim(),M=kC(f.messages,ee(),f.managedTask?.verdict.summary,f.lastText),E=[...Yt.current],H=E.length>0;Al(E);let W=H&&E.some(pe=>pe.type==="assistant"&&"text"in pe&&uo(String(pe.text??"")).length>0),K=!S&&M&&!W,ne=[...vi.current],Ce=S?[]:ne.length===0?Ek?Og(f):Og(f).filter(pe=>!$g(pe)):[],xt=H?[]:Cy({thinking:C,response:void 0,toolCalls:jt.current,toolNames:tr.current}),Vt=[...E.map(pe=>To(pe)),...xt,...S?[]:ne.map(pe=>To(pe)),...Ce.map(pe=>vk(pe)),...K?[{type:"assistant",text:f.interrupted?`${M}
|
|
426
428
|
|
|
427
|
-
[Interrupted]`:M}]:!M&&!W&&!f.interrupted&&!S?[{type:"info",text:"[No response text was produced for this round]"}]:[]],Ba=
|
|
429
|
+
[Interrupted]`:M}]:!M&&!W&&!f.interrupted&&!S?[{type:"info",text:"[No response text was produced for this round]"}]:[]],Ba=Xf(L.current,Vt);Ie(),me();let We=[...E.map(pe=>To(pe)),...xt,...S?[]:[...Ce.map(pe=>vk(pe)),...ne.map(pe=>To(pe))],...K?[{type:"assistant",text:f.interrupted?`${M}
|
|
428
430
|
|
|
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=[],
|
|
431
|
+
[Interrupted]`:M}]:!M&&!W&&!f.interrupted&&!S?[{type:"info",text:"[No response text was produced for this round]"}]:[]];z(We),tr.current=[],jt.current=[],Xr(),De(),ue(void 0),ht(void 0),ha(),Ro.current=[],vi.current=[],ma([]),j(),Wi(Ba).catch(()=>{})},[z,j,De,me,Ie,n,ee,_,Wi,kr,Xr,ha,ue,ht,P.currentIteration]),lu=X(async f=>{let S=f.trim();S&&(v({type:"user",text:S}),fl(C=>C+1),hr(n))},[v,n]),uu=X(async(f,S)=>{let C=$a.current;ot.current=!1,ua.current=!1,ca(!0);try{return await W0({initialPrompt:f,runRound:S,shiftPendingPrompt:$t,onRoundComplete:i(async M=>{$a.current===C&&await rw(M)},"onRoundComplete"),onBeforeQueuedRound:i(async M=>{ot.current=!1,ua.current=!1,await lu(M)},"onBeforeQueuedRound"),shouldContinue:i(M=>!ot.current&&M.success!==!1,"shouldContinue")})}finally{ca(!1)}},[rw,$t,lu]),Xm=X(async()=>{let f=$t();if(!f||!f.trim())return;let S=f.trim();await lu(S),await uu(S,async C=>Oa(Ze.current,C))},[Oa,uu,$t,lu]),Ym=X(f=>{let S=f[f.length-1];if(S?.role!=="assistant")return;let C=yc(S);z(C.map(gc))},[z]),ow=X(async(f,S)=>{let C=await _f({...Ze.current,provider:B.provider,thinking:B.thinking,reasoningMode:B.reasoningMode},f,S,M=>v({type:"info",text:M}));if(C.mode==="manual"){C.manualOutput&&v({type:"info",text:C.manualOutput}),await C.finalize();return}if(!C.prompt||!C.options){await C.finalize();return}ca(!0);try{let M=C.mode==="fork"?[]:n.lineage?At(n.lineage,n.lineage.activeEntryId):n.messages,E=$a.current,H=await Oa(C.options,C.prompt,M);if($a.current!==E)await C.finalize();else{let W=L.current,K=[];if(C.mode==="fork"){let ne=H.messages.find(xt=>xt.role==="user");ne&&n.messages.push(ne);let Ce=H.messages.slice().reverse().find(xt=>xt.role==="assistant");if(Ce){n.messages.push({role:"assistant",content:Ce.content}),kr(n.messages);for(let xt of yc(Ce)){let Vt=gc(xt);v(Vt),K.push(Vt)}}}else{n.messages=H.messages,n.contextTokenSnapshot=H.contextTokenSnapshot,kr(H.messages),Ym(H.messages);let ne=H.messages[H.messages.length-1];if(ne?.role==="assistant")for(let Ce of yc(ne))K.push(gc(Ce))}await Da(Xf(W,K)),Pf()&&$f("round-end",Of(n.messages,n.lineage,{historyItems:ge.current,foregroundItems:Yt.current,streamingResponse:Re.current.currentResponse,streamingThinking:Re.current.thinkingContent,persistedUiHistory:L.current})),await C.finalize()}}catch(M){let E=M instanceof Error?M:new Error(String(M));throw await C.finalize(E),ca(!1),E}ca(!1),await Xm()},[v,Ym,n,B.provider,B.thinking,Xm,Da,kr,Oa]),PE=X(async f=>{for(let S of f.pastedContents)if(S.type==="text"&&!S.content&&S.contentHash)try{let C=await kd(S.contentHash);C&&(S.content=C)}catch{}},[]),$E=X(async f=>{let{displayText:S,fullText:C,pastedContents:M}=f;if(!C.trim()||!wi||tt||Pe)return;for(let We of M){if(We.type!=="text"||We.content.length<1024)continue;let pe=KC(We.content);VC(pe,We.content)}if(tx(!1),oe){if(!lm)return;if(P.pendingInputs.length>=5){Mo({type:"info",icon:"\u23F3",text:`Queued follow-up limit reached (${5}). Wait for the next round or press Esc to remove the latest item.`},"queue-limit");return}if(F0(C)){Mo({type:"info",icon:"\u26A0",text:B0},H0);return}let We=P.currentTool;if(We&&hu(We)?.interruptBehavior==="cancel"){ke(C),V({preservePendingInputs:!0}),gl(""),hl(!0),fl(mn=>mn+1),hr(n);return}ke(C),gl(""),hl(!0),fl(pe=>pe+1),hr(n);return}let E=Ty(ee()),H=Yt.current.map(We=>To(We)),W=H.length>0;H.length>0&&(Al(Yt.current),cu(H)),!W&&E&&cu([{type:"assistant",text:E+`
|
|
430
432
|
|
|
431
|
-
[Interrupted]`}]),cu([{type:"user",text:S}]),gl(""),hl(!0),fl(We=>We+1),
|
|
433
|
+
[Interrupted]`}]),cu([{type:"user",text:S}]),gl(""),hl(!0),fl(We=>We+1),Pf()&&$f("turn-start",Of(n.messages,n.lineage,{historyItems:ge.current,foregroundItems:Yt.current,streamingResponse:Re.current.currentResponse,streamingThinking:Re.current.thinkingContent,persistedUiHistory:L.current})),ze(!0),ot.current=!1,ua.current=!1,++$a.current,xm(null),ct.current=null,wm.current=null,ht(void 0),ha(),Ro.current=[],vi.current=[],ma([]),xa(),Il(void 0),tr.current=[],jt.current=[],Xr(),me(),De(),ue(void 0),j(),_e(),hr(n),await new Promise(We=>setTimeout(We,50));let K=_s(C.trim());if(K){let We={exit:LE,saveSession:i(async()=>{if(n.messages.length>0){let U=ks(n.messages);n.title=U;let he=n.lineage??kr(n.messages);n.lineage=he,await r.save(n.sessionId,{messages:n.messages,title:U,gitRoot:n.gitRoot??"",uiHistory:L.current,lineage:he,artifactLedger:n.artifactLedger})}},"saveSession"),startNewSession:i(()=>{let U=Gc(),he=new Date().toISOString();n.sessionId=U,n.title="",n.uiHistory=[],n.contextTokenSnapshot=void 0,n.lineage=void 0,n.artifactLedger=void 0,L.current=[],n.createdAt=he,n.lastAccessed=he,Ze.current.session={...Ze.current.session,id:U},Qn(null),fe(),Vr([]),Id()?.reset(),se(U),g?.writer.update({sessionId:U})},"startNewSession"),loadSession:i(async U=>{let he=await r.load(U);return he?di(B,"Resuming a saved session",Yf)?(n.messages=he.messages,n.uiHistory=na(he.uiHistory),n.lineage=he.lineage,n.artifactLedger=he.artifactLedger,n.title=he.title,n.sessionId=U,n.contextTokenSnapshot=void 0,L.current=n.uiHistory??[],Qn(null),fe(),Vr([]),se(U),g?.writer.update({sessionId:U}),console.log(Ye.green(`[Session loaded: ${U}]`)),"loaded"):"blocked":"missing"},"loadSession"),listSessions:i(async()=>{let U=await r.list(n.gitRoot??void 0);if(U.length===0){console.log(Ye.dim(`
|
|
432
434
|
[No saved sessions]`));return}console.log(Ye.bold(`
|
|
433
435
|
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(),
|
|
436
|
+
`));for(let he of U.slice(0,10))console.log(` ${Ye.cyan(he.id)} ${Ye.dim(`(${he.msgCount} messages)`)} ${he.title.slice(0,40)}`);console.log()},"listSessions"),clearHistory:i(()=>{n.uiHistory=[],fe(),Vr([])},"clearHistory"),printHistory:i(()=>{if(n.messages.length===0){console.log(Ye.dim(`
|
|
435
437
|
[No conversation history]`));return}console.log(Ye.bold(`
|
|
436
438
|
Conversation History:
|
|
437
|
-
`));let U=n.messages.slice(-20);for(let he=0;he<U.length;he++){let
|
|
438
|
-
[No session tree available for this session]`));return}let he=
|
|
439
|
+
`));let U=n.messages.slice(-20);for(let he=0;he<U.length;he++){let Me=U[he],Ui=Ye.cyan(Me.role.padEnd(10)),aw=xc(Me.content),HE=aw.slice(0,60).replace(/\n/g," "),FE=aw.length>60?"...":"";console.log(` ${(he+1).toString().padStart(2)}. ${Ui} ${HE}${FE}`)}console.log()},"printHistory"),switchProvider:i((U,he)=>{nt(Me=>({...Me,provider:U,model:he})),Ze.current.provider=U,Ze.current.model=he},"switchProvider"),setThinking:i(U=>{let he=U?"auto":"off";nt(Me=>({...Me,thinking:U,reasoningMode:he})),Ze.current.thinking=U,Ze.current.reasoningMode=he},"setThinking"),setReasoningMode:i(U=>{let he=U!=="off";nt(Me=>({...Me,thinking:he,reasoningMode:U})),Ze.current.thinking=he,Ze.current.reasoningMode=U},"setReasoningMode"),setAgentMode:i(U=>{nt(he=>({...he,agentMode:U})),Ze.current.agentMode=U},"setAgentMode"),setPermissionMode:i(U=>{Km(U)},"setPermissionMode"),setRepoIntelligenceRuntime:i(U=>{nt(he=>({...he,...U.mode!==void 0?{repoIntelligenceMode:U.mode}:{},...U.endpoint!==void 0?{repointelEndpoint:U.endpoint??void 0}:{},...U.bin!==void 0?{repointelBin:U.bin??void 0}:{},...U.trace!==void 0?{repoIntelligenceTrace:U.trace}:{}})),U.mode!==void 0&&(process.env.KODAX_REPO_INTELLIGENCE_MODE=U.mode,Ze.current.context={...Ze.current.context,repoIntelligenceMode:U.mode}),U.trace!==void 0&&(U.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,Ze.current.context={...Ze.current.context,repoIntelligenceTrace:U.trace}),U.endpoint!==void 0&&(U.endpoint?process.env.KODAX_REPOINTEL_ENDPOINT=U.endpoint:delete process.env.KODAX_REPOINTEL_ENDPOINT),U.bin!==void 0&&(U.bin?process.env.KODAX_REPOINTEL_BIN=U.bin:delete process.env.KODAX_REPOINTEL_BIN)},"setRepoIntelligenceRuntime"),deleteSession:i(async U=>{await r.delete?.(U)},"deleteSession"),deleteAllSessions:i(async()=>{await r.deleteAll?.(n.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:i(async()=>{let U=await r.getLineage?.(n.sessionId);if(!U){console.log(Ye.dim(`
|
|
440
|
+
[No session tree available for this session]`));return}let he=kf(mu(U));console.log(Ye.bold(`
|
|
439
441
|
Session Tree:
|
|
440
|
-
`)),he.forEach(
|
|
441
|
-
[Switched to tree entry: ${U}]`)),console.log(Ye.dim(` Messages: ${
|
|
442
|
-
[${Ui}]`)),!0},"labelSessionBranch"),forkSession:i(async U=>{if(!di(B,"Forking a session branch",
|
|
443
|
-
[Forked session: ${
|
|
444
|
-
[Rewound session${U?` to ${U}`:" to previous turn"}]`)),console.log(Ye.dim(` Messages: ${
|
|
445
|
-
`)}),In){ze(!1),Y(),ze(!0),
|
|
442
|
+
`)),he.forEach(Me=>console.log(` ${Me}`)),console.log()},"printSessionTree"),switchSessionBranch:i(async U=>{if(!di(B,"Switching session branches",Yf))return"blocked";let Me=await r.setActiveEntry?.(n.sessionId,U,{summarizeCurrentBranch:!0});return Me?(n.messages=Me.messages,n.uiHistory=na(Me.uiHistory),n.title=Me.title,n.contextTokenSnapshot=void 0,L.current=n.uiHistory??[],Qn(null),fe(),Vr([]),console.log(Ye.green(`
|
|
443
|
+
[Switched to tree entry: ${U}]`)),console.log(Ye.dim(` Messages: ${Me.messages.length}`)),"switched"):"missing"},"switchSessionBranch"),labelSessionBranch:i(async(U,he)=>{if(!await r.setLabel?.(n.sessionId,U,he))return!1;let Ui=he&&he.trim()?`checkpoint label set: ${he.trim()}`:"checkpoint label cleared";return console.log(Ye.green(`
|
|
444
|
+
[${Ui}]`)),!0},"labelSessionBranch"),forkSession:i(async U=>{if(!di(B,"Forking a session branch",Yf))return"blocked";let Me=await r.fork?.(n.sessionId,U);if(!Me)return"failed";n.sessionId=Me.sessionId,n.messages=Me.data.messages,n.uiHistory=na(Me.data.uiHistory),n.title=Me.data.title,n.contextTokenSnapshot=void 0,L.current=n.uiHistory??[];let Ui=new Date().toISOString();return n.createdAt=Ui,n.lastAccessed=Ui,Ze.current.session={...Ze.current.session,id:Me.sessionId},Qn(null),fe(),Vr([]),se(Me.sessionId),g?.writer.update({sessionId:Me.sessionId}),console.log(Ye.green(`
|
|
445
|
+
[Forked session: ${Me.sessionId}]`)),console.log(Ye.dim(` Messages: ${Me.data.messages.length}`)),"forked"},"forkSession"),rewindSession:i(async U=>{if(!di(B,"Rewinding session",Yf))return"blocked";let Me=await r.rewind?.(n.sessionId,U);return Me?(n.messages=Me.messages,n.uiHistory=na(Me.uiHistory),n.title=Me.title,n.contextTokenSnapshot=void 0,L.current=n.uiHistory??[],Qn(null),fe(),Vr([]),console.log(Ye.green(`
|
|
446
|
+
[Rewound session${U?` to ${U}`:" to previous turn"}]`)),console.log(Ye.dim(` Messages: ${Me.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:i(()=>F.current?.()??null,"getCostReport"),getAutoModeStats:i(()=>{if(sn(vn.current))return l.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:i(U=>{sn(vn.current)&&(l.getGuardrail().setEngine(U),Am(U))},"setAutoModeEngine"),createKodaXOptions:i(()=>({...Ze.current,provider:B.provider,model:B.model,thinking:B.thinking,reasoningMode:B.reasoningMode,agentMode:B.agentMode,guardrails:wy(vn.current,l),events:Vm()}),"createKodaXOptions"),reloadAgentsFiles:i(async()=>{let U=await rp({cwd:process.cwd(),projectRoot:n.gitRoot??void 0});return h(U),U},"reloadAgentsFiles"),startCompacting:i(()=>{te()},"startCompacting"),stopCompacting:i(()=>{Le()},"stopCompacting"),onCompactStats:i(U=>{la.current=U.tokensBefore,Qn(U.tokensAfter)},"onCompactStats"),confirm:i(async U=>(await Oo("confirm",{_alwaysConfirm:!0,_message:U})).confirmed,"confirm"),ui:{select:i(async(U,he)=>_E(U,he),"select"),confirm:i(async U=>(await Oo("confirm",{_alwaysConfirm:!0,_message:U})).confirmed,"confirm"),input:i(async(U,he)=>tw(U,he),"input")}},pe=[],mn=console.log;console.log=(...U)=>{let he=U.map(Me=>typeof Me=="string"?Me:String(Me)).join(" ");pe.push(he)};let In;try{let U=await Ls(K,n,We,B);typeof U=="object"&&U!==null&&"invocation"in U&&(In=U.invocation)}finally{console.log=mn}if(pe.length>0&&v({type:"info",text:pe.join(`
|
|
447
|
+
`)}),In){ze(!1),Y(),ze(!0),_e(),ae();try{await ow(In,C.trim())}catch(U){let he=U instanceof Error?U:new Error(String(U)),Me=he.name==="AbortError"||he.message.includes("aborted")||he.message.includes("ABORTED");console.log=mn,Me?iu():Na([{type:"error",text:he.message}])}finally{ze(!1),Y(),Ie()}return}ze(!1),Y();return}let ne=await kg(C.trim());if(C.trim().startsWith("!")&&Vc(ne)){ze(!1),Y();return}let Ce=Ze.current.context?.executionCwd??process.cwd(),xt=i(We=>{We.length!==0&&Na(We.map(pe=>({type:"info",text:pe})))},"emitArtifactWarnings");ae();let Vt=[],Ba=console.log;console.log=(...We)=>{let pe=We.map(mn=>typeof mn=="string"?mn:String(mn)).join(" ");Vt.push(pe)};try{await uu(ne,async We=>{let pe=zc(We,Ze.current.context?.executionCwd??process.cwd());return xt(pe.warnings),Oa(Ze.current,pe.promptText,n.messages,pe.inputArtifacts)})}catch(We){let pe=We instanceof Error?We:new Error(String(We));if(pe.name==="AbortError"||pe.message.includes("aborted")||pe.message.includes("ABORTED"))console.log=Ba,iu();else{let In=pe.message;pe.message.includes("rate limit")||pe.message.includes("Rate limit")?In=`[Rate Limit] ${pe.message}
|
|
446
448
|
Suggestion: Wait a moment and try again, or switch provider with /mode`:pe.message.includes("API key")||pe.message.includes("not configured")?In=`[Configuration Error] ${pe.message}
|
|
447
449
|
Suggestion: Set the required API key environment variable`:pe.message.includes("network")||pe.message.includes("ECONNREFUSED")||pe.message.includes("ETIMEDOUT")?In=`[Network Error] ${pe.message}
|
|
448
450
|
Suggestion: Check your internet connection`:(pe.message.includes("token")||pe.message.includes("context too long"))&&(In=`[Context Error] ${pe.message}
|
|
449
451
|
Suggestion: Use /clear to start fresh`),console.log=Ba,st.current.workerId?Cn({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:In,timestamp:Date.now()}):Na([{type:"error",text:In}])}}finally{if(console.log=Ba,Vt.length>0){let pe=Vt.filter((mn,In,U)=>U.indexOf(mn)===In);v({type:"info",text:pe.join(`
|
|
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=
|
|
452
|
+
`)})}if(!ot.current){let pe=ga(N.Cancelled,()=>({error:"Run ended before the tool result was observed.",output:void 0}));pe.length>0&&st.current.workerId&&pe.forEach(mn=>Un(mn))}ze(!1),Y(),me(),Ie();let We=Bo(n.messages);n.contextTokenSnapshot={currentTokens:We,baselineEstimatedTokens:We,source:"estimate"},Qn(We)}},[wi,n,B,lm,P.pendingInputs.length,r,tt,Pe,y,a,v,fe,_e,Y,me,Vm,ow,Rt,ee,_,cu,Ym,Da,kr,uu,Xm,te,Le,Xr,ga,Un,xa]),OE=le(uf,{left:le(cf,{items:kx}),right:le(lf,{items:Rx}),queued:le(wg,{pendingInputs:P.pendingInputs}),stashNotice:le(yf,{text:Ql}),notifications:le(gf,{notifications:Jl}),inlineNotices:Om.length>0?le(Sg,{notices:Om}):void 0,activityBar:eo||oe&&vr.shouldRender?Zt(R,{paddingX:1,flexDirection:"row",children:[Zt(R,{flexGrow:1,children:[eo?.showSpinner?le(Dn,{color:re("dark").colors.accent}):null,eo?Zt(b,{color:eo.kind==="waiting"?re("dark").colors.warning:re("dark").colors.accent,children:[eo.showSpinner?" ":"",eo.text]}):null,eo?.showSpinner&&P.roundStartedAt!=null?le(Cb,{roundStartedAt:P.roundStartedAt,charCount:P.currentResponse.length,theme:re("dark")}):null]}),oe&&vr.shouldRender?le(b,{dimColor:!0,children:`${vr.completedCount}/${vr.totalCount} completed`}):null]}):void 0,todoSurface:oe&&vr.shouldRender?le(R,{paddingX:1,children:le(Vv,{viewModel:vr})}):void 0,composer:le(lg,{onSubmit:$E,onHistoryRecall:PE,onPopPendingInputs:i(()=>{let f=ce();if(f.length!==0)return f.join(`
|
|
451
453
|
---
|
|
452
|
-
`)},"onPopPendingInputs"),prompt:">",placeholder:
|
|
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
|
|
454
|
+
`)},"onPopPendingInputs"),prompt:">",placeholder:JI({isLoading:oe,canQueueFollowUps:lm,waitingReason:_m}),focus:!tt&&!Pe&&!lt,cwd:process.cwd(),gitRoot:e.context?.gitRoot||n.gitRoot,onInputChange:SE}),inlineSuggestions:IE,helpSurface:ex?le(dg,{sections:Df()}):void 0,taskBar:Ra?le(xf,{items:Pi.backgroundTask.items,overflowLabel:Pi.backgroundTask.overflowLabel,ctaHint:Pi.backgroundTask.ctaHint,showSpinner:oe}):void 0,statusLine:le(R,{children:le(Fs,{...Yl,viewModel:vx})}),inlineDialogs:RE}),DE=le(uf,{left:le(cf,{items:kx}),right:le(lf,{items:Rx}),stashNotice:le(yf,{text:Ql}),notifications:le(gf,{notifications:Jl}),composer:le(Uv,{searchActive:lt,selectionActive:!!(br||Qe),showAllActive:Et,searchQuery:qt,searchCurrent:Mt.length>0?Qr+1:0,searchCount:Mt.length,searchDetailText:Em,pendingLiveUpdates:Ta,secondaryText:bE}),taskBar:Ra?le(xf,{items:Pi.backgroundTask.items,overflowLabel:Pi.backgroundTask.overflowLabel,ctaHint:Pi.backgroundTask.ctaHint,showSpinner:ut}):void 0,statusLine:le(R,{children:le(Fs,{...Yl,viewModel:Pm})})}),qm=X(f=>le(jv,{banner:f?.bannerVisible?le(Sy,{...Lo}):void 0,items:ba,isLoading:Jt,viewportRows:Nt.messageRows,viewportWidth:k,scrollOffset:Hn,windowed:!!f?.rendererWindow,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Ia:Bx,maxLines:Tt,selectedTextRanges:vm?Cl?.rowRanges:void 0,onMetricsChange:eu,onVisibleRowsChange:tu}),[Lo,ba,Jt,eu,tu,Hn,Bx,k,Tt,Cl?.rowRanges,Nt.messageRows,vm]),Jm=X(f=>le(Gv,{banner:f?.bannerVisible?le(Sy,{...Lo}):void 0,items:Ca,browse:{hintText:Zr.browseHintText},selection:Zl,search:Tx,isLoading:ut,isThinking:Se.isThinking,thinkingCharCount:Se.thinkingCharCount,thinkingContent:Se.thinkingContent,streamingResponse:Se.currentResponse,currentTool:Se.currentTool,activeToolCalls:Se.activeToolCalls,toolInputCharCount:Se.toolInputCharCount,toolInputContent:Se.toolInputContent,iterationHistory:Se.iterationHistory,currentIteration:Se.currentIteration,isCompacting:Se.isCompacting,agentMode:B.agentMode,managedPhase:ut?G?.phase:void 0,managedHarnessProfile:ut?G?.harnessProfile:void 0,managedWorkerTitle:ut?G?.activeWorkerTitle:void 0,managedRound:ut?G?.currentRound:void 0,managedMaxRounds:ut?G?.maxRounds:void 0,managedGlobalWorkBudget:ut?G?.globalWorkBudget:void 0,managedBudgetUsage:ut?G?.budgetUsage:void 0,managedBudgetApprovalRequired:ut?G?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Se.lastLiveActivityLabel,viewportRows:Nt.messageRows,viewportWidth:k,scrollOffset:Hn,windowed:!!f?.windowed,animateSpinners:!!f?.rendererWindow&&Oi,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Ia:jl,maxLines:Tt,showDetailedTools:Et,showAllContent:Et,selectedItemId:bn.selectionEnabled?Qe:void 0,selectedTextRanges:Io?.rowRanges,expandedItemKeys:bn.selectionEnabled?dn:void 0,onMetricsChange:eu,onVisibleRowsChange:tu}),[Lo,B.agentMode,ut,dn,s.transcriptSpinnerAnimation,eu,tu,Hn,lx,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,Ia,jl,Zr.browseHintText,Qe,Zl,k,Oi,Ca,Tt,Se.activeToolCalls,Se.currentIteration,Se.currentResponse,Se.currentTool,Se.isCompacting,Se.isThinking,Se.iterationHistory,Se.lastLiveActivityLabel,Se.thinkingCharCount,Se.thinkingContent,Se.toolInputCharCount,Se.toolInputContent,Io?.rowRanges,Tx,Et,Nt.messageRows]),NE=ie?Jm({bannerVisible:!1,windowed:Ct}):qm({bannerVisible:!1}),iw=ie?DE:OE,BE=s.enabled&&_o,sw=Zt(R,{flexDirection:"column",width:k,flexShrink:0,flexGrow:BE?1:0,children:[le(Fg,{currentConfig:B,setCurrentConfig:nt,isLoading:oe,abort:V,stopThinking:q,clearThinkingContent:Ie,setCurrentTool:ue,setIsLoading:ze,onToggleHelp:wE,setShowHelp:tx,onSetThinking:i(f=>{Ze.current.thinking=f},"onSetThinking"),onSetReasoningMode:i(f=>{Ze.current.reasoningMode=f,Ze.current.thinking=f!=="off"},"onSetReasoningMode"),onToggleTranscriptMode:EE,onOpenTranscriptSearch:Hm,canOpenTranscriptSearch:ie&&!tt&&!Pe,isInteractiveDialogActive:!!(tt||Pe),onSetAgentMode:i(f=>{Ze.current.agentMode=f},"onSetAgentMode"),onSetPermissionMode:i(f=>{Km(f)},"onSetPermissionMode"),isInputEmpty:um,onSavePermissionMode:Tc}),cm&&(s.enabled?null:le(ws,{items:[1],children:i(()=>le(Sy,{...Lo},"banner"),"children")})),_o?le(ig,{width:k,stickyHeader:Zr.stickyHeader,jumpToLatest:Zr.jumpToLatest,transcript:!s.enabled||!Ct?ie?Jm({bannerVisible:!1}):qm({bannerVisible:!1}):void 0,renderTranscriptWindow:s.enabled&&Ct?f=>(()=>{let C=_a(f).contentWindow;return ie?Jm({bannerVisible:!1,windowed:!0,rendererWindow:C}):qm({bannerVisible:!1,rendererWindow:C})})():void 0,overlay:Um,scrollTop:Hn,scrollHeight:Aa,viewportHeight:Nt.messageRows,stickyScroll:!ie&&!Yr&&mm,overscanRows:CH,scrollRef:aE,onWindowChange:kE,onScrollTopChange:lE,onStickyChange:uE,footer:iw}):Zt(xH,{children:[Zt(R,{flexDirection:"column",flexGrow:1,children:[NE,Um?le(R,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:Um}):null]}),iw]})]});return bm?le(Vp,{mouseTracking:qr.usesRendererMouseTracking,children:sw}):sw},"InkREPLInner"),RH=i(e=>{let t=process.cwd(),n=e.options?.context?.gitRoot??void 0;return le(mf,{children:le(wf,{children:le(id,{children:le(Bg,{children:le(Nh,{cwd:t,gitRoot:n,children:le(kH,{...e})})})})})})},"InkREPL");function EH(){return process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function"}i(EH,"isRawModeSupported");async function by(e){if(!EH())throw new ep("Interactive mode requires a TTY with raw mode support.",['kodax -p "your task" # Run a single task',"kodax -c # Continue last session","kodax -r # Resume session"]);let t=e.storage??new Ks,n=Go(),r=Ko(),o=Vo(n,r),{prepareRuntimeConfig:s,getGitRoot:a}=await import("./utils-3ISOUEFC.js"),{loadCompactionConfig:c}=await import("./compaction-config-YU7SI6L6.js"),{resolveProvider:l}=await import("./dist-DS2KIZQG.js"),u=s(),m=e.provider??u.provider??du,p=e.model??u.model,h=wH(e,u),g=e.agentMode??u.agentMode??"ama",y=h!=="off",x=lr(u.permissionMode,"accept-edits")??"accept-edits",w=pu(),T=u.repoIntelligenceTrace===!0,I={provider:m,model:p,thinking:y,reasoningMode:h,agentMode:g,permissionMode:x,repoIntelligenceMode:w.mode,repointelEndpoint:w.endpoint,repointelBin:w.bin,repoIntelligenceTrace:T},A=e.session?.id,$=[],F,D,v,z="",fe=await a().catch(()=>null)??void 0,se=fu({meta:{cwd:process.cwd(),startedAt:Date.now()}});if(se){let Q=i(()=>{se.shutdown()},"teamModeCleanup");process.on("exit",Q),process.on("SIGTERM",Q)}try{let{bootstrapConstructionRuntime:Q}=await import("./construction-bootstrap-6UN3OY7X.js"),J=await Q(fe??process.cwd());if(J.loaded>0||J.failed>0||J.tampered>0){let q=J.failed>0?`; ${J.failed} failed (see warnings above)`:"",Ie=J.tampered>0?`; ${J.tampered} skipped due to manifest contentHash mismatch \u2014 re-stage and re-activate to re-approve`:"";console.log(Ye.dim(`[Constructed] Rehydrated ${J.loaded} active tool(s)${q}${Ie}.`))}if(J.markdownLoaded>0||J.markdownFailures.length>0){console.log(Ye.dim(`[Agents] Loaded ${J.markdownLoaded} markdown agent(s).`));for(let q of J.markdownFailures)console.warn(Ye.yellow(`[Agents] Skipped ${q.path}: ${q.reason}`))}}catch(Q){console.warn(Ye.yellow(`[Constructed] Bootstrap failed: ${Q.message}. Self-construction disabled this session.`))}let ge;try{let Q=await c(fe),J=l(m);ge={contextWindow:Q.contextWindow??J.getContextWindow?.()??2e5,triggerPercent:Q.triggerPercent,enabled:Q.enabled,userOverrideContextWindow:Q.contextWindow}}catch{}if(e.session?.id&&!e.session.resume){let Q=await t.load(e.session.id);Q&&($=Q.messages,F=na(Q.uiHistory),D=Q.lineage,v=Q.artifactLedger,z=Q.title,A=e.session.id,console.log(Ye.green(`[Session loaded: ${e.session.id}]`)))}else if(e.session?.resume||e.session?.autoResume){let Q=await t.list(fe);if(Q.length>0){let J=Q[0];if(J){let q=await t.load(J.id);q&&($=q.messages,F=na(q.uiHistory),D=q.lineage,v=q.artifactLedger,z=q.title,A=J.id,console.log(Ye.green(`[Continuing session: ${J.id}]`)))}}}let L=await jc({sessionId:A,gitRoot:fe,existingMessages:$,existingUiHistory:F,existingLineage:D,existingArtifactLedger:v});L.title=z,se?.writer.update({sessionId:L.sessionId});let P={current:await rp({cwd:process.cwd(),projectRoot:fe??void 0})},Re={current:null},_e={current:null},Y={current:I},V=gd(),ae=await Kc({askUser:i(async(Q,J,q)=>{let Ie=Re.current;return Ie?Ie(Q,J,q):"block"},"askUser"),projectRoot:fe??process.cwd(),getAgentsFiles:i(()=>P.current,"getAgentsFiles"),getCurrentProviderName:i(()=>Y.current.provider,"getCurrentProviderName"),getCurrentModel:i(()=>Y.current.model,"getCurrentModel"),getCurrentPermissionMode:i(()=>Y.current.permissionMode,"getCurrentPermissionMode"),autoModeSettings:V,log:i((Q,J)=>{Q==="warn"?console.warn(Ye.yellow(J)):console.log(Ye.dim(J))},"log"),onEngineChange:i(Q=>{_e.current?.(Q)},"onEngineChange"),extraCollectors:[mc]});try{let Q=process.stdout,J=process.stdin;import("./paste-5DSTHQGK.js").then(Ue=>Ue.prunePasteTmpDir()).catch(()=>{});let q=!1,{waitUntilExit:Ie,cleanup:ue}=qu(le(RH,{options:e,config:I,context:L,storage:t,compactionInfo:ge,rendererMode:r,fullscreenPolicy:o,autoModeBootstrap:ae,setAutoModeAskUser:i(Ue=>{Re.current=Ue},"setAutoModeAskUser"),setAutoModeEngineChange:i(Ue=>{_e.current=Ue},"setAutoModeEngineChange"),setCurrentConfigRef:i(Ue=>{Y.current=Ue},"setCurrentConfigRef"),onAgentsFilesReload:i(Ue=>{P.current=Ue},"onAgentsFilesReload"),teamModeHandle:se,onExit:i(()=>{q=!0},"onExit")}),{stdout:Q,stdin:J,exitOnCtrlC:!1,patchConsole:!1,maxFps:30,shellMode:o.enabled?o.promptShell:"main-screen"});await Ie(),ue(),se?.shutdown(),J.isTTY===!0&&typeof J.setRawMode=="function"&&J.isRaw&&J.setRawMode(!1),J.pause?.(),J.unref?.(),q&&console.log(Ye.dim(`
|
|
455
|
+
[Exiting KodaX...]`));let et=e.hardExitOnClose??process.env.VITEST!=="true";if(q&&et){let Ue=process.exitCode??0,De=!1,me=i(()=>{De||(De=!0,process.exit(Ue))},"requestProcessExit");setTimeout(me,0).unref?.(),Q.write("",me);return}}catch(Q){throw Q instanceof Error&&Q.message.includes("Raw mode")?new ep("Interactive mode failed to start.",['kodax -p "your task" # Run a single task',"kodax -c # Continue last session"]):Q}}i(by,"runInkInteractiveMode");import Sn from"chalk";var Pk=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],$k=["\x1B[36m","\x1B[35m","\x1B[34m"],Zc=null,ra=!1;function Qc(){let e=0,t=0,n=!1,r="Thinking...",o=i(()=>{if(n)return;let c=$k[t%$k.length],l="\x1B[0m",u=Pk[e%Pk.length];process.stdout.write(`\r${c}${u}${l} ${r}`)},"renderFrame"),s=setInterval(()=>{e++,e%10===0&&t++,o()},80);o();let a={stop:i(()=>{n||(n=!0,clearInterval(s),process.stdout.write("\r\x1B[K"))},"stop"),isStopped:i(()=>n,"isStopped"),updateText:i(c=>{r=c},"updateText")};return Zc=a,a}i(Qc,"startWaitingDots");function MH(e=!0){let t=null,n=0,r=!1;return{onSessionStart:i(s=>{console.log(e?Sn.cyan(`[KodaX] Provider: ${s.provider} | Session: ${s.sessionId}`):Sn.cyan(`[KodaX] Provider: ${s.provider}`))},"onSessionStart"),onTextDelta:i(s=>{t&&(t.stop(),t=null),n=0,process.stdout.write(s),r=!0},"onTextDelta"),onThinkingDelta:i(s=>{n+=s.length,t||(t=Qc()),t.updateText(`Thinking... (${n} chars)`)},"onThinkingDelta"),onThinkingEnd:i(s=>{if(t&&(t.stop(),t=null),s){let a=s.replace(/\n/g," "),c=a.length>100?a.slice(0,100)+"...":a;console.log(Sn.dim(`[Thinking] ${c}`))}},"onThinkingEnd"),onToolUseStart:i(s=>{t||(ra||(process.stdout.write(`
|
|
454
456
|
`),ra=!0),t=Qc()),t.updateText(`Executing ${s.name}...`)},"onToolUseStart"),onToolInputDelta:i((s,a,c)=>{let l=a.length;t&&!t.isStopped()?t.updateText(`Receiving ${s}... (${l} chars)`):(!t||t.isStopped())&&(ra||(process.stdout.write(`
|
|
455
457
|
`),ra=!0,r=!1),t=Qc(),t.updateText(`Receiving ${s}... (${l} chars)`))},"onToolInputDelta"),onToolResult:i(s=>{t&&(t.stop(),t=null),console.log(Sn.green(`[Result] ${s.content.slice(0,300)}${s.content.length>300?"...":""}`))},"onToolResult"),onRepoIntelligenceTrace:i(s=>{t&&(t.stop(),t=null),console.log(Sn.dim(`[RepoIntel] ${s.summary}`))},"onRepoIntelligenceTrace"),onStreamEnd:i(()=>{Zc&&!Zc.isStopped()&&Zc.stop(),Zc=null,ra=!1,r&&(console.log(),r=!1),(!t||t.isStopped())&&(t=Qc(),t.updateText("Processing..."))},"onStreamEnd"),onIterationStart:i((s,a)=>{t&&!t.isStopped()&&t.stop(),ra=!1,r=!1,console.log(Sn.magenta(`
|
|
456
458
|
[Assistant]`)),t=Qc()},"onIterationStart"),onCompactStart:i(()=>{console.log(Sn.dim(`
|
|
457
459
|
[KodaX] Compacting context...`))},"onCompactStart"),onCompact:i(s=>{console.log(Sn.dim(`[KodaX] Compaction finished (${s} tokens).`))},"onCompact"),onCompactEnd:i(()=>{},"onCompactEnd"),onRetry:i((s,a,c)=>{console.log(Sn.yellow(`[KodaX] Retry ${a}/${c}: ${s}`))},"onRetry"),onProviderRecovery:i(s=>{let a=s.recoveryAction==="non_streaming_fallback"?"switching to non-streaming fallback":s.recoveryAction==="manual_continue"?"awaiting manual continue":`recovering ${s.attempt}/${s.maxAttempts}`;console.log(Sn.yellow(`[KodaX] ${a} (${s.errorClass}, ${s.stage})`))},"onProviderRecovery"),onComplete:i(()=>{t&&(t.stop(),t=null),console.log(Sn.green(`
|
|
458
460
|
[KodaX] Done!`))},"onComplete"),onError:i(s=>{t&&(t.stop(),t=null),console.log(Sn.red(`
|
|
459
461
|
[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(
|
|
461
|
-
`)}i(
|
|
462
|
+
[Scout] Completion marked uncertain \u2014 signals: ${s.signals.join(", ")}. Verify the result before continuing.`))},"onScoutSuspiciousCompletion"),beforeToolExecute:i(async(s,a)=>!0,"beforeToolExecute")}}i(MH,"createCliEvents");function mt(e,t){e.write(`${JSON.stringify(t)}
|
|
463
|
+
`)}i(mt,"writeJsonLine");function AH(e){return{type:"error",name:e.name,message:e.message,stack:e.stack}}i(AH,"serializeError");function _H(e={}){let t=e.stdout??process.stdout,n=e.stderr??process.stderr;return{onSessionStart:i(r=>{mt(t,{type:"session.start",provider:r.provider,sessionId:r.sessionId})},"onSessionStart"),onIterationStart:i((r,o)=>{mt(t,{type:"iteration.start",iter:r,maxIter:o})},"onIterationStart"),onIterationEnd:i(r=>{mt(t,{type:"iteration.end",iter:r.iter,maxIter:r.maxIter,tokenCount:r.tokenCount,tokenSource:r.tokenSource,usage:r.usage,contextTokenSnapshot:r.contextTokenSnapshot})},"onIterationEnd"),onTextDelta:i(r=>{mt(t,{type:"text.delta",text:r})},"onTextDelta"),onThinkingDelta:i(r=>{mt(t,{type:"thinking.delta",text:r})},"onThinkingDelta"),onThinkingEnd:i(r=>{mt(t,{type:"thinking.end",thinking:r})},"onThinkingEnd"),onToolUseStart:i(r=>{mt(t,{type:"tool.start",id:r.id,name:r.name,input:r.input})},"onToolUseStart"),onToolInputDelta:i((r,o,s)=>{mt(t,{type:"tool.input.delta",toolName:r,partialJson:o,toolId:s?.toolId})},"onToolInputDelta"),onToolResult:i(r=>{mt(t,{type:"tool.result",id:r.id,name:r.name,content:r.content})},"onToolResult"),onStreamEnd:i(()=>{mt(t,{type:"stream.end"})},"onStreamEnd"),onCompactStart:i(()=>{mt(t,{type:"compact.start"})},"onCompactStart"),onCompact:i(r=>{mt(t,{type:"compact.finish",estimatedTokens:r})},"onCompact"),onCompactStats:i(r=>{mt(t,{type:"compact.stats",tokensBefore:r.tokensBefore,tokensAfter:r.tokensAfter})},"onCompactStats"),onCompactEnd:i(()=>{mt(t,{type:"compact.end"})},"onCompactEnd"),onRetry:i((r,o,s)=>{mt(t,{type:"retry",reason:r,attempt:o,maxAttempts:s})},"onRetry"),onProviderRecovery:i(r=>{mt(t,{type:"provider.recovery",stage:r.stage,reasonCode:r.errorClass,attempt:r.attempt,maxAttempts:r.maxAttempts,delayMs:r.delayMs,nextAt:Date.now()+r.delayMs,recoveryAction:r.recoveryAction,fallbackUsed:r.fallbackUsed})},"onProviderRecovery"),onProviderRateLimit:i((r,o,s)=>{mt(t,{type:"provider.rate_limit",attempt:r,maxRetries:o,delayMs:s})},"onProviderRateLimit"),onRepoIntelligenceTrace:i(r=>{mt(t,{type:"repo_intelligence.trace",stage:r.stage,summary:r.summary,capability:r.capability,trace:r.trace})},"onRepoIntelligenceTrace"),onToolProgress:i(r=>{mt(t,{type:"tool.progress",id:r.id,message:r.message})},"onToolProgress"),onManagedTaskStatus:i(r=>{mt(t,{type:"managed_task.status",agentMode:r.agentMode,harnessProfile:r.harnessProfile,phase:r.phase,activeWorkerId:r.activeWorkerId,activeWorkerTitle:r.activeWorkerTitle,childFanoutClass:r.childFanoutClass,childFanoutCount:r.childFanoutCount,currentRound:r.currentRound,maxRounds:r.maxRounds,note:r.note,detailNote:r.detailNote,globalWorkBudget:r.globalWorkBudget,budgetUsage:r.budgetUsage,budgetApprovalRequired:r.budgetApprovalRequired})},"onManagedTaskStatus"),onScoutSuspiciousCompletion:i(r=>{mt(t,{type:"scout.suspicious_completion",confidence:r.confidence,signals:r.signals,sessionId:r.sessionId,lastTextPreview:r.lastTextPreview})},"onScoutSuspiciousCompletion"),onComplete:i(()=>{mt(t,{type:"complete"})},"onComplete"),onError:i(r=>{mt(n,AH(r))},"onError")}}i(_H,"createJsonEvents");import{jsx as pt,jsxs as cn}from"react/jsx-runtime";import DH,{useMemo as el}from"react";var vy=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@.*$/,Ok=/^---\s+(.+)$/;function Dk(e){if(!e)return[];let t=e.split(`
|
|
462
464
|
`),n=[],r=[],o=[],s=!1,a=null,c=null,l=0,u=0,m=i(()=>{if(r.length===0)return;let h=r.join(`
|
|
463
465
|
`);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=
|
|
465
|
-
`),u=l.map(
|
|
466
|
+
`),addedLines:l,removedLines:u,filePath:c}),o=[],l=0,u=0,c=null)},"flushDiff");for(let h=0;h<t.length;h++){let g=t[h];if(!s){let w=Ok.exec(g);if(w){let T=Math.min(h+3,t.length-1),I=!1;for(let A=h+1;A<=T;A++)if(t[A]?.startsWith("+++ ")||vy.test(t[A]??"")){I=!0;break}if(I){m(),s=!0,a=w[1]??null,c=a,o.push(g);continue}}if(vy.test(g)){m(),s=!0,o.push(g);continue}r.push(g);continue}let y=Ok.exec(g);if(y){let w=Math.min(h+3,t.length-1),T=!1;for(let I=h+1;I<=w;I++)if(t[I]?.startsWith("+++ ")||vy.test(t[I]??"")){T=!0;break}if(T){p(),c=y[1]??null,o.push(g);continue}}let x=g[0];if(x==="+"||x==="-"||x===" "||x==="@"||g===""){x==="+"&&!g.startsWith("+++ ")&&l++,x==="-"&&!g.startsWith("--- ")&&u++,o.push(g);continue}p(),s=!1,a=null,r.push(g)}return p(),m(),n}i(Dk,"parseUnifiedDiff");function Nk(e){return e?/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/m.test(e):!1}i(Nk,"containsUnifiedDiff");import{jsxs as oa,jsx as LH}from"react/jsx-runtime";import PH from"react";function $H(e){return e.startsWith("+++ ")?{text:e,kind:"file-header"}:e.startsWith("--- ")?{text:e,kind:"file-header"}:e.startsWith("@@ ")?{text:e,kind:"hunk-header"}:e.startsWith("+")?{text:e,kind:"add"}:e.startsWith("-")?{text:e,kind:"remove"}:{text:e,kind:"context"}}i($H,"classifyLine");function OH(e,t){switch(e){case"add":return t.colors.success;case"remove":return t.colors.error;case"hunk-header":case"file-header":return t.colors.dim;default:return}}i(OH,"colorFor");var Iy=PH.memo(({text:e,addedLines:t,removedLines:n,filePath:r,theme:o,maxLines:s=16,extremeThreshold:a=200})=>{let c=o??re("dark"),l=e.split(`
|
|
467
|
+
`),u=l.map($H),m=`(${t>0?`+${t}`:"\xB10"} ${n>0?`-${n}`:""})`.trim();if(l.length>a)return oa(R,{flexDirection:"column",marginLeft:4,children:[r&&oa(b,{dimColor:!0,children:[r," ",m]}),oa(b,{dimColor:!0,children:["[diff too large to render inline \u2014 ",l.length," lines, ",t,"+ / ",n,"-]"]})]});let p,h=0;if(l.length>s){let g=Math.floor(s/2),y=u.slice(0,g),x=u.slice(-g);h=l.length-y.length-x.length,p=[...y,{text:"",kind:"context"},...x]}else p=u;return oa(R,{flexDirection:"column",marginLeft:4,children:[r&&oa(b,{dimColor:!0,children:[r," ",m]}),p.map((g,y)=>{if(y===Math.floor(s/2)&&h>0&&g.kind==="context"&&g.text==="")return oa(b,{dimColor:!0,children:["... ",h," lines collapsed ..."]},`collapse-${y}`);let w=OH(g.kind,c);return LH(b,{color:w,children:g.text||" "},y)})]})});Iy.displayName="DiffHunk";function Bk(e){switch(e){case N.Scheduled:return"\u25CB";case N.Validating:return"\u25D0";case N.AwaitingApproval:return"\u23F8";case N.Executing:return"\u25CF";case N.Success:return"\u2713";case N.Error:return"\u2717";case N.Cancelled:return"\u2298";default:return"?"}}i(Bk,"getStatusIcon");function Hk(e,t){switch(e){case N.Scheduled:case N.Validating:return t.colors.dim;case N.AwaitingApproval:return t.colors.accent;case N.Executing:return t.colors.primary;case N.Success:return t.colors.success??t.colors.primary;case N.Error:return t.colors.error;case N.Cancelled:return t.colors.dim;default:return t.colors.text}}i(Hk,"getStatusColor");function NH(e,t){if(!t)return"";let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(NH,"formatDuration");function BH(e){if(!e)return"";let t=JSON.stringify(e);return t.length<=50?t:t.slice(0,47)+"..."}i(BH,"formatInputSummary");var HH=i(({status:e,theme:t})=>{let n=t??el(()=>re("dark"),[]),r=Bk(e),o=Hk(e,n);return pt(b,{color:o,children:r})},"ToolStatusBadge"),Fk=i(({progress:e,width:t=20,theme:n})=>{let r=n??el(()=>re("dark"),[]),o=Math.max(0,Math.min(100,e)),s=Math.round(o/100*t),a=t-s,c="\u2588".repeat(s),l="\u2591".repeat(a);return cn(R,{children:[pt(b,{color:r.colors.primary,children:c}),pt(b,{dimColor:!0,children:l}),cn(b,{children:[" ",o,"%"]})]})},"ToolProgressBar"),Wk=i(({tool:e,collapsed:t=!1,theme:n})=>{let r=n??el(()=>re("dark"),[]),o=Bk(e.status),s=Hk(e.status,r),a=BH(e.input),c=NH(e.startTime,e.endTime);return t?cn(R,{children:[cn(b,{color:s,children:[o," "]}),pt(b,{color:r.colors.text,children:e.name})]}):cn(R,{flexDirection:"column",marginLeft:2,children:[cn(R,{children:[cn(b,{color:s,children:[o," "]}),pt(b,{color:r.colors.text,bold:!0,children:e.name}),a&&cn(b,{dimColor:!0,children:[" ",a]})]}),e.progress!==void 0&&e.status===N.Executing&&pt(R,{marginLeft:2,children:pt(Fk,{progress:e.progress,theme:r})}),e.progressLines&&e.progressLines.length>0&&e.status===N.Executing&&pt(R,{flexDirection:"column",marginLeft:2,children:e.progressLines.slice(-5).map((l,u)=>pt(b,{dimColor:!0,children:l},u))}),e.error&&pt(R,{marginLeft:2,children:pt(b,{color:r.colors.error,children:e.error})}),e.status===N.Success&&typeof e.output=="string"&&e.output.length>0&&pt(Uk,{output:e.output,theme:r}),c&&e.status!==N.Executing&&pt(R,{marginLeft:2,children:cn(b,{dimColor:!0,children:["Completed in ",c]})})]})},"ToolCallDisplay"),Uk=DH.memo(({output:e,theme:t})=>{if(!Nk(e))return pt(R,{marginLeft:2,children:pt(b,{dimColor:!0,children:e})});let n=Dk(e);return pt(R,{flexDirection:"column",marginLeft:2,children:n.map((r,o)=>r.kind==="text"?pt(b,{dimColor:!0,children:r.text},o):pt(Iy,{text:r.text,addedLines:r.addedLines,removedLines:r.removedLines,filePath:r.filePath,theme:t},o))})});Uk.displayName="ToolOutputBlock";var FH=i(({tools:e,collapsed:t=!1,title:n,theme:r})=>{let o=r??el(()=>re("dark"),[]);if(e.length===0)return null;let s=el(()=>{let c={[N.Scheduled]:0,[N.Validating]:0,[N.AwaitingApproval]:0,[N.Executing]:0,[N.Success]:0,[N.Error]:0,[N.Cancelled]:0};for(let l of e)c[l.status]++;return c},[e]),a=n??"Tools";if(t){let c=s[N.Success],l=s[N.Error],u=s[N.Executing]+s[N.Scheduled]+s[N.Validating];return pt(R,{flexDirection:"column",marginBottom:1,children:cn(R,{children:[pt(b,{color:o.colors.accent,bold:!0,children:a}),cn(b,{dimColor:!0,children:[" ","(",e.length," tools",c>0&&`, ${c} succeeded`,l>0&&`, ${l} failed`,u>0&&`, ${u} running`,")"]})]})})}return cn(R,{flexDirection:"column",marginBottom:1,children:[cn(R,{children:[pt(b,{color:o.colors.accent,bold:!0,children:a}),cn(b,{dimColor:!0,children:[" ","(",e.length," ",e.length===1?"tool":"tools",")"]})]}),e.map(c=>pt(Wk,{tool:c,theme:o},c.id))]})},"ToolGroup");import{jsxs as jk,jsx as WH}from"react/jsx-runtime";var UH=i(({pendingInputs:e})=>{let t=Iv(e);if(!t)return null;let n=re("dark");return jk(R,{children:[jk(b,{color:n.colors.hint,children:["\u23F3"," "]}),WH(b,{color:n.colors.dim,children:t})]})},"PendingInputsIndicator");import*as Gk from"child_process";var tl;function jH(){if(process.platform!=="win32")return null;if(tl!==void 0)return tl;try{tl=Gk.execFileSync(process.env.ComSpec??"cmd.exe",["/d","/s","/c","chcp"],{encoding:"utf8",stdio:["ignore","pipe","ignore"],windowsHide:!0}).match(/(\d{3,5})/)?.[1]??null}catch{tl=null}return tl}i(jH,"detectWindowsCodePage");function qf(){let e=process.env;return!!(e.COLORTERM==="truecolor"||e.COLORTERM==="24bit"||e.TERM_PROGRAM==="iTerm.app"||e.WT_SESSION||e.TERM==="xterm-kitty"||e.TERM_PROGRAM==="vscode"||e.TERM_PROGRAM==="gnome-terminal")}i(qf,"supportsTrueColor");function Kk(){if(qf())return!0;let e=process.env.TERM||"";return e.includes("256color")||e==="xterm-256color"||e==="screen-256color"||e==="tmux-256color"}i(Kk,"supports256Colors");function jr(){let e=process.env,t=e.LC_ALL||"",n=e.LC_CTYPE||"",r=e.LANG||"";if(t==="C"||t==="POSIX"||n==="C"||n==="POSIX"||r==="C"||r==="POSIX")return!1;let o=`${t}|${n}|${r}`.toLowerCase();return o.includes("utf-8")||o.includes("utf8")?!0:process.platform==="win32"?e.WT_SESSION||e.TERM_PROGRAM==="vscode"?!0:jH()==="65001":!0}i(jr,"supportsUnicode");function Vk(){let e=process.env;return!!(e.TERM_PROGRAM==="iTerm.app"||e.WT_SESSION||e.TERM==="xterm-kitty"||e.TERM_PROGRAM==="vscode"||e.TERM_PROGRAM==="Apple_Terminal"||e.TERM_PROGRAM==="gnome-terminal"||e.COLORTERM)}i(Vk,"supportsEmoji");function zk(){if(process.stdout?.columns)return process.stdout.columns;let t=process.env.COLUMNS;if(t){let n=Number.parseInt(t,10);if(!Number.isNaN(n)&&n>0)return n}return 80}i(zk,"getTerminalWidth");function Xk(){let e=process.env;return!!(e.NO_COLOR||e.TERM==="dumb"||e.CI)}i(Xk,"isScreenReader");function GH(){return process.stdout?.isTTY??!1}i(GH,"isTTY");function KH(){return{trueColor:qf(),colors256:Kk(),unicode:jr(),emoji:Vk(),tty:GH(),columns:zk(),screenReader:Xk()}}i(KH,"detectTerminalCapabilities");var nl=class{static{i(this,"ConsoleCapturer")}captured=[];originalLog=null;start(){this.captured=[],this.originalLog=console.log,console.log=(...t)=>{let n=t.map(r=>typeof r=="string"?r:String(r)).join(" ");this.captured.push(n)}}stop(){return this.originalLog!==null&&(console.log=this.originalLog,this.originalLog=null),this.captured}getCaptured(){return[...this.captured]}clear(){this.captured=[]}};async function VH(e){let t=new nl;t.start();try{let n=await e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}i(VH,"withCapture");function zH(e){let t=new nl;t.start();try{let n=e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}i(zH,"withCaptureSync");import*as cR from"readline";import we from"chalk";import qn from"chalk";var XH=[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel the action",value:"no"}],YH=[{key:"y",label:"Yes",description:"Allow this once",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"},{key:"a",label:"Always",description:"Always allow this kind of action",value:"always"}];function qH(e,t=!0){return e.map(n=>{let r=qn.dim(`[${n.key}]`);return t?`${r} ${qn.cyan(n.label)} ${qn.dim(`- ${n.description}`)}`:`${r} ${n.label}`}).join(" ")}i(qH,"formatOptions");function ia(){return process.stdout.columns??80}i(ia,"getTerminalWidth");function JH(){return jr()}i(JH,"supportsUnicode");function QH(){let e=JH();return{success:e?"\u2713":"[OK]",error:e?"\u2717":"[X]",warning:e?"\u26A0":"[!]",info:e?"\u2139":"[i]",arrow:e?"\u2192":"->",bullet:e?"\u2022":"*",check:e?"\u2713":"[v]",cross:e?"\u2717":"[x]"}}i(QH,"getSymbols");async function ZH(e,t){let{message:n,default:r,options:o,showDescription:s=!0}=t,a=o??XH,c=qH(a,s);console.log(),console.log(qn.cyan(`? ${n}`));let l=ia();if(c.length>l-4)for(let u of a){let m=qn.dim(` [${u.key}]`);console.log(`${m} ${qn.cyan(u.label)}`),s&&console.log(qn.dim(` ${u.description}`))}else console.log(qn.dim(` ${c}`));return new Promise(u=>{let m=r?` (${r})`:"";e.question(qn.dim(` Choose${m}: `),p=>{let h=p.trim().toLowerCase()||r||"",g=a.find(y=>y.key===h||y.value===h||y.label.toLowerCase()===h);u(g?g.value:h===""?"no":h)})})}i(ZH,"confirmEnhanced");async function rl(e,t,n,r){let{isOutsideProject:o=!1,isProtectedPath:s=!1,permissionMode:a="accept-edits"}=r??{},c=QH(),l,u,m={...n,...o?{_outsideProject:!0}:{},...s?{_alwaysConfirm:!0}:{}},p=Rf(t,m),h=p.details.map(y=>` ${qn.dim(y)}`);o||s?(l=`${qn.yellow(c.warning)} Safety Warning`,h.length>0&&(l+=`
|
|
466
468
|
${h.join(`
|
|
467
469
|
`)}`),u=[{key:"y",label:"Yes",description:"Allow this once",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]):(l=p.title,h.length>0&&(l+=`
|
|
468
470
|
${h.join(`
|
|
469
|
-
`)}`),u=a==="accept-edits"?
|
|
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
|
|
471
|
-
`));for(r.push(o);
|
|
471
|
+
`)}`),u=a==="accept-edits"?YH:[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]);let g=await ZH(e,{message:l,default:"n",options:u});return g==="always"?{confirmed:!0,always:!0}:{confirmed:g==="yes"}}i(rl,"confirmToolExecution");import ln from"chalk";var Jf=/\x1b\[[0-9;]*m/g,xr={SAVE_CURSOR:"\x1B[s",RESTORE_CURSOR:"\x1B[u",MOVE_TO_BOTTOM:"\x1B[999;1H",CLEAR_LINE:"\x1B[2K",RESET:"\x1B[0m",REVERSE:"\x1B[7m"};function eF(e,t){if(t<=0)return"";let n="",r=0,o=0;for(;o<e.length&&r<t;){Jf.lastIndex=o;let s=Jf.exec(e);if(s&&s.index===o){n+=s[0],o+=s[0].length;continue}n+=e[o],r+=1,o+=1}return n}i(eF,"truncateAnsi");function Yk(e){return Jf.lastIndex=0,e.replace(Jf,"")}i(Yk,"stripAnsi");function tF(e,t=ia()){let n=[],r=e.sessionId.slice(0,6);n.push(ln.dim(`#${r}`));let o=e.permissionMode==="plan"?ln.blue:e.permissionMode==="accept-edits"?ln.cyan:e.permissionMode==="auto-in-project"?ln.magenta:ln.green,s=bs(e.permissionMode),c=(e.permissionMode==="auto"||e.permissionMode==="auto-in-project")&&e.autoModeEngine?e.autoModeEngine==="llm"?ln.green("[LLM]"):ln.yellow("[RULES]"):"";if(n.push(o(s)+c),e.reasoningMode&&n.push(ln.yellow(`reason:${e.reasoningMode}`)),n.push(ln.cyan(e.provider)),e.tokenUsage){let m=e.tokenUsage.total,p=m>=1e3?`${(m/1e3).toFixed(1)}k`:String(m);n.push(ln.dim(`${p}t`))}if(e.currentTool&&n.push(ln.magenta(`tool:${e.currentTool}`)),e.projectInfo){let{completedFeatures:m,totalFeatures:p}=e.projectInfo,h=p>0?Math.round(m/p*100):0;n.push(ln.dim(`${m}/${p} [${h}%]`))}e.messageCount!==void 0&&n.push(ln.dim(`${e.messageCount} msgs`));let l=n.join(ln.dim(" | ")),u=t-1;return Yk(l).length>u&&(l=`${eF(l,Math.max(0,u-3))}...`),l}i(tF,"buildStatusBarContent");var Qf=class{static{i(this,"StatusBar")}state;visible=!1;constructor(t){this.state=t}update(t){this.state={...this.state,...t},this.visible&&this.render()}show(){this.visible||(this.visible=!0,this.render())}hide(){this.visible&&(this.visible=!1,this.clear())}toggle(){if(this.visible){this.hide();return}this.show()}getLinesUsed(){return 1}render(){let t=ia(),n=tF(this.state,t),r=n+" ".repeat(Math.max(0,t-Yk(n).length));process.stdout.write(xr.SAVE_CURSOR+xr.MOVE_TO_BOTTOM+xr.CLEAR_LINE+xr.REVERSE+r+xr.RESET+xr.RESTORE_CURSOR)}clear(){process.stdout.write(xr.SAVE_CURSOR+xr.MOVE_TO_BOTTOM+xr.CLEAR_LINE+xr.RESTORE_CURSOR)}};function qk(e,t,n,r,o="off"){return{sessionId:e,permissionMode:t,reasoningMode:o,provider:n,model:r}}i(qk,"createStatusBarState");function Jk(){if(!process.stdout.isTTY||rs())return!1;let e=process.env.TERM??"",t=process.env.TERM_PROGRAM??"",n=["xterm","xterm-256color","screen","screen-256color","tmux","tmux-256color","vt100","vt220"],r=["iTerm.app","Terminal.app","Apple_Terminal","vscode","Hyper","Alacritty","kitty","Windows Terminal"];return n.some(o=>e.startsWith(o))||r.includes(t)||process.env.WT_SESSION!==void 0}i(Jk,"supportsStatusBar");import Wee from"chalk";function Qk(){return{prompt:"\u276F",success:"\u2713",error:"\u2717",warning:"\u26A0",info:"\u2139",arrow:"\u2192",bullet:"\u2022",check:"\u2713",cross:"\u2717",spinner:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]}}i(Qk,"getUnicodeSymbols");function ky(){return{prompt:">",success:"[OK]",error:"[X]",warning:"[!]",info:"[i]",arrow:"->",bullet:"*",check:"[v]",cross:"[x]",spinner:["|","/","-","\\","|","/","-","\\"]}}i(ky,"getAsciiSymbols");var Zk={name:"dark",description:"Dark theme with vibrant colors",colors:{primary:"#00D7FF",secondary:"#9D9D9D",accent:"#FF6B6B",text:"#FFFFFF",dim:"#6B6B6B",success:"#4CAF50",warning:"#FF9800",error:"#F44336",info:"#2196F3"},symbols:jr()?Qk():ky(),spinner:{frames:jr()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},nF={name:"light",description:"Light theme for bright terminals",colors:{primary:"#0066CC",secondary:"#666666",accent:"#CC0000",text:"#000000",dim:"#999999",success:"#228B22",warning:"#CC7A00",error:"#CC0000",info:"#0066CC"},symbols:jr()?Qk():ky(),spinner:{frames:jr()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},rF={name:"minimal",description:"Minimal theme without colors (for CI or limited terminals)",colors:{primary:"",secondary:"",accent:"",text:"",dim:"",success:"",warning:"",error:"",info:""},symbols:ky(),spinner:{frames:[".","o","O","0","O","o"],interval:120}},oF={dark:Zk,light:nF,minimal:rF},eR=Zk;function gi(){return eR}i(gi,"getCurrentTheme");function ol(e){let t=oF[e];return t?(eR=t,!0):!1}i(ol,"setTheme");function iF(){if(!process.stdout.isTTY){ol("minimal");return}let e=process.env;if(e.WT_SESSION!==void 0||e.TERM_PROGRAM==="vscode"){ol("dark");return}ol("dark")}i(iF,"autoSelectTheme");iF();var Zf=class{static{i(this,"ReadlineUIContext")}rl;constructor(t){this.rl=t}async select(t,n){if(n.length!==0)return console.log(`
|
|
472
|
+
${t}`),console.log("\u2500".repeat(t.length)),n.forEach((r,o)=>{console.log(` ${o+1}. ${r}`)}),console.log(" 0. Cancel"),console.log(""),new Promise(r=>{this.rl.question("Enter choice (0 to cancel): ",o=>{let s=o.trim();if(s==="0"||s===""){r(void 0);return}let a=parseInt(s,10)-1;if(isNaN(a)||a<0||a>=n.length){console.log("Invalid choice. Please try again."),r(void 0);return}r(n[a])})})}async confirm(t){return new Promise(n=>{this.rl.question(`${t} (y/N): `,r=>{let o=r.trim().toLowerCase();n(o==="y"||o==="yes")})})}async input(t,n){let r=n?`${t} [${n}]: `:`${t}: `;return new Promise(o=>{this.rl.question(r,s=>{let a=s.trim();if(a===""&&n!==void 0){o(n);return}o(a||void 0)})})}};import*as tR from"child_process";import*as sl from"path";import*as il from"fs";import*as nR from"os";import wr from"chalk";function rR(e,t){let n=gi(),r=e==="plan"?wr.hex(n.colors.warning):wr.hex(n.colors.success),o=t.model??Mn(t.provider)??t.provider,s=ia();if(s<60){let c=e==="plan"?"?":n.symbols.prompt;return r(`${c} `)}else if(s<100){let c=t.reasoningMode!=="off"?t.reasoningMode[0]?.toUpperCase()??"R":"",l=c?wr.hex(n.colors.dim)(`[${c}]`):"";return r(`kodax:${e}${l}> `)}let a=t.reasoningMode!=="off"?wr.hex(n.colors.info)(`[reason:${t.reasoningMode}]`):"";return r(`kodax:${e} (${t.provider}:${o})${a}> `)}i(rR,"getPrompt");async function oR(e,t){let n=gi(),r=[],o=await new Promise(a=>{e.question(t,a)});if(o===""||o.toLowerCase()==="/e")return await Ry(r.join(`
|
|
473
|
+
`));for(r.push(o);sF(r.join(`
|
|
472
474
|
`));){let a=wr.hex(n.colors.dim)("... "),c=await new Promise(l=>{e.question(a,l)});r.push(c)}return r.join(`
|
|
473
475
|
`).replace(/\\\n/g,`
|
|
474
|
-
`)}i(
|
|
476
|
+
`)}i(oR,"askInput");async function Ry(e){let t=sl.join(nR.tmpdir(),"kodax"),n=sl.join(t,`input-${Date.now()}-${Math.random().toString(36).slice(2)}.txt`);try{await il.promises.mkdir(t,{recursive:!0}),await il.promises.writeFile(n,e,"utf-8");let r=process.env.EDITOR??process.env.VISUAL??(process.platform==="win32"?"notepad.exe":"nano");if(r.includes("/")||r.includes("\\")||r.includes("&&")||r.includes("|")){let a=sl.basename(r);console.log(wr.yellow(`
|
|
475
477
|
[Security] Editor path sanitized: ${a}`)),r=a}console.log(wr.dim(`
|
|
476
478
|
[Opening editor: ${r}]`));let o=process.platform==="win32"&&(r.toLowerCase()==="notepad"||r.toLowerCase()==="notepad.exe");return console.log(o?wr.dim(`Note: Please close Notepad manually after editing to continue.
|
|
477
479
|
`):wr.dim(`Save and close the editor to continue...
|
|
478
|
-
`)),
|
|
479
|
-
[Editor Error] ${o.message}`)),e}finally{try{await il.promises.unlink(n)}catch{}}}i(
|
|
480
|
-
`)))}i(
|
|
480
|
+
`)),tR.spawnSync(r,[n],{stdio:"inherit",timeout:3e5,shell:!1}),(await il.promises.readFile(n,"utf-8")).trim()}catch(r){let o=r instanceof Error?r:new Error(String(r));return console.log(wr.red(`
|
|
481
|
+
[Editor Error] ${o.message}`)),e}finally{try{await il.promises.unlink(n)}catch{}}}i(Ry,"openExternalEditor");function sF(e){if(e.endsWith("\\")&&!e.endsWith("\\\\"))return!0;let t={"(":0,"[":0,"{":0},n={")":"(","]":"[","}":"{"},r=null;for(let o=0;o<e.length;o++){let s=e[o];if((s==='"'||s==="'"||s==="`")&&e[o-1]!=="\\"){r===s?r=null:r===null&&(r=s);continue}if(!r){if(s in t)t[s]++;else if(s in n){let a=n[s];a&&t[a]--}}}return!!(Object.values(t).some(o=>o>0)||r)}i(sF,"needsContinuation");import Ve from"chalk";function iR(e){e?.workspaceRoot&&(console.log(Ve.dim(` Workspace: ${xn(e)}`)),console.log(Ve.dim(` Use /status workspace for runtime details.
|
|
482
|
+
`)))}i(iR,"printWorkspaceEntryNotice");function sR(e,t,n,r){let o=gi(),s=e.model??Mn(e.provider)??e.provider;if(console.log(Ve.hex(o.colors.primary)(`
|
|
481
483
|
`+`
|
|
482
484
|
\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557
|
|
483
485
|
\u2588\u2588\u2551 \u2588\u2588\u2554\u255D \u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u255A\u2588\u2588\u2557\u2588\u2588\u2554\u255D
|
|
@@ -490,8 +492,8 @@ ${t}`),console.log("\u2500".repeat(t.length)),n.forEach((r,o)=>{console.log(` $
|
|
|
490
492
|
`)),r){let c=r.length;console.log(Ve.hex(o.colors.dim)(" Project Rules: ")+Ve.hex(o.colors.success)(`${c} rule file(s) loaded`)),console.log(Ve.hex(o.colors.dim)(` Use /reload to refresh rules
|
|
491
493
|
`))}console.log(Ve.hex(o.colors.dim)(" Quick tips:")),console.log(Ve.hex(o.colors.primary)(" /help ")+Ve.hex(o.colors.dim)("Show all commands")),console.log(Ve.hex(o.colors.primary)(" /mode ")+Ve.hex(o.colors.dim)("Switch permission mode")),console.log(Ve.hex(o.colors.primary)(" /clear ")+Ve.hex(o.colors.dim)("Clear conversation")),console.log(Ve.hex(o.colors.primary)(" @path ")+Ve.hex(o.colors.dim)("Attach image to context")),console.log(Ve.hex(o.colors.primary)(" !cmd ")+Ve.hex(o.colors.dim)("Run read-only shell command")),console.log(Ve.hex(o.colors.dim)(`
|
|
492
494
|
Keyboard: Tab (complete) | Esc+Esc (edit last) | Ctrl+T (reasoning) | Ctrl+E (editor) | Ctrl+R (history)
|
|
493
|
-
`))}i(
|
|
494
|
-
${j}`));for(let
|
|
495
|
+
`))}i(sR,"printStartupBanner");var My=class{static{i(this,"MemorySessionStorage")}sessions=new Map;async save(t,n){let r=this.sessions.get(t),o=En(n.messages,n.lineage??r?.data.lineage);this.sessions.set(t,{createdAt:r?.createdAt??new Date().toISOString(),data:{...structuredClone(n),scope:n.scope??r?.data.scope??"user",uiHistory:n.uiHistory??r?.data.uiHistory,extensionState:n.extensionState??r?.data.extensionState,extensionRecords:n.extensionRecords??r?.data.extensionRecords,lineage:o}})}async load(t){return structuredClone(this.sessions.get(t)?.data??null)}async getLineage(t){return structuredClone(this.sessions.get(t)?.data.lineage??null)}async setActiveEntry(t,n,r){let o=this.sessions.get(t);if(!o?.data.lineage)return null;let s=zi(o.data.lineage,n,r);if(!s)return null;let a={...structuredClone(o.data),messages:At(s),lineage:s};return this.sessions.set(t,{...o,data:a}),structuredClone(a)}async setLabel(t,n,r){let o=this.sessions.get(t);if(!o?.data.lineage)return null;let s=Xi(o.data.lineage,n,r);if(!s)return null;let a={...structuredClone(o.data),lineage:s};return this.sessions.set(t,{...o,data:a}),structuredClone(a)}async fork(t,n,r){let o=this.sessions.get(t);if(!o?.data.lineage)return null;let s=Ji(o.data.lineage,n);if(!s)return null;let a=r?.sessionId??await Vi(),c={messages:At(s),title:r?.title??o.data.title,gitRoot:o.data.gitRoot,runtimeInfo:o.data.runtimeInfo?structuredClone(o.data.runtimeInfo):void 0,scope:o.data.scope??"user",extensionState:o.data.extensionState?structuredClone(o.data.extensionState):void 0,extensionRecords:o.data.extensionRecords?structuredClone(o.data.extensionRecords):void 0,lineage:s};return this.sessions.set(a,{createdAt:new Date().toISOString(),data:c}),{sessionId:a,data:structuredClone(c)}}async rewind(t,n){let r=this.sessions.get(t);if(!r?.data.lineage)return null;let o=n??Yi(r.data.lineage);if(!o)return null;let s=qi(r.data.lineage,o);if(!s)return null;let a={...r.data,messages:At(s),lineage:s};return this.sessions.set(t,{...r,data:a}),structuredClone(a)}async list(t){return Array.from(this.sessions.entries()).filter(([,n])=>(n.data.scope??"user")==="user").map(([n,r])=>({id:n,title:r.data.title,msgCount:r.data.lineage?Fo(r.data.lineage):r.data.messages.length,...r.data.runtimeInfo?{runtimeInfo:structuredClone(r.data.runtimeInfo)}:{}}))}async delete(t){this.sessions.delete(t)}async deleteAll(t){this.sessions.clear()}};function Ey(e,t,n){e.runtimeInfo=n,e.gitRoot=n?.workspaceRoot??e.gitRoot,t.context={...t.context,gitRoot:e.gitRoot,executionCwd:n?.executionCwd??process.cwd()}}i(Ey,"applyRuntimeContext");function aF(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:(e.thinking===!0||t.thinking===!0,"auto")}i(aF,"resolveInitialReasoningMode");var Ay={current:null};async function cF(e){let t=await Ms({cwd:process.cwd()}),n=t.workspaceRoot??await Uo()??void 0,r=e.storage??new My,o=fu({meta:{cwd:process.cwd(),startedAt:Date.now()}}),s=up(),a=e.provider??s.provider??du,c=e.model??s.model,l=aF(e,s),u=e.agentMode??s.agentMode??"ama",m=l!=="off",p=lr(s.permissionMode,"accept-edits")??"accept-edits",h=sd();p==="auto-in-project"&&h();let g=pu(),y=s.theme;y&&ol(y);let x=gi(),w={provider:a,model:c,thinking:m,reasoningMode:l,agentMode:u,permissionMode:p,repoIntelligenceMode:g.mode,repointelEndpoint:g.endpoint,repointelBin:g.bin,repoIntelligenceTrace:g.trace,fallbackProviders:s.fallbackProviders},T=p,I=Rs(),A=0,$="",F=!1,D=500,v=await jc({sessionId:e.session?.id,gitRoot:n,runtimeInfo:t});o?.writer.update({sessionId:v.sessionId});let z=i(_=>di(w,_,(O,j,te)=>{console.log((O==="block"?we.red:we.yellow)(`
|
|
496
|
+
${j}`));for(let Le of te)console.log(we.dim(Le));console.log()}),"guardSessionTransition"),fe=await wu(n??void 0),{resolveProvider:se}=await import("./dist-DS2KIZQG.js"),ge=se(w.provider),L=fe.contextWindow??ge.getEffectiveContextWindow?.(w.model)??ge.getContextWindow?.()??2e5,{loadAgentsFiles:k}=await import("./dist-DS2KIZQG.js"),P=i(async()=>k({cwd:process.cwd(),projectRoot:v.gitRoot??void 0}),"reloadAgentsFiles"),Re=await P();sR(w,w.permissionMode,{contextWindow:L,triggerPercent:fe.triggerPercent,enabled:fe.enabled},Re),iR(t);let _e=ob(()=>v.gitRoot??process.cwd()),Y=cR.createInterface({input:process.stdin,output:process.stdout,terminal:process.stdout.isTTY??!0,historySize:100,completer:i((_,O)=>{_e(_).then(j=>{O(null,j)}).catch(()=>{O(null,[[],_])})},"completer")}),V=gd(),ae=await Kc({askUser:i(async(_,O,j)=>(await rl(Y,_.name,{..._.input,...j&&j.length>0?{_classifierSignals:j}:{}},{permissionMode:T,reason:`[auto-mode] ${O}`})).confirmed?"allow":"block","askUser"),projectRoot:n??process.cwd(),getAgentsFiles:i(()=>Re,"getAgentsFiles"),getCurrentProviderName:i(()=>w.provider,"getCurrentProviderName"),getCurrentModel:i(()=>w.model,"getCurrentModel"),getCurrentPermissionMode:i(()=>T,"getCurrentPermissionMode"),autoModeSettings:V,log:i((_,O)=>{_==="warn"?console.warn(we.yellow(O)):console.log(we.dim(O))},"log"),onEngineChange:i(_=>{sn(T)&&q?.update({autoModeEngine:_})},"onEngineChange"),extraCollectors:[mc]}),Q=gu({getProvider:i(()=>se(w.provider),"getProvider"),getModel:i(()=>w.model??"","getModel")}),J=w.model??Mn(w.provider)??w.provider,q=null;Jk()&&(q=new Qf(qk(v.sessionId,w.permissionMode,w.provider,J,w.reasoningMode)),sn(T)&&q.update({autoModeEngine:ae.getGuardrail().getEngine()}));let Ie=`
|
|
495
497
|
Keyboard Shortcuts:
|
|
496
498
|
Tab Auto-complete (@paths, /commands)
|
|
497
499
|
Esc+Esc Edit last message
|
|
@@ -500,35 +502,35 @@ Keyboard Shortcuts:
|
|
|
500
502
|
Ctrl+R Search command history (built-in)
|
|
501
503
|
Ctrl+C Cancel current input
|
|
502
504
|
Ctrl+D Exit REPL`,ue=i(()=>{console.log(we.dim(Ie))},"_printKeyboardShortcuts");process.stdin.isTTY&&process.stdin.on("keypress",(_,O)=>{if(O&&O.name==="escape"){let j=Date.now();j-A<D&&$&&(F=!0,console.log(we.dim(`
|
|
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}};
|
|
504
|
-
[Saved workspace unavailable]`)),console.log(we.dim(` Session workspace: ${xn(te)}`)),console.log(we.dim(` Falling back to current workspace: ${xn(j)}`)),
|
|
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(),
|
|
505
|
+
[Opening editor with last message...]`)),Y.pause()),A=j}});let Ue=Rr(n).getSystemPromptSnippet(),De=!0,me={...e,reasoningMode:l,thinking:m,context:{...e.context,gitRoot:n,executionCwd:t.executionCwd,repoIntelligenceMode:g.mode,repoIntelligenceTrace:g.trace,skillsPrompt:Ue},session:{...e.session,id:v.sessionId,persistedByHost:!0}};Ay.current=null;let Pt={exit:i(()=>{De=!1,o?.shutdown(),Y.close()},"exit"),saveSession:i(async()=>{if(v.messages.length>0){let _=al(v.messages);v.title=_,await r.save(v.sessionId,{messages:v.messages,title:_,gitRoot:v.gitRoot??"",runtimeInfo:v.runtimeInfo,artifactLedger:v.artifactLedger})}},"saveSession"),startNewSession:i(()=>{v.sessionId=Gc(),v.title="",v.contextTokenSnapshot=void 0,v.artifactLedger=void 0,v.createdAt=new Date().toISOString(),v.lastAccessed=v.createdAt,Ey(v,me,t),me.session={...me.session,id:v.sessionId},q?.update({sessionId:v.sessionId,messageCount:0}),o?.writer.update({sessionId:v.sessionId})},"startNewSession"),loadSession:i(async _=>{let O=await r.load(_);if(O){if(!z("Resuming a saved session"))return"blocked";let j=await Ms({cwd:process.cwd()}),te=ri(O),Le=te??j;return te?.workspaceRoot&&!qC(te)?(console.log(we.yellow(`
|
|
506
|
+
[Saved workspace unavailable]`)),console.log(we.dim(` Session workspace: ${xn(te)}`)),console.log(we.dim(` Falling back to current workspace: ${xn(j)}`)),Le=j):te?.workspaceRoot&&j.workspaceRoot&&te.workspaceRoot!==j.workspaceRoot&&(console.log(we.cyan(`
|
|
507
|
+
[Loading sibling workspace session]`)),console.log(we.dim(` Current workspace: ${xn(j)}`)),console.log(we.dim(` Session workspace: ${xn(te)}`))),v.messages=O.messages,v.title=O.title,v.sessionId=_,v.contextTokenSnapshot=void 0,v.artifactLedger=O.artifactLedger,v.lastAccessed=new Date().toISOString(),Ey(v,me,Le),me.session={...me.session,id:_},q?.update({sessionId:_,messageCount:O.messages.length}),o?.writer.update({sessionId:_}),console.log(we.green(`
|
|
506
508
|
[Loaded session: ${_}]`)),console.log(we.dim(` Messages: ${O.messages.length}`)),v.runtimeInfo?.workspaceRoot&&console.log(we.dim(` Workspace: ${xn(v.runtimeInfo)}`)),"loaded"}return"missing"},"loadSession"),listSessions:i(async()=>{let _=await r.list(v.gitRoot??void 0);if(_.length===0){console.log(we.dim(`
|
|
507
509
|
[No saved sessions]`));return}console.log(we.bold(`
|
|
508
510
|
Recent Sessions:
|
|
509
511
|
`)),v.runtimeInfo?.workspaceRoot&&(console.log(we.dim(` Current workspace: ${xn(v.runtimeInfo)}`)),console.log());for(let O of _.slice(0,10))if(console.log(` ${we.cyan(O.id)} ${we.dim(`(${O.msgCount} messages)`)} ${O.title.slice(0,40)}`),O.runtimeInfo?.workspaceRoot){let te=v.runtimeInfo?.workspaceRoot===O.runtimeInfo.workspaceRoot?" (current workspace)":"";console.log(we.dim(` workspace: ${xn(O.runtimeInfo)}${te}`))}console.log()},"listSessions"),clearHistory:i(()=>{v.messages=[],v.contextTokenSnapshot=void 0},"clearHistory"),printHistory:i(()=>{if(v.messages.length===0){console.log(we.dim(`
|
|
510
512
|
[No conversation history]`));return}console.log(we.bold(`
|
|
511
513
|
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)),
|
|
513
|
-
[No session tree available for this session]`));return}let O=
|
|
514
|
+
`));let _=v.messages.slice(-20);for(let O=0;O<_.length;O++){let j=_[O],te=we.cyan(j.role.padEnd(10)),Le=typeof j.content=="string"?j.content:"[Complex content]",at=Le.slice(0,60).replace(/\n/g," "),ke=Le.length>60?"...":"";console.log(` ${(O+1).toString().padStart(2)}. ${te} ${at}${ke}`)}console.log()},"printHistory"),switchProvider:i((_,O)=>{w.provider=_,w.model=O,me.provider=_,me.model=O;let j=O??Mn(_);if(!j)try{j=lw(_)?.getModel()??_}catch{j=_}q?.update({provider:_,model:j})},"switchProvider"),setThinking:i(_=>{w.thinking=_,me.thinking=_,w.reasoningMode=_?"auto":"off",me.reasoningMode=w.reasoningMode,q?.update({reasoningMode:w.reasoningMode})},"setThinking"),setReasoningMode:i(_=>{let O=_!=="off";w.reasoningMode=_,w.thinking=O,me.reasoningMode=_,me.thinking=O,q?.update({reasoningMode:_})},"setReasoningMode"),setPermissionMode:i(_=>{w.permissionMode=_,T=_;let O=sn(_)?ae.getGuardrail().getEngine():void 0;q?.update({permissionMode:_,autoModeEngine:O}),_==="auto-in-project"&&h()},"setPermissionMode"),setRepoIntelligenceRuntime:i(_=>{_.mode!==void 0&&(w.repoIntelligenceMode=_.mode,process.env.KODAX_REPO_INTELLIGENCE_MODE=_.mode,me.context={...me.context,repoIntelligenceMode:_.mode}),_.trace!==void 0&&(w.repoIntelligenceTrace=_.trace,_.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,me.context={...me.context,repoIntelligenceTrace:_.trace}),_.endpoint!==void 0&&(w.repointelEndpoint=_.endpoint??void 0,_.endpoint?process.env.KODAX_REPOINTEL_ENDPOINT=_.endpoint:delete process.env.KODAX_REPOINTEL_ENDPOINT),_.bin!==void 0&&(w.repointelBin=_.bin??void 0,_.bin?process.env.KODAX_REPOINTEL_BIN=_.bin:delete process.env.KODAX_REPOINTEL_BIN)},"setRepoIntelligenceRuntime"),deleteSession:i(async _=>{await r.delete?.(_)},"deleteSession"),deleteAllSessions:i(async()=>{await r.deleteAll?.(v.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:i(async()=>{let _=await r.getLineage?.(v.sessionId);if(!_){console.log(we.dim(`
|
|
515
|
+
[No session tree available for this session]`));return}let O=kf(mu(_));console.log(we.bold(`
|
|
514
516
|
Session Tree:
|
|
515
517
|
`));for(let j of O)console.log(` ${j}`);console.log()},"printSessionTree"),switchSessionBranch:i(async _=>{if(!z("Switching session branches"))return"blocked";let O=await r.setActiveEntry?.(v.sessionId,_,{summarizeCurrentBranch:!0});return O?(v.messages=O.messages,v.title=O.title,v.contextTokenSnapshot=void 0,q?.update({messageCount:v.messages.length}),console.log(we.green(`
|
|
516
518
|
[Switched to tree entry: ${_}]`)),console.log(we.dim(` Messages: ${O.messages.length}`)),"switched"):"missing"},"switchSessionBranch"),labelSessionBranch:i(async(_,O)=>{if(!await r.setLabel?.(v.sessionId,_,O))return!1;let te=O&&O.trim()?`checkpoint label set: ${O.trim()}`:"checkpoint label cleared";return console.log(we.green(`
|
|
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,
|
|
519
|
+
[${te}]`)),!0},"labelSessionBranch"),forkSession:i(async _=>{if(!z("Forking a session branch"))return"blocked";let O=await r.fork?.(v.sessionId,_);return O?(v.sessionId=O.sessionId,v.messages=O.data.messages,v.title=O.data.title,v.contextTokenSnapshot=void 0,v.createdAt=new Date().toISOString(),v.lastAccessed=v.createdAt,Ey(v,me,ri(O.data)??v.runtimeInfo),me.session={...me.session,id:O.sessionId},q?.update({sessionId:O.sessionId,messageCount:v.messages.length}),console.log(we.green(`
|
|
518
520
|
[Forked session: ${O.sessionId}]`)),console.log(we.dim(` Messages: ${O.data.messages.length}`)),"forked"):"failed"},"forkSession"),rewindSession:i(async _=>{if(!z("Rewinding session"))return"blocked";let O=await r.rewind?.(v.sessionId,_);return O?(v.messages=O.messages,v.title=O.title,v.contextTokenSnapshot=void 0,v.lastAccessed=new Date().toISOString(),q?.update({messageCount:v.messages.length}),console.log(we.green(`
|
|
519
|
-
[Rewound session${_?` to ${_}`:" to previous turn"}]`)),console.log(we.dim(` Messages: ${O.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:i(()=>
|
|
521
|
+
[Rewound session${_?` to ${_}`:" to previous turn"}]`)),console.log(we.dim(` Messages: ${O.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:i(()=>Ay.current?.()??null,"getCostReport"),getAutoModeStats:i(()=>{if(sn(T))return ae.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:i(_=>{sn(T)&&(ae.getGuardrail().setEngine(_),q?.update({permissionMode:T}))},"setAutoModeEngine"),createKodaXOptions:i(()=>{let _=i((j,te)=>T!=="plan"?null:Dr(j,te,n??process.cwd()),"planModeBlockCheck"),O=sn(T)?[ae.getGuardrail()]:void 0;return{...me,provider:w.provider,model:w.model,thinking:w.thinking,reasoningMode:w.reasoningMode,guardrails:O,context:{...me.context,planModeBlockCheck:_},events:{...me.events,exitPlanMode:i(async j=>T!=="plan"?"not-in-plan-mode":(await rl(Y,"exit_plan_mode",{plan:j},{isProtectedPath:!1,permissionMode:T})).confirmed?(w.permissionMode="accept-edits",T="accept-edits",q?.update({permissionMode:"accept-edits"}),!0):!1,"exitPlanMode"),beforeToolExecute:i(async(j,te)=>{let Le=T,at=Jo(Le);if(Le==="plan"){let ke=Dr(j,te,n??process.cwd());if(ke)return console.log(we.yellow(ke)),`${ke} Do not modify files while planning. Finish the plan first, then call exit_plan_mode with the finalized plan \u2014 the user will review and approve or reject.`}if(j==="bash"){let ke=te.command??"";if(zn(ke))return!0}if(n&&Pn.has(j)){let ke=te.path;if(ke&&ur(ke,n))return(await rl(Y,j,te,{isProtectedPath:!0,permissionMode:Le})).confirmed?!0:(console.log(we.dim("[Cancelled] Operation on protected path requires confirmation")),!1)}if(at.has(j)){if(Le==="accept-edits"&&j==="bash"&&await co(j,te,I,Q))return!0;let ke=await rl(Y,j,te,{isOutsideProject:te._outsideProject===!0,reason:te._reason,permissionMode:Le});if(!ke.confirmed)return console.log(we.dim("[Cancelled] Operation cancelled by user")),!1;ke.always&&Le==="accept-edits"&&(yd(j,te,!1),I=Rs())}return!0},"beforeToolExecute")}}},"createKodaXOptions"),reloadAgentsFiles:i(async()=>(Re=await P(),Re),"reloadAgentsFiles"),readline:Y,ui:new Zf(Y)};Y.on("SIGINT",async()=>{console.log(we.dim(`
|
|
520
522
|
|
|
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
|
|
523
|
+
[Press /exit to quit]`)),Y.prompt()});let Rt=i(()=>{q?.hide(),o?.shutdown(),Y.close()},"cleanup");process.on("exit",Rt),process.on("SIGTERM",Rt);let ee=i(async(_,O)=>{if(!_||typeof _!="object"||!_.invocation)return;let j=await _f({...me,provider:w.provider,thinking:w.thinking,reasoningMode:w.reasoningMode},_.invocation,O,te=>console.log(we.dim(`
|
|
522
524
|
${te}`)));if(j.mode==="manual"){j.manualOutput&&console.log(we.yellow(`
|
|
523
525
|
${j.manualOutput}
|
|
524
|
-
`)),await j.finalize();return}if(!j.prompt||!j.options){await j.finalize();return}try{let te=j.mode==="fork"?[]:v.messages,
|
|
526
|
+
`)),await j.finalize();return}if(!j.prompt||!j.options){await j.finalize();return}try{let te=j.mode==="fork"?[]:v.messages,Le=await aR(j.options,v,j.prompt,te);if(j.mode==="fork"){let at=wc(Le.messages);at.trim()&&(console.log(`
|
|
525
527
|
${at}
|
|
526
|
-
`),v.messages.push({role:"assistant",content:at}))}else v.messages=
|
|
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
|
|
528
|
-
${B}`));v.messages.push({role:"user",content:oe.messageContent}),$=Be,q?.update({messageCount:v.messages.length});let ze=v.lineage?
|
|
528
|
+
`),v.messages.push({role:"assistant",content:at}))}else v.messages=Le.messages,v.contextTokenSnapshot=Le.contextTokenSnapshot;if(q?.update({messageCount:v.messages.length}),v.messages.length>0){let at=al(v.messages);v.title=at,await r.save(v.sessionId,{messages:v.messages,title:at,gitRoot:v.gitRoot??"",runtimeInfo:v.runtimeInfo})}await j.finalize()}catch(te){throw await j.finalize(te instanceof Error?te:new Error(String(te))),te}},"handleCommandResult");for(;De;){if(F&&$){F=!1,Y.resume();let ke=await Ry($);if(ke&&ke.trim()&&ke!==$){console.log(we.dim(`
|
|
529
|
+
[Edited message ready to send]`));let Be=ke.trim();hr(v);let $t=_s(Be);if($t){let B=await Ls($t,v,Pt,w);await ee(B,Be);continue}let ce=await _y(Be);if(Be.startsWith("!")&&Vc(ce))continue;let oe=zc(ce,me.context?.executionCwd??process.cwd());for(let B of oe.warnings)console.log(we.yellow(`
|
|
530
|
+
${B}`));v.messages.push({role:"user",content:oe.messageContent}),$=Be,q?.update({messageCount:v.messages.length});let ze=v.lineage?Uw({getLineage:i(()=>v.lineage,"getLineage"),setLineage:i(B=>{v.lineage=B},"setLineage"),saveSession:i(async()=>{await r.save(v.sessionId,{messages:v.messages,title:v.title??al(v.messages),gitRoot:v.gitRoot??"",runtimeInfo:v.runtimeInfo,artifactLedger:v.artifactLedger,lineage:v.lineage})},"saveSession"),getLatestUsage:i(()=>{},"getLatestUsage"),getTurnStartMs:i(()=>{},"getTurnStartMs"),getPermissionMode:i(()=>T,"getPermissionMode"),hasPendingUserInput:i(()=>Rn().has({agentId:void 0,maxPriority:"user",mode:"prompt"}),"hasPendingUserInput"),verifyComplete:i(async()=>({ok:!0}),"verifyComplete")}):void 0;try{let B=await Ua({...me,provider:w.provider,thinking:w.thinking,reasoningMode:w.reasoningMode,session:{...me.session,initialMessages:v.lineage?At(v.lineage,v.lineage.activeEntryId):v.messages},context:{...me.context,taskSurface:"repl",planModeBlockCheck:i((nt,un)=>T!=="plan"?null:Dr(nt,un,n??process.cwd()),"planModeBlockCheck"),...oe.inputArtifacts.length>0?{inputArtifacts:oe.inputArtifacts}:{},...ze?{goalRuntime:ze}:{}}},ce);if(v.messages=B.messages,v.contextTokenSnapshot=B.contextTokenSnapshot,v.artifactLedger=Fa(v.artifactLedger??[],B.artifactLedger??tp(B.messages)),v.messages.length>0){let nt=al(v.messages);v.title=nt,await r.save(v.sessionId,{messages:v.messages,title:nt,gitRoot:v.gitRoot??"",runtimeInfo:v.runtimeInfo,artifactLedger:v.artifactLedger})}}catch(B){let nt=B instanceof Error?B:new Error(String(B));v.messages.pop(),console.log(we.red(`
|
|
529
531
|
[Error] ${nt.message}`))}continue}else ke===$&&console.log(we.dim(`
|
|
530
|
-
[No changes made, continuing...]`))}let _=
|
|
531
|
-
${ke}`));v.messages.push({role:"user",content:at.messageContent}),$=j,q?.update({messageCount:v.messages.length});try{let ke=await
|
|
532
|
+
[No changes made, continuing...]`))}let _=rR(w.permissionMode,w),O=await oR(Y,_);if(!De)break;let j=O.trim();if(!j)continue;hr(v);let te=_s(j);if(te){let ke=await Ls(te,v,Pt,w);await ee(ke,j);continue}let Le=await _y(j);if(j.startsWith("!")&&Vc(Le))continue;let at=zc(Le,me.context?.executionCwd??process.cwd());for(let ke of at.warnings)console.log(we.yellow(`
|
|
533
|
+
${ke}`));v.messages.push({role:"user",content:at.messageContent}),$=j,q?.update({messageCount:v.messages.length});try{let ke=await aR(me,v,Le,v.messages,at.inputArtifacts);if(v.messages=ke.messages,v.contextTokenSnapshot=ke.contextTokenSnapshot,v.artifactLedger=Fa(v.artifactLedger??[],ke.artifactLedger??tp(ke.messages)),q?.update({messageCount:v.messages.length}),v.messages.length>0){let Be=al(v.messages);v.title=Be,await r.save(v.sessionId,{messages:v.messages,title:Be,gitRoot:v.gitRoot??"",runtimeInfo:v.runtimeInfo,artifactLedger:v.artifactLedger})}}catch(ke){let Be=ke instanceof Error?ke:new Error(String(ke));v.messages.pop(),Be.message.includes("rate limit")||Be.message.includes("Rate limit")?(console.log(we.yellow(`
|
|
532
534
|
[Rate Limit] ${Be.message}`)),console.log(we.dim(`Suggestion: Wait a moment and try again, or switch provider with /mode
|
|
533
535
|
`))):Be.message.includes("API key")||Be.message.includes("not configured")?(console.log(we.red(`
|
|
534
536
|
[Configuration Error] ${Be.message}`)),console.log(we.dim(`Suggestion: Set the required API key environment variable
|
|
@@ -538,28 +540,28 @@ ${ke}`));v.messages.push({role:"user",content:at.messageContent}),$=j,q?.update(
|
|
|
538
540
|
[Context Error] ${Be.message}`)),console.log(we.dim(`Suggestion: Use /clear to start a fresh conversation
|
|
539
541
|
`))):(console.log(we.red(`
|
|
540
542
|
[Error] ${Be.message}`)),console.log(we.dim(`Your message was not sent. Please try again.
|
|
541
|
-
`)))}}}i(
|
|
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(
|
|
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(
|
|
544
|
-
`,"utf8"),await yt.rename(t
|
|
545
|
-
`),o+=1)}finally{await r.close()}return await
|
|
546
|
-
`)}i(
|
|
547
|
-
`)}i(
|
|
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(
|
|
543
|
+
`)))}}}i(cF,"runInteractiveMode");async function _y(e){let t=e.match(/@[\w./-]+/g);if(t)for(let n of t){let r=n.slice(1)}if(e.startsWith("!")){let n=e.slice(1).trim();return Cf(n,{cwd:process.cwd()})}return e}i(_y,"processSpecialSyntax");async function aR(e,t,n,r=t.messages,o){let s={...e.events??{},getCostReport:Ay};return Ua({...e,events:s,session:{...e.session,initialMessages:r},context:{...e.context,contextTokenSnapshot:t.contextTokenSnapshot,taskSurface:"repl",...o&&o.length>0?{inputArtifacts:[...o]}:{}}},n)}i(aR,"runAgentRound");function al(e){return ks(e)}i(al,"extractTitle");import em from"node:fs";import lF from"node:path";function uF(){let e=nm();return rm(e).map(n=>tm(n))}i(uF,"listCustomProviders");function dF(e){if(typeof e!="string"||e.length===0)return;let t=rm(nm()).find(n=>n.name===e);return t?tm(t):void 0}i(dF,"getCustomProviderConfig");function fF(e){cw(e);let t=tm(e),n=nm(),r=rm(n),o=r.findIndex(a=>a.name===t.name),s=o>=0?r.map((a,c)=>c===o?t:a):[...r,t];return uR({...n,customProviders:s}),Zm(s),tm(t)}i(fF,"upsertCustomProvider");function mF(e){if(typeof e!="string"||e.length===0)return!1;let t=nm(),n=rm(t),r=n.filter(o=>o.name!==e);return r.length===n.length?!1:(uR({...t,customProviders:r}),Zm(r),!0)}i(mF,"removeCustomProvider");function lR(){return kn("config.json")}i(lR,"configFilePath");function nm(){let e=lR();if(!em.existsSync(e))return{};try{let t=JSON.parse(em.readFileSync(e,"utf-8"));return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}i(nm,"readWholeConfig");function uR(e){let t=lR();em.mkdirSync(lF.dirname(t),{recursive:!0}),em.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}i(uR,"writeWholeConfig");function rm(e){let t=e.customProviders;return Array.isArray(t)?t:[]}i(rm,"extractCustomProviders");function tm(e){return structuredClone(e)}i(tm,"cloneCustomProvider");import om from"node:fs";import pF from"node:path";function hF(){let e=im();return wF(sm(e))}i(hF,"listMcpServers");function gF(e){if(typeof e!="string"||e.length===0)return;let n=sm(im())[e];return n?Ly(n):void 0}i(gF,"getMcpServerConfig");function yF(e,t){if(typeof e!="string"||e.length===0)throw new TypeError("upsertMcpServer: name must be a non-empty string");dR(e,t);let n=Ly(t),r=im(),s={...sm(r),[e]:n};return mR({...r,mcpServers:s}),Ly(n)}i(yF,"upsertMcpServer");function xF(e){if(typeof e!="string"||e.length===0)return!1;let t=im(),n=sm(t);if(!(e in n))return!1;let r={};for(let o of Object.keys(n))o!==e&&(r[o]=n[o]);return mR({...t,mcpServers:r}),!0}i(xF,"removeMcpServer");function dR(e,t){if(typeof e!="string"||e.length===0)throw new TypeError("MCP server name must be a non-empty string");if(!t||typeof t!="object"||Array.isArray(t))throw new TypeError(`MCP server "${e}": config must be a plain object`);let n=t.type??"stdio";if(!["stdio","sse","streamable-http"].includes(n))throw new TypeError(`MCP server "${e}": unknown transport type "${n}" (expected stdio | sse | streamable-http)`);if(n==="stdio"){if(typeof t.command!="string"||t.command.length===0)throw new TypeError(`MCP server "${e}": stdio transport requires a non-empty "command"`)}else if(typeof t.url!="string"||t.url.length===0)throw new TypeError(`MCP server "${e}": "${n}" transport requires a non-empty "url"`);if(t.connect!==void 0&&!["lazy","prewarm","disabled"].includes(t.connect))throw new TypeError(`MCP server "${e}": unknown connect mode "${t.connect}" (expected lazy | prewarm | disabled)`)}i(dR,"validateMcpServerConfig");function fR(){return kn("config.json")}i(fR,"configFilePath");function im(){let e=fR();if(!om.existsSync(e))return{};try{let t=JSON.parse(om.readFileSync(e,"utf-8"));return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}i(im,"readWholeConfig");function mR(e){let t=fR();om.mkdirSync(pF.dirname(t),{recursive:!0}),om.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}i(mR,"writeWholeConfig");function sm(e){let t=e.mcpServers;return!t||typeof t!="object"||Array.isArray(t)?{}:t}i(sm,"extractMcpServers");function Ly(e){return structuredClone(e)}i(Ly,"cloneMcpServerConfig");function wF(e){return structuredClone(e)}i(wF,"cloneMcpServers");import Je from"fs/promises";import Jn from"fs";import Ne from"path";import ER from"chalk";import Py from"path";import{createHash as SF}from"crypto";var cl="_unknown",pR=80;function TF(e){return process.platform==="win32"||process.platform==="darwin"?e.toLowerCase():e}i(TF,"caseFold");function CF(e){return TF(Py.resolve(e).replace(/\\/g,"/"))}i(CF,"normalizeRoot");function hR(e){return SF("sha256").update(e).digest("hex").slice(0,10)}i(hR,"shortHash");function bF(e){let t=e.replace(/[^a-z0-9]+/gi,"-").replace(/^-+|-+$/g,"");return t.length>pR?t.slice(t.length-pR):t}i(bF,"slugify");function sa(e){if(!e||!e.trim())return{key:cl,canonicalRoot:null,displayName:cl};let t=CF(e),n=bF(t),r=n?`${n}-${hR(t)}`:hR(t),o=Py.basename(Py.resolve(e).replace(/\\/g,"/"))||e;return{key:r,canonicalRoot:t,displayName:o}}i(sa,"deriveProjectKeyFromRoot");function aa(e){let t=ri({gitRoot:e.gitRoot??"",runtimeInfo:e.runtimeInfo}),n=t?.canonicalRepoRoot??t?.executionCwd??(e.gitRoot&&e.gitRoot.trim()?e.gitRoot:void 0);return sa(n)}i(aa,"deriveProjectKeyFromData");import yt from"fs/promises";import yR from"fs";import Ft from"path";var vF=2,IF=300*1e3,gR=65536,$y=i(e=>Ft.join(e,".layout.json"),"layoutMarkerPath"),Dy=i(e=>Ft.join(e,".migration-lock"),"lockDirPath"),xR=i(e=>Ft.join(Dy(e),"owner.json"),"ownerPath"),Oy=i(e=>Ft.join(e,".migration-journal.jsonl"),"journalPath"),wR=i(e=>Ft.join(Ft.dirname(e),"sessions-archive"),"sessionsArchiveDir");function SR(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")}i(SR,"isSessionFile");function TR(e){return e.endsWith(".archive.jsonl")||e.endsWith(".islands.jsonl")?e.slice(0,-14):null}i(TR,"sidecarId");async function kF(e){let t;try{t=await yt.open(e,"r");let n=Buffer.allocUnsafe(gR),{bytesRead:r}=await t.read(n,0,gR,0);if(r===0)return null;let o=n.toString("utf8",0,r),s=o.indexOf(`
|
|
544
|
+
`),a=(s>=0?o.slice(0,s):o).trim();if(!a)return null;let c=JSON.parse(a);if(c&&typeof c=="object"&&c._type==="meta"){let l=c;return{gitRoot:typeof l.gitRoot=="string"?l.gitRoot:void 0,runtimeInfo:l.runtimeInfo}}return null}catch{return null}finally{await t?.close()}}i(kF,"readMeta");async function RF(e){let t=await kF(e);return t?aa({gitRoot:t.gitRoot,runtimeInfo:t.runtimeInfo}).key:cl}i(RF,"destKeyFor");async function CR(e){let t=[],n=i(async(r,o)=>{let s=[];try{s=await yt.readdir(r,{withFileTypes:!0})}catch{return}for(let a of s)!a.isFile()||a.name.startsWith(".")||(SR(a.name)||o&&TR(a.name)!==null)&&t.push(Ft.join(r,a.name))},"pushDir");return await n(e,!0),await n(wR(e),!0),t}i(CR,"collectFlatSources");async function EF(e){let t=await CR(e),n=t.filter(s=>SR(Ft.basename(s))),r=new Set(n.map(s=>Ft.basename(s,".jsonl"))),o=[];for(let s of n){let a=Ft.basename(s,".jsonl"),c=await RF(s);o.push({from:s,to:Ft.join(e,c,`${a}.jsonl`),reason:`session\u2192${c}`});for(let l of[".archive.jsonl",".islands.jsonl"]){let u=Ft.join(Ft.dirname(s),`${a}${l}`);yR.existsSync(u)&&o.push({from:u,to:Ft.join(e,c,`${a}.islands.jsonl`),reason:"sidecar\u2192islands"})}}for(let s of t){let a=TR(Ft.basename(s));a===null||r.has(a)||o.push({from:s,to:Ft.join(e,cl,"orphan-islands",`${a}.islands.jsonl`),reason:"orphan-sidecar\u2192_unknown"})}return o}i(EF,"planMigration");async function bR(e){try{return await yt.access($y(e)),!0}catch{return!1}}i(bR,"isMigrated");async function MF(e){return await bR(e)?!1:(await CR(e)).length>0}i(MF,"needsMigration");async function AF(e){try{let t=JSON.parse(await yt.readFile(xR(e),"utf8"));if(typeof t.pid=="number"&&t.pid!==process.pid)try{process.kill(t.pid,0)}catch(n){if(n.code==="ESRCH")return!0}return typeof t.heartbeatAt=="number"&&Date.now()-t.heartbeatAt>IF}catch{return!0}}i(AF,"lockIsStale");async function _F(e){let t=Dy(e);for(let n=0;n<2;n+=1)try{return await yt.mkdir(t),await yt.writeFile(xR(e),JSON.stringify({pid:process.pid,startTime:Date.now(),heartbeatAt:Date.now()})),!0}catch(r){if(r.code!=="EEXIST")return!1;if(n===0&&await AF(e)){await yt.rm(t,{recursive:!0,force:!0}).catch(()=>{});continue}return!1}return!1}i(_F,"acquireLock");async function LF(e){await yt.rm(Dy(e),{recursive:!0,force:!0}).catch(()=>{})}i(LF,"releaseLock");async function PF(e){let t=new Set;try{let n=await yt.readFile(Oy(e),"utf8");for(let r of n.split(`
|
|
545
|
+
`))if(r.trim())try{let o=JSON.parse(r);o.done&&typeof o.from=="string"&&t.add(o.from)}catch{}}catch{}return t}i(PF,"readJournalDone");async function $F(e){if(await yt.mkdir(Ft.dirname(e.to),{recursive:!0}),yR.existsSync(e.to)){await yt.unlink(e.from).catch(()=>{});return}try{await yt.rename(e.from,e.to)}catch(t){let n=t.code;if(n==="EXDEV")await yt.copyFile(e.from,e.to),await yt.unlink(e.from).catch(()=>{});else if(n!=="ENOENT")throw t}}i($F,"executeMove");async function vR(e){await yt.mkdir(e,{recursive:!0});let t=`${$y(e)}.${process.pid}.tmp`,n=JSON.stringify({version:vF,migratedAt:new Date().toISOString(),from:"flat-v1"});await yt.writeFile(t,n+`
|
|
546
|
+
`,"utf8"),await yt.rename(t,$y(e))}i(vR,"writeMarker");async function OF(e){let t=wR(e);try{(await yt.readdir(t)).length===0&&await yt.rmdir(t).catch(()=>{})}catch{}}i(OF,"retireSessionsArchive");async function DF(e){if(!await _F(e))return{moved:0,planned:0};try{let t=await EF(e),n=await PF(e),r=await yt.open(Oy(e),"a"),o=0;try{for(let s of t)n.has(s.from)||(await $F(s),await r.write(JSON.stringify({from:s.from,to:s.to,done:!0})+`
|
|
547
|
+
`),o+=1)}finally{await r.close()}return await OF(e),await vR(e),await yt.rm(Oy(e),{force:!0}).catch(()=>{}),{moved:o,planned:t.length}}finally{await LF(e)}}i(DF,"runMigration");async function ll(e){try{if(await bR(e))return;if(!await MF(e)){await vR(e).catch(()=>{});return}await DF(e)}catch{}}i(ll,"ensureLayoutMigrated");var NF=new Set(["user","assistant","system"]);function kt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}i(kt,"isRecord");function yi(e){if(e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return!0;if(Array.isArray(e))return e.every(yi);if(!kt(e))return!1;let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null?!1:Object.values(e).every(yi)}i(yi,"isKodaXJsonValue");function IR(e){return kt(e)&&typeof e.id=="string"&&typeof e.extensionId=="string"&&typeof e.type=="string"&&typeof e.ts=="number"&&(e.data===void 0||yi(e.data))&&(e.dedupeKey===void 0||typeof e.dedupeKey=="string")}i(IR,"isKodaXExtensionSessionRecord");function kR(e){return kt(e)?Object.values(e).every(t=>kt(t)?Object.values(t).every(yi):!1):!1}i(kR,"isKodaXExtensionSessionState");function BF(e){if(!kt(e)||typeof e.type!="string")return!1;switch(e.type){case"text":return typeof e.text=="string";case"tool_use":return typeof e.id=="string"&&typeof e.name=="string"&&kt(e.input);case"tool_result":return typeof e.tool_use_id=="string"&&typeof e.content=="string"&&(e.is_error===void 0||typeof e.is_error=="boolean");case"image":return typeof e.path=="string"&&(e.mediaType===void 0||typeof e.mediaType=="string");case"thinking":return typeof e.thinking=="string"&&(e.signature===void 0||typeof e.signature=="string");case"redacted_thinking":return typeof e.data=="string";default:return!1}}i(BF,"isKodaXContentBlock");function Ny(e){return!kt(e)||typeof e.role!="string"||!NF.has(e.role)?!1:typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(BF)}i(Ny,"isKodaXMessage");function RR(e){return kt(e)?(e.lastError===void 0||typeof e.lastError=="string")&&(e.lastErrorTime===void 0||typeof e.lastErrorTime=="number")&&(e.consecutiveErrors===void 0||typeof e.consecutiveErrors=="number"):!1}i(RR,"isSessionErrorMetadata");function HF(e){return kt(e)&&typeof e.type=="string"&&(e.type==="user"||e.type==="assistant"||e.type==="system"||e.type==="thinking"||e.type==="error"||e.type==="info"||e.type==="hint")&&typeof e.text=="string"}i(HF,"isKodaXSessionUiHistoryItem");function By(e){return Array.isArray(e)&&e.every(HF)}i(By,"isKodaXSessionUiHistory");function FF(e){return!kt(e)||e._type!=="meta_update"?!1:(e.title===void 0||typeof e.title=="string")&&(e.activeEntryId===void 0||typeof e.activeEntryId=="string"||e.activeEntryId===null)&&(e.activeMessageCount===void 0||typeof e.activeMessageCount=="number")&&(e.uiHistory===void 0||By(e.uiHistory))&&(e.scope===void 0||typeof e.scope=="string")}i(FF,"isPersistedMetaUpdateLine");function MR(e,t){t!==0&&process.stderr.write(`[KodaX] Skipped ${t} malformed session record(s) from ${Ne.basename(e)}.
|
|
548
|
+
`)}i(MR,"warnMalformedSessionData");function Gr(e){process.stderr.write(`${e}
|
|
549
|
+
`)}i(Gr,"writeStorageNotice");function AR(e){return{_type:"extension_record",...e}}i(AR,"toExtensionRecordLine");function _R(e){return{_type:"lineage_entry",entry:e}}i(_R,"toLineageEntryLine");function LR(e){return{_type:"artifact_ledger_entry",entry:e}}i(LR,"toArtifactLedgerLine");function WF(e){return kt(e)&&e._type==="extension_record"&&IR(e)}i(WF,"isPersistedExtensionRecordLine");function UF(e){return kt(e)&&typeof e.id=="string"&&(e.parentId===null||typeof e.parentId=="string")&&typeof e.timestamp=="string"&&typeof e.type=="string"}i(UF,"hasEntryBase");function jF(e){if(!UF(e))return!1;let t=e;switch(t.type){case"message":return Ny(t.message);case"compaction":return typeof t.summary=="string"&&(t.firstKeptEntryId===void 0||typeof t.firstKeptEntryId=="string")&&(t.tokensBefore===void 0||typeof t.tokensBefore=="number");case"branch_summary":return typeof t.summary=="string"&&(t.fromId===void 0||typeof t.fromId=="string")&&(t.details===void 0||yi(t.details));case"label":return typeof t.targetId=="string"&&(t.label===void 0||typeof t.label=="string");case"archive_marker":return typeof t.archiveBatchId=="string"&&typeof t.archivedEntryCount=="number"&&typeof t.summary=="string";default:return!1}}i(jF,"isKodaXSessionEntry");function GF(e){return kt(e)&&e._type==="lineage_entry"&&jF(e.entry)}i(GF,"isPersistedLineageEntryLine");function KF(e){return kt(e)&&typeof e.id=="string"&&typeof e.kind=="string"&&typeof e.target=="string"&&typeof e.timestamp=="string"&&(e.sourceTool===void 0||typeof e.sourceTool=="string")&&(e.action===void 0||typeof e.action=="string")&&(e.displayTarget===void 0||typeof e.displayTarget=="string")&&(e.summary===void 0||typeof e.summary=="string")&&(e.sessionEntryId===void 0||typeof e.sessionEntryId=="string")&&(e.metadata===void 0||yi(e.metadata))}i(KF,"isKodaXSessionArtifactLedgerEntry");function VF(e){return kt(e)&&e._type==="artifact_ledger_entry"&&KF(e.entry)}i(VF,"isPersistedArtifactLedgerLine");function NR(e){return kt(e)&&(e.canonicalRepoRoot===void 0||typeof e.canonicalRepoRoot=="string")&&(e.workspaceRoot===void 0||typeof e.workspaceRoot=="string")&&(e.executionCwd===void 0||typeof e.executionCwd=="string")&&(e.branch===void 0||typeof e.branch=="string")&&(e.workspaceKind===void 0||e.workspaceKind==="detected"||e.workspaceKind==="managed")}i(NR,"isKodaXSessionRuntimeInfo");function PR(e,t){return process.platform==="win32"||process.platform==="darwin"?e.toLowerCase()===t.toLowerCase():e===t}i(PR,"pathsEqual");function zF(e){for(let t=e.length-1;t>=0;t-=1){let n=e[t];if(n&&n.type!=="label")return n.id}return null}i(zF,"getLastNavigableEntryId");function XF(e){if(e.lineageEntries.length>0)return{version:2,activeEntryId:e.meta?.activeEntryId??zF(e.lineageEntries),entries:e.lineageEntries};if(e.legacyMessages.length!==0)return En(e.legacyMessages)}i(XF,"buildLineage");function $R(e){return typeof e=="string"?`t:${e}`:`j:${JSON.stringify(e)}`}i($R,"serializeMessageContentForCompare");function YF(e,t){return e===t?!0:e.role===t.role&&$R(e.content)===$R(t.content)}i(YF,"sameMessageByContent");function qF(e,t){if(e.lineage)return e.lineage;if(t){let n=At(t),r=e.messages;if(r.length<=n.length&&r.every((s,a)=>YF(s,n[a])))return t}return En(e.messages,t)}i(qF,"resolveSnapshotLineage");function JF(e){let t=XF(e);return{createdAt:e.meta?.createdAt,data:{messages:t?At(t):[...e.legacyMessages],title:e.meta?.title??"",gitRoot:e.meta?.gitRoot??"",runtimeInfo:NR(e.meta?.runtimeInfo)?{...e.meta.runtimeInfo}:void 0,scope:e.meta?.scope??"user",uiHistory:By(e.meta?.uiHistory)?e.meta.uiHistory.map(n=>({...n})):void 0,errorMetadata:RR(e.meta?.errorMetadata)?{...e.meta.errorMetadata}:void 0,extensionState:kR(e.meta?.extensionState)?e.meta?.extensionState:void 0,extensionRecords:e.extensionRecords.map(n=>({...n})),lineage:t,artifactLedger:e.artifactLedger.map(n=>({...n,metadata:n.metadata?structuredClone(n.metadata):void 0}))}}}i(JF,"buildSessionData");function QF(e,t,n,r){return{_type:"meta",title:t.title,id:e,gitRoot:t.gitRoot,runtimeInfo:t.runtimeInfo?{...t.runtimeInfo}:void 0,createdAt:r??new Date().toISOString(),scope:t.scope??"user",uiHistory:t.uiHistory,errorMetadata:t.errorMetadata,extensionState:t.extensionState,extensionRecordCount:t.extensionRecords?.length??0,artifactLedgerCount:t.artifactLedger?.length??0,lineageVersion:n?.version,activeEntryId:n?.activeEntryId,lineageEntryCount:n?.entries.length??0,activeMessageCount:n?Fo(n):t.messages.length}}i(QF,"createSessionMeta");async function ZF(e){let t;try{t=await Je.readFile(e,"utf-8")}catch(s){if(s?.code==="ENOENT")return null;throw s}let n=t.trim();if(!n)return null;let r={legacyMessages:[],lineageEntries:[],artifactLedger:[],extensionRecords:[],malformedCount:0},o=n.split(`
|
|
550
|
+
`);for(let s=0;s<o.length;s+=1)try{let a=JSON.parse(o[s]);if(s===0&&kt(a)&&a._type==="meta"){r.meta=a;continue}if(FF(a)){r.meta&&(a.title!==void 0&&(r.meta.title=a.title),a.activeEntryId!==void 0&&(r.meta.activeEntryId=a.activeEntryId),a.activeMessageCount!==void 0&&(r.meta.activeMessageCount=a.activeMessageCount),a.uiHistory!==void 0&&(r.meta.uiHistory=a.uiHistory),a.scope!==void 0&&(r.meta.scope=a.scope));continue}if(GF(a)){r.lineageEntries.push(a.entry);continue}if(VF(a)){r.artifactLedger.push(a.entry);continue}if(WF(a)){r.extensionRecords.push({id:a.id,extensionId:a.extensionId,type:a.type,ts:a.ts,data:a.data,dedupeKey:a.dedupeKey});continue}if(Ny(a)){r.legacyMessages.push(a);continue}r.malformedCount+=1}catch{r.malformedCount+=1}return r}i(ZF,"readPersistedSessionFile");var OR=65536;async function eW(e){let t;try{t=await Je.open(e,"r");let n=Buffer.allocUnsafe(OR),{bytesRead:r}=await t.read(n,0,OR,0);if(r===0)return null;let o=n.toString("utf8",0,r),s=o.indexOf(`
|
|
549
551
|
`);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(
|
|
551
|
-
`).length:0}catch{return 0}}i(
|
|
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=
|
|
553
|
-
`);for(let p of c.entries)await u.write(JSON.stringify(
|
|
554
|
-
`);for(let p of n.artifactLedger??[])await u.write(JSON.stringify(
|
|
555
|
-
`);for(let p of n.extensionRecords??[])await u.write(JSON.stringify(
|
|
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:
|
|
552
|
+
`);return(c>=0?a.slice(0,c):a).trim()}catch{return null}finally{await t?.close()}}i(eW,"readSessionFirstLine");async function DR(e){try{let t=(await Je.readFile(e,"utf-8")).trim();return t?t.split(`
|
|
553
|
+
`).length:0}catch{return 0}}i(DR,"countSessionLines");var Co=class{static{i(this,"FileSessionStorage")}sessionsDir;hostCwd;emitMismatchWarnings;constructor(t){this.sessionsDir=t?.sessionsDir??ja,this.hostCwd=t?.cwd,this.emitMismatchWarnings=t?.emitMismatchWarnings??!1}writeQueues=new Map;serializedWrite(t,n){let o=(this.writeQueues.get(t)??Promise.resolve()).then(n,()=>n());return this.writeQueues.set(t,o),o}appendState=new Map;sessionDirCache=new Map;projectJsonWritten=new Set;migrationPromise;ensureMigrated(){return this.migrationPromise||(this.migrationPromise=ll(this.sessionsDir)),this.migrationPromise}syncAppendState(t,n,r){let o=this.appendState.get(t);this.appendState.set(t,{lineageCount:n.lineage?.entries.length??o?.lineageCount??0,artifactCount:n.artifactLedger?.length??o?.artifactCount??0,extensionCount:n.extensionRecords?.length??o?.extensionCount??0,metaUpdateCount:r??o?.metaUpdateCount??0})}legacyFlatPath(t){return Ne.join(this.sessionsDir,`${t}.jsonl`)}legacyFlatArchivePath(t){return Ne.join(this.sessionsDir,`${t}.archive.jsonl`)}projectDir(t){return Ne.join(this.sessionsDir,t)}resolveWriteDir(t,n){let r=this.sessionDirCache.get(t);if(r)return r;let o=aa(n),s=this.projectDir(o.key);return this.sessionDirCache.set(t,s),s}writeFilePath(t,n){return Ne.join(this.resolveWriteDir(t,n),`${t}.jsonl`)}async resolveSessionLocation(t){let n=this.sessionDirCache.get(t);if(n){let s=Ne.join(n,`${t}.jsonl`);if(Jn.existsSync(s))return s;let a=Ne.join(n,"archived",`${t}.jsonl`);if(Jn.existsSync(a))return a}let r=[],o=[];try{o=await Je.readdir(this.sessionsDir,{withFileTypes:!0})}catch{o=[]}for(let s of o){if(!s.isDirectory()||s.name.startsWith("."))continue;let a=Ne.join(this.sessionsDir,s.name,`${t}.jsonl`);Jn.existsSync(a)&&r.push(a);let c=Ne.join(this.sessionsDir,s.name,"archived",`${t}.jsonl`);Jn.existsSync(c)&&r.push(c)}if(r.length===0){let s=this.legacyFlatPath(t);return Jn.existsSync(s)?s:null}if(r.length===1){let s=Ne.dirname(r[0]),a=Ne.basename(s)==="archived"?Ne.dirname(s):s;return this.sessionDirCache.set(t,a),r[0]}if(this.hostCwd){let s=this.projectDir(sa(this.hostCwd).key),a=r.find(c=>Ne.dirname(c)===s);if(a)return a}return Gr(`[KodaX] Ambiguous session id ${t} found in ${r.length} projects; ${this.hostCwd?"no current-project match \u2014 ":""}returning the first match. Specify projectKey to disambiguate.`),r[0]}async readSession(t){await this.ensureMigrated();let n=await this.resolveSessionLocation(t);if(!n)return null;let r=await ZF(n);return r?(MR(n,r.malformedCount),JF(r)):null}async ensureProjectJson(t,n){if(n.canonicalRoot===null||this.projectJsonWritten.has(t))return;this.projectJsonWritten.add(t);let r=Ne.join(t,"project.json");try{let o=JSON.stringify({canonicalRoot:n.canonicalRoot,displayName:n.displayName,lastUsed:new Date().toISOString()});await Je.writeFile(r,o+`
|
|
554
|
+
`,"utf-8")}catch{}}async writeSessionInternal(t,n,r){let o=this.resolveWriteDir(t,n);await Je.mkdir(o,{recursive:!0});let s=Ne.join(o,`${t}.jsonl`),a=`${s}.${process.pid}.${Date.now()}.tmp`,c=n.lineage??En(n.messages),l=QF(t,n,c,r);try{let u=await Je.open(a,"w");try{await u.write(JSON.stringify(l)+`
|
|
555
|
+
`);for(let p of c.entries)await u.write(JSON.stringify(_R(p))+`
|
|
556
|
+
`);for(let p of n.artifactLedger??[])await u.write(JSON.stringify(LR(p))+`
|
|
557
|
+
`);for(let p of n.extensionRecords??[])await u.write(JSON.stringify(AR(p))+`
|
|
558
|
+
`)}finally{await u.close()}await Je.rename(a,s),await this.ensureProjectJson(o,aa(n));let m=this.legacyFlatPath(t);if(m!==s&&Jn.existsSync(m)){await Je.unlink(m).catch(()=>{});let p=this.legacyFlatArchivePath(t);Jn.existsSync(p)&&await Je.rename(p,Ne.join(o,`${t}.islands.jsonl`)).catch(()=>{})}}finally{Jn.existsSync(a)&&await Je.unlink(a).catch(()=>{})}}async mergeAndWriteInternal(t,n){let r=await this.readSession(t),o={...n,scope:n.scope??r?.data.scope??"user",uiHistory:n.uiHistory??r?.data.uiHistory,extensionState:n.extensionState??r?.data.extensionState,artifactLedger:n.artifactLedger??r?.data.artifactLedger,extensionRecords:n.extensionRecords??r?.data.extensionRecords,runtimeInfo:n.runtimeInfo??r?.data.runtimeInfo,errorMetadata:n.errorMetadata??r?.data.errorMetadata,lineage:qF(n,r?.data.lineage)};await this.writeSessionInternal(t,o,r?.createdAt),this.syncAppendState(t,o)}async appendSessionDelta(t,n){await this.ensureMigrated();let r=this.writeFilePath(t,n);if(!Jn.existsSync(r)||!n.lineage){await this.save(t,n);return}await this.serializedWrite(t,async()=>{let s=this.appendState.get(t);if(!s){await this.mergeAndWriteInternal(t,n);return}if(n.lineage.entries.length<s.lineageCount||(n.artifactLedger?.length??0)<s.artifactCount){await this.mergeAndWriteInternal(t,n);return}let a=n.lineage.entries.slice(s.lineageCount),c=(n.artifactLedger??[]).slice(s.artifactCount),l=(n.extensionRecords??[]).slice(s.extensionCount),u=[];for(let p of a)u.push(JSON.stringify(_R(p)));for(let p of c)u.push(JSON.stringify(LR(p)));for(let p of l)u.push(JSON.stringify(AR(p)));let m={_type:"meta_update",title:n.title,activeEntryId:n.lineage.activeEntryId,activeMessageCount:Fo(n.lineage),...n.uiHistory!==void 0?{uiHistory:n.uiHistory}:{},...n.scope!==void 0?{scope:n.scope}:{}};u.push(JSON.stringify(m)),u.length>0&&await Je.appendFile(r,`
|
|
557
559
|
`+u.join(`
|
|
558
560
|
`),"utf-8"),this.syncAppendState(t,n,s.metaUpdateCount+1)});let o=this.appendState.get(t);o&&this.shouldRunMaintenance(o)&&this.runMaintenance(t).catch(s=>{process.stderr.write(`[KodaX] Archive maintenance failed: ${String(s)}
|
|
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}=
|
|
561
|
+
`)})}shouldRunMaintenance(t){return t.metaUpdateCount>=50||t.lineageCount>500}async runMaintenance(t){await this.serializedWrite(t,async()=>{let n=await this.readSession(t);if(!n?.data.lineage)return;let{slimmedLineage:r,archivedEntries:o,archiveBatchId:s}=bw(n.data.lineage);if(o.length===0){await this.writeSessionInternal(t,n.data,n.createdAt),this.syncAppendState(t,n.data,0);return}let a=this.resolveWriteDir(t,n.data);await Je.mkdir(a,{recursive:!0});let c=Ne.join(a,`${t}.islands.jsonl`),l=await Je.open(c,"a");try{await l.write(JSON.stringify({_type:"archive_batch",archiveBatchId:s,sessionId:t,archivedAt:new Date().toISOString(),entryCount:o.length})+`
|
|
560
562
|
`);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
|
|
562
|
-
[Warning] Session project mismatch:`)),c.workspaceRoot&&
|
|
563
|
-
`))}if(r.errorMetadata?.consecutiveErrors&&r.errorMetadata.consecutiveErrors>0){let a=
|
|
563
|
+
`)}finally{await l.close()}let u={...n.data,lineage:r};await this.writeSessionInternal(t,u,n.createdAt),this.syncAppendState(t,u,0)})}async save(t,n){await this.serializedWrite(t,async()=>{await this.mergeAndWriteInternal(t,n)})}async load(t){let n=await this.readSession(t);if(!n)return null;this.syncAppendState(t,n.data);let{data:r,createdAt:o}=n,s=this.legacyFlatPath(t);if(this.emitMismatchWarnings){let a=await Uo(this.hostCwd),c=await Ms({cwd:this.hostCwd}),l=ri(r);(c.canonicalRepoRoot&&l?.canonicalRepoRoot&&!Rd(c,l)||a&&r.gitRoot&&a!==r.gitRoot&&!Rd(c,{canonicalRepoRoot:r.gitRoot}))&&(Gr(ER.yellow(`
|
|
564
|
+
[Warning] Session project mismatch:`)),c.workspaceRoot&&Gr(` Current workspace: ${c.workspaceRoot}`),l?.workspaceRoot&&Gr(` Session workspace: ${l.workspaceRoot}`),c.canonicalRepoRoot&&Gr(` Current repo: ${c.canonicalRepoRoot}`),l?.canonicalRepoRoot?Gr(` Session repo: ${l.canonicalRepoRoot}`):r.gitRoot&&Gr(` Session repo: ${r.gitRoot}`),Gr(` Continuing anyway...
|
|
565
|
+
`))}if(r.errorMetadata?.consecutiveErrors&&r.errorMetadata.consecutiveErrors>0){let a=fw(r.messages);if(a!==r.messages){Gr(ER.cyan("[Session Recovery] Cleaned incomplete tool calls from previous session"));let c={...r,messages:a,errorMetadata:{...r.errorMetadata,consecutiveErrors:0},lineage:En(a,r.lineage)};return await this.serializedWrite(t,async()=>{await this.writeSessionInternal(t,c,o),this.syncAppendState(t,c)}),c}}return MR(s,0),r}async getLineage(t){return(await this.readSession(t))?.data.lineage??null}async setActiveEntry(t,n,r){let o=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=zi(s.data.lineage,n,r);if(!a)return;let c={...s.data,messages:At(a),lineage:a};await this.writeSessionInternal(t,c,s.createdAt),this.syncAppendState(t,c),o=c}),o}async rewind(t,n){let r=null;return await this.serializedWrite(t,async()=>{let o=await this.readSession(t);if(!o?.data.lineage)return;let s=n??Yi(o.data.lineage);if(!s)return;let a=qi(o.data.lineage,s);if(!a)return;let c={...o.data,messages:At(a),lineage:a};await this.writeSessionInternal(t,c,o.createdAt),this.syncAppendState(t,c),r=c}),r}async setLabel(t,n,r){let o=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=Xi(s.data.lineage,n,r);if(!a)return;let c={...s.data,lineage:a};await this.writeSessionInternal(t,c,s.createdAt),this.syncAppendState(t,c),o=c}),o}async fork(t,n,r){let o=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=Ji(s.data.lineage,n);if(!a)return;let c=r?.sessionId??await Vi(),l={messages:At(a),title:r?.title??s.data.title,gitRoot:s.data.gitRoot,uiHistory:s.data.uiHistory?s.data.uiHistory.map(u=>({...u})):void 0,extensionState:s.data.extensionState?structuredClone(s.data.extensionState):void 0,artifactLedger:s.data.artifactLedger?structuredClone(s.data.artifactLedger):void 0,extensionRecords:s.data.extensionRecords?structuredClone(s.data.extensionRecords):void 0,lineage:a};await this.writeSessionInternal(c,l),o={sessionId:c,data:l}}),o}async list(t,n){await this.ensureMigrated(),await Je.mkdir(this.sessionsDir,{recursive:!0});let r=t??(this.hostCwd?await Uo(this.hostCwd):null),o=await Ms({cwd:r??this.hostCwd??process.cwd()}),s=await Je.readdir(this.sessionsDir,{withFileTypes:!0}),a=[],c=aa({gitRoot:r??void 0,runtimeInfo:o}).key,l=i(x=>x.endsWith(".archive.jsonl")||x.endsWith(".islands.jsonl"),"isSidecar"),u=r?[c]:s.filter(x=>x.isDirectory()&&!x.name.startsWith(".")).map(x=>x.name);for(let x of u){let w=[];try{w=await Je.readdir(this.projectDir(x))}catch{continue}for(let T of w)T.endsWith(".jsonl")&&!l(T)&&a.push({path:Ne.join(this.projectDir(x),T),trusted:!!r,archived:!1});if(n?.includeArchived){let T=[];try{T=await Je.readdir(Ne.join(this.projectDir(x),"archived"))}catch{T=[]}for(let I of T)I.endsWith(".jsonl")&&!l(I)&&a.push({path:Ne.join(this.projectDir(x),"archived",I),trusted:!!r,archived:!0})}}for(let x of s)x.isFile()&&x.name.endsWith(".jsonl")&&!l(x.name)&&!x.name.startsWith("archived-")&&!x.name.startsWith(".")&&a.push({path:Ne.join(this.sessionsDir,x.name),trusted:!1,archived:!1});let m=[],p=i(async(x,w,T)=>{try{let I=await eW(x);if(!I)return null;let A=JSON.parse(I);if(kt(A)&&A._type==="meta"){let F=typeof A.gitRoot=="string"?A.gitRoot:"",D=NR(A.runtimeInfo)?A.runtimeInfo:void 0,v=A.scope==="managed-task-worker"?"managed-task-worker":"user";if(r&&!w){let se=Rd(o,D),ge=D?.workspaceRoot?PR(D.workspaceRoot,o.workspaceRoot??""):PR(F,r);if(!se&&!ge)return null}if(v!=="user")return null;let z=typeof A.extensionRecordCount=="number"&&A.extensionRecordCount>0?A.extensionRecordCount:0,fe=typeof A.activeMessageCount=="number"&&A.activeMessageCount>=0?A.activeMessageCount:Math.max(0,await DR(x)-1-z);return{id:Ne.basename(x,".jsonl"),title:typeof A.title=="string"?A.title:"",msgCount:fe,createdAt:typeof A.createdAt=="string"?A.createdAt:void 0,runtimeInfo:D?{...D}:F?{canonicalRepoRoot:F}:void 0,...T?{archived:!0}:{}}}let $=await DR(x);return{id:Ne.basename(x,".jsonl"),title:"",msgCount:$,...T?{archived:!0}:{}}}catch{return null}},"parseSessionFile"),h=48,g=new Set;for(let x=0;x<a.length;x+=h){let w=await Promise.all(a.slice(x,x+h).map(T=>p(T.path,T.trusted,T.archived)));for(let T of w)T&&!g.has(T.id)&&(g.add(T.id),m.push(T))}let y=n?.limit??10;return m.sort((x,w)=>{let T=x.createdAt?Date.parse(x.createdAt):Number.NaN,I=w.createdAt?Date.parse(w.createdAt):Number.NaN;return Number.isFinite(T)&&Number.isFinite(I)&&T!==I?I-T:Number.isFinite(I)&&!Number.isFinite(T)?1:Number.isFinite(T)&&!Number.isFinite(I)?-1:w.id.localeCompare(x.id)}).slice(0,y).map(({id:x,title:w,msgCount:T,runtimeInfo:I,createdAt:A,archived:$})=>({id:x,title:w,msgCount:T,...I?{runtimeInfo:I}:{},...A!==void 0?{createdAt:A}:{},...$?{archived:!0}:{}}))}async archive(t){await this.ensureMigrated();let n=!1;return await this.serializedWrite(t,async()=>{let r=await this.resolveSessionLocation(t);if(!r)return;let o=Ne.dirname(r);if(Ne.basename(o)==="archived"){n=!0;return}await this.movePair(t,o,Ne.join(o,"archived")),this.sessionDirCache.delete(t),n=!0}),n}async unarchive(t){await this.ensureMigrated();let n=!1;return await this.serializedWrite(t,async()=>{let r=await this.resolveSessionLocation(t);if(!r)return;let o=Ne.dirname(r);if(Ne.basename(o)!=="archived"){n=!0;return}await this.movePair(t,o,Ne.dirname(o)),this.sessionDirCache.delete(t),n=!0}),n}async movePair(t,n,r){await Je.mkdir(r,{recursive:!0});for(let o of[`${t}.jsonl`,`${t}.islands.jsonl`]){let s=Ne.join(n,o);if(Jn.existsSync(s))try{await Je.rename(s,Ne.join(r,o))}catch(a){if(a.code!=="ENOENT")throw a}}}async delete(t){await this.ensureMigrated();let n=await this.resolveSessionLocation(t),r=new Set;n&&(r.add(n),r.add(n.replace(/\.jsonl$/,".archive.jsonl")),r.add(n.replace(/\.jsonl$/,".islands.jsonl"))),r.add(this.legacyFlatPath(t)),r.add(this.legacyFlatArchivePath(t));for(let o of r)Jn.existsSync(o)&&await Je.unlink(o).catch(()=>{});this.sessionDirCache.delete(t)}async deleteAll(t){let n=t??(this.hostCwd?await Uo(this.hostCwd):null),r=await this.list(n??void 0,{limit:Number.MAX_SAFE_INTEGER});for(let o of r)await this.delete(o.id)}async cleanupOldSessions(t){if(!Number.isFinite(t)||t<=0)return 0;await this.ensureMigrated();let n=0,r=Date.now()-t*24*60*60*1e3,o=i(async s=>{if(s.endsWith(".jsonl"))try{(await Je.stat(s)).mtimeMs<r&&(await Je.unlink(s),n++)}catch{}},"unlinkIfOld");try{await Je.mkdir(this.sessionsDir,{recursive:!0});let s=await Je.readdir(this.sessionsDir,{withFileTypes:!0});for(let a of s){let c=Ne.join(this.sessionsDir,a.name);if(a.isFile()){await o(c);continue}if(!a.isDirectory()||a.name.startsWith("."))continue;let l=[];try{l=await Je.readdir(c,{withFileTypes:!0})}catch{continue}for(let u of l){let m=Ne.join(c,u.name);if(u.isFile())await o(m);else if(u.isDirectory()&&u.name==="archived"){let p=[];try{p=await Je.readdir(m)}catch{continue}for(let h of p)await o(Ne.join(m,h))}}}}catch{}return n}};import xi from"node:fs";import ul from"node:fs/promises";import Bn from"node:path";async function tW(e,t){let n=[],r=i(s=>s.endsWith(".jsonl")&&!s.endsWith(".archive.jsonl")&&!s.endsWith(".islands.jsonl")&&!s.startsWith("."),"isSession"),o=[];try{o=await ul.readdir(e,{withFileTypes:!0})}catch{return n}for(let s of o){if(s.isFile()){r(s.name)&&(t||!s.name.startsWith("archived-"))&&n.push(Bn.join(e,s.name));continue}if(!s.isDirectory()||s.name.startsWith("."))continue;let a=Bn.join(e,s.name);try{for(let c of await ul.readdir(a))r(c)&&n.push(Bn.join(a,c))}catch{}if(t){let c=Bn.join(a,"archived");try{for(let l of await ul.readdir(c))r(l)&&n.push(Bn.join(c,l))}catch{}}}return n}i(tW,"collectSessionFilePaths");function bo(e){return e!==void 0?new Co({sessionsDir:e}):new Co}i(bo,"getStorage");function BR(e){return e??ja}i(BR,"resolveSessionsDir");async function HR(e){return FR(e,void 0)}i(HR,"listSessions");async function FR(e,t){try{let n=BR(t);await ll(n);let r=e?.projectRoot,o=bo(t);await ul.mkdir(n,{recursive:!0});let s=e?.scope??"user",a=e?.includeArchived??!1,c=e?.limit??50,l=e?.before?Date.parse(e.before):void 0;if(s==="user"&&!r&&l===void 0&&!a)return(await o.list(r,{limit:c})).map(nW);let u=await tW(n,a),m=[],p=new Set;for(let h of u)try{let g=Bn.basename(h,".jsonl");if(p.has(g))continue;let y=Bn.basename(Bn.dirname(h))==="archived",x=(await ul.readFile(h,"utf-8")).trim(),w=x.split(`
|
|
564
566
|
`)[0];if(!w)continue;let T=JSON.parse(w);if(T===null||typeof T!="object"||T._type!=="meta")continue;let I=T,A=I.scope==="managed-task-worker"?"managed-task-worker":"user";if(s==="user"&&A!=="user"||s==="managed-task-worker"&&A!=="managed-task-worker")continue;let $=typeof I.createdAt=="string"?I.createdAt:void 0;if(l!==void 0&&$!==void 0){let L=Date.parse($);if(!Number.isNaN(L)&&L>=l)continue}let F=x.split(`
|
|
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"?
|
|
567
|
+
`).length,D=typeof I.extensionRecordCount=="number"&&I.extensionRecordCount>0?I.extensionRecordCount:0,v=typeof I.activeMessageCount=="number"&&I.activeMessageCount>=0?I.activeMessageCount:Math.max(0,F-1-D),z=I.runtimeInfo!==null&&typeof I.runtimeInfo=="object"?WR(I.runtimeInfo):void 0,fe=typeof I.gitRoot=="string"?I.gitRoot:void 0,se=z??(fe?{gitRoot:fe}:void 0),ge=sa(se?.gitRoot??se?.workspaceRoot).key;p.add(g),m.push({id:g,title:typeof I.title=="string"?I.title:"",msgCount:v,createdAt:$,runtimeInfo:se,projectKey:ge,...y?{archived:!0}:{},_createdAtMs:$?Date.parse($):void 0})}catch{continue}return m.sort((h,g)=>{let y=h._createdAtMs,x=g._createdAtMs;return Number.isFinite(y)&&Number.isFinite(x)&&y!==x?x-y:Number.isFinite(x)&&!Number.isFinite(y)?1:Number.isFinite(y)&&!Number.isFinite(x)?-1:g.id.localeCompare(h.id)}),m.slice(0,c).map(({id:h,title:g,msgCount:y,createdAt:x,runtimeInfo:w,projectKey:T,archived:I})=>({id:h,title:g,msgCount:y,...x!==void 0?{createdAt:x}:{},...w!==void 0?{runtimeInfo:w}:{},...T!==void 0?{projectKey:T}:{},...I?{archived:!0}:{}}))}catch{return[]}}i(FR,"listSessionsImpl");function WR(e){if(!(!e.workspaceRoot&&!e.canonicalRepoRoot))return{...e.workspaceRoot?{workspaceRoot:e.workspaceRoot}:{},...e.canonicalRepoRoot?{gitRoot:e.canonicalRepoRoot}:{}}}i(WR,"extractRuntimeInfoSummary");function nW(e){let t=e.runtimeInfo?WR(e.runtimeInfo):void 0,n=sa(t?.gitRoot??t?.workspaceRoot).key;return{id:e.id,title:e.title,msgCount:e.msgCount,...t!==void 0?{runtimeInfo:t}:{},...e.createdAt!==void 0?{createdAt:e.createdAt}:{},projectKey:n}}i(nW,"toSessionSummary");async function UR(e){return jR(e,void 0)}i(UR,"loadSession");async function jR(e,t){try{return await bo(t).load(e)}catch{return null}}i(jR,"loadSessionImpl");async function GR(e,t){return KR(e,t,void 0)}i(GR,"forkSession");async function KR(e,t,n){try{return await bo(n).fork(e,t?.selector,{sessionId:t?.sessionId,title:t?.title})}catch{return null}}i(KR,"forkSessionImpl");async function VR(e,t){return zR(e,t,void 0)}i(VR,"rewindSession");async function zR(e,t,n){try{return await bo(n).rewind(e,t?.selector)}catch{return null}}i(zR,"rewindSessionImpl");async function XR(e,t){return YR(e,t,void 0)}i(XR,"setActiveEntry");async function YR(e,t,n){try{return await bo(n).setActiveEntry(e,t)}catch{return null}}i(YR,"setActiveEntryImpl");async function am(){try{return dw({excludePid:process.pid}).map(t=>({pid:t.pid,startedAt:t.state.meta.startedAt,cwd:t.state.meta.cwd,sessionId:t.state.sessionId}))}catch{return[]}}i(am,"listRunningSessions");async function qR(e){return JR(e,void 0)}i(qR,"deleteSession");async function JR(e,t){try{let r=(await am()).find(o=>o.sessionId===e);return r?{error:{code:"session_running",runningProcess:{pid:r.pid,startedAt:r.startedAt}}}:(await bo(t).delete(e),{ok:!0})}catch{return{ok:!0}}}i(JR,"deleteSessionImpl");async function QR(e){return ZR(e,void 0)}i(QR,"archiveSession");async function ZR(e,t){try{return await bo(t).archive(e)}catch{return!1}}i(ZR,"archiveSessionImpl");async function eE(e){return tE(e,void 0)}i(eE,"unarchiveSession");async function tE(e,t){try{return await bo(t).unarchive(e)}catch{return!1}}i(tE,"unarchiveSessionImpl");function nE(e){return rE(e,void 0)}i(nE,"watchSessions");function rE(e,t){let n=BR(t);return ll(n).catch(()=>{}),process.platform==="win32"?iW(e,n):rW(e,n)}i(rE,"watchSessionsImpl");function Hy(e){let t=Bn.basename(e);return!t.endsWith(".jsonl")||t.endsWith(".archive.jsonl")||t.endsWith(".islands.jsonl")||t.startsWith(".")?null:t.slice(0,-6)}i(Hy,"sessionIdFromFilename");function rW(e,t){let n=null,r=!1,o=new Map;function s(c,l){let u=o.get(l);u!==void 0&&clearTimeout(u);let m=setTimeout(()=>{o.delete(l),r||e({kind:c,sessionId:l})},100);o.set(l,m)}i(s,"emitDebounced");function a(){if(!r)try{if(!xi.existsSync(t)){setTimeout(a,1e3);return}let c=i((l,u)=>{if(!u)return;let m=typeof u=="string"?u:u.toString(),p=Hy(m);if(!p)return;let h=l==="rename"?oW(t,m):"change";s(h,p)},"onEvent");try{n=xi.watch(t,{recursive:!0},c)}catch{n=xi.watch(t,c)}n.on("error",()=>{n?.close(),n=null,r||setTimeout(a,1e3)})}catch{}}return i(a,"startWatch"),a(),{close(){r=!0,n?.close(),n=null;for(let c of o.values())clearTimeout(c);o.clear()}}}i(rW,"watchSessionsPosix");function oW(e,t){try{return xi.statSync(Bn.join(e,t)),"add"}catch{return"remove"}}i(oW,"detectRenameKind");function iW(e,t){let n=!1,r=new Set;function o(c,l){try{for(let u of xi.readdirSync(l)){let m=Hy(u);m&&c.add(m)}}catch{}}i(o,"addIds");function s(){let c=new Set;try{if(!xi.existsSync(t))return c;for(let l of xi.readdirSync(t,{withFileTypes:!0}))if(l.isFile()){let u=Hy(l.name);u&&c.add(u)}else if(l.isDirectory()&&!l.name.startsWith(".")){let u=Bn.join(t,l.name);o(c,u),o(c,Bn.join(u,"archived"))}}catch{}return c}i(s,"buildSnapshot"),r=s();let a=setInterval(()=>{if(n)return;let c=s();for(let l of c)r.has(l)||e({kind:"add",sessionId:l});for(let l of r)c.has(l)||e({kind:"remove",sessionId:l});r=c},1e3);return{close(){n=!0,clearInterval(a)}}}i(iW,"watchSessionsWindows");function sW(e){let t=e?.sessionsDir,n=t!==void 0?new Co({sessionsDir:t}):new Co;return t===void 0?{listSessions:HR,loadSession:UR,forkSession:GR,rewindSession:VR,setActiveEntry:XR,deleteSession:qR,archiveSession:QR,unarchiveSession:eE,listRunningSessions:am,watchSessions:nE,storage:n}:{listSessions:i(r=>FR(r,t),"listSessions"),loadSession:i(r=>jR(r,t),"loadSession"),forkSession:i((r,o)=>KR(r,o,t),"forkSession"),rewindSession:i((r,o)=>zR(r,o,t),"rewindSession"),setActiveEntry:i((r,o)=>YR(r,o,t),"setActiveEntry"),deleteSession:i(r=>JR(r,t),"deleteSession"),archiveSession:i(r=>ZR(r,t),"archiveSession"),unarchiveSession:i(r=>tE(r,t),"unarchiveSession"),listRunningSessions:am,watchSessions:i(r=>rE(r,t),"watchSessions"),storage:n}}i(sW,"createSessionManager");export{ts as a,ns as b,Ka as c,rs as d,Va as e,dp as f,jo as g,Go as h,os as i,Ko as j,Tu as k,Vo as l,is as m,Cu as n,bu as o,ss as p,pn as q,or as r,ir as s,XE as t,en as u,za as v,pp as w,hp as x,tn as y,gp as z,yp as A,aS as B,cS as C,re as D,CW as E,Jp as F,cL as G,od as H,lc as I,VT as J,mL as K,pL as L,gn as M,N,IK as O,zt as P,Zp as Q,th as R,id as S,nh as T,YT as U,uc as V,bs as W,Jo as X,rh as Y,lr as Z,zn as _,Xn as $,co as aa,dd as ba,ur as ca,md as da,Zo as ea,ph as fa,Dr as ga,xc as ha,ks as ia,fP as ja,Ih as ka,_s as la,Ls as ma,Nh as na,ii as oa,$d as pa,Bh as qa,Mc as ra,Fh as sa,Os as ta,u1 as ua,Dn as va,bb as wa,vb as xa,y1 as ya,x1 as za,pO as Aa,ci as Ba,gO as Ca,Fs as Da,DO as Ea,BO as Fa,HO as Ga,ig as Ha,sg as Ia,WO as Ja,cg as Ka,lg as La,cf as Ma,lf as Na,uf as Oa,dg as Pa,ff as Qa,df as Ra,mg as Sa,mf as Ta,Nc as Ua,Bc as Va,Cv as Wa,hf as Xa,hg as Ya,yg as Za,wg as _a,gf as $a,Sg as ab,yf as bb,xf as cb,vg as db,wf as eb,Wc as fb,Uc as gb,Nv as hb,hD as ib,gD as jb,Hv as kb,SD as lb,TD as mb,jc as nb,hr as ob,Kc as pb,Ks as qb,CD as rb,Cf as sb,ID as tb,kD as ub,bf as vb,Rg as wb,vf as xb,Eg as yb,by as zb,MH as Ab,_H as Bb,HH as Cb,Fk as Db,Wk as Eb,FH as Fb,UH as Gb,qf as Hb,Kk as Ib,jr as Jb,Vk as Kb,zk as Lb,Xk as Mb,KH as Nb,nl as Ob,VH as Pb,zH as Qb,cF as Rb,_y as Sb,uF as Tb,dF as Ub,fF as Vb,mF as Wb,hF as Xb,gF as Yb,yF as Zb,xF as _b,dR as $b,Co as ac,HR as bc,UR as cc,GR as dc,VR as ec,XR as fc,am as gc,qR as hc,QR as ic,eE as jc,nE as kc,sW as lc};
|