@kodax-ai/kodax 0.7.47 → 0.7.48
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-QZFZIGPF.js → chunk-6Z75SHX3.js} +1 -1
- package/dist/chunks/{chunk-2SMCCP44.js → chunk-DEODZG6Q.js} +1 -1
- package/dist/chunks/chunk-EP46H5P3.js +415 -0
- package/dist/chunks/{chunk-VGRG2F6H.js → chunk-LNJNRREL.js} +223 -207
- package/dist/chunks/{chunk-KRHAO2T3.js → chunk-UHAP234X.js} +234 -234
- package/dist/chunks/{compaction-config-YU7SI6L6.js → compaction-config-YWCHOP2U.js} +1 -1
- package/dist/chunks/{construction-bootstrap-6UN3OY7X.js → construction-bootstrap-AIWATBWW.js} +1 -1
- package/dist/chunks/dist-4WABQRJU.js +2 -0
- package/dist/chunks/{utils-3ISOUEFC.js → utils-OG57XTPC.js} +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.js +5 -5
- package/dist/kodax_cli.js +635 -619
- package/dist/sdk-agent.d.ts +5 -5
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +42 -11
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-mcp.d.ts +3 -3
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-repl.d.ts +9 -9
- 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-D6hL0Cuv.d.ts → bash-prefix-extractor.d-DNO2-ycp.d.ts} +5 -31
- package/dist/types-chunks/{config.d-BfJUXxC0.d.ts → config.d-CJy1WENT.d.ts} +17 -7
- package/dist/types-chunks/{file-tracker.d-BNTIvsdb.d.ts → file-tracker.d-D7L_SbRm.d.ts} +1 -1
- package/dist/types-chunks/manager.d-DLmDhX3i.d.ts +696 -0
- package/dist/types-chunks/{types.d-D2RNa5Y7.d.ts → types.d-BCnbYG_A.d.ts} +68 -2
- package/dist/types-chunks/{utils.d-umRKgMAu.d.ts → utils.d-Dgy5SVrq.d.ts} +1 -1
- package/package.json +1 -1
- package/dist/chunks/chunk-VX6HN3JP.js +0 -415
- package/dist/chunks/dist-DS2KIZQG.js +0 -2
- package/dist/types-chunks/manager.d-U3UEwY1P.d.ts +0 -385
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
-
import{A as Jw,B as Qw,C as Zw,a as Z,c as ja,j as Zi,k as Mn,l as es,m as Wo,n as Yw,o as qw,p as yu,q as sp,r as xu,s as ap,t as cp,u as lp,w as Ga,x as up,y as Kn,z as Uo}from"./chunk-QZFZIGPF.js";import{a as wu}from"./chunk-2SMCCP44.js";import{n as eS,o as tS,p as nS}from"./chunk-EVIDQWMF.js";import{Ab as Er,Da as Lw,Ec as Fw,Fb as hu,Fc as Ww,Ia as Pw,Ib as Dw,Jd as zw,Ka as $w,Kb as Nw,La as Ow,Mb as Bw,Oa as op,R as Rw,S as pu,U as Wa,V as Ew,ba as Mw,c as ep,d as Ha,dc as Hw,de as Xw,e as uw,g as np,gd as Uw,ge as gu,hd as Ua,sa as Aw,sd as jw,t as kw,ta as rp,td as Gw,ua as _w,vd as ip,wd as Kw,xd as Vw}from"./chunk-VGRG2F6H.js";import{S as du,ca as cw,ea as Zm,fa as lw,j as Do,sa as No,ta as ji,ua as Gi}from"./chunk-66B6ZOU7.js";import{Bc as Yi,Cc as qi,Dc as Ji,Ec as mu,Fc as Fo,Gc as bw,Ic as Qi,Jc as vw,La as Rn,Nb as xw,Nc as tp,Ob as ww,Oc as Fa,Pb as Sw,Yc as Iw,ac as Rr,bb as dw,bc as Ho,gb as fu,gc as Tw,ib as fw,k as Bo,lc as Vi,mb as mw,nb as pw,ob as hw,pb as gw,rb as yw,tc as En,va as Ki,vc as At,wa as kn,xc as zi,yc as Xi,zc as Cw}from"./chunk-VX6HN3JP.js";import{a as i,b as Qm,c as WE}from"./chunk-V4WSBIXB.js";var tC=Qm((DK,eC)=>{"use strict";eC.exports=i(function(t){return t.map(function(n){return n===""?"''":n&&typeof n=="object"?n.op.replace(/(.)/g,"\\$1"):/["\s\\]/.test(n)&&!/'/.test(n)?"'"+n.replace(/(['])/g,"\\$1")+"'":/["'\s]/.test(n)?'"'+n.replace(/(["\\$`!])/g,"\\$1")+'"':String(n).replace(/([A-Za-z]:)?([#!"$&'()*,:;<=>?@[\\\]^`{|}])/g,"$1\\$2")}).join(" ")},"quote")});var cC=Qm((BK,aC)=>{"use strict";var sC="(?:"+["\\|\\|","\\&\\&",";;","\\|\\&","\\<\\(","\\<\\<\\<",">>",">\\&","<\\&","[&;()|<>]"].join("|")+")",nC=new RegExp("^"+sC+"$"),rC="|&;()<> \\t",TL='"((\\\\"|[^"])*?)"',CL="'((\\\\'|[^'])*?)'",bL=/^#$/,oC="'",iC='"',oh="$",Qo="",vL=4294967296;for(ih=0;ih<4;ih++)Qo+=(vL*Math.random()).toString(16);var ih,IL=new RegExp("^"+Qo);function kL(e,t){for(var n=t.lastIndex,r=[],o;o=t.exec(e);)r.push(o),t.lastIndex===o.index&&(t.lastIndex+=1);return t.lastIndex=n,r}i(kL,"matchAll");function RL(e,t,n){var r=typeof e=="function"?e(n):e[n];return typeof r>"u"&&n!=""?r="":typeof r>"u"&&(r="$"),typeof r=="object"?t+Qo+JSON.stringify(r)+Qo:t+r}i(RL,"getVar");function EL(e,t,n){n||(n={});var r=n.escape||"\\",o="(\\"+r+`['"`+rC+`]|[^\\s'"`+rC+"])+",s=new RegExp(["("+sC+")","("+o+"|"+TL+"|"+CL+")+"].join("|"),"g"),a=kL(e,s);if(a.length===0)return[];t||(t={});var c=!1;return a.map(function(l){var u=l[0];if(!u||c)return;if(nC.test(u))return{op:u};var m=!1,p=!1,h="",g=!1,y;function x(){y+=1;var I,A,$=u.charAt(y);if($==="{"){if(y+=1,u.charAt(y)==="}")throw new Error("Bad substitution: "+u.slice(y-2,y+1));if(I=u.indexOf("}",y),I<0)throw new Error("Bad substitution: "+u.slice(y));A=u.slice(y,I),y=I}else if(/[*@#?$!_-]/.test($))A=$,y+=1;else{var F=u.slice(y);I=F.match(/[^\w\d_]/),I?(A=F.slice(0,I.index),y+=I.index-1):(A=F,y=u.length)}return RL(t,"",A)}for(i(x,"parseEnvVar"),y=0;y<u.length;y++){var w=u.charAt(y);if(g=g||!m&&(w==="*"||w==="?"),p)h+=w,p=!1;else if(m)w===m?m=!1:m==oC?h+=w:w===r?(y+=1,w=u.charAt(y),w===iC||w===r||w===oh?h+=w:h+=r+w):w===oh?h+=x():h+=w;else if(w===iC||w===oC)m=w;else{if(nC.test(w))return{op:u};if(bL.test(w)){c=!0;var T={comment:e.slice(l.index+y+1)};return h.length?[h,T]:[T]}else w===r?p=!0:w===oh?h+=x():h+=w}}return g?{op:"glob",pattern:h}:h}).reduce(function(l,u){return typeof u>"u"?l:l.concat(u)},[])}i(EL,"parseInternal");aC.exports=i(function(t,n,r){var o=EL(t,n,r);return typeof n!="function"?o:o.reduce(function(s,a){if(typeof a=="object")return s.concat(a);var c=a.split(RegExp("("+Qo+".*?"+Qo+")","g"));return c.length===1?s.concat(c[0]):s.concat(c.filter(Boolean).map(function(l){return IL.test(l)?JSON.parse(l.split(Qo)[1]):l}))},[])},"parse")});var lC=Qm(sh=>{"use strict";sh.quote=tC();sh.parse=cC()});import{spawnSync as UE}from"node:child_process";function Su(e){return e==="1"||e?.toLowerCase()==="true"}i(Su,"isTruthyEnv");function rS(e){return e==="0"||e?.toLowerCase()==="false"}i(rS,"isFalseyEnv");function ts(e=process.env){return e.TERM_PROGRAM?.toLowerCase()==="vscode"||!!e.VSCODE_GIT_IPC_HANDLE||!!e.VSCODE_INJECTION}i(ts,"isVsCodeTerminalHostEnv");function ns(e={}){let t=e.env??process.env;return(e.platform??process.platform)==="win32"||!!t.WT_SESSION}i(ns,"hasCursorUpViewportYankRisk");function jE(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}i(jE,"isSshSession");function Ka(e={}){let t=e.env??process.env;return Su(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&jE(t)}i(Ka,"isRemoteConptyHost");function rs(e={}){let t=e.env??process.env;return ns(e)||ts(t)}i(rs,"hasMainScreenRenderScrollRisk");function GE(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}i(GE,"isTmuxControlModeEnvHeuristic");var Mr;function Va(e={}){if(typeof e.tmuxControlMode=="boolean")return e.tmuxControlMode;let t=e.env??process.env,n=e.platform??process.platform;if(n==="win32")return!1;if(GE(t))return!0;if(!(t===process.env&&n===process.platform))return!1;if(Mr!==void 0||(Mr=!1,!t.TMUX)||t.TERM_PROGRAM&&t.TERM_PROGRAM!=="iTerm.app")return Mr;try{let o=UE("tmux",["display-message","-p","#{client_control_mode}"],{encoding:"utf8",timeout:2e3});o.status===0&&(Mr=o.stdout.trim()==="1")}catch{Mr=!1}return Mr}i(Va,"isTmuxControlMode");function dp(){Mr=void 0}i(dp,"resetTmuxControlModeProbeForTesting");function jo(e={}){let t=e.env??process.env,n=e.isTTY??process.stdout.isTTY===!0,r=e.rawModeSupported??(process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function");return!n||!r||t.TERM==="dumb"||t.CI==="true"?"unsupported_control_host":Va(e)?"tmux_control_mode":ts(t)?"xtermjs_host":Ka(e)?"remote_conpty_host":ns(e)?"degraded_vt":"native_vt"}i(jo,"detectTerminalRenderHost");var Go=jo;function os(e={}){let t=e.env??process.env;if(Su(t.KODAX_FORCE_INK))return"legacy";let n=t.KODAX_TUI_RENDERER?.trim().toLowerCase();return n==="legacy"||n==="owned"||n==="auto"?n:"auto"}i(os,"resolveConfiguredTuiRendererMode");function Ko(e={}){let t=os(e);if(t==="legacy"||t==="owned")return t;let n=jo(e);return n==="unsupported_control_host"||n==="tmux_control_mode"?"legacy":"owned"}i(Ko,"resolveEffectiveTuiRendererMode");function Tu(e={}){let t=e.env??process.env;if(Su(t.KODAX_FORCE_CLASSIC_REPL))return"classic";let n=os({env:t});if(n==="legacy"||n==="owned")return"ink";let r=jo(e);return r==="unsupported_control_host"||r==="tmux_control_mode"?"classic":"ink"}i(Tu,"resolveInteractiveSurfacePreference");var KE={enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!0},oS={enabled:!0,promptShell:"main-screen",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!1,transcriptSpinnerAnimation:!0};function Vo(e,t="owned",n={}){let r=n.env??process.env;return rS(r.KODAX_FULLSCREEN)?t==="owned"&&e!=="tmux_control_mode"&&e!=="unsupported_control_host"?oS:KE:VE(e,t)}i(Vo,"resolveFullscreenPolicy");function VE(e,t){if(t==="legacy")switch(e){case"native_vt":return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!0,transcriptSpinnerAnimation:!0};case"xtermjs_host":case"degraded_vt":case"remote_conpty_host":return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1};default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}switch(e){case"native_vt":return{enabled:!0,promptShell:"virtual",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!0,transcriptSpinnerAnimation:!0};case"xtermjs_host":return{enabled:!0,promptShell:"virtual",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!0,transcriptSpinnerAnimation:!0};case"degraded_vt":return{enabled:!0,promptShell:"virtual",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!0,transcriptSpinnerAnimation:!0};case"remote_conpty_host":return oS;default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}}i(VE,"buildFullscreenPolicy");function is(e,t={}){let n=t.rendererMode??"owned",r=Vo(e,n,{env:t.env}),o=e!=="unsupported_control_host"&&e!=="tmux_control_mode";return{profile:e,ownsViewportByDefault:r.enabled&&r.promptShell==="virtual",supportsMouseTracking:r.mouseWheel||r.mouseClicks,bufferingMode:r.streamingPreview?"live":"buffered-fallback",supportsFullscreenLayout:r.enabled,supportsOverlaySurface:r.enabled,supportsSelection:o,supportsCopyOnSelect:!1,supportsWheelHistory:r.mouseWheel,supportsViewportChrome:r.enabled,supportsSearchViewport:r.enabled,supportsStickyPrompt:r.enabled}}i(is,"getTerminalHostCapabilities");function Cu(e={}){return Ko(e)==="owned"}i(Cu,"isOwnedRendererPreferred");function bu(e={}){let t=e.env??process.env;return Su(t.KODAX_FORCE_CLASSIC_REPL)&&!rS(t.KODAX_FORCE_CLASSIC_REPL)}i(bu,"isClassicReplForced");var ss=class{static{i(this,"LRUCache")}capacity;cache;constructor(t){this.capacity=t,this.cache=new Map}get(t){if(!this.cache.has(t))return;let n=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,n),n}set(t,n){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.capacity){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(t,n)}has(t){return this.cache.has(t)}delete(t){return this.cache.delete(t)}clear(){this.cache.clear()}get size(){return this.cache.size}},fp=1,mp=2,zE=1e3,iS;function vu(){if(!(typeof Intl>"u"||typeof Intl.Segmenter!="function"))return iS??=new Intl.Segmenter("en",{granularity:"grapheme"}),iS}i(vu,"getGraphemeSegmenter");function pn(e){if(!e)return 0;let t=vu();if(t){let n=0;for(let r of t.segment(e))n++;return n}return[...e].length}i(pn,"getCodePointLength");function or(e){if(!e)return!1;let t=e.codePointAt(0);return t===void 0?!1:t>=19968&&t<=40959||t>=13312&&t<=19903||t>=63744&&t<=64255||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=44032&&t<=55215||t>=12288&&t<=12351||t>=65280&&t<=65519||t>=128512&&t<=128591||t>=127744&&t<=128511||t>=128640&&t<=128767||t>=127456&&t<=127487||t>=9728&&t<=9983||t>=9984&&t<=10175||t>=129280&&t<=129535||t>=129536&&t<=129647||t>=129648&&t<=129791}i(or,"isWideChar");function ir(e){if(!e)return 0;let t=0,n=vu();if(n)for(let r of n.segment(e))t+=or(r.segment)?mp:fp;else for(let r of e)t+=or(r)?mp:fp;return t}i(ir,"getVisualWidth");function XE(e,t){if(!e||t<0)return"";let n=vu();if(n){let o=0;for(let s of n.segment(e)){if(o===t)return s.segment;o++}return""}let r=[...e];return t>=r.length?"":r[t]}i(XE,"getCharAtCodePoint");function en(e){if(!e)return[];let t=vu();if(t){let n=[];for(let r of t.segment(e))n.push(r.segment);return n}return[...e]}i(en,"splitByCodePoints");function YE(e,t,n){return en(e).slice(t,n).join("")}i(YE,"sliceByCodePoints");function sS(e,t){let n=Math.max(0,t),r=en(e),o=0,s=0;for(;o<r.length;){let a=or(r[o])?mp:fp;if(s+a>n)break;s+=a,o++}return{before:r.slice(0,o).join(""),current:r[o]??"",after:r.slice(o+1).join("")}}i(sS,"splitAtVisualColumn");function za(e,t,n=!1){if(!e||t<=0)return"";let r="\u2026",s=n?t-1:t,a="",c=0,l=en(e);for(let u of l){let m=or(u)?2:1;if(c+m>s)break;a+=u,c+=m}return n&&a.length<e.length&&(a+=r),a}i(za,"truncateByVisualWidth");var pp=new ss(zE);function hp(e){let t=pp.get(e);if(t!==void 0)return t;let n=ir(e);return pp.set(e,n),n}i(hp,"getVisualWidthCached");function tn(e,t,n,r){let o=[],s=[],a=[];for(let c=0;c<e.length;c++){let l=e[c]||"";if(s[c]=[],l.length===0){o.push("");let p=o.length-1;s[c].push([p,0]),a.push([c,0]);continue}let u=0,m=en(l);for(;u<m.length;){let p="",h=0,g=u,y=-1;for(let x=u;x<m.length;x++){let w=m[x],T=or(w)?2:1;if(h+T>t){y>=0&&x-u>0?(p=m.slice(u,y).join(""),h=m.slice(u,y).reduce((I,A)=>I+(or(A)?2:1),0),g=y):p.length===0&&T>t&&(p=w,h=T,g=x+1);break}p+=w,h+=T,g=x+1,w===" "&&(y=x+1)}if(p.length>0||o.length===0){let x=u,w=o.length;o.push(p),s[c].push([w,x]),a.push([c,x])}u=g}}return{visualLines:o,logicalToVisualMap:s,visualToLogicalMap:a}}i(tn,"calculateVisualLayout");function gp(e,t){let{logicalToVisualMap:n,visualLines:r}=e;if(r.length===0)return[0,0];let[o,s]=t,a=n[o];if(!a||a.length===0)return[0,0];let c;for(let[g,y]of a)if(y<=s)c=[g,y];else break;let[l,u]=c??a[0],m=r[l]??"",p=Math.max(0,s-u),h=ir(YE(m,0,p));return[l,h]}i(gp,"calculateVisualCursorFromLayout");var yp={name:"dark",colors:{primary:"#01A4FF",secondary:"#8B5CF6",accent:"#F59E0B",text:"#CCCCCC",dim:"#666666",thinking:"#A3ADC2",success:"#19C37D",warning:"#FF9F43",error:"#FF5F56",info:"#01A4FF",hint:"#8B5CF6",background:"#0D0D0D",inputBackground:"#1A1A1A"},symbols:{prompt:">",success:"\u2713",error:"\u2717",warning:"!",spinner:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]}},aS={name:"minimal",colors:{primary:"#01A4FF",secondary:"#8B5CF6",accent:"#F59E0B",text:"#CCCCCC",dim:"#666666",thinking:"#A3ADC2",success:"#19C37D",warning:"#FF9F43",error:"#FF5F56",info:"#01A4FF",hint:"#8B5CF6",background:"#0D0D0D",inputBackground:"#1A1A1A"},symbols:{prompt:"$",success:"+",error:"-",warning:"?",spinner:["-","\\","|","/"]}};var cS={dark:yp,minimal:aS};function re(e="dark"){return cS[e]??yp}i(re,"getTheme");function CW(){return Object.keys(cS)}i(CW,"getThemeNames");import{jsx as on,jsxs as _n,Fragment as iL}from"react/jsx-runtime";import{useMemo as rd}from"react";import{jsx as BT}from"react/jsx-runtime";import{createContext as $_,useContext as qo,useEffect as xs,useMemo as NT,useState as O_,useCallback as HT,useRef as Xu}from"react";import{Stream as u_}from"node:stream";import{openSync as d_,writeSync as IT}from"node:fs";import{performance as f_}from"node:perf_hooks";import{tmpdir as m_}from"node:os";import{join as p_}from"node:path";import xp,{forwardRef as QE,useContext as ZE}from"react";import{createContext as qE}from"react";var as=qE({isScreenReaderEnabled:!1});import{createContext as JE}from"react";var Iu=JE(void 0);var lS=QE(({children:e,backgroundColor:t,"aria-label":n,"aria-hidden":r,"aria-role":o,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:l}=ZE(as),u=n?xp.createElement("ink-text",null,n):void 0;if(l&&r)return null;let m=xp.createElement("ink-box",{ref:c,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:0,flexShrink:1,...a,backgroundColor:t,overflowX:a.overflowX??a.overflow??"visible",overflowY:a.overflowY??a.overflow??"visible"},internal_accessibility:{role:o,state:s}},l&&u?u:e);return t?xp.createElement(Iu.Provider,{value:t},m):m});lS.displayName="Box";var An=lS;import rM,{useContext as uS}from"react";import cs from"chalk";import to from"chalk";var eM=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,tM=/^ansi256\(\s?(\d+)\s?\)$/;function nM(e){return e in to}i(nM,"isNamedColor");function Vn(e,t,n){if(!t)return e;if(nM(t)){let r=to;if(n==="foreground")return r[t]?.(e)??e;let o=`bg${t[0].toUpperCase()+t.slice(1)}`;return r[o]?.(e)??e}if(t.startsWith("#"))return n==="foreground"?to.hex(t)(e):to.bgHex(t)(e);if(t.startsWith("ansi256")){let r=tM.exec(t);if(!r)return e;let o=Number(r[1]);return n==="foreground"?to.ansi256(o)(e):to.bgAnsi256(o)(e)}if(t.startsWith("rgb")){let r=eM.exec(t);if(!r)return e;let o=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?to.rgb(o,s,a)(e):to.bgRgb(o,s,a)(e)}return e}i(Vn,"colorize");function nn({color:e,backgroundColor:t,dimColor:n=!1,bold:r=!1,italic:o=!1,underline:s=!1,strikethrough:a=!1,inverse:c=!1,wrap:l="wrap",children:u,"aria-label":m,"aria-hidden":p=!1,internal_cursorAnchor:h=!1}){let{isScreenReaderEnabled:g}=uS(as),y=uS(Iu),x=g&&m?m:u;if(x==null)return null;let w=i(T=>{let I=T;n&&(I=cs.dim(I)),e&&(I=Vn(I,e,"foreground"));let A=t??y;return A&&(I=Vn(I,A,"background")),r&&(I=cs.bold(I)),o&&(I=cs.italic(I)),s&&(I=cs.underline(I)),a&&(I=cs.strikethrough(I)),c&&(I=cs.inverse(I)),I},"transform");return g&&p?null:rM.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:l},internal_transform:w,...h?{internal_cursorAnchor:!0}:{}},g&&m?m:u)}i(nn,"Text");import oM,{useLayoutEffect as iM,useMemo as dS,useState as sM}from"react";function wp({items:e,children:t,style:n}){let[r,o]=sM(0),s=dS(()=>e.slice(r),[e,r]);iM(()=>{o(e.length)},[e.length]);let a=s.map((l,u)=>t(l,r+u)),c=dS(()=>({position:"absolute",flexDirection:"column",...n}),[n]);return oM.createElement("ink-box",{internal_static:!0,style:c},a)}i(wp,"Static");import Yo from"node:process";import CT from"react";import{throttle as KA}from"es-toolkit/compat";import rn from"ansi-escapes";import ro from"is-in-ci";import VA from"auto-bind";import{onExit as zA}from"signal-exit";import XA from"patch-console";import{LegacyRoot as YA,ConcurrentRoot as qA}from"react-reconciler/constants.js";import JA from"yoga-layout";import QA from"wrap-ansi";import ZA from"terminal-size";import aM from"node:process";var ku=i(()=>aM.env.DEV==="true","isDev");import $M from"react-reconciler";import{DefaultEventPriority as OM,NoEventPriority as RS}from"react-reconciler/constants.js";import*as no from"scheduler";import bS from"yoga-layout";import{createContext as DM}from"react";import CM from"yoga-layout";import cM from"widest-line";var fS=new Map,lM=i(e=>{if(e.length===0)return{width:0,height:0};let t=fS.get(e);if(t)return t;let n=cM(e),r=e.split(`
|
|
3
|
-
`).length,o={width:n,height:r};return fS.set(e,o),o},"measureText"),Sp=lM;import uM from"wrap-ansi";import dM from"cli-truncate";var mS={},fM=i((e,t,n)=>{let r=e+String(t)+String(n),o=mS[r];if(o)return o;let s=e;if(n==="wrap"&&(s=uM(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=dM(e,t,{position:a})}return mS[r]=s,s},"wrapText"),Ru=fM;var mM=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),pM=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),hM=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),gS=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),gM=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),yS=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),pS=i((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!mM(c))break;n++}let r=e.slice(t,n),o=n;for(;n<e.length;){let c=e[n];if(!pM(c))break;n++}let s=e.slice(o,n),a=e[n];if(!(a===void 0||!hM(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),hS=i((e,t,n)=>{for(let r=t;r<e.length;r++){let o=e[r];if(n&&o==="\x07"||o==="\x9C")return r+1;if(o==="\x1B"){let s=e[r+1];if(s==="\x1B"){r++;continue}if(s==="\\")return r+2}}},"findControlStringTerminatorIndex"),yM=i((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!gS(s))break;n++}let r=e.slice(t,n),o=e[n];if(!(o===void 0||!gM(o)))return{endIndex:n+1,intermediateString:r,finalCharacter:o}},"readEscapeSequence"),xM=i(e=>{switch(e){case"]":return{type:"osc",allowBellTerminator:!0};case"P":return{type:"dcs",allowBellTerminator:!1};case"^":return{type:"pm",allowBellTerminator:!1};case"_":return{type:"apc",allowBellTerminator:!1};case"X":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromEscapeIntroducer"),wM=i(e=>{switch(e){case"\x9D":return{type:"osc",allowBellTerminator:!0};case"\x90":return{type:"dcs",allowBellTerminator:!1};case"\x9E":return{type:"pm",allowBellTerminator:!1};case"\x9F":return{type:"apc",allowBellTerminator:!1};case"\x98":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromC1Introducer"),Tp=i(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(yS(t))return!0;return!1},"hasAnsiControlCharacters"),ls=i((e,t,n,r)=>(r>n&&e.push({type:"text",value:t.slice(n,r)}),e.push({type:"invalid",value:t.slice(r)}),e),"malformedFromIndex"),xS=i(e=>{if(!Tp(e))return[{type:"text",value:e}];let t=[],n=0;for(let r=0;r<e.length;){let o=e[r];if(o===void 0)break;if(o==="\x1B"){let a=e[r+1];if(a===void 0)return ls(t,e,n,r);if(a==="["){let u=pS(e,r+2);if(u===void 0)return ls(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,u.endIndex),parameterString:u.parameterString,intermediateString:u.intermediateString,finalCharacter:u.finalCharacter}),r=u.endIndex,n=r;continue}let c=xM(a);if(c!==void 0){let u=hS(e,r+2,c.allowBellTerminator);if(u===void 0)return ls(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:c.type,value:e.slice(r,u)}),r=u,n=r;continue}let l=yM(e,r+1);if(l===void 0){if(gS(a))return ls(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),r++,n=r;continue}r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"esc",value:e.slice(r,l.endIndex),intermediateString:l.intermediateString,finalCharacter:l.finalCharacter}),r=l.endIndex,n=r;continue}if(o==="\x9B"){let a=pS(e,r+1);if(a===void 0)return ls(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,a.endIndex),parameterString:a.parameterString,intermediateString:a.intermediateString,finalCharacter:a.finalCharacter}),r=a.endIndex,n=r;continue}let s=wM(o);if(s!==void 0){let a=hS(e,r+1,s.allowBellTerminator);if(a===void 0)return ls(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:s.type,value:e.slice(r,a)}),r=a,n=r;continue}if(o==="\x9C"){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"st",value:o}),r++,n=r;continue}if(yS(o)){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"c1",value:o}),r++,n=r;continue}r++}return n<e.length&&t.push({type:"text",value:e.slice(n)}),t},"tokenizeAnsi");var SM=/^[\d:;]*$/,TM=i(e=>{if(!Tp(e))return e;let t="";for(let n of xS(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&SM.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),wS=TM;var SS=i(e=>{let t="";for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r===void 0)continue;let o="";r.nodeName==="#text"?o=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(o=SS(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o,n))),t+=o}return wS(t)},"squashTextNodes"),Xa=SS;var Eu=i(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:CM.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(bM.bind(null,t)),t},"createNode"),Mu=i((e,t)=>{t.parentNode&&Ya(t.parentNode,t),t.parentNode=e,e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount()),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Au(e)},"appendChildNode"),Cp=i((e,t,n)=>{t.parentNode&&Ya(t.parentNode,t),t.parentNode=e;let r=e.childNodes.indexOf(n);r>=0?(e.childNodes.splice(r,0,t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,r)):(e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Au(e)},"insertBeforeNode"),Ya=i((e,t)=>{t.yogaNode&&t.parentNode?.yogaNode?.removeChild(t.yogaNode),t.parentNode=void 0;let n=e.childNodes.indexOf(t);n>=0&&e.childNodes.splice(n,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Au(e)},"removeChildNode"),bp=i((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),vp=i((e,t)=>{e.style=t},"setStyle"),TS=i(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return qa(t,e),t},"createTextNode"),bM=i(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:Xa(e),r=Sp(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let o=e.style?.textWrap??"wrap",s=Ru(n,t,o);return Sp(s)},"measureTextNode"),CS=i(e=>{if(e?.parentNode)return e.yogaNode??CS(e.parentNode)},"findClosestYogaNode"),Au=i(e=>{CS(e)?.markDirty()},"markNodeAsDirty"),qa=i((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,Au(e)},"setTextNodeValue");import Te from"yoga-layout";var IM=i((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?Te.POSITION_TYPE_ABSOLUTE:Te.POSITION_TYPE_RELATIVE),"top"in t&&e.setPosition(Te.EDGE_TOP,t.top??0),"bottom"in t&&e.setPosition(Te.EDGE_BOTTOM,t.bottom??0),"left"in t&&e.setPosition(Te.EDGE_LEFT,t.left??0),"right"in t&&e.setPosition(Te.EDGE_RIGHT,t.right??0)},"applyPositionStyles"),kM=i((e,t)=>{"margin"in t&&e.setMargin(Te.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(Te.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(Te.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(Te.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(Te.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(Te.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(Te.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),RM=i((e,t)=>{"padding"in t&&e.setPadding(Te.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(Te.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(Te.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(Te.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(Te.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(Te.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(Te.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),EM=i((e,t)=>{"flexGrow"in t&&e.setFlexGrow(t.flexGrow??0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexWrap"in t&&(t.flexWrap==="nowrap"&&e.setFlexWrap(Te.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(Te.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(Te.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(Te.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(Te.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(Te.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(Te.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(Number.NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(Te.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(Te.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(Te.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(Te.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(Te.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(Te.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(Te.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(Te.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(Te.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(Te.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(Te.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(Te.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(Te.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(Te.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),MM=i((e,t)=>{"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth(t.minWidth??0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight(t.minHeight??0))},"applyDimensionStyles"),AM=i((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?Te.DISPLAY_FLEX:Te.DISPLAY_NONE)},"applyDisplayStyles"),_M=i((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(Te.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(Te.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(Te.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(Te.EDGE_RIGHT,n)}},"applyBorderStyles"),LM=i((e,t)=>{"gap"in t&&e.setGap(Te.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(Te.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(Te.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),PM=i((e,t={})=>{IM(e,t),kM(e,t),RM(e,t),EM(e,t),MM(e,t),AM(e,t),_M(e,t),LM(e,t)},"styles"),Ip=PM;if(ku())try{await import("./devtools-YINBSZC7.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
|
|
2
|
+
import{A as Qw,B as Zw,C as eS,a as Z,c as Ga,j as Zi,k as Mn,l as es,m as Wo,n as qw,o as Jw,p as xu,q as ap,r as wu,s as cp,t as lp,u as up,w as Ka,x as dp,y as Kn,z as Uo}from"./chunk-6Z75SHX3.js";import{a as Su}from"./chunk-DEODZG6Q.js";import{n as tS,o as nS,p as rS}from"./chunk-EVIDQWMF.js";import{Ab as Er,Da as Pw,Ec as Ww,Fb as gu,Fc as Uw,Ia as $w,Ib as Nw,Ka as Ow,Kb as Bw,La as Dw,Ld as Xw,Mb as Hw,Oa as ip,R as Ew,S as hu,U as Ua,V as Mw,ba as Aw,c as ep,d as Fa,dc as Fw,e as dw,fe as Yw,g as rp,gd as jw,hd as ja,ie as yu,sa as _w,t as Rw,ta as op,ua as Lw,ud as Gw,vd as Kw,xd as sp,yd as Vw,zd as zw}from"./chunk-LNJNRREL.js";import{S as fu,ca as lw,ea as Zm,fa as uw,j as Do,sa as No,ta as ji,ua as Gi}from"./chunk-66B6ZOU7.js";import{$b as Sw,$c as Wa,Gc as En,Ic as At,Ka as tp,Kc as zi,Lc as Xi,Mc as bw,Na as Rn,Oc as Yi,Pc as qi,Qc as Ji,Rc as pu,Sc as Fo,Tc as vw,Vc as Qi,Wc as Iw,_b as ww,_c as np,ac as Tw,db as fw,ib as mu,jd as kw,k as Bo,kb as mw,nc as Rr,ob as pw,oc as Ho,pb as hw,qb as gw,rb as yw,tb as xw,tc as Cw,va as Ki,wa as kn,yc as Vi}from"./chunk-EP46H5P3.js";import{a as i,b as Qm,c as UE}from"./chunk-V4WSBIXB.js";var nC=Qm((NK,tC)=>{"use strict";tC.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 lC=Qm((HK,cC)=>{"use strict";var aC="(?:"+["\\|\\|","\\&\\&",";;","\\|\\&","\\<\\(","\\<\\<\\<",">>",">\\&","<\\&","[&;()|<>]"].join("|")+")",rC=new RegExp("^"+aC+"$"),oC="|&;()<> \\t",CL='"((\\\\"|[^"])*?)"',bL="'((\\\\'|[^'])*?)'",vL=/^#$/,iC="'",sC='"',ih="$",Qo="",IL=4294967296;for(sh=0;sh<4;sh++)Qo+=(IL*Math.random()).toString(16);var sh,kL=new RegExp("^"+Qo);function RL(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(RL,"matchAll");function EL(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(EL,"getVar");function ML(e,t,n){n||(n={});var r=n.escape||"\\",o="(\\"+r+`['"`+oC+`]|[^\\s'"`+oC+"])+",s=new RegExp(["("+aC+")","("+o+"|"+CL+"|"+bL+")+"].join("|"),"g"),a=RL(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(rC.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 EL(t,"",A)}for(i(x,"parseEnvVar"),y=0;y<u.length;y++){var S=u.charAt(y);if(g=g||!m&&(S==="*"||S==="?"),p)h+=S,p=!1;else if(m)S===m?m=!1:m==iC?h+=S:S===r?(y+=1,S=u.charAt(y),S===sC||S===r||S===ih?h+=S:h+=r+S):S===ih?h+=x():h+=S;else if(S===sC||S===iC)m=S;else{if(rC.test(S))return{op:u};if(vL.test(S)){c=!0;var T={comment:e.slice(l.index+y+1)};return h.length?[h,T]:[T]}else S===r?p=!0:S===ih?h+=x():h+=S}}return g?{op:"glob",pattern:h}:h}).reduce(function(l,u){return typeof u>"u"?l:l.concat(u)},[])}i(ML,"parseInternal");cC.exports=i(function(t,n,r){var o=ML(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 kL.test(l)?JSON.parse(l.split(Qo)[1]):l}))},[])},"parse")});var uC=Qm(ah=>{"use strict";ah.quote=nC();ah.parse=lC()});import{spawnSync as jE}from"node:child_process";function Tu(e){return e==="1"||e?.toLowerCase()==="true"}i(Tu,"isTruthyEnv");function oS(e){return e==="0"||e?.toLowerCase()==="false"}i(oS,"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 GE(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}i(GE,"isSshSession");function Va(e={}){let t=e.env??process.env;return Tu(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&GE(t)}i(Va,"isRemoteConptyHost");function rs(e={}){let t=e.env??process.env;return ns(e)||ts(t)}i(rs,"hasMainScreenRenderScrollRisk");function KE(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}i(KE,"isTmuxControlModeEnvHeuristic");var Mr;function za(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(KE(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=jE("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(za,"isTmuxControlMode");function fp(){Mr=void 0}i(fp,"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":za(e)?"tmux_control_mode":ts(t)?"xtermjs_host":Va(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(Tu(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 Cu(e={}){let t=e.env??process.env;if(Tu(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(Cu,"resolveInteractiveSurfacePreference");var VE={enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!0},iS={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 oS(r.KODAX_FULLSCREEN)?t==="owned"&&e!=="tmux_control_mode"&&e!=="unsupported_control_host"?iS:VE:zE(e,t)}i(Vo,"resolveFullscreenPolicy");function zE(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 iS;default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}}i(zE,"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 bu(e={}){return Ko(e)==="owned"}i(bu,"isOwnedRendererPreferred");function vu(e={}){let t=e.env??process.env;return Tu(t.KODAX_FORCE_CLASSIC_REPL)&&!oS(t.KODAX_FORCE_CLASSIC_REPL)}i(vu,"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}},mp=1,pp=2,XE=1e3,sS;function Iu(){if(!(typeof Intl>"u"||typeof Intl.Segmenter!="function"))return sS??=new Intl.Segmenter("en",{granularity:"grapheme"}),sS}i(Iu,"getGraphemeSegmenter");function pn(e){if(!e)return 0;let t=Iu();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=Iu();if(n)for(let r of n.segment(e))t+=or(r.segment)?pp:mp;else for(let r of e)t+=or(r)?pp:mp;return t}i(ir,"getVisualWidth");function YE(e,t){if(!e||t<0)return"";let n=Iu();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(YE,"getCharAtCodePoint");function en(e){if(!e)return[];let t=Iu();if(t){let n=[];for(let r of t.segment(e))n.push(r.segment);return n}return[...e]}i(en,"splitByCodePoints");function qE(e,t,n){return en(e).slice(t,n).join("")}i(qE,"sliceByCodePoints");function aS(e,t){let n=Math.max(0,t),r=en(e),o=0,s=0;for(;o<r.length;){let a=or(r[o])?pp:mp;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(aS,"splitAtVisualColumn");function Xa(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(Xa,"truncateByVisualWidth");var hp=new ss(XE);function gp(e){let t=hp.get(e);if(t!==void 0)return t;let n=ir(e);return hp.set(e,n),n}i(gp,"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 S=m[x],T=or(S)?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=S,h=T,g=x+1);break}p+=S,h+=T,g=x+1,S===" "&&(y=x+1)}if(p.length>0||o.length===0){let x=u,S=o.length;o.push(p),s[c].push([S,x]),a.push([c,x])}u=g}}return{visualLines:o,logicalToVisualMap:s,visualToLogicalMap:a}}i(tn,"calculateVisualLayout");function yp(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(qE(m,0,p));return[l,h]}i(yp,"calculateVisualCursorFromLayout");var xp={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"]}},cS={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 lS={dark:xp,minimal:cS};function re(e="dark"){return lS[e]??xp}i(re,"getTheme");function bW(){return Object.keys(lS)}i(bW,"getThemeNames");import{jsx as on,jsxs as _n,Fragment as sL}from"react/jsx-runtime";import{useMemo as od}from"react";import{jsx as HT}from"react/jsx-runtime";import{createContext as O_,useContext as qo,useEffect as xs,useMemo as BT,useState as D_,useCallback as FT,useRef as Yu}from"react";import{Stream as d_}from"node:stream";import{openSync as f_,writeSync as kT}from"node:fs";import{performance as m_}from"node:perf_hooks";import{tmpdir as p_}from"node:os";import{join as h_}from"node:path";import wp,{forwardRef as ZE,useContext as eM}from"react";import{createContext as JE}from"react";var as=JE({isScreenReaderEnabled:!1});import{createContext as QE}from"react";var ku=QE(void 0);var uS=ZE(({children:e,backgroundColor:t,"aria-label":n,"aria-hidden":r,"aria-role":o,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:l}=eM(as),u=n?wp.createElement("ink-text",null,n):void 0;if(l&&r)return null;let m=wp.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?wp.createElement(ku.Provider,{value:t},m):m});uS.displayName="Box";var An=uS;import oM,{useContext as dS}from"react";import cs from"chalk";import to from"chalk";var tM=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,nM=/^ansi256\(\s?(\d+)\s?\)$/;function rM(e){return e in to}i(rM,"isNamedColor");function Vn(e,t,n){if(!t)return e;if(rM(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=nM.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=tM.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}=dS(as),y=dS(ku),x=g&&m?m:u;if(x==null)return null;let S=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:oM.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:l},internal_transform:S,...h?{internal_cursorAnchor:!0}:{}},g&&m?m:u)}i(nn,"Text");import iM,{useLayoutEffect as sM,useMemo as fS,useState as aM}from"react";function Sp({items:e,children:t,style:n}){let[r,o]=aM(0),s=fS(()=>e.slice(r),[e,r]);sM(()=>{o(e.length)},[e.length]);let a=s.map((l,u)=>t(l,r+u)),c=fS(()=>({position:"absolute",flexDirection:"column",...n}),[n]);return iM.createElement("ink-box",{internal_static:!0,style:c},a)}i(Sp,"Static");import Yo from"node:process";import bT from"react";import{throttle as VA}from"es-toolkit/compat";import rn from"ansi-escapes";import ro from"is-in-ci";import zA from"auto-bind";import{onExit as XA}from"signal-exit";import YA from"patch-console";import{LegacyRoot as qA,ConcurrentRoot as JA}from"react-reconciler/constants.js";import QA from"yoga-layout";import ZA from"wrap-ansi";import e_ from"terminal-size";import cM from"node:process";var Ru=i(()=>cM.env.DEV==="true","isDev");import OM from"react-reconciler";import{DefaultEventPriority as DM,NoEventPriority as ES}from"react-reconciler/constants.js";import*as no from"scheduler";import vS from"yoga-layout";import{createContext as NM}from"react";import bM from"yoga-layout";import lM from"widest-line";var mS=new Map,uM=i(e=>{if(e.length===0)return{width:0,height:0};let t=mS.get(e);if(t)return t;let n=lM(e),r=e.split(`
|
|
3
|
+
`).length,o={width:n,height:r};return mS.set(e,o),o},"measureText"),Tp=uM;import dM from"wrap-ansi";import fM from"cli-truncate";var pS={},mM=i((e,t,n)=>{let r=e+String(t)+String(n),o=pS[r];if(o)return o;let s=e;if(n==="wrap"&&(s=dM(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=fM(e,t,{position:a})}return pS[r]=s,s},"wrapText"),Eu=mM;var pM=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),hM=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),gM=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),yS=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),yM=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),xS=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),hS=i((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!pM(c))break;n++}let r=e.slice(t,n),o=n;for(;n<e.length;){let c=e[n];if(!hM(c))break;n++}let s=e.slice(o,n),a=e[n];if(!(a===void 0||!gM(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),gS=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"),xM=i((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!yS(s))break;n++}let r=e.slice(t,n),o=e[n];if(!(o===void 0||!yM(o)))return{endIndex:n+1,intermediateString:r,finalCharacter:o}},"readEscapeSequence"),wM=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"),SM=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"),Cp=i(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(xS(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"),wS=i(e=>{if(!Cp(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=hS(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=wM(a);if(c!==void 0){let u=gS(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=xM(e,r+1);if(l===void 0){if(yS(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=hS(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=SM(o);if(s!==void 0){let a=gS(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(xS(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 TM=/^[\d:;]*$/,CM=i(e=>{if(!Cp(e))return e;let t="";for(let n of wS(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&TM.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),SS=CM;var TS=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=TS(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o,n))),t+=o}return SS(t)},"squashTextNodes"),Ya=TS;var Mu=i(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:bM.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(vM.bind(null,t)),t},"createNode"),Au=i((e,t)=>{t.parentNode&&qa(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")&&_u(e)},"appendChildNode"),bp=i((e,t,n)=>{t.parentNode&&qa(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")&&_u(e)},"insertBeforeNode"),qa=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")&&_u(e)},"removeChildNode"),vp=i((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),Ip=i((e,t)=>{e.style=t},"setStyle"),CS=i(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return Ja(t,e),t},"createTextNode"),vM=i(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:Ya(e),r=Tp(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let o=e.style?.textWrap??"wrap",s=Eu(n,t,o);return Tp(s)},"measureTextNode"),bS=i(e=>{if(e?.parentNode)return e.yogaNode??bS(e.parentNode)},"findClosestYogaNode"),_u=i(e=>{bS(e)?.markDirty()},"markNodeAsDirty"),Ja=i((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,_u(e)},"setTextNodeValue");import Te from"yoga-layout";var kM=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"),RM=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"),EM=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"),MM=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"),AM=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"),_M=i((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?Te.DISPLAY_FLEX:Te.DISPLAY_NONE)},"applyDisplayStyles"),LM=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"),PM=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"),$M=i((e,t={})=>{kM(e,t),RM(e,t),EM(e,t),MM(e,t),AM(e,t),_M(e,t),LM(e,t),PM(e,t)},"styles"),kp=$M;if(Ru())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,40 +8,40 @@ To install use this command:
|
|
|
8
8
|
|
|
9
9
|
$ npm install --save-dev react-devtools-core
|
|
10
10
|
`.trim()+`
|
|
11
|
-
`);else throw e}var
|
|
12
|
-
`).repeat(F);g&&(D
|
|
13
|
-
`).repeat(F);y&&(v
|
|
14
|
-
`.repeat(o)+
|
|
15
|
-
`;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s
|
|
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),
|
|
18
|
-
`),height:t.length}}};var _r={Single:0,Wide:1,SpacerTail:2},sr={char:" ",width:_r.Single,style:"",hyperlink:void 0};function
|
|
19
|
-
`).length,y="";return e.staticNode&&(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&&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?
|
|
25
|
-
`).slice(1).map(a=>{let c=
|
|
11
|
+
`);else throw e}var IS=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"),kS=i(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),Lu=ES,Rp,RS={name:void 0,version:void 0},Ar=OM({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=Mu(o);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){Ip(s,c),s.yogaNode&&kp(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"){Rp=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}vp(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 CS(e)},resetTextContent(){},hideTextInstance(e){Ja(e,"")},unhideTextInstance(e,t){Ja(e,t)},getPublicInstance:i(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(vS.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(vS.DISPLAY_FLEX)},appendInitialChild:Au,appendChild:Au,insertBefore:bp,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:Au,insertInContainerBefore:bp,removeChildFromContainer(e,t){qa(e,t),kS(t.yogaNode)},commitUpdate(e,t,n,r){Rp&&e.internal_static&&(Rp.isStaticDirty=!0);let o=IS(n,r),s=IS(n.style,r.style);if(!(!o&&!s)){if(o)for(let[a,c]of Object.entries(o)){if(a==="style"){Ip(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}vp(e,a,c)}s&&e.yogaNode&&kp(e.yogaNode,s)}},commitTextUpdate(e,t,n){Ja(e,n)},removeChild(e,t){qa(e,t),kS(t.yogaNode)},setCurrentUpdatePriority(e){Lu=e},getCurrentUpdatePriority:i(()=>Lu,"getCurrentUpdatePriority"),resolveUpdatePriority(){return Lu!==ES?Lu:DM},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:NM(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:RS.name,rendererVersion:RS.version});import UM from"widest-line";import jM from"indent-string";import us from"yoga-layout";import Pu from"yoga-layout";var BM=i(e=>e.getComputedWidth()-e.getComputedPadding(Pu.EDGE_LEFT)-e.getComputedPadding(Pu.EDGE_RIGHT)-e.getComputedBorder(Pu.EDGE_LEFT)-e.getComputedBorder(Pu.EDGE_RIGHT),"getMaxWidth"),MS=BM;import HM from"cli-boxes";import $u from"chalk";var FM=i((e,t,n,r)=>{if(n.style.borderStyle){let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?HM[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,S=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&&($=$u.dim($));let F=s;x&&(F-=1),S&&(F-=1);let D=(Vn(a.left,u,"foreground")+`
|
|
12
|
+
`).repeat(F);g&&(D=$u.dim(D));let v=(Vn(a.right,m,"foreground")+`
|
|
13
|
+
`).repeat(F);y&&(v=$u.dim(v));let z=S?Vn((T?a.bottomLeft:"")+a.bottom.repeat(A)+(I?a.bottomRight:""),l,"foreground"):void 0;S&&h&&(z=$u.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"),AS=FM;var WM=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"),_S=WM;var GM=i((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),o=n.getComputedTop();t=`
|
|
14
|
+
`.repeat(o)+jM(t,r)}return t},"applyPaddingToText"),Ou=i((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===us.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=Ya(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=>Ou(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"),LS=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=Ya(e);if(h.length>0){let g=UM(h),y=MS(c);if(g>y){let x=e.style.textWrap??"wrap";h=Eu(h,y,x)}h=GM(e,h),t.write(l,u,h,{transformers:m})}return}let p=!1;if(e.nodeName==="ink-box"){_S(l,u,e,t),AS(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,S=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:S,y2:T}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let h of e.childNodes)LS(h,t,{offsetX:l,offsetY:u,transformers:m,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),Ep=LS;import KM from"slice-ansi";import VM from"string-width";import{styledCharsFromTokens as zM,styledCharsToString as XM,tokenize as YM}from"@alcalzone/ansi-tokenize";var Mp=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=zM(YM(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=VM(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 Mp;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),S=a+x>u.x2?u.x2-a:x;return KM(g,y,S)}),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 S of s)h=S(h,p);let y=this.caches.getStyledChars(h),x=a;for(let S of y){g[x]=S;let T=Math.max(1,this.caches.getStringWidth(S.value));if(T>1)for(let I=1;I<T;I++)g[x+I]={type:"char",value:"",fullWidth:!1,styles:S.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 XM(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 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);return{width:e,height:t,cells:n}}i(PS,"createScreen");function fs(e,t,n){if(!(t<0||n<0||t>=e.width||n>=e.height))return e.cells[n*e.width+t]}i(fs,"cellAt");function $S(e,t){if(e<0||t<0)throw new RangeError(`Screen dimensions must be non-negative (got width=${e}, height=${t})`);let n=new Array(e*t).fill(sr),r=!1;return{width:e,height:t,setCellAt(o,s,a){if(r)throw new Error("ScreenBuilder.setCellAt called after build()");if(o<0||s<0||o>=e||s>=t)throw new RangeError(`ScreenBuilder.setCellAt out of bounds: (${o}, ${s}) on ${e}x${t}`);n[s*e+o]=a},build(){if(r)throw new Error("ScreenBuilder.build called twice");return r=!0,{width:e,height:t,cells:n}}}}i($S,"createScreenBuilder");function*Du(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);qM(a,c)||(yield{x:s,y:o,prev:a,next:c})}}i(Du,"diffEach");function OS(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(OS,"shiftRowsRegion");function qM(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(qM,"cellsEqual");var Ap="\x1B]8;";function JM(e){return e.endsWith("\x07")?e.slice(0,-1):e}i(JM,"stripOsc8Terminator");function QM(e){if(!e.startsWith(Ap))return;let t=e.slice(Ap.length),n=t.indexOf(";");if(n<0)return;let r=t.slice(n+1),o=JM(r);return o.length>0?o:void 0}i(QM,"parseOsc8Url");function ZM(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(Ap)){let o=QM(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(ZM,"styledCharToCell");function Nu(e){let t=e.getGrid(),n=e.width,r=e.height,o=$S(n,r),s=Math.min(t.length,r);for(let a=0;a<s;a++){let c=t[a];if(!c)continue;let l=Math.min(c.length,n);for(let u=0;u<l;u++){let m=c[u];if(!m)continue;let p=ZM(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(Nu,"outputToScreen");var eA=i((e,t,n)=>{if(e.yogaNode){if(t){let h=Ou(e,{skipStaticElements:!0}),g=h===""?0:h.split(`
|
|
19
|
+
`).length,y="";return e.staticNode&&(y=Ou(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()});Ep(e,r,{skipStaticElements:!0});let o;e.staticNode?.yogaNode&&(o=new ds({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),Ep(e.staticNode,o,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=Nu(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"),_p=eA;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 DS(e=1){return e===0?"":hn(e,"A")}i(DS,"cursorUp");function tA(e=1){return e===0?"":hn(e,"B")}i(tA,"cursorDown");function nA(e=1){return e===0?"":hn(e,"C")}i(nA,"cursorForward");function rA(e=1){return e===0?"":hn(e,"D")}i(rA,"cursorBack");function NS(e){return hn(e,"G")}i(NS,"cursorTo");var oA=hn("G"),BS=hn("H");function HS(e,t){let n="";return e<0?n+=rA(-e):e>0&&(n+=nA(e)),t<0?n+=DS(-t):t>0&&(n+=tA(t)),n}i(HS,"cursorMove");var iA=hn(2,"K");function FS(e){if(e<=0)return"";let t="";for(let n=0;n<e;n++)t+=iA,n<e-1&&(t+=DS(1));return t+=oA,t}i(FS,"eraseLines");var WS=hn("r"),US="\x1B7",jS="\x1B8";function GS(e,t){return hn(e,t,"r")}i(GS,"setScrollRegion");function KS(e=1){return hn(e,"S")}i(KS,"scrollUp");function VS(e=1){return hn(e,"T")}i(VS,"scrollDown");var Bu=hn(0,"m");function zS(e){return`\x1B]${e.join(";")}\x07`}i(zS,"osc");function sA(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(sA,"osc8Id");function Qa(e,t){if(!e)return Za;let n={id:sA(e),...t??{}},r=Object.entries(n).map(([o,s])=>`${o}=${s}`).join(":");return zS(["8",r,e])}i(Qa,"link");var Za=zS(["8","",""]);function Lp(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+=Za),l.hyperlink!==void 0&&(a+=Qa(l.hyperlink)),o=l.hyperlink),l.style!==r&&(r!==""&&(a+=Bu),l.style!==""&&(a+=l.style),r=l.style),a+=l.char)}o!==void 0&&(a+=Za,o=void 0),r!==""&&(a+=Bu,r=""),n.push(a.trimEnd())}return[{type:"stdout",content:n.join(`
|
|
22
|
+
`)}]}i(Lp,"renderFullFrame");var aA=Object.freeze([]),cA=Object.freeze([]);function ms(e,t){if(e===t)return{patches:aA,current:e};let n=[];return e!==""&&n.push({type:"stdout",content:Bu}),t!==""&&n.push({type:"stdout",content:t}),{patches:n,current:t}}i(ms,"transitionStyle");function Hu(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(Hu,"transitionStyleStr");function zo(e,t){if(e===t)return{patches:cA,current:e};let n=[];return e!==void 0&&n.push({type:"stdout",content:Za}),t!==void 0&&n.push({type:"stdout",content:Qa(t)}),{patches:n,current:t}}i(zo,"transitionHyperlink");function XS(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(XS,"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"},ec={type:"stdout",content:`
|
|
23
|
+
`};function Fu(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&&XS(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(Fu,"writeCellWithStyleStr");function tc(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(tc,"moveCursorTo");function Wu(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]=ec;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;tc(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=Hu(s,h.style);Fu(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,ec],{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(Wu,"renderFrameSlice");function Pp(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(Pp,"readLine");function Uu(e,t,n=!1){let r=new ps({x:0,y:0},e.viewport.width);Wu(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(Uu,"fullResetSequence_CAUSES_FLICKER");function $p(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($p,"computeViewportState");function YS(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=$p(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 Du(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(YS,"shouldFullReset");function qS(e,t,n){return!!(t&&t.width===2||e&&e.width===2&&!t||t&&n&&!e)}i(qS,"shouldSkipDiff");var ju=class{static{i(this,"LogUpdate")}options;constructor(t){this.options=t}render(t,n,r={}){if(!this.options.isTTY)return Lp(n);let o=r.inlineBottomAnchored??!1,s=JS(t,o),a=JS(n,o),c=YS(s,a,Pp);if(c.reset)return Uu(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:OS(s.screen,l.top,l.bottom,l.delta)};return[u,...QS(m,a,o)]}return QS(s,a,o)}reset(){}};function Op(e,t){for(let n of t)e.txn(()=>[[n],{dx:0,dy:0}])}i(Op,"emitPatches");function ZS(e,t,n){if(t!==""){let r=ms(t,"");Op(e,r.patches)}if(n!==void 0){let r=zo(n,void 0);Op(e,r.patches)}return{style:"",hyperlink:void 0}}i(ZS,"resetStyleAndHyperlink");function lA(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(lA,"applyShrink");function uA(e,t,n,r){let o="",s,a=!1;for(let c of Du(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(!qS(m,p,h)){if(u<r.viewportY){a=!0;break}if(tc(e,l,u),p){let g=zo(s,p.hyperlink);Op(e,g.patches),s=g.current;let y=Hu(o,p.style);Fu(e,p,y.str)&&(o=y.current)}else if(m){let g=ZS(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(uA,"diffPass");function JS(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(JS,"clampRestingCursor");function dA(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]=ec;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}]}):tc(e,t.cursor.x,t.cursor.y)}i(dA,"restoreCursor");function QS(e,t,n=!1){let r=$p(e,t),o=new ps(e.cursor,t.viewport.width);r.shrinking&&lA(o,e,t);let s=uA(o,e,t,r);return s.needsFullReset?Uu(t,"offscreen",n):(ZS(o,s.currentStyle,s.currentHyperlink),r.growing&&Wu(o,t,e.screen.height,t.screen.height,n),dA(o,t),o.diff)}i(QS,"renderIncremental");var fA="\x1B[?25l",mA="\x1B[?25h",pA=`\x1B[2J${BS}`,hA="\x1B[?2026h",gA="\x1B[?2026l";function yA(e){switch(e.type){case"stdout":return e.content;case"carriageReturn":return"\r";case"cursorHide":return fA;case"cursorShow":return mA;case"cursorMove":return HS(e.x,e.y);case"cursorTo":return NS(e.col);case"clear":return FS(e.count);case"clearTerminal":return pA;case"hyperlink":return Qa(e.uri);case"scrollRegion":{let t=e.top+1,n=e.bottom+1,r=Math.abs(e.delta),o=e.delta>0?KS(r):VS(r);return US+GS(t,n)+o+WS+jS}}}i(yA,"patchToBytes");function Gu(e,t,n=!1){let r="",o=!1;for(let s of t)s.type==="clearTerminal"&&(o=!0),r+=yA(s);if(r.length!==0){if(n&&o){e.write(hA+r+gA);return}e.write(r)}}i(Gu,"applyDiff");function eT(e,t,n={}){if(t===void 0)return!1;let r=e.cellLogUpdate.render(e.prevFrame,t,n);return Gu(e.stdout,r,n.synchronized??!1),e.prevFrame=t,!0}i(eT,"applyCellFrame");function nc(e,t){return{screen:PS(0,0),viewport:{width:t,height:e},cursor:{x:0,y:0,visible:!0}}}i(nc,"emptyFrame");import xA from"is-in-ci";var Pr="\x1B[?2026h",ar="\x1B[?2026l";function $r(e){return"isTTY"in e&&e.isTTY===!0&&!xA}i($r,"shouldSynchronize");var wA=new WeakMap,tT=wA;import{EventEmitter as HA}from"node:events";import FA from"node:process";import Xo,{useState as Bp,useRef as hs,useCallback as wt,useMemo as gs,useEffect as wT}from"react";import WA from"cli-cursor";var SA=i(e=>e>=48&&e<=63,"isCsiParameterByte"),TA=i(e=>e>=32&&e<=47,"isCsiIntermediateByte"),rT=i(e=>e>=64&&e<=126,"isCsiFinalByte");function CA(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(!(SA(s)||TA(s))&&!(s===91&&o===r))return rT(s)?{sequence:e.slice(t,o+1),nextIndex:o+1}:void 0}return"pending"}i(CA,"parseCsiSequence");function bA(e,t,n){let r=t+n+2;if(r>e.length)return"pending";let o=e.codePointAt(r-1);if(!(o===void 0||!rT(o)))return{sequence:e.slice(t,r),nextIndex:r}}i(bA,"parseSs3Sequence");function nT(e,t,n){let r=e[t+n];if(r===void 0)return"pending";if(r==="[")return CA(e,t,n);if(r==="O")return bA(e,t,n)}i(nT,"parseControlSequence");function vA(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(vA,"parseEscapedCodePoint");function IA(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=nT(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=nT(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=vA(e,o);t.push(c.sequence),n=c.nextIndex}return{events:t,pending:""}}i(IA,"parseKeypresses");function Ku(){let e="";return{push(t){let n=IA(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(Ku,"createInputParser");import{createContext as kA}from"react";var oT=kA({exit(){}});oT.displayName="InternalAppContext";var iT=oT;import{EventEmitter as RA}from"node:events";import{createContext as EA}from"react";var MA={isTTY:!1,isRaw:!1,on(){},off(){},pause(){},resume(){},setRawMode(){}},sT=EA({stdin:MA,internal_eventEmitter:new RA,setRawMode(){},isRawModeSupported:!1,internal_exitOnCtrlC:!0});sT.displayName="InternalStdinContext";var aT=sT;import{createContext as AA}from"react";var _A={isTTY:!1,columns:80,rows:24,write(){return!0},on(){},off(){}},cT=AA({stdout:_A,write(){}});cT.displayName="InternalStdoutContext";var lT=cT;import{createContext as LA}from"react";var PA={isTTY:!1,write(){return!0},on(){},off(){}},uT=LA({stderr:PA,write(){}});uT.displayName="InternalStderrContext";var dT=uT;import{createContext as $A}from"react";var fT=$A({activeId:void 0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){}});fT.displayName="InternalFocusContext";var mT=fT;import{createContext as OA}from"react";var pT=OA({setCursorPosition(){}});pT.displayName="InternalCursorContext";var hT=pT;import NA,{PureComponent as BA}from"react";import*as Vu from"node:fs";import{cwd as xT}from"node:process";import bt from"react";import gT from"stack-utils";import DA from"code-excerpt";var Dp=i(e=>e?.replace(`file://${xT()}/`,""),"cleanupPath"),yT=new gT({cwd:xT(),internals:gT.nodeInternals()});function Np({error:e}){let t=e.stack?e.stack.split(`
|
|
24
|
+
`).slice(1):void 0,n=t?yT.parseLine(t[0]):void 0,r=Dp(n?.file),o,s=0;if(r&&n?.line&&Vu.existsSync(r)){let a=Vu.readFileSync(r,"utf8");if(o=DA(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=yT.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 ${Dp(c.file)??""} line ${c.line} column ${c.column}`}," ","(",Dp(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(Np,"ErrorOverview");var rc=class extends BA{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?NA.createElement(Np,{error:this.state.error}):this.props.children}};var UA=" ",jA="\x1B[Z",GA="\x1B";function ST({children:e,stdin:t,stdout:n,stderr:r,writeToStdout:o,writeToStderr:s,exitOnCtrlC:a,onExit:c,setCursorPosition:l}){let[u,m]=Bp(!0),[p,h]=Bp(void 0),[,g]=Bp([]),y=hs(0),x=hs(0),S=hs(new HA);S.current.setMaxListeners(1/0);let T=hs(void 0),I=hs(Ku()),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===GA&&h(_=>_&&void 0)},[a,z]),se=wt(ee=>{fe(ee),S.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===FA.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}},[]),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]);
|
|
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]);wT(()=>{let ee=i(O=>{!u||y.current===0||(O===UA&&_e(),O===jA&&Y())},"handleTabNavigation");S.current.on("input",ee);let _=S.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}))},[]);wT(()=>()=>{WA.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:S.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(iT.Provider,{value:et},Xo.createElement(aT.Provider,{value:Ue},Xo.createElement(lT.Provider,{value:De},Xo.createElement(dT.Provider,{value:me},Xo.createElement(mT.Provider,{value:Rt},Xo.createElement(hT.Provider,{value:Pt},Xo.createElement(rc,{onError:z},e)))))))}i(ST,"App");ST.displayName="InternalApp";var TT=ST;var KA={disambiguateEscapeCodes:1,reportEventTypes:2,reportAlternateKeys:4,reportAllKeysAsEscapeCodes:8,reportAssociatedText:16};function CT(e){let t=0;for(let n of e)t|=KA[n];return t}i(CT,"resolveFlags");var Or={shift:1,alt:2,ctrl:4,super:8,hyper:16,meta:32,capsLock:64,numLock:128};var Hp=i((e,t)=>(t<0?rn.cursorUp(-t):t>0?rn.cursorDown(t):"")+(e<0?rn.cursorBackward(-e):e>0?rn.cursorForward(e):""),"cursorMoveSeq"),Fp=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"),zu=i(()=>{},"noop"),t_=27,n_=91,r_=63,o_=117,i_=48,s_=57,a_=i(e=>e>=i_&&e<=s_,"isDigitByte"),vT=i((e,t)=>{if(e[t]!==t_||e[t+1]!==n_||e[t+2]!==r_)return;let n=t+3,r=n;for(;n<e.length&&a_(e[n]);)n++;if(n!==r){if(n===e.length)return{state:"partial"};if(e[n]===o_)return{state:"complete",endIndex:n}}},"matchKittyQueryResponse"),c_=i(e=>{for(let t=0;t<e.length;t++)if(vT(e,t)?.state==="complete")return!0;return!1},"hasCompleteKittyQueryResponse"),l_=i(e=>{let t=[],n=0;for(;n<e.length;){let r=vT(e,n);if(r?.state==="complete"){n=r.endIndex+1;continue}if(r?.state==="partial")break;t.push(e[n]),n++}return t},"stripKittyQueryResponsesAndTrailingPartial"),Wp=i(e=>e instanceof Error||Object.prototype.toString.call(e)==="[object Error]","isErrorInput"),u_=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){zA(this),this.options=t,this.rootNode=Mu("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=VA(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 ju({isTTY:!!t.stdout.isTTY}),this.prevFrame=nc(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?JA:qA;this.container=Ar.createContainer(this.rootNode,s,null,!1,null,"id",()=>{},()=>{},()=>{},()=>{}),this.unsubscribeExit=XA(this.unmount,{alwaysLast:!1}),Ru()&&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:e_()?.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=nc(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(Wp(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=nc(this.options.stdout.rows??24,this.getTerminalWidth()),n=this.cellLogUpdate.render(t,this.prevFrame);Gu(this.options.stdout,n)},"restoreLastOutput");shouldRestoreManagedShellAfterExternalWrite=i(()=>this.altScreenActive,"shouldRestoreManagedShellAfterExternalWrite");calculateLayout=i(()=>{let t=this.getTerminalWidth();this.rootNode.yogaNode.setWidth(t),this.rootNode.yogaNode.calculateLayout(void 0,void 0,QA.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}=_p(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
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
|
|
30
|
-
`).length,
|
|
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
|
|
32
|
-
`)}this.kittyProtocolEnabled=!1,this.shellTransitionPhase=void 0,this.options.concurrent?Ar.updateContainer(null,this.container,null,
|
|
33
|
-
`),oo}catch{return oo=-1,null}}i(
|
|
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=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(
|
|
29
|
+
`,this.lastOutputHeight=o;return}if(this.isScreenReaderEnabled){let S=$r(this.options.stdout);if(S&&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){S&&this.options.stdout.write(ar);return}let T=this.getTerminalWidth(),I=ZA(r,T,{trim:!1,hard:!0});if(c)this.options.stdout.write(I);else{let A=this.lastOutputHeight>0?rn.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(A+I)}this.lastOutput=r,this.lastOutputToRender=I,this.lastOutputHeight=I===""?0:I.split(`
|
|
30
|
+
`).length,S&&this.options.stdout.write(ar);return}c&&(this.fullStaticOutput+=s);let u=!this.altScreenActive&&!!(a&&a.inputCursor)?[]:null,m=i(S=>{S&&(u?u.push(S):this.options.stdout.write(S))},"emit"),p=u?{write:m}:null;m(this.computeReturnToRestSeq());let h=this.altScreenActive,y=this.options.stdout.isTTY&&o>=this.options.stdout.rows&&h?r:r+`
|
|
31
|
+
`;if(this.lastOutputHeight>=this.options.stdout.rows&&h){if(Yo.env.KODAX_FULLSCREEN_CELLDIFF!=="0"&&this.altScreenActive&&this.fullStaticOutput===""){let I=$r(this.options.stdout);I&&this.options.stdout.write(Pr),this.applyCellFrame(a),I&&this.options.stdout.write(ar),this.lastOutput=r,this.lastOutputToRender=y,this.lastOutputHeight=o;return}let S=$r(this.options.stdout);S&&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(),S&&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 S=Fp(a,!this.altScreenActive),T=S(a.cursor),I=S(a.inputCursor),A=Hp(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=eT(r,t,s);return this.prevFrame=r.prevFrame,a},"applyCellFrame");invalidateCellFrame=i(()=>{this.cellLogUpdate.reset(),this.prevFrame=nc(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}=_p(this.rootNode,this.isScreenReaderEnabled,c);if(this.applyCellFrame(m,s),m?.inputCursor){let p=Fp(m,!this.altScreenActive),h=p(m.cursor),g=p(m.inputCursor),y=Hp(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=bT.createElement(as.Provider,{value:{isScreenReaderEnabled:this.isScreenReaderEnabled}},bT.createElement(TT,{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,zu):(Ar.updateContainerSync(n,this.container,null,zu),Ar.flushSyncWork())}computeReturnToRestSeq(){if(this.displayCursor&&this.prevFrame){let t=Fp(this.prevFrame,!this.altScreenActive)(this.prevFrame.cursor),n=Hp(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,zu):(Ar.updateContainerSync(null,this.container,null,zu),Ar.flushSyncWork()),tT.delete(this.options.stdout);let{exitResult:s}=this,a=i(()=>{Wp(t)?this.rejectExitPromise(t):this.resolveExitPromise(s)},"resolveOrReject"),c=t!==void 0&&!Wp(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=YA((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=l_(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);c_(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[>${CT(t)}u`),this.kittyProtocolEnabled=!0}},IT=u_;var oc=class{static{i(this,"KodaXRenderer")}engineInstance;isConcurrent;constructor(t){this.engineInstance=new IT(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 RT(){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"?h_(p_(),`kodax-render-trace-${process.pid}.log`):e;try{return oo=f_(t,"a"),kT(oo,`=== KODAX render trace pid=${process.pid} ${new Date().toISOString()} platform=${process.platform} node=${process.version} ===
|
|
33
|
+
`),oo}catch{return oo=-1,null}}i(RT,"resolveTraceFd");function g_(e){let t=RT();if(t!==null)try{kT(t,e)}catch{}}i(g_,"traceLine");var Xu=new WeakMap,y_={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},x_={isTTY:!1,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},w_={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function S_(e={}){return e instanceof d_?{stdout:e}:e}i(S_,"getOptions");function T_(e,t,n){let r=Xu.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(),Xu.set(e,r)),r}i(T_,"getInstance");function ys(e){return Xu.get(e)}i(ys,"getRendererInstance");function Up(e,t){let n={stdout:y_,stdin:w_,stderr:x_,debug:!1,exitOnCtrlC:!0,patchConsole:!1,maxFps:30,concurrent:!1,...S_(t)};if(RT()!==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=m_.now(),y=u===0?0:g-u,x=s,S=x.columns??0,T=x.rows??0;return g_(`frame=${m} renderTime=${h.renderTime.toFixed(2)}ms interval=${y.toFixed(2)}ms writes=${c} bytes=${l} viewport=${S}x${T}
|
|
34
|
+
`),c=0,l=0,u=g,m+=1,p?.(h)}}let o=T_(n.stdout,()=>new oc(n),n.concurrent??!1);return o.render(e),{rerender:o.render,unmount(){o.unmount()},waitUntilExit:o.waitUntilExit,cleanup:i(()=>{Xu.delete(n.stdout)},"cleanup"),clear:o.clear}}i(Up,"render");var ET=An,MT=nn,AT=Sp;import{Buffer as b_}from"node:buffer";var v_=/^(?:\x1b)([a-zA-Z0-9])$/,I_=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,LT={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"},PT=[...Object.values(LT),"backspace"],k_=i(e=>["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e),"isShiftKey"),R_=i(e=>["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e),"isCtrlKey"),$T=/^\x1b\[(\d+)(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/,E_=/^\x1b\[(\d+);(\d+):(\d+)([A-Za-z~])$/,M_={A:"up",B:"down",C:"right",D:"left",E:"clear",F:"end",H:"home",P:"f1",Q:"f2",R:"f3",S:"f4"},A_={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"},_T={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"},OT=i(e=>e>=0&&e<=1114111&&!(e>=55296&&e<=57343),"isValidCodepoint"),jp=i(e=>OT(e)?String.fromCodePoint(e):"?","safeFromCodePoint");function DT(e){return e===3?"release":e===2?"repeat":"press"}i(DT,"resolveEventType");function NT(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(NT,"parseKittyModifiers");function __(e){let t=$T.exec(e);if(!t)return null;let n=Number.parseInt(t[1],10),r=t[2]?Math.max(0,Number.parseInt(t[2],10)-1):0,o=t[3]?Number.parseInt(t[3],10):1,s=t[4];if(!OT(n))return null;let a;s&&(a=s.split(":").map(u=>jp(Number.parseInt(u,10))).join(""));let c,l;return n===32?(c="space",l=!0):n===13?(c="return",l=!0):_T[n]?(c=_T[n],l=!1):n>=1&&n<=26?(c=String.fromCodePoint(n+96),l=!1):(c=jp(n).toLowerCase(),l=!0),l&&!a&&(a=jp(n)),{name:c,...NT(r),eventType:DT(o),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:l,text:a}}i(__,"parseKittyKeypress");function L_(e){let t=E_.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==="~"?A_[n]:M_[s];return a?{name:a,...NT(r),eventType:DT(o),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:!1}:null}i(L_,"parseKittySpecialKey");var Gp="\x1B[200~",P_="\x1B[201~";function $_(e){if(!e.startsWith(Gp))return null;let t=e.indexOf(P_,Gp.length);return t===-1?null:e.slice(Gp.length,t)}i($_,"extractBracketedPaste");function Kp(e=""){let t=e,n;if(b_.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=$_(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=__(t);if(r)return r;let o=L_(t);if(o)return o;if($T.test(t))return{name:"",ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,isKittyProtocol:!0,isPrintable:!1};let s={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t};if(s.sequence=s.sequence||t||s.name,t==="\r"||t==="\x1B\r")s.raw=void 0,s.name="return",s.option=t.length===2;else if(t===`
|
|
35
|
+
`)s.name="enter";else if(t===" ")s.name="tab";else if(t==="\b"||t==="\x1B\b")s.name="backspace",s.meta=t.charAt(0)==="\x1B";else if(t==="\x7F"||t==="\x1B\x7F")s.name="delete",s.meta=t.charAt(0)==="\x1B";else if(t==="\x1B"||t==="\x1B\x1B")s.name="escape",s.meta=t.length===2;else if(t===" "||t==="\x1B ")s.name="space",s.meta=t.length===2;else if(t.length===1&&t<="")s.name=String.fromCharCode(t.charCodeAt(0)+97-1),s.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")s.name="number";else if(t.length===1&&t>="a"&&t<="z")s.name=t;else if(t.length===1&&t>="A"&&t<="Z")s.name=t.toLowerCase(),s.shift=!0;else if(n=v_.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(n[1]??"");else if(n=I_.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=LT[c]??"",s.shift=k_(c)||s.shift,s.ctrl=R_(c)||s.ctrl}return s}i(Kp,"parseKeypress");var N_=50;function qu(e){return{columns:e?.columns??80,rows:e?.rows??24}}i(qu,"resolveTerminalSize");var io=O_(null),Vp={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")};var WT={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function B_(e){for(let t of e)if(t.rawMode)return!0;return!1}i(B_,"hasRawModeSubscribers");function H_({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&&B_(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(H_,"createTerminalInputController");var F_=i(({children:e,runtime:t})=>{let[n,r]=D_(()=>t.terminalSize);xs(()=>{if(r(qu(t.stdout)),typeof t.stdout?.on!="function"||typeof t.stdout?.off!="function")return;let c=i(()=>{r(qu(t.stdout))},"handleResize");return t.stdout.on("resize",c),()=>{t.stdout.off?.("resize",c)}},[t.stdout]);let o=FT(c=>typeof t.stdout?.write!="function"?!1:(t.stdout.write(c),!0),[t.stdout]),s=BT(()=>H_({stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported}),[t.stdin,t.isRawModeSupported,t.setRawMode]);xs(()=>()=>{s.dispose()},[s]);let a=BT(()=>({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 HT(io.Provider,{value:a,children:e})},"TuiRuntimeProvider");function W_(e){let t=e?.stdout??Vp,n=e?.stdin??WT,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:qu(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(W_,"createRuntimeValue");function Ju(e,t){let n=W_(t),r=Up(HT(F_,{runtime:n,children:e}),t);return n.attachExit(r.unmount),r}i(Ju,"render");var R=ET,b=MT,ws=AT;function U_(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&&PT.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(U_,"createCompatKeypress");function Qu(e,t={}){let{isActive:n=!0}=t,r=Yu(e),o=Yu(null),s=Yu(null);xs(()=>{r.current=e},[e]),xs(()=>{if(!n){o.current=null,s.current&&(clearTimeout(s.current),s.current=null);return}return o.current=Ku(),()=>{o.current?.reset(),o.current=null,s.current&&(clearTimeout(s.current),s.current=null)}},[n]);let a=FT(c=>{let{input:l,key:u}=U_(Kp(c));l==="c"&&u.ctrl||r.current(l,u)},[]);sc(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)},N_))},{isActive:n,rawMode:!0})}i(Qu,"useInput");function cr(){return{stdout:qo(io)?.stdout??Vp}}i(cr,"useStdout");function ic(){let e=qo(io),t=e?.stdin??WT,n=e?.setRawMode??(r=>{typeof t?.setRawMode=="function"&&t.setRawMode(r)});return{stdin:t,setRawMode:n,isRawModeSupported:e?.isRawModeSupported??typeof t?.setRawMode=="function"}}i(ic,"useStdin");function so(){return{exit:qo(io)?.exit??(()=>{})}}i(so,"useApp");function Ss(){return qo(io)?.stdout??Vp}i(Ss,"useTerminalOutput");function Ts(){let e=Ss();return qo(io)?.terminalSize??qu(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 sc(e,t={}){let{isActive:n=!0,rawMode:r=!0}=t,o=qo(io),{stdin:s,setRawMode:a,isRawModeSupported:c}=ic(),l=Yu(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(sc,"useTerminalInput");import{jsx as X_}from"react/jsx-runtime";import{useInsertionEffect as Y_,useMemo as q_}from"react";var j_="\x1B[?1049h",G_="\x1B[?1049l";var K_="\x1B[2J",V_="\x1B[?1000h\x1B[?1002h\x1B[?1006h",z_="\x1B[?1006l\x1B[?1002l\x1B[?1000l";function Zu(e={}){let t=e.mouseTracking!==!1,n=e.clearOnEnter===!0;return j_+(n?K_:"")+"\x1B[H"+(t?V_:"")}i(Zu,"buildAlternateScreenEnterSequence");function ed(e={}){return(e.mouseTracking!==!1?z_:"")+G_}i(ed,"buildAlternateScreenExitSequence");var zp=i(({children:e,mouseTracking:t=!0,enabled:n=!0,clearOnEnter:r=!1})=>{let o=Ss(),{rows:s}=Ts(),a=Cs(),c=q_(()=>n&&o.isTTY===!0,[n,o]);return Y_(()=>{if(!c)return;let l=ys(o);if(l?.setShellMode?.("virtual",t),l?.beginShellTransition?.("enter-alt-screen"),!!a(Zu({mouseTracking:t,clearOnEnter:r})))return l?.setAltScreenActive?.(!0,t),()=>{l?.beginShellTransition?.("exit-alt-screen"),l?.clearTextSelection?.(),l?.setAltScreenActive?.(!1),a(ed({mouseTracking:t}))}},[r,c,t,o,a]),X_(R,{flexDirection:"column",height:s,width:"100%",flexGrow:1,flexShrink:0,children:e})},"AlternateScreen");import{jsx as ao,jsxs as VT}from"react/jsx-runtime";import{jsx as Q_}from"react/jsx-runtime";import Z_,{useEffect as Xp,useImperativeHandle as eL,useMemo as tL,useRef as td,useCallback as cc,useState as nL}from"react";function J_(e,t,n){return Math.max(t,Math.min(e,n))}i(J_,"clamp");function ac(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=J_(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(ac,"computeOverscanWindow");function UT(e,t,n){let r=ac({...n,globalScrollTop:e}),o=ac({...n,globalScrollTop:t});return r.bin===o.bin}i(UT,"staysWithinOverscanBlock");function jT(e){let t=e??void 0;for(;t?.parentNode;)t=t.parentNode;return t&&typeof t.onRender=="function"?(t.onRender(),!0):!1}i(jT,"scheduleRenderFromNode");function GT(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:nd(t,t.scrollTop)}}i(GT,"normalizeScrollSnapshot");function KT(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(KT,"areSnapshotsEqual");function rL(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(rL,"areWindowsEqual");function nd(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(nd,"clampScrollTop");function Yp(e){let t=Math.max(0,e.viewportHeight),n=nd(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=ac({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(Yp,"resolveScrollWindow");function oL(e){let t=nd(e,e.scrollTop);return Math.max(0,e.scrollHeight-e.viewportHeight-t)}i(oL,"resolveNativeScrollTop");var qp=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=td(null),S=td(new Set),T=td(GT({scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,sticky:l,overscanRows:y})),[I,A]=nL(()=>Yp(T.current)),$=td(null),F=cc(()=>{for(let Y of S.current)Y()},[]),D=cc((Y,V=!0)=>{let ae=T.current,Q=GT(Y),J=Yp(Q);return T.current=Q,A(q=>rL(q,J)?q:J),V&&!KT(ae,Q)&&F(),{previous:ae,snapshot:Q,window:J,changed:!KT(ae,Q)}},[F]),v=cc(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??nd(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(!UT(ue,et,Ue))return!1;let De=ac({...Ue,globalScrollTop:et});return Q.scrollTop=et,Q.attributes&&(Q.attributes.inWindowScrollTop=De.inBlockOffset),jT(Q)?($.current=Ie,V.sticky&&(T.current={...T.current,sticky:!1},p?.(!1)),F(),!0):!1},[F,p]),z=cc(Y=>{let V=x.current;V&&T.current.overscanRows&&(V.scrollTop=Y.viewportTop)},[]);Xp(()=>{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=cc(()=>{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]);Xp(()=>{fe()},[fe]);let se=tL(()=>({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 S.current.add(Y),()=>{S.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]);eL(u,()=>se,[se]),Xp(()=>{h?.(I)},[h,I]);let ge=$.current!==null,L=ge?{...T.current,scrollTop:$.current}:T.current,k=ge?Yp(L):I,P=g?g(k):e,Re=Math.max(0,c+o),_e=oL(L);return Z_.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}:{}},Q_(R,{flexDirection:"column",flexGrow:1,flexShrink:0,width:"100%",children:P}))},"ScrollBox");var iL=80;function lc(e){if(!(!e?.visible||!e.label))return e.hint?`${e.label}: ${e.hint}`:e.label}i(lc,"resolveFullscreenChromeSlotText");function rd(e,t){if(!e)return 0;let n=Math.max(1,(typeof t=="number"?t:iL)-2);return Math.max(1,tn(e.split(`
|
|
36
|
+
`),n,0,0).visualLines.length)}i(rd,"measureFullscreenChromeSlotRows");var Jp=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:S,overscanRows:T})=>{let I=i((se,ge)=>ge?ao(R,{paddingX:1,children:ao(b,{dimColor:se?.tone!=="accent",children:ge})}):null,"renderChromeSlot"),A=lc(a),$=lc(c),F=rd(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 VT(R,{flexDirection:"column",width:l,flexGrow:1,flexShrink:0,children:[e?ao(R,{flexDirection:"column",flexShrink:0,children:e}):null,VT(R,{flexDirection:"column",flexGrow:1,overflowY:"hidden",children:[ao(qp,{width:l,flexGrow:1,flexShrink:1,paddingTop:F,scrollTop:u,scrollHeight:m,viewportHeight:fe,stickyScroll:h,scrollRef:g,onScrollTopChange:y,onStickyChange:x,onWindowChange:S,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 aL from"string-width";function cL(){return Ts().columns}i(cL,"useTerminalWidth");var Qp=i(({lines:e,cursorRow:t,cursorCol:n,prompt:r=">",placeholder:o="Type your message...",focus:s=!0,terminalFocused:a=!0,isPasting:c=!1,editingMode:l="idle",theme:u="dark",width:m})=>{let p=od(()=>re(u),[u]),h=cL(),g=m??h,y=aL(r)+1,x=od(()=>{let F=Math.max(20,g-y);return tn(e,F,t,n)},[e,g,t,n,y]),S=od(()=>{if(!x)return null;let[F,D]=yp(x,[t,n]);return{row:F,col:D}},[x,t,n]),T=s&&a,I=c&&e.some(F=>F.length>0),A=x,$=S;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(sL,{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}=aS(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"),lL=i(({value:e,cursorCol:t,prompt:n=">",placeholder:r,focus:o=!0,theme:s="dark"})=>{let a=od(()=>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 Zp={"[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"}},uL=/^\x1b\[([0-9]+);?([0-9]+)?([~A-Za-z])?/,dL=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/;function fL(e){switch(e&3){case 0:return"left";case 1:return"middle";case 2:return"right";default:return"unknown"}}i(fL,"parseMouseButton");function mL(e){return{shift:(e&1)!==0,alt:(e&2)!==0,ctrl:(e&4)!==0,meta:(e&8)!==0}}i(mL,"parseModifier");function id(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(dL);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:fL(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(uL);if(s){let[,l,u,m]=s,p=m||"~",g=Zp[o];if(g)return Object.assign(n,g),n;let y="["+l+p+"]",x=Zp[y];if(x&&x.name){if(n.name=x.name,u){let S=parseInt(u,10)-1,T=mL(S);Object.assign(n,T)}return n}}let c=Zp[o];if(c)return Object.assign(n,c),n;if(e.startsWith("\x1B\x1B")){n.meta=!0;let l="\x1B"+e.slice(2),u=id(l);return n.name=u.name,n}}return n}i(id,"parseKeypress");var uc=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=id(s,this.inBracketedPaste);this.emit(a)}break}let{sequence:n,remaining:r}=t;this.buffer=r;let o=id(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 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(
|
|
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&&
|
|
44
|
-
`):""}i(
|
|
41
|
+
`;return}return}for(let n of this.listeners)n(t)}clear(){this.buffer=""}};function zT(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(zT,"isFunctionKey");function pL(e){return e.ctrl||e.meta||zT(e)?!1:e.sequence.length===1&&e.sequence.charCodeAt(0)>=32}i(pL,"isPrintable");function hL(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(hL,"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 kK={[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 eh={streamingState:gn.Idle,currentResponse:"",history:[],pendingToolCalls:[],sessionId:"",provider:"",model:"",isLoading:!1};import gL,{createContext as yL,useContext as xL,useEffect as XT,useCallback as wL,useRef as th}from"react";var SL=50;function nh(){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(nh,"createKeypressManager");var YT=yL(null);function sd({children:e,enabled:t=!0}){let{stdout:n}=cr(),r=th(nh()),o=th(null),s=th(null),a=wL(c=>{t&&r.current.dispatch(c)},[t]);return XT(()=>{if(!t)return;n?.write?.("\x1B[?2004h");let c=new uc;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]),sc(c=>{t&&(s.current&&clearTimeout(s.current),o.current?.feed(c),c.length!==0&&(s.current=setTimeout(()=>{o.current?.feed("",!0)},SL)))},{isActive:t,rawMode:!0}),gL.createElement(YT.Provider,{value:r.current},e)}i(sd,"KeypressProvider");function rh(){let e=xL(YT);if(!e)throw new Error("useKeypressManager must be used within a KeypressProvider");return e}i(rh,"useKeypressManager");function yn(e,t,n=[]){let r=rh(),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;XT(()=>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 qT={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 dc=["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 TL='[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 ad(e=console.warn){let t=!1;return()=>{t||(t=!0,e(TL))}}i(ad,"createAutoInProjectDeprecationEmitter");var JT=Bw(),Pn=new Set(JT.filter(e=>e.sideEffect==="mutates-fs"&&e.requiredParams.includes("path")).map(e=>e.name)),QT=new Set(JT.filter(e=>e.sideEffect!=="readonly").map(e=>e.name)),ZT=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"]),eC=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 oh(e){return e!==void 0&&dc.includes(e)}i(oh,"isPermissionMode");function lr(e,t){return oh(e)?e:t}i(lr,"normalizePermissionMode");import cd from"fs";import vt from"path";import mc from"os";var mC=UE(uC(),1);var dC=new Set(["/dev/null","nul","NUL"]);function ch(e){return dC.has(e)||dC.has(e.toLowerCase())}i(ch,"isNullDevice");function fc(e){let t=e.trim();if(!t)return{statements:[],unparseable:!1};if(t.includes("`"))return{statements:[],unparseable:!0};let n;try{n=(0,mC.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(fC(`&${y.op}`,x)),p+=2;continue}l=!0;continue}if(_L(g)){let y=null,x=s[s.length-1];x!==void 0&&/^[0-9]+$/.test(x)&&(y=x,s.pop());let S=n[p+1];if(typeof S!="string"){l=!0;continue}a.push(fC(y?`${y}${g}`:g,S)),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(fc,"parseBashCommand");var AL=new Set([">",">>","<","<<","<<<","&>","&>>"]),pC=/^([0-9]+|&)(>>?|<<?)$/;function _L(e){return AL.has(e)||pC.test(e)}i(_L,"isRedirectionOp");function fC(e,t){let n=null,r=e,o=pC.exec(e);return o&&(n=o[1],r=o[2]),{op:e,fd:n,append:r===">>"||e==="&>>",input:r==="<"||r==="<<"||e==="<<<",target:t}}i(fC,"parseRedirection");var LL=vt.join(".agent","plan_mode_doc.md"),ld=new Map,ud=null;function PL(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\s+/g," ").toLowerCase();for(let n of eC)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(PL,"isSingleBashReadCommand");var $L=/^[a-zA-Z0-9]+$/;function OL(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(!$L.test(r))return!1;return n}i(OL,"isHelpCommand");function zn(e){if(!e||!e.trim())return!1;if(OL(e))return!0;let t=e.trim().replace(/\\\r?\n/g," "),n=fc(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||!ch(c.target))return!1;let a=s.argv.join(" ");if(a&&!(r&&s.argv[0]?.toLowerCase()==="cd"&&s.argv.length>=2)&&!PL(a))return!1}}return!0}i(zn,"isBashReadCommand");function uh(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(uh,"getDirectShellBypassBlockReason");var gC=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=fc(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 ZT)if(c===s||a!==null&&c===a)return!0}for(let s of o)if(gC.has(s))return!0;for(let s of r.redirections)if(!s.input&&!ch(s.target))return!0}return!1}i(Xn,"isBashWriteCommand");function dh(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(dh,"parseAllowedToolPattern");function DL(e,t){if(t==="*")return!1;if(t.endsWith(":*")){let n=t.slice(0,-2);return e.startsWith(n)}return e===t}i(DL,"matchesBashPatternLegacy");function NL(e,t){if(t==="*")return!1;if(t.endsWith(":*")){let n=t.slice(0,-2);return e===n}return e===t}i(NL,"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=dh(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&&NL(c.value,l))return!0;return!1}for(let{pattern:c}of a)if(c&&DL(s,c))return!0;return!1}i(co,"isToolCallAllowed");function fd(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(fd,"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)||wC().some(c=>vs(n,c)))}catch{return!1}}i(ur,"isAlwaysConfirmPath");function hC(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"&&BL.test(e)):!!(e.startsWith(".")&&/[/\\]/.test(e))}i(hC,"looksLikePath");var BL=/^\/[A-Za-z][A-Za-z0-9]*(?::[A-Za-z0-9]+)?$/;function HL(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(HL,"legacyRegexPathScan");function md(e){let t=new Set,n=fc(e);if(!n.unparseable)for(let r of n.statements)for(let o of r.stages){for(let s of o.argv)hC(s)&&t.add(s);for(let s of o.redirections)hC(s.target)&&t.add(s.target)}for(let r of HL(e))t.add(r);return Array.from(t)}i(md,"extractPathsFromCommand");function fh(e,t){let n=md(e);for(let r of n)if(ur(r,t))return!0;return!1}i(fh,"isCommandOnProtectedPath");function dd(e){let t=vt.normalize(e);return process.platform==="win32"?t.toLowerCase():t}i(dd,"normalizePathForComparison");function FL(e,t){return dd(e)===dd(t)}i(FL,"pathsEqual");function vs(e,t){let n=dd(e),r=dd(t);return n===r||n.startsWith(r+vt.sep)}i(vs,"isPathInsideDirectory");function pd(e,t){try{let n=vt.resolve(t),r=vt.resolve(n,xC(yC(e)));return vs(r,n)}catch{return!1}}i(pd,"isPathInsideProject");function WL(e){let t=e.match(/[A-Za-z]:[\\/][^\s;|&<>(){}'"]+|\/[^\s;|&<>(){}'"]+/g);return t?t.filter(n=>!/^(?:\/dev\/|\/proc\/)/i.test(n)):[]}i(WL,"collectAbsolutePathCandidates");function mh(e){let t=vt.resolve(e),n=ld.get(t);if(n)return n;if(cd.existsSync(t)){let c=cd.realpathSync.native(t);return ld.set(t,c),c}let r=[],o=t;for(;!cd.existsSync(o);){let c=vt.dirname(o);if(c===o)return ld.set(t,t),t;r.unshift(vt.basename(o)),o=c}let s=cd.realpathSync.native(o),a=vt.join(s,...r);return ld.set(t,a),a}i(mh,"resolveExistingPathPrefix");function yC(e){return e==="~"?mc.homedir():e.startsWith(`~${vt.sep}`)||e.startsWith("~/")||e.startsWith("~\\")?vt.join(mc.homedir(),e.slice(2)):e}i(yC,"expandHomeDirectory");function xC(e){let t=mc.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(xC,"expandSystemTempAlias");function UL(e,t){let n=vt.resolve(t??process.cwd()),r=xC(yC(e)),o=vt.isAbsolute(r)?vt.resolve(r):vt.resolve(n,r);return mh(o)}i(UL,"resolvePermissionPath");function wC(){if(ud)return ud;let e=new Set,t=[mc.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(mh(n))}catch{}return ud=Array.from(e),ud}i(wC,"getSystemTempDirectories");function ph(e){let t=mh(e??process.cwd());return{projectPlanDoc:vt.join(t,LL),systemTempDirs:wC()}}i(ph,"getPlanModeAllowedWritablePaths");function lh(e,t){let n=UL(e,t),{projectPlanDoc:r,systemTempDirs:o}=ph(t);return FL(n,r)?!0:o.some(s=>vs(n,s))}i(lh,"isPlanModeAllowedPath");function jL(e){let{projectPlanDoc:t,systemTempDirs:n}=ph(e),r=n[0]??mc.tmpdir();return`${t} or the system temp directory (${r})`}i(jL,"formatPlanModeAllowedLocations");var GL=new Set(["-a","--append","-i","--ignore-interrupts"]);function KL(e){let t=[];for(let n=1;n<e.argv.length;n+=1){let r=e.argv[n];GL.has(r)||r.startsWith("-")||t.push(r)}return t}i(KL,"collectTeeTargets");function VL(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(VL,"collectPowerShellWriteTargets");function Zo(e){let t=new Set,n=i(o=>{let s=o?.trim();s&&t.add(s)},"pushTarget");for(let o of md(e))n(o);let r=fc(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 KL(s))n(c);else if(gC.has(a))for(let c of VL(s))n(c)}}return Array.from(t)}i(Zo,"collectBashWriteTargets");function hh(e,t){if(!Xn(e))return{dangerous:!1};let n=new Set([...Zo(e),...WL(e)]);for(let r of n)if(!pd(r,t))return{dangerous:!0,reason:`Command may modify file outside project: ${r}`};return{dangerous:!1}}i(hh,"getBashOutsideProjectWriteRisk");function Dr(e,t,n){let r=jL(n);if(Hw(e))return null;if(Pn.has(e)){let o=typeof t.path=="string"?t.path:"";return o?lh(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=>!lh(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 zL 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 XL(){try{return Ki()}catch{return}}i(XL,"safeGetAgentConfigHome");function SC(e,t){let n=XL();if(n&&Is(e,n))return"user-kodax";let r=lo.join(lo.resolve(t),".kodax");if(Is(e,r))return"project-kodax"}i(SC,"resolveProtectedZone");function YL(){let e=new Set;try{e.add(zL.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(YL,"getSystemTempDirs");var qL=new Set(["bash"]),pc={toolNames:qL,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=YL(),c=lo.resolve(t);for(let l of md(n)){let u;try{u=lo.resolve(t,l)}catch{continue}let m=SC(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}SC(u,t)||Is(u,c)||a.some(h=>Is(u,h))||r.push({kind:"shell_redirect_outside",target:l})}return r}};function yc(e){return e.type==="tool_summary"?{type:"event",text:e.text,icon:"tool"}:e}i(yc,"seedToHistoryItem");var JL="[Thinking]",QL="[/Thinking]",ZL="Untitled Session",TC=50,eP=60,bC="...",vC=["[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:"],IC=[/(?:^|\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:/],tP=/(^|\r?\n)\[Thinking\]\r?\n([\s\S]*?)\r?\n\[\/Thinking\](?=\r?\n|$)/g;function nP(e){let t=-1;for(let n of vC){let r=e.indexOf(n);r>=0&&(t===-1||r<t)&&(t=r)}for(let n of IC){let r=n.exec(e);r&&r.index>=0&&(t===-1||r.index<t)&&(t=r.index)}return t}i(nP,"findControlPlaneCutIndex");function rP(e){return vC.some(t=>e.includes(t))||IC.some(t=>t.test(e))}i(rP,"hasControlPlaneSignal");function kC(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(kC,"collectTextBlocks");function oP(e){return typeof e=="string"?e:Array.isArray(e)?kC(e).join(`
|
|
42
|
+
`):""}i(oP,"extractAssistantTextOnly");function gc(e,t,n){n.trim().length!==0&&e.push({type:t,text:n})}i(gc,"pushSeed");function CC(e){return e.replace(/^\n+/,"").replace(/\n+$/,"")}i(CC,"stripLegacyTagBoundaryNewlines");function iP(e){let t=e.name,n=e.input;if(!n)return`\u26A1 ${t}`;let r=t==="bash"?hc(String(n.command??"")):t==="read"||t==="write"||t==="edit"?hc(String(n.file_path??n.path??"")):t==="grep"||t==="glob"?hc(String(n.pattern??"")):t==="web_search"||t==="web_fetch"?hc(String(n.query??n.url??"")):void 0;return r?`\u26A1 ${t}(${r})`:`\u26A1 ${t}`}i(iP,"formatToolUseSummary");function hc(e,t=60){let n=e.replace(/\s+/g," ").trim();return n.length>t?`${n.slice(0,t)}...`:n}i(hc,"truncateToolHint");function sP(e){if(!e.includes(JL)||!e.includes(QL))return e.trim().length>0?[{type:"assistant",text:e}]:[];let t=[],n=0;for(let r of e.matchAll(tP)){let o=r.index??-1,s=r[1]??"",a=r[2]??"";if(o<0)continue;let c=o+s.length;gc(t,"assistant",CC(e.slice(n,c))),gc(t,"thinking",a),n=o+r[0].length}return gc(t,"assistant",CC(e.slice(n))),t.length===0?e.trim().length>0?[{type:"assistant",text:e}]:[]:t}i(sP,"parseLegacyAssistantContent");function aP(e){if(typeof e=="string")return sP(e);if(!Array.isArray(e))return[];let t=[],n=[],r=i(()=>{n.length!==0&&(gc(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&&gc(t,"thinking",String(o.thinking));break;case"tool_use":if(r(),"name"in o){let s=iP(o);s&&t.push({type:"tool_summary",text:s})}break;case"tool_result":case"redacted_thinking":break;default:break}return r(),t}i(aP,"extractAssistantHistorySeeds");var cP=["You are the Scout role","You are the Generator role","You are the Planner role","You are the Evaluator role"],lP=/\r?\n?\`\`\`kodax[\w-]*[\s\S]*?\`\`\`\s*/g;function uP(e){return cP.some(t=>e.includes(t))}i(uP,"isManagedWorkerPrompt");function dP(e){return e.replace(lP,"").trim()}i(dP,"stripManagedProtocolBlocks");function xc(e){switch(e.role){case"assistant":return aP(e.content).map(n=>({...n,text:dP(n.text)})).filter(n=>n.text.length>0);case"user":{if(e._synthetic)return[];let t=wc(e.content);return t.trim().length===0||uP(t)?[]:[{type:"user",text:t}]}case"system":return[];default:return[]}}i(xc,"extractHistorySeedsFromMessage");function wc(e){return typeof e=="string"?e:Array.isArray(e)?kC(e).join(`
|
|
44
|
+
`):""}i(wc,"extractTextContent");function fP(e){let t=e.replace(/\s+/g," ").trim();return t?t.length>TC?`${t.slice(0,TC)}${bC}`:t:ZL}i(fP,"formatSessionTitle");function Sc(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.role!=="assistant")continue;let r=oP(n.content);if(r)return r}return""}i(Sc,"extractLastAssistantText");function RC(e,t,n,r){let o=[Sc(e),t.trim(),n?.trim()??"",r?.trim()??""];for(let s of o){let a=uo(s);if(a)return a}return""}i(RC,"resolveCompletedAssistantText");function uo(e){let t=e.trim();if(!t)return"";let n=nP(t);return n===0?"":(n>0?t.slice(0,n):t).trim()}i(uo,"sanitizeUserFacingAssistantText");function EC(e){let t=e.trim();return t.length>0&&uo(t).length===0&&rP(t)}i(EC,"isControlPlaneOnlyAssistantText");function ks(e){let t=e.find(r=>r.role==="user"),n=t?wc(t.content):"";return fP(n)}i(ks,"extractTitle");function mP(e,t=eP){let n=e.replace(/\n/g," "),r=n.length>t?bC:"";return n.slice(0,t)+r}i(mP,"formatMessagePreview");import d from"chalk";import hd from"fs";import AC from"path";var gd=kn("config.json");function _C(){return AC.join(process.cwd(),".kodax","config.local.json")}i(_C,"getProjectConfigFile");function yd(e=process.env){let n=Tc(gd).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=MC(n.classifierModel),l=MC(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(yd,"loadAutoModeSettings");function MC(e){if(typeof e!="string")return;let t=e.trim();return t.length===0?void 0:t}i(MC,"nonEmptyString");function Tc(e){try{if(hd.existsSync(e))return JSON.parse(hd.readFileSync(e,"utf-8"))}catch{}return{}}i(Tc,"readJsonFile");function LC(e,t){hd.mkdirSync(AC.dirname(e),{recursive:!0}),hd.writeFileSync(e,JSON.stringify(t,null,2))}i(LC,"writeJsonFile");function Cc(e){let t=Tc(gd);LC(gd,{...t,permissionMode:e})}i(Cc,"savePermissionModeUser");function Rs(){let e=Tc(gd),t=Tc(_C()),n=e.alwaysAllowTools??[],r=t.alwaysAllowTools??[];return[...new Set([...n,...r])]}i(Rs,"loadAlwaysAllowTools");function xd(e,t,n=!1){let r=fd(e,t,n);if(!r)return;let o=_C(),s=Tc(o),a=s.alwaysAllowTools??[];a.includes(r)||LC(o,{...s,alwaysAllowTools:[...a,r]})}i(xd,"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}},pP=new Es;import $n from"chalk";import{Buffer as DC}from"node:buffer";import{spawn as hP}from"node:child_process";import PC from"node:process";var ei="\x1B",gP="\x07",gh=`${ei}\\`;function $C(e,t){return e.SSH_CONNECTION?!1:t==="win32"||t==="darwin"||t==="linux"}i($C,"shouldPreferNativeClipboard");function yP(e,t){let n=DC.from(e,"utf8").toString("base64"),r=t.TERM==="xterm-kitty"?gh:gP,o=`${ei}]52;c;${n}${r}`;return t.TMUX?`${ei}Ptmux;${o.replaceAll(ei,`${ei}${ei}`)}${gh}`:t.STY?`${ei}P${o}${gh}`:o}i(yP,"buildOscSequence");async function wd(e,t,n){return new Promise((r,o)=>{let s=hP(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(wd,"execClipboardCommand");function xP(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=DC.from(e,"utf8");return[["powershell",["-NoProfile","-NonInteractive","-Command",t],n],["pwsh",["-NoProfile","-NonInteractive","-Command",t],n],["cmd",["/c","chcp 65001 >nul & clip"],n]]}i(xP,"buildWindowsClipboardCandidates");async function OC(e,t,n){if(t.SSH_CONNECTION)return!1;switch(n){case"win32":{let r=xP(e);for(let[o,s,a]of r)try{if(await wd(o,s,a))return!0}catch{}return!1}case"darwin":return wd("pbcopy",[],e);case"linux":{let r=[["wl-copy",[]],["xclip",["-selection","clipboard"]],["xsel",["--clipboard","--input"]]];for(let[o,s]of r)try{if(await wd(o,s,e))return!0}catch{}return!1}default:return!1}}i(OC,"tryNativeClipboard");async function wP(e,t){if(!t.TMUX)return!1;let n=t.LC_TERMINAL==="iTerm2"?["load-buffer","-"]:["load-buffer","-w","-"];try{return await wd("tmux",n,e)}catch{return!1}}i(wP,"tryTmuxClipboard");async function ti(e,t={}){let n=t.env??PC.env,r=t.platform??PC.platform,o=e.trimEnd(),s=yP(o,n);if(!o)throw new Error("Nothing to copy.");if($C(n,r))try{if(await OC(o,n,r))return{path:"native"}}catch{}if(await wP(o,n))return{path:"tmux-buffer"};if(t.terminalWrite?.(s))return{path:"osc52"};if(!$C(n,r))try{if(await OC(o,n,r))return{path:"native"}}catch{}throw new Error("Unable to access any clipboard path.")}i(ti,"copyTextToClipboard");var yh={name:"copy",description:"Copy last assistant message to clipboard",usage:"/copy",handler:i(async(e,t)=>{let n=Sc(t.messages);if(!n){console.log($n.yellow(`
|
|
45
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(`
|
|
@@ -49,23 +49,23 @@ Failed to copy to clipboard: ${o}`)),console.log($n.dim("You may need to check c
|
|
|
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
|
|
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 Sd from"node:path";import be from"chalk";function SP(e){return e.runtimeInfo?.workspaceRoot??e.runtimeInfo?.executionCwd??process.cwd()}i(SP,"resolveCwd");function BC(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=Sd.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=xw(s).frontmatter,u=l.name!==void 0||l.description!==void 0||l.type!==void 0,m=Sd.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(BC,"readTopicFiles");function TP(e){return e.map(t=>`- [${t.title}](${t.filename}) \u2014 ${t.description}`)}i(TP,"buildIndexLines");async function CP(e,t){console.log(be.cyan(`
|
|
53
|
+
[memory] per-project memory directory`)),console.log(be.dim(` ${e}`));let n=BC(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(CP,"listMemory");async function bP(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=BC(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=TP(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(bP,"rebuildMemory");function vP(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(vP,"openMemory");function NC(){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(NC,"printHelp");function IP(){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(IP,"printDetailedHelp");var xh={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=SP(t),r=pw(n),o=hw(n),s=(e[0]??"list").toLowerCase();if(s==="help"||s==="--help"||s==="-h"){NC();return}if(s==="list"){await CP(r,o);return}if(s==="rebuild"){await bP(r,o);return}if(s==="open"){vP(r,o);return}console.log(be.yellow(`
|
|
77
|
+
[memory] unknown subcommand: ${s}`)),NC()},"handler"),detailedHelp:IP};import $e from"chalk";function HC(){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(HC,"printHelp");function kP(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(!ip(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(!ip(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(kP,"parseCreateArgs");function RP(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(RP,"renderStatus");async function bc(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=Iw(e.lineage,n,r),await t.saveSession()}i(bc,"persist");async function EP(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=kP(e);if("error"in o){console.log($e.red(`[/goal] ${o.error}`));return}try{r&&r.status==="complete"&&await bc(t,n,null,"cleared");let s=$w(o.objective,o.tokenBudget);await bc(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(EP,"doCreate");async function MP(e){if(!e.lineage){console.log($e.red("[/goal] no active session lineage"));return}let t=Qi(e.lineage);console.log(RP(t))}i(MP,"doStatus");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 pause"));return}if(n.status!=="active"){console.log($e.yellow(`[/goal] cannot pause from status '${n.status}' (only 'active' is pausable)`));return}let r=Ow(n);await bc(e,t,r,"paused"),console.log($e.green("[/goal] paused"))}i(AP,"doPause");async function _P(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=Dw(n);await bc(e,t,r,"resumed"),console.log($e.green("[/goal] resumed"))}i(_P,"doResume");async function LP(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 bc(e,t,null,"cleared"),console.log($e.green("[/goal] cleared"))}i(LP,"doClear");var FC={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"){HC();return}if(r==="status"){await MP(t);return}if(r==="pause"){await AP(t,n);return}if(r==="resume"){await _P(t,n);return}if(r==="clear"){await LP(t,n);return}await EP(e,t,n)},"handler"),detailedHelp:HC};import Qt from"chalk";var wh={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 PP}from"node:child_process";import{promisify as $P}from"node:util";var OP=$P(PP),Sh=1e5;async function Td(e,t){let{stdout:n}=await OP("git",e,{cwd:t,maxBuffer:67108864});return n}i(Td,"git");async function DP(e){for(let t of["main","master","develop"])try{return await Td(["rev-parse","--verify",t],e),t}catch{}return"HEAD"}i(DP,"detectBaseBranch");async function NP(e,t){let n=e[0];if(n==="base"){let r=await DP(t);return{diff:await Td(["diff",`${r}...HEAD`],t),label:`changes against ${r}`}}return n==="sha"&&e[1]?{diff:await Td(["show",e[1]],t),label:`commit ${e[1]}`}:{diff:await Td(["diff","HEAD"],t),label:"uncommitted changes"}}i(NP,"getDiff");var WC={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 NP(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>Sh&&(s=`${s.slice(0,Sh)}
|
|
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 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(`
|
|
106
|
+
[diff truncated to ${Sh} 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 bd(e){let t=e.match(/\r\n|\r|\n/g);return t?t.length:0}i(bd,"getPastedTextRefNumLines");function BP(e,t){return t===0?`[Pasted text #${e}]`:`[Pasted text #${e} +${t} lines]`}i(BP,"formatPastedTextRef");function HP(e,t){return`[...Truncated text #${e} +${t} lines...]`}i(HP,"formatTruncatedTextRef");var FP=/\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;function WP(e){let t=[],n=new RegExp(FP.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(WP,"parseReferences");function UP(e,t){let n=WP(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(UP,"expandPastedTextRefs");var jP=/\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]$/,GP=/^\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/;function KP(e,t){if(t>=e.length)return!0;let n=e[t];return!n||/\s/.test(n)}i(KP,"isAtWordBoundaryAfter");function VP(e,t){if(t===0)return!0;let n=e[t-1];return!n||/\s/.test(n)}i(VP,"isAtWordBoundaryBefore");function vd(e,t){if(t<=0||!KP(e,t))return null;let r=e.slice(0,t).match(jP);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(vd,"findPlaceholderBeforeCursor");function Id(e,t){if(t>=e.length||!VP(e,t))return null;let r=e.slice(t).match(GP);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(Id,"findPlaceholderAfterCursor");function UC(e){return e.length>800||bd(e)>2}i(UC,"shouldReplacePasteWithPlaceholder");function jC(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=bd(a),l=HP(t,c);return{truncatedText:o+l+s,placeholderContent:a}}i(jC,"maybeTruncateLongInput");var Th=class{static{i(this,"PasteStore")}contents=new Map;nextId=1;registerText(t){let n=this.nextId++,r=bd(t);return this.contents.set(n,{id:n,type:"text",content:t}),{id:n,placeholder:BP(n,r),numLines:r}}registerTruncatedText(t){let n=this.nextId++,r=bd(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 UP(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())}},Cd=null;function GC(){return Cd===null&&(Cd=new Th),Cd}i(GC,"getOrCreateModulePasteStore");function kd(){return Cd??void 0}i(kd,"getActivePasteStore");import{createHash as zP}from"node:crypto";import{mkdir as XP,readdir as YP,readFile as qP,stat as JP,unlink as QP,writeFile as ZP}from"node:fs/promises";import*as Ch from"node:path";var e$="paste-cache",t$=720*60*60*1e3;function bh(){return kn(e$)}i(bh,"getPasteCacheDir");function KC(e){return Ch.join(bh(),`${e}.txt`)}i(KC,"getPastePath");function VC(e){return zP("sha256").update(e).digest("hex").slice(0,16)}i(VC,"hashPastedText");async function zC(e,t){try{let n=bh();return await XP(n,{recursive:!0}),await ZP(KC(e),t,{encoding:"utf8",mode:384}),!0}catch{return!1}}i(zC,"storePastedText");async function Rd(e){try{return await qP(KC(e),{encoding:"utf8"})}catch{return null}}i(Rd,"retrievePastedText");async function XC(e=t$){let t=bh(),n=Date.now()-e,r=0,o=0,s;try{s=await YP(t)}catch{return{scanned:r,removed:o}}for(let a of s){if(!a.endsWith(".txt"))continue;r+=1;let c=Ch.join(t,a);try{(await JP(c)).mtimeMs<n&&(await QP(c),o+=1)}catch{}}return{scanned:r,removed:o}}i(XC,"cleanupOldPastes");import*as Mh from"path";import*as YC from"os";function n$(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}i(n$,"escapeRegExp");function r$(e,t){if(!e)return;let n=e.trim();if(!n.startsWith("/"))return;let r=new RegExp(`^/${n$(t)}(?:\\s+)?`,"i"),o=n.replace(r,"").trim();return o.length>0?o:void 0}i(r$,"deriveArgumentHintFromUsage");function vh(e,t="builtin"){return{...e,source:e.source??t,userInvocable:e.userInvocable??!0,disableModelInvocation:e.disableModelInvocation??!1,argumentHint:e.argumentHint??r$(e.usage,e.name)}}i(vh,"toCommandDefinition");function Ih(e){for(let t of kh)try{let n=vh(t,"builtin");e.register(n)}catch(n){console.error(`Failed to register command "${t.name}":`,n)}}i(Ih,"registerBuiltinCommands");import*as Nr from"fs";import*as ni from"path";function o$(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(o$,"normalizeAliases");function i$(e){if(e==="critical"||e==="high"||e==="medium"||e==="low")return e}i(i$,"normalizePriority");function s$(e){return{disableModelInvocation:e["disable-model-invocation"]===!0,userInvocable:e["user-invocable"]!==!1,allowedTools:Sw(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:Tw(e.hooks),frontmatter:e}}i(s$,"buildExecutionMetadata");function a$(e,t){try{let n=Nr.readFileSync(e,"utf-8"),[r,o]=ww(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:o$(s.aliases),priority:i$(s.priority),content:o.trim(),location:t,path:e,frontmatter:s,execution:s$(s)}}catch(n){console.error(`Error parsing command file ${e}:`,n);return}}i(a$,"parseCommandFile");function Rh(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=a$(m,a);p&&t.push(p)}}catch(l){console.error(`Error scanning directory ${s}:`,l)}}}return t}i(Rh,"discoverCommands");function Eh(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(Eh,"registerDiscoveredCommands");function qC(e,t){Ih(e);try{let n=YC.homedir(),r=t??process.cwd(),o=Rh([{path:Mh.join(r,".kodax","commands"),location:"project"},{path:kn("commands"),location:"user"},{path:Mh.join(n,".agents","commands"),location:"user"}]);Eh(o,e)}catch(n){console.error("Failed to discover commands:",n)}}i(qC,"registerAllCommands");import{execFile as c$}from"child_process";import l$ from"fs";import Ah from"path";import{promisify as u$}from"util";var d$=u$(c$);function fo(e){if(!(!e||!e.trim()))return Ah.resolve(e).replace(/\\/g,"/")}i(fo,"normalizePath");async function vc(e,t){try{let{stdout:n}=await d$("git",t,{cwd:e,windowsHide:!0,maxBuffer:1048576}),r=n.trim();return r||void 0}catch{return}}i(vc,"gitStdout");function f$(e){let t=fo(e);if(t)return Ah.posix.basename(t)===".git"?Ah.posix.dirname(t):t}i(f$,"deriveCanonicalRepoRoot");async function Ms(e={}){let t=fo(e.cwd??process.cwd())??process.cwd().replace(/\\/g,"/"),n=fo(await vc(t,["rev-parse","--show-toplevel"])),r=await vc(n??t,["rev-parse","--path-format=absolute","--git-common-dir"])??await vc(n??t,["rev-parse","--git-common-dir"]),o=await vc(n??t,["branch","--show-current"])??await vc(n??t,["rev-parse","--abbrev-ref","HEAD"]);return{canonicalRepoRoot:f$(r)??n,workspaceRoot:n,executionCwd:t,branch:o&&o!=="HEAD"?o:void 0,workspaceKind:e.workspaceKind??"detected"}}i(Ms,"inspectWorkspaceRuntime");function Ed(e,t){return!e?.canonicalRepoRoot||!t?.canonicalRepoRoot?!1:fo(e.canonicalRepoRoot)===fo(t.canonicalRepoRoot)}i(Ed,"isSameCanonicalRepo");function JC(e){return!!(e?.workspaceRoot&&l$.existsSync(e.workspaceRoot))}i(JC,"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 m$(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(m$,"summarizeAgentsFiles");function p$(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(p$,"createManualCompactionConfig");function _h(e){e.runtimeInfo?.workspaceRoot?console.log(d.dim(` Workspace unchanged: ${xn(e.runtimeInfo)}`)):console.log(d.dim(" Workspace unchanged."))}i(_h,"printWorkspaceUnchangedNote");var kh=[{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&&Ad(),Hr.has(t.toLowerCase())||!!Lh(t)?k$(t):I$(t)}else v$()},"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(`
|
|
@@ -117,21 +117,21 @@ Session saved. Goodbye!`)),await n.exit()},"handler"),detailedHelp:i(()=>{consol
|
|
|
117
117
|
`+r))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
118
118
|
/cost - Session Cost Report
|
|
119
119
|
`)),console.log(d.bold("Description:")),console.log(d.dim(" Shows token usage and estimated cost for the current session,")),console.log(d.dim(" broken down by provider and AMA role.")),console.log()},"detailedHelp")},{name:"paste",description:"Inspect pasted text stored in the input buffer",usage:"/paste show <id> | /paste list",argumentHint:"show <id> | list",handler:i(async e=>{let t=e[0]?.toLowerCase();if(!t||t==="help"){console.log(d.cyan(`
|
|
120
|
-
/paste - Inspect stored paste contents`)),console.log(d.dim(" /paste list - Show all pasted text ids in this session")),console.log(d.dim(" /paste show <id> - Print the full content of paste #<id>")),console.log();return}let n=
|
|
120
|
+
/paste - Inspect stored paste contents`)),console.log(d.dim(" /paste list - Show all pasted text ids in this session")),console.log(d.dim(" /paste show <id> - Print the full content of paste #<id>")),console.log();return}let n=kd();if(!n){console.log(d.yellow(`
|
|
121
121
|
[No paste registry active]`)),console.log(d.dim(" The REPL composer is not mounted, or no paste has been captured yet."));return}if(t==="list"){let r=n.export();if(r.length===0){console.log(d.dim(`
|
|
122
122
|
[No pasted content in this session yet]`));return}console.log(d.bold(`
|
|
123
123
|
Pasted content in this session:
|
|
124
124
|
`));for(let o of r){let s=o.content?.length??0,a=o.contentHash?` (hash ${o.contentHash.slice(0,8)})`:"";console.log(` ${d.cyan(`#${o.id}`)} ${o.type} ${s} chars${a}`)}console.log();return}if(t==="show"){let r=e[1],o=r?Number.parseInt(r,10):NaN;if(!Number.isFinite(o)||o<=0){console.log(d.yellow(`
|
|
125
125
|
Usage: /paste show <id>`));return}let s=n.get(o);if(!s){console.log(d.dim(`
|
|
126
|
-
[No paste registered with id #${o}]`));return}let a=s.content??"";if(!a&&s.contentHash){let c=await
|
|
126
|
+
[No paste registered with id #${o}]`));return}let a=s.content??"";if(!a&&s.contentHash){let c=await Rd(s.contentHash);c&&(a=c)}if(!a){console.log(d.yellow(`
|
|
127
127
|
[Paste #${o} has no stored content (hash ${s.contentHash??"n/a"})]`));return}console.log(d.bold(`
|
|
128
128
|
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
|
|
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=
|
|
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 Su(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=p$(o,u,l);console.log(d.dim(`
|
|
134
|
+
[Compacting conversation...]`)),n.startCompacting?.();try{let p=await kw(t.messages,m,a,l,c,void 0,u,Ww,Uw);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=m$(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=L$(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 R$(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
|
|
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 Ua({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace,probePremium:!0});nb(s);return}if(o==="warm"){let s=await Mw({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace});b$(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=w$(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
|
-
`));return}let a=
|
|
165
|
+
`));return}let a=Md({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=S$(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
|
-
`));return}let c=
|
|
169
|
+
`));return}let c=Md({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 Ua({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=QC(e[1]),a=Md({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 Ua({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=QC(e.slice(1).join(" ")),a=Md({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
|
|
@@ -185,7 +185,7 @@ Child-task provider fallback: `)+d.green("on")),console.log(d.dim(" Order: ")+d
|
|
|
185
185
|
`));return}Kn({fallbackProviders:a}),process.env.KODAX_FALLBACK_PROVIDERS=a.join(","),console.log(d.green(`
|
|
186
186
|
\u2713 `)+d.dim("Child-task fallback order: ")+d.cyan(a.join(" \u2192 "))),console.log(d.dim(` Provider ids must match your configured providers (see /status or kodax doctor).
|
|
187
187
|
`))},"handler")},{name:"mode",description:"Show or switch permission mode (plan/accept-edits/auto)",usage:"/mode [plan|accept-edits|auto]",handler:i(async(e,t,n,r)=>{if(e.length===0){let s=lr(r.permissionMode,"accept-edits")??"accept-edits";console.log(d.dim(`
|
|
188
|
-
Current mode: ${d.cyan(s)}`)),console.log(d.dim("Usage: /mode [plan|accept-edits|auto]"));return}let o=e[0];
|
|
188
|
+
Current mode: ${d.cyan(s)}`)),console.log(d.dim("Usage: /mode [plan|accept-edits|auto]"));return}let o=e[0];dc.includes(o)?(r.permissionMode=o,n.setPermissionMode?.(o),Cc(o),console.log(d.cyan(`
|
|
189
189
|
[Switched to ${o} mode] (saved)`))):console.log(d.red(`
|
|
190
190
|
[Unknown mode: ${e[0]}. Use: plan | accept-edits | auto]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
191
191
|
/mode - Switch Permission Mode
|
|
@@ -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]`)),_h(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]`)),_h(t)):(await n.deleteSession?.(e[0]),console.log(d.green(`
|
|
229
|
+
[Session deleted: ${e[0]}]`)),_h(t))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
230
230
|
/delete - Delete Saved Sessions
|
|
231
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /delete ")+"Show usage (lists sessions)"),console.log(d.dim(" /delete <id> ")+"Delete a specific session"),console.log(d.dim(" /delete all ")+"Delete ALL sessions"),console.log(d.dim(" /rm, /del ")+"Aliases for /delete"),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /delete 20260219_143052")+" # Delete specific session"),console.log(d.dim(" /delete all ")+"# Delete all sessions"),console.log(),console.log(d.bold("Workspace behavior:")),console.log(d.dim(" Deletes saved session records only.")),console.log(d.dim(" Current workspaces and checkouts remain untouched.")),console.log(),console.log(d.yellow(" Warning: /delete all cannot be undone!")),console.log()},"detailedHelp")},{name:"model",aliases:["m"],description:"Show or switch provider/model",usage:"/model [<provider>[/<model>] | /<model>]",handler:i(async(e,t,n,r)=>{let o=
|
|
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=Ka().providerModels;if(e.length===0){console.log(d.bold(`
|
|
232
232
|
Available Providers:
|
|
233
|
-
`));let c=
|
|
233
|
+
`));let c=up(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(` ! ${ap(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,144 +248,144 @@ 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=Jw(s,a);if(!c){console.log(d.red(`
|
|
252
|
+
[Provider details unavailable: ${s}]`)),console.log();return}let l=eS(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: ${Qw(c.sourceKind)}`)),console.log(),console.log(d.bold("Capability Matrix:"));for(let u of Zw(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
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(
|
|
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=
|
|
257
|
+
Thinking: ${a}`)),console.log(d.dim(`Reasoning mode: ${d.cyan(r.reasoningMode)}`)),console.log(d.dim(`Effective control: ${d.cyan(cp(s))}`)),console.log(d.dim(`Actual execution: ${lp(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=ZC(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
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(
|
|
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(cp(a))}`)),console.log(d.dim(`Actual execution: ${lp(r.reasoningMode,a)}`)),console.log(d.dim(`Usage: /reasoning off|auto|quick|balanced|deep
|
|
264
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=ZC(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=T$(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
|
-
`)),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"),
|
|
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"),Cc("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 tb(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 tb(e,t)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
281
281
|
/skill - Skill Namespace
|
|
282
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /skill ")+"List all available skills"),console.log(d.dim(" /skill:<name> [args] ")+"Invoke a skill by name"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" This is the pi-mono style skill invocation format.")),console.log(d.dim(" Skills can also be triggered by natural language - just ask!")),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /skill ")+"# List all skills"),console.log(d.dim(" /skill:code-review src/ ")+"# Invoke code-review skill"),console.log(d.dim(" /skill:tdd auth ")+"# Invoke TDD skill"),console.log()},"detailedHelp")},{name:"verifier-log",description:"Toggle Sidecar Verifier log line (off by default)",usage:"/verifier-log [on|off]",argumentHint:"on | off",handler:i(async e=>{let t=e[0]?.toLowerCase(),n=process.env.KODAX_VERIFIER_LOG==="1";if(!t){let s=
|
|
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=Ka().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]
|
|
284
284
|
`));return}let r;if(t==="on"||t==="true"||t==="1")r=!0;else if(t==="off"||t==="false"||t==="0")r=!1;else{console.log(d.red(`
|
|
285
285
|
[Invalid value: ${e[0]}]`)),console.log(d.dim(`Usage: /verifier-log [on|off]
|
|
286
|
-
`));return}r?process.env.KODAX_VERIFIER_LOG="1":delete process.env.KODAX_VERIFIER_LOG;let o=
|
|
286
|
+
`));return}r?process.env.KODAX_VERIFIER_LOG="1":delete process.env.KODAX_VERIFIER_LOG;let o=Ic({verifierLog:r});Br(`Sidecar Verifier log: ${r?"on":"off"}`,o)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
287
287
|
/verifier-log - Sidecar Verifier Log Toggle
|
|
288
|
-
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /verifier-log ")+"Show current state"),console.log(d.dim(" /verifier-log on ")+"Enable + persist to config"),console.log(d.dim(" /verifier-log off ")+"Disable + persist to config"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" The Sidecar Verifier is the second-pass LLM judgment that fires")),console.log(d.dim(" after a Worker terminates text-only. Off by default (silent happy")),console.log(d.dim(" path). When on, every verifier call emits a one-line summary:")),console.log(d.dim(" [Sidecar Verifier] accept \xB7 anthropic/claude-sonnet-4-6 \xB7 3214ms \xB7 verifier_ok")),console.log(),console.log(d.bold("Equivalent env var:")),console.log(d.dim(" KODAX_VERIFIER_LOG=1 ")+"Same effect, env wins over config"),console.log()},"detailedHelp")},{name:"stall-log",description:"Toggle Stall Sidecar log line (off by default)",usage:"/stall-log [on|off]",argumentHint:"on | off",handler:i(async e=>{let t=e[0]?.toLowerCase(),n=process.env.KODAX_STALL_LOG==="1";if(!t){let s=
|
|
288
|
+
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /verifier-log ")+"Show current state"),console.log(d.dim(" /verifier-log on ")+"Enable + persist to config"),console.log(d.dim(" /verifier-log off ")+"Disable + persist to config"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" The Sidecar Verifier is the second-pass LLM judgment that fires")),console.log(d.dim(" after a Worker terminates text-only. Off by default (silent happy")),console.log(d.dim(" path). When on, every verifier call emits a one-line summary:")),console.log(d.dim(" [Sidecar Verifier] accept \xB7 anthropic/claude-sonnet-4-6 \xB7 3214ms \xB7 verifier_ok")),console.log(),console.log(d.bold("Equivalent env var:")),console.log(d.dim(" KODAX_VERIFIER_LOG=1 ")+"Same effect, env wins over config"),console.log()},"detailedHelp")},{name:"stall-log",description:"Toggle Stall Sidecar log line (off by default)",usage:"/stall-log [on|off]",argumentHint:"on | off",handler:i(async e=>{let t=e[0]?.toLowerCase(),n=process.env.KODAX_STALL_LOG==="1";if(!t){let s=Ka().stallLog===!0,a=n?"on":"off",c=s===n?"":` (env=${n?"on":"off"}, config=${s?"on":"off"})`;console.log(d.dim(`
|
|
289
289
|
Stall Sidecar log: ${d.cyan(a)}${c}`)),console.log(d.dim(" When on, a one-line summary persists per L2 stall verdict:\n `[Stall Sidecar] isStuck={true|false} \xB7 {provider}/{model} \xB7 {ms}ms \xB7 {trace}`")),console.log(d.dim(`Usage: /stall-log [on|off]
|
|
290
290
|
`));return}let r;if(t==="on"||t==="true"||t==="1")r=!0;else if(t==="off"||t==="false"||t==="0")r=!1;else{console.log(d.red(`
|
|
291
291
|
[Invalid value: ${e[0]}]`)),console.log(d.dim(`Usage: /stall-log [on|off]
|
|
292
|
-
`));return}r?process.env.KODAX_STALL_LOG="1":delete process.env.KODAX_STALL_LOG;let o=
|
|
292
|
+
`));return}r?process.env.KODAX_STALL_LOG="1":delete process.env.KODAX_STALL_LOG;let o=Ic({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")},yh,xh,FC,wh,WC],h$={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 g$(e){let t=_d();return e.map(n=>t.get(n)).filter(n=>n!==void 0).filter(n=>n.userInvocable!==!1)}i(g$,"getCommandsForCategory");function y$(e){return e!=="off"}i(y$,"reasoningModeToLegacyThinking");var x$=["auto","off","oss","premium-shared","premium-native"];function w$(e){return e&&x$.includes(e)?e:null}i(w$,"normalizeRepoIntelligenceMode");function QC(e){let t=e?.trim();return!t||t==="default"||t==="reset"||t==="clear"?null:t}i(QC,"normalizeRuntimeOverride");function S$(e,t){return e?e==="toggle"?!t:e==="on"||e==="true"||e==="1"?!0:e==="off"||e==="false"||e==="0"?!1:null:null}i(S$,"resolveToggleFlag");function Ic(e){try{return Kn(e),{saved:!0}}catch(t){return{saved:!1,error:t instanceof Error?t:new Error(String(t))}}}i(Ic,"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 ZC(e,t,n){let r=y$(e),o=Ic({reasoningMode:e,thinking:r});return t.setReasoningMode?t.setReasoningMode(e):(n.reasoningMode=e,n.thinking=r),o}i(ZC,"applyReasoningMode");function T$(e,t,n){let r=Ic({agentMode:e});return t.setAgentMode?t.setAgentMode(e):n.agentMode=e,r}i(T$,"applyAgentMode");function Md(e,t,n,r){let o=Ic(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(Md,"applyRepoIntelligenceRuntimeConfig");function C$(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(C$,"formatRepoIntelligenceSummary");function nb(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(nb,"printRepoIntelligenceInspection");function b$(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`)),nb(e)}i(b$,"printRepoIntelligenceWarmResult");function eb(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(eb,"printCommandSection");function v$(){console.log(d.bold(`
|
|
301
301
|
Available Commands:
|
|
302
|
-
`));let e=
|
|
302
|
+
`));let e=_d(),t=new Set;for(let[r,o]of Object.entries(h$)){let s=g$(o);if(s.length!==0){for(let a of s)t.add(a.name.toLowerCase());eb(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 M$()){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"])eb(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(v$,"printHelp");function I$(e){let t=Rw({topic:e});console.log(`
|
|
303
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(
|
|
304
|
+
Related topics: ${t.nextTopics.join(", ")}`)),console.log()}i(I$,"printManualTopic");function k$(e){Hr.size===0&&Ad();let t=Hr.get(e.toLowerCase());if(!t){let n=Lh(e);if(!n){console.log(d.yellow(`
|
|
305
305
|
[Unknown command: /${e}. Type /help for available commands]`));return}console.log(d.cyan(`
|
|
306
306
|
/${n.name}`)),n.aliases?.length&&console.log(d.dim(`Aliases: ${n.aliases.join(", ")}`)),console.log(d.dim(`
|
|
307
307
|
${n.description}`)),console.log(d.dim(`
|
|
308
|
-
Usage: ${
|
|
308
|
+
Usage: ${A$(n)}`)),console.log();return}t.detailedHelp?t.detailedHelp():(console.log(d.cyan(`
|
|
309
309
|
/${t.name}`)),t.aliases?.length&&console.log(d.dim(`Aliases: ${t.aliases.join(", ")}`)),console.log(d.dim(`
|
|
310
310
|
${t.description}`)),t.usage&&console.log(d.dim(`
|
|
311
|
-
Usage: ${t.usage}`)),console.log())}i(
|
|
311
|
+
Usage: ${t.usage}`)),console.log())}i(k$,"printDetailedHelp");async function R$(e,t,n=[]){let r=n[0]?.toLowerCase(),o=e.contextTokenSnapshot?.currentTokens??Bo(e.messages),s=e.contextTokenSnapshot?.source??"estimate",a=qw(t.provider),c=xu(t.provider,t.model,t.reasoningMode);if(console.log(d.bold(`
|
|
312
312
|
Session Status:
|
|
313
|
-
`)),console.log(d.dim(` Provider: ${d.cyan(t.provider)}${t.model?` / ${d.cyan(t.model)}`:""}`)),console.log(d.dim(` Permission: ${d.cyan(t.permissionMode)}`)),console.log(d.dim(` Reasoning: ${d.cyan(t.reasoningMode)}`)),console.log(d.dim(` Agent Mode: ${d.cyan(t.agentMode.toUpperCase())}`)),a){let u=
|
|
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=ap(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 Ua({mode:t.repoIntelligenceMode,trace:t.repoIntelligenceTrace});console.log(d.dim(` Repo Intel: ${d.cyan(C$(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(R$,"printStatus");async function tb(e,t){let n=Rr(t.gitRoot);n.size===0&&await Ho(t.gitRoot),E$(n.listUserInvocable())}i(tb,"handleSkillNamespaceCommand");function E$(e){if(console.log(d.bold(`
|
|
314
314
|
Available Skills:
|
|
315
315
|
`)),e.length===0){console.log(d.dim(" No skills found.")),console.log(d.dim(`
|
|
316
|
-
Skills can be placed in:`)),console.log(d.dim(" - .kodax/skills/")),console.log(d.dim(" - ~/.kodax/skills/"));return}let t=Math.max(...e.map(n=>n.name.length));for(let n of e){let r=n.name.padEnd(t),o=n.argumentHint?` ${n.argumentHint}`:"",s=n.source==="builtin"?" [builtin]":n.source==="user"?" [user]":n.source==="plugin"?" [plugin]":"",a=n.description.length>50?n.description.slice(0,50)+"...":n.description;console.log(` ${d.cyan(`/skill:${r}`)}${d.dim(o)}${d.dim(s)} ${d.dim(a)}`)}console.log(),console.log(d.dim(`Total: ${e.length} skills`)),console.log(d.dim("Usage: /skill:<name> [args] or ask naturally")),console.log()}i(
|
|
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=
|
|
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(E$,"printSkillsListPiMonoStyle");var Hr=new Es;function Ad(e){Hr.size>0||qC(Hr,e)}i(Ad,"initCommandRegistry");function _d(e){return Ad(e),Hr}i(_d,"getCommandRegistry");function M$(){return Er()?.listCommands().filter(t=>t.metadata?.userInvocable!==!1)??[]}i(M$,"getActiveExtensionCommands");function Lh(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(Lh,"getActiveExtensionCommand");function A$(e){return e.usage??`/${e.name}`}i(A$,"formatExtensionCommandUsage");function _$(e){return Array.isArray(e)?e.map(t=>String(t)).join(", "):e&&typeof e=="object"?JSON.stringify(e):String(e)}i(_$,"formatExtensionDiagnosticValue");function L$(e){if(!e)return;let t=Object.entries(e).filter(([,n])=>n!==void 0).map(([n,r])=>`${n}=${_$(r)}`);return t.length>0?t.join(" | "):void 0}i(L$,"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 P$(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(P$,"toExtensionInvocationRequest");async function $$(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=P$(e,o);return s?{invocation:s}:!0}i($$,"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&&Ad(t.gitRoot),e.skillInvocation)return await O$({command:e.skillInvocation.name,args:e.args},t);let o=Hr.get(e.command);if(o){if(o.userInvocable===!1)return console.log(d.yellow(`
|
|
318
318
|
[Command /${o.name} is not user-invocable]`)),!1;try{let a=await o.handler(e.args,t,n,r);return a&&typeof a=="object"?a:!0}catch(a){return console.log(d.red(`
|
|
319
|
-
[Command failed: ${a instanceof Error?a.message:String(a)}]`)),!1}}let s=
|
|
319
|
+
[Command failed: ${a instanceof Error?a.message:String(a)}]`)),!1}}let s=Lh(e.command);if(s)try{return await $$(s,e.args,t)}catch(a){return console.log(d.red(`
|
|
320
320
|
[Extension command failed: ${a instanceof Error?a.message:String(a)}]`)),!1}return console.log(d.yellow(`
|
|
321
|
-
[Unknown command: /${e.command}. Type /help for available commands]`)),!1}i(Ls,"executeCommand");async function
|
|
321
|
+
[Unknown command: /${e.command}. Type /help for available commands]`)),!1}i(Ls,"executeCommand");async function O$(e,t){let n=Rr(t.gitRoot),r=e.command,o=e.args.join(" ");n.size===0&&await Ho(t.gitRoot);try{let s=n.get(r);if(!s)return console.log(d.red(`
|
|
322
322
|
[Skill not found: ${r}]`)),!1;if(!s.userInvocable)return console.log(d.yellow(`
|
|
323
323
|
[Skill "${r}" is not user-invocable]`)),!1;console.log(d.cyan(`
|
|
324
|
-
[Invoking skill: ${r}]`)),s.argumentHint&&console.log(d.dim(`Arguments: ${o||"(none)"}`)),console.log();let a=await n.loadFull(r),c={workingDirectory:process.cwd(),projectRoot:t.gitRoot??void 0,sessionId:t.sessionId,environment:{}},l=await
|
|
325
|
-
[Error invoking skill: ${s instanceof Error?s.message:String(s)}]`)),!1}}i(
|
|
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(`
|
|
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 Cw(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(O$,"executeSkillCommand");import{jsx as Z$}from"react/jsx-runtime";import{useState as e1,useEffect as db,useCallback as po,useMemo as fb,createContext as t1,useContext as mb}from"react";import*as Ld from"fs";import*as kc from"path";import{exec as D$}from"node:child_process";import*as Ps from"node:path";import{promisify as N$}from"node:util";var rb=N$(D$);function B$(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(B$,"pathFromPorcelainLine");async function ob(e,t=10){try{let[{stdout:n},{stdout:r}]=await Promise.all([rb("git rev-parse --show-toplevel",{cwd:e}),rb("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=B$(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(ob,"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=ob){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:kc.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=kc.join(u,g),x=await this.isDirectory(y),S=l===-1?g:s.slice(0,l+1)+g;a.push({text:"@"+S+(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&&!kc.basename(x).toLowerCase().startsWith(g))continue;let S="@"+x;h.has(S)||(h.add(S),y.push({text:S,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=>{Ld.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=>{Ld.stat(t,(r,o)=>{n(!r&&o.isDirectory())})})}},Rc=class{static{i(this,"CommandCompleter")}commands;constructor(){this.commands=new Map,this.loadCommands()}loadCommands(){for(let n of _d().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 ib(e){let t=new oi(e),n=new Rc;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(ib,"createCompleter");var Ec=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 H$=[{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"}],Pd=[{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"}],sb=Pd.slice(2).concat([{name:"off",description:"Disable reasoning",type:"enum"}]);function F$(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(F$,"getModelArgs");var ab=[{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"}],Ph=[{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"}],$h=[{name:"all",description:"Delete ALL sessions",type:"enum"}],W$=[{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"}],U$=[{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"}],j$=[{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"}],cb=[{name:"default",description:"Clear the override and use the default value again",type:"enum"}];function G$(e){let[t=""]=e,n=t.toLowerCase(),r=e.length===1&&e[0]===""?0:e.length;return r<=1?W$:r>2?[]:n==="mode"?U$:n==="trace"?j$:n==="endpoint"?[...cb,{name:Ew,description:"Default local repointel daemon endpoint",type:"string"}]:n==="bin"?cb:[]}i(G$,"getRepointelArgs");var K$=new Map([["mode",H$],["thinking",Pd],["think",Pd],["t",Pd],["reasoning",sb],["reason",sb],["plan",ab],["p",ab],["status",Ph],["info",Ph],["ctx",Ph],["delete",$h],["rm",$h],["del",$h]]),V$=new Set(["model","m"]),z$=new Set(["repointel","ri"]);function Oh(e,t,n=[]){let r=e.toLowerCase();return V$.has(r)?F$(t):z$.has(r)?G$(n):K$.get(r)??[]}i(Oh,"getCommandArguments");var $d=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 Oh(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=Oh(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,S)=>{let T=x.display.toLowerCase().startsWith(p),I=S.display.toLowerCase().startsWith(p);return T&&!I?-1:!T&&I?1:x.display.length-S.display.length})}};function X$(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=Y$(t,a);return o+=c,{matched:!0,score:o,highlights:a}}i(X$,"fuzzyMatch");function Y$(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(Y$,"calculateWordBoundaryBonus");function q$(e,t){return e?t.toLowerCase().startsWith(e.toLowerCase()):!0}i(q$,"prefixMatch");function J$(e,t){if(q$(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{...X$(e,t),isPrefix:!1}}i(J$,"combinedMatch");function lb(e,t,n=0){return e?t.map(r=>{let o=J$(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(lb,"sortCandidatesCombined");var Q$={debounceDelay:100,minTriggerChars:1,maxCompletions:10,minScore:0},Dh=class{static{i(this,"AutocompleteProvider")}completers;options;state;listeners=new Set;debounceTimer=null;lastInput="";lastCursorPos=0;constructor(t={}){this.options={...Q$,...t},this.completers=[new Ec(this.options.gitRoot),new $d,new Rc,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 Ec)?.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 lb(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 ub(e){return new Dh(e)}i(ub,"createAutocompleteProvider");var Nh=t1(null);function Bh({children:e,cwd:t,gitRoot:n}){let r=Od({cwd:t,gitRoot:n,enabled:!0});return Z$(Nh.Provider,{value:r,children:e})}i(Bh,"AutocompleteContextProvider");function ii(){return mb(Nh)}i(ii,"useAutocompleteContext");function n1(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(n1,"completionToSuggestion");function Od(e={}){let t=mb(Nh);return t&&!e.cwd&&!e.gitRoot?t:r1(e)}i(Od,"useAutocomplete");function r1(e){let{cwd:t,gitRoot:n,enabled:r=!0}=e,o=fb(()=>ub({cwd:t,gitRoot:n,debounceDelay:100,minTriggerChars:1,maxCompletions:8}),[]);db(()=>{o.updateOptions({cwd:t,gitRoot:n})},[o,t,n]);let[s,a]=e1({visible:!1,selectedIndex:0,completions:[],loading:!1});db(()=>o.subscribe(T=>{a(T)}),[o]);let c=fb(()=>s.completions.map((S,T)=>n1(S,T)),[s.completions]),l=po((S,T)=>{if(!r){o.cancel();return}o.handleInput(S,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(r1,"useAutocompleteImpl");import{useCallback as Mc,useRef as pb}from"react";var On=[];function Hh(e={}){let{maxSize:t=1e3,onSave:n}=e,r=pb(-1),o=pb(""),s=Mc((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=Mc(()=>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=Mc(()=>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=Mc(()=>{r.current=-1,o.current=""},[]),u=Mc(m=>{r.current===-1&&(o.current=m)},[]);return{add:s,navigateUp:a,navigateDown:c,reset:l,saveTempInput:u}}i(Hh,"useInputHistory");function an(e,t,n){return en(e).slice(t,n).join("")}i(an,"sliceByCodePoints");var Ac=class{static{i(this,"TextBuffer")}_text="";_lines=[""];_cursor={row:0,col:0};_rememberedCol=0;_history=[];_historyIndex=-1;_maxHistory;constructor(t={}){this._maxHistory=t.maxHistory??100}get text(){return this._text}get lines(){return[...this._lines]}get cursor(){return{...this._cursor}}get lineCount(){return this._lines.length}get currentLine(){return this._lines[this._cursor.row]??""}get isEmpty(){return this._text.length===0}get currentLineVisualWidth(){return ir(this.currentLine)}get visualCursor(){let t=this._lines[this._cursor.row]??"",n=an(t,0,this._cursor.col);return{row:this._cursor.row,col:ir(n)}}getCharWidthAtCursor(){let t=this._lines[this._cursor.row]??"",r=en(t)[this._cursor.col];return r?or(r)?2:1:0}visualColToLogicalCol(t){let n=this._lines[this._cursor.row]??"",r=en(n),o=0;for(let s=0;s<r.length;s++){let a=or(r[s])?2:1;if(o+a>t)return s;o+=a}return r.length}moveToVisualCol(t){this._cursor.col=this.visualColToLogicalCol(t),this._rememberedCol=this._cursor.col}setText(t){this._saveHistory(),this._setTextInternal(t),this._clampCursor()}replaceRange(t,n,r){this._saveHistory();let o=Math.max(0,Math.min(t,this._text.length)),s=Math.max(o,Math.min(n,this._text.length)),a=this._text.slice(0,o)+r+this._text.slice(s);this._setTextInternal(a),this.moveToAbsoluteOffset(o+r.length)}insert(t,n){if(this._saveHistory(),n?.paste){this._insertText(t);return}let r=t.split(`
|
|
327
327
|
`);for(let o=0;o<r.length;o++)o>0&&this._insertNewline(),this._insertText(r[o])}_insertText(t){let n=this._lines[this._cursor.row],r=an(n,0,this._cursor.col),o=an(n,this._cursor.col);this._lines[this._cursor.row]=r+t+o,this._cursor.col+=pn(t),this._rememberedCol=this._cursor.col,this._updateText()}newline(){this._saveHistory(),this._insertNewline()}_insertNewline(){let t=this._lines[this._cursor.row],n=an(t,0,this._cursor.col),r=an(t,this._cursor.col);this._lines[this._cursor.row]=n,this._lines.splice(this._cursor.row+1,0,r),this._cursor.row++,this._cursor.col=0,this._rememberedCol=0,this._updateText()}backspace(){if(this._cursor.col>0){this._saveHistory();let t=this._lines[this._cursor.row],n=this._cursor.col-1,r=an(t,0,n),o=an(t,this._cursor.col);this._lines[this._cursor.row]=r+o,this._cursor.col=n,this._rememberedCol=this._cursor.col,this._updateText()}else if(this._cursor.row>0){this._saveHistory();let t=this._lines[this._cursor.row],n=this._lines[this._cursor.row-1];this._cursor.col=pn(n),this._lines[this._cursor.row-1]=n+t,this._lines.splice(this._cursor.row,1),this._cursor.row--,this._rememberedCol=this._cursor.col,this._updateText()}}delete(){let t=this._lines[this._cursor.row];if(this._cursor.col<pn(t)){this._saveHistory();let n=an(t,0,this._cursor.col),r=an(t,this._cursor.col+1);this._lines[this._cursor.row]=n+r,this._updateText()}else if(this._cursor.row<this._lines.length-1){this._saveHistory();let n=this._lines[this._cursor.row+1];this._lines[this._cursor.row]=t+n,this._lines.splice(this._cursor.row+1,1),this._updateText()}}move(t){switch(t){case"up":this._moveUp();break;case"down":this._moveDown();break;case"left":this._moveLeft();break;case"right":this._moveRight();break;case"home":this._moveHome();break;case"end":this._moveEnd();break}}_moveUp(){this._cursor.row>0&&(this._cursor.row--,this._clampColumn())}_moveDown(){this._cursor.row<this._lines.length-1&&(this._cursor.row++,this._clampColumn())}_moveLeft(){this._cursor.col>0?(this._cursor.col--,this._rememberedCol=this._cursor.col):this._cursor.row>0&&(this._cursor.row--,this._cursor.col=pn(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col)}_moveRight(){let t=this._lines[this._cursor.row];this._cursor.col<pn(t)?(this._cursor.col++,this._rememberedCol=this._cursor.col):this._cursor.row<this._lines.length-1&&(this._cursor.row++,this._cursor.col=0,this._rememberedCol=0)}_moveHome(){this._cursor.col=0,this._rememberedCol=0}_moveEnd(){this._cursor.col=pn(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col}_clampColumn(){let t=this._lines[this._cursor.row],n=pn(t);this._cursor.col=Math.min(this._rememberedCol,n)}_clampCursor(){this._cursor.row=Math.max(0,Math.min(this._cursor.row,this._lines.length-1)),this._cursor.col=Math.max(0,Math.min(this._cursor.col,pn(this._lines[this._cursor.row]))),this._rememberedCol=this._cursor.col}killLineRight(){let t=this._lines[this._cursor.row];this._cursor.col<pn(t)&&(this._saveHistory(),this._lines[this._cursor.row]=an(t,0,this._cursor.col),this._updateText())}killLineLeft(){if(this._cursor.col>0){this._saveHistory();let t=this._lines[this._cursor.row];this._lines[this._cursor.row]=an(t,this._cursor.col),this._cursor.col=0,this._rememberedCol=0,this._updateText()}}deleteWordLeft(){if(this._cursor.col===0)return;this._saveHistory();let t=this._lines[this._cursor.row],n=this._cursor.col-1,r=en(t);for(;n>0&&/\s/.test(r[n]??"");)n--;for(;n>0&&!/\s/.test(r[n-1]??"");)n--;let o=an(t,0,n),s=an(t,this._cursor.col);this._lines[this._cursor.row]=o+s,this._cursor.col=n,this._rememberedCol=this._cursor.col,this._updateText()}_saveHistory(){this._history=this._history.slice(0,this._historyIndex+1),this._history.push(this._text),this._history.length>this._maxHistory&&this._history.shift(),this._historyIndex=this._history.length-1}undo(){return this._historyIndex>0?(this._historyIndex--,this._text=this._history[this._historyIndex]??"",this._lines=this._text.split(`
|
|
328
328
|
`),this._lines.length===0&&(this._lines=[""]),this._clampCursor(),!0):!1}redo(){return this._historyIndex<this._history.length-1?(this._historyIndex++,this._text=this._history[this._historyIndex]??"",this._lines=this._text.split(`
|
|
329
329
|
`),this._lines.length===0&&(this._lines=[""]),this._clampCursor(),!0):!1}_updateText(){this._text=this._lines.join(`
|
|
330
330
|
`)}_setTextInternal(t){this._text=t,this._lines=t.split(`
|
|
331
|
-
`),this._lines.length===0&&(this._lines=[""])}moveToAbsoluteOffset(t){let r=Math.max(0,Math.min(t,this._text.length));for(let o=0;o<this._lines.length;o++){let s=this._lines[o]??"",a=s.length;if(r<=a){this._cursor={row:o,col:pn(s.slice(0,r))},this._rememberedCol=this._cursor.col;return}r-=a,o<this._lines.length-1&&(r-=1)}this.moveToEnd()}clear(){this._saveHistory(),this._text="",this._lines=[""],this._cursor={row:0,col:0},this._rememberedCol=0}getAbsoluteOffset(){let t=0;for(let r=0;r<this._cursor.row;r++)t+=(this._lines[r]?.length??0)+1;let n=this._lines[this._cursor.row]??"";return t+=an(n,0,this._cursor.col).length,t}isLineContinuation(){return this._lines[this._cursor.row].endsWith("\\")}moveToEnd(){this._cursor.row=this._lines.length-1,this._cursor.col=pn(this._lines[this._cursor.row]??""),this._rememberedCol=this._cursor.col}};import{useState as
|
|
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 o1,useCallback as _t,useRef as Fh,useEffect as i1}from"react";function Wh(e={}){let{initialValue:t="",onTextChange:n}=e,r=Fh(null),o=Fh(null),s=Fh(null),[a,c]=o1({text:t,cursor:{row:0,col:0},lines:[""],isPasting:!1,editingMode:t?"typing":"idle"});r.current===null&&(r.current=new Ac,t&&r.current.setText(t)),o.current===null&&(o.current=GC());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&&UC(L)){let Re=L.replace(/\r\n/g,`
|
|
332
332
|
`).replace(/\r/g,`
|
|
333
|
-
`),{placeholder:_e}=u.registerText(Re);l.insert(_e,{paste:!0}),m({isPasting:!0,editingMode:"pasting"}),p();return}l.insert(L,{paste:!1}),m({isPasting:P,editingMode:P?"pasting":"typing"}),P&&p()},[l,u,p,m]),x=_t(()=>{l.newline(),m({isPasting:!1,editingMode:"typing"})},[l,m]),w=_t(()=>{let L=l.getAbsoluteOffset(),k=bd(l.text,L);k?l.replaceRange(k.start,k.end,""):l.backspace(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),T=_t(()=>{let L=l.getAbsoluteOffset(),k=vd(l.text,L);k?l.replaceRange(k.start,k.end,""):l.delete(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),I=_t(L=>{l.move(L),m()},[l,m]),A=_t(()=>{l.clear(),m({isPasting:!1,editingMode:"idle"})},[l,m]),$=_t(()=>{let L=l.undo();return L&&m(),L},[l,m]),F=_t(()=>{let L=l.redo();return L&&m(),L},[l,m]),D=_t(()=>{l.moveToEnd(),m()},[l,m]),v=_t(L=>{l.moveToAbsoluteOffset(L),m()},[l,m]),z=_t(()=>{l.killLineRight(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),fe=_t(()=>{l.killLineLeft(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),se=_t(()=>{l.deleteWordLeft(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),ge=_t(()=>{s.current&&(clearTimeout(s.current),s.current=null),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]);return o1(()=>()=>{s.current&&clearTimeout(s.current),r.current=null},[]),{buffer:l,text:a.text,cursor:a.cursor,lines:a.lines,isPasting:a.isPasting,editingMode:a.editingMode,pasteStore:u,resetTransientState:ge,setText:h,replaceRange:g,insert:y,newline:x,backspace:w,delete:T,move:I,moveToEnd:D,moveToOffset:v,killLineRight:z,killLineLeft:fe,deleteWordLeft:se,clear:A,undo:$,redo:F}}i(Fh,"useTextBuffer");import{jsx as si,jsxs as Dd}from"react/jsx-runtime";import{useState as yb}from"react";import{useCallback as $s,useEffect as Wh,useRef as Od}from"react";function pb(e,t,n){let r=Math.max(0,Math.min(t,e.length)),o=e.slice(0,r);if(n.type==="command"||n.type==="skill"){let a=o.lastIndexOf("/");return{start:a===-1?0:a,end:r,replacement:n.text}}if(n.type==="argument"){let a=o.match(/\S+$/);return{start:a?r-a[0].length:0,end:r,replacement:n.text}}let s=o.lastIndexOf("@");return{start:s===-1?0:s,end:r,replacement:n.text}}i(pb,"buildAutocompleteReplacement");var s1=500;function hb(e,t,n){return n==="up"?e===0:e>=Math.max(0,t-1)}i(hb,"shouldUseHistoryNavigation");function a1(e){return e.isAutocompleteVisible?"cancel-autocomplete":e.hasText?e.timeSinceLastEscapeMs<s1?"clear-input":"arm-clear":"pass-through"}i(a1,"resolvePromptEscapeBehavior");function c1(e){return e.keyName==="newline"||e.keyName==="return"&&(e.ctrl||e.shift)||e.isPasting?"newline":e.isAutocompleteVisible?"accept-completion-and-submit":e.isLineContinuation?"line-continuation":"submit"}i(c1,"resolvePromptEnterBehavior");function l1(e){if(e.meta&&e.name==="backspace")return"delete-word-left";if(e.ctrl)switch(e.name){case"a":return"move-home";case"e":return"move-end";case"z":return"undo";case"y":return"redo";case"k":return"kill-line-right";case"u":return"kill-line-left";case"w":return"delete-word-left";default:return}}i(l1,"resolvePromptEditingCommand");function gb({onSubmit:e,onExit:t,focus:n=!0,initialValue:r="",cwd:o,gitRoot:s,autocompleteEnabled:a=!0,onInputChange:c,onHistoryRecall:l,onPopPendingInputs:u}){let m=Od(0),{add:p,navigateUp:h,navigateDown:g,reset:y,saveTempInput:x}=Bh(),{buffer:w,text:T,cursor:I,lines:A,isPasting:$,editingMode:F,pasteStore:D,resetTransientState:v,setText:z,replaceRange:fe,clear:se,move:ge,moveToOffset:L,insert:k,backspace:P,newline:Re,delete:_e,undo:Y,redo:V,killLineRight:ae,killLineLeft:Q,deleteWordLeft:J}=Fh({initialValue:r,onTextChange:c}),q=Od(0);Wh(()=>{if($)return;if(T.length<=1e4){q.current=0;return}if(T.length===q.current)return;let ce=D.peekNextId(),{truncatedText:oe,placeholderContent:ze}=UC(T,ce);ze&&(D.registerTruncatedText(ze),q.current=oe.length,z(oe))},[T,$,D,z]);let Ie=ii(),ue=$d({cwd:o,gitRoot:s,enabled:a}),{state:et,suggestions:Ue,handleInput:De,handleTab:me,handleEnter:Pt,handleUp:Rt,handleDown:ee,handleEscape:_}=Ie??ue;Wh(()=>{n||(m.current=0,v(),et.visible&&_())},[et.visible,n,_,v]);let O=Od(T);Wh(()=>{a&&T!==O.current&&(O.current=T,De(T,w.getAbsoluteOffset()))},[a,w,De,T]);let j=$s(ce=>{if(!ce?.text)return;let oe=pb(T,w.getAbsoluteOffset(),ce),ze=T.slice(0,oe.start)+oe.replacement+T.slice(oe.end);return fe(oe.start,oe.end,oe.replacement),ze},[w,fe,T]),te=$s(ce=>{let oe=ce??T;if(!oe.trim())return;let ze=D.expand(oe),B=new Set,nt=/\[(Pasted text|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;for(let wi of oe.matchAll(nt)){let Kr=Number.parseInt(wi[2]??"0",10);Number.isFinite(Kr)&&Kr>0&&B.add(Kr)}let un=[];for(let wi of B){let Kr=D.get(wi);Kr&&un.push(Kr)}p(oe,{pastedContents:un}),e({displayText:oe,fullText:ze,pastedContents:un}),se()},[p,se,e,D,T]),Le=$s(ce=>{if(ce){if(ce.pastedContents&&ce.pastedContents.length>0){for(let oe of ce.pastedContents)D.adopt(oe);l?.({text:ce.text,pastedContents:[...ce.pastedContents]})}z(ce.text)}},[l,D,z]),at=$s(async ce=>{try{let oe=await eS(ce);if(oe.kind==="images"){let ze=oe.blocks.map(B=>`@${B.path}`).join(" ");k(`${ze} `,{paste:!1})}else oe.kind==="error"&&console.warn(`[KodaX paste] ${oe.message}`)}catch(oe){console.warn(`[KodaX paste] image handling failed: ${oe instanceof Error?oe.message:String(oe)}`)}},[k]),ke=Od(!1),Be=$s(async()=>{if(!ke.current){ke.current=!0;try{let ce=await tS();if(ce.kind==="images"){let oe=ce.blocks.map(ze=>`@${ze.path}`).join(" ");k(`${oe} `,{paste:!1})}else ce.kind==="error"&&console.warn(`[KodaX clipboard] ${ce.message}`)}catch(ce){console.warn(`[KodaX clipboard] image handling failed: ${ce instanceof Error?ce.message:String(ce)}`)}finally{ke.current=!1}}},[k]),$t=$s(ce=>{if(!n)return!1;if(ce.name==="v"&&(ce.ctrl||ce.meta))return Be(),!0;if(ce.name==="paste"&&ce.isPasted&&nS(ce.sequence).length>0)return at(ce.sequence),!0;let oe=et.visible&&Ue.length>0;if(ce.name==="tab"&&oe){let B=me();return B&&j(B),!0}if(ce.ctrl&&ce.name==="c")return T.length>0?(se(),y()):t?.(),!0;if(ce.name==="escape")switch(a1({isAutocompleteVisible:oe,hasText:T.length>0,timeSinceLastEscapeMs:Date.now()-m.current})){case"cancel-autocomplete":return _(),m.current=0,!0;case"clear-input":return m.current=0,se(),y(),!0;case"arm-clear":return m.current=Date.now(),!0;default:return!1}if(ce.name==="up"){if(oe)return Rt(),!0;if(ce.ctrl)return ge("up"),!0;if(T.length===0&&u){let B=u();if(typeof B=="string"&&B.length>0)return z(B),!0}if(hb(I.row,A.length,"up")){x(T);let B=h();Le(B)}else ge("up");return!0}if(ce.name==="down"){if(oe)return ee(),!0;if(ce.ctrl)return ge("down"),!0;if(hb(I.row,A.length,"down")){let B=g();Le(B)}else ge("down");return!0}if(ce.name==="left"){let B=w.getAbsoluteOffset(),nt=bd(w.text,B);return nt?L(nt.start):ge("left"),!0}if(ce.name==="right"){let B=w.getAbsoluteOffset(),nt=vd(w.text,B);return nt?L(nt.end):ge("right"),!0}if(ce.name==="home")return ge("home"),!0;if(ce.name==="end")return ge("end"),!0;let ze=l1(ce);if(ze)switch(ze){case"move-home":return ge("home"),!0;case"move-end":return ge("end"),!0;case"undo":return Y(),!0;case"redo":return V(),!0;case"kill-line-right":return ae(),!0;case"kill-line-left":return Q(),!0;case"delete-word-left":return J(),!0;default:break}if(ce.name==="backspace")return P(),!0;if(ce.name==="delete")return _e(),!0;if(ce.name==="return"||ce.name==="newline")switch(c1({keyName:ce.name,ctrl:ce.ctrl,shift:ce.shift,isAutocompleteVisible:oe,isLineContinuation:!!A[I.row]?.endsWith("\\"),isPasting:$})){case"accept-completion-and-submit":{let nt=Pt();if(nt){let un=j(nt);te(un)}else te();return!0}case"newline":return Re(),!0;case"line-continuation":return P(),Re(),!0;default:return te(),!0}return ce.insertable&&!ce.ctrl&&!ce.meta?(k(ce.sequence,ce.isPasted?{paste:!0}:void 0),!0):!1},[j,p,et.visible,P,w,se,I.row,_e,n,ee,_,Rt,Pt,Le,me,at,Be,A,Q,ae,ge,L,g,h,Re,t,u,V,y,x,z,te,Ue.length,T.length,J,$,Y]);return{text:T,cursor:I,lines:A,isPasting:$,terminalFocused:n,editingMode:F,handleKey:$t}}i(gb,"usePromptInputController");var Os=i(({onSubmit:e,onHistoryRecall:t,onPopPendingInputs:n,placeholder:r="Type a message...",prompt:o=">",focus:s=!0,initialValue:a="",cwd:c,gitRoot:l,autocompleteEnabled:u=!0,onInputChange:m})=>{let{exit:p}=so(),{cursor:h,lines:g,handleKey:y,isPasting:x,terminalFocused:w,editingMode:T}=gb({onSubmit:e,onExit:p,focus:s,initialValue:a,cwd:c,gitRoot:l,autocompleteEnabled:u,onInputChange:m,onHistoryRecall:t,onPopPendingInputs:n});return yn(zt.High,I=>y(I),[y]),si(R,{flexDirection:"column",children:si(Jp,{lines:g,cursorRow:h.row,cursorCol:h.col,prompt:o,placeholder:r,focus:s,terminalFocused:w,isPasting:x,editingMode:T,theme:"dark"})})},"InputPrompt"),u1=i(({onSubmit:e,placeholder:t,prompt:n=">"})=>{let[r,o]=yb(""),[s,a]=yb(0);yn(zt.High,p=>{if(p.name==="return")return r.trim()&&(e(r),o(""),a(0)),!0;if(p.name==="backspace"&&s>0){let h=[...r].slice(0,s-1).join(""),g=[...r].slice(s).join("");return o(h+g),a(s-1),!0}if(p.name==="left"&&s>0)return a(s-1),!0;if(p.name==="right"&&s<[...r].length)return a(s+1),!0;if(p.insertable&&!p.ctrl&&!p.meta){let h=[...r].slice(0,s).join(""),g=[...r].slice(s).join("");return o(h+p.sequence+g),a(s+1),!0}return!1},[r,s,e]);let c=re("dark");if(!r)return Dd(R,{children:[Dd(b,{color:c.colors.primary,children:[n," "]}),t&&si(b,{dimColor:!0,children:t}),si(b,{backgroundColor:c.colors.primary,color:"#000000",children:" "})]});let l=[...r].slice(0,s).join(""),u=[...r][s]??" ",m=[...r].slice(s+1).join("");return Dd(R,{children:[Dd(b,{color:c.colors.primary,children:[n," "]}),si(b,{children:l}),si(b,{backgroundColor:c.colors.primary,color:"#000000",children:u}),si(b,{children:m})]})},"SimpleInputPrompt");import{jsx as dt,jsxs as Bt}from"react/jsx-runtime";import{useState as wb,useEffect as Sb}from"react";var xb=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],d1=80,Nd=new Set,Ac=null;function f1(){let e=Array.from(Nd);for(let t of e)t()}i(f1,"dispatchSharedSpinnerTick");function m1(e){return Nd.add(e),Ac===null&&(Ac=setInterval(f1,d1)),()=>{Nd.delete(e),Nd.size===0&&Ac!==null&&(clearInterval(Ac),Ac=null)}}i(m1,"subscribeToSharedSpinnerClock");function Tb(e=!0){let[t,n]=wb(0);return Sb(()=>{if(e)return m1(()=>{n(r=>r+1)})},[e]),t}i(Tb,"useSharedSpinnerTick");var Dn=i(({color:e,theme:t})=>{let n=t??re("dark"),o=Tb(!0)%xb.length,s=e??n.colors.accent;return dt(b,{color:s,children:xb[o]})},"Spinner");function p1(e){return e<=0?0:Math.round(e/4)}i(p1,"estimateOutputTokens");function h1(e){let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/3600),r=Math.floor(t%3600/60),o=t%60;return n===0?`${r}m${o}s`:`${n}h${r}m${o}s`}i(h1,"formatElapsedDuration");var Cb=i(({roundStartedAt:e,charCount:t,theme:n})=>{let r=n??re("dark");if(Tb(e!==null),e===null)return null;let o=g1(Date.now()-e,t);return dt(b,{color:r.colors.dim,children:o})},"SpinnerStatsTail");function g1(e,t){let n=h1(e),r=p1(t);return r>0?` (${n} \xB7 \u2193 ${r} tokens)`:` (${n})`}i(g1,"buildSpinnerStatsText");var bb=i(({label:e,dotCount:t=3,theme:n})=>{let r=n??re("dark"),[o,s]=wb(1);Sb(()=>{let c=setInterval(()=>{s(l=>l%t+1)},300);return()=>clearInterval(c)},[t]);let a=".".repeat(o);return Bt(R,{children:[e&&dt(b,{color:r.colors.text,children:e}),dt(b,{color:r.colors.accent,children:a})]})},"DotsIndicator"),vb=i(({progress:e,label:t,width:n=20,theme:r})=>{let o=r??re("dark"),s=Math.max(0,Math.min(100,e)),a=Math.round(s/100*n),c=n-a,l="\u2588".repeat(a),u="\u2591".repeat(c);return Bt(R,{flexDirection:"column",children:[t&&dt(R,{marginBottom:1,children:dt(b,{color:o.colors.text,children:t})}),Bt(R,{children:[dt(b,{color:o.colors.primary,children:l}),dt(b,{dimColor:!0,children:u}),Bt(b,{children:[" ",s,"%"]})]})]})},"ProgressIndicator"),y1=i(({message:e,showSpinner:t=!1,theme:n})=>{let r=n??re("dark"),o=e??"Thinking";return Bt(R,{children:[t&&dt(R,{marginRight:1,children:dt(Dn,{theme:r})}),Bt(b,{color:r.colors.accent,children:[o,"\u2026"]})]})},"ThinkingIndicator"),x1=i(({message:e,subMessage:t,progress:n,type:r="spinner",compact:o=!1,theme:s})=>{let a=s??re("dark"),c=e??"Loading";return o?Bt(R,{children:[dt(Dn,{theme:a}),Bt(b,{color:a.colors.text,children:[" ",c,"\u2026"]})]}):r==="bar"&&n!==void 0?Bt(R,{flexDirection:"column",children:[dt(vb,{progress:n,label:c,theme:a}),t&&dt(R,{marginTop:1,children:dt(b,{dimColor:!0,children:t})})]}):r==="dots"?Bt(R,{flexDirection:"column",children:[dt(bb,{label:c,theme:a}),t&&dt(R,{marginTop:1,children:dt(b,{dimColor:!0,children:t})})]}):r==="simple"?Bt(R,{flexDirection:"column",children:[Bt(b,{color:a.colors.accent,children:[c,"\u2026"]}),t&&dt(R,{marginTop:1,children:dt(b,{dimColor:!0,children:t})}),n!==void 0&&dt(R,{marginTop:1,children:Bt(b,{dimColor:!0,children:[n,"%"]})})]}):Bt(R,{flexDirection:"column",children:[Bt(R,{children:[dt(Dn,{theme:a}),Bt(b,{color:a.colors.text,children:[" ",c,"\u2026"]}),n!==void 0&&Bt(b,{dimColor:!0,children:[" (",n,"%)"]})]}),t&&dt(R,{marginTop:1,children:dt(b,{dimColor:!0,children:t})})]})},"LoadingIndicator");import{jsx as ye,jsxs as je,Fragment as Zh}from"react/jsx-runtime";import{useEffect as iv,useMemo as pr,memo as wn}from"react";import*as Lc from"node:path";function _c(e){if(hw(e)){let t=gw(e);return t?`[memory:${t}]`:"[memory]"}if(w1(e))return"[memory]"}i(_c,"memoryBadgeFor");function w1(e){let t=Lc.resolve(e),n=kn("projects");if(!t.startsWith(n+Lc.sep)&&t!==n)return!1;let o=t.slice(n.length+1).split(Lc.sep);return o.length>=2&&o[1]==="memory"}i(w1,"isInsideAnyMemoryDir");function qe(e,t=120){return e.length>t?`${e.slice(0,t-3)}...`:e}i(qe,"truncateValue");function Ib(e){if(e)return e.split(/\r?\n/).map(t=>t.trim()).find(Boolean)}i(Ib,"extractFirstMeaningfulLine");function Eb(e){let t=e.match(/^\[([^\]]+)\]\s+(.*)$/);if(!t)return{toolLabel:e};let n=t[1]?.trim(),r=t[2]?.trim()??e,o=new RegExp(`^${n?.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}:`,"i"),s=r.replace(o,"").trim();return{rolePrefix:n?`[${n}]`:void 0,toolLabel:s||r}}i(Eb,"splitDisplayToolName");function Bd(e){let{rolePrefix:t,toolLabel:n}=Eb(e);return t?`${t} ${n}`:n}i(Bd,"normalizeDisplayToolName");function Pc(e){return Eb(e).toolLabel}i(Pc,"stripRolePrefix");function Hd(e){if(!(!e||Array.isArray(e)||typeof e!="object"))return e}i(Hd,"asRecord");function Mb(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i(Mb,"readString");function It(e,...t){for(let n of t){let r=Mb(e?.[n]);if(r)return r}}i(It,"readFirstString");function fr(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim().length>0){let t=Number(e.trim());return Number.isFinite(t)?t:void 0}}i(fr,"readNumber");function Ab(e){if(!Array.isArray(e))return;let t=e.map(n=>typeof n=="string"?n.trim():"").filter(Boolean);return t.length>0?t:void 0}i(Ab,"readStringArray");function S1(e){if(typeof e=="string")return e.trim()||void 0;let t=Hd(e);if(t)return Mb(t.preview)??void 0}i(S1,"extractPreview");function kb(e){if(e)try{return Hd(JSON.parse(e))}catch{return}}i(kb,"parsePreviewRecord");function Oe(e,t){return e&&e.match(new RegExp(`"${t}"\\s*:\\s*"([^"]+)`))?.[1]?.trim()||void 0}i(Oe,"extractFieldFromPreview");function mr(e,t){if(!e)return;let n=e.match(new RegExp(`"${t}"\\s*:\\s*(\\d+)`));return n?.[1]?Number(n[1]):void 0}i(mr,"extractNumberFromPreview");function _b(e){if(!e)return;let t=e.match(/"paths"\s*:\s*\[([^\]]*)/);if(!t?.[1])return;let n=Array.from(t[1].matchAll(/"([^"]+)"/g)).map(r=>r[1]?.trim()??"").filter(Boolean);return n.length>0?n:void 0}i(_b,"extractPathsFromPreview");function T1(e){let t=S1(e);if(typeof e=="string")return{record:kb(t),preview:t};let n=Hd(e),r=kb(t);return n?r?{record:{...n,...r},preview:t}:{record:n,preview:t}:{record:r,preview:t}}i(T1,"resolveInputRecord");function Ds(e,t,n,r=!1){let o=It(t,"path","target_path","targetPath")??Oe(n,"path")??Oe(n,"target_path")??Oe(n,"targetPath"),s=Ab(t?.paths)??_b(n);if(r&&s?.length){if(s.length===1){let a=_c(s[0]);a&&e.push(a),e.push(qe(s[0]))}else e.push(`${s.length} files`);return}if(o){let a=_c(o);a&&e.push(a),e.push(qe(o));return}if(s?.length)if(s.length===1){let a=_c(s[0]);a&&e.push(a),e.push(qe(s[0]))}else e.push(`${s.length} files`)}i(Ds,"pushPathSummary");function Ns(e,t,n){n!==void 0&&e.push(`${t}=${n}`)}i(Ns,"pushNumericSummary");function Uh(e,t,n){let r=It(t,"baseRef","base_ref")??Oe(n,"baseRef")??Oe(n,"base_ref"),o=It(t,"targetRef","target_ref")??Oe(n,"targetRef")??Oe(n,"target_ref");r&&o&&e.push(qe(`${r}...${o}`,88))}i(Uh,"pushRangeSummary");function C1(e,t){let{record:n,preview:r}=T1(t),o=Pc(e).toLowerCase(),s=[];if(o.includes("changed_diff_bundle")){let a=Ab(n?.paths)??_b(r);a?.length?(s.push(a.length===1?qe(a[0]):`${a.length} files`),a.length>1&&s.push(qe(a[0]))):Ds(s,n,r,!0);let c=fr(n?.limit_per_path)??fr(n?.limitPerPath)??mr(r,"limit_per_path")??mr(r,"limitPerPath");return c!==void 0&&s.push(`limit=${c}`),Uh(s,n,r),s}if(o.includes("changed_diff"))return Ds(s,n,r),Ns(s,"offset",fr(n?.offset)??mr(r,"offset")),Ns(s,"limit",fr(n?.limit)??mr(r,"limit")),Uh(s,n,r),s;if(o==="read"||o.includes("read_"))return Ds(s,n,r),Ns(s,"offset",fr(n?.offset)??mr(r,"offset")),Ns(s,"limit",fr(n?.limit)??mr(r,"limit")),s;if(o.includes("changed_scope"))return Ds(s,n,r,!0),Uh(s,n,r),s;if(o.includes("repo_overview"))return Ds(s,n,r),s;if(o.includes("bash")||o.includes("shell_command")){let a=It(n,"command")??Oe(r,"command");return a&&s.push(`cmd=${qe(a,140)}`),s}if(o==="glob"||o.includes("glob_")){let a=It(n,"pattern")??Oe(r,"pattern"),c=It(n,"path","root","directory","cwd")??Oe(r,"path")??Oe(r,"root")??Oe(r,"directory")??Oe(r,"cwd");if(a&&s.push(`pattern=${qe(a,96)}`),c){let l=_c(c);l&&s.push(l),s.push(qe(c))}return s}if(o==="grep"||o.includes("grep_")){let a=It(n,"pattern","query")??Oe(r,"pattern")??Oe(r,"query"),c=It(n,"path","root","directory","cwd")??Oe(r,"path")??Oe(r,"root")??Oe(r,"directory")??Oe(r,"cwd");if(a&&s.push(`pattern=${qe(a,96)}`),c){let l=_c(c);l&&s.push(l),s.push(qe(c))}return s}if(o==="web_fetch"){let a=It(n,"url")??Oe(r,"url"),c=It(n,"provider_id","providerId")??Oe(r,"provider_id")??Oe(r,"providerId"),l=It(n,"capability_id","capabilityId")??Oe(r,"capability_id")??Oe(r,"capabilityId");return a&&s.push(qe(a,120)),c&&s.push(`provider=${qe(c,48)}`),l&&s.push(`cap=${qe(l,48)}`),s}if(o==="mcp_describe"||o==="mcp_read_resource"){let a=It(n,"id")??Oe(r,"id");return a&&s.push(qe(a,120)),s}if(o==="mcp_call"){let a=It(n,"id")??Oe(r,"id"),c=Hd(n?.args),l=c?Object.keys(c).length:void 0;return a&&s.push(qe(a,120)),l!==void 0&&s.push(`args=${l}`),s}if(o==="mcp_search"){let a=It(n,"query")??Oe(r,"query"),c=It(n,"server")??Oe(r,"server"),l=It(n,"kind")??Oe(r,"kind"),u=fr(n?.limit)??mr(r,"limit");return a&&s.push(`query=${qe(a,96)}`),c&&s.push(`server=${qe(c,48)}`),l&&s.push(`kind=${l}`),u!==void 0&&s.push(`limit=${u}`),s}if(o==="web_search"||o==="code_search"||o==="semantic_lookup"){let a=It(n,"query","pattern")??Oe(r,"query")??Oe(r,"pattern"),c=It(n,"path","target_path","targetPath")??Oe(r,"path")??Oe(r,"target_path")??Oe(r,"targetPath"),l=It(n,"provider_id","providerId")??Oe(r,"provider_id")??Oe(r,"providerId"),u=fr(n?.limit)??mr(r,"limit");return a&&s.push(`query=${qe(a,96)}`),c&&s.push(qe(c,72)),l&&s.push(`provider=${qe(l,48)}`),u!==void 0&&s.push(`limit=${u}`),s}return Ds(s,n,r,!0),Ns(s,"offset",fr(n?.offset)??mr(r,"offset")),Ns(s,"limit",fr(n?.limit)??mr(r,"limit")),s}i(C1,"summarizeToolDetails");function Lb(e){let t=e.match(/Showing diff lines\s+(\d+)-(\d+)\s+of\s+(\d+)/i);if(t)return`${t[1]}-${t[2]}/${t[3]}`}i(Lb,"extractChangedDiffRange");function b1(e){return e.split(/\r?\n/).map(t=>t.trim()).find(t=>t.startsWith("+")||t.startsWith("-")||t.startsWith("@@"))}i(b1,"extractDiffPreviewLine");function v1(e){let t=[],n=Lb(e);if(n){let[o,s]=n.split("/");t.push(s?`Diff range: ${o} of ${s}`:`Diff range: ${n}`)}let r=b1(e);return r&&t.push(`Preview: ${qe(r,220)}`),t}i(v1,"formatChangedDiffExplanation");function I1(e){let t=[],n=e.match(/^Changed diff bundle for\s+(\d+)\s+file\(s\)/im);if(n?.[1]){let o=Number(n[1]);Number.isFinite(o)&&o>0&&t.push(`Bundle: ${o===1?"1 file":`${o} files`}`)}let r=e.match(/^===\s+(.+?)\s+===/m);return r?.[1]&&t.push(`First file: ${qe(r[1].trim(),220)}`),t}i(I1,"formatChangedDiffBundleExplanation");function Pb(e,t){if(!t)return[];let n=Pc(e).toLowerCase(),r=[];if(n.includes("changed_diff_bundle")){let o=t.match(/^Changed diff bundle for\s+(\d+)\s+file\(s\)/im);if(o?.[1]){let a=Number(o[1]);Number.isFinite(a)&&a>0&&r.push(a===1?"1 file":`${a} files`)}let s=t.match(/^===\s+(.+?)\s+===/m);return s?.[1]&&r.push(qe(s[1].trim())),r}if(n.includes("changed_diff")){let o=t.match(/^Changed diff for\s+(.+)$/im);o?.[1]&&r.push(qe(o[1].trim()));let s=Lb(t);return s&&r.push(s),r}if(n==="read"||n.includes("read_")){let o=t.match(/^Reading\s+(.+)$/im);return o?.[1]&&r.push(qe(o[1].trim())),r}return[]}i(Pb,"summarizeToolOutputDetails");function jh(e,t){let n=Bd(e);return t.length>0?`${n} - ${t.join(" - ")}`:n}i(jh,"formatToolDetailSummary");function k1(e,t){if(!t)return;let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(k1,"formatDuration");function R1(e){switch(e.status){case N.Scheduled:return"scheduled";case N.Validating:return"validating";case N.AwaitingApproval:return"awaiting approval";case N.Executing:return"running";case N.Error:return"failed";case N.Cancelled:return"cancelled";default:return}}i(R1,"formatToolStatusDetail");function Rb(e){switch(e.status){case N.Scheduled:return["Queued: waiting to start"];case N.Validating:return["Validating: checking inputs and policy"];case N.AwaitingApproval:return["Waiting: approval required before execution"];case N.Executing:return e.progress!==void 0?[`Progress: ${e.progress}% complete`]:e.progressLines&&e.progressLines.length>0?e.progressLines.slice(-5):e.preview?[`Running: ${e.preview}`]:["Running: waiting for tool output"];case N.Cancelled:return["Cancelled before completion"];default:return[]}}i(Rb,"formatToolProgressExplanation");function Gh(e){return e.startsWith("Error:")?"error":e.startsWith("Waiting:")?"accent":e.startsWith("Progress:")||e.startsWith("Running:")?"primary":"dim"}i(Gh,"resolveToolExplanationTone");function E1(e){let t=Ib(e.error),n=typeof e.output=="string"?Ib(e.output):void 0,r=[];return t&&r.push(`Error: ${qe(t,220)}`),e.status===N.Error&&n&&(!t||n.toLowerCase()!==t.toLowerCase())&&r.push(`Last output: ${qe(n,220)}`),r}i(E1,"formatToolFailureExplanation");function Kh(e){if(typeof e.output!="string"||!e.output.trim())return Rb(e);let t=Pc(e.name).toLowerCase();return e.status===N.Error?E1(e):e.status!==N.Success?Rb(e):t.includes("changed_diff_bundle")?I1(e.output):t.includes("changed_diff")?v1(e.output):[]}i(Kh,"formatToolResultExplanation");function Vh(e,t){return jh(e,C1(e,t))}i(Vh,"formatToolSummary");function Fd(e){let t=typeof e.output=="string"?Pb(e.name,e.output):[],n=t.length>0?jh(e.name,t):Vh(e.name,e.input),r=R1(e),o=k1(e.startTime,e.endTime),s=e.status===N.Executing&&e.progress!==void 0?`${e.progress}%`:e.status===N.Executing&&e.preview?e.preview:void 0,a=[r,s,o].filter(Boolean);return a.length>0?`${n} (${a.join(" - ")})`:n}i(Fd,"formatToolCallInlineText");function Wd(e){let t=new Map;for(let n of e){let r=typeof n.output=="string"?Pb(n.name,n.output):[],o=r.length>0?jh(n.name,r):Vh(n.name,n.input),a=n.progressLines&&n.progressLines.length>0?`${o}|${n.id}`:`${o}|${n.error??""}`,c=t.get(a);c?(c.tool=n,c.count+=1):t.set(a,{tool:n,count:1})}return[...t.values()]}i(Wd,"collapseToolCalls");function $c(e){let t=Fd(e.tool);return e.count>1?`${t} x${e.count}`:t}i($c,"formatCollapsedToolInlineText");function Ud(e,t,n){let r=Vh(e,t);return r!==Bd(e)?`[Tools] ${r}`:n>0?`[Tools] ${Bd(e)} (${n} chars)`:`[Tools] ${Bd(e)}`}i(Ud,"formatLiveToolLabel");function zh(e,t=e.length){let n=0,r=Math.min(t,e.length);for(let o=0;o<r;o++)e.charCodeAt(o)===10&&(n+=1);return n}i(zh,"countNewlines");function jd(e,t={}){let n=t.maxChars??1e4,r=t.headChars??2500,o=t.tailChars??2500;if(e.length<=n)return e;let s=e.slice(0,r),a=e.slice(-o),c=zh(e),l=zh(s),u=zh(a),m=Math.max(0,c-l-u);return`${s}
|
|
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]),S=_t(()=>{let L=l.getAbsoluteOffset(),k=vd(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=Id(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 i1(()=>()=>{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:S,delete:T,move:I,moveToEnd:D,moveToOffset:v,killLineRight:z,killLineLeft:fe,deleteWordLeft:se,clear:A,undo:$,redo:F}}i(Wh,"useTextBuffer");import{jsx as si,jsxs as Nd}from"react/jsx-runtime";import{useState as xb}from"react";import{useCallback as $s,useEffect as Uh,useRef as Dd}from"react";function hb(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(hb,"buildAutocompleteReplacement");var a1=500;function gb(e,t,n){return n==="up"?e===0:e>=Math.max(0,t-1)}i(gb,"shouldUseHistoryNavigation");function c1(e){return e.isAutocompleteVisible?"cancel-autocomplete":e.hasText?e.timeSinceLastEscapeMs<a1?"clear-input":"arm-clear":"pass-through"}i(c1,"resolvePromptEscapeBehavior");function l1(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(l1,"resolvePromptEnterBehavior");function u1(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(u1,"resolvePromptEditingCommand");function yb({onSubmit:e,onExit:t,focus:n=!0,initialValue:r="",cwd:o,gitRoot:s,autocompleteEnabled:a=!0,onInputChange:c,onHistoryRecall:l,onPopPendingInputs:u}){let m=Dd(0),{add:p,navigateUp:h,navigateDown:g,reset:y,saveTempInput:x}=Hh(),{buffer:S,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}=Wh({initialValue:r,onTextChange:c}),q=Dd(0);Uh(()=>{if($)return;if(T.length<=1e4){q.current=0;return}if(T.length===q.current)return;let ce=D.peekNextId(),{truncatedText:oe,placeholderContent:ze}=jC(T,ce);ze&&(D.registerTruncatedText(ze),q.current=oe.length,z(oe))},[T,$,D,z]);let Ie=ii(),ue=Od({cwd:o,gitRoot:s,enabled:a}),{state:et,suggestions:Ue,handleInput:De,handleTab:me,handleEnter:Pt,handleUp:Rt,handleDown:ee,handleEscape:_}=Ie??ue;Uh(()=>{n||(m.current=0,v(),et.visible&&_())},[et.visible,n,_,v]);let O=Dd(T);Uh(()=>{a&&T!==O.current&&(O.current=T,De(T,S.getAbsoluteOffset()))},[a,S,De,T]);let j=$s(ce=>{if(!ce?.text)return;let oe=hb(T,S.getAbsoluteOffset(),ce),ze=T.slice(0,oe.start)+oe.replacement+T.slice(oe.end);return fe(oe.start,oe.end,oe.replacement),ze},[S,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 tS(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=Dd(!1),He=$s(async()=>{if(!ke.current){ke.current=!0;try{let ce=await nS();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 He(),!0;if(ce.name==="paste"&&ce.isPasted&&rS(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(c1({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(gb(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(gb(I.row,A.length,"down")){let B=g();Le(B)}else ge("down");return!0}if(ce.name==="left"){let B=S.getAbsoluteOffset(),nt=vd(S.text,B);return nt?L(nt.start):ge("left"),!0}if(ce.name==="right"){let B=S.getAbsoluteOffset(),nt=Id(S.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=u1(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(l1({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,S,se,I.row,_e,n,ee,_,Rt,Pt,Le,me,at,He,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(yb,"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:S,editingMode:T}=yb({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(Qp,{lines:g,cursorRow:h.row,cursorCol:h.col,prompt:o,placeholder:r,focus:s,terminalFocused:S,isPasting:x,editingMode:T,theme:"dark"})})},"InputPrompt"),d1=i(({onSubmit:e,placeholder:t,prompt:n=">"})=>{let[r,o]=xb(""),[s,a]=xb(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 Nd(R,{children:[Nd(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 Nd(R,{children:[Nd(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 Sb,useEffect as Tb}from"react";var wb=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],f1=80,Bd=new Set,_c=null;function m1(){let e=Array.from(Bd);for(let t of e)t()}i(m1,"dispatchSharedSpinnerTick");function p1(e){return Bd.add(e),_c===null&&(_c=setInterval(m1,f1)),()=>{Bd.delete(e),Bd.size===0&&_c!==null&&(clearInterval(_c),_c=null)}}i(p1,"subscribeToSharedSpinnerClock");function Cb(e=!0){let[t,n]=Sb(0);return Tb(()=>{if(e)return p1(()=>{n(r=>r+1)})},[e]),t}i(Cb,"useSharedSpinnerTick");var Dn=i(({color:e,theme:t})=>{let n=t??re("dark"),o=Cb(!0)%wb.length,s=e??n.colors.accent;return dt(b,{color:s,children:wb[o]})},"Spinner");function h1(e){return e<=0?0:Math.round(e/4)}i(h1,"estimateOutputTokens");function g1(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(g1,"formatElapsedDuration");var bb=i(({roundStartedAt:e,charCount:t,theme:n})=>{let r=n??re("dark");if(Cb(e!==null),e===null)return null;let o=y1(Date.now()-e,t);return dt(b,{color:r.colors.dim,children:o})},"SpinnerStatsTail");function y1(e,t){let n=g1(e),r=h1(t);return r>0?` (${n} \xB7 \u2193 ${r} tokens)`:` (${n})`}i(y1,"buildSpinnerStatsText");var vb=i(({label:e,dotCount:t=3,theme:n})=>{let r=n??re("dark"),[o,s]=Sb(1);Tb(()=>{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"),Ib=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"),x1=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"),w1=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(Ib,{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(vb,{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 eg}from"react/jsx-runtime";import{useEffect as sv,useMemo as pr,memo as wn}from"react";import*as Pc from"node:path";function Lc(e){if(gw(e)){let t=yw(e);return t?`[memory:${t}]`:"[memory]"}if(S1(e))return"[memory]"}i(Lc,"memoryBadgeFor");function S1(e){let t=Pc.resolve(e),n=kn("projects");if(!t.startsWith(n+Pc.sep)&&t!==n)return!1;let o=t.slice(n.length+1).split(Pc.sep);return o.length>=2&&o[1]==="memory"}i(S1,"isInsideAnyMemoryDir");function qe(e,t=120){return e.length>t?`${e.slice(0,t-3)}...`:e}i(qe,"truncateValue");function kb(e){if(e)return e.split(/\r?\n/).map(t=>t.trim()).find(Boolean)}i(kb,"extractFirstMeaningfulLine");function Mb(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(Mb,"splitDisplayToolName");function Hd(e){let{rolePrefix:t,toolLabel:n}=Mb(e);return t?`${t} ${n}`:n}i(Hd,"normalizeDisplayToolName");function $c(e){return Mb(e).toolLabel}i($c,"stripRolePrefix");function Fd(e){if(!(!e||Array.isArray(e)||typeof e!="object"))return e}i(Fd,"asRecord");function Ab(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i(Ab,"readString");function It(e,...t){for(let n of t){let r=Ab(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 _b(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(_b,"readStringArray");function T1(e){if(typeof e=="string")return e.trim()||void 0;let t=Fd(e);if(t)return Ab(t.preview)??void 0}i(T1,"extractPreview");function Rb(e){if(e)try{return Fd(JSON.parse(e))}catch{return}}i(Rb,"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 Lb(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(Lb,"extractPathsFromPreview");function C1(e){let t=T1(e);if(typeof e=="string")return{record:Rb(t),preview:t};let n=Fd(e),r=Rb(t);return n?r?{record:{...n,...r},preview:t}:{record:n,preview:t}:{record:r,preview:t}}i(C1,"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=_b(t?.paths)??Lb(n);if(r&&s?.length){if(s.length===1){let a=Lc(s[0]);a&&e.push(a),e.push(qe(s[0]))}else e.push(`${s.length} files`);return}if(o){let a=Lc(o);a&&e.push(a),e.push(qe(o));return}if(s?.length)if(s.length===1){let a=Lc(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 jh(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(jh,"pushRangeSummary");function b1(e,t){let{record:n,preview:r}=C1(t),o=$c(e).toLowerCase(),s=[];if(o.includes("changed_diff_bundle")){let a=_b(n?.paths)??Lb(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}`),jh(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")),jh(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),jh(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=Lc(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=Lc(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=Fd(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(b1,"summarizeToolDetails");function Pb(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(Pb,"extractChangedDiffRange");function v1(e){return e.split(/\r?\n/).map(t=>t.trim()).find(t=>t.startsWith("+")||t.startsWith("-")||t.startsWith("@@"))}i(v1,"extractDiffPreviewLine");function I1(e){let t=[],n=Pb(e);if(n){let[o,s]=n.split("/");t.push(s?`Diff range: ${o} of ${s}`:`Diff range: ${n}`)}let r=v1(e);return r&&t.push(`Preview: ${qe(r,220)}`),t}i(I1,"formatChangedDiffExplanation");function k1(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(k1,"formatChangedDiffBundleExplanation");function $b(e,t){if(!t)return[];let n=$c(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=Pb(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($b,"summarizeToolOutputDetails");function Gh(e,t){let n=Hd(e);return t.length>0?`${n} - ${t.join(" - ")}`:n}i(Gh,"formatToolDetailSummary");function R1(e,t){if(!t)return;let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(R1,"formatDuration");function E1(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(E1,"formatToolStatusDetail");function Eb(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(Eb,"formatToolProgressExplanation");function Kh(e){return e.startsWith("Error:")?"error":e.startsWith("Waiting:")?"accent":e.startsWith("Progress:")||e.startsWith("Running:")?"primary":"dim"}i(Kh,"resolveToolExplanationTone");function M1(e){let t=kb(e.error),n=typeof e.output=="string"?kb(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(M1,"formatToolFailureExplanation");function Vh(e){if(typeof e.output!="string"||!e.output.trim())return Eb(e);let t=$c(e.name).toLowerCase();return e.status===N.Error?M1(e):e.status!==N.Success?Eb(e):t.includes("changed_diff_bundle")?k1(e.output):t.includes("changed_diff")?I1(e.output):[]}i(Vh,"formatToolResultExplanation");function zh(e,t){return Gh(e,b1(e,t))}i(zh,"formatToolSummary");function Wd(e){let t=typeof e.output=="string"?$b(e.name,e.output):[],n=t.length>0?Gh(e.name,t):zh(e.name,e.input),r=E1(e),o=R1(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(Wd,"formatToolCallInlineText");function Ud(e){let t=new Map;for(let n of e){let r=typeof n.output=="string"?$b(n.name,n.output):[],o=r.length>0?Gh(n.name,r):zh(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(Ud,"collapseToolCalls");function Oc(e){let t=Wd(e.tool);return e.count>1?`${t} x${e.count}`:t}i(Oc,"formatCollapsedToolInlineText");function jd(e,t,n){let r=zh(e,t);return r!==Hd(e)?`[Tools] ${r}`:n>0?`[Tools] ${Hd(e)} (${n} chars)`:`[Tools] ${Hd(e)}`}i(jd,"formatLiveToolLabel");function Xh(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(Xh,"countNewlines");function Gd(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=Xh(e),l=Xh(s),u=Xh(a),m=Math.max(0,c-l-u);return`${s}
|
|
334
334
|
\u2026 +${m} lines \u2026
|
|
335
|
-
${a}`}i(
|
|
336
|
-
)+`),
|
|
337
|
-
[ \r]*)+(${
|
|
338
|
-
`),o=tn(r.length>0?r:[""],n,0,0);return o.visualLines.length>0?o.visualLines:[""]}i(
|
|
335
|
+
${a}`}i(Gd,"truncateUserMessageForDisplay");var Ob="(?:\x1B[[0-9;]*m)*",A1=new RegExp(`^(${Ob})(?:[ \r]*
|
|
336
|
+
)+`),_1=new RegExp(`(?:
|
|
337
|
+
[ \r]*)+(${Ob})$`);function Db(e){return e.replace(A1,"$1").replace(_1,"$1")}i(Db,"stripOuterBlankLines");var L1=new Set(["edit","write","multi_edit","insert_after_anchor"]),P1=20;function $1(e){return L1.has($c(e.name).trim().toLowerCase())}i($1,"isMutationTool");function O1(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(O1,"classifyDiffLine");function D1(e,t,n,r,o){let s=[],a=!1;for(let p of n.split(/\r?\n/)){let{color:h,skip:g}=O1(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,P1);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(D1,"pushDiffRows");var Nb=400,N1="... (thinking truncated; press Ctrl+O to inspect full reasoning)",Bb=2e5,B1="... (thinking show-all truncated at 200K chars; full content available via session artifacts)",Ub=1e5,Hb=120,H1=" \u2026 (Ctrl+O to expand)";function jb(){return process.env.KODAX_THINKING_COLLAPSE!=="0"}i(jb,"isThinkingCollapseEnabled");function F1(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>Hb;return{summary:o?`${n.slice(0,Hb).trimEnd()}\u2026`:n,hasMore:r||o}}i(F1,"buildCollapsedThinkingLine");function W1(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(W1,"normalizeManagedLiveActivityLabel");function Kd(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(Kd,"formatTimestamp");function Gb(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(Gb,"getToolStatusIcon");function Kb(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(Kb,"getToolStatusColor");function U1(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(U1,"wrapText");function Yh(e,t,n,r=!1){if(n||r)return e.length>Bb?`${e.slice(0,Bb)}
|
|
339
339
|
|
|
340
|
-
${
|
|
341
|
-
`):e,c=a.length>
|
|
340
|
+
${B1}`:e;let o=e.split(/\r?\n/),s=o.length>t,a=s?o.slice(0,t).join(`
|
|
341
|
+
`):e,c=a.length>Nb,l=c?a.slice(0,Nb):a;return!s&&!c?e:`${l}
|
|
342
342
|
|
|
343
|
-
${
|
|
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}),
|
|
345
|
-
`),r=n.slice(0,t),o=n.length>t;return{lines:r,hasMore:o}}i(
|
|
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]=
|
|
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(
|
|
351
|
-
[Executing: ${r}]`));let{stdout:s,stderr:a}=await
|
|
343
|
+
${N1}`}i(Yh,"buildThinkingPreview");function j1(e){for(let t=e.length-1;t>=0;t--)if(e[t]?.type==="user")return t;return 0}i(j1,"findActiveRoundStartIndex");function Ae(e,t,n,r,o){let s=U1(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 Dc(e,t){e.push({key:t,text:" "})}i(Dc,"pushBlankRow");function ft(e,t=0){return Math.max(20,e-t)}i(ft,"getBodyWidth");function G1(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(G1,"buildToolInputPreview");function K1(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(K1,"formatHarnessProfileShort");function V1(e,t,n,r,o,s=!1,a=!1){Ae(e,`${t}-tool-${n.id}-main`,`${Gb(n.status)} ${Oc({tool:n,count:r})}`,ft(o,2),{color:Kb(n.status),indent:2,bold:n.status===N.Executing}),Vh(n).forEach((u,m)=>{let p=Kh(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&&$1(n)&&D1(e,`${t}-tool-${n.id}`,n.output,o,a);if(s){let u=G1(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(V1,"buildToolRows");function z1(e,t,n,r){let o=n.status===N.Executing,s=o?"":`${Gb(n.status)} `;Ae(e,`${t}-tool-${n.id}-main`,`${s}${Oc({tool:n,count:1})}`,ft(r,2),{color:Kb(n.status),indent:2,bold:o,spinner:o}),Vh(n).forEach((c,l)=>{let u=Kh(c);Ae(e,`${t}-tool-${n.id}-explanation-${l}`,c,ft(r,4),{color:u,indent:4})})}i(z1,"buildLiveToolRows");function Vb(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:S,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 [${Kd(k.timestamp)}]`,n,{color:"primary",bold:!0,itemId:k.id}),Ae(L,`${k.id}-body`,Gd(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 [${Kd(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 [${Kd(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 [${Kd(k.timestamp)}]`,n,{color:"accent",bold:!0,itemId:k.id}),Ud(k.tools).forEach(P=>V1(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=jb()&&!z&&!se?F1(k.compactText??k.text):void 0;if(P?.hasMore){Ae(L,`${k.id}-body`,`${P.summary}${H1}`,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?Yh(k.text,o,z,se):k.compactText??Yh(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"} ${Db(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}),Dc(L,`iteration-${k.iteration}-blank`)}),Ae(L,"iteration-current-header",`\u2500\u2500 Round ${y} (current) \u2500\u2500`,n,{color:"accent",bold:!0}),Dc(L,"iteration-current-blank")),r&&c){let k=Yh(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}),Dc(L,"thinking-stream-blank")}if(r){let k="Thinking",P="",Re=K1(I),_e=W1(D,A),Y=A??"Scout",V=T==="routing"?`[${S?S.toUpperCase():"AMA"} Routing] `:T==="preflight"?`[${S?S.toUpperCase():"AMA"} ${Y}] `:T==="verifying"?`[${S?S.toUpperCase():"AMA"} Verifying] `:I?`[${S?S.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=>{z1(L,"loading-tools",et,n)}),Dc(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:jd(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}),Dc(L,"streaming-blank"))}return L}i(Vb,"buildTranscriptRows");function X1(e,t,n=1e3,r=!1,o=!1,s=!1){return Bs(e,t,n,r,void 0,o,s)}i(X1,"buildStaticTranscriptSections");var Fb=new WeakMap,Wb=new Set(["thinking","tool_group"]);function Y1(){return process.env.KODAX_TRANSCRIPT_TIGHT!=="0"}i(Y1,"isTightRunSpacingEnabled");function q1(e,t){return Y1()?t.map((n,r)=>{let o=e[r],s=e[r+1];if(!o||!s||!Wb.has(o.type)||!Wb.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(q1,"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}|${jb()?1:0}|${a?1:0}`,p=Fb.get(l);if(p!==void 0&&p.sig===m)return p.section;let h={key:l.id,rows:Vb({items:[l],viewportWidth:t,maxLines:n,showAllContent:s,showDetailedTools:u,showFullThinking:a})};return Fb.set(l,{sig:m,section:h}),h});return q1(e,c)}i(Bs,"buildHistoryItemTranscriptSections");function J1(e,t){return{key:e,rows:Vb(t)}}i(J1,"buildDynamicTranscriptSection");function Vd(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=j1(t),u=t.slice(0,l),m=t.slice(l);return{staticSections:X1(u,n,r,o,s,a),activeItems:m}}i(Vd,"buildTranscriptStaticPortion");function zd(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=J1("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(zd,"buildTranscriptDynamicPortion");function Xd(e,t){return{staticSections:e.staticSections,sections:t.sections,rows:ai(t.sections),previewSections:t.previewSections,previewRows:ai(t.previewSections)}}i(Xd,"composeTranscriptRenderModel");function zb(e,t,n){let r=Xd(e,t);return n?{...r,staticSections:[n,...r.staticSections]}:r}i(zb,"buildInlinePromptRenderModel");function Xb(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(Xb,"splitInlineLedgerModel");function Q1(e){return e.replace(/^(You|Assistant|Tools|System) \[\d{1,2}:\d{2}[^\]]*\]$/u,"$1")}i(Q1,"stripHeaderTimestamp");function Yb(e){let t=5381;for(let n of e.rows){let r=Q1(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(Yb,"identifyInlineCommitSection");function Yd(e){let t=Vd({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=zd({...r,activeItems:t.activeItems});return Xd(t,o)}i(Yd,"buildTranscriptRenderModel");function ai(e){return e.flatMap(t=>t.rows)}i(ai,"flattenTranscriptSections");function qb(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(qb,"identifyTranscriptSection");function qh(e){let t=[...e.staticSections,...e.sections];return{staticSections:[],sections:t,rows:ai(t),previewSections:[...e.previewSections],previewRows:ai(e.previewSections)}}i(qh,"materializeTranscriptRenderModel");function Jb(e,t={}){let{start:n,end:r,viewportTop:o,viewportHeight:s,viewportRows:a,scrollOffset:c=0,windowed:l=!1}=t;if(typeof o=="number"&&typeof s=="number"){let u=Math.max(0,o),m=Math.max(u,o+Math.max(0,s));return e.slice(u,m)}return typeof n=="number"&&typeof r=="number"?e.slice(Math.max(0,n),Math.max(0,r)):l?Qh(e,a,c):e}i(Jb,"resolveVisibleTranscriptRows");var Z1=200,eO=50,Jh=30;function Qb(e,t,n=Z1,r=eO){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(Qb,"computeTranscriptCapStart");function Zb(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(Zb,"sliceHistoryToRecentRounds");function Qh(e,t,n=0){if(!t||t<=0)return e;let r=Math.max(0,n),o=Math.max(0,e.length-r),s=Math.max(0,o-t);return e.slice(s,o)}i(Qh,"getVisibleTranscriptRows");function ev(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(ev,"resolveScrollOffsetForTranscriptItem");function tv(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(tv,"resolveTranscriptColor");var qd="__transcript_hidden_divider__";function nv(e,t){let n=e===1?"message":"messages";return{id:qd,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(nv,"buildTranscriptHiddenDivider");function Zh(e){return e.id===qd}i(Zh,"isTranscriptHiddenDivider");var rv=new ss(500);function tO(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+=gp(a);return{graphemes:t,codeUnitOffsets:n,visualOffsets:r,length:t.length,displayWidth:s}}i(tO,"buildTranscriptTextMetrics");function Nc(e){let t=rv.get(e);if(t)return t;let n=tO(e);return rv.set(e,n),n}i(Nc,"getTranscriptTextMetrics");function ho(e){return Nc(e).length}i(ho,"getTranscriptTextLength");function ov(e){return Nc(e).displayWidth}i(ov,"getTranscriptTextDisplayWidth");function Jd(e,t){let n=Nc(e),r=Math.max(0,Math.min(n.length-1,t));return n.graphemes[r]??""}i(Jd,"charAtTranscriptText");function Hs(e,t,n){let r=Nc(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 iv(e,t){let n=Nc(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(iv,"resolveTranscriptTextIndexAtVisualColumn");function Qd(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(Qd,"formatTimestamp");function nO(e,t){let n=e.split(`
|
|
345
|
+
`),r=n.slice(0,t),o=n.length>t;return{lines:r,hasMore:o}}i(nO,"truncateLines");function rO(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(rO,"getToolStatusIcon");function oO(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(oO,"getToolStatusColor");var iO=wn(({item:e,theme:t})=>{let n=pr(()=>Gd(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:[" [",Qd(e.timestamp),"]"]})]}),ye(R,{marginLeft:2,children:ye(b,{color:t.colors.text,children:n})})]})}),sO=wn(({item:e,theme:t,maxLines:n})=>{let r=e.compactText??e.text,{lines:o,hasMore:s}=nO(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(eg,{children:[ye(b,{children:" "}),ye(Dn,{color:t.colors.accent})]}),je(b,{dimColor:!0,children:[" [",Qd(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)"]})]})]})}),aO=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:[" [",Qd(e.timestamp),"]"]})]}),ye(R,{marginLeft:2,children:ye(b,{dimColor:!0,children:e.text})})]})),cO=wn(({tool:e,count:t=1,theme:n})=>{let r=rO(e.status),o=oO(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:Oc({tool:e,count:t})})]}),e.error&&ye(R,{marginLeft:2,children:ye(b,{color:n.colors.error,children:e.error})})]})}),lO=wn(({item:e,theme:t})=>{let n=Ud(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:[" [",Qd(e.timestamp),"]"]})]}),n.map(r=>ye(cO,{tool:r.tool,count:r.count,theme:t},`${r.tool.id}-${r.count}`))]})}),uO=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})})]})),dO=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})})]})),fO=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]})})),mO=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]})})),pO=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})})]})),hO=wn(({item:e,theme:t,maxLines:n=1e3})=>{let r=pr(()=>re("dark"),[]),o=t??r;switch(e.type){case"user":return ye(iO,{item:e,theme:o});case"assistant":return ye(sO,{item:e,theme:o,maxLines:n});case"system":return ye(aO,{item:e,theme:o});case"tool_group":return ye(lO,{item:e,theme:o});case"thinking":return ye(uO,{item:e,theme:o});case"error":return ye(dO,{item:e,theme:o});case"event":return ye(fO,{item:e,theme:o});case"info":return ye(mO,{item:e,theme:o});case"hint":return ye(pO,{item:e,theme:o});default:return ye(R,{children:ye(b,{dimColor:!0,children:"Unknown item type"})})}});function gO(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(gO,"areTranscriptRowPropsEqual");var av=wn(({row:e,theme:t,animateSpinners:n=!0,selectedItem:r=!1,selectionRange:o})=>{let s=tv(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(eg,{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(eg,{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})]})},gO),tg=wn(({section:e,theme:t,animateSpinners:n=!0})=>ye(R,{flexDirection:"column",children:e.rows.map(r=>ye(av,{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:S,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??Yd({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:S,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,S,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||Jb(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(()=>_,[_]),He=J?Math.max(0,J.viewportHeight):z;return sv(()=>{ae?.({scrollHeight:_.length,viewportHeight:J?Math.max(0,J.viewportHeight):He??_.length})},[_.length,He,ae,J]),sv(()=>{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(tg,{section:$t,theme:et,animateSpinners:ge},$t.key),"children")}),at.map($t=>ye(av,{row:$t,theme:et,animateSpinners:ge,selectedItem:Y?$t.key.startsWith(`${Y}-`):!1,selectionRange:q?.get($t.key)},$t.key))]})},"MessageList");var yO=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 rg,jsxs as nf}from"react/jsx-runtime";import OO,{useMemo as og}from"react";var xO="\u{1F504}",wO="\u2588",SO="\u2592",TO="\u2192",CO=" \xB7 ";function bO(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(bO,"formatReasoningModeShort");function vO(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(vO,"formatReasoningCapabilityShort");function IO(e){switch(e){case"off":return"dim";case"quick":return"green";case"balanced":return"yellow";case"deep":return"magenta";default:return"cyan"}}i(IO,"getReasoningColor");function cv(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(cv,"formatTokenCount");function kO(e){let t=Math.min(10,Math.max(0,Math.round(e/10))),n=10-t;return`${wO.repeat(t)}${SO.repeat(n)}`}i(kO,"createMiniProgressBar");function RO(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(RO,"getContextColor");function EO(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(EO,"getPermissionModeColor");function MO(e,t){let n=bs(e);return!(e==="auto"||e==="auto-in-project")||!t?n:`${n}${t==="llm"?"[LLM]":"[RULES]"}`}i(MO,"buildPermissionModeText");function AO(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(AO,"formatToolAction");function _O(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(_O,"formatHarnessProfileShort");function Zd(e,t){return t&&t>0?`${e} (${t} chars)`:e}i(Zd,"formatThinkingStatus");function ef(e,t,n){let r=AO(e);return n?`${r} (${n}...)`:t&&t>0?`${r} (${t} chars)`:r}i(ef,"formatToolStatus");function ng({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 - ${ef(t,s,a)}`:n?Zd("Routing",r):"Routing";if(c==="preflight"){let g=u??"Scout";return h?`${g} - ${h}`:t?`${g} - ${ef(t,s,a)}`:n?Zd(g,r):g}if(l){let y=`${_O(l)}${u?` - ${u}`:""}`;if(m===!0&&!h&&!t&&!n){let x=p??0,S=x>1?`waiting for ${x} children`:x===1?"waiting for 1 child":"idle - resuming";return`${y} - ${S}`}return h?`${y} - ${h}`:t?`${y} - ${ef(t,s,a)}`:n?Zd(y,r):y}if(h)return h;if(t)return ef(t,s,a);if(n)return Zd("Thinking",r)}i(ng,"buildBusyStatusText");function LO({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(LO,"resolveIterationSegments");function PO(e){if(e.length!==0)return`${xO} ${e.map(t=>`${t.label} ${t.current}/${t.max}`).join(CO)}`}i(PO,"formatLabeledIterationStatus");function $O(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:S,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:MO(n,e.autoModeEngine),color:EO(n)}],Re=bO(h),_e=vO(g);P.push({id:"reasoning-mode",text:g?`${Re}/${_e}`:Re,color:IO(h)});let Y=LO({agentMode:r,managedPhase:F,managedHarnessProfile:D,managedRound:z,managedMaxRounds:fe,managedGlobalWorkBudget:se,managedBudgetUsage:ge,currentIteration:T,maxIter:I}),V=PO(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=$?ng({activeToolCount:l,currentTool:c,isThinkingActive:m,thinkingCharCount:p,isCompacting:y,toolInputCharCount:x,toolInputContent:S,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=cv(A.currentTokens),q=cv(A.contextWindow),Ie=kO(Q);P.push({id:"context-usage",text:`${J}/${q} ${Ie} ${Q}%`,color:RO(A.currentTokens,A.contextWindow,A.triggerPercent)})}return a&&P.push({id:"token-usage",text:`${a.input}${TO}${a.output} (${a.total})`,color:"dim"}),P}i($O,"buildStatusBarSegments");function tf(e){let t=$O(e);return{text:t.map(n=>n.text).join(" | "),segments:t}}i(tf,"buildStatusBarViewModel");function DO(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(DO,"resolveViewModelSegmentColor");var Fs=i(({viewModel:e,...t})=>{let n=og(()=>re("dark"),[]),r=og(()=>e??tf(t),[t,e]);return rg(R,{paddingX:1,children:r.segments.map((o,s)=>nf(OO.Fragment,{children:[rg(b,{color:DO(o,n),bold:o.bold,children:o.text}),s<r.segments.length-1?rg(b,{dimColor:!0,children:" | "}):null]},o.id))})},"StatusBar"),NO=i(({permissionMode:e,provider:t,model:n})=>{let r=og(()=>re("dark"),[]);return nf(R,{children:[nf(b,{color:r.colors.primary,bold:!0,children:["[",e,"]"]}),nf(b,{dimColor:!0,children:[" ",t,"/",n]})]})},"SimpleStatusBar");import{jsx as go,jsxs as sf}from"react/jsx-runtime";import{useState as ig,useCallback as rf,useMemo as lv}from"react";function of(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(of,"generateId");function BO(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(BO,"messageToHistoryItem");var HO=i(({model:e,provider:t,onSubmit:n,permissionMode:r="accept-edits",agentMode:o="ama"})=>{let{stdout:s}=cr(),a=lv(()=>re("dark"),[]),[c,l]=ig({messages:[],isLoading:!1,sessionId:of()}),[u,m]=ig(null),[p,h]=ig(),g=rf(async T=>{if(!T.trim())return;let I={id:of(),role:"user",content:T,timestamp:Date.now()};l(A=>({...A,messages:[...A.messages,I],isLoading:!0}));try{await n(T)}catch(A){let $={id:of(),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=rf((T,I)=>{let A={id:of(),role:T,content:I,timestamp:Date.now()};l($=>({...$,messages:[...$.messages,A]}))},[]),x=rf((T,I)=>{m({input:T,output:I,total:T+I})},[]),S=rf(T=>{h(T)},[]);return sf(R,{flexDirection:"column",children:[go(R,{flexGrow:1,flexDirection:"column",overflow:"hidden",children:go(ci,{items:c.messages.map(BO),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"),FO=i(({model:e,provider:t,onInput:n})=>{let r=lv(()=>re("dark"),[]);return sf(R,{flexDirection:"column",children:[sf(R,{marginBottom:1,children:[go(b,{color:r.colors.primary,bold:!0,children:"KodaX CLI"}),sf(b,{dimColor:!0,children:[" ","- ",t,"/",e]})]}),go(Os,{onSubmit:i(o=>n(o.fullText),"onSubmit"),placeholder:"Type a message...",prompt:">"})]})},"SimpleApp");import{jsx as WO}from"react/jsx-runtime";var sg=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:S,overscanRows:T})=>WO(Jp,{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:S,overscanRows:T}),"FullscreenTranscriptLayout");import{jsx as uv}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 ag=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?uv(R,{paddingX:1,children:uv(b,{color:c.colors.dim,children:l})}):null},"MessageActions");import{jsx as dv}from"react/jsx-runtime";function cg({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(cg,"buildMessageSelectorText");var UO=i(({itemSummary:e,itemKind:t,position:n,detailState:r="compact"})=>{let o=re("dark"),s=cg({itemSummary:e,itemKind:t,position:n,detailState:r});return s?dv(R,{paddingX:1,children:dv(b,{color:o.colors.dim,children:s})}):null},"MessageSelector");import{jsx as Us,jsxs as jO}from"react/jsx-runtime";import{useMemo as fv}from"react";function af(e,t){return Math.max(1,tn(e.length>0?e.split(`
|
|
347
|
+
`):[""],Math.max(1,t),0,0).visualLines.length)}i(af,"countWrappedRows");var lg=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,S=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=cg({itemSummary:a,itemKind:l,position:c,detailState:u}),v=fv(()=>Ws({copyMessage:p,copyToolInput:h,copyOnSelect:g,toggleDetail:y,selectionNavigation:x,matchNavigation:!!S&&T>0,dismissAction:F}),[p,h,x,y,F,T,S,g]),z=fv(()=>{if(!s)return 0;let se=0;return e?.hintText&&(se+=af(e.hintText,$)),D&&(se+=af(D,$)),v&&(se+=af(v,$)),S&&(se+=af(S,$)),I&&(se+=1),se},[v,e?.hintText,$,s,S,I,D]),fe=typeof o.viewportRows=="number"?Math.max(1,o.viewportRows-z):o.viewportRows;return jO(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(ag,{copyMessage:p,copyToolInput:h,copyOnSelect:g,toggleDetail:y,selectionNavigation:x,matchNavigation:!!S&&T>0,dismissAction:F}):null,s&&S?Us(R,{paddingX:1,children:Us(b,{dimColor:!0,children:S})}):null,s?I:null,Us(ci,{...o,viewportRows:fe})]})},"TranscriptViewport");import{jsx as mv}from"react/jsx-runtime";var ug=i(e=>mv(R,{flexDirection:"column",children:mv(Os,{...e})}),"PromptComposer");import{jsx as li,jsxs as cf}from"react/jsx-runtime";import pv from"react";var hv=" \xB7 ",lf=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)=>cf(pv.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:hv}):null]},r.id))})},"PromptFooterLeftSide"),uf=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)=>cf(pv.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:hv}):null]},r.id))})},"PromptFooterRightSide"),df=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})=>cf(R,{flexDirection:"column",children:[e||t?cf(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 dg,jsxs as gv}from"react/jsx-runtime";var fg=i(({sections:e,title:t="Help"})=>{let n=re("dark"),r=e.filter(o=>o.items.length>0);return r.length===0?null:gv(R,{flexDirection:"column",borderStyle:"round",borderColor:n.colors.accent,paddingX:1,marginTop:1,children:[dg(b,{color:n.colors.accent,bold:!0,children:t}),r.map(o=>gv(R,{flexDirection:"column",children:[dg(b,{color:n.colors.primary,bold:!0,children:o.title}),dg(b,{dimColor:!0,children:o.items.map(s=>s.label).join(" | ")})]},o.id))]})},"PromptHelpMenu");import{jsx as yv}from"react/jsx-runtime";import{createContext as wv,useContext as Sv,useReducer as GO,useCallback as Ht,useMemo as KO}from"react";var VO=150;function mf(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(mf,"generateId");function ff(e){return{...e,id:mf(),timestamp:Date.now()}}i(ff,"createHistoryItem");function xv(e){if(e.length<=VO)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(xv,"trimHistoryToRounds");function mg(e,t){return e.filter(n=>n.type==="user"&&typeof n.id=="string"&&!t.has(n.id))}i(mg,"selectUncommittedLedgerUserItems");function pg(e){return{...e,id:mf(),startTime:Date.now()}}i(pg,"createToolCall");function zO(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:xv([...e.history,t.payload])};case"BULK_ADD_HISTORY_ITEMS":return{...e,history:xv([...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{...eh,sessionId:e.sessionId};default:return e}}i(zO,"uiReducer");var Tv=wv(null),Cv=wv(null);function pf({children:e,initialState:t}){let[n,r]=GO(zO,{...eh,...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=ff(D);r({type:"ADD_HISTORY_ITEM",payload:v})},[]),l=Ht(D=>{D.length!==0&&r({type:"BULK_ADD_HISTORY_ITEMS",payload:D.map(ff)})},[]),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=pg(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})},[]),S=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=KO(()=>({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:S,setModel:T,setTokenUsage:I,setError:A,setLoading:$}),[o,s,a,c,l,u,m,p,h,g,y,x,S,T,I,A,$]);return yv(Tv.Provider,{value:n,children:yv(Cv.Provider,{value:F,children:e})})}i(pf,"UIStateProvider");function Bc(){let e=Sv(Tv);if(!e)throw new Error("useUIState must be used within a UIStateProvider");return e}i(Bc,"useUIState");function Hc(){let e=Sv(Cv);if(!e)throw new Error("useUIActions must be used within a UIStateProvider");return e}i(Hc,"useUIActions");function bv(){let e=Bc(),t=Hc();return{state:e,actions:t}}i(bv,"useUI");function hg(){return re()}i(hg,"useTheme");import{jsxs as yo,jsx as hf,Fragment as XO}from"react/jsx-runtime";import{useMemo as YO}from"react";var qO=80,JO=7,QO={command:">",file:"\u{1F4C4}",history:"\u23F1",argument:"\u2022",snippet:"\u25C7",skill:"\u2605"};function ZO(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(ZO,"getVisibleRange");function eD({suggestion:e,isSelected:t,width:n}){let r=hg(),o=e.icon||e.type&&QO[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=Xa(e.displayText||e.text,l),h=e.description?Xa(e.description,m):"";return yo(R,{children:[o&&yo(b,{color:t?r.colors.accent:r.colors.dim,children:[o," "]}),hf(b,{color:t?r.colors.primary:r.colors.text,bold:t,children:p}),h&&yo(XO,{children:[hf(b,{children:" "}),hf(b,{color:r.colors.dim,children:Xa(e.description||"",m)})]}),t&&yo(b,{color:r.colors.accent,children:[" ","\u25C0"]})]})}i(eD,"SuggestionItem");function gf({suggestions:e,selectedIndex:t,visible:n,maxVisible:r=JO,width:o=qO,showCount:s=!1}){let a=hg();if(!n||e.length===0)return null;let{start:c,end:l}=YO(()=>ZO(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 hf(eD,{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(gf,"SuggestionsDisplay");import{jsx as js,jsxs as tD}from"react/jsx-runtime";var gg=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"?tD(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(gf,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-6)})]}):js(R,{height:8,children:js(gf,{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 yg}from"react/jsx-runtime";import nD,{useEffect as rD,useState as oD}from"react";var Gs=15,vv=Math.max(1,Gs-2),xg=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(iD,{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(yg,{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(yg,{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":"",S=u.description?` - ${u.description}`:"";return Nn(b,{color:h?"cyan":void 0,dimColor:!h,children:`${y}${u.label}${S}${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(yg,{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"),iD=i(({content:e})=>{let t=nD.useMemo(()=>e.split(`
|
|
348
|
+
`),[e]),n=t.length,r=n>Gs,[o,s]=oD(0);rD(()=>{s(u=>{let m=Math.max(0,n-Gs);return u>m?m:u})},[n]),Qu((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-vv)):m.pageDown&&s(h=>Math.min(p,h+vv))},{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 Fc,jsx as sD}from"react/jsx-runtime";function Iv(e){let t=e.replace(/\s+/g," ").trim();return t.length<=72?t:`${t.slice(0,69)}...`}i(Iv,"normalizePendingPreview");function kv(e){if(e.length===0)return;let t=Iv(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(kv,"formatPendingInputsSummary");function wg(e){if(e.length===0)return[];let t=e.length;return e.map((n,r)=>({index:r+1,total:t,preview:Iv(n)}))}i(wg,"formatPendingInputsLines");function Rv(e){let t=wg(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(Rv,"formatPendingInputsBudgetText");var Sg=i(({pendingInputs:e})=>{let t=wg(e);if(t.length===0)return null;let n=re("dark");return Fc(R,{flexDirection:"column",children:[t.map(r=>Fc(R,{children:[Fc(b,{color:n.colors.hint,children:["\u23F3"," "]}),Fc(b,{color:n.colors.dim,children:["[",r.index,"/",r.total,"] ",r.preview]})]},r.index)),sD(R,{children:Fc(b,{color:n.colors.dim,children:[" ","\u2191 pull all into editor \xB7 Esc drops latest"]})})]})},"QueuedCommandsSurface");import{jsx as Ev}from"react/jsx-runtime";function aD(e,t){switch(e){case"warning":return t.warning;case"accent":return t.accent;default:return t.dim}}i(aD,"resolveNotificationColor");var yf=i(({notifications:e})=>{let t=e.filter(r=>r.text.trim().length>0),n=re("dark");return t.length===0?null:Ev(R,{flexDirection:"column",paddingX:1,children:t.map(r=>Ev(b,{color:aD(r.tone,n.colors),children:r.text},r.id))})},"NotificationsSurface");import{jsx as Mv}from"react/jsx-runtime";var Tg=i(({notices:e})=>{let t=e.filter(r=>r.trim().length>0);if(t.length===0)return null;let n=re("dark");return Mv(R,{flexDirection:"column",paddingX:1,children:t.map((r,o)=>Mv(b,{color:n.colors.dim,children:r},`${r}-${o}`))})},"StatusNoticesSurface");import{jsxs as Av,jsx as cD}from"react/jsx-runtime";var xf=i(({text:e})=>{let t=e?.trim();if(!t)return null;let n=re("dark");return Av(R,{paddingX:1,children:[Av(b,{color:n.colors.hint,children:["\u22EF"," "]}),cD(b,{color:n.colors.dim,children:t})]})},"StashNotice");import{jsx as ui,jsxs as lD}from"react/jsx-runtime";function _v({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(_v,"Pill");var wf=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:lD(R,{flexDirection:"row",paddingX:1,children:[r?ui(R,{marginRight:1,children:ui(Dn,{})}):null,o.map(s=>ui(_v,{text:s.hint?`${s.label} (${s.hint})`:s.label,accent:s.accent,selected:s.selected},s.id)),t?ui(_v,{text:t}):null,n?ui(b,{dimColor:!0,children:n}):null]})},"BackgroundTaskBar");import Lv,{createContext as $v,useContext as Ov,useReducer as uD,useCallback as Xe,useRef as dD,useEffect as Pv}from"react";function fD(e){return e.agentId===void 0&&e.priority==="user"&&e.mode==="prompt"}i(fD,"isMainThreadPrompt");function vg(){return Rn().getSnapshot().filter(fD)}i(vg,"getMainThreadPrompts");function Cg(){return vg().map(e=>e.content)}i(Cg,"getMainThreadPromptContents");var bg={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 Ig(){let e={...bg,pendingInputs:Cg()},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=Cg();if(y.length===e.pendingInputs.length){let x=!0;for(let S=0;S<y.length;S++)if(y[S]!==e.pendingInputs[S]){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,S=r?x.length:e.thinkingCharCount+o;e={...e,currentResponse:e.currentResponse+n,thinkingContent:x,thinkingCharCount:S,...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={...bg,pendingInputs:Cg()},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:bg.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&&(vg().length>=5||(h(),Rn().enqueue({priority:"user",mode:"prompt",content:x})))},"addPendingInput"),removeLastPendingInput:i(()=>{let y=vg(),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(Ig,"createStreamingManager");var Dv=$v(null),Nv=$v(null);function Sf({children:e,onStateChange:t}){let n=dD(Ig()),[,r]=uD(V=>V+1,0);Pv(()=>n.current.subscribe(ae=>{r(),t?.(ae)}),[t]),Pv(()=>{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()},[]),S=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:S,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 Lv.createElement(Dv.Provider,{value:n.current.getState()},Lv.createElement(Nv.Provider,{value:Y},e))}i(Sf,"StreamingProvider");function Uc(){let e=Ov(Dv);if(!e)throw new Error("useStreamingState must be used within a StreamingProvider");return e}i(Uc,"useStreamingState");function jc(){let e=Ov(Nv);if(!e)throw new Error("useStreamingActions must be used within a StreamingProvider");return e}i(jc,"useStreamingActions");function Bv(){let e=Uc(),t=jc(),n=e.state===gn.Responding||e.state===gn.WaitingForConfirmation;return{state:e,actions:t,isStreaming:n}}i(Bv,"useStreaming");import{useCallback as mD,useRef as pD}from"react";var hD=500;function gD(e={}){let{onKey:t,onEsc:n,onCtrlC:r,enabled:o=!0}=e,s=pD(0),{exit:a}=so(),c=mD(l=>{if(!o)return!1;if(l.name==="escape"){let u=Date.now(),m=u-s.current<hD;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(gD,"useKeypress");function yD(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(yD,"createKeyMatcher");import{useCallback as xD,useSyncExternalStore as wD}from"react";function SD(e){return e.agentId===void 0&&e.priority==="user"&&e.mode==="prompt"}i(SD,"isMainThreadPrompt");var kg=null,Tf=Object.freeze([]);function Hv(){let e=Rn().getSnapshot();return e===kg||(kg=e,Tf=Object.freeze(e.filter(SD))),Tf}i(Hv,"getQueueSliceSnapshot");function Fv(){let e=xD(t=>Rn().subscribe(t),[]);return wD(e,Hv,Hv)}i(Fv,"useQueuedPrompts");function TD(){return Fv().map(t=>t.content)}i(TD,"useQueuedPromptContents");function CD(){kg=null,Tf=Object.freeze([])}i(CD,"_resetQueuedPromptsCacheForTests");async function Gc(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??Kc(),title:"",gitRoot:e.gitRoot,runtimeInfo:e.runtimeInfo,createdAt:new Date().toISOString(),lastAccessed:new Date().toISOString()}}i(Gc,"createInteractiveContext");function Kc(){let e=new Date,t=e.toISOString().split("T")[0].replace(/-/g,""),n=e.toTimeString().split(" ")[0].replace(/:/g,"");return`${t}_${n}`}i(Kc,"generateSessionId");function hr(e){e.lastAccessed=new Date().toISOString()}i(hr,"touchContext");async function Vc(e){let t=await Xw({userKodaxDir:_w(),projectRoot:e.projectRoot}),n;return{getGuardrail:i(()=>n||(n=Yw({rules:t.merged,claudeMd:Lw(e.getAgentsFiles()),getToolProjection:i(o=>(gu(o)??Nw(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(Vc,"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 bD(){return new Ks}i(bD,"createMemorySessionStorage");import*as Wv from"child_process";import*as Uv from"util";import Cf from"chalk";var vD=Uv.promisify(Wv.exec),ID={maxBuffer:1024*1024,timeout:3e4,maxOutputLength:8e3,maxErrorLength:4e3};async function bf(e,t={}){let n={...ID,...t},r=e.trim(),o=uh(r);if(o)return o.startsWith("[Blocked]")&&(console.log(Cf.yellow(`
|
|
350
|
+
${o}`)),console.log()),o;try{console.log(Cf.dim(`
|
|
351
|
+
[Executing: ${r}]`));let{stdout:s,stderr:a}=await vD(r,{cwd:n.cwd,maxBuffer:n.maxBuffer,timeout:n.timeout,windowsHide:!0}),c="";return s&&(c+=s),a&&(c+=(c?`
|
|
352
352
|
`:"")+`[stderr] ${a}`),c.length>n.maxOutputLength&&(c=c.slice(0,n.maxOutputLength)+`
|
|
353
|
-
...[output truncated]`),console.log(
|
|
353
|
+
...[output truncated]`),console.log(Cf.dim(c||"[No output]")),console.log(),`[Shell command executed: ${r}]
|
|
354
354
|
|
|
355
355
|
Output:
|
|
356
356
|
${c||"(no output)"}`}catch(s){let c=(s instanceof Error?s:new Error(String(s))).message;return c.length>n.maxErrorLength&&(c=c.slice(0,n.maxErrorLength)+`
|
|
357
|
-
...[error truncated]`),console.log(
|
|
357
|
+
...[error truncated]`),console.log(Cf.red(`
|
|
358
358
|
[Shell Error: ${c}]`)),console.log(),`[Shell command failed: ${r}]
|
|
359
359
|
|
|
360
|
-
Error: ${c}`}}i(Cf,"executeShellCommand");async function kg(e,t={}){if(e.startsWith("!")){let n=e.slice(1).trim();return Cf(n,t)}return e}i(kg,"processSpecialSyntax");function ID(e){return e.trim().startsWith("!")}i(ID,"isShellCommand");function kD(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell:")}i(kD,"isShellCommandSuccess");function Vc(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell command failed:")||e.startsWith("[Shell:")||e.startsWith("[Blocked]")}i(Vc,"isShellCommandHandled");function bf(e,t,n){let r=e.trim();return{type:"info",icon:"\u23F3",text:/\bretry\s+\d+\/\d+\b/i.test(r)||/\b\d+\/\d+\b/.test(r)?r:`${r} \xB7 retry ${t}/${n}`}}i(bf,"createRetryHistoryItem");function Rg(e,t,n,r){e(bf(t,n,r))}i(Rg,"emitRetryHistoryItem");function vf(e){let{recoveryAction:t,attempt:n,maxAttempts:r,delayMs:o,stage:s,fallbackUsed:a}=e,c=Math.round(o/1e3);if(t==="manual_continue")return{type:"info",icon:"\u26A0",text:'Recovery exhausted. Type "continue" to retry or "stop" to cancel.'};if(t==="non_streaming_fallback"||a)return{type:"info",icon:"\u23F3",text:"Stream unstable, switching to non-streaming mode"};if(t==="sanitize_thinking_and_retry")return{type:"info",icon:"\u23F3",text:"Provider rejected replay thinking, sanitizing history and retrying"};let l;switch(s){case"before_first_delta":case"before_request_accepted":l="Provider request timed out";break;case"mid_stream_text":case"mid_stream_thinking":l="Stream interrupted after partial output";break;case"mid_stream_tool_input":l="Stream interrupted during tool input";break;case"post_tool_execution_pre_assistant_close":l="Stream interrupted after tool execution";break;default:l="Stream interrupted";break}let u=t==="stable_boundary_retry"?"recovering":"retrying";return{type:"info",icon:"\u23F3",text:c>0?`${l} \xB7 ${u} ${n}/${r} in ${c}s`:`${l} \xB7 ${u} ${n}/${r}`}}i(vf,"createRecoveryHistoryItem");function Eg(e,t){e(vf(t))}i(Eg,"emitRecoveryHistoryItem");import{jsx as le,jsxs as Zt,Fragment as xH}from"react/jsx-runtime";import Ck,{useState as Ge,useCallback as X,useRef as xe,useEffect as Fe,useMemo as de}from"react";import{jsx as gr,Fragment as RD,jsxs as If}from"react/jsx-runtime";var Mg=" | ",Uv=i(({searchActive:e=!1,selectionActive:t=!1,showAllActive:n=!1,searchQuery:r="",searchCurrent:o=0,searchCount:s=0,searchDetailText:a,pendingLiveUpdates:c=0,secondaryText:l,noticeText:u})=>{let m=re("dark"),p=r.trim(),h=a?.trim(),g=l?.trim(),y=u?.trim(),x=e?p?`Search /${p}`:"Search":"Transcript",w=e?`Enter jump | n/N next/prev | Ctrl+E ${n?"collapse":"show all"} | Esc close | Ctrl+O/q back`:t?`PgUp/PgDn page | j/k scroll | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | Esc clear focus | Ctrl+O/q back`:`PgUp/PgDn page | j/k scroll | \u2190/\u2192 select | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | s dump | Ctrl+O/q/Esc back`,T=c>0?c===1?"1 new update":`${c} new updates`:void 0,I=e&&s>0?`${Math.max(0,o)}/${s}`:void 0,A=e&&h||g,$=!!(A||y);return If(R,{flexDirection:"column",children:[If(R,{paddingX:1,children:[gr(b,{color:m.colors.dim,children:x}),gr(b,{dimColor:!0,children:Mg}),gr(b,{color:m.colors.dim,children:w}),I||T?gr(R,{flexGrow:1}):null,I?If(RD,{children:[gr(b,{dimColor:!0,children:I}),T?gr(b,{dimColor:!0,children:Mg}):null]}):null,T?gr(b,{color:m.colors.accent,bold:!0,children:T}):null]}),$?If(R,{paddingX:1,children:[A?gr(b,{color:m.colors.dim,children:A}):null,A&&y?gr(b,{dimColor:!0,children:Mg}):null,y?gr(b,{color:m.colors.accent,bold:!0,children:y}):null]}):null]})},"TranscriptModeFooter");import{jsx as ED,jsxs as MD}from"react/jsx-runtime";var jv=i(({banner:e,...t})=>MD(R,{flexDirection:"column",children:[e,ED(ci,{...t,animateSpinners:!1,showFullThinking:!1,showDetailedTools:!1,showLiveProgressRows:!1})]}),"PromptTranscriptSurface");import{jsx as AD,jsxs as _D}from"react/jsx-runtime";var Gv=i(({banner:e,windowed:t=!1,showDetailedTools:n=!1,showAllContent:r=!1,...o})=>_D(R,{flexDirection:"column",children:[e,AD(cg,{...o,chromeMode:"hidden",windowed:t,showFullThinking:!0,showDetailedTools:n,showAllContent:r,showLiveProgressRows:!0})]}),"TranscriptModeSurface");import{jsxs as LD,jsx as PD}from"react/jsx-runtime";var Kv=i(({text:e,tone:t="success"})=>{let n=e?.trim();if(!n)return null;let r=re("dark"),o=t==="warning"?r.colors.warning:r.colors.accent,s=t==="warning"?"!":"\u2713";return PD(R,{paddingX:1,backgroundColor:r.colors.inputBackground,children:LD(b,{color:o,children:[s," ",n]})})},"ClipboardToastSurface");import{jsx as xo,Fragment as $D,jsxs as Ag}from"react/jsx-runtime";var OD=" \u23BF ";function DD(e){let t=re("dark");switch(e){case"cyan":return t.colors.primary;case"green":return t.colors.success;case"red":return t.colors.error;default:return t.colors.dim}}i(DD,"resolveSymbolColor");var ND=i(({row:e})=>{let t=DD(e.symbolColor),n=e.kind!=="item";return Ag(R,{flexDirection:"row",children:[xo(b,{color:t,bold:e.isActive,children:e.symbol}),xo(b,{children:" "}),xo(b,{dimColor:n,bold:e.isActive,strikethrough:e.isStrikethrough,children:e.text}),e.evaluatorBadge?Ag($D,{children:[xo(b,{children:" "}),xo(b,{dimColor:!0,children:e.evaluatorBadge})]}):null]})},"TodoListRow"),Vv=i(({viewModel:e})=>{if(!e.shouldRender||e.rows.length===0)return null;let t=re("dark").colors.dim;return Ag(R,{flexDirection:"row",children:[xo(b,{color:t,children:OD}),xo(R,{flexDirection:"column",flexGrow:1,children:e.rows.map((n,r)=>xo(ND,{row:n},`${n.kind}-${n.id??r}`))})]})},"TodoListSurface");function BD(e){switch(e){case"in_progress":return{symbol:"\u25CF",color:"cyan"};case"completed":return{symbol:"\u2713",color:"green"};case"failed":return{symbol:"\u2717",color:"red"};case"skipped":return{symbol:"\u2298",color:"gray"};case"cancelled":return{symbol:"\u2612",color:"gray"};default:return{symbol:"\u2610",color:"dim"}}}i(BD,"symbolForStatus");function HD(e){for(let t=0;t<e.length;t++)if(e[t].status==="in_progress")return t;for(let t=0;t<e.length;t++)if(e[t].status==="pending")return t;for(let t=e.length-1;t>=0;t--)if(e[t].status==="completed")return t;return 0}i(HD,"pickAnchorIndex");function FD(e){let{symbol:t,color:n}=BD(e.status),r=e.status==="failed"&&e.note?`${e.subject} (${e.note})`:e.subject,o=e.status==="cancelled",s=e.evaluator?`[${e.evaluator}]`:void 0;return{kind:"item",id:e.id,symbol:t,symbolColor:n,text:r,isActive:e.status==="in_progress",isStrikethrough:o,evaluatorBadge:s}}i(FD,"buildItemRow");function WD(e){return{kind:"summary_done",symbol:"\u2713",symbolColor:"green",text:`${e} done`,isActive:!1}}i(WD,"buildDoneSummary");function _g(e){return{kind:"summary_pending",symbol:"\u2610",symbolColor:"dim",text:`+${e} more`,isActive:!1}}i(_g,"buildPendingSummary");function UD(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].status==="failed"&&!t.has(n))return n;return-1}i(UD,"pickFailedToPromote");function jD(e,t){let n=e.length;if(n===0)return{visibleIdx:[],hiddenCompletedCount:0,hiddenPendingCount:0};let r=4,o=Math.max(0,t-1),s=Math.min(n,o+r);s-o<r&&o>0&&(o=Math.max(0,s-r)),s-o<r&&s<n&&(s=Math.min(n,o+r));let a=[];for(let u=o;u<s;u++)a.push(u);let c=0,l=0;for(let u=0;u<o;u++)e[u].status==="completed"&&c++;for(let u=s;u<n;u++){let m=e[u].status;(m==="pending"||m==="in_progress")&&l++}return{visibleIdx:a,hiddenCompletedCount:c,hiddenPendingCount:l}}i(jD,"decideWindow");function zv(e,t){let n=e.length,r=e.reduce((g,y)=>y.status==="completed"?g+1:g,0),o=i((g,y)=>({shouldRender:y,rows:g,completedCount:r,totalCount:n}),"baseVm");if(n<1)return o([],!1);t.now,t.lastAllCompletedAt;let s=HD(e),a=jD(e,s),c=new Set(a.visibleIdx),l=UD(e,c),u=[...a.visibleIdx],m=a.hiddenCompletedCount,p=a.hiddenPendingCount;if(l>=0){let g=-1;for(let y=u.length-1;y>=0;y--){let x=u[y];if(x!==s&&e[x].status==="pending"){g=y;break}}if(g>=0){let y=u[g];u[g]=l,p+=1,u.sort((T,I)=>T-I);let x=u[0],w=0;for(let T=0;T<x;T++)e[T].status==="completed"&&w++;m=w}}let h=[];m>0&&h.push(WD(m));for(let g of u)h.push(FD(e[g]));if(p>0&&h.push(_g(p)),h.length>6)for(;h.length>6;){let g=!1;for(let y=h.length-1;y>=0;y--){let x=h[y];if(x.kind==="item"&&!x.isActive){h.splice(y,1);let w=h[h.length-1];if(w&&w.kind==="summary_pending"){let T=/\+(\d+) more/.exec(w.text),I=T?Number.parseInt(T[1],10)+1:1;h[h.length-1]=_g(I)}else h.push(_g(1));g=!0;break}}if(!g)break}return o(h,!0)}i(zv,"buildTodoPlanViewModel");function Xv(e){let t=[];e.isHistorySearchActive?t.push({id:"search",label:"Search",accent:!0}):e.isTranscriptMode&&t.push({id:"transcript",label:"Transcript"}),e.pendingInputCount>0&&t.push({id:"queue",label:`Queue ${e.pendingInputCount}`}),e.buffering==="buffered-fallback"&&(e.isHistorySearchActive||e.isTranscriptMode)&&t.push({id:"buffered",label:"Buffered"}),e.isTranscriptMode&&e.pendingLiveUpdates>0&&t.push({id:"updates",label:e.pendingLiveUpdates===1?"1 update":`${e.pendingLiveUpdates} updates`,accent:!0});let n=[],r=[...t,...n].map(o=>o.label.trim()).filter(Boolean).join(" | ");return{leftItems:t,rightItems:n,summary:r}}i(Xv,"buildFooterHeaderViewModel");function GD(e){return yu(e.provider,e.model,"off",{longRunning:!0})}i(GD,"evaluateSessionTransitionPolicy");function KD(e,t){let n=t.snapshot.model?`${t.snapshot.provider}:${t.snapshot.model}`:t.snapshot.provider,r=[`[Provider Guardrail] ${e} on ${n}: ${t.summary}`],o=t.issues[0]?.detail;return o&&r.push(` ${o}`),t.status==="block"?r.push(" Switch to a provider with durable full-history session semantics before continuing."):t.status==="warn"&&r.push(" Continuing with degraded session semantics."),r}i(KD,"formatSessionTransitionGuardMessage");function di(e,t,n){let r=GD(e);if(!r||r.status==="allow")return!0;let[o,...s]=KD(t,r);return n(r.status,o,s),r.status!=="block"}i(di,"enforceSessionTransitionGuard");function VD(e){switch(e.type){case"message":{let n=(typeof e.message.content=="string"?e.message.content:"[complex content]").replace(/\s+/g," ").trim();return`${e.message.role}: ${n.slice(0,48)}${n.length>48?"...":""}`}case"compaction":return`compaction: ${e.summary.slice(0,48)}${e.summary.length>48?"...":""}`;case"branch_summary":return`branch: ${e.summary.slice(0,48)}${e.summary.length>48?"...":""}`;case"archive_marker":return`archived: ${e.summary.slice(0,48)}${e.summary.length>48?"...":""}`;default:return e}}i(VD,"summarizeEntry");function Yv(e,t,n,r){let o=t?n?"\\- ":"|- ":"",s=e.active?"*":" ",a=e.entry.id.slice(0,12),c=e.label?` [${e.label}]`:"";r.push(`${t}${o}${s} ${a} ${VD(e.entry)}${c}`);let l=t+(t?n?" ":"| ":"");e.children.forEach((u,m)=>{Yv(u,l,m===e.children.length-1,r)})}i(Yv,"formatNode");function kf(e){let t=[];return e.forEach((n,r)=>{Yv(n,"",r===e.length-1,t)}),t}i(kf,"formatSessionTree");var zD=100,XD=/\b(curl|wget|invoke-webrequest|invoke-restmethod|iwr|irm)\b/i,Jv=/\b(rm|del|erase|remove-item|rmdir|rd|git clean)\b/i,Qv=/\b(npm|pnpm|yarn|pip|choco|winget)\s+(install|add|remove|uninstall|update|upgrade|ci)\b/i,Zv=/\b(set-content|add-content|out-file|new-item|copy-item|move-item|rename-item|cp|mv|copy|move|ren|touch)\b/i;function Vs(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i(Vs,"readString");function Xt(e,t,n){n&&e.push({label:t,value:n})}i(Xt,"pushField");function YD(e){return e.replace(/\s+/g," ").trim()}i(YD,"normalizeWhitespace");function qD(e,t){if(e.length<=t)return e;let n=Math.ceil((t-3)/2),r=Math.floor((t-3)/2);return`${e.slice(0,n)}...${e.slice(e.length-r)}`}i(qD,"truncateMiddle");function JD(e){let t=e;return t=t.replace(/\b(authorization\s*:\s*bearer\s+)([^\s'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b((?:authorization|cookie)\s*:\s*)([^'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b(bearer\s+)([^\s'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b(api[_-]?key|access[_-]?token|refresh[_-]?token|token|secret|password|passwd|cookie|session)\b(\s*[:=]\s*)(['"]?)([^'"\s]+)(\3)/gi,(n,r,o,s)=>`${r}${o}${s}[REDACTED]${s}`),t=t.replace(/(--(?:api-key|token|secret|password|cookie)\s+)(\S+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/((?:-u|--user)\s+)(\S+)/gi,(n,r)=>`${r}[REDACTED]`),t}i(JD,"maskSensitiveSegments");function qv(e){return qD(JD(YD(e)),zD)}i(qv,"summarizeCommand");function QD(e){return zn(e)?Z("intent.read"):Jv.test(e)?Z("intent.delete"):Qv.test(e)?Z("intent.deps"):Xn(e)||Zv.test(e)?Z("intent.modify"):Z("intent.execute")}i(QD,"classifyShellIntent");function ZD(e){let t=[];return Jv.test(e)?t.push(Z("risk.destructive")):Qv.test(e)?t.push(Z("risk.deps")):Xn(e)||Zv.test(e)?t.push(Z("risk.modify")):zn(e)||t.push(Z("risk.unknown")),XD.test(e)&&t.push(Z("risk.network")),t}i(ZD,"classifyShellRisks");function eN(e){if(Array.isArray(e))return e.filter(t=>typeof t=="object"&&t!==null&&typeof t.kind=="string")}i(eN,"readSignals");function tN(e){if(e){if(e.some(t=>t.kind==="protected_path"))return Z("scope.protected");if(e.some(t=>t.kind==="outside_project"||t.kind==="shell_redirect_outside"))return Z("scope.outside")}}i(tN,"scopeFromSignals");function nN(e){if(e._outsideProject===!0)return Z("scope.outside");if(e._alwaysConfirm===!0)return Z("scope.protected")}i(nN,"scopeFromMarkers");function rN(e){if(!e)return[];let t=[],n=e.some(o=>o.kind==="dangerous_pattern"&&o.severity==="high"),r=e.some(o=>o.kind==="dangerous_pattern"&&o.severity==="medium");return n?t.push(Z("risk.destructive")):r&&t.push(Z("risk.modify")),e.some(o=>o.kind==="network")&&t.push(Z("risk.network")),e.some(o=>o.kind==="package_install")&&t.push(Z("risk.deps")),t}i(rN,"risksFromSignals");var oN={Reason:"field.reason",Intent:"field.intent",Target:"field.target",Scope:"field.scope",Risk:"field.risk",Summary:"field.summary"};function iN(e){return Z(oN[e])}i(iN,"localizeFieldLabel");function zs(e,t){return{title:e,fields:t,details:t.map(n=>`${iN(n.label)}: ${n.value}`)}}i(zs,"buildDisplayFromFields");function Rf(e,t){if(e==="confirm"){let l=Vs(t._message);if(l)return zs(l,[])}if(e==="exit_plan_mode"){let l=Vs(t.plan),u="Approve plan? (exits plan mode \u2192 accept-edits)";return l?{title:u,fields:[],details:l.split(`
|
|
361
|
-
`)}:zs(u,[])}let n=[],r=Vs(t.path),o=Vs(t.command),s=Vs(t._reason)??Vs(t.justification),a=
|
|
360
|
+
Error: ${c}`}}i(bf,"executeShellCommand");async function Rg(e,t={}){if(e.startsWith("!")){let n=e.slice(1).trim();return bf(n,t)}return e}i(Rg,"processSpecialSyntax");function kD(e){return e.trim().startsWith("!")}i(kD,"isShellCommand");function RD(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell:")}i(RD,"isShellCommandSuccess");function zc(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell command failed:")||e.startsWith("[Shell:")||e.startsWith("[Blocked]")}i(zc,"isShellCommandHandled");function vf(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(vf,"createRetryHistoryItem");function Eg(e,t,n,r){e(vf(t,n,r))}i(Eg,"emitRetryHistoryItem");function If(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(If,"createRecoveryHistoryItem");function Mg(e,t){e(If(t))}i(Mg,"emitRecoveryHistoryItem");import{jsx as le,jsxs as Zt,Fragment as wH}from"react/jsx-runtime";import bk,{useState as Ge,useCallback as X,useRef as xe,useEffect as Ne,useMemo as de}from"react";import{jsx as gr,Fragment as ED,jsxs as kf}from"react/jsx-runtime";var Ag=" | ",jv=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",S=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 kf(R,{flexDirection:"column",children:[kf(R,{paddingX:1,children:[gr(b,{color:m.colors.dim,children:x}),gr(b,{dimColor:!0,children:Ag}),gr(b,{color:m.colors.dim,children:S}),I||T?gr(R,{flexGrow:1}):null,I?kf(ED,{children:[gr(b,{dimColor:!0,children:I}),T?gr(b,{dimColor:!0,children:Ag}):null]}):null,T?gr(b,{color:m.colors.accent,bold:!0,children:T}):null]}),$?kf(R,{paddingX:1,children:[A?gr(b,{color:m.colors.dim,children:A}):null,A&&y?gr(b,{dimColor:!0,children:Ag}):null,y?gr(b,{color:m.colors.accent,bold:!0,children:y}):null]}):null]})},"TranscriptModeFooter");import{jsx as MD,jsxs as AD}from"react/jsx-runtime";var Gv=i(({banner:e,...t})=>AD(R,{flexDirection:"column",children:[e,MD(ci,{...t,animateSpinners:!1,showFullThinking:!1,showDetailedTools:!1,showLiveProgressRows:!1})]}),"PromptTranscriptSurface");import{jsx as _D,jsxs as LD}from"react/jsx-runtime";var Kv=i(({banner:e,windowed:t=!1,showDetailedTools:n=!1,showAllContent:r=!1,...o})=>LD(R,{flexDirection:"column",children:[e,_D(lg,{...o,chromeMode:"hidden",windowed:t,showFullThinking:!0,showDetailedTools:n,showAllContent:r,showLiveProgressRows:!0})]}),"TranscriptModeSurface");import{jsxs as PD,jsx as $D}from"react/jsx-runtime";var Vv=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 $D(R,{paddingX:1,backgroundColor:r.colors.inputBackground,children:PD(b,{color:o,children:[s," ",n]})})},"ClipboardToastSurface");import{jsx as xo,Fragment as OD,jsxs as _g}from"react/jsx-runtime";var DD=" \u23BF ";function ND(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(ND,"resolveSymbolColor");var BD=i(({row:e})=>{let t=ND(e.symbolColor),n=e.kind!=="item";return _g(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?_g(OD,{children:[xo(b,{children:" "}),xo(b,{dimColor:!0,children:e.evaluatorBadge})]}):null]})},"TodoListRow"),zv=i(({viewModel:e})=>{if(!e.shouldRender||e.rows.length===0)return null;let t=re("dark").colors.dim;return _g(R,{flexDirection:"row",children:[xo(b,{color:t,children:DD}),xo(R,{flexDirection:"column",flexGrow:1,children:e.rows.map((n,r)=>xo(BD,{row:n},`${n.kind}-${n.id??r}`))})]})},"TodoListSurface");function HD(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(HD,"symbolForStatus");function FD(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(FD,"pickAnchorIndex");function WD(e){let{symbol:t,color:n}=HD(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(WD,"buildItemRow");function UD(e){return{kind:"summary_done",symbol:"\u2713",symbolColor:"green",text:`${e} done`,isActive:!1}}i(UD,"buildDoneSummary");function Lg(e){return{kind:"summary_pending",symbol:"\u2610",symbolColor:"dim",text:`+${e} more`,isActive:!1}}i(Lg,"buildPendingSummary");function jD(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].status==="failed"&&!t.has(n))return n;return-1}i(jD,"pickFailedToPromote");function GD(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(GD,"decideWindow");function Xv(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=FD(e),a=GD(e,s),c=new Set(a.visibleIdx),l=jD(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],S=0;for(let T=0;T<x;T++)e[T].status==="completed"&&S++;m=S}}let h=[];m>0&&h.push(UD(m));for(let g of u)h.push(WD(e[g]));if(p>0&&h.push(Lg(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 S=h[h.length-1];if(S&&S.kind==="summary_pending"){let T=/\+(\d+) more/.exec(S.text),I=T?Number.parseInt(T[1],10)+1:1;h[h.length-1]=Lg(I)}else h.push(Lg(1));g=!0;break}}if(!g)break}return o(h,!0)}i(Xv,"buildTodoPlanViewModel");function Yv(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(Yv,"buildFooterHeaderViewModel");function KD(e){return xu(e.provider,e.model,"off",{longRunning:!0})}i(KD,"evaluateSessionTransitionPolicy");function VD(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(VD,"formatSessionTransitionGuardMessage");function di(e,t,n){let r=KD(e);if(!r||r.status==="allow")return!0;let[o,...s]=VD(t,r);return n(r.status,o,s),r.status!=="block"}i(di,"enforceSessionTransitionGuard");function zD(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(zD,"summarizeEntry");function qv(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} ${zD(e.entry)}${c}`);let l=t+(t?n?" ":"| ":"");e.children.forEach((u,m)=>{qv(u,l,m===e.children.length-1,r)})}i(qv,"formatNode");function Rf(e){let t=[];return e.forEach((n,r)=>{qv(n,"",r===e.length-1,t)}),t}i(Rf,"formatSessionTree");var XD=100,YD=/\b(curl|wget|invoke-webrequest|invoke-restmethod|iwr|irm)\b/i,Qv=/\b(rm|del|erase|remove-item|rmdir|rd|git clean)\b/i,Zv=/\b(npm|pnpm|yarn|pip|choco|winget)\s+(install|add|remove|uninstall|update|upgrade|ci)\b/i,e0=/\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 qD(e){return e.replace(/\s+/g," ").trim()}i(qD,"normalizeWhitespace");function JD(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(JD,"truncateMiddle");function QD(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(QD,"maskSensitiveSegments");function Jv(e){return JD(QD(qD(e)),XD)}i(Jv,"summarizeCommand");function ZD(e){return zn(e)?Z("intent.read"):Qv.test(e)?Z("intent.delete"):Zv.test(e)?Z("intent.deps"):Xn(e)||e0.test(e)?Z("intent.modify"):Z("intent.execute")}i(ZD,"classifyShellIntent");function eN(e){let t=[];return Qv.test(e)?t.push(Z("risk.destructive")):Zv.test(e)?t.push(Z("risk.deps")):Xn(e)||e0.test(e)?t.push(Z("risk.modify")):zn(e)||t.push(Z("risk.unknown")),YD.test(e)&&t.push(Z("risk.network")),t}i(eN,"classifyShellRisks");function tN(e){if(Array.isArray(e))return e.filter(t=>typeof t=="object"&&t!==null&&typeof t.kind=="string")}i(tN,"readSignals");function nN(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(nN,"scopeFromSignals");function rN(e){if(e._outsideProject===!0)return Z("scope.outside");if(e._alwaysConfirm===!0)return Z("scope.protected")}i(rN,"scopeFromMarkers");function oN(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(oN,"risksFromSignals");var iN={Reason:"field.reason",Intent:"field.intent",Target:"field.target",Scope:"field.scope",Risk:"field.risk",Summary:"field.summary"};function sN(e){return Z(iN[e])}i(sN,"localizeFieldLabel");function zs(e,t){return{title:e,fields:t,details:t.map(n=>`${sN(n.label)}: ${n.value}`)}}i(zs,"buildDisplayFromFields");function Ef(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=tN(t._classifierSignals),c=nN(a)??rN(t);switch(Xt(n,"Reason",s),e){case"bash":case"shell_command":{if(o){Xt(n,"Intent",ZD(o)),Xt(n,"Scope",c);let l=oN(a),u=l.length>0?l:eN(o);u.length>0&&Xt(n,"Risk",u.join("; ")),Xt(n,"Summary",Jv(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",Jv(o)),zs(Z("tool.generic.title",{tool:e}),n)}}i(Ef,"buildToolConfirmationDisplay");function t0(e,t){let n=Ef(e,t);return n.details.length>0?`${n.title}
|
|
362
362
|
${n.details.join(`
|
|
363
|
-
`)}`:n.title}i(
|
|
364
|
-
`)}i(
|
|
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:$}),
|
|
367
|
-
`)}i(
|
|
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(
|
|
369
|
-
${m.additionalContext}`:m.additionalContext),m.allow===!1){l.allow=!1;break}}return l}i(qs,"runHooks");async function
|
|
363
|
+
`)}`:n.title}i(t0,"buildToolConfirmationPrompt");function n0(e,t=240){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(n0,"truncateToolPreview");function r0(e,t=800){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(r0,"truncateToolOutputPreview");function Pg(e){return e.replace(/^\[[^\]]+\]\s+/,"").replace(/^[A-Za-z][A-Za-z0-9_-]*:\s*/,"").trim()}i(Pg,"stripToolRolePrefix");function $g(e){return Pg(e).toLowerCase()}i($g,"normalizeToolNameForMatch");function Og(e){return e===`[${Z("managed.completed")}]`||e===`[${Z("managed.completed.blocked")}]`||e===`[${Z("managed.completed.continuation")}]`}i(Og,"isCompletionTranscriptItem");function Mf(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(Mf,"formatManagedLiveActivityLabel");function Fr(e,t){return Mf(`[Tools] ${Wd(e)}`,t)??`[Tools] ${Wd(e)}`}i(Fr,"formatManagedLiveToolLabel");function Af(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(Af,"areManagedLiveItemsEquivalent");function o0(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(o0,"localizeManagedCompletionSummary");function aN(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(aN,"formatHarnessProfileShort");function i0(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(i0,"mergeLiveThinkingContent");function Xs(e,t){let n=t?.expanded?e.detailNote??e.note:e.note,r=aN(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 s0=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1";function a0(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&&!s0)return r;let p=m?`[${o0(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"&&!s0)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(a0,"buildManagedLiveEventDrafts");function cN(e,t){return!(t||e.role!=="evaluator"||e.signal!=="COMPLETE")}i(cN,"shouldFilterSidecarAcceptEntry");function lN(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(lN,"buildManagedTaskRoutingTranscript");function Dg(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"),S=g.includes("Orchestration cancelled"),T=!y||g==="No textual output produced.";return p.status!=="completed"&&(x||S||T)||(x||S)&&T},"isInterruptedCancellation"),s=lN(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=>!cN(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):"",S=p.role==="scout"?x?`Scout completed: ${x}`:"Scout completed.":x;return{entry:p,text:x||y||S}}).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(Dg,"buildManagedTaskTranscriptItems");function c0(e){let r=e.slice(0,400).match(new RegExp("\\*\\*([^*\\n]{1,80}?)\\*\\*"))?.[1]?.trim();return r?{header:r}:{}}i(c0,"extractBoldHeader");var Ng=[" \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 _f=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(()=>_f.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 uN,useCallback as dN,useRef as fN}from"react";function Wr(e,t,n={}){let{context:r,isActive:o=!0}=n,s=yr(),a=fN(t);a.current=t,uN(()=>(s.setHandler(e,(...u)=>a.current(...u)),()=>{s.setHandler(e,void 0)}),[s,e]);let c=dN(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=mN(e,s);yn(c,{isActive:o,priority:l})}i(Wr,"useShortcut");function mN(e,t){let r=t.getAllShortcuts().find(o=>o.definition.id===e);return r?r.definition.priority:0}i(mN,"getShortcutPriority");import pN,{createContext as hN,useContext as gN,useState as l0,useCallback as Bg}from"react";var u0=hN(null);function Hg({children:e,initialContext:t="input"}){let[n,r]=l0(!1),[o,s]=l0(t);yr().registerAll(Ys);let c=Bg(()=>{r(p=>!p)},[]),l=Bg(()=>{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=Bg(()=>yr().getShortcutsByContext(o),[o]),m={showHelp:n,toggleHelp:c,setShowHelp:r,currentContext:o,setCurrentContext:s,getShortcutsByCategory:l,getContextShortcuts:u};return pN.createElement(u0.Provider,{value:m},e)}i(Hg,"ShortcutsProvider");function Fg(){let e=gN(u0);if(!e)throw new Error("useShortcutsContext must be used within a ShortcutsProvider");return e}i(Fg,"useShortcutsContext");import yN from"chalk";function Wg({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:S,onSetPermissionMode:T,isInputEmpty:I,onSavePermissionMode:A}){return Wr("interrupt",()=>n?(r(),o(),s(),a(void 0),c(!1),console.log(yN.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:$}),S?.($),u(!1),!0}),null}i(Wg,"GlobalShortcuts");import{exec as xN}from"child_process";import{promisify as wN}from"util";var SN=wN(xN),TN={read:"read",grep:"grep",glob:"glob",write:"write",edit:"edit",bash:"bash",undo:"undo",askuserquestion:"ask-user-question",askuser:"ask-user-question"};function d0(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(d0,"splitTopLevelCommaList");function CN(e){if(!e?.trim())return{configured:!1,rules:[],invalidEntries:[]};let t=[];return{configured:!0,rules:d0(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=TN[o[1].replace(/[^a-z]/gi,"").toLowerCase()];if(!s){t.push(r);return}let a=o[2]?d0(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(CN,"parseAllowedTools");function bN(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${t}$`,"i")}i(bN,"wildcardToRegExp");function f0(e,t){return bN(e).test(t)}i(f0,"matchesPattern");function m0(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=>f0(a,o)))}i(m0,"isToolAllowed");function vN(e,t){return e.matcher?f0(e.matcher,t):!0}i(vN,"hookMatches");function IN(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(IN,"formatManualOutput");function kN(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(kN,"resolveModelOverride");async function RN(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(!m0(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 SN(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(RN,"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(!vN(u,n))continue;let m=await RN(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 Lf(e,t,n,r){if(t.disableModelInvocation)return{mode:"manual",manualOutput:IN(t),finalize:i(async()=>{},"finalize")};let o=e.events??{},s=CN(t.allowedTools),a=kN(e.provider,t.model),c=!1,l=i(async S=>{if(r(S),!(c||!t.hooks?.Notification?.length)){c=!0;try{await qs(t.hooks,"Notification",S,{displayName:t.displayName,source:t.source,path:t.path,message:S},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(S=>typeof S=="string"&&S.trim().length>0),h=[p.length>0?p.join(`
|
|
370
370
|
|
|
371
|
-
`):void 0,t.prompt,`User request: ${n}`].filter(
|
|
371
|
+
`):void 0,t.prompt,`User request: ${n}`].filter(S=>typeof S=="string"&&S.trim().length>0),g={...o,beforeToolExecute:i(async(S,T)=>m0(s,S,T)?(await qs(t.hooks,"PreToolUse",S,{tool:S,input:T,displayName:t.displayName,source:t.source,path:t.path},l,o,s)).allow===!1?(await l(`[Blocked] PreToolUse hook blocked '${S}' for ${t.displayName}`),!1):o.beforeToolExecute?await o.beforeToolExecute(S,T):!0:(await l(`[Blocked] Tool '${S}' is not allowed by ${t.displayName}`),!1),"beforeToolExecute"),onToolResult:i(S=>{o.onToolResult?.(S),qs(t.hooks,"PostToolUse",S.name,{...S,displayName:t.displayName,source:t.source,path:t.path},l,o,s)},"onToolResult")},y=!1,x=i(async S=>{y||(y=!0,await qs(t.hooks,t.context==="fork"?"SubagentStop":"Stop",t.displayName,{displayName:t.displayName,source:t.source,path:t.path,error:S?.message},l,o,s))},"finalize");return{mode:t.context==="fork"?"fork":"inline",prompt:h.join(`
|
|
372
372
|
|
|
373
|
-
`),options:{...e,modelOverride:a,context:{...e.context,rawUserInput:n,skillInvocation:t.source==="skill"?t.skillInvocation:e.context?.skillInvocation},events:g},finalize:x}}i(
|
|
374
|
-
`)}catch{}}i(
|
|
375
|
-
`))}i(
|
|
376
|
-
`);
|
|
377
|
-
`)}catch{}}}i(
|
|
378
|
-
`):[""],Math.max(1,t),0,0);return Math.max(1,n.visualLines.length)}i(it,"wrapLineCount");function
|
|
379
|
-
`):[""],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(Lf,"prepareInvocationExecution");import{appendFileSync as EN,mkdirSync as MN,writeFileSync as AN}from"node:fs";import{join as h0}from"node:path";import p0 from"node:v8";var Gg=parseInt(process.env.KODAX_MEMORY_DIAG??"0",10),Kg=Gg>=1,Vg=Ki(),g0=h0(Vg,"memory-diag.log"),Ug=0,jg=!1;function y0(){if(!jg)try{MN(Vg,{recursive:!0}),jg=!0}catch{jg=!0}}i(y0,"ensureLogDir");function _N(e){y0();try{EN(g0,e+`
|
|
374
|
+
`)}catch{}}i(_N,"writeLog");function St(e){return`${(e/1024/1024).toFixed(2)}MB`}i(St,"formatMB");function LN(){return typeof globalThis.gc=="function"?(globalThis.gc(),!0):!1}i(LN,"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 x0(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+=x0(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(x0,"estimateBlockBytes");function zg(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+=x0(n);return t}return 200}i(zg,"estimateMessageBytes");function Pf(e){let t=128;switch(t+=Lt(e.id)+Lt(e.parentId??void 0)+Lt(e.timestamp),e.type){case"message":return t+zg(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(Pf,"estimateEntryBytes");function PN(e){let t={},n=[];for(let o=0;o<e.length;o++){let s=e[o],a=zg(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(PN,"buildMessageBreakdown");function $f(){return Kg}i($f,"memDiagEnabled");function Of(e,t){if(!Kg)return;e==="turn-start"&&Ug++;let n=process.memoryUsage(),r=new Date().toISOString(),o=t.biggestMessages,s=["",`\u2550\u2550\u2550 [MEMDIAG] turn=${Ug} 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=p0.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)'),LN()){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(Gg>=2)try{let u=h0(Vg,`heap-turn${Ug}-${e}.heapsnapshot`);p0.writeHeapSnapshot(u),s.push(` heap snapshot: ${u}`)}catch{s.push(" heap snapshot: FAILED")}_N(s.join(`
|
|
375
|
+
`))}i(Of,"memDiagSnapshot");function Df(e,t,n){let r=PN(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+=zg(T.message));break;case"compaction":l++,s+=Pf(T);break;case"branch_summary":u++,s+=Pf(T);break;case"label":m++,s+=Pf(T);break;case"archive_marker":p++,s+=Pf(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 S=0;for(let T of n.persistedUiHistory)S+=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:S}}i(Df,"buildMemDiagBreakdown");function w0(){if(Kg){y0();try{let e=typeof globalThis.gc=="function",t=[`[MEMDIAG] Session started at ${new Date().toISOString()}`,`[MEMDIAG] Level=${Gg} 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
|
+
`);AN(g0,t+`
|
|
377
|
+
`)}catch{}}}i(w0,"memDiagReset");import $N from"node:fs";import Yg from"node:path";var ON={".gif":"image/gif",".jpeg":"image/jpeg",".jpg":"image/jpeg",".png":"image/png",".webp":"image/webp"},DN=/@(?:"([^"]+)"|'([^']+)'|([^\s]+))/g;function NN(e){return ON[Yg.extname(e).toLowerCase()]}i(NN,"resolveImageMediaType");var Xg="[Image unavailable]";function BN(e){return""}i(BN,"buildImageAnchor");function Xc(e,t){let n=[],r=[],o=new Set,s=new Map,a=new Set,c=[],l=0;for(let m of e.matchAll(DN)){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=NN(h);if(!g){c.push(m[0]),l=p+m[0].length;continue}let y=Yg.resolve(t,h);try{if(!$N.statSync(y).isFile()){a.has(y)||(r.push(`[Image input skipped] ${h} is not a file.`),a.add(y)),c.push(Xg),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(Xg),l=p+m[0].length;continue}if(!o.has(y)){o.add(y);let x=BN(n.length+1);s.set(y,x),n.push({kind:"image",path:y,mediaType:g,source:"user-inline",description:`Attached image ${Yg.basename(y)}`})}c.push(s.get(y)??Xg),l=p+m[0].length}c.push(e.slice(l));let u=c.join("");return{promptText:u,messageContent:Fw(u,n),inputArtifacts:n,warnings:r}}i(Xc,"preparePromptInputArtifacts");function S0(e){let t=HN(e.stage),n=FN(e);return{type:"info",icon:"\u{1F4E1}",text:n?`[RepoIntel] ${t} \xB7 ${n}`:`[RepoIntel] ${t}`,tightSpacing:!0}}i(S0,"createRepoIntelTraceHistoryItem");function HN(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(HN,"stageDisplayName");function FN(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(`${WN(r.capsuleEstimatedTokens)} tokens`)),t.length===0&&e.summary?UN(e.summary):t.join(" \xB7 ")}i(FN,"buildRepoIntelDetailLine");function WN(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(WN,"formatTokens");function UN(e){return e.replace(/^stage=[^|]+\|\s*/,"").trim()}i(UN,"stripSummaryStagePrefix");function T0(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(T0,"buildManagedRunContext");var jN=["global","mode","navigation","editing"],GN={global:["showHelp","interrupt"],mode:["toggleThinking","toggleTranscriptMode","togglePermissionMode","toggleAgentMode"],navigation:["openTranscriptSearch","historyUp","historyDown","moveToStart","moveToEnd"],editing:["acceptCompletion","cancelInput","newline","killLineRight","killLineLeft","deleteWordLeft"]},KN={global:"Global",mode:"Modes",navigation:"Navigation",editing:"Editing"},VN={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 zN(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(zN,"resolveShortcutBindingLabel");function XN(e){return`${zN(e.id)??e.id} ${e.name}`}i(XN,"buildMenuItemLabel");function YN(e){return yr().getAllShortcuts().find(r=>r.definition.id===e)?.definition??Ys.find(r=>r.id===e)}i(YN,"resolveShortcutDefinition");function Nf(){return[...jN.map(t=>{let n=GN[t].map(r=>YN(r)).filter(r=>!!r).map(r=>({id:r.id,label:XN(r)}));return{id:t,title:KN[t],items:n}}).filter(t=>t.items.length>0),VN]}i(Nf,"buildHelpMenuSections");var qg=2,C0=1,b0=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 qN(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(qN,"calculateInputPromptRows");function v0(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:S,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=qN(o,n,s),Q=g?8:0,J=x?C0+b0+Nf().reduce((O,j)=>O+it(j.title,Math.max(1,n-qg))+it(j.items.map(te=>te.label).join(" | "),Math.max(1,n-qg)),0):0,q=it(S,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(v0,"calculateViewportBudget");function I0(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(I0,"createTranscriptDisplayState");function k0(e){return{...e,surface:"transcript",jumpToLatestAvailable:e.pendingLiveUpdates>0}}i(k0,"enterTranscriptMode");function R0(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(R0,"exitTranscriptMode");function E0(e,t){let n=Math.max(0,t);return{...e,pendingLiveUpdates:n,jumpToLatestAvailable:e.surface==="transcript"?n>0:e.scrollAnchor>0}}i(E0,"setTranscriptPendingLiveUpdates");function M0(e,t){let n=Math.max(0,t);return{...e,scrollAnchor:n,jumpToLatestAvailable:e.surface==="transcript"?e.pendingLiveUpdates>0:n>0}}i(M0,"setTranscriptScrollAnchor");function A0(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(A0,"jumpTranscriptToLatest");function _0(e,t){return{...e,stickyPromptVisible:t}}i(_0,"setTranscriptStickyPromptVisible");function Js(e,t){return{...e,selectedItemId:t,selectionMode:t?"message":"none"}}i(Js,"setTranscriptSelectedItem");function L0(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(L0,"openTranscriptSearch");function P0(e){return{...e,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0}}i(P0,"closeTranscriptSearch");function $0(e,t){return{...e,currentMatchIndex:Math.max(-1,t)}}i($0,"setTranscriptSearchMatchIndex");function O0(e){return e.supportsFullscreenLayout&&e.ownsViewportByDefault}i(O0,"shouldWindowTranscript");function D0(e){return e.surface==="transcript"}i(D0,"shouldPauseLiveTranscript");function Jg(e){return e.supportsSelection}i(Jg,"ownsTranscriptSelectionPath");function Bf(e,t,n){if(!(!Jg(e)||!n))return t.includes(n)?n:void 0}i(Bf,"resolveTranscriptSelectedItemId");function N0(e){return e.supportsSelection&&e.supportsCopyOnSelect}i(N0,"supportsPassiveTranscriptCopyOnSelect");function B0(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(B0,"buildTranscriptBrowseHint");var H0="Slash commands cannot be queued mid-task. Press Esc to abort the current task, then run the command.",F0="slash-guard";function W0(e){return e.trimStart().startsWith("/")}i(W0,"isSlashCommandText");var JN=`
|
|
380
380
|
|
|
381
381
|
---
|
|
382
382
|
|
|
383
|
-
`;async function
|
|
384
|
-
`)}i(
|
|
383
|
+
`;async function U0(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(JN),await s?.(c),l=await n(c)}}i(U0,"runQueuedPromptSequence");function G0(e){return e.itemsLength>0||e.currentResponse.length>0||e.thinkingContent.length>0||e.activeToolCallsLength>0}i(G0,"hasTranscriptInputActivity");function QN(e){return e.keyName==="mouse"&&e.hasMouse&&e.usesManagedMouseClicks&&e.supportsMouseTracking&&e.usesRendererMouseTracking}i(QN,"shouldHandleManagedTranscriptMouse");function j0(e){return e.usesManagedMouseWheel&&e.supportsWheelHistory&&e.hasTranscript}i(j0,"shouldHandleManagedTranscriptWheel");function K0(e){if(QN({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"?j0({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?{kind:"scroll-by",delta:e.reviewWheelStep}:{kind:"none"}:e.keyName==="wheeldown"?j0({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(K0,"resolveTranscriptPointerAction");function ZN(e){return e.isTranscriptMode&&e.hasTextSelection}i(ZN,"shouldDeferInterruptToTranscriptSelectionCopy");function V0(e){return e.ctrl&&e.keyName==="c"?ZN({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(V0,"resolveStreamingInterruptAction");function z0(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(z0,"resolveTranscriptKeyboardAction");function X0(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(X0,"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 eB(e){return e.tools.map(n=>`tool: ${n.name}`).join(`
|
|
384
|
+
`)}i(eB,"serializeToolGroup");function tB(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 eB(e);default:return e}}i(tB,"serializeOne");function nB(e){let t=[];for(let n of e){let r=tB(n);r!==null&&r!==""&&t.push(r)}return t.join(`
|
|
385
385
|
|
|
386
|
-
`)}i(
|
|
387
|
-
`),o()}i(
|
|
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(`
|
|
386
|
+
`)}i(nB,"serializeTranscriptForScrollback");function Y0(e){let{items:t,writeToScrollback:n,exitAltScreen:r,enterAltScreen:o}=e,s=nB(t);r(),s.length>0&&n(`${s}
|
|
387
|
+
`),o()}i(Y0,"dumpTranscriptToNativeScrollback");var Qs={committed:[],width:0,hasBanner:!1};function q0(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(q0,"planInlineScrollback");import{jsx as CI}from"react/jsx-runtime";import YB from"yoga-layout";import{LegacyRoot as qB}from"react-reconciler/constants.js";import MB from"react-reconciler";import{DefaultEventPriority as AB,NoEventPriority as mI}from"react-reconciler/constants.js";import*as wo from"scheduler";import lI from"yoga-layout";import{createContext as _B}from"react";import yB from"yoga-layout";import rB from"widest-line";var J0=new Map,oB=i(e=>{if(e.length===0)return{width:0,height:0};let t=J0.get(e);if(t)return t;let n=rB(e),r=e.split(`
|
|
388
|
+
`).length,o={width:n,height:r};return J0.set(e,o),o},"measureText"),Qg=oB;import iB from"wrap-ansi";import sB from"cli-truncate";var Q0={},aB=i((e,t,n)=>{let r=e+String(t)+String(n),o=Q0[r];if(o)return o;let s=e;if(n==="wrap"&&(s=iB(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=sB(e,t,{position:a})}return Q0[r]=s,s},"wrapText"),Hf=aB;var cB=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),lB=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),uB=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),tI=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),dB=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),nI=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),Z0=i((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!cB(c))break;n++}let r=e.slice(t,n),o=n;for(;n<e.length;){let c=e[n];if(!lB(c))break;n++}let s=e.slice(o,n),a=e[n];if(!(a===void 0||!uB(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),eI=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"),fB=i((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!tI(s))break;n++}let r=e.slice(t,n),o=e[n];if(!(o===void 0||!dB(o)))return{endIndex:n+1,intermediateString:r,finalCharacter:o}},"readEscapeSequence"),mB=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"),pB=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"),Zg=i(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(nI(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"),rI=i(e=>{if(!Zg(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=Z0(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=mB(a);if(c!==void 0){let u=eI(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=fB(e,r+1);if(l===void 0){if(tI(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=Z0(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=pB(o);if(s!==void 0){let a=eI(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(nI(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 hB=/^[\d:;]*$/,gB=i(e=>{if(!Zg(e))return e;let t="";for(let n of rI(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&hB.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),oI=gB;var iI=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=iI(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o,n))),t+=o}return oI(t)},"squashTextNodes"),Yc=iI;var Ff=i(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:yB.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(xB.bind(null,t)),t},"createNode"),Wf=i((e,t)=>{t.parentNode&&qc(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")&&Uf(e)},"appendChildNode"),ey=i((e,t,n)=>{t.parentNode&&qc(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")&&Uf(e)},"insertBeforeNode"),qc=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")&&Uf(e)},"removeChildNode"),ty=i((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),ny=i((e,t)=>{e.style=t},"setStyle"),sI=i(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return Jc(t,e),t},"createTextNode"),xB=i(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:Yc(e),r=Qg(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let o=e.style?.textWrap??"wrap",s=Hf(n,t,o);return Qg(s)},"measureTextNode"),aI=i(e=>{if(e?.parentNode)return e.yogaNode??aI(e.parentNode)},"findClosestYogaNode"),Uf=i(e=>{aI(e)?.markDirty()},"markNodeAsDirty"),Jc=i((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,Uf(e)},"setTextNodeValue");import ve from"yoga-layout";var wB=i((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?ve.POSITION_TYPE_ABSOLUTE:ve.POSITION_TYPE_RELATIVE)},"applyPositionStyles"),SB=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"),TB=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"),CB=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"),bB=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"),vB=i((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?ve.DISPLAY_FLEX:ve.DISPLAY_NONE)},"applyDisplayStyles"),IB=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"),kB=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"),RB=i((e,t={})=>{wB(e,t),SB(e,t),TB(e,t),CB(e,t),bB(e,t),vB(e,t),IB(e,t),kB(e,t)},"styles"),ry=RB;import EB from"node:process";var cI=i(()=>EB.env.DEV==="true","isDev");if(cI())try{await import("./devtools-4CRULTR2.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
|
|
389
389
|
The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
|
|
390
390
|
but this failed as it was not installed. Debugging with React Devtools requires it.
|
|
391
391
|
|
|
@@ -393,93 +393,93 @@ To install use this command:
|
|
|
393
393
|
|
|
394
394
|
$ npm install --save-dev react-devtools-core
|
|
395
395
|
`.trim()+`
|
|
396
|
-
`);else throw e}var
|
|
397
|
-
`).repeat(F);g&&(D=
|
|
398
|
-
`).repeat(F);y&&(v=
|
|
399
|
-
`.repeat(o)+
|
|
400
|
-
`;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>
|
|
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
|
|
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),
|
|
403
|
-
`),height:t.length}}};var
|
|
404
|
-
`).length,g="";return e.staticNode&&(g=
|
|
405
|
-
`:"",frame:void 0}}let r=new ta({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});
|
|
406
|
-
`:"",frame:m}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),
|
|
407
|
-
`&&(o+=l)};let s,a=ea.createContainer(r,
|
|
396
|
+
`);else throw e}var uI=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"),dI=i(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),jf=mI,oy,fI={name:void 0,version:void 0},ea=MB({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=Ff(o);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){ny(s,c),s.yogaNode&&ry(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_static"){oy=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}ty(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 sI(e)},resetTextContent(){},hideTextInstance(e){Jc(e,"")},unhideTextInstance(e,t){Jc(e,t)},getPublicInstance:i(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(lI.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(lI.DISPLAY_FLEX)},appendInitialChild:Wf,appendChild:Wf,insertBefore:ey,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:Wf,insertInContainerBefore:ey,removeChildFromContainer(e,t){qc(e,t),dI(t.yogaNode)},commitUpdate(e,t,n,r){oy&&e.internal_static&&(oy.isStaticDirty=!0);let o=uI(n,r),s=uI(n.style,r.style);if(!(!o&&!s)){if(o)for(let[a,c]of Object.entries(o)){if(a==="style"){ny(e,c);continue}if(a==="internal_transform"){e.internal_transform=c;continue}if(a==="internal_static"){e.internal_static=!0;continue}ty(e,a,c)}s&&e.yogaNode&&ry(e.yogaNode,s)}},commitTextUpdate(e,t,n){Jc(e,n)},removeChild(e,t){qc(e,t),dI(t.yogaNode)},setCurrentUpdatePriority(e){jf=e},getCurrentUpdatePriority:i(()=>jf,"getCurrentUpdatePriority"),resolveUpdatePriority(){return jf!==mI?jf:AB},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:_B(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:fI.name,rendererVersion:fI.version});import FB from"widest-line";import WB from"indent-string";import So from"yoga-layout";import Gf from"yoga-layout";var LB=i(e=>e.getComputedWidth()-e.getComputedPadding(Gf.EDGE_LEFT)-e.getComputedPadding(Gf.EDGE_RIGHT)-e.getComputedBorder(Gf.EDGE_LEFT)-e.getComputedBorder(Gf.EDGE_RIGHT),"getMaxWidth"),pI=LB;import NB from"cli-boxes";import Kf from"chalk";import Ur from"chalk";var PB=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,$B=/^ansi256\(\s?(\d+)\s?\)$/,OB=i(e=>e in Ur,"isNamedColor"),DB=i((e,t,n)=>{if(!t)return e;if(OB(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=$B.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=PB.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=DB;var BB=i((e,t,n,r)=>{if(n.style.borderStyle){let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?NB[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,S=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&&($=Kf.dim($));let F=s;x&&(F-=1),S&&(F-=1);let D=(pi(a.left,u,"foreground")+`
|
|
397
|
+
`).repeat(F);g&&(D=Kf.dim(D));let v=(pi(a.right,m,"foreground")+`
|
|
398
|
+
`).repeat(F);y&&(v=Kf.dim(v));let z=S?pi((T?a.bottomLeft:"")+a.bottom.repeat(A)+(I?a.bottomRight:""),l,"foreground"):void 0;S&&h&&(z=Kf.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"),hI=BB;var HB=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"),gI=HB;function yI(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,S=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:S,$=T?A:S,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:S,appliedScrollTop:$,scrollTop:S,scrollOffsetY:A,scrollHint:F}}i(yI,"computeScrollState");var UB=i((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),o=n.getComputedTop();t=`
|
|
399
|
+
`.repeat(o)+WB(t,r)}return t},"applyPaddingToText"),Vf=i((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===So.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=Yc(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=>Vf(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"),iy=null;function xI(){iy=null}i(xI,"resetScrollHint");function wI(){return iy}i(wI,"getScrollHint");var SI=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=Yc(e);if(g.length>0){let y=FB(g),x=pI(c);if(y>x){let S=e.style.textWrap??"wrap";g=Hf(g,x,S)}g=UB(e,g),t.write(l,u,g,{transformers:m})}return}let p=!1,h=0;if(e.nodeName==="ink-box"){gI(l,u,e,t),hI(l,u,e,t);let g=e.style.overflowX??e.style.overflow,y=e.style.overflowY??e.style.overflow,x=g==="hidden"||g==="scroll",S=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=yI({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&&(iy=z.scrollHint),e.scrollTop=z.scrollTop,h=z.scrollOffsetY}if(x||S){let T=x?l+c.getComputedBorder(So.EDGE_LEFT):void 0,I=x?l+c.getComputedWidth()-c.getComputedBorder(So.EDGE_RIGHT):void 0,A=S?u+c.getComputedBorder(So.EDGE_TOP):void 0,$=S?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)SI(g,t,{offsetX:l,offsetY:u-h,transformers:m,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),sy=SI;import jB from"slice-ansi";import GB from"string-width";import{styledCharsFromTokens as KB,styledCharsToString as VB,tokenize as zB}from"@alcalzone/ansi-tokenize";var ay=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=KB(zB(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=GB(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 ay;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),S=a+x>u.x2?u.x2-a:x;return jB(g,y,S)}),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 S of s)h=S(h,p);let y=this.caches.getStyledChars(h),x=a;for(let S of y){g[x]=S;let T=Math.max(1,this.caches.getStringWidth(S.value));if(T>1)for(let I=1;I<T;I++)g[x+I]={type:"char",value:"",fullWidth:!1,styles:S.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 VB(o).trimEnd()}).join(`
|
|
403
|
+
`),height:t.length}}};var XB=i((e,t,n)=>{if(e.yogaNode){if(t){let p=Vf(e,{skipStaticElements:!0}),h=p===""?0:p.split(`
|
|
404
|
+
`).length,g="";return e.staticNode&&(g=Vf(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()});xI(),sy(e,r,{skipStaticElements:!0});let o;e.staticNode?.yogaNode&&(o=new ta({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),sy(e.staticNode,o,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=Nu(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:wI()};return{output:s,outputHeight:a,staticOutput:o?`${o.get().output}
|
|
406
|
+
`:"",frame:m}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),cy=XB;var JB=i((e,t)=>{let n=t?.columns??80,r=Ff("ink-root"),o="";r.onComputeLayout=()=>{r.yogaNode.setWidth(n),r.yogaNode.calculateLayout(void 0,void 0,YB.DIRECTION_LTR)},r.onImmediateRender=()=>{let{staticOutput:l}=cy(r,!1);l&&l!==`
|
|
407
|
+
`&&(o+=l)};let s,a=ea.createContainer(r,qB,null,!1,null,"render-to-string",l=>{s??=l},()=>{},()=>{},()=>{}),c=!1;try{ea.updateContainerSync(e,a,null,()=>{}),ea.flushSyncWork();let{output:l}=cy(r,!1);if(ea.updateContainerSync(null,a,null,()=>{}),ea.flushSyncWork(),c=!0,r.yogaNode.free(),s!==void 0)throw s instanceof Error?s:new Error(String(s));let u=o.endsWith(`
|
|
408
408
|
`)?o.slice(0,-1):o;return u&&l?u+`
|
|
409
|
-
`+l:u||l}finally{if(!c&&r.yogaNode)try{r.yogaNode.freeRecursive()}catch{}}},"renderToString"),
|
|
410
|
-
`)?r.slice(0,-1):r)+
|
|
411
|
-
`}i(
|
|
409
|
+
`+l:u||l}finally{if(!c&&r.yogaNode)try{r.yogaNode.freeRecursive()}catch{}}},"renderToString"),TI=JB;var QB="\x1B[0m";function bI(e,t){if(e.length===0)return"";let n=CI(R,{flexDirection:"column",children:e.map(s=>CI(tg,{section:s,theme:t.theme,animateSpinners:!1},s.key))}),r=TI(n,{columns:t.width});return(r.endsWith(`
|
|
410
|
+
`)?r.slice(0,-1):r)+QB+`
|
|
411
|
+
`}i(bI,"renderFinalizedSectionsToScrollbackText");function vI(e){return e.enabled&&!e.useRendererViewportShell&&!e.isTranscriptMode&&e.hasCommitHandle}i(vI,"isInlineLedgerActive");function II(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}=q0({bannerSection:e.bannerSection??null,finalizedSections:e.finalizedSections,width:e.width},e.identify??qb,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(II,"computeInlineLedgerStep");function kI(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(kI,"resolveInlineLedgerState");function RI(e,t){return t?{...e,staticSections:[]}:e}i(RI,"gateInlinePromptModel");function ZB(e){switch(e.type){case"tool_group":return e.tools.map(t=>{let n=[t.name];return typeof t.output=="string"&&n.push(t.output),t.error&&n.push(t.error),n.join(`
|
|
412
412
|
`)}).join(`
|
|
413
|
-
`);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(ZB,"buildSearchText");function eH(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(eH,"buildExcerpt");function EI(e){return e.map((t,n)=>({itemId:t.id,itemIndex:n,searchText:ZB(t)}))}i(EI,"createTranscriptSearchIndex");function MI(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:eH(o,t.trim())}]:[]}):[]}i(MI,"searchTranscriptIndex");function ly(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(ly,"stepTranscriptSearchMatch");function AI(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(AI,"buildTranscriptSearchSummary");function _I(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(_I,"resolveTranscriptSearchMatchIndex");function LI(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:tH(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(LI,"buildTranscriptSelectionSummary");function tH(e){return e.tools.length===1?`Tool call: ${e.tools[0]?.name??"tool"}`:`Tool group: ${e.tools.length} calls`}i(tH,"summarizeToolGroup");function PI(e){return e.map(t=>t.id)}i(PI,"getSelectableTranscriptItemIds");function $I(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($I,"moveTranscriptSelection");function uy(e){if(e)switch(e.type){case"tool_group":return e.tools.map(t=>{let n=[`Tool: ${t.name}`,`Status: ${t.status}`];return t.input&&n.push(`Input: ${JSON.stringify(t.input)}`),typeof t.output=="string"&&t.output.trim()&&n.push(`Output: ${t.output}`),t.error&&n.push(`Error: ${t.error}`),n.join(`
|
|
414
414
|
`)}).join(`
|
|
415
415
|
|
|
416
|
-
`);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(uy,"buildTranscriptCopyText");function OI(e){if(!e||e.type!=="tool_group")return;let t=e.tools.map(n=>{if(!n.input)return;let r=typeof n.input=="string"?n.input:JSON.stringify(n.input,null,2);if(r?.trim())return[`Tool: ${n.name}`,r].join(`
|
|
417
417
|
`)}).filter(n=>!!n);return t.length>0?t.join(`
|
|
418
418
|
|
|
419
|
-
`):void 0}i(
|
|
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
|
+
`):void 0}i(OI,"buildTranscriptToolInputCopyText");import{useCallback as Qc,useRef as nH,useState as DI}from"react";function NI(e){let{state:t,ownsViewport:n,isAwaitingUserInteraction:r,isHistorySearchActive:o,isTranscriptMode:s,historySearchQuery:a}=e,c=B0(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(NI,"buildTranscriptChromeModel");function BI(e){return Math.max(1,e-2)}i(BI,"resolveTranscriptPageSize");function HI(e){return Math.max(3,Math.floor(e/4))}i(HI,"resolveTranscriptWheelStep");function rH(e,t){return Math.max(0,e+t)}i(rH,"incrementTranscriptScrollOffset");function FI(e,t,n){let r=Math.max(0,t-n);return Math.min(Math.max(0,e),r)}i(FI,"clampTranscriptScrollOffset");function WI(){let e=nH(null),[t,n]=DI(0),[r,o]=DI(!0),s=Qc(m=>{n(Math.max(0,m))},[]),a=Qc(m=>{o(m)},[]),c=Qc(m=>{if(e.current){e.current.scrollTo(m);return}n(Math.max(0,m)),o(m===0)},[]),l=Qc(m=>{if(e.current){e.current.scrollBy(m);return}n(p=>rH(p,m)),o(!1)},[]),u=Qc(()=>{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(WI,"useTranscriptViewportScrollController");function UI(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(UI,"isTranscriptItemVisible");function jI(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 ev(u,a,s)}i(jI,"resolveTranscriptSelectionOffset");function GI(e){let{items:t,renderModel:n,selectedItemId:r,terminalWidth:o=80,transcriptMaxLines:s=1e3,viewportRows:a,scrollOffset:c=0,expandedItemKeys:l,showDetailedTools:u=!1,preferViewportAnchor:m=!1}=e;if(r&&t.some(p=>p.id===r))return r;if(m&&c>0&&a&&a>0){let p=n?.sections??Bs(t,o,s,u,l),h=n?.rows??ai(p),y=Qh(h,a,c)[0]?.key,x=y?p.find(S=>S.rows.some(T=>T.key===y)):void 0;if(x?.key)return x.key}return t[t.length-1]?.id}i(GI,"resolveTranscriptSearchAnchorItemId");function KI(e){let t=lc(e.stickyHeader),n=rd(t,e.width),r=Math.max(0,e.topChromeRows??0);return{contentWindow:e.window,topOffsetRows:n+r,stickyHeaderRows:n,topChromeRows:r}}i(KI,"resolveTranscriptOwnedWindowGeometry");function oH(e){return e.text===" "?"":e.text}i(oH,"normalizeTranscriptRowText");function dy(e){let t=new Map;return e.forEach((n,r)=>{t.set(n.key,r)}),t}i(dy,"buildTranscriptRowIndexByKey");function iH(e,t={}){let n=Math.max(0,e.indent??0),r=e.spinner&&t.animateSpinners!==!1?2:0;return 1+n+r}i(iH,"resolveTranscriptTextStartColumn");function VI(e,t={}){let n=Math.max(0,t.topOffsetRows??0),r=t.rowIndexByKey??dy(t.allRows??e),o=e.map((s,a)=>{let c=oH(s),l=iH(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+ov(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(VI,"buildTranscriptScreenBuffer");function sH(e,t){let n=Math.max(1,Math.floor(t));return iv(e.text,n-e.textStartColumn)}i(sH,"clampTextColumn");function fy(e,t){return{screenRow:e,point:{rowKey:e.key,modelRowIndex:e.modelRowIndex,column:sH(e,t)}}}i(fy,"toHit");function my(e,t,n){let r=e.rows.find(o=>o.screenRow===t);return r?fy(r,n):void 0}i(my,"hitTestTranscriptScreen");function py(e,t,n){if(e.rows.length!==0)return t<=e.topRow?fy(e.rows[0],n):t>=e.bottomRow?fy(e.rows[e.rows.length-1],n):my(e,t,n)}i(py,"clampTranscriptScreenHit");function zI(e){return e.text===" "?"":e.text}i(zI,"normalizeTranscriptRowText");function XI(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i(XI,"comparePoints");function YI(e,t,n,r={}){if(e.length===0)return;let[o,s]=XI(t,n)<=0?[t,n]:[n,t],a=r.selectFullRowOnCollapsed===!0,c=XI(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(zI(u))}:s,h=new Map,g=[],y=0;for(let x=m.modelRowIndex;x<=p.modelRowIndex;x+=1){let S=e[x];if(!S)continue;let T=zI(S),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(S.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(YI,"buildTranscriptScreenSelection");function qI(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(qI,"buildTranscriptScreenSelectionSummary");function JI(e,t){return e.rows.length===0?0:t<e.topRow?1:t>e.bottomRow?-1:0}i(JI,"resolveTranscriptDragEdgeScrollDirection");function zf(e){return e?e.map(t=>({label:t.label,value:t.value,description:t.description})):[]}i(zf,"toSelectOptions");function hy(e){return e.question}i(hy,"getAskUserDialogTitle");function aH(e){switch(e){case"confirm":return Z("waiting.confirm");case"select":return Z("waiting.select");case"input":return Z("waiting.input")}}i(aH,"formatPromptWaitingText");function QI(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(QI,"buildPromptPlaceholderText");function ZI(e){if(e.isTranscriptMode)return;if(e.waitingReason)return{kind:"waiting",text:aH(e.waitingReason),showSpinner:!1};if(!e.isLoading)return;let t=ng({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(ZI,"buildPromptActivityViewModel");function ek(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(ek,"resolveEffectiveCompactionInfo");function tk(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(tk,"buildSurfaceStatusBarProps");function nk(e){let t=Jg(e.state),n=t?Bf(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&&N0(e.state)},toggleDetail:t&&!!n,navigationCapabilities:{selection:t&&!!n&&e.selectableItemIds.length>0}}}i(nk,"buildTranscriptSelectionRuntimeState");function rk(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(rk,"buildTranscriptSelectionViewModel");function ok(e){return{query:e.query,matches:e.matches,currentMatchIndex:e.currentMatchIndex,anchorItemId:e.anchorItemId,statusText:e.useOverlaySurface?void 0:e.statusText}}i(ok,"buildTranscriptSearchViewModel");function cH(e,t){return e===0?0:t<0?-1:Math.min(t,e-1)}i(cH,"clampTranscriptSearchSelectedIndex");function lH(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(lH,"buildTranscriptSearchDetailText");function ik(e){let t=cH(e.matches.length,e.selectedIndex),n=AI(e.matches,t),r=lH({isHistorySearchActive:e.isHistorySearchActive,historySearchQuery:e.historySearchQuery,matches:e.matches,clampedSelectedIndex:t});return{clampedSelectedIndex:t,statusText:n,detailText:r,searchState:ok({query:e.historySearchQuery,matches:e.matches,currentMatchIndex:t,anchorItemId:e.anchorItemId,statusText:n,useOverlaySurface:e.useOverlaySurface})}}i(ik,"buildTranscriptSearchChrome");function uH(e=!1){return`\u2190/\u2192 enter select mode | Ctrl+E ${e?"collapse":"show all"} | Mouse drag selects text`}i(uH,"buildDefaultTranscriptSecondaryText");function sk(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(sk,"buildFooterNotifications");function ak(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(ak,"buildBaseFooterNotices");function ck(e){if(e.inputText.trim()&&(e.isTranscriptMode||e.isHistorySearchActive))return"Draft preserved while viewing transcript"}i(ck,"buildStashNoticeText");function lk(e){return[...e]}i(lk,"buildPromptFooterNotices");function dH(e){let n=(e.isHistorySearchActive?[e.historySearchDetailText]:[e.selectionSummary,e.actionSummary]).filter(r=>!!(r&&r.trim().length>0));return n.length===0?uH(e.showAllActive):n.join(" | ")}i(dH,"buildTranscriptFooterSecondaryText");function fH(e){let t=[];return e&&t.push(e),t}i(fH,"buildTranscriptFooterBudgetNotices");function uk(e){let t=e.selectionState?.copyCapabilities,n=e.selectionState?.navigationCapabilities,o=qI(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=dH({isHistorySearchActive:e.isHistorySearchActive,historySearchDetailText:e.historySearchDetailText,selectionSummary:o,actionSummary:s,showAllActive:e.showAllActive,baseFooterNotices:e.baseFooterNotices});return{selectionSummary:o,actionSummary:s,secondaryText:a,budgetNotices:fH(a)}}i(uk,"buildTranscriptFooterViewModel");import{jsx as V9,jsxs as z9}from"react/jsx-runtime";function dk(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(dk,"formatAmaWorkStripText");function fk(e){return e.replace(/^\[[^\]]+\]\s*/,"").trim()}i(fk,"stripLiveActivityPrefix");function mk(e){let t=[],n=e.showPrimary??!0;if(e.isLoading&&n){let l=e.currentTool?fk(jd(e.currentTool,e.toolInputContent??"",e.toolInputCharCount??0)):void 0,u=e.liveActivityLabel?fk(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(mk,"buildBackgroundTaskViewModel");function pk(e,t){if(!(!t||!e||e.agentMode!=="ama"))return dk(e.childFanoutClass,e.childFanoutCount)}i(pk,"buildAmaWorkStripFromStatus");function gy(e){let t=pk(e.status,e.isLoading);return{workStripText:t,backgroundTask:mk({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(gy,"buildAmaSummaryViewModel");function yy(e){return{...e,items:[...e.items],managedLiveEvents:[...e.managedLiveEvents??[]]}}i(yy,"captureTranscriptSnapshot");function hk(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(hk,"countPendingTranscriptUpdates");function gk(e){return e.snapshot?[...e.snapshot.items]:e.surface==="transcript"?[...e.transcriptItems]:[...e.promptItems]}i(gk,"resolveTranscriptSurfaceItems");function yk(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(yk,"buildPromptSurfaceItems");function xk(e,t){return e.enabled?t==="transcript"?e.transcriptShell:e.promptShell:"main-screen"}i(xk,"resolveFullscreenShellMode");function mH(e,t){return e.enabled&&xk(e,t)==="virtual"}i(mH,"shouldUseRendererViewportShell");function wk(e,t){let n=xk(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(wk,"resolveTranscriptInteractionPolicy");function Sk(e,t,n){return mH(e,t)?t==="transcript"||n:!1}i(Sk,"shouldOwnTranscriptViewport");var pH=500,hH=1,gH=/[\p{L}\p{N}_/.\-+~\\]/u;function yH(e){return e.text===" "?"":e.text}i(yH,"normalizeTranscriptRowText");function Tk(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i(Tk,"comparePoints");function xy(e){return e===""||/\s/.test(e)?0:gH.test(e)?1:2}i(xy,"charClass");function Ck(e){let t=e.timeoutMs??pH,n=e.distance??hH,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(Ck,"resolveTranscriptMultiClickState");function Xf(e,t,n){let r=e[t.modelRowIndex];if(!r)return;let o=yH(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=xy(Jd(o,a)),l=a,u=a+1;for(;l>0&&xy(Jd(o,l-1))===c;)l-=1;for(;u<s&&xy(Jd(o,u))===c;)u+=1;return{kind:n,start:{...t,column:l},end:{...t,column:u}}}i(Xf,"resolveTranscriptSelectionSpanAt");function wy(e,t){return Tk(t.end,e.start)<0?{anchor:e.end,focus:t.start}:Tk(t.start,e.end)>0?{anchor:e.start,focus:t.end}:{anchor:e.start,focus:e.end}}i(wy,"extendTranscriptSelectionSpan");var vk="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 Sy(e,t){if(sn(e))return[t.getGuardrail()]}i(Sy,"buildAutoModeGuardrails");function SH(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:e.thinking===!0||t.thinking===!0?"auto":"off"}i(SH,"resolveInitialReasoningMode");function TH(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(TH,"buildManagedTranscriptCompactText");function Ik(e){let t=TH(e);return{type:"event",icon:Og(e)?"\u2713":">",text:e,...t&&t!==e?{compactText:t}:{}}}i(Ik,"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 Cy(e){return EC(e)?"":uo(e).trim()}i(Cy,"sanitizeInterruptedAssistantText");function kk(e){return!!(e?.activeWorkerId&&!e.childFanoutClass&&(e.phase==="preflight"||e.phase==="worker"))}i(kk,"isForegroundManagedStreamingStatus");function CH(e,t,n){let r=[],o=n?.infoItems??[],s=by({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=Cy(t);return a&&r.push({type:"assistant",text:`${a}
|
|
421
421
|
|
|
422
|
-
[Interrupted]`}),r}i(
|
|
423
|
-
`):[""],Math.max(1,e.terminalWidth),0,0);return x.visualLines.length>0?x.visualLines:[""]},"wrapBannerLine"),g=i((y,x,
|
|
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]),
|
|
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
|
|
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,
|
|
422
|
+
[Interrupted]`}),r}i(CH,"buildInterruptedPersistenceItems");function by({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(by,"buildRoundHistoryItems");function Pk(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(Pk,"toPersistedUiHistoryItem");var Rk=150,Ek=50,Mk=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1",bH=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>Ek){let r=t[t.length-Ek]??0;n=e.slice(r)}if(n.length>Rk){let r=n.slice(-Rk),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 Ak(e){return hi(e.map(t=>Pk(t)).filter(t=>!!t))}i(Ak,"serializeUiHistorySnapshot");function vH(e){return e.map(t=>Pk(t)).filter(t=>!!t)}i(vH,"serializeCreatableHistoryItems");function Yf(e,t){return t.length===0?hi(e):hi([...e,...vH(t)])}i(Yf,"appendPersistedUiHistorySnapshot");function qf(e,t,n){console.log((e==="block"?Ye.red:Ye.yellow)(t)),n.forEach(r=>console.log(Ye.dim(r)))}i(qf,"logSessionTransitionGuard");var Ty=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=wu(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:[Ng.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 IH(e){let t=e.config.model??Mn(e.config.provider)??e.config.provider,n=Wo(e.config.provider,e.config.model),r=wu(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,S)=>{h(x).forEach((T,I)=>{p.push({key:`${y}-${I}`,text:T,...S})})},"pushLineRows");return Ng.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(IH,"buildBannerTranscriptSection");function _k(e,t){return t?{...e,sections:[t,...e.sections],rows:[...t.rows,...e.rows]}:e}i(_k,"prependTranscriptSection");var kH=process.env.KODAX_INLINE_LEDGER!=="0";function Lk(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(Lk,"reportInlineLedgerFailure");var RH=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:S,setRawMode:T,isRawModeSupported:I}=ic(),A=Cs(),{history:$}=Bc(),F=bk.useRef(null),D=bk.useRef(Kw()),{addHistoryItem:v,addHistoryItems:z,clearHistory:fe,setSessionId:se}=Hc(),ge=xe($),L=xe(Ak($));Ne(()=>{ge.current=$,L.current=Ak($)},[$]),Ne(()=>{w0()},[]),Ne(()=>{XC()},[]);let k=x.columns||80,P=Uc(),Re=xe(P);Ne(()=>{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:He,shiftPendingInput:$t,consumePendingInputs:ce}=jc(),[oe,ze]=Ge(!1),[B,nt]=Ge(t),un=de(()=>ek(c,{provider:B.provider,model:B.model},No),[c,B.provider,B.model]),[wi,Kr]=Ge(!0),[lm,cW]=Ge(!0),[fl,ml]=Ge(0),[um,ca]=Ge(!1),[Wy,Qn]=Ge(null),iE=de(()=>Go(),[]),la=xe(null),pl=xe(null),Uy=xe(Promise.resolve()),hl=xe(null),vo=xe({requested:!1,uiHistoryOverride:void 0}),Si=xe(null),ua=xe(!1),da=xe(null),[dm,gl]=Ge(!0),[fm,yl]=Ge(""),[Fe,Zn]=Ge(()=>I0(iE,{rendererMode:o})),[Et,mm]=Ge(!1),[sE,aE]=Ge(0),{scrollRef:cE,scrollOffset:Hn,sticky:pm,setScrollOffset:lE,handleScrollTopChange:uE,handleStickyChange:dE,scrollTo:xl,scrollBy:wl,scrollToBottom:Sl}=WI(),hm=xe(null),Tl=xe(null),fa=xe([]),Cl=xe([]),Ti=xe(null),Fn=xe(null),jy=xe({time:0,row:-1,column:-1,count:0}),[bl,gm]=Ge(void 0),[Io,ym]=Ge(void 0),[Ci,Gy]=Ge(void 0),[dn,fE]=Ge(()=>new Set),[xm,Ky]=Ge(null),[Wt,Vy]=Ge(null),[G,wm]=Ge(null),[vl,Vr]=Ge([]),bi=de(()=>{for(let f of vl)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}},[vl]),[lW,ma]=Ge([]),[pa,mE]=Ge([]),[Il,ht]=Ge(void 0),[ko,kl]=Ge(void 0),ct=xe(null),Sm=xe(null),Ro=xe([]),vi=xe([]),Yt=xe([]),Tm=xe(new Set),st=xe({}),gt=xe({activeToolGroupTools:[]}),zy=xe(0),Rl=xe({itemId:void 0,kind:"thinking",pendingText:""}),Wn=xe(null),pE=80,hE=20,gE=xe(null),El=de(()=>[...$,...pa],[$,pa]),Cm=de(()=>{let f=Qb(El,gE);return f===0?El:El.slice(f)},[El]),Ml=de(()=>Zb(Cm,hE),[Cm]),Ii=Cm,Ut=xe(null),er=xe(null),tr=xe([]),jt=xe([]),[Eo,yE]=Ge([]),Sr=xe([]),Tn=X(f=>{Sr.current=f,yE(f)},[]),Xy=X(f=>{Ro.current=f,ma(f)},[]),ki=X(f=>{Yt.current=f,mE(f)},[]),Yy=X(f=>{let w=f([...Yt.current]);ki(w)},[ki]),qy=X(f=>{f.length!==0&&ki([...Yt.current,...f])},[ki]),Al=X(f=>{let w=gt.current,C=w.activeToolGroupTools.some(M=>M.status===N.Executing);gt.current={...f?.clearOwner?{}:{workerId:w.workerId,workerTitle:w.workerTitle},...C?{activeToolGroupItemId:w.activeToolGroupItemId,activeToolGroupTools:w.activeToolGroupTools}:{activeToolGroupTools:[]}},f?.clearOwner&&(st.current={})},[]),_l=X(f=>{for(let w of f)w.type==="user"&&typeof w.id=="string"&&Tm.current.add(w.id)},[]),ha=X(()=>{Rl.current={itemId:void 0,kind:"thinking",pendingText:""},Wn.current&&(clearTimeout(Wn.current),Wn.current=null);let f=mg(Yt.current,Tm.current);if(f.length>0){for(let w of f)Tm.current.add(w.id);Si.current?.(f.map(w=>To(w)))}Al({clearOwner:!0}),ki([])},[Al,ki]),Ll=X(f=>(zy.current+=1,`managed-foreground-${f}-${zy.current}`),[]),Cn=X(f=>(qy([f]),f.id),[qy]),Mo=X((f,w)=>{st.current.workerId?Cn({id:`${w}-${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,w)=>{if(!f)return;let C;return Yy(M=>M.map(E=>E.id!==f?E:(C=w(E),C))),C},[Yy]),Ri=X((f,w)=>{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=w?.trim()?`[${w.trim()}] `:"",H=C.activeToolGroupTools.some(K=>K.status===N.Executing);if(f==="thinking"){let K=Cn({id:Ll("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:Ll("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:Ll("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,Ll]),Cr=X(()=>{Wn.current&&(clearTimeout(Wn.current),Wn.current=null);let f=Rl.current;if(!f.pendingText||!f.itemId)return;let w=f.pendingText,C=f.itemId,M=f.kind;f.pendingText="",Tr(C,E=>E.type!==M?E:{...E,text:`${E.text}${w}`})},[Tr]),Jy=X(()=>{Wn.current||(Wn.current=setTimeout(Cr,pE))},[Cr]),Pl=X((f,w)=>{if(!w)return;let C=gt.current.workerTitle,M=Ri(f,C),E=Rl.current;E.itemId===M&&E.kind===f?E.pendingText+=w:(Cr(),E.itemId=M,E.kind=f,E.pendingText=w),Jy()},[Ri,Cr,Jy]),Qy=X(f=>{let w=f.trim();if(!w)return;let C=Rl.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}] ${w}`:w,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 w=gt.current;if(w.activeToolGroupItemId&&w.activeToolGroupTools.some(W=>W.id===f.id)){let W=w.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={...w,...K?{activeToolGroupItemId:void 0,activeToolGroupTools:[]}:{activeToolGroupTools:W}},Tr(w.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",w.workerTitle),H=w.activeKind==="tool_group"&&w.activeToolGroupItemId===M?w.activeToolGroupTools.some(W=>W.id===f.id)?w.activeToolGroupTools.map(W=>W.id===f.id?f:W):[...w.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]),xE=X(f=>{Cr();let w=gt.current,C=w.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:w.activeToolGroupItemId,activeToolGroupTools:w.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]),wE=X(f=>{if(f.length===0)return[];let w=[],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];Af(K,H)||(C=C.map((ne,Ce)=>Ce===W?{...H,timestamp:K.timestamp}:ne))}else C=[...C,H].slice(-12),w.push(H);if(E.persistToHistory){let K=M.findIndex(ne=>ne.id===H.id);if(K>=0){let ne=M[K];Af(ne,H)||(M=M.map((Ce,xt)=>xt===K?{...H,timestamp:ne.timestamp}:Ce))}else M=[...M,H].slice(-48)}}return vi.current=M,(w.length>0||C.some((E,H)=>!Af(E,Ro.current[H]??E)||E.id!==Ro.current[H]?.id))&&Xy(C),w},[Xy]),$l=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 w=Sr.current.filter(C=>C.status===N.Executing);if(w.length!==0){if(f){let C=$g(f);for(let M=w.length-1;M>=0;M-=1){let E=w[M];if($g(E.name)===C)return E}}return w[w.length-1]}},[]),Ei=X(()=>{let f=zr();ue(f?Pg(f.name):void 0)},[zr,ue]),Zy=X(f=>($l(f),Tn([...Sr.current.filter(w=>w.id!==f.id),f]),Ei(),f),[Tn,Ei,$l]),Mi=X((f,w)=>{let C=Sr.current.find(E=>E.id===f);if(!C)return null;let M=w(C);return $l(M),Tn(Sr.current.map(E=>E.id===f?M:E)),Ei(),M},[Tn,Ei,$l]),ex=X((f,w,C)=>{if(f){let E=Mi(f,C);if(E)return E}let M=zr(w);return M?Mi(M.id,C):null},[zr,Mi]),Ol=X((f,w,C,M,E)=>{let H=f??zr(E)?.id;return H?Mi(H,W=>({...W,status:w,endTime:Date.now(),error:C,output:M})):null},[zr,Mi]),ga=X((f,w)=>{let C=Date.now(),M=new Map;for(let E of Sr.current){if(E.status!==N.Executing)continue;let H=w(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:tx,toggleHelp:SE,setShowHelp:nx}=Fg(),TE=X(f=>{yl(f),gl(f.trim().length===0)},[]),Dl=ii(),rx=de(()=>Dl?Dl.state.visible&&Dl.suggestions.length>0:!1,[Dl]),[ya,ox]=Ge(!1),ix=xe(fl),xa=X(()=>{Ut.current&&(clearTimeout(Ut.current),Ut.current=null),er.current&&(clearTimeout(er.current),er.current=null)},[]);Ne(()=>{rx&&!ya&&ox(!0)},[rx,ya]),Ne(()=>{fl!==ix.current&&(ix.current=fl,ya&&ox(!1))},[fl,ya]);let[tt,Nl]=Ge(null),Ao=xe(null),[Pe,jn]=Ge(null),Bl=xe(null),Hl=xe(Pe);Hl.current=Pe;let[qt,Ai]=Ge(""),[Fl,Gn]=Ge(0),bm=xe(""),wa=xe(void 0),sx=de(()=>{if(!un)return;let{contextWindow:f,triggerPercent:w}=un;return{currentTokens:Wy??n.contextTokenSnapshot?.currentTokens??Bo(n.messages),contextWindow:f,triggerPercent:w}},[n.messages,n.contextTokenSnapshot,un,Wy]),Sa=de(()=>{if(!tt)return;let f=!!tt.input._alwaysConfirm,w=B.permissionMode==="accept-edits"&&!f;return f?Z("confirm.instruction.protected"):w?Z("confirm.instruction.always"):Z("confirm.instruction.basic")},[tt,B.permissionMode]),lt=Fe.searchMode==="history",ie=Fe.surface==="transcript",Yr=!!tt||!!Pe||lt,Tt=ie?Et?Ub:1e3:12,qr=wk(s,Fe.surface),ax=qr.shellMode,vm=qr.usesAlternateScreenShell,_o=qr.usesRendererViewportShell,Wl=qr.usesRendererMouseTracking,cx=qr.usesManagedMouseClicks,lx=qr.usesManagedMouseWheel,Im=qr.usesManagedSelection,Ct=Sk(s,Fe.surface,O0(Fe)),ux=D0(Fe),Ul=ya&&!ie,dx=X(()=>yy({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:Il,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,Il,ko,P.iterationHistory,P.currentIteration,P.isCompacting]);Ne(()=>{if(ie){Ky(f=>f??dx());return}Ky(null)},[dx,ie]);let Ta=de(()=>hk({isTranscriptMode:ie,snapshot:xm,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,xm]),Ot=ie?xm:null,km=de(()=>yk(Ml),[Ml]),CE=de(()=>!!(pa.length>0||kk(G)),[pa.length,G]),jl=pa.length>0,Gt=s.streamingPreview&&CE,_i=de(()=>gk({surface:"transcript",snapshot:Ot,promptItems:Ml,transcriptItems:Ii}),[Ot,Ml,Ii]),Ca=de(()=>{if(!ie||Et||_i.length<=Jh)return _i;let f=_i.slice(-Jh),w=_i.length-f.length;return[nv(w,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?Il: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??Il,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:bl,fx=!!bl,mx=X(()=>yy({items:km,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,km,rt.activeToolCalls,rt.currentIteration,rt.currentResponse,rt.currentTool,rt.isCompacting,rt.isThinking,rt.iterationHistory,rt.lastLiveActivityLabel,rt.thinkingCharCount,rt.thinkingContent,rt.toolInputCharCount,rt.toolInputContent]);Ne(()=>{if(!fx){Vy(null);return}Vy(f=>f??mx())},[mx,fx]);let ba=Wt?.items??km,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,px=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&&lm?IH(Lo):void 0,[Lo,s.enabled,lm]),hx=xe(Qs),gx=xe(!1),Rm=xe(!1),Li=vI({enabled:kH,useRendererViewportShell:_o,isTranscriptMode:ie,hasCommitHandle:typeof ys(x)?.commitInlineScrollback=="function"}),va=de(()=>Vd({items:ba,viewportWidth:k,maxLines:Tt,showDetailedTools:!1,showAllContent:!1,windowed:!1}),[ba,k,Tt]),Po=de(()=>{let f=zd({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:px}),w=zb(va,f,Jr);return RI(w,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,px,va,Jr,k,Tt,bi]),Em=de(()=>Vd({items:Ca,viewportWidth:k,maxLines:Tt,showDetailedTools:Et,showAllContent:Et,showFullThinking:!0,windowed:!1}),[Ca,k,Tt,Et]),Gl=de(()=>{if(!ie||_o)return;let f=zd({activeItems:Em.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:!jl,expandedItemKeys:dn});return _k(qh(Xd(Em,f)),Jr)},[B.agentMode,dn,jl,Jr,ie,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,k,ut,Tt,Em,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?_k(Yd({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&&!jl,expandedItemKeys:ie?dn:void 0}),Jr):qh(Po)},[B.agentMode,nr,Dt,jl,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??Gl,[Ia,Gl]),ka=de(()=>gy({status:G,isLoading:oe,agentMode:B.agentMode}),[B.agentMode,oe,G]).workStripText,Ra=Ot?.workStripText??ko,Pi=de(()=>gy({status:G,isLoading:oe,agentMode:B.agentMode,parallelTextOverride:Ra}),[B.agentMode,Ra,oe,G]),$o=de(()=>PI(Dt).filter(f=>f!==qd),[Dt]),Qe=de(()=>Bf(Fe,$o,Fe.selectedItemId),[$o,Fe]),fn=de(()=>Dt.find(f=>f.id===Qe),[Dt,Qe]),yx=de(()=>({...Fe,supportsSelection:Fe.supportsSelection&&Ct,supportsCopyOnSelect:Fe.supportsCopyOnSelect&&Ct}),[Fe,Ct]),bn=de(()=>nk({state:yx,selectableItemIds:$o,selectedItemId:Qe,selectedItemType:fn?.type,isExpanded:Qe?dn.has(Qe):!1}),[dn,$o,fn?.type,Qe,yx]),xx=bn.selectionEnabled,wx=bn.copyCapabilities.copyOnSelect,fW=bn.selectedItemIndex,Sx=de(()=>LI(fn),[fn]),Kl=de(()=>EI(Dt.filter(f=>!Zh(f))),[Dt]),Mt=de(()=>MI(Kl,qt),[Kl,qt]),Vl=de(()=>ik({isHistorySearchActive:lt,historySearchQuery:qt,matches:Mt,selectedIndex:Fl,anchorItemId:Fe.searchAnchorItemId,useOverlaySurface:Fe.supportsOverlaySurface&&Fe.supportsSearchViewport&&Ct}),[Mt,qt,Fl,lt,Fe.searchAnchorItemId,Fe.supportsOverlaySurface,Fe.supportsSearchViewport,Ct]),Qr=Vl.clampedSelectedIndex,Tx=Vl.statusText,Mm=Vl.detailText,Cx=Vl.searchState,mW=bn.detailState==="expanded",zl=bn.selectionEnabled&&$o.length>0&&!br,$i=bn.copyCapabilities.message,Xl=bn.copyCapabilities.toolInput,Yl=bn.toggleDetail;Ne(()=>{if(ka){if(er.current&&(clearTimeout(er.current),er.current=null),ko===ka)return;if(ko){Ut.current&&(clearTimeout(Ut.current),Ut.current=null),kl(ka);return}Ut.current&&clearTimeout(Ut.current),Ut.current=setTimeout(()=>{kl(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(()=>{kl(void 0),er.current=null},300)},[xa,ka,ko]),Ne(()=>()=>{xa()},[xa]);let Zr=de(()=>NI({state:Fe,ownsViewport:Ct,isAwaitingUserInteraction:Yr,isHistorySearchActive:lt,isTranscriptMode:ie,historySearchQuery:qt}),[qt,Yr,lt,ie,Fe,Ct]);Ne(()=>{Zn(f=>{let w=M0(f,Hn);return w=E0(w,Ta),w=_0(w,s.enabled&&Ct?!pm||lt||Yr:ie||lt||Yr),w=$0(w,Qr),w})},[Qr,s.enabled,Hn,Yr,lt,ie,Ta,Ct,pm]),Ne(()=>{Fl!==Qr&&Gn(Qr)},[Qr,Fl]),Ne(()=>{if(!lt){bm.current=qt;return}if(qt===bm.current)return;bm.current=qt;let f=_I(Kl,Mt,Fe.searchAnchorItemId);Gn(f)},[Mt,qt,lt,Fe.searchAnchorItemId,Kl]);let bx=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,[Am,_m]=Ge(()=>sn(B.permissionMode)?l.getGuardrail().getEngine():void 0),ql=de(()=>tk({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:wu(Wo(B.provider,B.model)),isTranscriptMode:ie,streamingState:bx,maxIter:P.maxIter,contextUsage:sx,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:Am}),[n.sessionId,B.permissionMode,B.agentMode,B.provider,B.model,B.thinking,B.reasoningMode,ie,bx,P.maxIter,sx,Ea,G?.phase,G?.harnessProfile,G?.activeWorkerTitle,G?.currentRound,G?.maxRounds,G?.globalWorkBudget,G?.budgetUsage,G?.budgetApprovalRequired,G?.idleWaiting,G?.idleWaitingPendingCount,Am]),Lm=tt?"confirm":Pe?.kind,eo=de(()=>ZI({isTranscriptMode:ie,isLoading:Ea,streamingState:Ee,managedState:Ea?{phase:G?.phase,harnessProfile:G?.harnessProfile,workerTitle:G?.activeWorkerTitle}:void 0,waitingReason:Lm}),[Ee.activeToolCalls,Ee.currentTool,Ee.isCompacting,Ee.isThinking,Ee.thinkingCharCount,Ee.toolInputCharCount,Ee.toolInputContent,ie,G?.activeWorkerTitle,G?.harnessProfile,G?.phase,Lm,Ea]),Pm=eo?.text,vr=de(()=>Xv(vl,{now:Date.now(),lastAllCompletedAt:null}),[vl]),vx=xe(!1);Ne(()=>{vx.current&&!oe&&Vr(f=>f.length>0?[]:f),vx.current=oe},[oe]);let $m=de(()=>tf(ql),[ql]),Ix=de(()=>$m,[$m]),kx=Ix.text,bE=de(()=>Rv(P.pendingInputs),[P.pendingInputs]),Om=de(()=>Yv({isHistorySearchActive:lt,isTranscriptMode:ie,pendingInputCount:P.pendingInputs.length,buffering:Fe.buffering,pendingLiveUpdates:Ta}),[lt,ie,Ta,P.pendingInputs.length,Fe.buffering]),Rx=Om.leftItems,Ex=Om.rightItems,Mx=Om.summary,Jl=de(()=>ak({historySearchQuery:qt,pendingInputCount:P.pendingInputs.length}),[qt,P.pendingInputs.length]),Ql=de(()=>sk({historySearchQuery:qt,isHistorySearchActive:lt,historySearchMatchCount:Mt.length,pendingInputCount:P.pendingInputs.length,maxPendingInputs:5}),[Mt.length,qt,lt,P.pendingInputs.length]),Ax=de(()=>Ql.map(f=>f.text).join(" | "),[Ql]),Zl=de(()=>ck({inputText:fm,isTranscriptMode:ie,isHistorySearchActive:lt}),[fm,lt,ie]),_x=Fe.supportsOverlaySurface&&Fe.supportsSearchViewport&&Ct,eu=de(()=>rk({runtime:bn,itemSummary:Sx}),[Sx,bn]),Dm=de(()=>lk(Jl),[Jl]),Lx=de(()=>uk({textSelection:br,selectionState:eu,isHistorySearchActive:lt,historySearchDetailText:Mm,historySearchHasMatches:!!Tx&&Mt.length>0,showAllActive:Et,baseFooterNotices:Jl}),[br,Jl,Mm,Mt.length,Tx,lt,Et,eu]),vE=Lx.secondaryText,IE=Lx.budgetNotices,Px=ie?IE:Dm,$x=x.rows??24,Ox=ie?"":fm,Dx=ie?void 0:bE,Nx=Ra,Bx=ie?!1:tx,Nt=de(()=>v0({terminalRows:$x,terminalWidth:k,windowedTranscript:_o,inputText:Ox,footerHeaderText:Mx,activitySummary:ie?void 0:Pm,activityBarVisible:ie?!1:!!Pm||oe&&vr.shouldRender,todoSurfaceRows:ie?0:oe&&vr.shouldRender?vr.rows.length:0,pendingInputSummary:Dx,stashNoticeSummary:Zl,notificationSummary:Ax,statusNoticeSummary:Px.join(" | "),workStripText:Nx,suggestionsReserved:Ul,suggestionsMode:"inline",showHelp:Bx,statusBarText:kx,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}),[$x,k,Ox,Mx,Pm,Dx,Zl,Ax,Px,Nx,Ul,_x,Bx,kx,tt,Sa,s.enabled,Zr.browseHintText,Ct,Pe]),Nm=de(()=>{if(!Li)return{model:Po,committedSections:[]};let{committedSections:f,liveRows:w}=Xb(va.staticSections,Po.rows,Po.previewRows,Nt.messageRows);return{model:{...Po,staticSections:[],rows:w,previewRows:[]},committedSections:f}},[Li,Po,va.staticSections,Nt.messageRows]),Hx=Nm.model;Ne(()=>{let f=ys(x),w=typeof f?.commitInlineScrollback=="function",C=II({active:Li,hasCommitHandle:w,wasActive:gx.current,forceRebuild:Rm.current,prior:hx.current,finalizedSections:Nm.committedSections,bannerSection:Jr,width:k,identify:Yb}),M=!1,E=!1;if(C.kind==="commit"){let W=C.sections.flatMap(ne=>ne.rows),K=bI(W.length>0?[{key:"il-delta",rows:W}]:[],{width:k,theme:re("dark")});if(E=K.length>0,C.mode==="append"&&!K)Lk("empty-append-text");else try{f?.commitInlineScrollback?.({mode:C.mode,text:K}),M=!0}catch(ne){Lk("commit-threw",ne)}}let H=kI(C,{committed:M,hadContent:E},Rm.current);hx.current=H.state,gx.current=H.wasActive,Rm.current=H.owns},[Li,Nm.committedSections,Jr,k,x]);let kE=de(()=>le(gg,{reserveSpace:Ul,width:k,hidden:ie,mode:"inline"}),[Ul,k,ie,_x]),Ma=de(()=>BI(Nt.messageRows),[Nt.messageRows]),Fx=de(()=>HI(Ma),[Ma]),Oi=!ux&&s.transcriptSpinnerAnimation,Aa=rr?rr.rows.length+rr.previewRows.length:sE,tu=X(f=>{rr||aE(f.scrollHeight)},[rr]),_a=X(f=>KI({window:f,stickyHeader:Zr.stickyHeader,width:k,topChromeRows:0}),[k,Zr.stickyHeader]),Di=X((f=fa.current,w=Cl.current,C=hm.current?_a(hm.current):Tl.current)=>{if(!C||f.length===0){Ti.current=null;return}Tl.current=C,Ti.current=VI(f,{allRows:w,rowIndexByKey:dy(w),topOffsetRows:C.topOffsetRows,viewportHeight:C.contentWindow.viewportHeight,animateSpinners:Oi})},[_a,Oi]),La=X(()=>{let f=Tl.current;return f?.contentWindow.viewportHeight&&f.contentWindow.viewportHeight>0?f.contentWindow.viewportHeight:Nt.messageRows},[Nt.messageRows]),RE=X(f=>{hm.current=f;let w=_a(f);Tl.current=w,Di(fa.current,Cl.current,w)},[Di,_a]),nu=X(f=>{fa.current=f.rows,Cl.current=f.allRows,Di(f.rows,f.allRows)},[Di]),Kt=X(()=>{Fn.current=null,gm(void 0),ym(void 0)},[]),Bm=X(()=>{Kt(),Zn(f=>Js(f,void 0))},[Kt]);Ne(()=>{Di()},[Di]),Ne(()=>{lE(f=>FI(f,Aa,Nt.messageRows))},[Aa,Nt.messageRows]),Ne(()=>{if(!Ci)return;let f=setTimeout(()=>{Gy(void 0)},2e3);return()=>{clearTimeout(f)}},[Ci]);let Ir=X((f,w="success")=>{let C=f?.trim();C&&Gy({text:C,tone:w})},[]),Ni=X((f,w)=>{let C=w instanceof Error?w.message:String(w);return`${f}: ${C}`},[]),ru=X(async f=>{let w=f??br;if(!w)return!1;let C=w.text.trimEnd();if(!C)return!1;try{return await ti(C,{terminalWrite:A}),Ir(`Copied ${w.rowCount} selected line${w.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||UI({items:Dt,renderModel:rr,terminalWidth:k,transcriptMaxLines:Tt,viewportRows:La(),itemId:f,visibleRows:fa.current,expandedItemKeys:dn,showDetailedTools:!1}))return;let w=jI({items:Dt,renderModel:rr,terminalWidth:k,transcriptMaxLines:Tt,viewportRows:La(),itemId:f,expandedItemKeys:dn,showDetailedTools:!1});xl(w)},[Dt,k,Tt,rr,dn,La,xl,fa]),Wx=X(f=>{Zn(w=>Js(w,f)),f&&Bi(f)},[Bi]),Hm=X(f=>{f&&Bi(f)},[Bi]),Ux=X(f=>{if(!zl)return;let w=$I($o,Qe,f);w&&Wx(w)},[zl,$o,Qe,Wx]),jx=X(()=>{!Yl||!Qe||(fE(f=>{let w=new Set(f);return w.has(Qe)?w.delete(Qe):w.add(Qe),w}),Bi(Qe))},[Bi,Yl,Qe]),Gx=X(async()=>{if(!$i||!fn)return;let f=uy(fn);if(f)try{await ti(f,{terminalWrite:A}),Ir("Copied selected transcript entry to clipboard.","success")}catch(w){Ir(Ni("Failed to copy transcript entry",w),"warning")}},[Ni,$i,fn,Ir,A]),Kx=X(async()=>{if(!Xl||!fn)return;let f=OI(fn);if(f)try{await ti(f,{terminalWrite:A}),Ir("Copied selected tool args to clipboard.","success")}catch(w){Ir(Ni("Failed to copy tool args",w),"warning")}},[Ni,Xl,fn,Ir,A]),Pa=X(()=>Cl.current,[]),Vx=X((f,w)=>{if(!s.enabled||!Ct)return;let C=Ti.current;return C?my(C,f,w):void 0},[s.enabled,Ct]),Hi=X((f,w,C)=>{let M=Pa(),E=YI(M,f,w,{animateSpinners:Oi,selectFullRowOnCollapsed:C?.selectFullRowOnCollapsed});ie?ym(E):gm(E);let H=M[Math.max(0,Math.min(w.modelRowIndex,M.length-1))];return C?.updateSelectedItem&&H?.itemId&&Zn(W=>Js(W,H.itemId)),E},[ie,Pa,Oi]),zx=X((f,w)=>{if(!f)return;Fn.current=null;let C={...f,focus:w?.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 w?.copySelection!==!1&&ru(E),E},[Kt,ru,Hi]),Fm=X(()=>{if(!ie||!Dt.length||tt||Pe)return;Kt();let f=GI({items:Dt,selectedItemId:Qe,renderModel:rr,terminalWidth:k,transcriptMaxLines:Tt,viewportRows:La(),scrollOffset:Hn,expandedItemKeys:dn,showDetailedTools:!1,preferViewportAnchor:!0});Zn(w=>L0(w,{anchorItemId:f,initialMatchIndex:0})),Ai(""),Gn(0)},[tt,Dt,dn,Hn,ie,Qe,rr,k,Tt,Pe,La,Kt]),Wm=X(()=>{Zn(f=>P0(f)),Ai(""),Gn(0),Kt()},[Kt]),ou=X(()=>{!lt||Mt.length===0||Gn(-1)},[Mt.length,lt]),Xx=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]),Yx=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]),EE=de(()=>le(xg,{confirm:Xx,request:Yx}),[Xx,Yx]),Um=de(()=>{if(Ci)return le(Vv,{text:Ci.text,tone:Ci.tone})},[Ci]),jm=de(()=>{if(Um)return le(R,{flexDirection:"column",width:"100%",children:Um})},[Um]),iu=X(()=>{Zn(f=>A0(R0(f))),mm(!1),Sl(),Ai(""),Gn(0),Kt()},[Kt,Sl]),qx=X(()=>{ie&&mm(f=>!f)},[ie]),ME=X(()=>{if(ie){iu();return}mm(!1),Zn(f=>k0(f)),Ai(""),Gn(0),Kt()},[Kt,iu,ie]);Ne(()=>{xx||!Fe.selectedItemId||Zn(f=>Js(f,void 0))},[xx,Fe.selectedItemId]),Ne(()=>{if(!ie||!$i||!wx){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=uy(fn);f&&ti(f,{terminalWrite:A}).catch(()=>{})},[ie,fn,Qe,$i,wx,Io,A]),Ne(()=>{if(x?.isTTY!==!0)return;let f=ys(x);f?.setShellMode?.(ax,Wl),vm||f?.setAltScreenActive?.(!1)},[ax,x,vm,Wl]);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:Sy(B.permissionMode,l)}),vn=xe(B.permissionMode);Ne(()=>{vn.current=B.permissionMode},[B.permissionMode]);let AE=de(()=>Rs(),[]),Jx=xe(AE),Gm=xe(B);Ne(()=>{Gm.current=B},[B]);let Km=xe(null);Km.current===null&&(Km.current=yu({getProvider:i(()=>No(Gm.current.provider),"getProvider"),getModel:i(()=>Gm.current.model??"","getModel")}));let Qx=xe(ad());Ne(()=>{B.permissionMode==="auto-in-project"&&Qx.current()},[]);let Vm=X(f=>{nt(w=>({...w,permissionMode:f})),vn.current=f,Ze.current={...Ze.current,guardrails:Sy(f,l)},_m(sn(f)?l.getGuardrail().getEngine():void 0),f==="auto-in-project"&&Qx.current()},[l]),Zx=xe(P.pendingInputs),ot=xe(!1),$a=xe(0),su=X(()=>{if(ua.current)return;let f=Sm.current?.trim(),w=ge.current.length>0?ge.current[ge.current.length-1]:void 0,C=w&&"text"in w&&typeof w.text=="string"?w.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)),...CH(_(),ee(),{toolCalls:jt.current,toolNames:tr.current,infoItems:f&&f!==C?[f]:[]})];E.length!==0&&(ua.current=!0,_l(Yt.current),Si.current?.(E))},[ee,_,_l]);Ne(()=>{Zx.current=P.pendingInputs},[P.pendingInputs]);let ew=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]),au=xe(0),_E=500;yn(zt.Critical,f=>{if(!oe)return!1;switch(V0({keyName:f.name,ctrl:!!f.ctrl,isTranscriptMode:ie,isAwaitingUserInteraction:Yr,isInputEmpty:dm,pendingInputCount:P.pendingInputs.length,hasTranscriptTextSelection:!!Io,timeSinceLastEscapeMs:Date.now()-au.current,doubleEscapeIntervalMs:_E}).kind){case"interrupt":return au.current=0,su(),ew(),!0;case"pop-pending-input":return He(),au.current=0,!0;case"arm-double-escape":return au.current=Date.now(),!0;default:break}return!1},[oe,ie,Yr,dm,P.pendingInputs.length,He,su,ew]),yn(zt.Critical,f=>{let w=G0({itemsLength:Dt.length,currentResponse:Ke.currentResponse,thinkingContent:Ke.thinkingContent,activeToolCallsLength:Ke.activeToolCalls.length}),C=K0({keyName:f.name,hasTranscript:w,historyScrollOffset:Hn,reviewPageSize:Ma,reviewWheelStep:Fx,hasMouse:!!f.mouse,mouseButton:f.mouse?.button,mouseAction:f.mouse?.action,usesManagedMouseClicks:cx,supportsMouseTracking:Fe.supportsMouseTracking,usesRendererMouseTracking:Wl,usesManagedMouseWheel:lx,supportsWheelHistory:Fe.supportsWheelHistory});if(C.kind==="mouse-phase"){let E=f.mouse;if(!E)return!1;C.phase==="press"&&Fn.current&&zx(Fn.current);let H=Vx(E.row,E.column);if(C.phase==="press"){if(!H||!w)return br||Qe?(Bm(),!0):(Kt(),!1);let W=Ck({previous:jy.current,time:Date.now(),row:E.row,column:E.column});jy.current=W;let K=W.count>=3?"line":W.count===2?"word":"char";if(ou(),Zn(ne=>Js(ne,void 0)),ie?ym(void 0):gm(void 0),K!=="char"){let ne=Xf(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?JI(W,E.row):0;K!==0&&wl(K);let ne=H??(W?py(W,E.row,E.column):void 0);if(!ne)return!1;let Ce=Fn.current;if(Ce.mode!=="char"&&Ce.anchorSpan){let xt=Xf(Pa(),ne.point,Ce.mode);if(!xt)return!1;let Vt=wy(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?py(Ti.current,E.row,E.column):void 0))?.point??K;if(W.mode!=="char"&&W.anchorSpan){let xt=Xf(Pa(),Ce,W.mode);if(xt){let Vt=wy(W.anchorSpan,xt);W.anchor=Vt.anchor,Ce=Vt.focus}}return zx(W,{focusPoint:Ce}),!0}}if(C.kind==="scroll-by")return ou(),wl(C.delta),!0;if(C.kind==="consume")return!0;let M=z0({key:f,isTranscriptMode:ie,isHistorySearchActive:lt,historySearchMatchCount:Mt.length,hasTextSelection:!!br,hasFocusedItem:!!Qe,canCopySelectedItem:$i,canCopySelectedToolInput:Xl,canToggleSelectedDetail:Yl,canCycleTranscriptSelection:zl});return X0({action:M,hasTranscript:w,isTranscriptMode:ie,pageScrollDelta:Ma,disarmHistorySearchSelection:ou,scrollTranscriptBy:wl,closeHistorySearchSurface:Wm,backspaceHistorySearchQuery:i(()=>{Ai(E=>E.slice(0,-1)),Gn(0)},"backspaceHistorySearchQuery"),stepHistorySearchSelection:i(E=>{Gn(H=>ly(Mt.length,H,E))},"stepHistorySearchSelection"),submitHistorySearchSelection:i(()=>{let E=Mt[Qr];E&&(Hm(E.itemId),Wm())},"submitHistorySearchSelection"),appendHistorySearchQuery:i(E=>{Ai(H=>H+E),Gn(0)},"appendHistorySearchQuery"),openHistorySearchSurface:Fm,clearTranscriptSelectionFocus:Bm,exitTranscriptModeSurface:iu,toggleTranscriptShowAll:qx,scrollTranscriptHome:i(()=>{xl(Math.max(0,Aa-Nt.messageRows))},"scrollTranscriptHome"),scrollTranscriptToBottom:i(()=>{Sl(),Kt()},"scrollTranscriptToBottom"),cycleTranscriptSelection:Ux,copySelectedTranscriptText:i(()=>{ru()},"copySelectedTranscriptText"),copySelectedTranscriptItem:i(()=>{Gx()},"copySelectedTranscriptItem"),copySelectedTranscriptToolInput:i(()=>{Kx()},"copySelectedTranscriptToolInput"),toggleSelectedTranscriptDetail:jx,navigateSearchMatch:i(E=>{Gn(H=>{let W=ly(Mt.length,H,E),K=Mt[W];return K&&Hm(K.itemId),W})},"navigateSearchMatch"),dumpTranscriptToScrollback:i(()=>{Y0({items:Dt.filter(E=>!Zh(E)),exitAltScreen:i(()=>{A(ed({mouseTracking:!0}))},"exitAltScreen"),writeToScrollback:i(E=>{A(E)},"writeToScrollback"),enterAltScreen:i(()=>{A(Zu({mouseTracking:!0,clearOnEnter:!1}))},"enterAltScreen")})},"dumpTranscriptToScrollback")})},[ie,Dt,Ke.currentResponse,Ke.thinkingContent,Ke.activeToolCalls,Hn,Aa,Ma,Fx,Qe,Bm,iu,qx,Fe,wl,xl,Sl,zl,Qr,Kt,ru,Mt,Fm,Wm,ou,Ux,$i,Gx,Xl,Kx,Yl,jx,Hm,br,Vx,Fe.supportsMouseTracking,Io,cx,lx,Im,_o,Wl,Hi,Nt.messageRows]),yn(f=>{if(!tt)return!1;let w=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 w==="y"||w==="yes"?(E("approved"),Nl(null),Ao.current?.({confirmed:!0}),Ao.current=null,!0):M&&(w==="a"||w==="always")?(E("approved_always"),Nl(null),Ao.current?.({confirmed:!0,always:!0}),Ao.current=null,!0):w==="n"||w==="no"||f.name==="escape"?(E("denied"),Nl(null),Ao.current?.({confirmed:!1}),Ao.current=null,!0):f.insertable||f.name==="return"},{isActive:!!tt,priority:zt.Critical});let cu=X(f=>{jn(null),Bl.current?.(f),Bl.current=null},[]),Fi=X((f,w,C)=>w.length===0?Promise.resolve(void 0):new Promise(M=>{Bl.current=M,jn({kind:"select",title:f,options:w,buffer:"",focusedIndex:0,selectedIndices:[],multiSelect:C})}),[]),LE=X((f,w)=>Fi(f,w.map(C=>({label:C,value:C}))),[Fi]),tw=X(async f=>{let w=f.options?zf(f.options):[];return await Fi(hy(f),w,f.multiSelect)??rp},[Fi]);Ne(()=>{let f=!1;return(async()=>{let{bindAskUserForConstruction:w}=await import("./construction-bootstrap-AIWATBWW.js");f||w(tw)})(),()=>{f=!0,(async()=>{let{bindAskUserForConstruction:w}=await import("./construction-bootstrap-AIWATBWW.js");w(null)})()}},[tw]);let nw=X((f,w)=>new Promise(C=>{Bl.current=C,jn({kind:"input",prompt:f,defaultValue:w,buffer:""})}),[]);yn(f=>{let w=Hl.current;if(!w)return!1;if(f.name==="escape")return cu(void 0),!0;if(w.kind==="select"){let C=w.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===" "&&w.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=Hl.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(", ");cu(E)}else cu(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 w.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=Hl.current;if(!C||C.kind!=="input")return!1;let M=C.buffer.trim();return cu(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}),Ne(()=>{if(n.messages.length>0&&$.length===0){if(n.uiHistory?.length){let w=hi(n.uiHistory);w.length!==n.uiHistory.length&&(n.uiHistory=w),z(w.map(C=>({type:C.type,text:C.text,...C.icon?{icon:C.icon}:{},...C.compactText?{compactText:C.compactText}:{}})));return}let f=n.messages.flatMap(w=>xc(w).map(yc));z(f)}},[n.messages,n.uiHistory,$.length,z]),Ne(()=>{Ho(n.gitRoot)},[n.gitRoot]),Ne(()=>{process.env.KODAX_PREWARM_REPO_INTELLIGENCE!=="0"&&Aw({executionCwd:n.gitRoot??process.cwd(),gitRoot:n.gitRoot??void 0},{mode:B.repoIntelligenceMode})},[n.gitRoot,B.repoIntelligenceMode]);let Oa=X(()=>({onThinkingDelta:i(f=>{if(ot.current)return;P.currentTool&&(ue(void 0),De());let{header:w}=c0(_()+f),C=w?`[Thinking: ${w}]`:"[Thinking]";ht(Mf(ct.current?.activeWorkerTitle?`[${ct.current.activeWorkerTitle}] ${C}`:C,ct.current?.activeWorkerTitle)),Q(f.length),J(f),st.current.workerId&&Pl("thinking",f)},"onThinkingDelta"),onThinkingEnd:i(f=>{if(ot.current)return;let w=_(),C=i0(w,f);C&&C!==w&&(Ie(),ae(),Q(C.length),J(C)),st.current.workerId&&Qy(C),q()},"onThinkingEnd"),onTextDelta:i(f=>{ot.current||(P.currentTool&&(ue(void 0),De()),q(),ht(void 0),Pt(f),st.current.workerId&&Pl("assistant",f))},"onTextDelta"),onToolUseStart:i(f=>{if(ot.current)return;tr.current.includes(f.name)||(tr.current=[...tr.current,f.name]);let w=ct.current?.activeWorkerTitle?`[${ct.current.activeWorkerTitle}] `:"",C={id:f.id,name:`${w}${f.name}`,status:N.Executing,startTime:Date.now(),input:f.input};Zy(C),st.current.workerId&&Un(C),ht(Fr(C,ct.current?.activeWorkerTitle))},"onToolUseStart"),onToolInputDelta:i((f,w,C)=>{if(ot.current)return;et(w.length),Ue(w);let M=ex(C?.toolId,f,E=>{let H=E.preview??"",W=n0(`${H}${w}`);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 w=typeof f.content=="string"?f.content:String(f.content??""),C=r0(w);if(/^\[(?:Tool Error|Error)\]/.test(w)){let E=Ol(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(w)){let E=Ol(f.id,N.Cancelled,void 0,C,f.name);E&&(st.current.workerId&&Un(E),ht(Fr(E,ct.current?.activeWorkerTitle)));return}let M=Ol(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 w=f.message.length>100?f.message.slice(0,97)+"...":f.message,C=Mi(f.id,M=>({...M,preview:w,progressLines:[...(M.progressLines??[]).slice(-4),w]}));C&&st.current.workerId&&Un(C),ht(w)},"onToolProgress"),onStreamEnd:i(()=>{if(ot.current)return;let f=ga(N.Cancelled,()=>({error:"Stream ended before the tool completed.",output:void 0})),w=f[f.length-1];st.current.workerId&&f.forEach(C=>Un(C)),w&&ht(Fr(w,ct.current?.activeWorkerTitle)),q(),De(),ue(void 0)},"onStreamEnd"),hasPendingInputs:i(()=>Zx.current.length>0,"hasPendingInputs"),onMidTurnUserMessages:i(f=>{if(!ot.current)for(let w of f){let C=w.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 w=zr();w?.name&&ht(Fr(w,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=dw(f),H=["Transient","Permanent","Tool Call ID","User Abort"];if(E.category===Fa.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===Fa.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===Fa.TRANSIENT?K.push(" \u23F3 Retries exhausted. Press Enter to continue the conversation"):E.category===Fa.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,w,C)=>{if(ot.current)return;if(!!st.current.workerId){let E=vf(f,w,C);Cn({...E,id:`retry-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()})}else Eg(v,f,w,C)},"onRetry"),onProviderRecovery:i(f=>{if(ot.current)return;let w=!!st.current.workerId,C=ee().trim();if(C&&(w?Pl("assistant",C):v({type:"assistant",text:C})),me(),Ie(),q(),De(),ue(void 0),Xr(),ht(void 0),w){let M=If(f);Cn({...M,id:`recovery-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()})}else Mg(v,f)},"onProviderRecovery"),onManagedTaskStatus:i(f=>{if(ot.current)return;let w=st.current;if(kk(f)){if(w.workerId&&w.workerId!==f.activeWorkerId)xE({workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle});else if(w.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,wm(f);let C=a0(f);wE(C);let M=Xs(f),H=Xs(f,{expanded:!0})??M;H&&(Sm.current=H)},"onManagedTaskStatus"),onProviderRateLimit:i((f,w,C)=>{ot.current||Mo({type:"info",icon:"\u23F3",text:`[Rate Limit] Retrying in ${C/1e3}s (${f}/${w})...`},"ratelimit")},"onProviderRateLimit"),onRetryAfter:i(f=>{if(ot.current)return;let w=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 ${w}s [${C}] (${f.attempt}/${f.maxAttempts})`},"ratelimit")},"onRetryAfter"),onRepoIntelligenceTrace:i(f=>{ot.current||Mo(S0(f),"repointel-trace")},"onRepoIntelligenceTrace"),onTodoUpdate:i(f=>{ot.current||Vr(f)},"onTodoUpdate"),onScoutSuspiciousCompletion:i(f=>{ot.current||Mk&&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,w)=>{if(ot.current)return;if(w&&at(w),ct.current?.globalWorkBudget){let Ce={...ct.current,budgetUsage:Math.min(ct.current.globalWorkBudget,(ct.current.budgetUsage??0)+1)};ct.current=Ce,wm(Ce)}let C=f>1?_().trim():"",M=f>1?Cy(ee()):"",E=f>1?[...tr.current]:[],H=f>1?[...jt.current]:[],W=!!st.current.workerId;O(f),W&&Al({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(Mf(ct.current?.activeWorkerTitle?`[Thinking] [${ct.current.activeWorkerTitle}]`:void 0,ct.current?.activeWorkerTitle)),ae(),f>1&&!W){let Ce=by({thinking:C,response:M,toolCalls:H,toolNames:E});Si.current?Si.current(Ce):z([...Ce])}},"onIterationStart"),beforeToolExecute:i(async(f,w)=>{let C=vn.current,M=Jo(C),E=Jx.current,H=n.gitRoot;if(Vw(D.current,f,w))return`[Skipped] Previously denied operation. ${zw(D.current)}`;if(C==="plan"&&(Pn.has(f)||f==="undo"))return`[Blocked] Tool '${f}' is not allowed in plan mode (read-only). ${vk}`;if(C==="plan"&&f==="bash"){let W=w.command??"";if(Xn(W))return`[Blocked] Bash write operation not allowed in plan mode: ${W.slice(0,50)}... ${vk}`}if(f==="bash"){let W=w.command??"";if(zn(W))return!0}if(sn(C)&&Am==="llm")return!0;if(f==="bash"){let W=w.command??"",K=Gw(W);if(K.level==="dangerous"){let ne=await Oo(f,{...w,_dangerousCommand:!0});return ne.confirmed?ne.confirmed:(D.current=sp(D.current,f,w,K.reason),`[Blocked] Dangerous command requires confirmation: ${K.reason}`)}}if(H){let W=!1;if(Pn.has(f)){let K=w.path;K&&ur(K,H)&&(W=!0)}if(f==="bash"){let K=w.command;K&&fh(K,H)&&(W=!0)}if(W){let K=await Oo(f,{...w,_alwaysConfirm:!0});if(vn.current==="plan"&&(Pn.has(f)||f==="undo"))return!1;if(vn.current==="plan"&&f==="bash"){let ne=w.command??"";if(Xn(ne))return!1}return K.confirmed}}if(M.has(f)){if(C==="accept-edits"&&f==="bash"&&await co(f,w,E,Km.current??void 0))return!0;let W=await Oo(f,w);if(vn.current==="plan"&&(Pn.has(f)||f==="undo"))return!1;if(vn.current==="plan"&&f==="bash"){let K=w.command??"";if(Xn(K))return!1}if(!W.confirmed)return v({type:"info",text:Z("cancelled")}),D.current=sp(D.current,f,w),!1;W.always&&C==="accept-edits"&&(xd(f,w,!1),Jx.current=Rs())}return!0},"beforeToolExecute"),askUser:i(async f=>{let w=f.options?zf(f.options):[],C=await Fi(hy(f),w,f.multiSelect);return C===void 0?rp:C},"askUser"),exitPlanMode:i(async f=>vn.current!=="plan"?"not-in-plan-mode":(await Oo("exit_plan_mode",{plan:f})).confirmed?(Vm("accept-edits"),!0):!1,"exitPlanMode"),askUserMulti:i(async f=>{let w=f.questions,C={},M="__back__",E=0;for(;E<w.length;){let H=w[E],W=zf(H.options);E>0&&W.push({label:Z("select.back_prev"),value:M});let K=`[${E+1}/${w.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=>nw(f.question,f.default),"askUserInput"),onCompactStart:i(()=>{te()},"onCompactStart"),onCompactStats:i(f=>{la.current=f.tokensBefore,Qn(f.tokensAfter)},"onCompactStats"),onCompactedMessages:i((f,w)=>{n.messages=f,w?.artifactLedger&&w.artifactLedger.length>0&&(n.artifactLedger=Wa(n.artifactLedger??[],w.artifactLedger)),n.lineage=w?.anchor?bw(n.lineage,f,w.anchor,w.postCompactAttachments??[]):En(f,n.lineage);let C=Bo(f);n.contextTokenSnapshot={currentTokens:C,baselineEstimatedTokens:C,source:"estimate"},hr(n),Qn(C),pl.current?.().catch(()=>{})},"onCompactedMessages"),onCompact:i(f=>{Le();let w=la.current??f;la.current=null;let C=Math.round(w/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,Al,ht,Pl,Qy,Un,Zy,ex,Ol,ga,zr,Xr,Tn,P.currentTool]),Oo=i((f,w)=>{let C=t0(f,w);return Cr(),new Promise(M=>{Ao.current=M,Nl({tool:f,input:w,prompt:C})})},"showConfirmDialog");Ne(()=>(u(async(f,w,C)=>(await Oo(f.name,{...f.input,_reason:`[auto-mode] ${w}`,...C&&C.length>0?{_classifierSignals:C}:{}})).confirmed?"allow":"block"),m(f=>{_m(f)}),()=>{u(null),m(null)}),[]),Ne(()=>{p(B)},[B,p]),Ne(()=>{let f=i(()=>Oa(),"resolve");return tp({askUser:i(w=>{let C=f().askUser;if(!C)throw new Error("askUser surface unavailable");return C(w)},"askUser"),askUserMulti:i(async w=>{let C=f().askUserMulti;return C?C(w):void 0},"askUserMulti"),askUserInput:i(async w=>{let C=f().askUserInput;return C?C(w):void 0},"askUserInput")}),()=>tp(void 0)},[Oa]);let Da=i(async(f,w,C=n.lineage?At(n.lineage,n.lineage.activeEntryId):n.messages,M)=>{let E={...Oa(),getCostReport:F},W=Rr(n.gitRoot).getSystemPromptSnippet(),K=T0(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 ja({...f,session:{...f.session,initialMessages:C},context:K,events:E,abortSignal:Rt()},w)}finally{Pw()}},"runAgentRound"),kr=X(f=>{let w=En([...f],n.lineage);return n.lineage=w,w},[n]),Na=X(async f=>{if(n.messages.length===0)return;let w=ks(n.messages),C=hi(f??L.current);L.current=C,n.title=w,n.uiHistory=C;let M=n.lineage??kr(n.messages);n.lineage=M;let E={messages:n.messages,title:w,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),$f()&&Of("persist",Df(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(hl.current)return hl.current;let f=(async()=>{try{for(;vo.current.requested;){vo.current.requested=!1;let w=vo.current.uiHistoryOverride;vo.current.uiHistoryOverride=void 0,await Na(w)}}finally{hl.current=null,vo.current.requested&&zm()}})();return hl.current=f,Uy.current=f,f},[Na]),Wi=X(f=>{if(f!==void 0){let w=hi(f);L.current=w,vo.current.uiHistoryOverride=w}return vo.current.requested=!0,zm()},[zm]),PE=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 Uy.current.catch(()=>{}),await pl.current?.().catch(()=>{}),Kr(!1),I&&S?.isRaw&&T(!1),S?.pause?.(),S?.unref?.(),y(),a()})();return da.current=f.finally(()=>{da.current=null}),da.current},[V,me,Ie,De,y,I,a,ue,ze,T,S,Y,q]);Ne(()=>(pl.current=Wi,()=>{pl.current=null}),[Wi]);let rw=X(f=>{if(f.length===0)return;let w=Yf(L.current,f);L.current=w,Wi(w)},[Wi]),Ba=X(f=>{f.length!==0&&(z([...f]),rw(f))},[z,rw]),lu=X(f=>{f.length!==0&&(z([...f]),L.current=Yf(L.current,f))},[z]);Ne(()=>(Si.current=Ba,()=>{Si.current=null}),[Ba]);let ow=X(async f=>{n.messages=f.messages,n.contextTokenSnapshot=f.contextTokenSnapshot,kr(f.messages);let w=f.success===!1&&!f.interrupted,C=_().trim(),M=RC(f.messages,ee(),f.managedTask?.verdict.summary,f.lastText),E=[...Yt.current],H=E.length>0;_l(E);let W=H&&E.some(pe=>pe.type==="assistant"&&"text"in pe&&uo(String(pe.text??"")).length>0),K=!w&&M&&!W,ne=[...vi.current],Ce=w?[]:ne.length===0?Mk?Dg(f):Dg(f).filter(pe=>!Og(pe)):[],xt=H?[]:by({thinking:C,response:void 0,toolCalls:jt.current,toolNames:tr.current}),Vt=[...E.map(pe=>To(pe)),...xt,...w?[]:ne.map(pe=>To(pe)),...Ce.map(pe=>Ik(pe)),...K?[{type:"assistant",text:f.interrupted?`${M}
|
|
428
428
|
|
|
429
|
-
[Interrupted]`:M}]:!M&&!W&&!f.interrupted&&!
|
|
429
|
+
[Interrupted]`:M}]:!M&&!W&&!f.interrupted&&!w?[{type:"info",text:"[No response text was produced for this round]"}]:[]],Ha=Yf(L.current,Vt);Ie(),me();let We=[...E.map(pe=>To(pe)),...xt,...w?[]:[...Ce.map(pe=>Ik(pe)),...ne.map(pe=>To(pe))],...K?[{type:"assistant",text:f.interrupted?`${M}
|
|
430
430
|
|
|
431
|
-
[Interrupted]`:M}]:!M&&!W&&!f.interrupted&&!
|
|
431
|
+
[Interrupted]`:M}]:!M&&!W&&!f.interrupted&&!w?[{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(Ha).catch(()=>{})},[z,j,De,me,Ie,n,ee,_,Wi,kr,Xr,ha,ue,ht,P.currentIteration]),uu=X(async f=>{let w=f.trim();w&&(v({type:"user",text:w}),ml(C=>C+1),hr(n))},[v,n]),du=X(async(f,w)=>{let C=$a.current;ot.current=!1,ua.current=!1,ca(!0);try{return await U0({initialPrompt:f,runRound:w,shiftPendingPrompt:$t,onRoundComplete:i(async M=>{$a.current===C&&await ow(M)},"onRoundComplete"),onBeforeQueuedRound:i(async M=>{ot.current=!1,ua.current=!1,await uu(M)},"onBeforeQueuedRound"),shouldContinue:i(M=>!ot.current&&M.success!==!1,"shouldContinue")})}finally{ca(!1)}},[ow,$t,uu]),Xm=X(async()=>{let f=$t();if(!f||!f.trim())return;let w=f.trim();await uu(w),await du(w,async C=>Da(Ze.current,C))},[Da,du,$t,uu]),Ym=X(f=>{let w=f[f.length-1];if(w?.role!=="assistant")return;let C=xc(w);z(C.map(yc))},[z]),iw=X(async(f,w)=>{let C=await Lf({...Ze.current,provider:B.provider,thinking:B.thinking,reasoningMode:B.reasoningMode},f,w,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 Da(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 xc(Ce)){let Vt=yc(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 xc(ne))K.push(yc(Ce))}await Na(Yf(W,K)),$f()&&Of("round-end",Df(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,Na,kr,Da]),$E=X(async f=>{for(let w of f.pastedContents)if(w.type==="text"&&!w.content&&w.contentHash)try{let C=await Rd(w.contentHash);C&&(w.content=C)}catch{}},[]),OE=X(async f=>{let{displayText:w,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=VC(We.content);zC(pe,We.content)}if(nx(!1),oe){if(!um)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(W0(C)){Mo({type:"info",icon:"\u26A0",text:H0},F0);return}let We=P.currentTool;if(We&&gu(We)?.interruptBehavior==="cancel"){ke(C),V({preservePendingInputs:!0}),yl(""),gl(!0),ml(mn=>mn+1),hr(n);return}ke(C),yl(""),gl(!0),ml(pe=>pe+1),hr(n);return}let E=Cy(ee()),H=Yt.current.map(We=>To(We)),W=H.length>0;H.length>0&&(_l(Yt.current),lu(H)),!W&&E&&lu([{type:"assistant",text:E+`
|
|
432
432
|
|
|
433
|
-
[Interrupted]`}]),
|
|
433
|
+
[Interrupted]`}]),lu([{type:"user",text:w}]),yl(""),gl(!0),ml(We=>We+1),$f()&&Of("turn-start",Df(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,wm(null),ct.current=null,Sm.current=null,ht(void 0),ha(),Ro.current=[],vi.current=[],ma([]),xa(),kl(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:PE,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=Kc(),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([]),kd()?.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",qf)?(n.messages=he.messages,n.uiHistory=na(he.uiHistory),n.lineage=he.lineage,n.artifactLedger=he.artifactLedger,n.title=he.title,n.sessionId=U,n.contextTokenSnapshot=void 0,L.current=n.uiHistory??[],Qn(null),fe(),Vr([]),se(U),g?.writer.update({sessionId:U}),console.log(Ye.green(`[Session loaded: ${U}]`)),"loaded"):"blocked":"missing"},"loadSession"),listSessions:i(async()=>{let U=await r.list(n.gitRoot??void 0);if(U.length===0){console.log(Ye.dim(`
|
|
434
434
|
[No saved sessions]`));return}console.log(Ye.bold(`
|
|
435
435
|
Recent Sessions:
|
|
436
436
|
`));for(let he of U.slice(0,10))console.log(` ${Ye.cyan(he.id)} ${Ye.dim(`(${he.msgCount} messages)`)} ${he.title.slice(0,40)}`);console.log()},"listSessions"),clearHistory:i(()=>{n.uiHistory=[],fe(),Vr([])},"clearHistory"),printHistory:i(()=>{if(n.messages.length===0){console.log(Ye.dim(`
|
|
437
437
|
[No conversation history]`));return}console.log(Ye.bold(`
|
|
438
438
|
Conversation History:
|
|
439
|
-
`));let U=n.messages.slice(-20);for(let he=0;he<U.length;he++){let Me=U[he],Ui=Ye.cyan(Me.role.padEnd(10)),
|
|
440
|
-
[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)),cw=wc(Me.content),FE=cw.slice(0,60).replace(/\n/g," "),WE=cw.length>60?"...":"";console.log(` ${(he+1).toString().padStart(2)}. ${Ui} ${FE}${WE}`)}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=>{Vm(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=Rf(pu(U));console.log(Ye.bold(`
|
|
441
441
|
Session Tree:
|
|
442
|
-
`)),he.forEach(Me=>console.log(` ${Me}`)),console.log()},"printSessionTree"),switchSessionBranch:i(async U=>{if(!di(B,"Switching session branches",
|
|
442
|
+
`)),he.forEach(Me=>console.log(` ${Me}`)),console.log()},"printSessionTree"),switchSessionBranch:i(async U=>{if(!di(B,"Switching session branches",qf))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
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",
|
|
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",
|
|
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),
|
|
447
|
-
`)}),In){ze(!1),Y(),ze(!0),_e(),ae();try{await
|
|
444
|
+
[${Ui}]`)),!0},"labelSessionBranch"),forkSession:i(async U=>{if(!di(B,"Forking a session branch",qf))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",qf))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),_m(U))},"setAutoModeEngine"),createKodaXOptions:i(()=>({...Ze.current,provider:B.provider,model:B.model,thinking:B.thinking,reasoningMode:B.reasoningMode,agentMode:B.agentMode,guardrails:Sy(vn.current,l),events:Oa()}),"createKodaXOptions"),reloadAgentsFiles:i(async()=>{let U=await op({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)=>LE(U,he),"select"),confirm:i(async U=>(await Oo("confirm",{_alwaysConfirm:!0,_message:U})).confirmed,"confirm"),input:i(async(U,he)=>nw(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 iw(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?su():Ba([{type:"error",text:he.message}])}finally{ze(!1),Y(),Ie()}return}ze(!1),Y();return}let ne=await Rg(C.trim());if(C.trim().startsWith("!")&&zc(ne)){ze(!1),Y();return}let Ce=Ze.current.context?.executionCwd??process.cwd(),xt=i(We=>{We.length!==0&&Ba(We.map(pe=>({type:"info",text:pe})))},"emitArtifactWarnings");ae();let Vt=[],Ha=console.log;console.log=(...We)=>{let pe=We.map(mn=>typeof mn=="string"?mn:String(mn)).join(" ");Vt.push(pe)};try{await du(ne,async We=>{let pe=Xc(We,Ze.current.context?.executionCwd??process.cwd());return xt(pe.warnings),Da(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=Ha,su();else{let In=pe.message;pe.message.includes("rate limit")||pe.message.includes("Rate limit")?In=`[Rate Limit] ${pe.message}
|
|
448
448
|
Suggestion: Wait a moment and try again, or switch provider with /mode`:pe.message.includes("API key")||pe.message.includes("not configured")?In=`[Configuration Error] ${pe.message}
|
|
449
449
|
Suggestion: Set the required API key environment variable`:pe.message.includes("network")||pe.message.includes("ECONNREFUSED")||pe.message.includes("ETIMEDOUT")?In=`[Network Error] ${pe.message}
|
|
450
450
|
Suggestion: Check your internet connection`:(pe.message.includes("token")||pe.message.includes("context too long"))&&(In=`[Context Error] ${pe.message}
|
|
451
|
-
Suggestion: Use /clear to start fresh`),console.log=
|
|
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,
|
|
451
|
+
Suggestion: Use /clear to start fresh`),console.log=Ha,st.current.workerId?Cn({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:In,timestamp:Date.now()}):Ba([{type:"error",text:In}])}}finally{if(console.log=Ha,Vt.length>0){let pe=Vt.filter((mn,In,U)=>U.indexOf(mn)===In);v({type:"info",text:pe.join(`
|
|
452
|
+
`)})}if(!ot.current){let pe=ga(N.Cancelled,()=>({error:"Run ended before the tool result was observed.",output:void 0}));pe.length>0&&st.current.workerId&&pe.forEach(mn=>Un(mn))}ze(!1),Y(),me(),Ie();let We=Bo(n.messages);n.contextTokenSnapshot={currentTokens:We,baselineEstimatedTokens:We,source:"estimate"},Qn(We)}},[wi,n,B,um,P.pendingInputs.length,r,tt,Pe,y,a,v,fe,_e,Y,me,Oa,iw,Rt,ee,_,lu,Ym,Na,kr,du,Xm,te,Le,Xr,ga,Un,xa]),DE=le(df,{left:le(lf,{items:Rx}),right:le(uf,{items:Ex}),queued:le(Sg,{pendingInputs:P.pendingInputs}),stashNotice:le(xf,{text:Zl}),notifications:le(yf,{notifications:Ql}),inlineNotices:Dm.length>0?le(Tg,{notices:Dm}):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(bb,{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(zv,{viewModel:vr})}):void 0,composer:le(ug,{onSubmit:OE,onHistoryRecall:$E,onPopPendingInputs:i(()=>{let f=ce();if(f.length!==0)return f.join(`
|
|
453
453
|
---
|
|
454
|
-
`)},"onPopPendingInputs"),prompt:">",placeholder:
|
|
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(
|
|
456
|
-
`),ra=!0),t=
|
|
457
|
-
`),ra=!0,r=!1),t=
|
|
458
|
-
[Assistant]`)),t=
|
|
454
|
+
`)},"onPopPendingInputs"),prompt:">",placeholder:QI({isLoading:oe,canQueueFollowUps:um,waitingReason:Lm}),focus:!tt&&!Pe&&!lt,cwd:process.cwd(),gitRoot:e.context?.gitRoot||n.gitRoot,onInputChange:TE}),inlineSuggestions:kE,helpSurface:tx?le(fg,{sections:Nf()}):void 0,taskBar:Ra?le(wf,{items:Pi.backgroundTask.items,overflowLabel:Pi.backgroundTask.overflowLabel,ctaHint:Pi.backgroundTask.ctaHint,showSpinner:oe}):void 0,statusLine:le(R,{children:le(Fs,{...ql,viewModel:Ix})}),inlineDialogs:EE}),NE=le(df,{left:le(lf,{items:Rx}),right:le(uf,{items:Ex}),stashNotice:le(xf,{text:Zl}),notifications:le(yf,{notifications:Ql}),composer:le(jv,{searchActive:lt,selectionActive:!!(br||Qe),showAllActive:Et,searchQuery:qt,searchCurrent:Mt.length>0?Qr+1:0,searchCount:Mt.length,searchDetailText:Mm,pendingLiveUpdates:Ta,secondaryText:vE}),taskBar:Ra?le(wf,{items:Pi.backgroundTask.items,overflowLabel:Pi.backgroundTask.overflowLabel,ctaHint:Pi.backgroundTask.ctaHint,showSpinner:ut}):void 0,statusLine:le(R,{children:le(Fs,{...ql,viewModel:$m})})}),qm=X(f=>le(Gv,{banner:f?.bannerVisible?le(Ty,{...Lo}):void 0,items:ba,isLoading:Jt,viewportRows:Nt.messageRows,viewportWidth:k,scrollOffset:Hn,windowed:!!f?.rendererWindow,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Ia:Hx,maxLines:Tt,selectedTextRanges:Im?bl?.rowRanges:void 0,onMetricsChange:tu,onVisibleRowsChange:nu}),[Lo,ba,Jt,tu,nu,Hn,Hx,k,Tt,bl?.rowRanges,Nt.messageRows,Im]),Jm=X(f=>le(Kv,{banner:f?.bannerVisible?le(Ty,{...Lo}):void 0,items:Ca,browse:{hintText:Zr.browseHintText},selection:eu,search:Cx,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:Gl,maxLines:Tt,showDetailedTools:Et,showAllContent:Et,selectedItemId:bn.selectionEnabled?Qe:void 0,selectedTextRanges:Io?.rowRanges,expandedItemKeys:bn.selectionEnabled?dn:void 0,onMetricsChange:tu,onVisibleRowsChange:nu}),[Lo,B.agentMode,ut,dn,s.transcriptSpinnerAnimation,tu,nu,Hn,ux,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,Ia,Gl,Zr.browseHintText,Qe,eu,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,Cx,Et,Nt.messageRows]),BE=ie?Jm({bannerVisible:!1,windowed:Ct}):qm({bannerVisible:!1}),sw=ie?NE:DE,HE=s.enabled&&_o,aw=Zt(R,{flexDirection:"column",width:k,flexShrink:0,flexGrow:HE?1:0,children:[le(Wg,{currentConfig:B,setCurrentConfig:nt,isLoading:oe,abort:V,stopThinking:q,clearThinkingContent:Ie,setCurrentTool:ue,setIsLoading:ze,onToggleHelp:SE,setShowHelp:nx,onSetThinking:i(f=>{Ze.current.thinking=f},"onSetThinking"),onSetReasoningMode:i(f=>{Ze.current.reasoningMode=f,Ze.current.thinking=f!=="off"},"onSetReasoningMode"),onToggleTranscriptMode:ME,onOpenTranscriptSearch:Fm,canOpenTranscriptSearch:ie&&!tt&&!Pe,isInteractiveDialogActive:!!(tt||Pe),onSetAgentMode:i(f=>{Ze.current.agentMode=f},"onSetAgentMode"),onSetPermissionMode:i(f=>{Vm(f)},"onSetPermissionMode"),isInputEmpty:dm,onSavePermissionMode:Cc}),lm&&(s.enabled?null:le(ws,{items:[1],children:i(()=>le(Ty,{...Lo},"banner"),"children")})),_o?le(sg,{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:jm,scrollTop:Hn,scrollHeight:Aa,viewportHeight:Nt.messageRows,stickyScroll:!ie&&!Yr&&pm,overscanRows:bH,scrollRef:cE,onWindowChange:RE,onScrollTopChange:uE,onStickyChange:dE,footer:sw}):Zt(wH,{children:[Zt(R,{flexDirection:"column",flexGrow:1,children:[BE,jm?le(R,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:jm}):null]}),sw]})]});return vm?le(zp,{mouseTracking:qr.usesRendererMouseTracking,children:aw}):aw},"InkREPLInner"),EH=i(e=>{let t=process.cwd(),n=e.options?.context?.gitRoot??void 0;return le(pf,{children:le(Sf,{children:le(sd,{children:le(Hg,{children:le(Bh,{cwd:t,gitRoot:n,children:le(RH,{...e})})})})})})},"InkREPL");function MH(){return process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function"}i(MH,"isRawModeSupported");async function vy(e){if(!MH())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-OG57XTPC.js"),{loadCompactionConfig:c}=await import("./compaction-config-YWCHOP2U.js"),{resolveProvider:l}=await import("./dist-4WABQRJU.js"),u=s(),m=e.provider??u.provider??fu,p=e.model??u.model,h=SH(e,u),g=e.agentMode??u.agentMode??"ama",y=h!=="off",x=lr(u.permissionMode,"accept-edits")??"accept-edits",S=hu(),T=u.repoIntelligenceTrace===!0,I={provider:m,model:p,thinking:y,reasoningMode:h,agentMode:g,permissionMode:x,repoIntelligenceMode:S.mode,repointelEndpoint:S.endpoint,repointelBin:S.bin,repoIntelligenceTrace:T},A=e.session?.id,$=[],F,D,v,z="",fe=await a().catch(()=>null)??void 0,se=mu({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-AIWATBWW.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 Gc({sessionId:A,gitRoot:fe,existingMessages:$,existingUiHistory:F,existingLineage:D,existingArtifactLedger:v});L.title=z,se?.writer.update({sessionId:L.sessionId});let P={current:await op({cwd:process.cwd(),projectRoot:fe??void 0})},Re={current:null},_e={current:null},Y={current:I},V=yd(),ae=await Vc({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:[pc]});try{let Q=process.stdout,J=process.stdin;import("./paste-5DSTHQGK.js").then(Ue=>Ue.prunePasteTmpDir()).catch(()=>{});let q=!1,{waitUntilExit:Ie,cleanup:ue}=Ju(le(EH,{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(vy,"runInkInteractiveMode");import Sn from"chalk";var $k=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],Ok=["\x1B[36m","\x1B[35m","\x1B[34m"],el=null,ra=!1;function Zc(){let e=0,t=0,n=!1,r="Thinking...",o=i(()=>{if(n)return;let c=Ok[t%Ok.length],l="\x1B[0m",u=$k[e%$k.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 el=a,a}i(Zc,"startWaitingDots");function AH(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=Zc()),t.updateText(`Thinking... (${n} chars)`)},"onThinkingDelta"),onThinkingEnd:i(s=>{if(t&&(t.stop(),t=null),s){let a=s.replace(/\n/g," "),c=a.length>100?a.slice(0,100)+"...":a;console.log(Sn.dim(`[Thinking] ${c}`))}},"onThinkingEnd"),onToolUseStart:i(s=>{t||(ra||(process.stdout.write(`
|
|
456
|
+
`),ra=!0),t=Zc()),t.updateText(`Executing ${s.name}...`)},"onToolUseStart"),onToolInputDelta:i((s,a,c)=>{let l=a.length;t&&!t.isStopped()?t.updateText(`Receiving ${s}... (${l} chars)`):(!t||t.isStopped())&&(ra||(process.stdout.write(`
|
|
457
|
+
`),ra=!0,r=!1),t=Zc(),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(()=>{el&&!el.isStopped()&&el.stop(),el=null,ra=!1,r&&(console.log(),r=!1),(!t||t.isStopped())&&(t=Zc(),t.updateText("Processing..."))},"onStreamEnd"),onIterationStart:i((s,a)=>{t&&!t.isStopped()&&t.stop(),ra=!1,r=!1,console.log(Sn.magenta(`
|
|
458
|
+
[Assistant]`)),t=Zc()},"onIterationStart"),onCompactStart:i(()=>{console.log(Sn.dim(`
|
|
459
459
|
[KodaX] Compacting context...`))},"onCompactStart"),onCompact:i(s=>{console.log(Sn.dim(`[KodaX] Compaction finished (${s} tokens).`))},"onCompact"),onCompactEnd:i(()=>{},"onCompactEnd"),onRetry:i((s,a,c)=>{console.log(Sn.yellow(`[KodaX] Retry ${a}/${c}: ${s}`))},"onRetry"),onProviderRecovery:i(s=>{let a=s.recoveryAction==="non_streaming_fallback"?"switching to non-streaming fallback":s.recoveryAction==="manual_continue"?"awaiting manual continue":`recovering ${s.attempt}/${s.maxAttempts}`;console.log(Sn.yellow(`[KodaX] ${a} (${s.errorClass}, ${s.stage})`))},"onProviderRecovery"),onComplete:i(()=>{t&&(t.stop(),t=null),console.log(Sn.green(`
|
|
460
460
|
[KodaX] Done!`))},"onComplete"),onError:i(s=>{t&&(t.stop(),t=null),console.log(Sn.red(`
|
|
461
461
|
[Error] ${s.message}`))},"onError"),onScoutSuspiciousCompletion:i(s=>{console.log(Sn.yellow(`
|
|
462
|
-
[Scout] Completion marked uncertain \u2014 signals: ${s.signals.join(", ")}. Verify the result before continuing.`))},"onScoutSuspiciousCompletion"),beforeToolExecute:i(async(s,a)=>!0,"beforeToolExecute")}}i(
|
|
463
|
-
`)}i(mt,"writeJsonLine");function
|
|
462
|
+
[Scout] Completion marked uncertain \u2014 signals: ${s.signals.join(", ")}. Verify the result before continuing.`))},"onScoutSuspiciousCompletion"),beforeToolExecute:i(async(s,a)=>!0,"beforeToolExecute")}}i(AH,"createCliEvents");function mt(e,t){e.write(`${JSON.stringify(t)}
|
|
463
|
+
`)}i(mt,"writeJsonLine");function _H(e){return{type:"error",name:e.name,message:e.message,stack:e.stack}}i(_H,"serializeError");function LH(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,_H(r))},"onError")}}i(LH,"createJsonEvents");import{jsx as pt,jsxs as cn}from"react/jsx-runtime";import NH,{useMemo as tl}from"react";var Iy=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@.*$/,Dk=/^---\s+(.+)$/;function Nk(e){if(!e)return[];let t=e.split(`
|
|
464
464
|
`),n=[],r=[],o=[],s=!1,a=null,c=null,l=0,u=0,m=i(()=>{if(r.length===0)return;let h=r.join(`
|
|
465
465
|
`);h.length>0&&n.push({kind:"text",text:h}),r=[]},"flushText"),p=i(()=>{o.length!==0&&(n.push({kind:"diff",text:o.join(`
|
|
466
|
-
`),addedLines:l,removedLines:u,filePath:c}),o=[],l=0,u=0,c=null)},"flushDiff");for(let h=0;h<t.length;h++){let g=t[h];if(!s){let
|
|
467
|
-
`),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 S=Dk.exec(g);if(S){let T=Math.min(h+3,t.length-1),I=!1;for(let A=h+1;A<=T;A++)if(t[A]?.startsWith("+++ ")||Iy.test(t[A]??"")){I=!0;break}if(I){m(),s=!0,a=S[1]??null,c=a,o.push(g);continue}}if(Iy.test(g)){m(),s=!0,o.push(g);continue}r.push(g);continue}let y=Dk.exec(g);if(y){let S=Math.min(h+3,t.length-1),T=!1;for(let I=h+1;I<=S;I++)if(t[I]?.startsWith("+++ ")||Iy.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(Nk,"parseUnifiedDiff");function Bk(e){return e?/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/m.test(e):!1}i(Bk,"containsUnifiedDiff");import{jsxs as oa,jsx as PH}from"react/jsx-runtime";import $H from"react";function OH(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(OH,"classifyLine");function DH(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(DH,"colorFor");var ky=$H.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(OH),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 S=DH(g.kind,c);return PH(b,{color:S,children:g.text||" "},y)})]})});ky.displayName="DiffHunk";function Hk(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(Hk,"getStatusIcon");function Fk(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(Fk,"getStatusColor");function BH(e,t){if(!t)return"";let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(BH,"formatDuration");function HH(e){if(!e)return"";let t=JSON.stringify(e);return t.length<=50?t:t.slice(0,47)+"..."}i(HH,"formatInputSummary");var FH=i(({status:e,theme:t})=>{let n=t??tl(()=>re("dark"),[]),r=Hk(e),o=Fk(e,n);return pt(b,{color:o,children:r})},"ToolStatusBadge"),Wk=i(({progress:e,width:t=20,theme:n})=>{let r=n??tl(()=>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"),Uk=i(({tool:e,collapsed:t=!1,theme:n})=>{let r=n??tl(()=>re("dark"),[]),o=Hk(e.status),s=Fk(e.status,r),a=HH(e.input),c=BH(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(Wk,{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(jk,{output:e.output,theme:r}),c&&e.status!==N.Executing&&pt(R,{marginLeft:2,children:cn(b,{dimColor:!0,children:["Completed in ",c]})})]})},"ToolCallDisplay"),jk=NH.memo(({output:e,theme:t})=>{if(!Bk(e))return pt(R,{marginLeft:2,children:pt(b,{dimColor:!0,children:e})});let n=Nk(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(ky,{text:r.text,addedLines:r.addedLines,removedLines:r.removedLines,filePath:r.filePath,theme:t},o))})});jk.displayName="ToolOutputBlock";var WH=i(({tools:e,collapsed:t=!1,title:n,theme:r})=>{let o=r??tl(()=>re("dark"),[]);if(e.length===0)return null;let s=tl(()=>{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(Uk,{tool:c,theme:o},c.id))]})},"ToolGroup");import{jsxs as Gk,jsx as UH}from"react/jsx-runtime";var jH=i(({pendingInputs:e})=>{let t=kv(e);if(!t)return null;let n=re("dark");return Gk(R,{children:[Gk(b,{color:n.colors.hint,children:["\u23F3"," "]}),UH(b,{color:n.colors.dim,children:t})]})},"PendingInputsIndicator");import*as Kk from"child_process";var nl;function GH(){if(process.platform!=="win32")return null;if(nl!==void 0)return nl;try{nl=Kk.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{nl=null}return nl}i(GH,"detectWindowsCodePage");function Jf(){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(Jf,"supportsTrueColor");function Vk(){if(Jf())return!0;let e=process.env.TERM||"";return e.includes("256color")||e==="xterm-256color"||e==="screen-256color"||e==="tmux-256color"}i(Vk,"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:GH()==="65001":!0}i(jr,"supportsUnicode");function zk(){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(zk,"supportsEmoji");function Xk(){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(Xk,"getTerminalWidth");function Yk(){let e=process.env;return!!(e.NO_COLOR||e.TERM==="dumb"||e.CI)}i(Yk,"isScreenReader");function KH(){return process.stdout?.isTTY??!1}i(KH,"isTTY");function VH(){return{trueColor:Jf(),colors256:Vk(),unicode:jr(),emoji:zk(),tty:KH(),columns:Xk(),screenReader:Yk()}}i(VH,"detectTerminalCapabilities");var rl=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 zH(e){let t=new rl;t.start();try{let n=await e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}i(zH,"withCapture");function XH(e){let t=new rl;t.start();try{let n=e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}i(XH,"withCaptureSync");import*as lR from"readline";import we from"chalk";import qn from"chalk";var YH=[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel the action",value:"no"}],qH=[{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 JH(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(JH,"formatOptions");function ia(){return process.stdout.columns??80}i(ia,"getTerminalWidth");function QH(){return jr()}i(QH,"supportsUnicode");function ZH(){let e=QH();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(ZH,"getSymbols");async function eF(e,t){let{message:n,default:r,options:o,showDescription:s=!0}=t,a=o??YH,c=JH(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(eF,"confirmEnhanced");async function ol(e,t,n,r){let{isOutsideProject:o=!1,isProtectedPath:s=!1,permissionMode:a="accept-edits"}=r??{},c=ZH(),l,u,m={...n,...o?{_outsideProject:!0}:{},...s?{_alwaysConfirm:!0}:{}},p=Ef(t,m),h=p.details.map(y=>` ${qn.dim(y)}`);o||s?(l=`${qn.yellow(c.warning)} Safety Warning`,h.length>0&&(l+=`
|
|
468
468
|
${h.join(`
|
|
469
469
|
`)}`),u=[{key:"y",label:"Yes",description:"Allow this once",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]):(l=p.title,h.length>0&&(l+=`
|
|
470
470
|
${h.join(`
|
|
471
|
-
`)}`),u=a==="accept-edits"?
|
|
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
|
|
473
|
-
`));for(r.push(o);
|
|
471
|
+
`)}`),u=a==="accept-edits"?qH:[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]);let g=await eF(e,{message:l,default:"n",options:u});return g==="always"?{confirmed:!0,always:!0}:{confirmed:g==="yes"}}i(ol,"confirmToolExecution");import ln from"chalk";var Qf=/\x1b\[[0-9;]*m/g,xr={SAVE_CURSOR:"\x1B[s",RESTORE_CURSOR:"\x1B[u",MOVE_TO_BOTTOM:"\x1B[999;1H",CLEAR_LINE:"\x1B[2K",RESET:"\x1B[0m",REVERSE:"\x1B[7m"};function tF(e,t){if(t<=0)return"";let n="",r=0,o=0;for(;o<e.length&&r<t;){Qf.lastIndex=o;let s=Qf.exec(e);if(s&&s.index===o){n+=s[0],o+=s[0].length;continue}n+=e[o],r+=1,o+=1}return n}i(tF,"truncateAnsi");function qk(e){return Qf.lastIndex=0,e.replace(Qf,"")}i(qk,"stripAnsi");function nF(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 qk(l).length>u&&(l=`${tF(l,Math.max(0,u-3))}...`),l}i(nF,"buildStatusBarContent");var Zf=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=nF(this.state,t),r=n+" ".repeat(Math.max(0,t-qk(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 Jk(e,t,n,r,o="off"){return{sessionId:e,permissionMode:t,reasoningMode:o,provider:n,model:r}}i(Jk,"createStatusBarState");function Qk(){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(Qk,"supportsStatusBar");import Uee from"chalk";function Zk(){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(Zk,"getUnicodeSymbols");function Ry(){return{prompt:">",success:"[OK]",error:"[X]",warning:"[!]",info:"[i]",arrow:"->",bullet:"*",check:"[v]",cross:"[x]",spinner:["|","/","-","\\","|","/","-","\\"]}}i(Ry,"getAsciiSymbols");var eR={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()?Zk():Ry(),spinner:{frames:jr()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},rF={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()?Zk():Ry(),spinner:{frames:jr()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},oF={name:"minimal",description:"Minimal theme without colors (for CI or limited terminals)",colors:{primary:"",secondary:"",accent:"",text:"",dim:"",success:"",warning:"",error:"",info:""},symbols:Ry(),spinner:{frames:[".","o","O","0","O","o"],interval:120}},iF={dark:eR,light:rF,minimal:oF},tR=eR;function gi(){return tR}i(gi,"getCurrentTheme");function il(e){let t=iF[e];return t?(tR=t,!0):!1}i(il,"setTheme");function sF(){if(!process.stdout.isTTY){il("minimal");return}let e=process.env;if(e.WT_SESSION!==void 0||e.TERM_PROGRAM==="vscode"){il("dark");return}il("dark")}i(sF,"autoSelectTheme");sF();var em=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 nR from"child_process";import*as al from"path";import*as sl from"fs";import*as rR from"os";import wr from"chalk";function oR(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(oR,"getPrompt");async function iR(e,t){let n=gi(),r=[],o=await new Promise(a=>{e.question(t,a)});if(o===""||o.toLowerCase()==="/e")return await Ey(r.join(`
|
|
473
|
+
`));for(r.push(o);aF(r.join(`
|
|
474
474
|
`));){let a=wr.hex(n.colors.dim)("... "),c=await new Promise(l=>{e.question(a,l)});r.push(c)}return r.join(`
|
|
475
475
|
`).replace(/\\\n/g,`
|
|
476
|
-
`)}i(
|
|
476
|
+
`)}i(iR,"askInput");async function Ey(e){let t=al.join(rR.tmpdir(),"kodax"),n=al.join(t,`input-${Date.now()}-${Math.random().toString(36).slice(2)}.txt`);try{await sl.promises.mkdir(t,{recursive:!0}),await sl.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=al.basename(r);console.log(wr.yellow(`
|
|
477
477
|
[Security] Editor path sanitized: ${a}`)),r=a}console.log(wr.dim(`
|
|
478
478
|
[Opening editor: ${r}]`));let o=process.platform==="win32"&&(r.toLowerCase()==="notepad"||r.toLowerCase()==="notepad.exe");return console.log(o?wr.dim(`Note: Please close Notepad manually after editing to continue.
|
|
479
479
|
`):wr.dim(`Save and close the editor to continue...
|
|
480
|
-
`)),
|
|
481
|
-
[Editor Error] ${o.message}`)),e}finally{try{await
|
|
482
|
-
`)))}i(
|
|
480
|
+
`)),nR.spawnSync(r,[n],{stdio:"inherit",timeout:3e5,shell:!1}),(await sl.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 sl.promises.unlink(n)}catch{}}}i(Ey,"openExternalEditor");function aF(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(aF,"needsContinuation");import Ve from"chalk";function sR(e){e?.workspaceRoot&&(console.log(Ve.dim(` Workspace: ${xn(e)}`)),console.log(Ve.dim(` Use /status workspace for runtime details.
|
|
482
|
+
`)))}i(sR,"printWorkspaceEntryNotice");function aR(e,t,n,r){let o=gi(),s=e.model??Mn(e.provider)??e.provider;if(console.log(Ve.hex(o.colors.primary)(`
|
|
483
483
|
`+`
|
|
484
484
|
\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557
|
|
485
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
|
|
@@ -492,8 +492,8 @@ ${t}`),console.log("\u2500".repeat(t.length)),n.forEach((r,o)=>{console.log(` $
|
|
|
492
492
|
`)),r){let c=r.length;console.log(Ve.hex(o.colors.dim)(" Project Rules: ")+Ve.hex(o.colors.success)(`${c} rule file(s) loaded`)),console.log(Ve.hex(o.colors.dim)(` Use /reload to refresh rules
|
|
493
493
|
`))}console.log(Ve.hex(o.colors.dim)(" Quick tips:")),console.log(Ve.hex(o.colors.primary)(" /help ")+Ve.hex(o.colors.dim)("Show all commands")),console.log(Ve.hex(o.colors.primary)(" /mode ")+Ve.hex(o.colors.dim)("Switch permission mode")),console.log(Ve.hex(o.colors.primary)(" /clear ")+Ve.hex(o.colors.dim)("Clear conversation")),console.log(Ve.hex(o.colors.primary)(" @path ")+Ve.hex(o.colors.dim)("Attach image to context")),console.log(Ve.hex(o.colors.primary)(" !cmd ")+Ve.hex(o.colors.dim)("Run read-only shell command")),console.log(Ve.hex(o.colors.dim)(`
|
|
494
494
|
Keyboard: Tab (complete) | Esc+Esc (edit last) | Ctrl+T (reasoning) | Ctrl+E (editor) | Ctrl+R (history)
|
|
495
|
-
`))}i(
|
|
496
|
-
${j}`));for(let Le of te)console.log(we.dim(Le));console.log()}),"guardSessionTransition"),fe=await
|
|
495
|
+
`))}i(aR,"printStartupBanner");var Ay=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 My(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(My,"applyRuntimeContext");function cF(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:(e.thinking===!0||t.thinking===!0,"auto")}i(cF,"resolveInitialReasoningMode");var _y={current:null};async function lF(e){let t=await Ms({cwd:process.cwd()}),n=t.workspaceRoot??await Uo()??void 0,r=e.storage??new Ay,o=mu({meta:{cwd:process.cwd(),startedAt:Date.now()}}),s=dp(),a=e.provider??s.provider??fu,c=e.model??s.model,l=cF(e,s),u=e.agentMode??s.agentMode??"ama",m=l!=="off",p=lr(s.permissionMode,"accept-edits")??"accept-edits",h=ad();p==="auto-in-project"&&h();let g=hu(),y=s.theme;y&&il(y);let x=gi(),S={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 Gc({sessionId:e.session?.id,gitRoot:n,runtimeInfo:t});o?.writer.update({sessionId:v.sessionId});let z=i(_=>di(S,_,(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 Su(n??void 0),{resolveProvider:se}=await import("./dist-4WABQRJU.js"),ge=se(S.provider),L=fe.contextWindow??ge.getEffectiveContextWindow?.(S.model)??ge.getContextWindow?.()??2e5,{loadAgentsFiles:k}=await import("./dist-4WABQRJU.js"),P=i(async()=>k({cwd:process.cwd(),projectRoot:v.gitRoot??void 0}),"reloadAgentsFiles"),Re=await P();aR(S,S.permissionMode,{contextWindow:L,triggerPercent:fe.triggerPercent,enabled:fe.enabled},Re),sR(t);let _e=ib(()=>v.gitRoot??process.cwd()),Y=lR.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=yd(),ae=await Vc({askUser:i(async(_,O,j)=>(await ol(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(()=>S.provider,"getCurrentProviderName"),getCurrentModel:i(()=>S.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:[pc]}),Q=yu({getProvider:i(()=>se(S.provider),"getProvider"),getModel:i(()=>S.model??"","getModel")}),J=S.model??Mn(S.provider)??S.provider,q=null;Qk()&&(q=new Zf(Jk(v.sessionId,S.permissionMode,S.provider,J,S.reasoningMode)),sn(T)&&q.update({autoModeEngine:ae.getGuardrail().getEngine()}));let Ie=`
|
|
497
497
|
Keyboard Shortcuts:
|
|
498
498
|
Tab Auto-complete (@paths, /commands)
|
|
499
499
|
Esc+Esc Edit last message
|
|
@@ -502,66 +502,66 @@ Keyboard Shortcuts:
|
|
|
502
502
|
Ctrl+R Search command history (built-in)
|
|
503
503
|
Ctrl+C Cancel current input
|
|
504
504
|
Ctrl+D Exit REPL`,ue=i(()=>{console.log(we.dim(Ie))},"_printKeyboardShortcuts");process.stdin.isTTY&&process.stdin.on("keypress",(_,O)=>{if(O&&O.name==="escape"){let j=Date.now();j-A<D&&$&&(F=!0,console.log(we.dim(`
|
|
505
|
-
[Opening editor with last message...]`)),Y.pause()),A=j}});let Ue=Rr(n).getSystemPromptSnippet(),De=!0,me={...e,reasoningMode:l,thinking:m,context:{...e.context,gitRoot:n,executionCwd:t.executionCwd,repoIntelligenceMode:g.mode,repoIntelligenceTrace:g.trace,skillsPrompt:Ue},session:{...e.session,id:v.sessionId,persistedByHost:!0}};
|
|
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}};_y.current=null;let Pt={exit:i(()=>{De=!1,o?.shutdown(),Y.close()},"exit"),saveSession:i(async()=>{if(v.messages.length>0){let _=cl(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=Kc(),v.title="",v.contextTokenSnapshot=void 0,v.artifactLedger=void 0,v.createdAt=new Date().toISOString(),v.lastAccessed=v.createdAt,My(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&&!JC(te)?(console.log(we.yellow(`
|
|
506
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(),
|
|
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(),My(v,me,Le),me.session={...me.session,id:_},q?.update({sessionId:_,messageCount:O.messages.length}),o?.writer.update({sessionId:_}),console.log(we.green(`
|
|
508
508
|
[Loaded session: ${_}]`)),console.log(we.dim(` Messages: ${O.messages.length}`)),v.runtimeInfo?.workspaceRoot&&console.log(we.dim(` Workspace: ${xn(v.runtimeInfo)}`)),"loaded"}return"missing"},"loadSession"),listSessions:i(async()=>{let _=await r.list(v.gitRoot??void 0);if(_.length===0){console.log(we.dim(`
|
|
509
509
|
[No saved sessions]`));return}console.log(we.bold(`
|
|
510
510
|
Recent Sessions:
|
|
511
511
|
`)),v.runtimeInfo?.workspaceRoot&&(console.log(we.dim(` Current workspace: ${xn(v.runtimeInfo)}`)),console.log());for(let O of _.slice(0,10))if(console.log(` ${we.cyan(O.id)} ${we.dim(`(${O.msgCount} messages)`)} ${O.title.slice(0,40)}`),O.runtimeInfo?.workspaceRoot){let te=v.runtimeInfo?.workspaceRoot===O.runtimeInfo.workspaceRoot?" (current workspace)":"";console.log(we.dim(` workspace: ${xn(O.runtimeInfo)}${te}`))}console.log()},"listSessions"),clearHistory:i(()=>{v.messages=[],v.contextTokenSnapshot=void 0},"clearHistory"),printHistory:i(()=>{if(v.messages.length===0){console.log(we.dim(`
|
|
512
512
|
[No conversation history]`));return}console.log(we.bold(`
|
|
513
513
|
Conversation History:
|
|
514
|
-
`));let _=v.messages.slice(-20);for(let O=0;O<_.length;O++){let j=_[O],te=we.cyan(j.role.padEnd(10)),Le=typeof j.content=="string"?j.content:"[Complex content]",at=Le.slice(0,60).replace(/\n/g," "),ke=Le.length>60?"...":"";console.log(` ${(O+1).toString().padStart(2)}. ${te} ${at}${ke}`)}console.log()},"printHistory"),switchProvider:i((_,O)=>{
|
|
515
|
-
[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)=>{S.provider=_,S.model=O,me.provider=_,me.model=O;let j=O??Mn(_);if(!j)try{j=uw(_)?.getModel()??_}catch{j=_}q?.update({provider:_,model:j})},"switchProvider"),setThinking:i(_=>{S.thinking=_,me.thinking=_,S.reasoningMode=_?"auto":"off",me.reasoningMode=S.reasoningMode,q?.update({reasoningMode:S.reasoningMode})},"setThinking"),setReasoningMode:i(_=>{let O=_!=="off";S.reasoningMode=_,S.thinking=O,me.reasoningMode=_,me.thinking=O,q?.update({reasoningMode:_})},"setReasoningMode"),setPermissionMode:i(_=>{S.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&&(S.repoIntelligenceMode=_.mode,process.env.KODAX_REPO_INTELLIGENCE_MODE=_.mode,me.context={...me.context,repoIntelligenceMode:_.mode}),_.trace!==void 0&&(S.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&&(S.repointelEndpoint=_.endpoint??void 0,_.endpoint?process.env.KODAX_REPOINTEL_ENDPOINT=_.endpoint:delete process.env.KODAX_REPOINTEL_ENDPOINT),_.bin!==void 0&&(S.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=Rf(pu(_));console.log(we.bold(`
|
|
516
516
|
Session Tree:
|
|
517
517
|
`));for(let j of O)console.log(` ${j}`);console.log()},"printSessionTree"),switchSessionBranch:i(async _=>{if(!z("Switching session branches"))return"blocked";let O=await r.setActiveEntry?.(v.sessionId,_,{summarizeCurrentBranch:!0});return O?(v.messages=O.messages,v.title=O.title,v.contextTokenSnapshot=void 0,q?.update({messageCount:v.messages.length}),console.log(we.green(`
|
|
518
518
|
[Switched to tree entry: ${_}]`)),console.log(we.dim(` Messages: ${O.messages.length}`)),"switched"):"missing"},"switchSessionBranch"),labelSessionBranch:i(async(_,O)=>{if(!await r.setLabel?.(v.sessionId,_,O))return!1;let te=O&&O.trim()?`checkpoint label set: ${O.trim()}`:"checkpoint label cleared";return console.log(we.green(`
|
|
519
|
-
[${te}]`)),!0},"labelSessionBranch"),forkSession:i(async _=>{if(!z("Forking a session branch"))return"blocked";let O=await r.fork?.(v.sessionId,_);return O?(v.sessionId=O.sessionId,v.messages=O.data.messages,v.title=O.data.title,v.contextTokenSnapshot=void 0,v.createdAt=new Date().toISOString(),v.lastAccessed=v.createdAt,
|
|
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,My(v,me,ri(O.data)??v.runtimeInfo),me.session={...me.session,id:O.sessionId},q?.update({sessionId:O.sessionId,messageCount:v.messages.length}),console.log(we.green(`
|
|
520
520
|
[Forked session: ${O.sessionId}]`)),console.log(we.dim(` Messages: ${O.data.messages.length}`)),"forked"):"failed"},"forkSession"),rewindSession:i(async _=>{if(!z("Rewinding session"))return"blocked";let O=await r.rewind?.(v.sessionId,_);return O?(v.messages=O.messages,v.title=O.title,v.contextTokenSnapshot=void 0,v.lastAccessed=new Date().toISOString(),q?.update({messageCount:v.messages.length}),console.log(we.green(`
|
|
521
|
-
[Rewound session${_?` to ${_}`:" to previous turn"}]`)),console.log(we.dim(` Messages: ${O.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:i(()=>
|
|
521
|
+
[Rewound session${_?` to ${_}`:" to previous turn"}]`)),console.log(we.dim(` Messages: ${O.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:i(()=>_y.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:S.provider,model:S.model,thinking:S.thinking,reasoningMode:S.reasoningMode,guardrails:O,context:{...me.context,planModeBlockCheck:_},events:{...me.events,exitPlanMode:i(async j=>T!=="plan"?"not-in-plan-mode":(await ol(Y,"exit_plan_mode",{plan:j},{isProtectedPath:!1,permissionMode:T})).confirmed?(S.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 ol(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 ol(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"&&(xd(j,te,!1),I=Rs())}return!0},"beforeToolExecute")}}},"createKodaXOptions"),reloadAgentsFiles:i(async()=>(Re=await P(),Re),"reloadAgentsFiles"),readline:Y,ui:new em(Y)};Y.on("SIGINT",async()=>{console.log(we.dim(`
|
|
522
522
|
|
|
523
|
-
[Press /exit to quit]`)),Y.prompt()});let Rt=i(()=>{q?.hide(),o?.shutdown(),Y.close()},"cleanup");process.on("exit",Rt),process.on("SIGTERM",Rt);let ee=i(async(_,O)=>{if(!_||typeof _!="object"||!_.invocation)return;let j=await
|
|
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 Lf({...me,provider:S.provider,thinking:S.thinking,reasoningMode:S.reasoningMode},_.invocation,O,te=>console.log(we.dim(`
|
|
524
524
|
${te}`)));if(j.mode==="manual"){j.manualOutput&&console.log(we.yellow(`
|
|
525
525
|
${j.manualOutput}
|
|
526
|
-
`)),await j.finalize();return}if(!j.prompt||!j.options){await j.finalize();return}try{let te=j.mode==="fork"?[]:v.messages,Le=await
|
|
526
|
+
`)),await j.finalize();return}if(!j.prompt||!j.options){await j.finalize();return}try{let te=j.mode==="fork"?[]:v.messages,Le=await cR(j.options,v,j.prompt,te);if(j.mode==="fork"){let at=Sc(Le.messages);at.trim()&&(console.log(`
|
|
527
527
|
${at}
|
|
528
|
-
`),v.messages.push({role:"assistant",content:at}))}else v.messages=Le.messages,v.contextTokenSnapshot=Le.contextTokenSnapshot;if(q?.update({messageCount:v.messages.length}),v.messages.length>0){let at=
|
|
529
|
-
[Edited message ready to send]`));let
|
|
530
|
-
${B}`));v.messages.push({role:"user",content:oe.messageContent}),$=
|
|
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=cl(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 Ey($);if(ke&&ke.trim()&&ke!==$){console.log(we.dim(`
|
|
529
|
+
[Edited message ready to send]`));let He=ke.trim();hr(v);let $t=_s(He);if($t){let B=await Ls($t,v,Pt,S);await ee(B,He);continue}let ce=await Ly(He);if(He.startsWith("!")&&zc(ce))continue;let oe=Xc(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}),$=He,q?.update({messageCount:v.messages.length});let ze=v.lineage?jw({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??cl(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 ja({...me,provider:S.provider,thinking:S.thinking,reasoningMode:S.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=Wa(v.artifactLedger??[],B.artifactLedger??np(B.messages)),v.messages.length>0){let nt=cl(v.messages);v.title=nt,await r.save(v.sessionId,{messages:v.messages,title:nt,gitRoot:v.gitRoot??"",runtimeInfo:v.runtimeInfo,artifactLedger:v.artifactLedger})}}catch(B){let nt=B instanceof Error?B:new Error(String(B));v.messages.pop(),console.log(we.red(`
|
|
531
531
|
[Error] ${nt.message}`))}continue}else ke===$&&console.log(we.dim(`
|
|
532
|
-
[No changes made, continuing...]`))}let _=
|
|
533
|
-
${ke}`));v.messages.push({role:"user",content:at.messageContent}),$=j,q?.update({messageCount:v.messages.length});try{let ke=await
|
|
534
|
-
[Rate Limit] ${
|
|
535
|
-
`))):
|
|
536
|
-
[Configuration Error] ${
|
|
537
|
-
`))):
|
|
538
|
-
[Network Error] ${
|
|
539
|
-
`))):
|
|
540
|
-
[Context Error] ${
|
|
532
|
+
[No changes made, continuing...]`))}let _=oR(S.permissionMode,S),O=await iR(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,S);await ee(ke,j);continue}let Le=await Ly(j);if(j.startsWith("!")&&zc(Le))continue;let at=Xc(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 cR(me,v,Le,v.messages,at.inputArtifacts);if(v.messages=ke.messages,v.contextTokenSnapshot=ke.contextTokenSnapshot,v.artifactLedger=Wa(v.artifactLedger??[],ke.artifactLedger??np(ke.messages)),q?.update({messageCount:v.messages.length}),v.messages.length>0){let He=cl(v.messages);v.title=He,await r.save(v.sessionId,{messages:v.messages,title:He,gitRoot:v.gitRoot??"",runtimeInfo:v.runtimeInfo,artifactLedger:v.artifactLedger})}}catch(ke){let He=ke instanceof Error?ke:new Error(String(ke));v.messages.pop(),He.message.includes("rate limit")||He.message.includes("Rate limit")?(console.log(we.yellow(`
|
|
534
|
+
[Rate Limit] ${He.message}`)),console.log(we.dim(`Suggestion: Wait a moment and try again, or switch provider with /mode
|
|
535
|
+
`))):He.message.includes("API key")||He.message.includes("not configured")?(console.log(we.red(`
|
|
536
|
+
[Configuration Error] ${He.message}`)),console.log(we.dim(`Suggestion: Set the required API key environment variable
|
|
537
|
+
`))):He.message.includes("network")||He.message.includes("ECONNREFUSED")||He.message.includes("ETIMEDOUT")?(console.log(we.red(`
|
|
538
|
+
[Network Error] ${He.message}`)),console.log(we.dim(`Suggestion: Check your internet connection and try again
|
|
539
|
+
`))):He.message.includes("token")||He.message.includes("context too long")?(console.log(we.yellow(`
|
|
540
|
+
[Context Error] ${He.message}`)),console.log(we.dim(`Suggestion: Use /clear to start a fresh conversation
|
|
541
541
|
`))):(console.log(we.red(`
|
|
542
|
-
[Error] ${
|
|
543
|
-
`)))}}}i(
|
|
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(
|
|
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(
|
|
546
|
-
`,"utf8"),await yt.rename(t
|
|
547
|
-
`),o+=1)}finally{await r.close()}return await
|
|
548
|
-
`)}i(
|
|
549
|
-
`)}i(Gr,"writeStorageNotice");function
|
|
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(
|
|
542
|
+
[Error] ${He.message}`)),console.log(we.dim(`Your message was not sent. Please try again.
|
|
543
|
+
`)))}}}i(lF,"runInteractiveMode");async function Ly(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 bf(n,{cwd:process.cwd()})}return e}i(Ly,"processSpecialSyntax");async function cR(e,t,n,r=t.messages,o){let s={...e.events??{},getCostReport:_y};return ja({...e,events:s,session:{...e.session,initialMessages:r},context:{...e.context,contextTokenSnapshot:t.contextTokenSnapshot,taskSurface:"repl",...o&&o.length>0?{inputArtifacts:[...o]}:{}}},n)}i(cR,"runAgentRound");function cl(e){return ks(e)}i(cl,"extractTitle");import tm from"node:fs";import uF from"node:path";function dF(){let e=rm();return om(e).map(n=>nm(n))}i(dF,"listCustomProviders");function fF(e){if(typeof e!="string"||e.length===0)return;let t=om(rm()).find(n=>n.name===e);return t?nm(t):void 0}i(fF,"getCustomProviderConfig");function mF(e){lw(e);let t=nm(e),n=rm(),r=om(n),o=r.findIndex(a=>a.name===t.name),s=o>=0?r.map((a,c)=>c===o?t:a):[...r,t];return dR({...n,customProviders:s}),Zm(s),nm(t)}i(mF,"upsertCustomProvider");function pF(e){if(typeof e!="string"||e.length===0)return!1;let t=rm(),n=om(t),r=n.filter(o=>o.name!==e);return r.length===n.length?!1:(dR({...t,customProviders:r}),Zm(r),!0)}i(pF,"removeCustomProvider");function uR(){return kn("config.json")}i(uR,"configFilePath");function rm(){let e=uR();if(!tm.existsSync(e))return{};try{let t=JSON.parse(tm.readFileSync(e,"utf-8"));return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}i(rm,"readWholeConfig");function dR(e){let t=uR();tm.mkdirSync(uF.dirname(t),{recursive:!0}),tm.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}i(dR,"writeWholeConfig");function om(e){let t=e.customProviders;return Array.isArray(t)?t:[]}i(om,"extractCustomProviders");function nm(e){return structuredClone(e)}i(nm,"cloneCustomProvider");import im from"node:fs";import hF from"node:path";function gF(){let e=sm();return SF(am(e))}i(gF,"listMcpServers");function yF(e){if(typeof e!="string"||e.length===0)return;let n=am(sm())[e];return n?Py(n):void 0}i(yF,"getMcpServerConfig");function xF(e,t){if(typeof e!="string"||e.length===0)throw new TypeError("upsertMcpServer: name must be a non-empty string");fR(e,t);let n=Py(t),r=sm(),s={...am(r),[e]:n};return pR({...r,mcpServers:s}),Py(n)}i(xF,"upsertMcpServer");function wF(e){if(typeof e!="string"||e.length===0)return!1;let t=sm(),n=am(t);if(!(e in n))return!1;let r={};for(let o of Object.keys(n))o!==e&&(r[o]=n[o]);return pR({...t,mcpServers:r}),!0}i(wF,"removeMcpServer");function fR(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","http"].includes(n))throw new TypeError(`MCP server "${e}": unknown transport type "${n}" (expected stdio | sse | streamable-http | 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(fR,"validateMcpServerConfig");function mR(){return kn("config.json")}i(mR,"configFilePath");function sm(){let e=mR();if(!im.existsSync(e))return{};try{let t=JSON.parse(im.readFileSync(e,"utf-8"));return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}i(sm,"readWholeConfig");function pR(e){let t=mR();im.mkdirSync(hF.dirname(t),{recursive:!0}),im.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}i(pR,"writeWholeConfig");function am(e){let t=e.mcpServers;return!t||typeof t!="object"||Array.isArray(t)?{}:t}i(am,"extractMcpServers");function Py(e){return structuredClone(e)}i(Py,"cloneMcpServerConfig");function SF(e){return structuredClone(e)}i(SF,"cloneMcpServers");import Je from"fs/promises";import Jn from"fs";import Be from"path";import MR from"chalk";import $y from"path";import{createHash as TF}from"crypto";var ll="_unknown",hR=80;function CF(e){return process.platform==="win32"||process.platform==="darwin"?e.toLowerCase():e}i(CF,"caseFold");function bF(e){return CF($y.resolve(e).replace(/\\/g,"/"))}i(bF,"normalizeRoot");function gR(e){return TF("sha256").update(e).digest("hex").slice(0,10)}i(gR,"shortHash");function vF(e){let t=e.replace(/[^a-z0-9]+/gi,"-").replace(/^-+|-+$/g,"");return t.length>hR?t.slice(t.length-hR):t}i(vF,"slugify");function sa(e){if(!e||!e.trim())return{key:ll,canonicalRoot:null,displayName:ll};let t=bF(e),n=vF(t),r=n?`${n}-${gR(t)}`:gR(t),o=$y.basename($y.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 xR from"fs";import Ft from"path";var IF=2,kF=300*1e3,yR=65536,Oy=i(e=>Ft.join(e,".layout.json"),"layoutMarkerPath"),Ny=i(e=>Ft.join(e,".migration-lock"),"lockDirPath"),wR=i(e=>Ft.join(Ny(e),"owner.json"),"ownerPath"),Dy=i(e=>Ft.join(e,".migration-journal.jsonl"),"journalPath"),SR=i(e=>Ft.join(Ft.dirname(e),"sessions-archive"),"sessionsArchiveDir");function TR(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")}i(TR,"isSessionFile");function CR(e){return e.endsWith(".archive.jsonl")||e.endsWith(".islands.jsonl")?e.slice(0,-14):null}i(CR,"sidecarId");async function RF(e){let t;try{t=await yt.open(e,"r");let n=Buffer.allocUnsafe(yR),{bytesRead:r}=await t.read(n,0,yR,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(RF,"readMeta");async function EF(e){let t=await RF(e);return t?aa({gitRoot:t.gitRoot,runtimeInfo:t.runtimeInfo}).key:ll}i(EF,"destKeyFor");async function bR(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(".")||(TR(a.name)||o&&CR(a.name)!==null)&&t.push(Ft.join(r,a.name))},"pushDir");return await n(e,!0),await n(SR(e),!0),t}i(bR,"collectFlatSources");async function MF(e){let t=await bR(e),n=t.filter(s=>TR(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 EF(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}`);xR.existsSync(u)&&o.push({from:u,to:Ft.join(e,c,`${a}.islands.jsonl`),reason:"sidecar\u2192islands"})}}for(let s of t){let a=CR(Ft.basename(s));a===null||r.has(a)||o.push({from:s,to:Ft.join(e,ll,"orphan-islands",`${a}.islands.jsonl`),reason:"orphan-sidecar\u2192_unknown"})}return o}i(MF,"planMigration");async function vR(e){try{return await yt.access(Oy(e)),!0}catch{return!1}}i(vR,"isMigrated");async function AF(e){return await vR(e)?!1:(await bR(e)).length>0}i(AF,"needsMigration");async function _F(e){try{let t=JSON.parse(await yt.readFile(wR(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>kF}catch{return!0}}i(_F,"lockIsStale");async function LF(e){let t=Ny(e);for(let n=0;n<2;n+=1)try{return await yt.mkdir(t),await yt.writeFile(wR(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 _F(e)){await yt.rm(t,{recursive:!0,force:!0}).catch(()=>{});continue}return!1}return!1}i(LF,"acquireLock");async function PF(e){await yt.rm(Ny(e),{recursive:!0,force:!0}).catch(()=>{})}i(PF,"releaseLock");async function $F(e){let t=new Set;try{let n=await yt.readFile(Dy(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($F,"readJournalDone");async function OF(e){if(await yt.mkdir(Ft.dirname(e.to),{recursive:!0}),xR.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(OF,"executeMove");async function IR(e){await yt.mkdir(e,{recursive:!0});let t=`${Oy(e)}.${process.pid}.tmp`,n=JSON.stringify({version:IF,migratedAt:new Date().toISOString(),from:"flat-v1"});await yt.writeFile(t,n+`
|
|
546
|
+
`,"utf8"),await yt.rename(t,Oy(e))}i(IR,"writeMarker");async function DF(e){let t=SR(e);try{(await yt.readdir(t)).length===0&&await yt.rmdir(t).catch(()=>{})}catch{}}i(DF,"retireSessionsArchive");async function NF(e){if(!await LF(e))return{moved:0,planned:0};try{let t=await MF(e),n=await $F(e),r=await yt.open(Dy(e),"a"),o=0;try{for(let s of t)n.has(s.from)||(await OF(s),await r.write(JSON.stringify({from:s.from,to:s.to,done:!0})+`
|
|
547
|
+
`),o+=1)}finally{await r.close()}return await DF(e),await IR(e),await yt.rm(Dy(e),{force:!0}).catch(()=>{}),{moved:o,planned:t.length}}finally{await PF(e)}}i(NF,"runMigration");async function ul(e){try{if(await vR(e))return;if(!await AF(e)){await IR(e).catch(()=>{});return}await NF(e)}catch{}}i(ul,"ensureLayoutMigrated");var BF=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 kR(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(kR,"isKodaXExtensionSessionRecord");function RR(e){return kt(e)?Object.values(e).every(t=>kt(t)?Object.values(t).every(yi):!1):!1}i(RR,"isKodaXExtensionSessionState");function HF(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(HF,"isKodaXContentBlock");function By(e){return!kt(e)||typeof e.role!="string"||!BF.has(e.role)?!1:typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(HF)}i(By,"isKodaXMessage");function ER(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(ER,"isSessionErrorMetadata");function FF(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(FF,"isKodaXSessionUiHistoryItem");function Hy(e){return Array.isArray(e)&&e.every(FF)}i(Hy,"isKodaXSessionUiHistory");function WF(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||Hy(e.uiHistory))&&(e.scope===void 0||typeof e.scope=="string")}i(WF,"isPersistedMetaUpdateLine");function AR(e,t){t!==0&&process.stderr.write(`[KodaX] Skipped ${t} malformed session record(s) from ${Be.basename(e)}.
|
|
548
|
+
`)}i(AR,"warnMalformedSessionData");function Gr(e){process.stderr.write(`${e}
|
|
549
|
+
`)}i(Gr,"writeStorageNotice");function _R(e){return{_type:"extension_record",...e}}i(_R,"toExtensionRecordLine");function LR(e){return{_type:"lineage_entry",entry:e}}i(LR,"toLineageEntryLine");function PR(e){return{_type:"artifact_ledger_entry",entry:e}}i(PR,"toArtifactLedgerLine");function UF(e){return kt(e)&&e._type==="extension_record"&&kR(e)}i(UF,"isPersistedExtensionRecordLine");function jF(e){return kt(e)&&typeof e.id=="string"&&(e.parentId===null||typeof e.parentId=="string")&&typeof e.timestamp=="string"&&typeof e.type=="string"}i(jF,"hasEntryBase");function GF(e){if(!jF(e))return!1;let t=e;switch(t.type){case"message":return By(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(GF,"isKodaXSessionEntry");function KF(e){return kt(e)&&e._type==="lineage_entry"&&GF(e.entry)}i(KF,"isPersistedLineageEntryLine");function VF(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(VF,"isKodaXSessionArtifactLedgerEntry");function zF(e){return kt(e)&&e._type==="artifact_ledger_entry"&&VF(e.entry)}i(zF,"isPersistedArtifactLedgerLine");function BR(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(BR,"isKodaXSessionRuntimeInfo");function $R(e,t){return process.platform==="win32"||process.platform==="darwin"?e.toLowerCase()===t.toLowerCase():e===t}i($R,"pathsEqual");function XF(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(XF,"getLastNavigableEntryId");function YF(e){if(e.lineageEntries.length>0)return{version:2,activeEntryId:e.meta?.activeEntryId??XF(e.lineageEntries),entries:e.lineageEntries};if(e.legacyMessages.length!==0)return En(e.legacyMessages)}i(YF,"buildLineage");function OR(e){return typeof e=="string"?`t:${e}`:`j:${JSON.stringify(e)}`}i(OR,"serializeMessageContentForCompare");function qF(e,t){return e===t?!0:e.role===t.role&&OR(e.content)===OR(t.content)}i(qF,"sameMessageByContent");function JF(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)=>qF(s,n[a])))return t}return En(e.messages,t)}i(JF,"resolveSnapshotLineage");function QF(e){let t=YF(e);return{createdAt:e.meta?.createdAt,data:{messages:t?At(t):[...e.legacyMessages],title:e.meta?.title??"",gitRoot:e.meta?.gitRoot??"",runtimeInfo:BR(e.meta?.runtimeInfo)?{...e.meta.runtimeInfo}:void 0,scope:e.meta?.scope??"user",uiHistory:Hy(e.meta?.uiHistory)?e.meta.uiHistory.map(n=>({...n})):void 0,errorMetadata:ER(e.meta?.errorMetadata)?{...e.meta.errorMetadata}:void 0,extensionState:RR(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(QF,"buildSessionData");function ZF(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(ZF,"createSessionMeta");async function eW(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(WF(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(KF(a)){r.lineageEntries.push(a.entry);continue}if(zF(a)){r.artifactLedger.push(a.entry);continue}if(UF(a)){r.extensionRecords.push({id:a.id,extensionId:a.extensionId,type:a.type,ts:a.ts,data:a.data,dedupeKey:a.dedupeKey});continue}if(By(a)){r.legacyMessages.push(a);continue}r.malformedCount+=1}catch{r.malformedCount+=1}return r}i(eW,"readPersistedSessionFile");var DR=65536;async function tW(e){let t;try{t=await Je.open(e,"r");let n=Buffer.allocUnsafe(DR),{bytesRead:r}=await t.read(n,0,DR,0);if(r===0)return null;let o=n.toString("utf8",0,r),s=o.indexOf(`
|
|
551
551
|
`);if(s>=0)return o.slice(0,s).trim();let a=await Je.readFile(e,"utf-8"),c=a.indexOf(`
|
|
552
|
-
`);return(c>=0?a.slice(0,c):a).trim()}catch{return null}finally{await t?.close()}}i(
|
|
553
|
-
`).length:0}catch{return 0}}i(
|
|
554
|
-
`,"utf-8")}catch{}}async writeSessionInternal(t,n,r){let o=this.resolveWriteDir(t,n);await Je.mkdir(o,{recursive:!0});let s=
|
|
555
|
-
`);for(let p of c.entries)await u.write(JSON.stringify(
|
|
556
|
-
`);for(let p of n.artifactLedger??[])await u.write(JSON.stringify(
|
|
557
|
-
`);for(let p of n.extensionRecords??[])await u.write(JSON.stringify(
|
|
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,
|
|
552
|
+
`);return(c>=0?a.slice(0,c):a).trim()}catch{return null}finally{await t?.close()}}i(tW,"readSessionFirstLine");async function NR(e){try{let t=(await Je.readFile(e,"utf-8")).trim();return t?t.split(`
|
|
553
|
+
`).length:0}catch{return 0}}i(NR,"countSessionLines");var Co=class{static{i(this,"FileSessionStorage")}sessionsDir;hostCwd;emitMismatchWarnings;constructor(t){this.sessionsDir=t?.sessionsDir??Ga,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=ul(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 Be.join(this.sessionsDir,`${t}.jsonl`)}legacyFlatArchivePath(t){return Be.join(this.sessionsDir,`${t}.archive.jsonl`)}projectDir(t){return Be.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 Be.join(this.resolveWriteDir(t,n),`${t}.jsonl`)}async resolveSessionLocation(t){let n=this.sessionDirCache.get(t);if(n){let s=Be.join(n,`${t}.jsonl`);if(Jn.existsSync(s))return s;let a=Be.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=Be.join(this.sessionsDir,s.name,`${t}.jsonl`);Jn.existsSync(a)&&r.push(a);let c=Be.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=Be.dirname(r[0]),a=Be.basename(s)==="archived"?Be.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=>Be.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 eW(n);return r?(AR(n,r.malformedCount),QF(r)):null}async ensureProjectJson(t,n){if(n.canonicalRoot===null||this.projectJsonWritten.has(t))return;this.projectJsonWritten.add(t);let r=Be.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=Be.join(o,`${t}.jsonl`),a=`${s}.${process.pid}.${Date.now()}.tmp`,c=n.lineage??En(n.messages),l=ZF(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(LR(p))+`
|
|
556
|
+
`);for(let p of n.artifactLedger??[])await u.write(JSON.stringify(PR(p))+`
|
|
557
|
+
`);for(let p of n.extensionRecords??[])await u.write(JSON.stringify(_R(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,Be.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:JF(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(LR(p)));for(let p of c)u.push(JSON.stringify(PR(p)));for(let p of l)u.push(JSON.stringify(_R(p)));let m={_type:"meta_update",title:n.title,activeEntryId:n.lineage.activeEntryId,activeMessageCount:Fo(n.lineage),...n.uiHistory!==void 0?{uiHistory:n.uiHistory}:{},...n.scope!==void 0?{scope:n.scope}:{}};u.push(JSON.stringify(m)),u.length>0&&await Je.appendFile(r,`
|
|
559
559
|
`+u.join(`
|
|
560
560
|
`),"utf-8"),this.syncAppendState(t,n,s.metaUpdateCount+1)});let o=this.appendState.get(t);o&&this.shouldRunMaintenance(o)&&this.runMaintenance(t).catch(s=>{process.stderr.write(`[KodaX] Archive maintenance failed: ${String(s)}
|
|
561
|
-
`)})}shouldRunMaintenance(t){return t.metaUpdateCount>=50||t.lineageCount>500}async runMaintenance(t){await this.serializedWrite(t,async()=>{let n=await this.readSession(t);if(!n?.data.lineage)return;let{slimmedLineage:r,archivedEntries:o,archiveBatchId:s}=
|
|
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}=vw(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=Be.join(a,`${t}.islands.jsonl`),l=await Je.open(c,"a");try{await l.write(JSON.stringify({_type:"archive_batch",archiveBatchId:s,sessionId:t,archivedAt:new Date().toISOString(),entryCount:o.length})+`
|
|
562
562
|
`);for(let m of o)await l.write(JSON.stringify({_type:"archived_entry",archiveBatchId:s,entry:m})+`
|
|
563
|
-
`)}finally{await l.close()}let u={...n.data,lineage:r};await this.writeSessionInternal(t,u,n.createdAt),this.syncAppendState(t,u,0)})}async save(t,n){await this.serializedWrite(t,async()=>{await this.mergeAndWriteInternal(t,n)})}async load(t){let n=await this.readSession(t);if(!n)return null;this.syncAppendState(t,n.data);let{data:r,createdAt:o}=n,s=this.legacyFlatPath(t);if(this.emitMismatchWarnings){let a=await Uo(this.hostCwd),c=await Ms({cwd:this.hostCwd}),l=ri(r);(c.canonicalRepoRoot&&l?.canonicalRepoRoot&&!
|
|
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&&!Ed(c,l)||a&&r.gitRoot&&a!==r.gitRoot&&!Ed(c,{canonicalRepoRoot:r.gitRoot}))&&(Gr(MR.yellow(`
|
|
564
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=
|
|
566
|
-
`)[0];if(!
|
|
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"?
|
|
565
|
+
`))}if(r.errorMetadata?.consecutiveErrors&&r.errorMetadata.consecutiveErrors>0){let a=mw(r.messages);if(a!==r.messages){Gr(MR.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 AR(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 S=[];try{S=await Je.readdir(this.projectDir(x))}catch{continue}for(let T of S)T.endsWith(".jsonl")&&!l(T)&&a.push({path:Be.join(this.projectDir(x),T),trusted:!!r,archived:!1});if(n?.includeArchived){let T=[];try{T=await Je.readdir(Be.join(this.projectDir(x),"archived"))}catch{T=[]}for(let I of T)I.endsWith(".jsonl")&&!l(I)&&a.push({path:Be.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:Be.join(this.sessionsDir,x.name),trusted:!1,archived:!1});let m=[],p=i(async(x,S,T)=>{try{let I=await tW(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=BR(A.runtimeInfo)?A.runtimeInfo:void 0,v=A.scope==="managed-task-worker"?"managed-task-worker":"user";if(r&&!S){let se=Ed(o,D),ge=D?.workspaceRoot?$R(D.workspaceRoot,o.workspaceRoot??""):$R(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 NR(x)-1-z);return{id:Be.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 NR(x);return{id:Be.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 S=await Promise.all(a.slice(x,x+h).map(T=>p(T.path,T.trusted,T.archived)));for(let T of S)T&&!g.has(T.id)&&(g.add(T.id),m.push(T))}let y=n?.limit??10;return m.sort((x,S)=>{let T=x.createdAt?Date.parse(x.createdAt):Number.NaN,I=S.createdAt?Date.parse(S.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:S.id.localeCompare(x.id)}).slice(0,y).map(({id:x,title:S,msgCount:T,runtimeInfo:I,createdAt:A,archived:$})=>({id:x,title:S,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=Be.dirname(r);if(Be.basename(o)==="archived"){n=!0;return}await this.movePair(t,o,Be.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=Be.dirname(r);if(Be.basename(o)!=="archived"){n=!0;return}await this.movePair(t,o,Be.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=Be.join(n,o);if(Jn.existsSync(s))try{await Je.rename(s,Be.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=Be.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=Be.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(Be.join(m,h))}}}}catch{}return n}};import xi from"node:fs";import dl from"node:fs/promises";import Bn from"node:path";async function nW(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 dl.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 dl.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 dl.readdir(c))r(l)&&n.push(Bn.join(c,l))}catch{}}}return n}i(nW,"collectSessionFilePaths");function bo(e){return e!==void 0?new Co({sessionsDir:e}):new Co}i(bo,"getStorage");function HR(e){return e??Ga}i(HR,"resolveSessionsDir");async function FR(e){return WR(e,void 0)}i(FR,"listSessions");async function WR(e,t){try{let n=HR(t);await ul(n);let r=e?.projectRoot,o=bo(t);await dl.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(rW);let u=await nW(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 dl.readFile(h,"utf-8")).trim(),S=x.split(`
|
|
566
|
+
`)[0];if(!S)continue;let T=JSON.parse(S);if(T===null||typeof T!="object"||T._type!=="meta")continue;let I=T,A=I.scope==="managed-task-worker"?"managed-task-worker":"user";if(s==="user"&&A!=="user"||s==="managed-task-worker"&&A!=="managed-task-worker")continue;let $=typeof I.createdAt=="string"?I.createdAt:void 0;if(l!==void 0&&$!==void 0){let L=Date.parse($);if(!Number.isNaN(L)&&L>=l)continue}let F=x.split(`
|
|
567
|
+
`).length,D=typeof I.extensionRecordCount=="number"&&I.extensionRecordCount>0?I.extensionRecordCount:0,v=typeof I.activeMessageCount=="number"&&I.activeMessageCount>=0?I.activeMessageCount:Math.max(0,F-1-D),z=I.runtimeInfo!==null&&typeof I.runtimeInfo=="object"?UR(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:S,projectKey:T,archived:I})=>({id:h,title:g,msgCount:y,...x!==void 0?{createdAt:x}:{},...S!==void 0?{runtimeInfo:S}:{},...T!==void 0?{projectKey:T}:{},...I?{archived:!0}:{}}))}catch{return[]}}i(WR,"listSessionsImpl");function UR(e){if(!(!e.workspaceRoot&&!e.canonicalRepoRoot))return{...e.workspaceRoot?{workspaceRoot:e.workspaceRoot}:{},...e.canonicalRepoRoot?{gitRoot:e.canonicalRepoRoot}:{}}}i(UR,"extractRuntimeInfoSummary");function rW(e){let t=e.runtimeInfo?UR(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(rW,"toSessionSummary");async function jR(e){return GR(e,void 0)}i(jR,"loadSession");async function GR(e,t){try{return await bo(t).load(e)}catch{return null}}i(GR,"loadSessionImpl");async function KR(e,t){return VR(e,t,void 0)}i(KR,"forkSession");async function VR(e,t,n){try{return await bo(n).fork(e,t?.selector,{sessionId:t?.sessionId,title:t?.title})}catch{return null}}i(VR,"forkSessionImpl");async function zR(e,t){return XR(e,t,void 0)}i(zR,"rewindSession");async function XR(e,t,n){try{return await bo(n).rewind(e,t?.selector)}catch{return null}}i(XR,"rewindSessionImpl");async function YR(e,t){return qR(e,t,void 0)}i(YR,"setActiveEntry");async function qR(e,t,n){try{return await bo(n).setActiveEntry(e,t)}catch{return null}}i(qR,"setActiveEntryImpl");async function cm(){try{return fw({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(cm,"listRunningSessions");async function JR(e){return QR(e,void 0)}i(JR,"deleteSession");async function QR(e,t){try{let r=(await cm()).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(QR,"deleteSessionImpl");async function ZR(e){return eE(e,void 0)}i(ZR,"archiveSession");async function eE(e,t){try{return await bo(t).archive(e)}catch{return!1}}i(eE,"archiveSessionImpl");async function tE(e){return nE(e,void 0)}i(tE,"unarchiveSession");async function nE(e,t){try{return await bo(t).unarchive(e)}catch{return!1}}i(nE,"unarchiveSessionImpl");function rE(e){return oE(e,void 0)}i(rE,"watchSessions");function oE(e,t){let n=HR(t);return ul(n).catch(()=>{}),process.platform==="win32"?sW(e,n):oW(e,n)}i(oE,"watchSessionsImpl");function Fy(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(Fy,"sessionIdFromFilename");function oW(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=Fy(m);if(!p)return;let h=l==="rename"?iW(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(oW,"watchSessionsPosix");function iW(e,t){try{return xi.statSync(Bn.join(e,t)),"add"}catch{return"remove"}}i(iW,"detectRenameKind");function sW(e,t){let n=!1,r=new Set;function o(c,l){try{for(let u of xi.readdirSync(l)){let m=Fy(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=Fy(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(sW,"watchSessionsWindows");function aW(e){let t=e?.sessionsDir,n=t!==void 0?new Co({sessionsDir:t}):new Co;return t===void 0?{listSessions:FR,loadSession:jR,forkSession:KR,rewindSession:zR,setActiveEntry:YR,deleteSession:JR,archiveSession:ZR,unarchiveSession:tE,listRunningSessions:cm,watchSessions:rE,storage:n}:{listSessions:i(r=>WR(r,t),"listSessions"),loadSession:i(r=>GR(r,t),"loadSession"),forkSession:i((r,o)=>VR(r,o,t),"forkSession"),rewindSession:i((r,o)=>XR(r,o,t),"rewindSession"),setActiveEntry:i((r,o)=>qR(r,o,t),"setActiveEntry"),deleteSession:i(r=>QR(r,t),"deleteSession"),archiveSession:i(r=>eE(r,t),"archiveSession"),unarchiveSession:i(r=>nE(r,t),"unarchiveSession"),listRunningSessions:cm,watchSessions:i(r=>oE(r,t),"watchSessions"),storage:n}}i(aW,"createSessionManager");export{ts as a,ns as b,Va as c,rs as d,za as e,fp as f,jo as g,Go as h,os as i,Ko as j,Cu as k,Vo as l,is as m,bu as n,vu as o,ss as p,pn as q,or as r,ir as s,YE as t,en as u,Xa as v,hp as w,gp as x,tn as y,yp as z,xp as A,cS as B,lS as C,re as D,bW as E,Qp as F,lL as G,id as H,uc as I,zT as J,pL as K,hL as L,gn as M,N,kK as O,zt as P,eh as Q,nh as R,sd as S,rh as T,qT as U,dc as V,bs as W,Jo as X,oh as Y,lr as Z,zn as _,Xn as $,co as aa,fd as ba,ur as ca,pd as da,Zo as ea,hh as fa,Dr as ga,wc as ha,ks as ia,mP as ja,kh as ka,_s as la,Ls as ma,Bh as na,ii as oa,Od as pa,Hh as qa,Ac as ra,Wh as sa,Os as ta,d1 as ua,Dn as va,vb as wa,Ib as xa,x1 as ya,w1 as za,hO as Aa,ci as Ba,yO as Ca,Fs as Da,NO as Ea,HO as Fa,FO as Ga,sg as Ha,ag as Ia,UO as Ja,lg as Ka,ug as La,lf as Ma,uf as Na,df as Oa,fg as Pa,mf as Qa,ff as Ra,pg as Sa,pf as Ta,Bc as Ua,Hc as Va,bv as Wa,gf as Xa,gg as Ya,xg as Za,Sg as _a,yf as $a,Tg as ab,xf as bb,wf as cb,Ig as db,Sf as eb,Uc as fb,jc as gb,Bv as hb,gD as ib,yD as jb,Fv as kb,TD as lb,CD as mb,Gc as nb,hr as ob,Vc as pb,Ks as qb,bD as rb,bf as sb,kD as tb,RD as ub,vf as vb,Eg as wb,If as xb,Mg as yb,vy as zb,AH as Ab,LH as Bb,FH as Cb,Wk as Db,Uk as Eb,WH as Fb,jH as Gb,Jf as Hb,Vk as Ib,jr as Jb,zk as Kb,Xk as Lb,Yk as Mb,VH as Nb,rl as Ob,zH as Pb,XH as Qb,lF as Rb,Ly as Sb,dF as Tb,fF as Ub,mF as Vb,pF as Wb,gF as Xb,yF as Yb,xF as Zb,wF as _b,fR as $b,Co as ac,FR as bc,jR as cc,KR as dc,zR as ec,YR as fc,cm as gc,JR as hc,ZR as ic,tE as jc,rE as kc,aW as lc};
|