@kodax-ai/kodax 0.7.39 → 0.7.41
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 +100 -0
- package/README.md +58 -0
- package/README_CN.md +31 -0
- package/dist/chunks/{chunk-SF7WD7E5.js → chunk-5TFLMGER.js} +1 -1
- package/dist/chunks/{chunk-HUAU4KB3.js → chunk-6OB4AJOM.js} +1 -1
- package/dist/chunks/chunk-6QO6HWGU.js +30 -0
- package/dist/chunks/{chunk-SONW6AC7.js → chunk-EQ5DGS2W.js} +1 -1
- package/dist/chunks/chunk-EVIDQWMF.js +5 -0
- package/dist/chunks/chunk-HYWVRTFA.js +1233 -0
- package/dist/chunks/chunk-SX2IS5JP.js +16 -0
- package/dist/chunks/chunk-V4WSBIXB.js +2 -0
- package/dist/chunks/chunk-ZPJPNLBK.js +462 -0
- package/dist/chunks/compaction-config-LT5PEXPT.js +2 -0
- package/dist/chunks/{construction-bootstrap-XSE7ZABG.js → construction-bootstrap-HBCWJFHC.js} +1 -1
- package/dist/chunks/{devtools-MOFU7YQF.js → devtools-EYGFOXEU.js} +1 -1
- package/dist/chunks/{dist-WKW4CBG6.js → dist-M57GIWR4.js} +1 -1
- package/dist/chunks/dist-V3BS2NKB.js +2 -0
- package/dist/chunks/paste-5DSTHQGK.js +2 -0
- package/dist/chunks/{utils-3HW4KOGE.js → utils-FAFUQJ2A.js} +1 -1
- package/dist/index.d.ts +232 -7
- package/dist/index.js +2 -2
- package/dist/kodax_cli.js +945 -923
- package/dist/sdk-agent.d.ts +1459 -10
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +4543 -14
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-llm.d.ts +209 -10
- package/dist/sdk-llm.js +1 -1
- package/dist/sdk-repl.d.ts +2694 -13
- package/dist/sdk-repl.js +1 -1
- package/dist/sdk-skills.d.ts +487 -11
- package/dist/sdk-skills.js +1 -1
- package/dist/types-chunks/bash-prefix-extractor.d-B2iliwdi.d.ts +2432 -0
- package/dist/types-chunks/capability.d-BxNgd1-c.d.ts +368 -0
- package/dist/types-chunks/cost-tracker.d-C4dMlQuV.d.ts +342 -0
- package/dist/types-chunks/history-cleanup.d-q1vAvCss.d.ts +1266 -0
- package/dist/types-chunks/instance-discovery.d-DZhp77vb.d.ts +1217 -0
- package/dist/types-chunks/resolver.d-BwD6TKz7.d.ts +262 -0
- package/dist/types-chunks/storage.d-Bv9T99Qu.d.ts +584 -0
- package/dist/types-chunks/types.d-C5mHR87z.d.ts +119 -0
- package/package.json +8 -2
- package/dist/acp_events.d.ts +0 -109
- package/dist/acp_logger.d.ts +0 -20
- package/dist/acp_server.d.ts +0 -92
- package/dist/chunks/chunk-4E76FLZ3.js +0 -2
- package/dist/chunks/chunk-7LQ2NCHF.js +0 -1221
- package/dist/chunks/chunk-N2VZ2MJF.js +0 -11
- package/dist/chunks/chunk-WEEQZYZS.js +0 -460
- package/dist/chunks/chunk-XI75LZIO.js +0 -30
- package/dist/chunks/compaction-config-YL4SWWII.js +0 -2
- package/dist/chunks/dist-AMUYI7R5.js +0 -2
- package/dist/cli_commands.d.ts +0 -17
- package/dist/cli_option_helpers.d.ts +0 -49
- package/dist/cli_option_helpers.test.d.ts +0 -1
- package/dist/constructed_cli.d.ts +0 -82
- package/dist/constructed_cli.test.d.ts +0 -1
- package/dist/kodax_cli.d.ts +0 -7
- package/dist/self_modify_cli.d.ts +0 -81
- package/dist/self_modify_cli.test.d.ts +0 -9
- package/dist/skill_cli.d.ts +0 -15
- package/dist/skill_cli.test.d.ts +0 -1
|
@@ -0,0 +1,462 @@
|
|
|
1
|
+
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
+
import{A as Yy,B as qy,C as Qy,a as Z,c as Pr,j as vi,k as jn,l as Ii,m as mo,n as zy,o as Xy,p as Cl,q as Uf,r as bl,s as jf,t as Gf,u as Kf,w as Vf,x as zf,y as fr,z as po}from"./chunk-5TFLMGER.js";import{a as vl}from"./chunk-6OB4AJOM.js";import{n as Jy,o as Zy,p as ex}from"./chunk-EVIDQWMF.js";import{$ as ky,Aa as pn,Bc as Hy,Bd as Wf,Ca as Rt,Cc as Fy,Cd as jy,Dd as Gy,Ea as wi,Fa as Ti,Ga as $y,Ha as Si,Ia as Ci,Ja as bi,Ka as wl,La as fo,Ma as Ly,Na as Ff,Oa as aa,Ob as Tl,P as vy,Pa as Oy,Q as xl,Rb as Ny,Rd as Ky,S as sa,T as Iy,Ta as dr,c as Nf,d as ia,e as Cy,fd as ca,g as Bf,gc as By,hb as Dy,le as Vy,oe as Sl,qa as Ry,ra as Hf,sa as Ey,ya as xi,yd as Wy,zd as Uy}from"./chunk-HYWVRTFA.js";import{Ja as yl,La as by,ia as hi,ja as yi,k as lo,la as Un}from"./chunk-SX2IS5JP.js";import{B as Py,g as My,h as Ay,i as _y,v as ur,w as uo}from"./chunk-EQ5DGS2W.js";import{$ as Sy,Q as hl,j as co,ja as mi,ka as pi,la as gi}from"./chunk-6QO6HWGU.js";import{a as i,b as Df,c as Nv}from"./chunk-V4WSBIXB.js";var jw=Df((hF,Uw)=>{"use strict";Uw.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 qw=Df((xF,Yw)=>{"use strict";var Xw="(?:"+["\\|\\|","\\&\\&",";;","\\|\\&","\\<\\(","\\<\\<\\<",">>",">\\&","<\\&","[&;()|<>]"].join("|")+")",Gw=new RegExp("^"+Xw+"$"),Kw="|&;()<> \\t",hE='"((\\\\"|[^"])*?)"',yE="'((\\\\'|[^'])*?)'",xE=/^#$/,Vw="'",zw='"',Fm="$",Io="",wE=4294967296;for(Wm=0;Wm<4;Wm++)Io+=(wE*Math.random()).toString(16);var Wm,TE=new RegExp("^"+Io);function SE(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(SE,"matchAll");function CE(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+Io+JSON.stringify(r)+Io:t+r}i(CE,"getVar");function bE(e,t,n){n||(n={});var r=n.escape||"\\",o="(\\"+r+`['"`+Kw+`]|[^\\s'"`+Kw+"])+",s=new RegExp(["("+Xw+")","("+o+"|"+hE+"|"+yE+")+"].join("|"),"g"),a=SE(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(Gw.test(u))return{op:u};var m=!1,p=!1,g="",x=!1,y;function C(){y+=1;var P,L,U=u.charAt(y);if(U==="{"){if(y+=1,u.charAt(y)==="}")throw new Error("Bad substitution: "+u.slice(y-2,y+1));if(P=u.indexOf("}",y),P<0)throw new Error("Bad substitution: "+u.slice(y));L=u.slice(y,P),y=P}else if(/[*@#?$!_-]/.test(U))L=U,y+=1;else{var D=u.slice(y);P=D.match(/[^\w\d_]/),P?(L=D.slice(0,P.index),y+=P.index-1):(L=D,y=u.length)}return CE(t,"",L)}for(i(C,"parseEnvVar"),y=0;y<u.length;y++){var w=u.charAt(y);if(x=x||!m&&(w==="*"||w==="?"),p)g+=w,p=!1;else if(m)w===m?m=!1:m==Vw?g+=w:w===r?(y+=1,w=u.charAt(y),w===zw||w===r||w===Fm?g+=w:g+=r+w):w===Fm?g+=C():g+=w;else if(w===zw||w===Vw)m=w;else{if(Gw.test(w))return{op:u};if(xE.test(w)){c=!0;var b={comment:e.slice(l.index+y+1)};return g.length?[g,b]:[b]}else w===r?p=!0:w===Fm?g+=C():g+=w}}return x?{op:"glob",pattern:g}:g}).reduce(function(l,u){return typeof u>"u"?l:l.concat(u)},[])}i(bE,"parseInternal");Yw.exports=i(function(t,n,r){var o=bE(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("("+Io+".*?"+Io+")","g"));return c.length===1?s.concat(c[0]):s.concat(c.filter(Boolean).map(function(l){return TE.test(l)?JSON.parse(l.split(Io)[1]):l}))},[])},"parse")});var Qw=Df(Um=>{"use strict";Um.quote=jw();Um.parse=qw()});import{spawnSync as Bv}from"node:child_process";function Il(e){return e==="1"||e?.toLowerCase()==="true"}i(Il,"isTruthyEnv");function tx(e){return e==="0"||e?.toLowerCase()==="false"}i(tx,"isFalseyEnv");function ki(e=process.env){return e.TERM_PROGRAM?.toLowerCase()==="vscode"||!!e.VSCODE_GIT_IPC_HANDLE||!!e.VSCODE_INJECTION}i(ki,"isVsCodeTerminalHostEnv");function Ri(e={}){let t=e.env??process.env;return(e.platform??process.platform)==="win32"||!!t.WT_SESSION}i(Ri,"hasCursorUpViewportYankRisk");function Hv(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}i(Hv,"isSshSession");function la(e={}){let t=e.env??process.env;return Il(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&Hv(t)}i(la,"isRemoteConptyHost");function Ei(e={}){let t=e.env??process.env;return Ri(e)||ki(t)}i(Ei,"hasMainScreenRenderScrollRisk");function Fv(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}i(Fv,"isTmuxControlModeEnvHeuristic");var mr;function ua(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(Fv(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=Bv("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(ua,"isTmuxControlMode");function Xf(){mr=void 0}i(Xf,"resetTmuxControlModeProbeForTesting");function go(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":ua(e)?"tmux_control_mode":ki(t)?"xtermjs_host":la(e)?"remote_conpty_host":Ri(e)?"degraded_vt":"native_vt"}i(go,"detectTerminalRenderHost");var ho=go;function Mi(e={}){let t=e.env??process.env;if(Il(t.KODAX_FORCE_INK))return"legacy";let n=t.KODAX_TUI_RENDERER?.trim().toLowerCase();return n==="legacy"||n==="owned"||n==="auto"?n:"auto"}i(Mi,"resolveConfiguredTuiRendererMode");function yo(e={}){let t=Mi(e);if(t==="legacy"||t==="owned")return t;let n=go(e);return n==="unsupported_control_host"||n==="tmux_control_mode"?"legacy":"owned"}i(yo,"resolveEffectiveTuiRendererMode");function kl(e={}){let t=e.env??process.env;if(Il(t.KODAX_FORCE_CLASSIC_REPL))return"classic";let n=Mi({env:t});if(n==="legacy"||n==="owned")return"ink";let r=go(e);return r==="unsupported_control_host"||r==="tmux_control_mode"?"classic":"ink"}i(kl,"resolveInteractiveSurfacePreference");var nx={enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!0};function xo(e,t="owned",n={}){let r=n.env??process.env;return tx(r.KODAX_FULLSCREEN)?nx:Wv(e,t)}i(xo,"resolveFullscreenPolicy");function Wv(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 nx;default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}}i(Wv,"buildFullscreenPolicy");function Ai(e,t={}){let n=t.rendererMode??"owned",r=xo(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(Ai,"getTerminalHostCapabilities");function Rl(e={}){return yo(e)==="owned"}i(Rl,"isOwnedRendererPreferred");function El(e={}){let t=e.env??process.env;return Il(t.KODAX_FORCE_CLASSIC_REPL)&&!tx(t.KODAX_FORCE_CLASSIC_REPL)}i(El,"isClassicReplForced");var _i=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}},Yf=1,qf=2,Uv=1e3,rx;function Ml(){if(!(typeof Intl>"u"||typeof Intl.Segmenter!="function"))return rx??=new Intl.Segmenter("en",{granularity:"grapheme"}),rx}i(Ml,"getGraphemeSegmenter");function nn(e){if(!e)return 0;let t=Ml();if(t){let n=0;for(let r of t.segment(e))n++;return n}return[...e].length}i(nn,"getCodePointLength");function Gn(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(Gn,"isWideChar");function Kn(e){if(!e)return 0;let t=0,n=Ml();if(n)for(let r of n.segment(e))t+=Gn(r.segment)?qf:Yf;else for(let r of e)t+=Gn(r)?qf:Yf;return t}i(Kn,"getVisualWidth");function jv(e,t){if(!e||t<0)return"";let n=Ml();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(jv,"getCharAtCodePoint");function Vt(e){if(!e)return[];let t=Ml();if(t){let n=[];for(let r of t.segment(e))n.push(r.segment);return n}return[...e]}i(Vt,"splitByCodePoints");function Gv(e,t,n){return Vt(e).slice(t,n).join("")}i(Gv,"sliceByCodePoints");function ox(e,t){let n=Math.max(0,t),r=Vt(e),o=0,s=0;for(;o<r.length;){let a=Gn(r[o])?qf:Yf;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(ox,"splitAtVisualColumn");function da(e,t,n=!1){if(!e||t<=0)return"";let r="\u2026",s=n?t-1:t,a="",c=0,l=Vt(e);for(let u of l){let m=Gn(u)?2:1;if(c+m>s)break;a+=u,c+=m}return n&&a.length<e.length&&(a+=r),a}i(da,"truncateByVisualWidth");var Qf=new _i(Uv);function Jf(e){let t=Qf.get(e);if(t!==void 0)return t;let n=Kn(e);return Qf.set(e,n),n}i(Jf,"getVisualWidthCached");function zt(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=Vt(l);for(;u<m.length;){let p="",g=0,x=u,y=-1;for(let C=u;C<m.length;C++){let w=m[C],b=Gn(w)?2:1;if(g+b>t){y>=0&&C-u>0?(p=m.slice(u,y).join(""),g=m.slice(u,y).reduce((P,L)=>P+(Gn(L)?2:1),0),x=y):p.length===0&&b>t&&(p=w,g=b,x=C+1);break}p+=w,g+=b,x=C+1,w===" "&&(y=C+1)}if(p.length>0||o.length===0){let C=u,w=o.length;o.push(p),s[c].push([w,C]),a.push([c,C])}u=x}}return{visualLines:o,logicalToVisualMap:s,visualToLogicalMap:a}}i(zt,"calculateVisualLayout");function Zf(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[x,y]of a)if(y<=s)c=[x,y];else break;let[l,u]=c??a[0],m=r[l]??"",p=Math.max(0,s-u),g=Kn(Gv(m,0,p));return[l,g]}i(Zf,"calculateVisualCursorFromLayout");var em={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"]}},ix={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 sx={dark:em,minimal:ix};function te(e="dark"){return sx[e]??em}i(te,"getTheme");function cO(){return Object.keys(sx)}i(cO,"getThemeNames");import{jsx as Dt,jsxs as hn,Fragment as JR}from"react/jsx-runtime";import{useMemo as su}from"react";import{jsx as Mw}from"react/jsx-runtime";import{createContext as ER,useContext as bo,useEffect as Ki,useMemo as Ew,useState as MR,useCallback as Aw,useRef as Zl}from"react";import{Stream as oR}from"node:stream";import{openSync as iR,writeSync as hw}from"node:fs";import{performance as sR}from"node:perf_hooks";import{tmpdir as aR}from"node:os";import{join as cR}from"node:path";import tm,{forwardRef as zv,useContext as Xv}from"react";import{createContext as Kv}from"react";var Pi=Kv({isScreenReaderEnabled:!1});import{createContext as Vv}from"react";var Al=Vv(void 0);var ax=zv(({children:e,backgroundColor:t,"aria-label":n,"aria-hidden":r,"aria-role":o,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:l}=Xv(Pi),u=n?tm.createElement("ink-text",null,n):void 0;if(l&&r)return null;let m=tm.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?tm.createElement(Al.Provider,{value:t},m):m});ax.displayName="Box";var gn=ax;import Jv,{useContext as cx}from"react";import $i from"chalk";import $r from"chalk";var Yv=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,qv=/^ansi256\(\s?(\d+)\s?\)$/;function Qv(e){return e in $r}i(Qv,"isNamedColor");function _n(e,t,n){if(!t)return e;if(Qv(t)){let r=$r;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"?$r.hex(t)(e):$r.bgHex(t)(e);if(t.startsWith("ansi256")){let r=qv.exec(t);if(!r)return e;let o=Number(r[1]);return n==="foreground"?$r.ansi256(o)(e):$r.bgAnsi256(o)(e)}if(t.startsWith("rgb")){let r=Yv.exec(t);if(!r)return e;let o=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?$r.rgb(o,s,a)(e):$r.bgRgb(o,s,a)(e)}return e}i(_n,"colorize");function Xt({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}){let{isScreenReaderEnabled:g}=cx(Pi),x=cx(Al),y=g&&m?m:u;if(y==null)return null;let C=i(w=>{let b=w;n&&(b=$i.dim(b)),e&&(b=_n(b,e,"foreground"));let P=t??x;return P&&(b=_n(b,P,"background")),r&&(b=$i.bold(b)),o&&(b=$i.italic(b)),s&&(b=$i.underline(b)),a&&(b=$i.strikethrough(b)),c&&(b=$i.inverse(b)),b},"transform");return g&&p?null:Jv.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:l},internal_transform:C},g&&m?m:u)}i(Xt,"Text");import Zv,{useLayoutEffect as eI,useMemo as lx,useState as tI}from"react";function nm({items:e,children:t,style:n}){let[r,o]=tI(0),s=lx(()=>e.slice(r),[e,r]);eI(()=>{o(e.length)},[e.length]);let a=s.map((l,u)=>t(l,r+u)),c=lx(()=>({position:"absolute",flexDirection:"column",...n}),[n]);return Zv.createElement("ink-box",{internal_static:!0,style:c},a)}i(nm,"Static");import Gi from"node:process";import mw from"react";import{throttle as Hk}from"es-toolkit/compat";import yr from"ansi-escapes";import Dr from"is-in-ci";import Fk from"auto-bind";import{onExit as Wk}from"signal-exit";import Uk from"patch-console";import{LegacyRoot as jk,ConcurrentRoot as Gk}from"react-reconciler/constants.js";import Kk from"yoga-layout";import Vk from"wrap-ansi";import zk from"terminal-size";import nI from"node:process";var _l=i(()=>nI.env.DEV==="true","isDev");import MI from"react-reconciler";import{DefaultEventPriority as AI,NoEventPriority as Ix}from"react-reconciler/constants.js";import*as Lr from"scheduler";import Sx from"yoga-layout";import{createContext as _I}from"react";import yI from"yoga-layout";import rI from"widest-line";var ux=new Map,oI=i(e=>{if(e.length===0)return{width:0,height:0};let t=ux.get(e);if(t)return t;let n=rI(e),r=e.split(`
|
|
3
|
+
`).length,o={width:n,height:r};return ux.set(e,o),o},"measureText"),rm=oI;import iI from"wrap-ansi";import sI from"cli-truncate";var dx={},aI=i((e,t,n)=>{let r=e+String(t)+String(n),o=dx[r];if(o)return o;let s=e;if(n==="wrap"&&(s=iI(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=sI(e,t,{position:a})}return dx[r]=s,s},"wrapText"),Pl=aI;var cI=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),lI=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),uI=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),px=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),dI=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),gx=i(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),fx=i((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!cI(c))break;n++}let r=e.slice(t,n),o=n;for(;n<e.length;){let c=e[n];if(!lI(c))break;n++}let s=e.slice(o,n),a=e[n];if(!(a===void 0||!uI(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),mx=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"),fI=i((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!px(s))break;n++}let r=e.slice(t,n),o=e[n];if(!(o===void 0||!dI(o)))return{endIndex:n+1,intermediateString:r,finalCharacter:o}},"readEscapeSequence"),mI=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"),pI=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"),om=i(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(gx(t))return!0;return!1},"hasAnsiControlCharacters"),Li=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"),hx=i(e=>{if(!om(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 Li(t,e,n,r);if(a==="["){let u=fx(e,r+2);if(u===void 0)return Li(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=mI(a);if(c!==void 0){let u=mx(e,r+2,c.allowBellTerminator);if(u===void 0)return Li(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=fI(e,r+1);if(l===void 0){if(px(a))return Li(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=fx(e,r+1);if(a===void 0)return Li(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=pI(o);if(s!==void 0){let a=mx(e,r+1,s.allowBellTerminator);if(a===void 0)return Li(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(gx(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 gI=/^[\d:;]*$/,hI=i(e=>{if(!om(e))return e;let t="";for(let n of hx(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&gI.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),yx=hI;var xx=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=xx(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o,n))),t+=o}return yx(t)},"squashTextNodes"),fa=xx;var $l=i(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:yI.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(xI.bind(null,t)),t},"createNode"),Ll=i((e,t)=>{t.parentNode&&ma(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")&&Ol(e)},"appendChildNode"),im=i((e,t,n)=>{t.parentNode&&ma(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")&&Ol(e)},"insertBeforeNode"),ma=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")&&Ol(e)},"removeChildNode"),sm=i((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),am=i((e,t)=>{e.style=t},"setStyle"),wx=i(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return pa(t,e),t},"createTextNode"),xI=i(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:fa(e),r=rm(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let o=e.style?.textWrap??"wrap",s=Pl(n,t,o);return rm(s)},"measureTextNode"),Tx=i(e=>{if(e?.parentNode)return e.yogaNode??Tx(e.parentNode)},"findClosestYogaNode"),Ol=i(e=>{Tx(e)?.markDirty()},"markNodeAsDirty"),pa=i((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,Ol(e)},"setTextNodeValue");import ge from"yoga-layout";var TI=i((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?ge.POSITION_TYPE_ABSOLUTE:ge.POSITION_TYPE_RELATIVE),"top"in t&&e.setPosition(ge.EDGE_TOP,t.top??0),"bottom"in t&&e.setPosition(ge.EDGE_BOTTOM,t.bottom??0),"left"in t&&e.setPosition(ge.EDGE_LEFT,t.left??0),"right"in t&&e.setPosition(ge.EDGE_RIGHT,t.right??0)},"applyPositionStyles"),SI=i((e,t)=>{"margin"in t&&e.setMargin(ge.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(ge.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(ge.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(ge.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(ge.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(ge.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(ge.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),CI=i((e,t)=>{"padding"in t&&e.setPadding(ge.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(ge.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(ge.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(ge.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(ge.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(ge.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(ge.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),bI=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(ge.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(ge.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(ge.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(ge.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(ge.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(ge.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(ge.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(ge.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(ge.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(ge.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(ge.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(ge.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(ge.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(ge.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(ge.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(ge.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(ge.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(ge.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(ge.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(ge.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(ge.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),vI=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"),II=i((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?ge.DISPLAY_FLEX:ge.DISPLAY_NONE)},"applyDisplayStyles"),kI=i((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(ge.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(ge.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(ge.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(ge.EDGE_RIGHT,n)}},"applyBorderStyles"),RI=i((e,t)=>{"gap"in t&&e.setGap(ge.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(ge.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(ge.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),EI=i((e,t={})=>{TI(e,t),SI(e,t),CI(e,t),bI(e,t),vI(e,t),II(e,t),kI(e,t),RI(e,t)},"styles"),cm=EI;if(_l())try{await import("./devtools-EYGFOXEU.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
|
|
4
|
+
The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
|
|
5
|
+
but this failed as it was not installed. Debugging with React Devtools requires it.
|
|
6
|
+
|
|
7
|
+
To install use this command:
|
|
8
|
+
|
|
9
|
+
$ npm install --save-dev react-devtools-core
|
|
10
|
+
`.trim()+`
|
|
11
|
+
`);else throw e}var Cx=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"),bx=i(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),Dl=Ix,lm,vx={name:void 0,version:void 0},pr=MI({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=$l(o);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){am(s,c),s.yogaNode&&cm(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_static"){lm=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}sm(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 wx(e)},resetTextContent(){},hideTextInstance(e){pa(e,"")},unhideTextInstance(e,t){pa(e,t)},getPublicInstance:i(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(Sx.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(Sx.DISPLAY_FLEX)},appendInitialChild:Ll,appendChild:Ll,insertBefore:im,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:Lr.unstable_scheduleCallback,cancelCallback:Lr.unstable_cancelCallback,shouldYield:Lr.unstable_shouldYield,now:Lr.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:i(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:i(()=>null,"getInstanceFromScope"),appendChildToContainer:Ll,insertInContainerBefore:im,removeChildFromContainer(e,t){ma(e,t),bx(t.yogaNode)},commitUpdate(e,t,n,r){lm&&e.internal_static&&(lm.isStaticDirty=!0);let o=Cx(n,r),s=Cx(n.style,r.style);if(!(!o&&!s)){if(o)for(let[a,c]of Object.entries(o)){if(a==="style"){am(e,c);continue}if(a==="internal_transform"){e.internal_transform=c;continue}if(a==="internal_static"){e.internal_static=!0;continue}sm(e,a,c)}s&&e.yogaNode&&cm(e.yogaNode,s)}},commitTextUpdate(e,t,n){pa(e,n)},removeChild(e,t){ma(e,t),bx(t.yogaNode)},setCurrentUpdatePriority(e){Dl=e},getCurrentUpdatePriority:i(()=>Dl,"getCurrentUpdatePriority"),resolveUpdatePriority(){return Dl!==Ix?Dl:AI},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:_I(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:vx.name,rendererVersion:vx.version});import DI from"widest-line";import NI from"indent-string";import Oi from"yoga-layout";import Nl from"yoga-layout";var PI=i(e=>e.getComputedWidth()-e.getComputedPadding(Nl.EDGE_LEFT)-e.getComputedPadding(Nl.EDGE_RIGHT)-e.getComputedBorder(Nl.EDGE_LEFT)-e.getComputedBorder(Nl.EDGE_RIGHT),"getMaxWidth"),kx=PI;import $I from"cli-boxes";import Bl from"chalk";var LI=i((e,t,n,r)=>{if(n.style.borderStyle){let o=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?$I[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,g=n.style.borderBottomDimColor??n.style.borderDimColor,x=n.style.borderLeftDimColor??n.style.borderDimColor,y=n.style.borderRightDimColor??n.style.borderDimColor,C=n.style.borderTop!==!1,w=n.style.borderBottom!==!1,b=n.style.borderLeft!==!1,P=n.style.borderRight!==!1,L=o-(b?1:0)-(P?1:0),U=C?_n((b?a.topLeft:"")+a.top.repeat(L)+(P?a.topRight:""),c,"foreground"):void 0;C&&p&&(U=Bl.dim(U));let D=s;C&&(D-=1),w&&(D-=1);let O=(_n(a.left,u,"foreground")+`
|
|
12
|
+
`).repeat(D);x&&(O=Bl.dim(O));let I=(_n(a.right,m,"foreground")+`
|
|
13
|
+
`).repeat(D);y&&(I=Bl.dim(I));let ce=w?_n((b?a.bottomLeft:"")+a.bottom.repeat(L)+(P?a.bottomRight:""),l,"foreground"):void 0;w&&g&&(ce=Bl.dim(ce));let ye=C?1:0;U&&r.write(e,t,U,{transformers:[]}),b&&r.write(e,t+ye,O,{transformers:[]}),P&&r.write(e+o-1,t+ye,I,{transformers:[]}),ce&&r.write(e,t+s-1,ce,{transformers:[]})}},"renderBorder"),Rx=LI;var OI=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 g=_n(" ".repeat(m),n.style.backgroundColor,"background");for(let x=0;x<p;x++)r.write(e+a,t+l+x,g,{transformers:[]})},"renderBackground"),Ex=OI;var BI=i((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),o=n.getComputedTop();t=`
|
|
14
|
+
`.repeat(o)+NI(t,r)}return t},"applyPaddingToText"),Hl=i((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===Oi.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=fa(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=>Hl(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"),Mx=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()===Oi.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=fa(e);if(g.length>0){let x=DI(g),y=kx(c);if(x>y){let C=e.style.textWrap??"wrap";g=Pl(g,y,C)}g=BI(e,g),t.write(l,u,g,{transformers:m})}return}let p=!1;if(e.nodeName==="ink-box"){Ex(l,u,e,t),Rx(l,u,e,t);let g=e.style.overflowX==="hidden"||e.style.overflow==="hidden",x=e.style.overflowY==="hidden"||e.style.overflow==="hidden";if(g||x){let y=g?l+c.getComputedBorder(Oi.EDGE_LEFT):void 0,C=g?l+c.getComputedWidth()-c.getComputedBorder(Oi.EDGE_RIGHT):void 0,w=x?u+c.getComputedBorder(Oi.EDGE_TOP):void 0,b=x?u+c.getComputedHeight()-c.getComputedBorder(Oi.EDGE_BOTTOM):void 0;t.clip({x1:y,x2:C,y1:w,y2:b}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let g of e.childNodes)Mx(g,t,{offsetX:l,offsetY:u,transformers:m,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),um=Mx;import HI from"slice-ansi";import FI from"string-width";import{styledCharsFromTokens as WI,styledCharsToString as UI,tokenize as jI}from"@alcalzone/ansi-tokenize";var dm=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=WI(jI(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=FI(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}},Di=class{static{i(this,"Output")}width;height;operations=[];caches=new dm;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",g=typeof u?.y1=="number"&&typeof u?.y2=="number";if(p){let x=this.caches.getWidestLine(o);if(a+x<u.x1||a>u.x2)continue}if(g){let x=l.length;if(c+x<u.y1||c>u.y2)continue}if(p&&(l=l.map(x=>{let y=a<u.x1?u.x1-a:0,C=this.caches.getStringWidth(x),w=a+C>u.x2?u.x2-a:C;return HI(x,y,w)}),a<u.x1&&(a=u.x1)),g){let x=c<u.y1?u.y1-c:0,y=l.length,C=c+y>u.y2?u.y2-c:y;l=l.slice(x,C),c<u.y1&&(c=u.y1)}}let m=0;for(let[p,g]of l.entries()){let x=t[c+m];if(!x)continue;for(let w of s)g=w(g,p);let y=this.caches.getStyledChars(g),C=a;for(let w of y){x[C]=w;let b=Math.max(1,this.caches.getStringWidth(w.value));if(b>1)for(let P=1;P<b;P++)x[C+P]={type:"char",value:"",fullWidth:!1,styles:w.styles};C+=b}m++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let o=r.filter(s=>s!==void 0);return UI(o).trimEnd()}).join(`
|
|
18
|
+
`),height:t.length}}};var gr={Single:0,Wide:1,SpacerTail:2},wo={char:" ",width:gr.Single,style:"",hyperlink:void 0};function Ax(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(wo);return{width:e,height:t,cells:n}}i(Ax,"createScreen");function Ni(e,t,n){if(!(t<0||n<0||t>=e.width||n>=e.height))return e.cells[n*e.width+t]}i(Ni,"cellAt");function _x(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(wo),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(_x,"createScreenBuilder");function*Fl(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=Ni(e,s,o),c=Ni(t,s,o);GI(a,c)||(yield{x:s,y:o,prev:a,next:c})}}i(Fl,"diffEach");function GI(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(GI,"cellsEqual");var fm="\x1B]8;";function KI(e){return e.endsWith("\x07")?e.slice(0,-1):e}i(KI,"stripOsc8Terminator");function VI(e){if(!e.startsWith(fm))return;let t=e.slice(fm.length),n=t.indexOf(";");if(n<0)return;let r=t.slice(n+1),o=KI(r);return o.length>0?o:void 0}i(VI,"parseOsc8Url");function zI(e){if(e.value==="")return{char:"",width:gr.SpacerTail,style:"",hyperlink:void 0};let t="",n;for(let r of e.styles)if(r.code.startsWith(fm)){let o=VI(r.code);o!==void 0&&(n=o)}else t+=r.code;return{char:e.value,width:e.fullWidth?gr.Wide:gr.Single,style:t,hyperlink:n}}i(zI,"styledCharToCell");function Px(e){let t=e.getGrid(),n=e.width,r=e.height,o=_x(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=zI(m);p.char===wo.char&&p.width===wo.width&&p.style===wo.style&&p.hyperlink===wo.hyperlink||o.setCellAt(u,a,p)}}return o.build()}i(Px,"outputToScreen");var XI=i((e,t,n)=>{if(e.yogaNode){if(t){let p=Hl(e,{skipStaticElements:!0}),g=p===""?0:p.split(`
|
|
19
|
+
`).length,x="";return e.staticNode&&(x=Hl(e.staticNode,{skipStaticElements:!1})),{output:p,outputHeight:g,staticOutput:x?`${x}
|
|
20
|
+
`:"",frame:void 0}}let r=new Di({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});um(e,r,{skipStaticElements:!0});let o;e.staticNode?.yogaNode&&(o=new Di({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),um(e.staticNode,o,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=Px(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}};return{output:s,outputHeight:a,staticOutput:o?`${o.get().output}
|
|
21
|
+
`:"",frame:m}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),$x=XI;function Vn(...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(Vn,"csi");function Lx(e=1){return e===0?"":Vn(e,"A")}i(Lx,"cursorUp");function YI(e=1){return e===0?"":Vn(e,"B")}i(YI,"cursorDown");function qI(e=1){return e===0?"":Vn(e,"C")}i(qI,"cursorForward");function QI(e=1){return e===0?"":Vn(e,"D")}i(QI,"cursorBack");function Ox(e){return Vn(e,"G")}i(Ox,"cursorTo");var JI=Vn("G"),Dx=Vn("H");function Nx(e,t){let n="";return e<0?n+=QI(-e):e>0&&(n+=qI(e)),t<0?n+=Lx(-t):t>0&&(n+=YI(t)),n}i(Nx,"cursorMove");var ZI=Vn(2,"K");function Bx(e){if(e<=0)return"";let t="";for(let n=0;n<e;n++)t+=ZI,n<e-1&&(t+=Lx(1));return t+=JI,t}i(Bx,"eraseLines");var YD=Vn("r"),Wl=Vn(0,"m");function Hx(e){return`\x1B]${e.join(";")}\x07`}i(Hx,"osc");function ek(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(ek,"osc8Id");function ga(e,t){if(!e)return ha;let n={id:ek(e),...t??{}},r=Object.entries(n).map(([o,s])=>`${o}=${s}`).join(":");return Hx(["8",r,e])}i(ga,"link");var ha=Hx(["8","",""]);function mm(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=Ni(t,c,s);!l||l.width===gr.SpacerTail||(l.hyperlink!==o&&(o!==void 0&&(a+=ha),l.hyperlink!==void 0&&(a+=ga(l.hyperlink)),o=l.hyperlink),l.style!==r&&(r!==""&&(a+=Wl),l.style!==""&&(a+=l.style),r=l.style),a+=l.char)}o!==void 0&&(a+=ha,o=void 0),r!==""&&(a+=Wl,r=""),n.push(a.trimEnd())}return[{type:"stdout",content:n.join(`
|
|
22
|
+
`)}]}i(mm,"renderFullFrame");var tk=Object.freeze([]),nk=Object.freeze([]);function Bi(e,t){if(e===t)return{patches:tk,current:e};let n=[];return e!==""&&n.push({type:"stdout",content:Wl}),t!==""&&n.push({type:"stdout",content:t}),{patches:n,current:t}}i(Bi,"transitionStyle");function Ul(e,t){let n=Bi(e,t),r="";for(let o of n.patches)o.type==="stdout"&&(r+=o.content);return{str:r,current:n.current}}i(Ul,"transitionStyleStr");function To(e,t){if(e===t)return{patches:nk,current:e};let n=[];return e!==void 0&&n.push({type:"stdout",content:ha}),t!==void 0&&n.push({type:"stdout",content:ga(t)}),{patches:n,current:t}}i(To,"transitionHyperlink");function Fx(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(Fx,"needsWidthCompensation");var Hi=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}},Or={type:"carriageReturn"},ya={type:"stdout",content:`
|
|
23
|
+
`};function jl(e,t,n){let r=t.width===gr.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&&Fx(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(jl,"writeCellWithStyleStr");function xa(e,t,n){e.txn(r=>{let o=t-r.x,s=n-r.y;return r.x>=e.viewportWidth?[[Or,{type:"cursorMove",x:t,y:s}],{dx:o,dy:s}]:s!==0?[[Or,{type:"cursorMove",x:t,y:s}],{dx:o,dy:s}]:[[{type:"cursorMove",x:o,y:s}],{dx:o,dy:s}]})}i(xa,"moveCursorTo");function Gl(e,t,n,r){let o="",s;for(let a=n;a<r;a++){if(e.cursor.y<a){let u=a-e.cursor.y;e.txn(m=>{let p=new Array(1+u);p[0]=Or;for(let g=0;g<u;g++)p[1+g]=ya;return[p,{dx:-m.x,dy:u}]})}for(let u=0;u<t.screen.width;u++){let m=Ni(t.screen,u,a);if(!m||m.width===gr.SpacerTail||m.char===" "&&m.style===""&&m.hyperlink===void 0)continue;xa(e,u,a);let p=To(s,m.hyperlink);for(let x of p.patches)e.txn(()=>[[x],{dx:0,dy:0}]);s=p.current;let g=Ul(o,m.style);jl(e,m,g.str)&&(o=g.current)}let c=Bi(o,"");for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);o=c.current;let l=To(s,void 0);for(let u of l.patches)e.txn(()=>[[u],{dx:0,dy:0}]);s=l.current,e.txn(u=>[[Or,ya],{dx:-u.x,dy:1}])}if(o!==""||s!==void 0){let a=Bi(o,"");for(let l of a.patches)e.txn(()=>[[l],{dx:0,dy:0}]);let c=To(s,void 0);for(let l of c.patches)e.txn(()=>[[l],{dx:0,dy:0}])}}i(Gl,"renderFrameSlice");function pm(e,t){let n="";for(let r=0;r<e.width;r++){let o=Ni(e,r,t);n+=o?.char??" "}return n.trimEnd()}i(pm,"readLine");function Kl(e,t){let n=new Hi({x:0,y:0},e.viewport.width);Gl(n,e,0,e.screen.height);let r=[{type:"clearTerminal",reason:t}];for(let o of n.diff)r.push(o);return r}i(Kl,"fullResetSequence_CAUSES_FLICKER");function gm(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(gm,"computeViewportState");function Wx(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=gm(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 Fl(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(Wx,"shouldFullReset");function Ux(e,t,n){return!!(t&&t.width===2||e&&e.width===2&&!t||t&&n&&!e)}i(Ux,"shouldSkipDiff");var Vl=class{static{i(this,"LogUpdate")}options;constructor(t){this.options=t}render(t,n){if(!this.options.isTTY)return mm(n);let r=Wx(t,n,pm);return r.reset?Kl(n,r.reason):sk(t,n)}reset(){}};function hm(e,t){for(let n of t)e.txn(()=>[[n],{dx:0,dy:0}])}i(hm,"emitPatches");function jx(e,t,n){if(t!==""){let r=Bi(t,"");hm(e,r.patches)}if(n!==void 0){let r=To(n,void 0);hm(e,r.patches)}return{style:"",hyperlink:void 0}}i(jx,"resetStyleAndHyperlink");function rk(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(rk,"applyShrink");function ok(e,t,n,r){let o="",s,a=!1;for(let c of Fl(t.screen,n.screen)){let{x:l,y:u,prev:m,next:p}=c;if(r.growing&&u>=t.screen.height)continue;let g=!!(p&&p.char===" "&&p.style===""&&p.hyperlink===void 0);if(!Ux(m,p,g)){if(u<r.viewportY){a=!0;break}if(xa(e,l,u),p){let x=To(s,p.hyperlink);hm(e,x.patches),s=x.current;let y=Ul(o,p.style);jl(e,p,y.str)&&(o=y.current)}else if(m){let x=jx(e,o,s);o=x.style,s=x.hyperlink,e.txn(()=>[[{type:"stdout",content:" "}],{dx:1,dy:0}])}}}return{currentStyle:o,currentHyperlink:s,needsFullReset:a}}i(ok,"diffPass");function ik(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]=Or;for(let a=0;a<r;a++)s[1+a]=ya;return[s,{dx:-n.x,dy:r}]}let o=t.cursor.y-n.y;return o!==0||n.x!==t.cursor.x?[[Or,{type:"cursorMove",x:t.cursor.x,y:o}],{dx:t.cursor.x-n.x,dy:o}]:[[],{dx:0,dy:0}]}):xa(e,t.cursor.x,t.cursor.y)}i(ik,"restoreCursor");function sk(e,t){let n=gm(e,t),r=new Hi(e.cursor,t.viewport.width);n.shrinking&&rk(r,e,t);let o=ok(r,e,t,n);return o.needsFullReset?Kl(t,"offscreen"):(jx(r,o.currentStyle,o.currentHyperlink),n.growing&&Gl(r,t,e.screen.height,t.screen.height),ik(r,t),r.diff)}i(sk,"renderIncremental");var ak="\x1B[?25l",ck="\x1B[?25h",lk=`\x1B[2J${Dx}`;function uk(e){switch(e.type){case"stdout":return e.content;case"carriageReturn":return"\r";case"cursorHide":return ak;case"cursorShow":return ck;case"cursorMove":return Nx(e.x,e.y);case"cursorTo":return Ox(e.col);case"clear":return Bx(e.count);case"clearTerminal":return lk;case"hyperlink":return ga(e.uri)}}i(uk,"patchToBytes");function zl(e,t){let n="";for(let r of t)n+=uk(r);n.length>0&&e.write(n)}i(zl,"applyDiff");function Gx(e,t){if(t===void 0)return!1;let n=e.cellLogUpdate.render(e.prevFrame,t);return zl(e.stdout,n),e.prevFrame=t,!0}i(Gx,"applyCellFrame");function wa(e,t){return{screen:Ax(0,0),viewport:{width:t,height:e},cursor:{x:0,y:0,visible:!0}}}i(wa,"emptyFrame");import dk from"is-in-ci";var Fi="\x1B[?2026h",So="\x1B[?2026l";function Wi(e){return"isTTY"in e&&e.isTTY===!0&&!dk}i(Wi,"shouldSynchronize");var fk=new WeakMap,Kx=fk;import{EventEmitter as Pk}from"node:events";import $k from"node:process";import Co,{useState as wm,useRef as Ui,useCallback as mt,useMemo as ji,useEffect as lw}from"react";import Lk from"cli-cursor";var mk=i(e=>e>=48&&e<=63,"isCsiParameterByte"),pk=i(e=>e>=32&&e<=47,"isCsiIntermediateByte"),zx=i(e=>e>=64&&e<=126,"isCsiFinalByte");function gk(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(!(mk(s)||pk(s))&&!(s===91&&o===r))return zx(s)?{sequence:e.slice(t,o+1),nextIndex:o+1}:void 0}return"pending"}i(gk,"parseCsiSequence");function hk(e,t,n){let r=t+n+2;if(r>e.length)return"pending";let o=e.codePointAt(r-1);if(!(o===void 0||!zx(o)))return{sequence:e.slice(t,r),nextIndex:r}}i(hk,"parseSs3Sequence");function Vx(e,t,n){let r=e[t+n];if(r===void 0)return"pending";if(r==="[")return gk(e,t,n);if(r==="O")return hk(e,t,n)}i(Vx,"parseControlSequence");function yk(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(yk,"parseEscapedCodePoint");function xk(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=Vx(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=Vx(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=yk(e,o);t.push(c.sequence),n=c.nextIndex}return{events:t,pending:""}}i(xk,"parseKeypresses");function Xl(){let e="";return{push(t){let n=xk(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(Xl,"createInputParser");import{createContext as wk}from"react";var Xx=wk({exit(){}});Xx.displayName="InternalAppContext";var Yx=Xx;import{EventEmitter as Tk}from"node:events";import{createContext as Sk}from"react";var Ck={isTTY:!1,isRaw:!1,on(){},off(){},pause(){},resume(){},setRawMode(){}},qx=Sk({stdin:Ck,internal_eventEmitter:new Tk,setRawMode(){},isRawModeSupported:!1,internal_exitOnCtrlC:!0});qx.displayName="InternalStdinContext";var Qx=qx;import{createContext as bk}from"react";var vk={isTTY:!1,columns:80,rows:24,write(){return!0},on(){},off(){}},Jx=bk({stdout:vk,write(){}});Jx.displayName="InternalStdoutContext";var Zx=Jx;import{createContext as Ik}from"react";var kk={isTTY:!1,write(){return!0},on(){},off(){}},ew=Ik({stderr:kk,write(){}});ew.displayName="InternalStderrContext";var tw=ew;import{createContext as Rk}from"react";var nw=Rk({activeId:void 0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){}});nw.displayName="InternalFocusContext";var rw=nw;import{createContext as Ek}from"react";var ow=Ek({setCursorPosition(){}});ow.displayName="InternalCursorContext";var iw=ow;import Ak,{PureComponent as _k}from"react";import*as Yl from"node:fs";import{cwd as cw}from"node:process";import xt from"react";import sw from"stack-utils";import Mk from"code-excerpt";var ym=i(e=>e?.replace(`file://${cw()}/`,""),"cleanupPath"),aw=new sw({cwd:cw(),internals:sw.nodeInternals()});function xm({error:e}){let t=e.stack?e.stack.split(`
|
|
24
|
+
`).slice(1):void 0,n=t?aw.parseLine(t[0]):void 0,r=ym(n?.file),o,s=0;if(r&&n?.line&&Yl.existsSync(r)){let a=Yl.readFileSync(r,"utf8");if(o=Mk(a,n.line),o)for(let{line:c}of o)s=Math.max(s,String(c).length)}return xt.createElement(gn,{flexDirection:"column",padding:1},xt.createElement(gn,null,xt.createElement(Xt,{backgroundColor:"red",color:"white"}," ","ERROR"," "),xt.createElement(Xt,null," ",e.message)),n&&r&&xt.createElement(gn,{marginTop:1},xt.createElement(Xt,{dimColor:!0},r,":",n.line,":",n.column)),n&&o&&xt.createElement(gn,{marginTop:1,flexDirection:"column"},o.map(({line:a,value:c})=>xt.createElement(gn,{key:a},xt.createElement(gn,{width:s+1},xt.createElement(Xt,{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," "),":")),xt.createElement(Xt,{key:a,backgroundColor:a===n.line?"red":void 0,color:a===n.line?"white":void 0}," "+c)))),e.stack&&xt.createElement(gn,{marginTop:1,flexDirection:"column"},e.stack.split(`
|
|
25
|
+
`).slice(1).map(a=>{let c=aw.parseLine(a);return c?xt.createElement(gn,{key:a},xt.createElement(Xt,{dimColor:!0},"- "),xt.createElement(Xt,{dimColor:!0,bold:!0},c.function),xt.createElement(Xt,{dimColor:!0,color:"gray","aria-label":`at ${ym(c.file)??""} line ${c.line} column ${c.column}`}," ","(",ym(c.file)??"",":",c.line,":",c.column,")")):xt.createElement(gn,{key:a},xt.createElement(Xt,{dimColor:!0},"- "),xt.createElement(Xt,{dimColor:!0,bold:!0},a,"\\t"," "))})))}i(xm,"ErrorOverview");var Ta=class extends _k{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?Ak.createElement(xm,{error:this.state.error}):this.props.children}};var Ok=" ",Dk="\x1B[Z",Nk="\x1B";function uw({children:e,stdin:t,stdout:n,stderr:r,writeToStdout:o,writeToStderr:s,exitOnCtrlC:a,onExit:c,setCursorPosition:l}){let[u,m]=wm(!0),[p,g]=wm(void 0),[,x]=wm([]),y=Ui(0),C=Ui(0),w=Ui(new Pk);w.current.setMaxListeners(1/0);let b=Ui(void 0),P=Ui(Xl()),L=Ui(void 0),U=mt(()=>{L.current&&(clearImmediate(L.current),L.current=void 0)},[]),D=t.isTTY,O=mt(()=>{b.current&&(t.removeListener("readable",b.current),b.current=void 0)},[t]),I=mt(()=>{t.setRawMode(!1),O(),t.unref(),C.current=0,P.current.reset(),U()},[t,O,U]),ce=mt(ie=>{D&&C.current>0&&I(),c(ie)},[D,I,c]),ye=mt(ie=>{if(ie===""&&a){ce();return}ie===Nk&&g(A=>A&&void 0)},[a,ce]),F=mt(ie=>{ye(ie),w.current.emit("input",ie)},[ye]),z=mt(()=>{U(),L.current=setImmediate(()=>{L.current=void 0;let ie=P.current.flushPendingEscape();ie&&F(ie)})},[U,F]),v=mt(()=>{U();let ie;for(;(ie=t.read())!==null;){let A=P.current.push(ie);for(let _ of A)F(_)}P.current.hasPendingEscape()&&z()},[t,F,U,z]),M=mt(ie=>{if(!D)throw t===$k.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default.
|
|
26
|
+
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink.
|
|
27
|
+
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(t.setEncoding("utf8"),ie){C.current===0&&(t.ref(),t.setRawMode(!0),b.current=v,t.addListener("readable",v)),C.current++;return}C.current!==0&&--C.current===0&&I()},[D,t,v,I]),re=mt((ie,A)=>{let _=ie.findIndex(W=>W.id===A);for(let W=_+1;W<ie.length;W++){let ee=ie[W];if(ee?.isActive)return ee.id}},[]),xe=mt((ie,A)=>{let _=ie.findIndex(W=>W.id===A);for(let W=_-1;W>=0;W--){let ee=ie[W];if(ee?.isActive)return ee.id}},[]),Re=mt(()=>{x(ie=>(g(A=>{let _=ie.find(ee=>ee.isActive)?.id;return re(ie,A)??_}),ie))},[re]),Te=mt(()=>{x(ie=>(g(A=>{let _=ie.findLast(ee=>ee.isActive)?.id;return xe(ie,A)??_}),ie))},[xe]);lw(()=>{let ie=i(_=>{!u||y.current===0||(_===Ok&&Re(),_===Dk&&Te())},"handleTabNavigation");w.current.on("input",ie);let A=w.current;return()=>{A.off("input",ie)}},[u,Re,Te]);let le=mt(()=>{m(!0)},[]),$e=mt(()=>{m(!1)},[]),J=mt(ie=>{x(A=>(A.some(W=>W?.id===ie)&&g(ie),A))},[]),Y=mt((ie,{autoFocus:A})=>{x(_=>(y.current=_.length+1,[..._,{id:ie,isActive:!0}])),A&&g(_=>_??ie)},[]),q=mt(ie=>{g(A=>A===ie?void 0:A),x(A=>{let _=A.filter(W=>W.id!==ie);return y.current=_.length,_})},[]),Ge=mt(ie=>{x(A=>A.map(_=>_.id!==ie?_:{id:ie,isActive:!0}))},[]),Se=mt(ie=>{g(A=>A===ie?void 0:A),x(A=>A.map(_=>_.id!==ie?_:{id:ie,isActive:!1}))},[]);lw(()=>()=>{Lk.show(n),D&&C.current>0&&I()},[n,D,I]);let _e=ji(()=>({exit:ce}),[ce]),Ee=ji(()=>({stdin:t,setRawMode:M,isRawModeSupported:D,internal_exitOnCtrlC:a,internal_eventEmitter:w.current}),[t,M,D,a]),dt=ji(()=>({stdout:n,write:o}),[n,o]),we=ji(()=>({stderr:r,write:s}),[r,s]),Ze=ji(()=>({setCursorPosition:l}),[l]),et=ji(()=>({activeId:p,add:Y,remove:q,activate:Ge,deactivate:Se,enableFocus:le,disableFocus:$e,focusNext:Re,focusPrevious:Te,focus:J}),[p,Y,q,Ge,Se,le,$e,Re,Te,J]);return Co.createElement(Yx.Provider,{value:_e},Co.createElement(Qx.Provider,{value:Ee},Co.createElement(Zx.Provider,{value:dt},Co.createElement(tw.Provider,{value:we},Co.createElement(rw.Provider,{value:et},Co.createElement(iw.Provider,{value:Ze},Co.createElement(Ta,{onError:ce},e)))))))}i(uw,"App");uw.displayName="InternalApp";var dw=uw;var Bk={disambiguateEscapeCodes:1,reportEventTypes:2,reportAlternateKeys:4,reportAllKeysAsEscapeCodes:8,reportAssociatedText:16};function fw(e){let t=0;for(let n of e)t|=Bk[n];return t}i(fw,"resolveFlags");var hr={shift:1,alt:2,ctrl:4,super:8,hyper:16,meta:32,capsLock:64,numLock:128};var ql=i(()=>{},"noop"),Xk=27,Yk=91,qk=63,Qk=117,Jk=48,Zk=57,eR=i(e=>e>=Jk&&e<=Zk,"isDigitByte"),pw=i((e,t)=>{if(e[t]!==Xk||e[t+1]!==Yk||e[t+2]!==qk)return;let n=t+3,r=n;for(;n<e.length&&eR(e[n]);)n++;if(n!==r){if(n===e.length)return{state:"partial"};if(e[n]===Qk)return{state:"complete",endIndex:n}}},"matchKittyQueryResponse"),tR=i(e=>{for(let t=0;t<e.length;t++)if(pw(e,t)?.state==="complete")return!0;return!1},"hasCompleteKittyQueryResponse"),nR=i(e=>{let t=[],n=0;for(;n<e.length;){let r=pw(e,n);if(r?.state==="complete"){n=r.endIndex+1;continue}if(r?.state==="partial")break;t.push(e[n]),n++}return t},"stripKittyQueryResponsesAndTrailingPartial"),Tm=i(e=>e instanceof Error||Object.prototype.toString.call(e)==="[object Error]","isErrorInput"),rR=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){Fk(this),this.options=t,this.rootNode=$l("ink-root"),this.rootNode.onComputeLayout=this.calculateLayout,this.isScreenReaderEnabled=t.isScreenReaderEnabled??Gi.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=Hk(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 Vl({isTTY:!!t.stdout.isTTY}),this.prevFrame=wa(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?Gk:jk;this.container=pr.createContainer(this.rootNode,s,null,!1,null,"id",()=>{},()=>{},()=>{},()=>{}),this.unsubscribeExit=Wk(this.unmount,{alwaysLast:!1}),_l()&&pr.injectIntoDevTools(),t.patchConsole&&this.patchConsole(),Dr||(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:zk()?.columns??80,"getTerminalWidth");resized=i(()=>{let t=this.getTerminalWidth();if(t<this.lastTerminalWidth){let n=this.lastOutputHeight>0?yr.eraseLines(this.lastOutputHeight):"";n.length>0&&this.options.stdout.write(n),this.lastOutput="",this.lastOutputToRender="",this.cellLogUpdate.reset(),this.prevFrame=wa(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(Tm(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=wa(this.options.stdout.rows??24,this.getTerminalWidth()),n=this.cellLogUpdate.render(t,this.prevFrame);zl(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,Kk.DIRECTION_LTR)},"calculateLayout");onRender=i(()=>{if(this.hasPendingThrottledRender=!1,this.isUnmounted)return;!this.cursorHidden&&!Dr&&!this.options.debug&&!this.isScreenReaderEnabled&&(this.options.stdout.write("\x1B[?25l"),this.cursorHidden=!0);let t=performance.now(),n={rows:this.options.stdout.rows??24,columns:this.getTerminalWidth()},{output:r,outputHeight:o,staticOutput:s,frame:a}=$x(this.rootNode,this.isScreenReaderEnabled,n);this.options.onRender?.({renderTime:performance.now()-t});let c=s&&s!==`
|
|
28
|
+
`;if(this.options.debug){c&&(this.fullStaticOutput+=s),this.options.stdout.write(this.fullStaticOutput+r);return}if(Dr){c&&this.options.stdout.write(s),this.lastOutput=r,this.lastOutputToRender=r+`
|
|
29
|
+
`,this.lastOutputHeight=o;return}if(this.isScreenReaderEnabled){let p=Wi(this.options.stdout);if(p&&this.options.stdout.write(Fi),c){let y=this.lastOutputHeight>0?yr.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(y+s),this.lastOutputHeight=0}if(r===this.lastOutput&&!c){p&&this.options.stdout.write(So);return}let g=this.getTerminalWidth(),x=Vk(r,g,{trim:!1,hard:!0});if(c)this.options.stdout.write(x);else{let y=this.lastOutputHeight>0?yr.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(y+x)}this.lastOutput=r,this.lastOutputToRender=x,this.lastOutputHeight=x===""?0:x.split(`
|
|
30
|
+
`).length,p&&this.options.stdout.write(So);return}c&&(this.fullStaticOutput+=s);let l=this.altScreenActive,m=this.options.stdout.isTTY&&o>=this.options.stdout.rows&&l?r:r+`
|
|
31
|
+
`;if(this.lastOutputHeight>=this.options.stdout.rows&&l){let p=Wi(this.options.stdout);p&&this.options.stdout.write(Fi);let g=this.fullStaticOutput+m;if(this.altScreenActive){let x=this.lastOutputHeight>0?yr.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(x+g)}else this.options.stdout.write(yr.clearTerminal+this.fullStaticOutput+r);this.lastOutput=r,this.lastOutputToRender=this.altScreenActive?g:m,this.lastOutputHeight=o,this.invalidateCellFrame(),p&&this.options.stdout.write(So);return}if(c){let p=Wi(this.options.stdout);p&&this.options.stdout.write(Fi);let g=this.lastOutputHeight>0?yr.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(g+s),this.invalidateCellFrame(),this.applyCellFrame(a),p&&this.options.stdout.write(So)}else this.applyCellFrame(a);this.lastOutput=r,this.lastOutputToRender=m,this.lastOutputHeight=o},"onRender");applyCellFrame=i(t=>{let n={cellLogUpdate:this.cellLogUpdate,prevFrame:this.prevFrame,stdout:this.options.stdout},r=Gx(n,t);return this.prevFrame=n.prevFrame,r},"applyCellFrame");invalidateCellFrame=i(()=>{this.cellLogUpdate.reset(),this.prevFrame=wa(this.options.stdout.rows??24,this.getTerminalWidth())},"invalidateCellFrame");render(t){let n=mw.createElement(Pi.Provider,{value:{isScreenReaderEnabled:this.isScreenReaderEnabled}},mw.createElement(dw,{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?pr.updateContainer(n,this.container,null,ql):(pr.updateContainerSync(n,this.container,null,ql),pr.flushSyncWork())}writeToStdout(t){if(this.isUnmounted)return;if(this.options.debug){this.options.stdout.write(t+this.fullStaticOutput+this.lastOutput);return}if(Dr){this.options.stdout.write(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.options.stdout.write(t),this.invalidateCellFrame();return}let n=Wi(this.options.stdout);n&&this.options.stdout.write(Fi);let r=this.lastOutputHeight>0?yr.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(r+t),this.restoreLastOutput(),n&&this.options.stdout.write(So)}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(Dr){this.options.stderr.write(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.options.stderr.write(t),this.invalidateCellFrame();return}let n=Wi(this.options.stdout);n&&this.options.stdout.write(Fi);let r=this.lastOutputHeight>0?yr.eraseLines(this.lastOutputHeight):"";r.length>0&&this.options.stdout.write(r),this.options.stderr.write(t),this.restoreLastOutput(),n&&this.options.stdout.write(So)}unmount(t){if(this.isUnmounted||this.isUnmounting)return;this.isUnmounting=!0,this.beforeExitHandler&&(Gi.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{}Dr&&this.options.stdout.write(this.lastOutput+`
|
|
32
|
+
`)}this.kittyProtocolEnabled=!1,this.shellTransitionPhase=void 0,this.options.concurrent?pr.updateContainer(null,this.container,null,ql):(pr.updateContainerSync(null,this.container,null,ql),pr.flushSyncWork()),Kx.delete(this.options.stdout);let{exitResult:s}=this,a=i(()=>{Tm(t)?this.rejectExitPromise(t):this.resolveExitPromise(s)},"resolveOrReject"),c=t!==void 0&&!Tm(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()},Gi.once("beforeExit",this.beforeExitHandler)),this.exitPromise}clear(){if(!Dr&&!this.options.debug){let t=this.lastOutputHeight>0?yr.eraseLines(this.lastOutputHeight):"";t.length>0&&this.options.stdout.write(t),this.invalidateCellFrame()}}patchConsole(){this.options.debug||(this.restoreConsole=Uk((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=Gi.env.TERM??"",s=Gi.env.TERM_PROGRAM??"",a="KITTY_WINDOW_ID"in Gi.env||o==="xterm-kitty"||s==="WezTerm"||s==="ghostty";!Dr&&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=nR(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);tR(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[>${fw(t)}u`),this.kittyProtocolEnabled=!0}},gw=rR;var Sa=class{static{i(this,"KodaXRenderer")}engineInstance;isConcurrent;constructor(t){this.engineInstance=new gw(t),this.isConcurrent=this.engineInstance.isConcurrent}render=i(t=>{this.engineInstance.render(t)},"render");unmount=i(t=>{this.engineInstance.unmount(t)},"unmount");waitUntilExit=i(()=>this.engineInstance.waitUntilExit(),"waitUntilExit");clear=i(()=>{this.engineInstance.clear()},"clear");setAltScreenActive=i((t,n)=>{this.engineInstance.setAltScreenActive?.(t,n)},"setAltScreenActive");setShellMode=i((t,n)=>{this.engineInstance.setShellMode?.(t,n)},"setShellMode");beginShellTransition=i(t=>{this.engineInstance.beginShellTransition?.(t)},"beginShellTransition");clearTextSelection=i(()=>{this.engineInstance.clearTextSelection?.()},"clearTextSelection")};var Nr=null;function yw(){if(Nr===-1)return null;if(Nr!==null)return Nr;let e=process.env.KODAX_RENDER_TRACE;if(!e||e==="0"||e==="false")return Nr=-1,null;let t=e==="1"||e==="true"?cR(aR(),`kodax-render-trace-${process.pid}.log`):e;try{return Nr=iR(t,"a"),hw(Nr,`=== KODAX render trace pid=${process.pid} ${new Date().toISOString()} platform=${process.platform} node=${process.version} ===
|
|
33
|
+
`),Nr}catch{return Nr=-1,null}}i(yw,"resolveTraceFd");function lR(e){let t=yw();if(t!==null)try{hw(t,e)}catch{}}i(lR,"traceLine");var Ql=new WeakMap,uR={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},dR={isTTY:!1,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")},fR={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function mR(e={}){return e instanceof oR?{stdout:e}:e}i(mR,"getOptions");function pR(e,t,n){let r=Ql.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(),Ql.set(e,r)),r}i(pR,"getInstance");function Jl(e){return Ql.get(e)}i(Jl,"getRendererInstance");function Sm(e,t){let n={stdout:uR,stdin:fR,stderr:dR,debug:!1,exitOnCtrlC:!0,patchConsole:!1,maxFps:30,concurrent:!1,...mR(t)};if(yw()!==null){let s=n.stdout,a=s.write.bind(s),c=0,l=0;s.write=((g,...x)=>(c+=1,l+=typeof g=="string"?Buffer.byteLength(g,"utf8"):g?.length??0,a(g,...x)));let u=0,m=0,p=n.onRender;n.onRender=g=>{let x=sR.now(),y=u===0?0:x-u,C=s,w=C.columns??0,b=C.rows??0;return lR(`frame=${m} renderTime=${g.renderTime.toFixed(2)}ms interval=${y.toFixed(2)}ms writes=${c} bytes=${l} viewport=${w}x${b}
|
|
34
|
+
`),c=0,l=0,u=x,m+=1,p?.(g)}}let o=pR(n.stdout,()=>new Sa(n),n.concurrent??!1);return o.render(e),{rerender:o.render,unmount(){o.unmount()},waitUntilExit:o.waitUntilExit,cleanup:i(()=>{Ql.delete(n.stdout)},"cleanup"),clear:o.clear}}i(Sm,"render");var xw=gn,ww=Xt,Tw=nm;import{Buffer as hR}from"node:buffer";var yR=/^(?:\x1b)([a-zA-Z0-9])$/,xR=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,Cw={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"},bw=[...Object.values(Cw),"backspace"],wR=i(e=>["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e),"isShiftKey"),TR=i(e=>["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e),"isCtrlKey"),vw=/^\x1b\[(\d+)(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/,SR=/^\x1b\[(\d+);(\d+):(\d+)([A-Za-z~])$/,CR={A:"up",B:"down",C:"right",D:"left",E:"clear",F:"end",H:"home",P:"f1",Q:"f2",R:"f3",S:"f4"},bR={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"},Sw={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"},Iw=i(e=>e>=0&&e<=1114111&&!(e>=55296&&e<=57343),"isValidCodepoint"),Cm=i(e=>Iw(e)?String.fromCodePoint(e):"?","safeFromCodePoint");function kw(e){return e===3?"release":e===2?"repeat":"press"}i(kw,"resolveEventType");function Rw(e){return{ctrl:!!(e&hr.ctrl),shift:!!(e&hr.shift),meta:!!(e&hr.meta),option:!!(e&hr.alt),super:!!(e&hr.super),hyper:!!(e&hr.hyper),capsLock:!!(e&hr.capsLock),numLock:!!(e&hr.numLock)}}i(Rw,"parseKittyModifiers");function vR(e){let t=vw.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(!Iw(n))return null;let a;s&&(a=s.split(":").map(u=>Cm(Number.parseInt(u,10))).join(""));let c,l;return n===32?(c="space",l=!0):n===13?(c="return",l=!0):Sw[n]?(c=Sw[n],l=!1):n>=1&&n<=26?(c=String.fromCodePoint(n+96),l=!1):(c=Cm(n).toLowerCase(),l=!0),l&&!a&&(a=Cm(n)),{name:c,...Rw(r),eventType:kw(o),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:l,text:a}}i(vR,"parseKittyKeypress");function IR(e){let t=SR.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==="~"?bR[n]:CR[s];return a?{name:a,...Rw(r),eventType:kw(o),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:!1}:null}i(IR,"parseKittySpecialKey");var bm="\x1B[200~",kR="\x1B[201~";function RR(e){if(!e.startsWith(bm))return null;let t=e.indexOf(kR,bm.length);return t===-1?null:e.slice(bm.length,t)}i(RR,"extractBracketedPaste");function vm(e=""){let t=e,n;if(hR.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=RR(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=vR(t);if(r)return r;let o=IR(t);if(o)return o;if(vw.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=yR.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(n[1]??"");else if(n=xR.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=Cw[c]??"",s.shift=wR(c)||s.shift,s.ctrl=TR(c)||s.ctrl}return s}i(vm,"parseKeypress");var AR=50;function eu(e){return{columns:e?.columns??80,rows:e?.rows??24}}i(eu,"resolveTerminalSize");var Br=ER(null),Im={isTTY:!1,columns:80,rows:24,write:i(()=>!0,"write"),on:i(()=>{},"on"),off:i(()=>{},"off")};var _w={isTTY:!1,isRaw:!1,on:i(()=>{},"on"),off:i(()=>{},"off"),pause:i(()=>{},"pause"),resume:i(()=>{},"resume"),setRawMode:i(()=>{},"setRawMode")};function _R(e){for(let t of e)if(t.rawMode)return!0;return!1}i(_R,"hasRawModeSubscribers");function PR({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&&_R(r))){c();return}if(e.isRaw===!1&&!s)try{t(!0),s=!0}catch{s=!1}},"syncInputOwnership");return{subscribe(m,p={}){let g={listener:m,rawMode:p.rawMode!==!1};return r.add(g),u(),()=>{r.delete(g),u()}},dispose(){r.clear(),l()}}}i(PR,"createTerminalInputController");var $R=i(({children:e,runtime:t})=>{let[n,r]=MR(()=>t.terminalSize);Ki(()=>{if(r(eu(t.stdout)),typeof t.stdout?.on!="function"||typeof t.stdout?.off!="function")return;let c=i(()=>{r(eu(t.stdout))},"handleResize");return t.stdout.on("resize",c),()=>{t.stdout.off?.("resize",c)}},[t.stdout]);let o=Aw(c=>typeof t.stdout?.write!="function"?!1:(t.stdout.write(c),!0),[t.stdout]),s=Ew(()=>PR({stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported}),[t.stdin,t.isRawModeSupported,t.setRawMode]);Ki(()=>()=>{s.dispose()},[s]);let a=Ew(()=>({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 Mw(Br.Provider,{value:a,children:e})},"TuiRuntimeProvider");function LR(e){let t=e?.stdout??Im,n=e?.stdin??_w,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:eu(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(LR,"createRuntimeValue");function tu(e,t){let n=LR(t),r=Sm(Mw($R,{runtime:n,children:e}),t);return n.attachExit(r.unmount),r}i(tu,"render");var k=xw,S=ww,Vi=Tw;function OR(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&&bw.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(OR,"createCompatKeypress");function nu(e,t={}){let{isActive:n=!0}=t,r=Zl(e),o=Zl(null),s=Zl(null);Ki(()=>{r.current=e},[e]),Ki(()=>{if(!n){o.current=null,s.current&&(clearTimeout(s.current),s.current=null);return}return o.current=Xl(),()=>{o.current?.reset(),o.current=null,s.current&&(clearTimeout(s.current),s.current=null)}},[n]);let a=Aw(c=>{let{input:l,key:u}=OR(vm(c));l==="c"&&u.ctrl||r.current(l,u)},[]);ba(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)},AR))},{isActive:n,rawMode:!0})}i(nu,"useInput");function zn(){return{stdout:bo(Br)?.stdout??Im}}i(zn,"useStdout");function Ca(){let e=bo(Br),t=e?.stdin??_w,n=e?.setRawMode??(r=>{typeof t?.setRawMode=="function"&&t.setRawMode(r)});return{stdin:t,setRawMode:n,isRawModeSupported:e?.isRawModeSupported??typeof t?.setRawMode=="function"}}i(Ca,"useStdin");function Hr(){return{exit:bo(Br)?.exit??(()=>{})}}i(Hr,"useApp");function zi(){return bo(Br)?.stdout??Im}i(zi,"useTerminalOutput");function Xi(){let e=zi();return bo(Br)?.terminalSize??eu(e)}i(Xi,"useTerminalSize");function Yi(){let e=zi();return bo(Br)?.writeRaw??(n=>typeof e?.write!="function"?!1:(e.write(n),!0))}i(Yi,"useTerminalWrite");function ba(e,t={}){let{isActive:n=!0,rawMode:r=!0}=t,o=bo(Br),{stdin:s,setRawMode:a,isRawModeSupported:c}=Ca(),l=Zl(e);Ki(()=>{l.current=e},[e]),Ki(()=>{if(!n||!s)return;if(o)return o.subscribeInput(g=>{l.current(g)},{rawMode:r});let u=s,m=u.isRaw;r&&c&&m===!1&&a(!0);let p=i(g=>{l.current(g)},"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(ba,"useTerminalInput");import{jsx as WR}from"react/jsx-runtime";import{useInsertionEffect as UR,useMemo as jR}from"react";var DR="\x1B[?1049h",NR="\x1B[?1049l";var BR="\x1B[2J",HR="\x1B[?1000h\x1B[?1002h\x1B[?1006h",FR="\x1B[?1006l\x1B[?1002l\x1B[?1000l";function ru(e={}){let t=e.mouseTracking!==!1,n=e.clearOnEnter===!0;return DR+(n?BR:"")+"\x1B[H"+(t?HR:"")}i(ru,"buildAlternateScreenEnterSequence");function ou(e={}){return(e.mouseTracking!==!1?FR:"")+NR}i(ou,"buildAlternateScreenExitSequence");var km=i(({children:e,mouseTracking:t=!0,enabled:n=!0,clearOnEnter:r=!1})=>{let o=zi(),{rows:s}=Xi(),a=Yi(),c=jR(()=>n&&o.isTTY===!0,[n,o]);return UR(()=>{if(!c)return;let l=Jl(o);if(l?.setShellMode?.("virtual",t),l?.beginShellTransition?.("enter-alt-screen"),!!a(ru({mouseTracking:t,clearOnEnter:r})))return l?.setAltScreenActive?.(!0,t),()=>{l?.beginShellTransition?.("exit-alt-screen"),l?.clearTextSelection?.(),l?.setAltScreenActive?.(!1),a(ou({mouseTracking:t}))}},[r,c,t,o,a]),WR(k,{flexDirection:"column",height:s,width:"100%",flexGrow:1,flexShrink:0,children:e})},"AlternateScreen");import{jsx as Fr,jsxs as Ow}from"react/jsx-runtime";import{jsx as GR}from"react/jsx-runtime";import KR,{useEffect as Rm,useImperativeHandle as VR,useMemo as zR,useRef as Em,useCallback as Mm,useState as XR}from"react";function Pw(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:Am(t,t.scrollTop)}}i(Pw,"normalizeScrollSnapshot");function $w(e,t){return e.scrollTop===t.scrollTop&&e.scrollHeight===t.scrollHeight&&e.viewportHeight===t.viewportHeight&&e.pendingDelta===t.pendingDelta&&e.clampMin===t.clampMin&&e.clampMax===t.clampMax&&e.sticky===t.sticky}i($w,"areSnapshotsEqual");function YR(e,t){return e.start===t.start&&e.end===t.end&&e.scrollTop===t.scrollTop&&e.scrollHeight===t.scrollHeight&&e.viewportHeight===t.viewportHeight&&e.viewportTop===t.viewportTop&&e.pendingDelta===t.pendingDelta&&e.sticky===t.sticky}i(YR,"areWindowsEqual");function Am(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(Am,"clampScrollTop");function Lw(e){let t=Math.max(0,e.viewportHeight),n=Am(e,e.scrollTop),r=Math.max(0,e.scrollHeight-n),o=Math.max(0,r-t);return{start:o,end:r,scrollTop:n,scrollHeight:e.scrollHeight,viewportHeight:t,viewportTop:o,pendingDelta:e.pendingDelta,sticky:e.sticky}}i(Lw,"resolveScrollWindow");function qR(e){let t=Am(e,e.scrollTop);return Math.max(0,e.scrollHeight-e.viewportHeight-t)}i(qR,"resolveNativeScrollTop");var _m=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:g,renderWindow:x})=>{let y=Em(null),C=Em(new Set),w=Em(Pw({scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,sticky:l})),[b,P]=XR(()=>Lw(w.current)),L=Mm(()=>{for(let F of C.current)F()},[]),U=Mm((F,z=!0)=>{let v=w.current,M=Pw(F),re=Lw(M);return w.current=M,P(xe=>YR(xe,re)?xe:re),z&&!$w(v,M)&&L(),{previous:v,snapshot:M,window:re,changed:!$w(v,M)}},[L]);Rm(()=>{let F=w.current,z={scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,clampMin:F.clampMin,clampMax:F.clampMax,sticky:l},v=U(z);v.previous.sticky!==l&&p?.(l),v.window.scrollTop!==s&&m?.(v.window.scrollTop)},[U,p,m,a,s,l,c]);let D=Mm(()=>{let F=y.current;if(!F)return;let z=typeof F.scrollHeight=="number"?Math.max(0,Math.floor(F.scrollHeight)):void 0,v=typeof F.scrollViewportHeight=="number"?Math.max(0,Math.floor(F.scrollViewportHeight)):void 0,M=typeof F.scrollViewportTop=="number"?Math.max(0,Math.floor(F.scrollViewportTop)):void 0;if(z===void 0||v===void 0||M===void 0)return;let re=Math.max(0,z-v-M),xe=U({...w.current,scrollTop:re,scrollHeight:z,viewportHeight:v});xe.changed&&xe.window.scrollTop!==xe.previous.scrollTop&&m?.(xe.window.scrollTop)},[U,m]);Rm(()=>{D()},[D]);let O=zR(()=>({scrollTo(F){let z=U({...w.current,scrollTop:F,pendingDelta:0,sticky:!1});z.previous.sticky!==!1&&p?.(!1),m?.(z.window.scrollTop)},scrollBy(F){let z=U({...w.current,scrollTop:w.current.scrollTop+F,pendingDelta:w.current.pendingDelta+Math.floor(F),sticky:!1});z.previous.sticky!==!1&&p?.(!1),m?.(z.window.scrollTop)},scrollToElement(F,z=0){let v=U({...w.current,scrollTop:F-z,pendingDelta:0,sticky:!1});v.previous.sticky!==!1&&p?.(!1),m?.(v.window.scrollTop)},scrollToBottom(){let F=U({...w.current,scrollTop:0,pendingDelta:0,sticky:!0});m?.(F.window.scrollTop),F.previous.sticky!==!0&&p?.(!0)},getScrollTop(){return w.current.scrollTop},getPendingDelta(){return w.current.pendingDelta},getScrollHeight(){return y.current?.scrollHeight??w.current.scrollHeight},getViewportHeight(){return y.current?.scrollViewportHeight??b.viewportHeight},getViewportTop(){return y.current?.scrollViewportTop??b.viewportTop},isSticky(){return w.current.sticky},subscribe(F){return C.current.add(F),()=>{C.current.delete(F)}},setClampBounds(F,z){let v=U({...w.current,clampMin:F,clampMax:z});v.window.scrollTop!==v.previous.scrollTop&&m?.(v.window.scrollTop)}}),[U,m,p]);VR(u,()=>O,[O]),Rm(()=>{g?.(b)},[g,b]);let I=x?x(b):e,ce=Math.max(0,c+o),ye=qR(w.current);return KR.createElement("ink-box",{ref:y,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:n,flexShrink:r,width:t,height:ce,paddingTop:o,overflowX:"visible",overflowY:"scroll"},scrollTop:ye,scrollHeight:w.current.scrollHeight,scrollViewportHeight:w.current.viewportHeight,scrollViewportTop:b.viewportTop,pendingScrollDelta:w.current.pendingDelta,virtualScrollWindowed:!!x,...w.current.clampMin!==void 0?{scrollClampMin:w.current.clampMin}:{},...w.current.clampMax!==void 0?{scrollClampMax:w.current.clampMax}:{},...l?{stickyScroll:!0}:{}},GR(k,{flexDirection:"column",flexGrow:1,flexShrink:0,width:"100%",children:I}))},"ScrollBox");var QR=80;function va(e){if(!(!e?.visible||!e.label))return e.hint?`${e.label}: ${e.hint}`:e.label}i(va,"resolveFullscreenChromeSlotText");function iu(e,t){if(!e)return 0;let n=Math.max(1,(typeof t=="number"?t:QR)-2);return Math.max(1,zt(e.split(`
|
|
36
|
+
`),n,0,0).visualLines.length)}i(iu,"measureFullscreenChromeSlotRows");var Pm=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:g=!0,scrollRef:x,onScrollTopChange:y,onStickyChange:C,onWindowChange:w})=>{let b=i((ye,F)=>F?Fr(k,{paddingX:1,children:Fr(S,{dimColor:ye?.tone!=="accent",children:F})}):null,"renderChromeSlot"),P=va(a),L=va(c),U=iu(P,l),D=b(a,P),O=s?null:b(c,L),I=Math.max(0,e?t:0),ce=Math.max(0,p-U-I);return Ow(k,{flexDirection:"column",width:l,flexGrow:1,flexShrink:0,children:[e?Fr(k,{flexDirection:"column",flexShrink:0,children:e}):null,Ow(k,{flexDirection:"column",flexGrow:1,overflowY:"hidden",children:[Fr(_m,{width:l,flexGrow:1,flexShrink:1,paddingTop:U,scrollTop:u,scrollHeight:m,viewportHeight:ce,stickyScroll:g,scrollRef:x,onScrollTopChange:y,onStickyChange:C,onWindowChange:w,renderWindow:r,children:n}),D?Fr(k,{position:"absolute",top:0,left:0,right:0,flexDirection:"column",children:D}):null,O?Fr(k,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:O}):null,s?Fr(k,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:s}):null]}),Fr(k,{flexDirection:"column",flexShrink:0,children:o})]})},"FullscreenLayout");import ZR from"string-width";var eE=200;function tE(e){let t=Math.min(eE,Math.max(1,e));return"-".repeat(t)}i(tE,"generateDivider");function nE(){return Xi().columns}i(nE,"useTerminalWidth");var $m=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=su(()=>te(u),[u]),g=nE(),x=m??g,y=ZR(r)+1,C=su(()=>{let O=Math.max(20,x-y);return zt(e,O,t,n)},[e,x,t,n,y]),w=su(()=>{if(!C)return null;let[O,I]=Zf(C,[t,n]);return{row:O,col:I}},[C,t,n]),b=tE(x),P=s&&a,L=c&&e.some(O=>O.length>0),U=C,D=w;return hn(k,{flexDirection:"column",width:m,children:[Dt(S,{dimColor:!0,children:b}),L?Dt(k,{children:Dt(S,{dimColor:!0,children:l==="pasting"?"Pasting input...":"Editing input..."})}):null,U.visualLines.length===0||U.visualLines.length===1&&U.visualLines[0]===""?hn(k,{children:[hn(S,{color:p.colors.primary,children:[r," "]}),P?hn(JR,{children:[Dt(S,{backgroundColor:p.colors.primary,color:"#000000",children:" "}),Dt(S,{dimColor:!0,children:o})]}):Dt(S,{dimColor:!0,children:o})]}):U.visualLines.map((O,I)=>{let ce=I===D.row,ye=I===0?r:" ".repeat(y-1);if(ce&&P){let{before:F,current:z,after:v}=ox(O,D.col),M=z||" ";return hn(k,{children:[hn(S,{color:p.colors.primary,children:[ye," "]}),Dt(S,{color:p.colors.text,children:F}),Dt(S,{backgroundColor:p.colors.primary,color:"#000000",children:M}),Dt(S,{color:p.colors.text,children:v})]},I)}return hn(k,{children:[hn(S,{color:p.colors.dim,children:[ye," "]}),Dt(S,{color:p.colors.text,children:O})]},I)}),Dt(S,{dimColor:!0,children:b})]})},"TextInput"),rE=i(({value:e,cursorCol:t,prompt:n=">",placeholder:r,focus:o=!0,theme:s="dark"})=>{let a=su(()=>te(s),[s]);if(!e)return hn(k,{children:[hn(S,{color:a.colors.primary,children:[n," "]}),r&&Dt(S,{dimColor:!0,children:r}),o&&Dt(S,{backgroundColor:a.colors.primary,color:"#000000",children:" "})]});let c=Vt(e),l=c.slice(0,t).join(""),u=c[t]??" ",m=c.slice(t+1).join("");return hn(k,{children:[hn(S,{color:a.colors.primary,children:[n," "]}),Dt(S,{color:a.colors.text,children:l}),Dt(S,{backgroundColor:a.colors.primary,color:"#000000",children:u}),Dt(S,{color:a.colors.text,children:m})]})},"SingleLineTextInput");var Lm={"[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"}},oE=/^\x1b\[([0-9]+);?([0-9]+)?([~A-Za-z])?/,iE=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/;function sE(e){switch(e&3){case 0:return"left";case 1:return"middle";case 2:return"right";default:return"unknown"}}i(sE,"parseMouseButton");function aE(e){return{shift:(e&1)!==0,alt:(e&2)!==0,ctrl:(e&4)!==0,meta:(e&8)!==0}}i(aE,"parseModifier");function au(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(iE);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:sE(l),row:m,column:u},n)}if(e===`\r
|
|
37
|
+
`)return n.name="newline",n;if(e==="\r")return n.name=t?"newline":"return",n;if(e===`
|
|
38
|
+
`)return n.name="newline",n;if(e===" ")return n.name="tab",n;if(e==="\b"||e==="\x7F")return n.name="backspace",n;if(e==="\x1B\b"||e==="\x1B\x7F")return n.name="backspace",n.meta=!0,n;if(e==="\x1B\r"||e===`\x1B
|
|
39
|
+
`)return n.name=e==="\x1B\r"?"return":"enter",n.shift=!0,n;if(e==="\x1B"||e==="\x1B\x1B")return n.name="escape",n.meta=e.length===2,n;if(e===" "||e==="\x1B ")return n.name="space",n.meta=e.length===2,n.insertable=!n.meta,n;if(e.length===1&&e.charCodeAt(0)<=26)return n.name=String.fromCharCode(e.charCodeAt(0)+96),n.ctrl=!0,n;if(e.length===1&&e>="0"&&e<="9"||e.length===1&&e>="a"&&e<="z")return n.name=e,n.insertable=!0,n;if(e.length===1&&e>="A"&&e<="Z")return n.name=e.toLowerCase(),n.shift=!0,n.insertable=!0,n;if(e.length===1&&e.charCodeAt(0)>=32)return n.name=e,n.insertable=!0,n;if(e.startsWith("\x1B")){let o=e.slice(1);if(o.length===1)return n.meta=!0,o>="a"&&o<="z"?(n.name=o,n.insertable=!0):o>="A"&&o<="Z"?(n.name=o.toLowerCase(),n.shift=!0,n.insertable=!0):o.charCodeAt(0)>=32&&(n.name=o,n.insertable=!0),n;let s=e.match(oE);if(s){let[,l,u,m]=s,p=m||"~",x=Lm[o];if(x)return Object.assign(n,x),n;let y="["+l+p+"]",C=Lm[y];if(C&&C.name){if(n.name=C.name,u){let w=parseInt(u,10)-1,b=aE(w);Object.assign(n,b)}return n}}let c=Lm[o];if(c)return Object.assign(n,c),n;if(e.startsWith("\x1B\x1B")){n.meta=!0;let l="\x1B"+e.slice(2),u=au(l);return n.name=u.name,n}}return n}i(au,"parseKeypress");var Ia=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=au(s,this.inBracketedPaste);this.emit(a)}break}let{sequence:n,remaining:r}=t;this.buffer=r;let o=au(n,this.inBracketedPaste);if(o.name==="paste_start"){this.inBracketedPaste=!0,this.pasteAccumulator="";continue}if(o.name==="paste_end"){this.inBracketedPaste=!1,this.flushPasteAccumulator();continue}this.emit(o)}}flushPasteAccumulator(){if(this.pasteAccumulator.length===0)return;let t={name:"paste",sequence:this.pasteAccumulator,ctrl:!1,meta:!1,shift:!1,insertable:!0,isPasted:!0};this.pasteAccumulator="";for(let n of this.listeners)n(t)}extractNextSequence(){if(this.buffer.length===0)return null;let t=this.buffer[0];if(t!=="\x1B")return t==="\r"&&this.buffer.length>=2&&this.buffer[1]===`
|
|
40
|
+
`?{sequence:this.buffer.slice(0,2),remaining:this.buffer.slice(2)}:{sequence:this.buffer[0],remaining:this.buffer.slice(1)};if(this.buffer.length===1)return this.flushing?{sequence:this.buffer,remaining:""}:null;let n=this.buffer[1];if(n!=="["&&n!=="O")return{sequence:this.buffer.slice(0,2),remaining:this.buffer.slice(2)};if(this.buffer.startsWith("\x1B[<")){let a=3;for(;a<this.buffer.length;){let c=this.buffer[a];if(!c)break;if(c>="0"&&c<="9"||c===";"||c==="<"){a++;continue}if(c==="M"||c==="m")return a++,{sequence:this.buffer.slice(0,a),remaining:this.buffer.slice(a)};break}return this.flushing?{sequence:this.buffer,remaining:""}:null}let r=2;for(;r<this.buffer.length;){let a=this.buffer[r];if(!a)break;if(a>="0"&&a<="9"||a===";"){r++;continue}if(a>="A"&&a<="Z"||a>="a"&&a<="z"||a==="~"){r++;break}break}let o=this.buffer[r-1];return o&&(o>="A"&&o<="Z"||o>="a"&&o<="z"||o==="~")?{sequence:this.buffer.slice(0,r),remaining:this.buffer.slice(r)}:this.flushing?{sequence:this.buffer.slice(0,r),remaining:this.buffer.slice(r)}:null}emit(t){if(this.inBracketedPaste){if(t.isPasted=!0,t.insertable){this.pasteAccumulator+=t.sequence;return}if(t.name==="newline"){this.pasteAccumulator+=`
|
|
41
|
+
`;return}return}for(let n of this.listeners)n(t)}clear(){this.buffer=""}};function Dw(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(Dw,"isFunctionKey");function cE(e){return e.ctrl||e.meta||Dw(e)?!1:e.sequence.length===1&&e.sequence.charCodeAt(0)>=32}i(cE,"isPrintable");function lE(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(lE,"getKeyDisplayName");var rn;(function(e){e.Idle="idle",e.Responding="responding",e.WaitingForConfirmation="waiting_for_confirmation"})(rn||(rn={}));var $;(function(e){e.Scheduled="scheduled",e.Validating="validating",e.AwaitingApproval="awaiting_approval",e.Executing="executing",e.Success="success",e.Error="error",e.Cancelled="cancelled"})($||($={}));var sF={[$.Scheduled]:"\u25CB",[$.Validating]:"\u25CC",[$.AwaitingApproval]:"?",[$.Executing]:"\u25CB",[$.Success]:"\u2713",[$.Error]:"\u2717",[$.Cancelled]:"-"},Nt;(function(e){e[e.Low=-100]="Low",e[e.Normal=0]="Normal",e[e.High=100]="High",e[e.Critical=200]="Critical"})(Nt||(Nt={}));var Om={streamingState:rn.Idle,currentResponse:"",history:[],pendingToolCalls:[],sessionId:"",provider:"",model:"",isLoading:!1};import uE,{createContext as dE,useContext as fE,useEffect as Nw,useCallback as mE,useRef as Dm}from"react";var pE=50;function Nm(){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(Nm,"createKeypressManager");var Bw=dE(null);function cu({children:e,enabled:t=!0}){let{stdout:n}=zn(),r=Dm(Nm()),o=Dm(null),s=Dm(null),a=mE(c=>{t&&r.current.dispatch(c)},[t]);return Nw(()=>{if(!t)return;n?.write?.("\x1B[?2004h");let c=new Ia;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]),ba(c=>{t&&(s.current&&clearTimeout(s.current),o.current?.feed(c),c.length!==0&&(s.current=setTimeout(()=>{o.current?.feed("",!0)},pE)))},{isActive:t,rawMode:!0}),uE.createElement(Bw.Provider,{value:r.current},e)}i(cu,"KeypressProvider");function Bm(){let e=fE(Bw);if(!e)throw new Error("useKeypressManager must be used within a KeypressProvider");return e}i(Bm,"useKeypressManager");function on(e,t,n=[]){let r=Bm(),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?Nt.High:Nt.Normal:u??Nt.Normal}else a=typeof e=="boolean"?e?Nt.High:Nt.Normal:e,s=t,c=!0;Nw(()=>c?r.register(a,s):void 0,[r,a,c,...o?[]:n])}i(on,"useKeypress");function yn(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(yn,"createKeyMatcher");var Hw={isEnter:yn({name:"return"}),isEscape:yn({name:"escape"}),isCtrlC:yn({name:"c",ctrl:!0}),isCtrlD:yn({name:"d",ctrl:!0}),isUp:yn({name:"up"}),isDown:yn({name:"down"}),isLeft:yn({name:"left"}),isRight:yn({name:"right"}),isBackspace:yn({name:"backspace"}),isDelete:yn({name:"delete"}),isTab:yn({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 ka=["plan","accept-edits","auto","auto-in-project"];function Yt(e){return e==="auto"||e==="auto-in-project"}i(Yt,"isAutoMode");function qi(e){switch(e){case"plan":return"Plan";case"accept-edits":return"Edits";case"auto":case"auto-in-project":return"Auto"}}i(qi,"permissionModeDisplayName");var gE='[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 lu(e=console.warn){let t=!1;return()=>{t||(t=!0,e(gE))}}i(lu,"createAutoInProjectDeprecationEmitter");var xn=new Set(["write","edit"]),Fw=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"]),Ww=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 vo(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(vo,"computeConfirmTools");function Hm(e){return e!==void 0&&ka.includes(e)}i(Hm,"isPermissionMode");function Xn(e,t){return Hm(e)?e:t}i(Xn,"normalizePermissionMode");import uu from"fs";import wt from"path";import Ea from"os";var eT=Nv(Qw(),1);var Jw=new Set(["/dev/null","nul","NUL"]);function jm(e){return Jw.has(e)||Jw.has(e.toLowerCase())}i(jm,"isNullDevice");function Ra(e){let t=e.trim();if(!t)return{statements:[],unparseable:!1};if(t.includes("`"))return{statements:[],unparseable:!0};let n;try{n=(0,eT.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 g=n[p];if(typeof g=="string"){s.push(g);continue}if("op"in g){let x=g.op;if(x==="&&"||x==="||"||x===";"){m(x);continue}if(x==="|"){u();continue}if(x==="&"){let y=n[p+1];if(y!==void 0&&typeof y!="string"&&"op"in y&&(y.op===">"||y.op===">>")){let C=n[p+2];if(typeof C!="string"){l=!0,p+=1;continue}a.push(Zw(`&${y.op}`,C)),p+=2;continue}l=!0;continue}if(IE(x)){let y=null,C=s[s.length-1];C!==void 0&&/^[0-9]+$/.test(C)&&(y=C,s.pop());let w=n[p+1];if(typeof w!="string"){l=!0;continue}a.push(Zw(y?`${y}${x}`:x,w)),p+=1;continue}if(x==="glob"){let y=g.pattern;typeof y=="string"?s.push(y):l=!0;continue}l=!0;continue}if("comment"in g)break;l=!0}return m(null),{statements:r,unparseable:l}}i(Ra,"parseBashCommand");var vE=new Set([">",">>","<","<<","<<<","&>","&>>"]),tT=/^([0-9]+|&)(>>?|<<?)$/;function IE(e){return vE.has(e)||tT.test(e)}i(IE,"isRedirectionOp");function Zw(e,t){let n=null,r=e,o=tT.exec(e);return o&&(n=o[1],r=o[2]),{op:e,fd:n,append:r===">>"||e==="&>>",input:r==="<"||r==="<<"||e==="<<<",target:t}}i(Zw,"parseRedirection");var RE=wt.join(".agent","plan_mode_doc.md"),du=new Map,fu=null;function EE(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\s+/g," ").toLowerCase();for(let n of Ww)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(EE,"isSingleBashReadCommand");var ME=/^[a-zA-Z0-9]+$/;function AE(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(!ME.test(r))return!1;return n}i(AE,"isHelpCommand");function Pn(e){if(!e||!e.trim())return!1;if(AE(e))return!0;let t=e.trim().replace(/\\\r?\n/g," "),n=Ra(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||!jm(c.target))return!1;let a=s.argv.join(" ");if(a&&!(r&&s.argv[0]?.toLowerCase()==="cd"&&s.argv.length>=2)&&!EE(a))return!1}}return!0}i(Pn,"isBashReadCommand");function Km(e){let t=e.trim();return t?Pn(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(Km,"getDirectShellBypassBlockReason");var rT=new Set(["remove-item","set-content","add-content","out-file","new-item","copy-item","move-item","rename-item","ni"]);function $n(e){if(!e||!e.trim())return!1;let t=Ra(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 Fw)if(c===s||a!==null&&c===a)return!0}for(let s of o)if(rT.has(s))return!0;for(let s of r.redirections)if(!s.input&&!jm(s.target))return!0}return!1}i($n,"isBashWriteCommand");function Vm(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(Vm,"parseAllowedToolPattern");function _E(e,t){if(t==="*")return!1;if(t.endsWith(":*")){let n=t.slice(0,-2);return e.startsWith(n)}return e===t}i(_E,"matchesBashPatternLegacy");function PE(e,t){if(t==="*")return!1;if(t.endsWith(":*")){let n=t.slice(0,-2);return e===n}return e===t}i(PE,"matchesBashPatternByExtractedPrefix");async function Wr(e,t,n,r,o){if(e.toLowerCase()!=="bash")return!1;let s=t.command??"",a=[];for(let c of n){let l=Vm(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&&PE(c.value,l))return!0;return!1}for(let{pattern:c}of a)if(c&&_E(s,c))return!0;return!1}i(Wr,"isToolCallAllowed");function pu(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(pu,"generateSavePattern");function Yn(e,t){try{let n=wt.resolve(e),r=wt.resolve(t),o=hi(),s=wt.join(r,".kodax");return Qi(n,s)||Qi(n,o)?!0:!(Qi(n,r)||sT().some(c=>Qi(n,c)))}catch{return!1}}i(Yn,"isAlwaysConfirmPath");function nT(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"&&$E.test(e)):!!(e.startsWith(".")&&/[/\\]/.test(e))}i(nT,"looksLikePath");var $E=/^\/[A-Za-z][A-Za-z0-9]*(?::[A-Za-z0-9]+)?$/;function LE(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(LE,"legacyRegexPathScan");function gu(e){let t=new Set,n=Ra(e);if(!n.unparseable)for(let r of n.statements)for(let o of r.stages){for(let s of o.argv)nT(s)&&t.add(s);for(let s of o.redirections)nT(s.target)&&t.add(s.target)}for(let r of LE(e))t.add(r);return Array.from(t)}i(gu,"extractPathsFromCommand");function zm(e,t){let n=gu(e);for(let r of n)if(Yn(r,t))return!0;return!1}i(zm,"isCommandOnProtectedPath");function mu(e){let t=wt.normalize(e);return process.platform==="win32"?t.toLowerCase():t}i(mu,"normalizePathForComparison");function OE(e,t){return mu(e)===mu(t)}i(OE,"pathsEqual");function Qi(e,t){let n=mu(e),r=mu(t);return n===r||n.startsWith(r+wt.sep)}i(Qi,"isPathInsideDirectory");function hu(e,t){try{let n=wt.resolve(t),r=wt.resolve(n,iT(oT(e)));return Qi(r,n)}catch{return!1}}i(hu,"isPathInsideProject");function DE(e){let t=e.match(/[A-Za-z]:[\\/][^\s;|&<>(){}'"]+|\/[^\s;|&<>(){}'"]+/g);return t?t.filter(n=>!/^(?:\/dev\/|\/proc\/)/i.test(n)):[]}i(DE,"collectAbsolutePathCandidates");function Xm(e){let t=wt.resolve(e),n=du.get(t);if(n)return n;if(uu.existsSync(t)){let c=uu.realpathSync.native(t);return du.set(t,c),c}let r=[],o=t;for(;!uu.existsSync(o);){let c=wt.dirname(o);if(c===o)return du.set(t,t),t;r.unshift(wt.basename(o)),o=c}let s=uu.realpathSync.native(o),a=wt.join(s,...r);return du.set(t,a),a}i(Xm,"resolveExistingPathPrefix");function oT(e){return e==="~"?Ea.homedir():e.startsWith(`~${wt.sep}`)||e.startsWith("~/")||e.startsWith("~\\")?wt.join(Ea.homedir(),e.slice(2)):e}i(oT,"expandHomeDirectory");function iT(e){let t=Ea.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(iT,"expandSystemTempAlias");function NE(e,t){let n=wt.resolve(t??process.cwd()),r=iT(oT(e)),o=wt.isAbsolute(r)?wt.resolve(r):wt.resolve(n,r);return Xm(o)}i(NE,"resolvePermissionPath");function sT(){if(fu)return fu;let e=new Set,t=[Ea.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(Xm(n))}catch{}return fu=Array.from(e),fu}i(sT,"getSystemTempDirectories");function Ym(e){let t=Xm(e??process.cwd());return{projectPlanDoc:wt.join(t,RE),systemTempDirs:sT()}}i(Ym,"getPlanModeAllowedWritablePaths");function Gm(e,t){let n=NE(e,t),{projectPlanDoc:r,systemTempDirs:o}=Ym(t);return OE(n,r)?!0:o.some(s=>Qi(n,s))}i(Gm,"isPlanModeAllowedPath");function BE(e){let{projectPlanDoc:t,systemTempDirs:n}=Ym(e),r=n[0]??Ea.tmpdir();return`${t} or the system temp directory (${r})`}i(BE,"formatPlanModeAllowedLocations");var HE=new Set(["-a","--append","-i","--ignore-interrupts"]);function FE(e){let t=[];for(let n=1;n<e.argv.length;n+=1){let r=e.argv[n];HE.has(r)||r.startsWith("-")||t.push(r)}return t}i(FE,"collectTeeTargets");function WE(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(WE,"collectPowerShellWriteTargets");function ko(e){let t=new Set,n=i(o=>{let s=o?.trim();s&&t.add(s)},"pushTarget");for(let o of gu(e))n(o);let r=Ra(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 FE(s))n(c);else if(rT.has(a))for(let c of WE(s))n(c)}}return Array.from(t)}i(ko,"collectBashWriteTargets");function qm(e,t){if(!$n(e))return{dangerous:!1};let n=new Set([...ko(e),...DE(e)]);for(let r of n)if(!hu(r,t))return{dangerous:!0,reason:`Command may modify file outside project: ${r}`};return{dangerous:!1}}i(qm,"getBashOutsideProjectWriteRisk");function xr(e,t,n){let r=BE(n);if(xn.has(e)){let o=typeof t.path=="string"?t.path:"";return o?Gm(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==="undo")return`[Blocked] Tool 'undo' is not allowed in plan mode. Plan mode only allows file modifications in ${r}.`;if(e==="bash"){let o=t.command??"";if(!$n(o))return null;let s=ko(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=>!Gm(c,n));return a?`[Blocked] Plan mode only allows bash write operations in ${r}. Blocked target: ${a}`:null}return null}i(xr,"getPlanModeBlockReason");import Ur from"node:path";import UE from"node:os";function Ji(e,t){try{let n=Ur.resolve(e),r=Ur.resolve(t);return n===r?!0:n.startsWith(r+Ur.sep)}catch{return!1}}i(Ji,"isPathUnder");function jE(){try{return hi()}catch{return}}i(jE,"safeGetAgentConfigHome");function aT(e,t){let n=jE();if(n&&Ji(e,n))return"user-kodax";let r=Ur.join(Ur.resolve(t),".kodax");if(Ji(e,r))return"project-kodax"}i(aT,"resolveProtectedZone");function GE(){let e=new Set;try{e.add(UE.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(GE,"getSystemTempDirs");var KE=new Set(["bash"]),Ma={toolNames:KE,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=GE(),c=Ur.resolve(t);for(let l of gu(n)){let u;try{u=Ur.resolve(t,l)}catch{continue}let m=aT(u,t);if(m){o.has(u)||(o.add(u),r.push({kind:"protected_path",path:l,zone:m}));continue}if(Yn(l,t)){let p=a.some(x=>Ji(u,x)),g=Ji(u,c);!p&&!g&&!s.has(u)&&(s.add(u),r.push({kind:"outside_project",path:l}))}}for(let l of ko(n)){let u;try{u=Ur.resolve(t,l)}catch{continue}aT(u,t)||Ji(u,c)||a.some(g=>Ji(u,g))||r.push({kind:"shell_redirect_outside",target:l})}return r}};function Pa(e){return e.type==="tool_summary"?{type:"event",text:e.text,icon:"tool"}:e}i(Pa,"seedToHistoryItem");var VE="[Thinking]",zE="[/Thinking]",XE="Untitled Session",cT=50,YE=60,uT="...",dT=["[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:"],fT=[/(?:^|\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:/],qE=/(^|\r?\n)\[Thinking\]\r?\n([\s\S]*?)\r?\n\[\/Thinking\](?=\r?\n|$)/g;function QE(e){let t=-1;for(let n of dT){let r=e.indexOf(n);r>=0&&(t===-1||r<t)&&(t=r)}for(let n of fT){let r=n.exec(e);r&&r.index>=0&&(t===-1||r.index<t)&&(t=r.index)}return t}i(QE,"findControlPlaneCutIndex");function JE(e){return dT.some(t=>e.includes(t))||fT.some(t=>t.test(e))}i(JE,"hasControlPlaneSignal");function mT(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(mT,"collectTextBlocks");function ZE(e){return typeof e=="string"?e:Array.isArray(e)?mT(e).join(`
|
|
42
|
+
`):""}i(ZE,"extractAssistantTextOnly");function _a(e,t,n){n.trim().length!==0&&e.push({type:t,text:n})}i(_a,"pushSeed");function lT(e){return e.replace(/^\n+/,"").replace(/\n+$/,"")}i(lT,"stripLegacyTagBoundaryNewlines");function eM(e){let t=e.name,n=e.input;if(!n)return`\u26A1 ${t}`;let r=t==="bash"?Aa(String(n.command??"")):t==="read"||t==="write"||t==="edit"?Aa(String(n.file_path??n.path??"")):t==="grep"||t==="glob"?Aa(String(n.pattern??"")):t==="web_search"||t==="web_fetch"?Aa(String(n.query??n.url??"")):void 0;return r?`\u26A1 ${t}(${r})`:`\u26A1 ${t}`}i(eM,"formatToolUseSummary");function Aa(e,t=60){let n=e.replace(/\s+/g," ").trim();return n.length>t?`${n.slice(0,t)}...`:n}i(Aa,"truncateToolHint");function tM(e){if(!e.includes(VE)||!e.includes(zE))return e.trim().length>0?[{type:"assistant",text:e}]:[];let t=[],n=0;for(let r of e.matchAll(qE)){let o=r.index??-1,s=r[1]??"",a=r[2]??"";if(o<0)continue;let c=o+s.length;_a(t,"assistant",lT(e.slice(n,c))),_a(t,"thinking",a),n=o+r[0].length}return _a(t,"assistant",lT(e.slice(n))),t.length===0?e.trim().length>0?[{type:"assistant",text:e}]:[]:t}i(tM,"parseLegacyAssistantContent");function nM(e){if(typeof e=="string")return tM(e);if(!Array.isArray(e))return[];let t=[],n=[],r=i(()=>{n.length!==0&&(_a(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&&_a(t,"thinking",String(o.thinking));break;case"tool_use":if(r(),"name"in o){let s=eM(o);s&&t.push({type:"tool_summary",text:s})}break;case"tool_result":case"redacted_thinking":break;default:break}return r(),t}i(nM,"extractAssistantHistorySeeds");var rM=["You are the Scout role","You are the Generator role","You are the Planner role","You are the Evaluator role"],oM=/\r?\n?\`\`\`kodax[\w-]*[\s\S]*?\`\`\`\s*/g;function iM(e){return rM.some(t=>e.includes(t))}i(iM,"isManagedWorkerPrompt");function sM(e){return e.replace(oM,"").trim()}i(sM,"stripManagedProtocolBlocks");function $a(e){switch(e.role){case"assistant":return nM(e.content).map(n=>({...n,text:sM(n.text)})).filter(n=>n.text.length>0);case"user":{if(e._synthetic)return[];let t=La(e.content);return t.trim().length===0||iM(t)?[]:[{type:"user",text:t}]}case"system":return[];default:return[]}}i($a,"extractHistorySeedsFromMessage");function La(e){return typeof e=="string"?e:Array.isArray(e)?mT(e).join(`
|
|
44
|
+
`):""}i(La,"extractTextContent");function aM(e){let t=e.replace(/\s+/g," ").trim();return t?t.length>cT?`${t.slice(0,cT)}${uT}`:t:XE}i(aM,"formatSessionTitle");function Oa(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.role!=="assistant")continue;let r=ZE(n.content);if(r)return r}return""}i(Oa,"extractLastAssistantText");function pT(e,t,n,r){let o=[Oa(e),t.trim(),n?.trim()??"",r?.trim()??""];for(let s of o){let a=Ro(s);if(a)return a}return""}i(pT,"resolveCompletedAssistantText");function Ro(e){let t=e.trim();if(!t)return"";let n=QE(t);return n===0?"":(n>0?t.slice(0,n):t).trim()}i(Ro,"sanitizeUserFacingAssistantText");function gT(e){let t=e.trim();return t.length>0&&Ro(t).length===0&&JE(t)}i(gT,"isControlPlaneOnlyAssistantText");function Zi(e){let t=e.find(r=>r.role==="user"),n=t?La(t.content):"";return aM(n)}i(Zi,"extractTitle");function cM(e,t=YE){let n=e.replace(/\n/g," "),r=n.length>t?uT:"";return n.slice(0,t)+r}i(cM,"formatMessagePreview");import d from"chalk";import yu from"fs";import yT from"path";var xu=yi("config.json");function xT(){return yT.join(process.cwd(),".kodax","config.local.json")}i(xT,"getProjectConfigFile");function wu(e=process.env){let n=Da(xu).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=hT(n.classifierModel),l=hT(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,g=typeof n.timeoutMs=="number"&&n.timeoutMs>0?Math.floor(n.timeoutMs):void 0;return{engine:a,classifierModel:c,classifierModelEnv:l,timeoutMs:p??g}}i(wu,"loadAutoModeSettings");function hT(e){if(typeof e!="string")return;let t=e.trim();return t.length===0?void 0:t}i(hT,"nonEmptyString");function Da(e){try{if(yu.existsSync(e))return JSON.parse(yu.readFileSync(e,"utf-8"))}catch{}return{}}i(Da,"readJsonFile");function wT(e,t){yu.mkdirSync(yT.dirname(e),{recursive:!0}),yu.writeFileSync(e,JSON.stringify(t,null,2))}i(wT,"writeJsonFile");function Na(e){let t=Da(xu);wT(xu,{...t,permissionMode:e})}i(Na,"savePermissionModeUser");function es(){let e=Da(xu),t=Da(xT()),n=e.alwaysAllowTools??[],r=t.alwaysAllowTools??[];return[...new Set([...n,...r])]}i(es,"loadAlwaysAllowTools");function Tu(e,t,n=!1){let r=pu(e,t,n);if(!r)return;let o=xT(),s=Da(o),a=s.alwaysAllowTools??[];a.includes(r)||wT(o,{...s,alwaysAllowTools:[...a,r]})}i(Tu,"saveAlwaysAllowToolPattern");var ts=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}},lM=new ts;import wn from"chalk";import{Buffer as bT}from"node:buffer";import{spawn as uM}from"node:child_process";import TT from"node:process";var Eo="\x1B",dM="\x07",Qm=`${Eo}\\`;function ST(e,t){return e.SSH_CONNECTION?!1:t==="win32"||t==="darwin"||t==="linux"}i(ST,"shouldPreferNativeClipboard");function fM(e,t){let n=bT.from(e,"utf8").toString("base64"),r=t.TERM==="xterm-kitty"?Qm:dM,o=`${Eo}]52;c;${n}${r}`;return t.TMUX?`${Eo}Ptmux;${o.replaceAll(Eo,`${Eo}${Eo}`)}${Qm}`:t.STY?`${Eo}P${o}${Qm}`:o}i(fM,"buildOscSequence");async function Su(e,t,n){return new Promise((r,o)=>{let s=uM(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(Su,"execClipboardCommand");function mM(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=bT.from(e,"utf8");return[["powershell",["-NoProfile","-NonInteractive","-Command",t],n],["pwsh",["-NoProfile","-NonInteractive","-Command",t],n],["cmd",["/c","chcp 65001 >nul & clip"],n]]}i(mM,"buildWindowsClipboardCandidates");async function CT(e,t,n){if(t.SSH_CONNECTION)return!1;switch(n){case"win32":{let r=mM(e);for(let[o,s,a]of r)try{if(await Su(o,s,a))return!0}catch{}return!1}case"darwin":return Su("pbcopy",[],e);case"linux":{let r=[["wl-copy",[]],["xclip",["-selection","clipboard"]],["xsel",["--clipboard","--input"]]];for(let[o,s]of r)try{if(await Su(o,s,e))return!0}catch{}return!1}default:return!1}}i(CT,"tryNativeClipboard");async function pM(e,t){if(!t.TMUX)return!1;let n=t.LC_TERMINAL==="iTerm2"?["load-buffer","-"]:["load-buffer","-w","-"];try{return await Su("tmux",n,e)}catch{return!1}}i(pM,"tryTmuxClipboard");async function Mo(e,t={}){let n=t.env??TT.env,r=t.platform??TT.platform,o=e.trimEnd(),s=fM(o,n);if(!o)throw new Error("Nothing to copy.");if(ST(n,r))try{if(await CT(o,n,r))return{path:"native"}}catch{}if(await pM(o,n))return{path:"tmux-buffer"};if(t.terminalWrite?.(s))return{path:"osc52"};if(!ST(n,r))try{if(await CT(o,n,r))return{path:"native"}}catch{}throw new Error("Unable to access any clipboard path.")}i(Mo,"copyTextToClipboard");var Jm={name:"copy",description:"Copy last assistant message to clipboard",usage:"/copy",handler:i(async(e,t)=>{let n=Oa(t.messages);if(!n){console.log(wn.yellow(`
|
|
45
|
+
No assistant message found to copy.`)),console.log(wn.dim("The assistant needs to respond first before you can copy its message."));return}try{await Mo(n);let r=n.length>50?n.slice(0,50)+"...":n;console.log(wn.green(`
|
|
46
|
+
Copied to clipboard!`)),console.log(wn.dim(`Preview: ${r}`))}catch(r){let o=r instanceof Error?r.message:String(r);console.log(wn.red(`
|
|
47
|
+
Failed to copy to clipboard: ${o}`)),console.log(wn.dim("You may need to check clipboard permissions or manually copy the message."))}},"handler"),detailedHelp:i(()=>{console.log(wn.bold(`
|
|
48
|
+
/copy - Copy Last Assistant Message
|
|
49
|
+
`)),console.log("Usage:"),console.log(wn.cyan(" /copy")+` - Copy the last assistant message to clipboard
|
|
50
|
+
`),console.log("Description:"),console.log(" This command copies the most recent assistant response to your system clipboard."),console.log(` Useful for quickly sharing or saving AI responses.
|
|
51
|
+
`),console.log("Examples:"),console.log(wn.dim(" User: Explain how async/await works")),console.log(wn.dim(" AI: [responds with explanation]")),console.log(wn.cyan(" /copy")+wn.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 jt from"chalk";var Zm={name:"new",description:"Start a new conversation session",usage:"/new",handler:i(async(e,t,n)=>{if(t.messages.length===0){console.log(jt.yellow(`
|
|
53
|
+
Current session is already empty.`)),console.log(jt.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(jt.dim(`
|
|
54
|
+
Cancelled. Current session preserved.`));return}try{await n.saveSession(),console.log(jt.dim(`
|
|
55
|
+
[Previous session saved]`))}catch{console.log(jt.yellow(`
|
|
56
|
+
[Warning: Failed to save previous session]`))}n.startNewSession?.(),t.messages=[],n.clearHistory(),console.log(jt.green(`
|
|
57
|
+
\u2713 Started new session`)),console.log(jt.dim("Conversation history cleared. Ready for a fresh start!"))},"handler"),detailedHelp:i(()=>{console.log(jt.bold(`
|
|
58
|
+
/new - Start New Session
|
|
59
|
+
`)),console.log("Usage:"),console.log(jt.cyan(" /new")+` - Clear current session and start fresh
|
|
60
|
+
`),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.
|
|
61
|
+
`),console.log("Examples:"),console.log(jt.dim(" User: Help me refactor the authentication module")),console.log(jt.dim(" AI: [provides refactoring help]")),console.log(jt.cyan(" /new")),console.log(jt.dim(" \u2713 Started new session")),console.log(jt.dim(" User: Now I need help with database optimization")),console.log(jt.dim(` AI: [provides database help]
|
|
62
|
+
`)),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")};function bu(e){let t=e.match(/\r\n|\r|\n/g);return t?t.length:0}i(bu,"getPastedTextRefNumLines");function gM(e,t){return t===0?`[Pasted text #${e}]`:`[Pasted text #${e} +${t} lines]`}i(gM,"formatPastedTextRef");function hM(e,t){return`[...Truncated text #${e} +${t} lines...]`}i(hM,"formatTruncatedTextRef");var yM=/\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;function xM(e){let t=[],n=new RegExp(yM.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(xM,"parseReferences");function wM(e,t){let n=xM(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(wM,"expandPastedTextRefs");var TM=/\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]$/,SM=/^\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/;function CM(e,t){if(t>=e.length)return!0;let n=e[t];return!n||/\s/.test(n)}i(CM,"isAtWordBoundaryAfter");function bM(e,t){if(t===0)return!0;let n=e[t-1];return!n||/\s/.test(n)}i(bM,"isAtWordBoundaryBefore");function vu(e,t){if(t<=0||!CM(e,t))return null;let r=e.slice(0,t).match(TM);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(vu,"findPlaceholderBeforeCursor");function Iu(e,t){if(t>=e.length||!bM(e,t))return null;let r=e.slice(t).match(SM);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(Iu,"findPlaceholderAfterCursor");function vT(e){return e.length>800||bu(e)>2}i(vT,"shouldReplacePasteWithPlaceholder");function IT(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=bu(a),l=hM(t,c);return{truncatedText:o+l+s,placeholderContent:a}}i(IT,"maybeTruncateLongInput");var ep=class{static{i(this,"PasteStore")}contents=new Map;nextId=1;registerText(t){let n=this.nextId++,r=bu(t);return this.contents.set(n,{id:n,type:"text",content:t}),{id:n,placeholder:gM(n,r),numLines:r}}registerTruncatedText(t){let n=this.nextId++,r=bu(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 wM(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())}},Cu=null;function kT(){return Cu===null&&(Cu=new ep),Cu}i(kT,"getOrCreateModulePasteStore");function ku(){return Cu??void 0}i(ku,"getActivePasteStore");import{createHash as vM}from"node:crypto";import{mkdir as IM,readdir as kM,readFile as RM,stat as EM,unlink as MM,writeFile as AM}from"node:fs/promises";import*as tp from"node:path";var _M="paste-cache",PM=720*60*60*1e3;function np(){return yi(_M)}i(np,"getPasteCacheDir");function RT(e){return tp.join(np(),`${e}.txt`)}i(RT,"getPastePath");function ET(e){return vM("sha256").update(e).digest("hex").slice(0,16)}i(ET,"hashPastedText");async function MT(e,t){try{let n=np();return await IM(n,{recursive:!0}),await AM(RT(e),t,{encoding:"utf8",mode:384}),!0}catch{return!1}}i(MT,"storePastedText");async function Ru(e){try{return await RM(RT(e),{encoding:"utf8"})}catch{return null}}i(Ru,"retrievePastedText");async function AT(e=PM){let t=np(),n=Date.now()-e,r=0,o=0,s;try{s=await kM(t)}catch{return{scanned:r,removed:o}}for(let a of s){if(!a.endsWith(".txt"))continue;r+=1;let c=tp.join(t,a);try{(await EM(c)).mtimeMs<n&&(await MM(c),o+=1)}catch{}}return{scanned:r,removed:o}}i(AT,"cleanupOldPastes");import*as cp from"path";import*as _T from"os";function $M(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}i($M,"escapeRegExp");function LM(e,t){if(!e)return;let n=e.trim();if(!n.startsWith("/"))return;let r=new RegExp(`^/${$M(t)}(?:\\s+)?`,"i"),o=n.replace(r,"").trim();return o.length>0?o:void 0}i(LM,"deriveArgumentHintFromUsage");function rp(e,t="builtin"){return{...e,source:e.source??t,userInvocable:e.userInvocable??!0,disableModelInvocation:e.disableModelInvocation??!1,argumentHint:e.argumentHint??LM(e.usage,e.name)}}i(rp,"toCommandDefinition");function op(e){for(let t of ip)try{let n=rp(t,"builtin");e.register(n)}catch(n){console.error(`Failed to register command "${t.name}":`,n)}}i(op,"registerBuiltinCommands");import*as wr from"fs";import*as Ao from"path";function OM(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(OM,"normalizeAliases");function DM(e){if(e==="critical"||e==="high"||e==="medium"||e==="low")return e}i(DM,"normalizePriority");function NM(e){return{disableModelInvocation:e["disable-model-invocation"]===!0,userInvocable:e["user-invocable"]!==!1,allowedTools:Ay(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:_y(e.hooks),frontmatter:e}}i(NM,"buildExecutionMetadata");function BM(e,t){try{let n=wr.readFileSync(e,"utf-8"),[r,o]=My(n),s=r??{},a=Ao.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:OM(s.aliases),priority:DM(s.priority),content:o.trim(),location:t,path:e,frontmatter:s,execution:NM(s)}}catch(n){console.error(`Error parsing command file ${e}:`,n);return}}i(BM,"parseCommandFile");function sp(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(!wr.existsSync(s))continue;let c=Ao.resolve(s);try{c=wr.realpathSync.native?.(s)??wr.realpathSync(s)}catch{c=Ao.resolve(s)}if(!n.has(c)){n.add(c);try{let l=wr.readdirSync(s);for(let u of l){if(!u.endsWith(".md"))continue;let m=Ao.join(s,u),p=BM(m,a);p&&t.push(p)}}catch(l){console.error(`Error scanning directory ${s}:`,l)}}}return t}i(sp,"discoverCommands");function ap(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(ap,"registerDiscoveredCommands");function PT(e,t){op(e);try{let n=_T.homedir(),r=t??process.cwd(),o=sp([{path:cp.join(r,".kodax","commands"),location:"project"},{path:yi("commands"),location:"user"},{path:cp.join(n,".agents","commands"),location:"user"}]);ap(o,e)}catch(n){console.error("Failed to discover commands:",n)}}i(PT,"registerAllCommands");import{execFile as HM}from"child_process";import FM from"fs";import lp from"path";import{promisify as WM}from"util";var UM=WM(HM);function jr(e){if(!(!e||!e.trim()))return lp.resolve(e).replace(/\\/g,"/")}i(jr,"normalizePath");async function Ba(e,t){try{let{stdout:n}=await UM("git",t,{cwd:e,windowsHide:!0,maxBuffer:1048576}),r=n.trim();return r||void 0}catch{return}}i(Ba,"gitStdout");function jM(e){let t=jr(e);if(t)return lp.posix.basename(t)===".git"?lp.posix.dirname(t):t}i(jM,"deriveCanonicalRepoRoot");async function ns(e={}){let t=jr(e.cwd??process.cwd())??process.cwd().replace(/\\/g,"/"),n=jr(await Ba(t,["rev-parse","--show-toplevel"])),r=await Ba(n??t,["rev-parse","--path-format=absolute","--git-common-dir"])??await Ba(n??t,["rev-parse","--git-common-dir"]),o=await Ba(n??t,["branch","--show-current"])??await Ba(n??t,["rev-parse","--abbrev-ref","HEAD"]);return{canonicalRepoRoot:jM(r)??n,workspaceRoot:n,executionCwd:t,branch:o&&o!=="HEAD"?o:void 0,workspaceKind:e.workspaceKind??"detected"}}i(ns,"inspectWorkspaceRuntime");function Eu(e,t){return!e?.canonicalRepoRoot||!t?.canonicalRepoRoot?!1:jr(e.canonicalRepoRoot)===jr(t.canonicalRepoRoot)}i(Eu,"isSameCanonicalRepo");function $T(e){return!!(e?.workspaceRoot&&FM.existsSync(e.workspaceRoot))}i($T,"workspaceExists");function Ha(e){let t=jr(e.runtimeInfo?.workspaceRoot??e.gitRoot),n=jr(e.runtimeInfo?.executionCwd??t),r=jr(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(Ha,"resolveSessionRuntimeInfo");function Tn(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(Tn,"formatWorkspaceTruth");function GM(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(GM,"summarizeAgentsFiles");function KM(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(KM,"createManualCompactionConfig");function up(e){e.runtimeInfo?.workspaceRoot?console.log(d.dim(` Workspace unchanged: ${Tn(e.runtimeInfo)}`)):console.log(d.dim(" Workspace unchanged."))}i(up,"printWorkspaceUnchangedNote");var ip=[{name:"help",aliases:["h","?"],description:"Show all available commands",usage:"/help [command]",handler:i(async e=>{e.length>0?nA(e[0]):tA()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
63
|
+
/help - Show Command Help
|
|
64
|
+
`)),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(`
|
|
65
|
+
Session saved. Goodbye!`)),await n.exit()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
66
|
+
/exit - Exit Interactive Mode
|
|
67
|
+
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /exit ")+"Save session and exit"),console.log(d.dim(" /quit, /q, /bye ")+"Aliases for /exit"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Saves the current conversation session and exits interactive mode.")),console.log(d.dim(" Sessions can be resumed later with /load or CLI -c option.")),console.log(d.dim(" Exiting never removes or mutates the current workspace.")),console.log()},"detailedHelp")},{name:"clear",description:"Clear conversation history",handler:i(async(e,t,n)=>{t.messages=[],t.contextTokenSnapshot=void 0,n.clearHistory(),console.log(d.yellow(`
|
|
68
|
+
[Conversation cleared]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
69
|
+
/clear - Clear Conversation History
|
|
70
|
+
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /clear ")+"Clear all messages in current session"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Removes all messages from the current conversation context.")),console.log(d.dim(" Useful for starting fresh while keeping the session.")),console.log(),console.log(d.yellow(" Warning: This action cannot be undone!")),console.log()},"detailedHelp")},{name:"cost",description:"Show session cost report",usage:"/cost",handler:i(async(e,t,n)=>{let r=n.getCostReport?.();if(!r){console.log(d.dim(`
|
|
71
|
+
[No cost data available yet]`));return}console.log(d.cyan(`
|
|
72
|
+
`+r))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
73
|
+
/cost - Session Cost Report
|
|
74
|
+
`)),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(`
|
|
75
|
+
/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=ku();if(!n){console.log(d.yellow(`
|
|
76
|
+
[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(`
|
|
77
|
+
[No pasted content in this session yet]`));return}console.log(d.bold(`
|
|
78
|
+
Pasted content in this session:
|
|
79
|
+
`));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(`
|
|
80
|
+
Usage: /paste show <id>`));return}let s=n.get(o);if(!s){console.log(d.dim(`
|
|
81
|
+
[No paste registered with id #${o}]`));return}let a=s.content??"";if(!a&&s.contentHash){let c=await Ru(s.contentHash);c&&(a=c)}if(!a){console.log(d.yellow(`
|
|
82
|
+
[Paste #${o} has no stored content (hash ${s.contentHash??"n/a"})]`));return}console.log(d.bold(`
|
|
83
|
+
Pasted text #${o} (${a.length} chars):
|
|
84
|
+
`)),console.log(a),console.log();return}console.log(d.yellow(`
|
|
85
|
+
[Unknown /paste subcommand: ${t}]`)),console.log(d.dim(" Try /paste show <id> or /paste list"))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
86
|
+
/paste - Inspect stored paste contents
|
|
87
|
+
`)),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 vl(t.gitRoot),s=r.provider,a=mi(s);if(!a){console.log(d.red(`
|
|
88
|
+
[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??lo(t.messages),m=KM(o,u,l);console.log(d.dim(`
|
|
89
|
+
[Compacting conversation...]`)),n.startCompacting?.();try{let p=await Oy(t.messages,m,a,l,c,void 0,u,Hy,Fy);if(!p.compacted){console.log(d.green(`
|
|
90
|
+
[No compaction needed]`)),console.log(d.dim(`Current token usage: ${p.tokensBefore.toLocaleString()}
|
|
91
|
+
`));return}t.messages=p.messages,t.contextTokenSnapshot={currentTokens:p.tokensAfter,baselineEstimatedTokens:p.tokensAfter,source:"estimate"},n.clearHistory?.(),await n.saveSession(),console.log(d.green(`
|
|
92
|
+
[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(`
|
|
93
|
+
[Compaction failed: ${s}]
|
|
94
|
+
`))}},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
95
|
+
/compact - Manual Context Compaction
|
|
96
|
+
`)),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(`
|
|
97
|
+
Reloading project rule files and runtime extensions...
|
|
98
|
+
`));try{let o=await n.reloadAgentsFiles?.()??[],s=GM(o),a=dr(),c=a?rs(a).loadedExtensions.length:0,l=a?rs(a).failures.length:0,u=0,m=0;if(a){await a.reloadExtensions({continueOnError:!0});let p=rs(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.
|
|
99
|
+
`)),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:
|
|
100
|
+
`)),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.
|
|
101
|
+
`)),console.log(d.dim(` Error: ${o instanceof Error?o.message:String(o)}`)),console.log()}},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
102
|
+
/reload - Reload Project Rules
|
|
103
|
+
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /reload ")+"Reload project rule files and active extensions"),console.log(),console.log(d.bold("Description:")),console.log(" Reloads project-level context rules from AGENTS.md, CLAUDE.md, and .kodax/AGENTS.md files."),console.log(" If a runtime extension host is active, it also hot-reloads loaded extensions."),console.log(),console.log(d.bold("Rule Priority:")),console.log(d.dim(" 1. Global: ")+"~/.kodax/AGENTS.md"),console.log(d.dim(" 2. Directory: ")+"AGENTS.md or CLAUDE.md from project root to current directory"),console.log(d.dim(" 3. Project: ")+".kodax/AGENTS.md at the project root"),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /reload ")+"# Reload and show loaded rules"),console.log()},"detailedHelp")},{name:"extensions",aliases:["ext"],description:"Show active extension runtime diagnostics",usage:"/extensions",handler:i(async()=>{let e=dr();if(!e){console.log(d.yellow(`
|
|
104
|
+
[No active extension runtime]
|
|
105
|
+
`));return}let t=rs(e),n=t.tools.filter(r=>r.source.kind==="extension");if(console.log(d.bold(`
|
|
106
|
+
Extension Runtime:
|
|
107
|
+
`)),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=cA(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 rA(t,r,e)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
108
|
+
/status - Show Session Status
|
|
109
|
+
`)),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=dr();if(!t){console.log(d.yellow(`
|
|
110
|
+
[No extension runtime active \u2014 MCP is not available]`));return}let r=rs(t).capabilityProviders.find(c=>c.id==="mcp");if((e[0]?.toLowerCase()??"status")==="refresh"){console.log(d.dim(`
|
|
111
|
+
Refreshing MCP catalogs...`));try{await t.refreshCapabilityProviders("mcp"),console.log(d.green("MCP catalogs refreshed."))}catch(c){console.log(d.red(`Refresh failed: ${c instanceof Error?c.message:String(c)}`))}return}if(console.log(d.cyan(`
|
|
112
|
+
MCP Status
|
|
113
|
+
`)),!r){console.log(d.yellow(" No MCP provider registered.")),console.log(d.dim(` Add mcpServers to ~/.kodax/config.json to enable MCP.
|
|
114
|
+
`));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(`
|
|
115
|
+
/mcp - MCP Server Management
|
|
116
|
+
`)),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 sa({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace,probePremium:!0});BT(s);return}if(o==="warm"){let s=await Iy({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace});eA(s);return}if(o==="mode"){if(e.length===1){console.log(d.dim(`
|
|
117
|
+
Current repo-intelligence mode: ${d.cyan(r.repoIntelligenceMode??"auto")}`)),console.log(d.dim(`Usage: /repointel mode [auto|off|oss|premium-shared|premium-native]
|
|
118
|
+
`));return}let s=qM(e[1]);if(!s){console.log(d.red(`
|
|
119
|
+
[Invalid repo-intelligence mode: ${e[1]}]`)),console.log(d.dim(`Usage: /repointel mode [auto|off|oss|premium-shared|premium-native]
|
|
120
|
+
`));return}let a=Mu({mode:s},{repoIntelligenceMode:s},n,r);_o(`Repo intelligence mode: ${s}`,a);return}if(o==="trace"){let s=e[1]?.toLowerCase();if(!s){console.log(d.dim(`
|
|
121
|
+
Current repo-intelligence trace: ${d.cyan(r.repoIntelligenceTrace?"on":"off")}`)),console.log(d.dim(`Usage: /repointel trace [on|off|toggle]
|
|
122
|
+
`));return}let a=QM(s,r.repoIntelligenceTrace??!1);if(a===null){console.log(d.red(`
|
|
123
|
+
[Invalid trace value: ${e[1]}]`)),console.log(d.dim(`Usage: /repointel trace [on|off|toggle]
|
|
124
|
+
`));return}let c=Mu({trace:a},{repoIntelligenceTrace:a},n,r);_o(`Repo intelligence trace: ${a?"on":"off"}`,c);return}if(o==="endpoint"){if(e.length===1){let c=await sa({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace});console.log(d.dim(`
|
|
125
|
+
Current repointel endpoint: ${d.cyan(c.endpoint)}`)),console.log(d.dim(`Usage: /repointel endpoint [http://host:port|default]
|
|
126
|
+
`));return}let s=LT(e[1]),a=Mu({endpoint:s},{repointelEndpoint:s??void 0},n,r);_o(`Repointel endpoint: ${s??"default"}`,a);return}if(o==="bin"){if(e.length===1){let c=await sa({mode:r.repoIntelligenceMode,trace:r.repoIntelligenceTrace});console.log(d.dim(`
|
|
127
|
+
Current repointel bin: ${d.cyan(c.bin)}`)),console.log(d.dim(`Usage: /repointel bin [<path-or-command>|default]
|
|
128
|
+
`));return}let s=LT(e.slice(1).join(" ")),a=Mu({bin:s},{repointelBin:s??void 0},n,r);_o(`Repointel bin: ${s??"default"}`,a);return}console.log(d.red(`
|
|
129
|
+
[Unknown /repointel subcommand: ${e[0]}]`)),console.log(d.dim(`Usage: /repointel [status|mode|trace|warm|endpoint|bin]
|
|
130
|
+
`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
131
|
+
/repointel - Repo-Intelligence Runtime Control
|
|
132
|
+
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /repointel ")+"Show current repo-intelligence and premium runtime status"),console.log(d.dim(" /repointel status ")+"Probe the local premium frontdoor and print detailed status"),console.log(d.dim(" /repointel mode auto ")+"Prefer premium-native when available, otherwise fall back to OSS"),console.log(d.dim(" /repointel mode off ")+"Strictly disable repo-intelligence working tools and auto lane for this session"),console.log(d.dim(" /repointel mode oss ")+"Force the OSS baseline only"),console.log(d.dim(" /repointel mode premium-shared ")+"Use premium without KodaX native auto lane"),console.log(d.dim(" /repointel mode premium-native ")+"Use the KodaX flagship premium path"),console.log(d.dim(" /repointel trace on|off|toggle ")+"Toggle repo-intelligence trace output"),console.log(d.dim(" /repointel endpoint http://127.0.0.1:47891")+"Override the local premium daemon endpoint"),console.log(d.dim(" /repointel endpoint default ")+"Clear the endpoint override and use the default"),console.log(d.dim(" /repointel bin repointel ")+"Use a PATH-visible repointel command"),console.log(d.dim(" /repointel bin <path> ")+"Use an explicit repointel launcher path"),console.log(d.dim(" /repointel bin default ")+"Clear the bin override and use the default command"),console.log(d.dim(" /repointel warm ")+"Try to start or warm the local premium daemon"),console.log(),console.log(d.bold("Notes:")),console.log(d.dim(" - /status now includes a compact repo-intelligence summary.")),console.log(d.dim(" - /repointel warm is operational: it can warm the premium runtime even when your current mode is oss/off.")),console.log(d.dim(" - If the local service cannot be started, KodaX will continue with the OSS baseline and this command will explain why.")),console.log()},"detailedHelp")},{name:"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=Xn(r.permissionMode,"accept-edits")??"accept-edits";console.log(d.dim(`
|
|
133
|
+
Current mode: ${d.cyan(s)}`)),console.log(d.dim("Usage: /mode [plan|accept-edits|auto]"));return}let o=e[0];ka.includes(o)?(r.permissionMode=o,n.setPermissionMode?.(o),Na(o),console.log(d.cyan(`
|
|
134
|
+
[Switched to ${o} mode] (saved)`))):console.log(d.red(`
|
|
135
|
+
[Unknown mode: ${e[0]}. Use: plan | accept-edits | auto]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
136
|
+
/mode - Switch Permission Mode
|
|
137
|
+
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /mode ")+"Show current permission mode"),console.log(d.dim(" /mode plan ")+"Read-only: blocks all modifications"),console.log(d.dim(" /mode accept-edits ")+"File edits auto, bash requires confirmation"),console.log(d.dim(" /mode auto ")+"LLM classifier reviews each tool call (FEATURE_092)"),console.log(d.dim(" /mode auto-in-project ")+d.gray("(deprecated alias for auto; will be removed in v0.7.38)")),console.log(),console.log(d.bold("Permission Levels:")),console.log(d.yellow(" plan ")+d.dim("- Read-only planning, no file/command modifications")),console.log(d.green(" accept-edits ")+d.dim("- File edits auto-approved, bash still requires confirmation")),console.log(d.green(" auto ")+d.dim("- LLM classifier (engine=llm, default) or rules engine reviews each call")),console.log(),console.log(d.bold("Notes:")),console.log(d.dim(" - .kodax/ directory and project-external paths always require confirmation")),console.log(d.dim(" - Mode is saved to ~/.kodax/config.json (user-level)")),console.log()},"detailedHelp")},{name:"auto-engine",description:"Show or set auto-mode classifier engine (llm | rules)",usage:"/auto-engine [llm|rules]",handler:i(async(e,t,n)=>{let r=n.getAutoModeStats?.();if(!r){console.log(d.yellow(`
|
|
138
|
+
[auto-engine] not in auto mode \u2014 switch via /mode auto first`));return}if(e.length===0){console.log(d.dim(`
|
|
139
|
+
Classifier engine: ${d.cyan(r.engine)}`)),console.log(d.dim(` consecutive denials: ${r.denials.consecutive}`)),console.log(d.dim(` cumulative denials: ${r.denials.cumulative}`)),console.log(d.dim(` breaker errors: ${r.breaker.timestamps.filter(s=>s>=Date.now()-600*1e3).length}`)),console.log(d.dim("Usage: /auto-engine [llm|rules]"));return}let o=e[0];if(o!=="llm"&&o!=="rules"){console.log(d.red(`
|
|
140
|
+
[auto-engine] unknown engine "${e[0]}" \u2014 use llm or rules`));return}n.setAutoModeEngine?.(o),console.log(d.cyan(`
|
|
141
|
+
[auto-engine] switched to ${o}`)),console.log(o==="rules"?d.dim(" every non-Tier-1 tool call now escalates to user confirmation"):d.dim(" classifier consultation resumed; threshold downgrades still apply"))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
142
|
+
/auto-engine - Auto-Mode Classifier Engine Toggle
|
|
143
|
+
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /auto-engine ")+"Show current engine + denial/breaker counts"),console.log(d.dim(" /auto-engine llm ")+"Resume classifier consultation (default)"),console.log(d.dim(" /auto-engine rules ")+"Skip classifier; every non-Tier-1 call asks user"),console.log(),console.log(d.bold("Notes:")),console.log(d.dim(" - Only meaningful in auto mode (/mode auto).")),console.log(d.dim(" - The classifier may auto-downgrade to rules after 3 consecutive blocks,")),console.log(d.dim(" 20 cumulative blocks, or 5 errors in a 10-minute window. /auto-engine llm")),console.log(d.dim(" manually flips back to llm.")),console.log(d.dim(" - Override via env: KODAX_AUTO_MODE_ENGINE=rules.")),console.log()},"detailedHelp")},{name:"auto-denials",description:"Show auto-mode classifier denial tracker + circuit breaker stats",usage:"/auto-denials",handler:i(async(e,t,n)=>{let r=n.getAutoModeStats?.();if(!r){console.log(d.yellow(`
|
|
144
|
+
[auto-denials] not in auto mode \u2014 switch via /mode auto first`));return}console.log(d.cyan(`
|
|
145
|
+
[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(`
|
|
146
|
+
/auto-denials - Auto-Mode Classifier Diagnostic Dump
|
|
147
|
+
`)),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(`
|
|
148
|
+
[Session saved]`)),up(t)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
149
|
+
/save - Save Current Session
|
|
150
|
+
`)),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(`
|
|
151
|
+
[Usage: /load <session-id>]`)),await n.listSessions();return}await n.loadSession(e[0])==="missing"&&console.log(d.red(`
|
|
152
|
+
[Session not found: ${e[0]}]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
153
|
+
/load - Load a Saved Session
|
|
154
|
+
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /load ")+"List available sessions"),console.log(d.dim(" /load <session-id> ")+"Load a specific session"),console.log(d.dim(" /resume <id> ")+"Alias for /load"),console.log(),console.log(d.bold("Examples:")),console.log(d.dim(" /load ")+"# See all sessions"),console.log(d.dim(" /load 20260219_143052")+"# Load session by ID"),console.log(),console.log(d.bold("Workspace behavior:")),console.log(d.dim(" /load can resume sessions from sibling workspaces in the same canonical repo.")),console.log(d.dim(" If a saved workspace is unavailable, KodaX explains the fallback before loading.")),console.log(),console.log(d.dim(" See also: /help sessions, /help save")),console.log()},"detailedHelp")},{name:"tree",description:"Inspect or switch the current session tree",usage:"/tree [entry-id|label] | /tree label <entry-id|label> <name> | /tree unlabel <entry-id|label>",handler:i(async(e,t,n)=>{if(e.length===0){await n.printSessionTree?.();return}let r=e[0]?.trim().toLowerCase();if(r==="label"){if(e.length<3){console.log(d.red(`
|
|
155
|
+
[Usage: /tree label <entry-id|label> <name>]`));return}await n.labelSessionBranch?.(e[1],e.slice(2).join(" "))||console.log(d.red(`
|
|
156
|
+
[Tree entry not found: ${e[1]}]`));return}if(r==="unlabel"){if(e.length<2){console.log(d.red(`
|
|
157
|
+
[Usage: /tree unlabel <entry-id|label>]`));return}await n.labelSessionBranch?.(e[1],void 0)||console.log(d.red(`
|
|
158
|
+
[Tree entry not found: ${e[1]}]`));return}await n.switchSessionBranch?.(e[0])==="missing"&&console.log(d.red(`
|
|
159
|
+
[Tree entry not found: ${e[0]}]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
160
|
+
/tree - Inspect Session Lineage
|
|
161
|
+
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /tree ")+"Show the current session tree"),console.log(d.dim(" /tree <entry-id|label> ")+"Jump to a previous branch point"),console.log(d.dim(" /tree label <entry-id|label> <name>")+"Attach a lightweight checkpoint label"),console.log(d.dim(" /tree unlabel <entry-id|label> ")+"Clear an existing checkpoint label"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Session history is stored as a branchable tree. Use /tree to")),console.log(d.dim(" inspect the lineage, revisit an earlier branch safely, and add")),console.log(d.dim(" bookmark-style checkpoint labels without changing git state.")),console.log()},"detailedHelp")},{name:"fork",description:"Fork the current branch into a new session",usage:"/fork [entry-id|label]",handler:i(async(e,t,n)=>{await n.forkSession?.(e[0])==="failed"&&console.log(d.red(`
|
|
162
|
+
[Unable to fork session${e[0]?` from ${e[0]}`:""}]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
163
|
+
/fork - Export a Branch to a New Session
|
|
164
|
+
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /fork ")+"Fork from the active branch"),console.log(d.dim(" /fork <entry-id|label>")+"Fork from a selected tree node"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Creates a new session file from the selected branch so you can")),console.log(d.dim(" continue there without mutating the current session lineage.")),console.log()},"detailedHelp")},{name:"rewind",description:"Rewind the current session to a previous point",usage:"/rewind [entry-id|label]",handler:i(async(e,t,n)=>{await n.rewindSession?.(e[0])==="failed"&&console.log(d.red(`
|
|
165
|
+
[Unable to rewind${e[0]?` to ${e[0]}`:" \u2014 no previous turn found"}]`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
166
|
+
/rewind - Rewind Session to a Previous Point
|
|
167
|
+
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /rewind ")+"Rewind to the previous user input"),console.log(d.dim(" /rewind <entry-id|label>")+"Rewind to a specific tree node"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Truncates the session after the target entry. Unlike /fork,")),console.log(d.dim(" this modifies the current session in place. The rewind event")),console.log(d.dim(" is recorded in the lineage for auditability.")),console.log(),console.log(d.yellow(" \u26A0 This is irreversible. Use /fork first to preserve a copy.")),console.log()},"detailedHelp")},{name:"sessions",aliases:["ls","list"],description:"List recent sessions",handler:i(async(e,t,n)=>{await n.listSessions()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
168
|
+
/sessions - List Saved Sessions
|
|
169
|
+
`)),console.log(d.bold("Usage:")),console.log(d.dim(" /sessions ")+"List all saved sessions"),console.log(d.dim(" /ls, /list ")+"Aliases for /sessions"),console.log(),console.log(d.bold("Description:")),console.log(d.dim(" Shows recent conversation sessions with their IDs,")),console.log(d.dim(" message counts, titles, and workspace truth. Use /load <id> to resume.")),console.log(d.dim(" This keeps sibling worktree sessions inspectable without a persistent cockpit.")),console.log(),console.log(d.dim(" See also: /help load, /help delete")),console.log()},"detailedHelp")},{name:"history",aliases:["hist"],description:"Show conversation history",handler:i(async(e,t,n)=>{n.printHistory()},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
170
|
+
/history - Show Conversation History
|
|
171
|
+
`)),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(`
|
|
172
|
+
[Usage: /delete <session-id> or /delete all]`)),await n.listSessions?.();return}e[0]==="all"?(await n.deleteAllSessions?.(),console.log(d.green(`
|
|
173
|
+
[All sessions deleted]`)),up(t)):(await n.deleteSession?.(e[0]),console.log(d.green(`
|
|
174
|
+
[Session deleted: ${e[0]}]`)),up(t))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
175
|
+
/delete - Delete Saved Sessions
|
|
176
|
+
`)),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=Vf().providerModels;if(e.length===0){console.log(d.bold(`
|
|
177
|
+
Available Providers:
|
|
178
|
+
`));let c=Kf(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,g=p?d.cyan(" *"):"";console.log(` ${d.bold(l.name)}${g} ${u}${m}`),l.capabilityProfile.transport==="cli-bridge"&&console.log(d.yellow(` ! ${Uf(l.capabilityProfile)}`));let x=Ii(l.name,o),y=p?r.model:null;for(let C of x){let b=p&&(y===C||!y&&C===l.model)?d.cyan(">"):" ";console.log(` ${b} ${C}`)}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
|
|
179
|
+
`));return}let s=(e[0]??"").trim();if(!s)return;if(s.startsWith("/")){let c=s.slice(1);if(!c){console.log(d.red(`
|
|
180
|
+
[Missing model name after /]`));return}let l=Ii(r.provider,o);if(!l.includes(c)){console.log(d.red(`
|
|
181
|
+
[Unknown model: ${c}]`)),console.log(d.dim(`Available models for ${r.provider}: ${l.join(", ")}
|
|
182
|
+
`));return}fr({model:c}),n.switchProvider?.(r.provider,c),console.log(d.cyan(`
|
|
183
|
+
[Switched to ${c}] (saved)`));return}if(s.includes("/")){let c=s.indexOf("/"),l=s.slice(0,c),u=s.slice(c+1);if(!u||!l){console.log(d.red(`
|
|
184
|
+
[Invalid format. Use: /model <provider>/<model>]`));return}if(!pi(l)){console.log(d.red(`
|
|
185
|
+
[Unknown provider: ${l}]`)),console.log(d.dim(`Available: ${gi().join(", ")}
|
|
186
|
+
`));return}let m=Ii(l,o);if(!m.includes(u)){console.log(d.red(`
|
|
187
|
+
[Unknown model: ${u}]`)),console.log(d.dim(`Available models for ${l}: ${m.join(", ")}
|
|
188
|
+
`));return}fr({provider:l,model:u}),n.switchProvider?.(l,u),console.log(d.cyan(`
|
|
189
|
+
[Switched to ${l}/${u}] (saved)`));return}let a=s;pi(a)?(fr({provider:a,model:void 0}),n.switchProvider?.(a),console.log(d.cyan(`
|
|
190
|
+
[Switched to ${a}] (saved)`))):(console.log(d.red(`
|
|
191
|
+
[Unknown provider: ${a}]`)),console.log(d.dim(`Available: ${gi().join(", ")}
|
|
192
|
+
`)))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
193
|
+
/model - Switch LLM Provider/Model
|
|
194
|
+
`)),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(!pi(s)){console.log(d.red(`
|
|
195
|
+
[Unknown provider: ${s}]`)),console.log(d.dim(`Available: ${gi().join(", ")}
|
|
196
|
+
`));return}let c=Xy(s,a);if(!c){console.log(d.red(`
|
|
197
|
+
[Provider details unavailable: ${s}]`)),console.log();return}let l=Qy(s,a,r.reasoningMode);console.log(d.bold(`
|
|
198
|
+
Provider Details:
|
|
199
|
+
`)),console.log(d.dim(` Provider: ${d.cyan(c.provider)}${c.model?` / ${d.cyan(c.model)}`:""}`)),console.log(d.dim(` Source: ${Yy(c.sourceKind)}`)),console.log(),console.log(d.bold("Capability Matrix:"));for(let u of qy(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(`
|
|
200
|
+
/provider - Inspect Provider Semantics
|
|
201
|
+
`)),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=mo(r.provider,r.model),a=r.thinking?d.green("ON"):d.dim("OFF");console.log(d.dim(`
|
|
202
|
+
Thinking: ${a}`)),console.log(d.dim(`Reasoning mode: ${d.cyan(r.reasoningMode)}`)),console.log(d.dim(`Effective control: ${d.cyan(jf(s))}`)),console.log(d.dim(`Actual execution: ${Gf(r.reasoningMode,s)}`)),console.log(d.dim(`Usage: /thinking on|off|auto|quick|balanced|deep
|
|
203
|
+
`));return}let o=e[0].toLowerCase();if(o==="on"||o==="off"||co.includes(o)){let s=o==="on"?"auto":o==="off"?"off":o,a=OT(s,n,r);_o(`Reasoning mode: ${s}`,a);return}console.log(d.red(`
|
|
204
|
+
[Invalid value: ${e[0]}]`)),console.log(d.dim(`Usage: /thinking on|off|auto|quick|balanced|deep
|
|
205
|
+
`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
206
|
+
/thinking - Legacy Alias for Reasoning Mode
|
|
207
|
+
`)),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=mo(r.provider,r.model);console.log(d.dim(`
|
|
208
|
+
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(jf(a))}`)),console.log(d.dim(`Actual execution: ${Gf(r.reasoningMode,a)}`)),console.log(d.dim(`Usage: /reasoning off|auto|quick|balanced|deep
|
|
209
|
+
`));return}let o=e[0].toLowerCase();if(!co.includes(o)){console.log(d.red(`
|
|
210
|
+
[Invalid reasoning mode: ${e[0]}]`)),console.log(d.dim(`Usage: /reasoning off|auto|quick|balanced|deep
|
|
211
|
+
`));return}let s=OT(o,n,r);_o(`Reasoning mode: ${o}`,s)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
212
|
+
/reasoning - Set Reasoning Mode
|
|
213
|
+
`)),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(`
|
|
214
|
+
Agent mode: ${d.cyan(r.agentMode.toUpperCase())}`)),console.log(d.dim(`Usage: /agent-mode [ama|sa|toggle]
|
|
215
|
+
`));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(`
|
|
216
|
+
[Invalid agent mode: ${e[0]}]`)),console.log(d.dim(`Usage: /agent-mode [ama|sa|toggle]
|
|
217
|
+
`));return}let a=JM(s,n,r);_o(`Agent mode: ${s.toUpperCase()}`,a)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
218
|
+
/agent-mode - Adaptive Multi-Agent Mode Control
|
|
219
|
+
`)),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"),Na("auto"),console.log(d.cyan(`
|
|
220
|
+
[Switched to auto mode] (saved)`))},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
221
|
+
/auto - Quick Switch to Auto Mode
|
|
222
|
+
`)),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(`
|
|
223
|
+
[/skills is deprecated. Use /skill instead]`)),await NT(e,t)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
224
|
+
/skills - Deprecated
|
|
225
|
+
`)),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 NT(e,t)},"handler"),detailedHelp:i(()=>{console.log(d.cyan(`
|
|
226
|
+
/skill - Skill Namespace
|
|
227
|
+
`)),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")},Jm,Zm],VM={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 zM(e){let t=Au();return e.map(n=>t.get(n)).filter(n=>n!==void 0).filter(n=>n.userInvocable!==!1)}i(zM,"getCommandsForCategory");function XM(e){return e!=="off"}i(XM,"reasoningModeToLegacyThinking");var YM=["auto","off","oss","premium-shared","premium-native"];function qM(e){return e&&YM.includes(e)?e:null}i(qM,"normalizeRepoIntelligenceMode");function LT(e){let t=e?.trim();return!t||t==="default"||t==="reset"||t==="clear"?null:t}i(LT,"normalizeRuntimeOverride");function QM(e,t){return e?e==="toggle"?!t:e==="on"||e==="true"||e==="1"?!0:e==="off"||e==="false"||e==="0"?!1:null:null}i(QM,"resolveToggleFlag");function dp(e){try{return fr(e),{saved:!0}}catch(t){return{saved:!1,error:t instanceof Error?t:new Error(String(t))}}}i(dp,"persistUserConfig");function _o(e,t){if(t.saved){console.log(d.cyan(`
|
|
228
|
+
[${e}] (saved)`));return}console.log(d.yellow(`
|
|
229
|
+
[${e}]`)),console.log(d.red(`[Config save failed: ${t.error.message}]`))}i(_o,"printPersistedCommandStatus");function OT(e,t,n){let r=XM(e),o=dp({reasoningMode:e,thinking:r});return t.setReasoningMode?t.setReasoningMode(e):(n.reasoningMode=e,n.thinking=r),o}i(OT,"applyReasoningMode");function JM(e,t,n){let r=dp({agentMode:e});return t.setAgentMode?t.setAgentMode(e):n.agentMode=e,r}i(JM,"applyAgentMode");function Mu(e,t,n,r){let o=dp(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(Mu,"applyRepoIntelligenceRuntimeConfig");function ZM(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(ZM,"formatRepoIntelligenceSummary");function BT(e){console.log(d.bold(`
|
|
230
|
+
Repo Intelligence:
|
|
231
|
+
`)),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(BT,"printRepoIntelligenceInspection");function eA(e){e.warmed?console.log(d.green(`
|
|
232
|
+
[repointel warmed successfully]`)):console.log(d.yellow(`
|
|
233
|
+
[repointel warm did not reach a ready daemon state]`)),e.warmLatencyMs!==void 0&&console.log(d.dim(` Warm latency: ${e.warmLatencyMs} ms`)),BT(e)}i(eA,"printRepoIntelligenceWarmResult");function DT(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(DT,"printCommandSection");function tA(){console.log(d.bold(`
|
|
234
|
+
Available Commands:
|
|
235
|
+
`));let e=Au(),t=new Set;for(let[r,o]of Object.entries(VM)){let s=zM(o);if(s.length!==0){for(let a of s)t.add(a.name.toLowerCase());DT(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 iA()){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"])DT(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(tA,"printHelp");function nA(e){Po.size===0&&fp();let t=Po.get(e.toLowerCase());if(!t){let n=HT(e);if(!n){console.log(d.yellow(`
|
|
236
|
+
[Unknown command: /${e}. Type /help for available commands]`));return}console.log(d.cyan(`
|
|
237
|
+
/${n.name}`)),n.aliases?.length&&console.log(d.dim(`Aliases: ${n.aliases.join(", ")}`)),console.log(d.dim(`
|
|
238
|
+
${n.description}`)),console.log(d.dim(`
|
|
239
|
+
Usage: ${sA(n)}`)),console.log();return}t.detailedHelp?t.detailedHelp():(console.log(d.cyan(`
|
|
240
|
+
/${t.name}`)),t.aliases?.length&&console.log(d.dim(`Aliases: ${t.aliases.join(", ")}`)),console.log(d.dim(`
|
|
241
|
+
${t.description}`)),t.usage&&console.log(d.dim(`
|
|
242
|
+
Usage: ${t.usage}`)),console.log())}i(nA,"printDetailedHelp");async function rA(e,t,n=[]){let r=n[0]?.toLowerCase(),o=e.contextTokenSnapshot?.currentTokens??lo(e.messages),s=e.contextTokenSnapshot?.source??"estimate",a=zy(t.provider),c=Cl(t.provider,t.model,t.reasoningMode);if(console.log(d.bold(`
|
|
243
|
+
Session Status:
|
|
244
|
+
`)),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=Uf(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 sa({mode:t.repoIntelligenceMode,trace:t.repoIntelligenceTrace});console.log(d.dim(` Repo Intel: ${d.cyan(ZM(l))}`)),e.runtimeInfo?.workspaceRoot?console.log(d.dim(` Workspace: ${d.cyan(Tn(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(rA,"printStatus");async function NT(e,t){let n=ur(t.gitRoot);n.size===0&&await uo(t.gitRoot),oA(n.listUserInvocable())}i(NT,"handleSkillNamespaceCommand");function oA(e){if(console.log(d.bold(`
|
|
245
|
+
Available Skills:
|
|
246
|
+
`)),e.length===0){console.log(d.dim(" No skills found.")),console.log(d.dim(`
|
|
247
|
+
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(oA,"printSkillsListPiMonoStyle");var Po=new ts;function fp(e){Po.size>0||PT(Po,e)}i(fp,"initCommandRegistry");function Au(e){return fp(e),Po}i(Au,"getCommandRegistry");function iA(){return dr()?.listCommands().filter(t=>t.metadata?.userInvocable!==!1)??[]}i(iA,"getActiveExtensionCommands");function HT(e){let t=dr(),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(HT,"getActiveExtensionCommand");function sA(e){return e.usage??`/${e.name}`}i(sA,"formatExtensionCommandUsage");function aA(e){return Array.isArray(e)?e.map(t=>String(t)).join(", "):e&&typeof e=="object"?JSON.stringify(e):String(e)}i(aA,"formatExtensionDiagnosticValue");function cA(e){if(!e)return;let t=Object.entries(e).filter(([,n])=>n!==void 0).map(([n,r])=>`${n}=${aA(r)}`);return t.length>0?t.join(" | "):void 0}i(cA,"formatExtensionDiagnosticMetadata");function rs(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(rs,"getExtensionRuntimeDiagnostics");function lA(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(lA,"toExtensionInvocationRequest");async function uA(e,t,n){let r=dr();if(!r)return console.log(d.yellow(`
|
|
248
|
+
[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(()=>rs(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=lA(e,o);return s?{invocation:s}:!0}i(uA,"executeExtensionCommand");function os(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(os,"parseCommand");async function is(e,t,n,r){if(Po.size===0&&fp(t.gitRoot),e.skillInvocation)return await dA({command:e.skillInvocation.name,args:e.args},t);let o=Po.get(e.command);if(o){if(o.userInvocable===!1)return console.log(d.yellow(`
|
|
249
|
+
[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(`
|
|
250
|
+
[Command failed: ${a instanceof Error?a.message:String(a)}]`)),!1}}let s=HT(e.command);if(s)try{return await uA(s,e.args,t)}catch(a){return console.log(d.red(`
|
|
251
|
+
[Extension command failed: ${a instanceof Error?a.message:String(a)}]`)),!1}return console.log(d.yellow(`
|
|
252
|
+
[Unknown command: /${e.command}. Type /help for available commands]`)),!1}i(is,"executeCommand");async function dA(e,t){let n=ur(t.gitRoot),r=e.command,o=e.args.join(" ");n.size===0&&await uo(t.gitRoot);try{let s=n.get(r);if(!s)return console.log(d.red(`
|
|
253
|
+
[Skill not found: ${r}]`)),!1;if(!s.userInvocable)return console.log(d.yellow(`
|
|
254
|
+
[Skill "${r}" is not user-invocable]`)),!1;console.log(d.cyan(`
|
|
255
|
+
[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 Py(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(`
|
|
256
|
+
[Error invoking skill: ${s instanceof Error?s.message:String(s)}]`)),!1}}i(dA,"executeSkillCommand");import{jsx as kA}from"react/jsx-runtime";import{useState as RA,useEffect as VT,useCallback as Kr,useMemo as zT,createContext as EA,useContext as XT}from"react";import*as _u from"fs";import*as mp from"path";function Gr(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(Gr,"findCommandSlashIndex");var $o=class{static{i(this,"FileCompleter")}cwdSource;cache=new Map;cacheTimeout=5e3;constructor(t){this.cwdSource=t}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:mp.join(c,s.slice(0,l)),m=l===-1?s:s.slice(l+1);try{let g=(await this.readdir(u)).filter(x=>x.toLowerCase().startsWith(m.toLowerCase()));for(let x of g){let y=mp.join(u,x),C=await this.isDirectory(y),w=l===-1?x:s.slice(0,l+1)+x;a.push({text:"@"+w+(C?"/":""),display:x+(C?"/":""),description:C?"directory":"file",type:"file"})}}catch{}return a}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=>{_u.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=>{_u.stat(t,(r,o)=>{n(!r&&o.isDirectory())})})}},Fa=class{static{i(this,"CommandCompleter")}commands;constructor(){this.commands=new Map,this.loadCommands()}loadCommands(){for(let n of Au().getAll())n.userInvocable!==!1&&this.commands.set(n.name,{description:n.description,aliases:n.aliases??[]});let t=dr();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=Gr(r);return o===-1?!1:!r.slice(o).includes(" ")}async getCompletions(t,n){let r=t.slice(0,n),o=Gr(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 FT(e){let t=new $o(e),n=new Fa;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(FT,"createCompleter");var Wa=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=ur(this.gitRoot);return n.size===0&&await uo(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 fA=[{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"}],Pu=[{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"}],WT=Pu.slice(2).concat([{name:"off",description:"Disable reasoning",type:"enum"}]);function mA(e){if(e&&e.includes("/")){let t=e.indexOf("/"),n=e.slice(0,t),r=e.slice(t+1);if(pi(n))try{return Ii(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(mA,"getModelArgs");var UT=[{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"}],pp=[{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"}],gp=[{name:"all",description:"Delete ALL sessions",type:"enum"}],pA=[{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"}],gA=[{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"}],hA=[{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"}],jT=[{name:"default",description:"Clear the override and use the default value again",type:"enum"}];function yA(e){let[t=""]=e,n=t.toLowerCase(),r=e.length===1&&e[0]===""?0:e.length;return r<=1?pA:r>2?[]:n==="mode"?gA:n==="trace"?hA:n==="endpoint"?[...jT,{name:vy,description:"Default local repointel daemon endpoint",type:"string"}]:n==="bin"?jT:[]}i(yA,"getRepointelArgs");var xA=new Map([["mode",fA],["thinking",Pu],["think",Pu],["t",Pu],["reasoning",WT],["reason",WT],["plan",UT],["p",UT],["status",pp],["info",pp],["ctx",pp],["delete",gp],["rm",gp],["del",gp]]),wA=new Set(["model","m"]),TA=new Set(["repointel","ri"]);function hp(e,t,n=[]){let r=e.toLowerCase();return wA.has(r)?mA(t):TA.has(r)?yA(n):xA.get(r)??[]}i(hp,"getCommandArguments");var $u=class{static{i(this,"ArgumentCompleter")}canComplete(t,n){let r=t.slice(0,n),o=Gr(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 hp(c).length>0}async getCompletions(t,n){let r=t.slice(0,n),o=Gr(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(),g=hp(c,p,u);if(!g||g.length===0)return[];let x=new Set(u.slice(0,-1).map(C=>C.toLowerCase()));return g.filter(C=>!x.has(C.name.toLowerCase())).filter(C=>!p||C.name.includes("/")?!0:C.name.toLowerCase().includes(p)).map(C=>({text:C.name,display:C.name,description:C.description,type:"argument"})).sort((C,w)=>{let b=C.display.toLowerCase().startsWith(p),P=w.display.toLowerCase().startsWith(p);return b&&!P?-1:!b&&P?1:C.display.length-w.display.length})}};function SA(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=CA(t,a);return o+=c,{matched:!0,score:o,highlights:a}}i(SA,"fuzzyMatch");function CA(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(CA,"calculateWordBoundaryBonus");function bA(e,t){return e?t.toLowerCase().startsWith(e.toLowerCase()):!0}i(bA,"prefixMatch");function vA(e,t){if(bA(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{...SA(e,t),isPrefix:!1}}i(vA,"combinedMatch");function GT(e,t,n=0){return e?t.map(r=>{let o=vA(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(GT,"sortCandidatesCombined");var IA={debounceDelay:100,minTriggerChars:1,maxCompletions:10,minScore:0},yp=class{static{i(this,"AutocompleteProvider")}completers;options;state;listeners=new Set;debounceTimer=null;lastInput="";lastCursorPos=0;constructor(t={}){this.options={...IA,...t},this.completers=[new Wa(this.options.gitRoot),new $u,new Fa,new $o(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 Wa)?.setGitRoot(this.options.gitRoot),r){let o=this.completers.findIndex(s=>s instanceof $o);o!==-1&&(this.completers[o]=new $o(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=Gr(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 GT(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=Gr(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 KT(e){return new yp(e)}i(KT,"createAutocompleteProvider");var xp=EA(null);function wp({children:e,cwd:t,gitRoot:n}){let r=Lu({cwd:t,gitRoot:n,enabled:!0});return kA(xp.Provider,{value:r,children:e})}i(wp,"AutocompleteContextProvider");function Lo(){return XT(xp)}i(Lo,"useAutocompleteContext");function MA(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(MA,"completionToSuggestion");function Lu(e={}){let t=XT(xp);return t&&!e.cwd&&!e.gitRoot?t:AA(e)}i(Lu,"useAutocomplete");function AA(e){let{cwd:t,gitRoot:n,enabled:r=!0}=e,o=zT(()=>KT({cwd:t,gitRoot:n,debounceDelay:100,minTriggerChars:1,maxCompletions:8}),[]);VT(()=>{o.updateOptions({cwd:t,gitRoot:n})},[o,t,n]);let[s,a]=RA({visible:!1,selectedIndex:0,completions:[],loading:!1});VT(()=>o.subscribe(b=>{a(b)}),[o]);let c=zT(()=>s.completions.map((w,b)=>MA(w,b)),[s.completions]),l=Kr((w,b)=>{if(!r){o.cancel();return}o.handleInput(w,b)},[o,r]),u=Kr(()=>s.visible?o.acceptCompletionWithType():null,[o,s.visible]),m=Kr(()=>s.visible?o.acceptCompletionWithType():null,[o,s.visible]),p=Kr(()=>{s.visible&&o.selectPrevious()},[o,s.visible]),g=Kr(()=>{s.visible&&o.selectNext()},[o,s.visible]),x=Kr(()=>{s.visible&&o.cancel()},[o,s.visible]),y=Kr(()=>{o.cancel()},[o]),C=Kr(()=>o,[o]);return{state:s,suggestions:c,handleInput:l,handleTab:u,handleEnter:m,handleUp:p,handleDown:g,handleEscape:x,cancel:y,getProvider:C}}i(AA,"useAutocompleteImpl");import{useCallback as Ua,useRef as YT}from"react";var Sn=[];function Tp(e={}){let{maxSize:t=1e3,onSave:n}=e,r=YT(-1),o=YT(""),s=Ua((m,p)=>{if(!m.trim())return;if(Sn[Sn.length-1]?.text!==m){let x={text:m,timestamp:Date.now(),...p?.pastedContents&&p.pastedContents.length>0?{pastedContents:[...p.pastedContents]}:{}};Sn.push(x),Sn.length>t&&Sn.splice(0,Sn.length-t),n?.(x)}r.current=-1,o.current=""},[t,n]),a=Ua(()=>Sn.length===0?null:r.current===-1?(r.current=Sn.length-1,Sn[r.current]??null):r.current>0?(r.current--,Sn[r.current]??null):null,[]),c=Ua(()=>r.current===-1?null:r.current<Sn.length-1?(r.current++,Sn[r.current]??null):(r.current=-1,{text:o.current,timestamp:Date.now()}),[]),l=Ua(()=>{r.current=-1,o.current=""},[]),u=Ua(m=>{r.current===-1&&(o.current=m)},[]);return{add:s,navigateUp:a,navigateDown:c,reset:l,saveTempInput:u}}i(Tp,"useInputHistory");function qt(e,t,n){return Vt(e).slice(t,n).join("")}i(qt,"sliceByCodePoints");var ja=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 Kn(this.currentLine)}get visualCursor(){let t=this._lines[this._cursor.row]??"",n=qt(t,0,this._cursor.col);return{row:this._cursor.row,col:Kn(n)}}getCharWidthAtCursor(){let t=this._lines[this._cursor.row]??"",r=Vt(t)[this._cursor.col];return r?Gn(r)?2:1:0}visualColToLogicalCol(t){let n=this._lines[this._cursor.row]??"",r=Vt(n),o=0;for(let s=0;s<r.length;s++){let a=Gn(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(`
|
|
257
|
+
`);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=qt(n,0,this._cursor.col),o=qt(n,this._cursor.col);this._lines[this._cursor.row]=r+t+o,this._cursor.col+=nn(t),this._rememberedCol=this._cursor.col,this._updateText()}newline(){this._saveHistory(),this._insertNewline()}_insertNewline(){let t=this._lines[this._cursor.row],n=qt(t,0,this._cursor.col),r=qt(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=qt(t,0,n),o=qt(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=nn(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<nn(t)){this._saveHistory();let n=qt(t,0,this._cursor.col),r=qt(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=nn(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col)}_moveRight(){let t=this._lines[this._cursor.row];this._cursor.col<nn(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=nn(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col}_clampColumn(){let t=this._lines[this._cursor.row],n=nn(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,nn(this._lines[this._cursor.row]))),this._rememberedCol=this._cursor.col}killLineRight(){let t=this._lines[this._cursor.row];this._cursor.col<nn(t)&&(this._saveHistory(),this._lines[this._cursor.row]=qt(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]=qt(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=Vt(t);for(;n>0&&/\s/.test(r[n]??"");)n--;for(;n>0&&!/\s/.test(r[n-1]??"");)n--;let o=qt(t,0,n),s=qt(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(`
|
|
258
|
+
`),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(`
|
|
259
|
+
`),this._lines.length===0&&(this._lines=[""]),this._clampCursor(),!0):!1}_updateText(){this._text=this._lines.join(`
|
|
260
|
+
`)}_setTextInternal(t){this._text=t,this._lines=t.split(`
|
|
261
|
+
`),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:nn(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+=qt(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=nn(this._lines[this._cursor.row]??""),this._rememberedCol=this._cursor.col}};import{useState as _A,useCallback as vt,useRef as Sp,useEffect as PA}from"react";function Cp(e={}){let{initialValue:t="",onTextChange:n}=e,r=Sp(null),o=Sp(null),s=Sp(null),[a,c]=_A({text:t,cursor:{row:0,col:0},lines:[""],isPasting:!1,editingMode:t?"typing":"idle"});r.current===null&&(r.current=new ja,t&&r.current.setText(t)),o.current===null&&(o.current=kT());let l=r.current,u=o.current,m=vt(v=>{c(M=>({text:l.text,cursor:l.cursor,lines:l.lines,isPasting:v?.isPasting??M.isPasting,editingMode:v?.editingMode??M.editingMode})),n?.(l.text)},[l,n]),p=vt(()=>{s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{c(v=>({...v,isPasting:!1,editingMode:v.text?"typing":"idle"})),s.current=null},120)},[]),g=vt(v=>{l.setText(v),m({isPasting:!1,editingMode:v?"typing":"idle"})},[l,m]),x=vt((v,M,re)=>{l.replaceRange(v,M,re),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),y=vt((v,M)=>{let re=M?.paste??!1;if(re&&vT(v)){let xe=v.replace(/\r\n/g,`
|
|
262
|
+
`).replace(/\r/g,`
|
|
263
|
+
`),{placeholder:Re}=u.registerText(xe);l.insert(Re,{paste:!0}),m({isPasting:!0,editingMode:"pasting"}),p();return}l.insert(v,{paste:!1}),m({isPasting:re,editingMode:re?"pasting":"typing"}),re&&p()},[l,u,p,m]),C=vt(()=>{l.newline(),m({isPasting:!1,editingMode:"typing"})},[l,m]),w=vt(()=>{let v=l.getAbsoluteOffset(),M=vu(l.text,v);M?l.replaceRange(M.start,M.end,""):l.backspace(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),b=vt(()=>{let v=l.getAbsoluteOffset(),M=Iu(l.text,v);M?l.replaceRange(M.start,M.end,""):l.delete(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),P=vt(v=>{l.move(v),m()},[l,m]),L=vt(()=>{l.clear(),m({isPasting:!1,editingMode:"idle"})},[l,m]),U=vt(()=>{let v=l.undo();return v&&m(),v},[l,m]),D=vt(()=>{let v=l.redo();return v&&m(),v},[l,m]),O=vt(()=>{l.moveToEnd(),m()},[l,m]),I=vt(v=>{l.moveToAbsoluteOffset(v),m()},[l,m]),ce=vt(()=>{l.killLineRight(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),ye=vt(()=>{l.killLineLeft(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),F=vt(()=>{l.deleteWordLeft(),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]),z=vt(()=>{s.current&&(clearTimeout(s.current),s.current=null),m({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,m]);return PA(()=>()=>{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:z,setText:g,replaceRange:x,insert:y,newline:C,backspace:w,delete:b,move:P,moveToEnd:O,moveToOffset:I,killLineRight:ce,killLineLeft:ye,deleteWordLeft:F,clear:L,undo:U,redo:D}}i(Cp,"useTextBuffer");import{jsx as Oo,jsxs as Du}from"react/jsx-runtime";import{useState as ZT}from"react";import{useCallback as ss,useEffect as bp,useRef as Ou}from"react";function qT(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(qT,"buildAutocompleteReplacement");var LA=500;function QT(e,t,n){return n==="up"?e===0:e>=Math.max(0,t-1)}i(QT,"shouldUseHistoryNavigation");function OA(e){return e.isAutocompleteVisible?"cancel-autocomplete":e.hasText?e.timeSinceLastEscapeMs<LA?"clear-input":"arm-clear":"pass-through"}i(OA,"resolvePromptEscapeBehavior");function DA(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(DA,"resolvePromptEnterBehavior");function NA(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(NA,"resolvePromptEditingCommand");function JT({onSubmit:e,onExit:t,focus:n=!0,initialValue:r="",cwd:o,gitRoot:s,autocompleteEnabled:a=!0,onInputChange:c,onHistoryRecall:l,onPopPendingInputs:u}){let m=Ou(0),{add:p,navigateUp:g,navigateDown:x,reset:y,saveTempInput:C}=Tp(),{buffer:w,text:b,cursor:P,lines:L,isPasting:U,editingMode:D,pasteStore:O,resetTransientState:I,setText:ce,replaceRange:ye,clear:F,move:z,moveToOffset:v,insert:M,backspace:re,newline:xe,delete:Re,undo:Te,redo:le,killLineRight:$e,killLineLeft:J,deleteWordLeft:Y}=Cp({initialValue:r,onTextChange:c}),q=Ou(0);bp(()=>{if(U)return;if(b.length<=1e4){q.current=0;return}if(b.length===q.current)return;let Q=O.peekNextId(),{truncatedText:N,placeholderContent:Oe}=IT(b,Q);Oe&&(O.registerTruncatedText(Oe),q.current=N.length,ce(N))},[b,U,O,ce]);let Ge=Lo(),Se=Lu({cwd:o,gitRoot:s,enabled:a}),{state:_e,suggestions:Ee,handleInput:dt,handleTab:we,handleEnter:Ze,handleUp:et,handleDown:ie,handleEscape:A}=Ge??Se;bp(()=>{n||(m.current=0,I(),_e.visible&&A())},[_e.visible,n,A,I]);let _=Ou(b);bp(()=>{a&&b!==_.current&&(_.current=b,dt(b,w.getAbsoluteOffset()))},[a,w,dt,b]);let W=ss(Q=>{if(!Q?.text)return;let N=qT(b,w.getAbsoluteOffset(),Q),Oe=b.slice(0,N.start)+N.replacement+b.slice(N.end);return ye(N.start,N.end,N.replacement),Oe},[w,ye,b]),ee=ss(Q=>{let N=Q??b;if(!N.trim())return;let Oe=O.expand(N),Be=new Set,Kt=/\[(Pasted text|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;for(let hc of N.matchAll(Kt)){let vn=Number.parseInt(hc[2]??"0",10);Number.isFinite(vn)&&vn>0&&Be.add(vn)}let rr=[];for(let hc of Be){let vn=O.get(hc);vn&&rr.push(vn)}p(N,{pastedContents:rr}),e({displayText:N,fullText:Oe,pastedContents:rr}),F()},[p,F,e,O,b]),Le=ss(Q=>{if(Q){if(Q.pastedContents&&Q.pastedContents.length>0){for(let N of Q.pastedContents)O.adopt(N);l?.({text:Q.text,pastedContents:[...Q.pastedContents]})}ce(Q.text)}},[l,O,ce]),tt=ss(async Q=>{try{let N=await Jy(Q);if(N.kind==="images"){let Oe=N.blocks.map(Be=>`@${Be.path}`).join(" ");M(`${Oe} `,{paste:!1})}else N.kind==="error"&&console.warn(`[KodaX paste] ${N.message}`)}catch(N){console.warn(`[KodaX paste] image handling failed: ${N instanceof Error?N.message:String(N)}`)}},[M]),Ce=Ou(!1),Ne=ss(async()=>{if(!Ce.current){Ce.current=!0;try{let Q=await Zy();if(Q.kind==="images"){let N=Q.blocks.map(Oe=>`@${Oe.path}`).join(" ");M(`${N} `,{paste:!1})}else Q.kind==="error"&&console.warn(`[KodaX clipboard] ${Q.message}`)}catch(Q){console.warn(`[KodaX clipboard] image handling failed: ${Q instanceof Error?Q.message:String(Q)}`)}finally{Ce.current=!1}}},[M]),ve=ss(Q=>{if(!n)return!1;if(Q.name==="v"&&(Q.ctrl||Q.meta))return Ne(),!0;if(Q.name==="paste"&&Q.isPasted&&ex(Q.sequence).length>0)return tt(Q.sequence),!0;let N=_e.visible&&Ee.length>0;if(Q.name==="tab"&&N){let Be=we();return Be&&W(Be),!0}if(Q.ctrl&&Q.name==="c")return b.length>0?(F(),y()):t?.(),!0;if(Q.name==="escape")switch(OA({isAutocompleteVisible:N,hasText:b.length>0,timeSinceLastEscapeMs:Date.now()-m.current})){case"cancel-autocomplete":return A(),m.current=0,!0;case"clear-input":return m.current=0,F(),y(),!0;case"arm-clear":return m.current=Date.now(),!0;default:return!1}if(Q.name==="up"){if(N)return et(),!0;if(Q.ctrl)return z("up"),!0;if(b.length===0&&u){let Be=u();if(typeof Be=="string"&&Be.length>0)return ce(Be),!0}if(QT(P.row,L.length,"up")){C(b);let Be=g();Le(Be)}else z("up");return!0}if(Q.name==="down"){if(N)return ie(),!0;if(Q.ctrl)return z("down"),!0;if(QT(P.row,L.length,"down")){let Be=x();Le(Be)}else z("down");return!0}if(Q.name==="left"){let Be=w.getAbsoluteOffset(),Kt=vu(w.text,Be);return Kt?v(Kt.start):z("left"),!0}if(Q.name==="right"){let Be=w.getAbsoluteOffset(),Kt=Iu(w.text,Be);return Kt?v(Kt.end):z("right"),!0}if(Q.name==="home")return z("home"),!0;if(Q.name==="end")return z("end"),!0;let Oe=NA(Q);if(Oe)switch(Oe){case"move-home":return z("home"),!0;case"move-end":return z("end"),!0;case"undo":return Te(),!0;case"redo":return le(),!0;case"kill-line-right":return $e(),!0;case"kill-line-left":return J(),!0;case"delete-word-left":return Y(),!0;default:break}if(Q.name==="backspace")return re(),!0;if(Q.name==="delete")return Re(),!0;if(Q.name==="return"||Q.name==="newline")switch(DA({keyName:Q.name,ctrl:Q.ctrl,shift:Q.shift,isAutocompleteVisible:N,isLineContinuation:!!L[P.row]?.endsWith("\\"),isPasting:U})){case"accept-completion-and-submit":{let Kt=Ze();if(Kt){let rr=W(Kt);ee(rr)}else ee();return!0}case"newline":return xe(),!0;case"line-continuation":return re(),xe(),!0;default:return ee(),!0}return Q.insertable&&!Q.ctrl&&!Q.meta?(M(Q.sequence,Q.isPasted?{paste:!0}:void 0),!0):!1},[W,p,_e.visible,re,w,F,P.row,Re,n,ie,A,et,Ze,Le,we,tt,Ne,L,J,$e,z,v,x,g,xe,t,u,le,y,C,ce,ee,Ee.length,b.length,Y,U,Te]);return{text:b,cursor:P,lines:L,isPasting:U,terminalFocused:n,editingMode:D,handleKey:ve}}i(JT,"usePromptInputController");var as=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}=Hr(),{cursor:g,lines:x,handleKey:y,isPasting:C,terminalFocused:w,editingMode:b}=JT({onSubmit:e,onExit:p,focus:s,initialValue:a,cwd:c,gitRoot:l,autocompleteEnabled:u,onInputChange:m,onHistoryRecall:t,onPopPendingInputs:n});return on(Nt.High,P=>y(P),[y]),Oo(k,{flexDirection:"column",children:Oo($m,{lines:x,cursorRow:g.row,cursorCol:g.col,prompt:o,placeholder:r,focus:s,terminalFocused:w,isPasting:C,editingMode:b,theme:"dark"})})},"InputPrompt"),BA=i(({onSubmit:e,placeholder:t,prompt:n=">"})=>{let[r,o]=ZT(""),[s,a]=ZT(0);on(Nt.High,p=>{if(p.name==="return")return r.trim()&&(e(r),o(""),a(0)),!0;if(p.name==="backspace"&&s>0){let g=[...r].slice(0,s-1).join(""),x=[...r].slice(s).join("");return o(g+x),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 g=[...r].slice(0,s).join(""),x=[...r].slice(s).join("");return o(g+p.sequence+x),a(s+1),!0}return!1},[r,s,e]);let c=te("dark");if(!r)return Du(k,{children:[Du(S,{color:c.colors.primary,children:[n," "]}),t&&Oo(S,{dimColor:!0,children:t}),Oo(S,{backgroundColor:c.colors.primary,color:"#000000",children:" "})]});let l=[...r].slice(0,s).join(""),u=[...r][s]??" ",m=[...r].slice(s+1).join("");return Du(k,{children:[Du(S,{color:c.colors.primary,children:[n," "]}),Oo(S,{children:l}),Oo(S,{backgroundColor:c.colors.primary,color:"#000000",children:u}),Oo(S,{children:m})]})},"SimpleInputPrompt");import{jsx as st,jsxs as Et}from"react/jsx-runtime";import{useState as tS,useEffect as nS}from"react";var eS=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],HA=80,Nu=new Set,Ga=null;function FA(){let e=Array.from(Nu);for(let t of e)t()}i(FA,"dispatchSharedSpinnerTick");function WA(e){return Nu.add(e),Ga===null&&(Ga=setInterval(FA,HA)),()=>{Nu.delete(e),Nu.size===0&&Ga!==null&&(clearInterval(Ga),Ga=null)}}i(WA,"subscribeToSharedSpinnerClock");function rS(e=!0){let[t,n]=tS(0);return nS(()=>{if(e)return WA(()=>{n(r=>r+1)})},[e]),t}i(rS,"useSharedSpinnerTick");var Cn=i(({color:e,theme:t})=>{let n=t??te("dark"),o=rS(!0)%eS.length,s=e??n.colors.accent;return st(S,{color:s,children:eS[o]})},"Spinner");function UA(e){return e<=0?0:Math.round(e/4)}i(UA,"estimateOutputTokens");function jA(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(jA,"formatElapsedDuration");var oS=i(({roundStartedAt:e,charCount:t,theme:n})=>{let r=n??te("dark");if(rS(e!==null),e===null)return null;let o=GA(Date.now()-e,t);return st(S,{color:r.colors.dim,children:o})},"SpinnerStatsTail");function GA(e,t){let n=jA(e),r=UA(t);return r>0?` (${n} \xB7 \u2193 ${r} tokens)`:` (${n})`}i(GA,"buildSpinnerStatsText");var iS=i(({label:e,dotCount:t=3,theme:n})=>{let r=n??te("dark"),[o,s]=tS(1);nS(()=>{let c=setInterval(()=>{s(l=>l%t+1)},300);return()=>clearInterval(c)},[t]);let a=".".repeat(o);return Et(k,{children:[e&&st(S,{color:r.colors.text,children:e}),st(S,{color:r.colors.accent,children:a})]})},"DotsIndicator"),sS=i(({progress:e,label:t,width:n=20,theme:r})=>{let o=r??te("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 Et(k,{flexDirection:"column",children:[t&&st(k,{marginBottom:1,children:st(S,{color:o.colors.text,children:t})}),Et(k,{children:[st(S,{color:o.colors.primary,children:l}),st(S,{dimColor:!0,children:u}),Et(S,{children:[" ",s,"%"]})]})]})},"ProgressIndicator"),KA=i(({message:e,showSpinner:t=!1,theme:n})=>{let r=n??te("dark"),o=e??"Thinking";return Et(k,{children:[t&&st(k,{marginRight:1,children:st(Cn,{theme:r})}),Et(S,{color:r.colors.accent,children:[o,"\u2026"]})]})},"ThinkingIndicator"),VA=i(({message:e,subMessage:t,progress:n,type:r="spinner",compact:o=!1,theme:s})=>{let a=s??te("dark"),c=e??"Loading";return o?Et(k,{children:[st(Cn,{theme:a}),Et(S,{color:a.colors.text,children:[" ",c,"\u2026"]})]}):r==="bar"&&n!==void 0?Et(k,{flexDirection:"column",children:[st(sS,{progress:n,label:c,theme:a}),t&&st(k,{marginTop:1,children:st(S,{dimColor:!0,children:t})})]}):r==="dots"?Et(k,{flexDirection:"column",children:[st(iS,{label:c,theme:a}),t&&st(k,{marginTop:1,children:st(S,{dimColor:!0,children:t})})]}):r==="simple"?Et(k,{flexDirection:"column",children:[Et(S,{color:a.colors.accent,children:[c,"\u2026"]}),t&&st(k,{marginTop:1,children:st(S,{dimColor:!0,children:t})}),n!==void 0&&st(k,{marginTop:1,children:Et(S,{dimColor:!0,children:[n,"%"]})})]}):Et(k,{flexDirection:"column",children:[Et(k,{children:[st(Cn,{theme:a}),Et(S,{color:a.colors.text,children:[" ",c,"\u2026"]}),n!==void 0&&Et(S,{dimColor:!0,children:[" (",n,"%)"]})]}),t&&st(k,{marginTop:1,children:st(S,{dimColor:!0,children:t})})]})},"LoadingIndicator");import{jsx as ue,jsxs as Fe,Fragment as Op}from"react/jsx-runtime";import{useEffect as AS,useMemo as Jn,memo as sn}from"react";function Ke(e,t=120){return e.length>t?`${e.slice(0,t-3)}...`:e}i(Ke,"truncateValue");function aS(e){if(e)return e.split(/\r?\n/).map(t=>t.trim()).find(Boolean)}i(aS,"extractFirstMeaningfulLine");function uS(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(uS,"splitDisplayToolName");function Bu(e){let{rolePrefix:t,toolLabel:n}=uS(e);return t?`${t} ${n}`:n}i(Bu,"normalizeDisplayToolName");function Ip(e){return uS(e).toolLabel}i(Ip,"stripRolePrefix");function Hu(e){if(!(!e||Array.isArray(e)||typeof e!="object"))return e}i(Hu,"asRecord");function dS(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i(dS,"readString");function Tt(e,...t){for(let n of t){let r=dS(e?.[n]);if(r)return r}}i(Tt,"readFirstString");function qn(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(qn,"readNumber");function fS(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(fS,"readStringArray");function zA(e){if(typeof e=="string")return e.trim()||void 0;let t=Hu(e);if(t)return dS(t.preview)??void 0}i(zA,"extractPreview");function cS(e){if(e)try{return Hu(JSON.parse(e))}catch{return}}i(cS,"parsePreviewRecord");function Ae(e,t){return e&&e.match(new RegExp(`"${t}"\\s*:\\s*"([^"]+)`))?.[1]?.trim()||void 0}i(Ae,"extractFieldFromPreview");function Qn(e,t){if(!e)return;let n=e.match(new RegExp(`"${t}"\\s*:\\s*(\\d+)`));return n?.[1]?Number(n[1]):void 0}i(Qn,"extractNumberFromPreview");function mS(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(mS,"extractPathsFromPreview");function XA(e){let t=zA(e);if(typeof e=="string")return{record:cS(t),preview:t};let n=Hu(e),r=cS(t);return n?r?{record:{...n,...r},preview:t}:{record:n,preview:t}:{record:r,preview:t}}i(XA,"resolveInputRecord");function cs(e,t,n,r=!1){let o=Tt(t,"path","target_path","targetPath")??Ae(n,"path")??Ae(n,"target_path")??Ae(n,"targetPath"),s=fS(t?.paths)??mS(n);if(r&&s?.length){s.length===1?e.push(Ke(s[0])):e.push(`${s.length} files`);return}if(o){e.push(Ke(o));return}s?.length&&(s.length===1?e.push(Ke(s[0])):e.push(`${s.length} files`))}i(cs,"pushPathSummary");function ls(e,t,n){n!==void 0&&e.push(`${t}=${n}`)}i(ls,"pushNumericSummary");function vp(e,t,n){let r=Tt(t,"baseRef","base_ref")??Ae(n,"baseRef")??Ae(n,"base_ref"),o=Tt(t,"targetRef","target_ref")??Ae(n,"targetRef")??Ae(n,"target_ref");r&&o&&e.push(Ke(`${r}...${o}`,88))}i(vp,"pushRangeSummary");function YA(e,t){let{record:n,preview:r}=XA(t),o=Ip(e).toLowerCase(),s=[];if(o.includes("changed_diff_bundle")){let a=fS(n?.paths)??mS(r);a?.length?(s.push(a.length===1?Ke(a[0]):`${a.length} files`),a.length>1&&s.push(Ke(a[0]))):cs(s,n,r,!0);let c=qn(n?.limit_per_path)??qn(n?.limitPerPath)??Qn(r,"limit_per_path")??Qn(r,"limitPerPath");return c!==void 0&&s.push(`limit=${c}`),vp(s,n,r),s}if(o.includes("changed_diff"))return cs(s,n,r),ls(s,"offset",qn(n?.offset)??Qn(r,"offset")),ls(s,"limit",qn(n?.limit)??Qn(r,"limit")),vp(s,n,r),s;if(o==="read"||o.includes("read_"))return cs(s,n,r),ls(s,"offset",qn(n?.offset)??Qn(r,"offset")),ls(s,"limit",qn(n?.limit)??Qn(r,"limit")),s;if(o.includes("changed_scope"))return cs(s,n,r,!0),vp(s,n,r),s;if(o.includes("repo_overview"))return cs(s,n,r),s;if(o.includes("bash")||o.includes("shell_command")){let a=Tt(n,"command")??Ae(r,"command");return a&&s.push(`cmd=${Ke(a,140)}`),s}if(o==="glob"||o.includes("glob_")){let a=Tt(n,"pattern")??Ae(r,"pattern"),c=Tt(n,"path","root","directory","cwd")??Ae(r,"path")??Ae(r,"root")??Ae(r,"directory")??Ae(r,"cwd");return a&&s.push(`pattern=${Ke(a,96)}`),c&&s.push(Ke(c)),s}if(o==="grep"||o.includes("grep_")){let a=Tt(n,"pattern","query")??Ae(r,"pattern")??Ae(r,"query"),c=Tt(n,"path","root","directory","cwd")??Ae(r,"path")??Ae(r,"root")??Ae(r,"directory")??Ae(r,"cwd");return a&&s.push(`pattern=${Ke(a,96)}`),c&&s.push(Ke(c)),s}if(o==="web_fetch"){let a=Tt(n,"url")??Ae(r,"url"),c=Tt(n,"provider_id","providerId")??Ae(r,"provider_id")??Ae(r,"providerId"),l=Tt(n,"capability_id","capabilityId")??Ae(r,"capability_id")??Ae(r,"capabilityId");return a&&s.push(Ke(a,120)),c&&s.push(`provider=${Ke(c,48)}`),l&&s.push(`cap=${Ke(l,48)}`),s}if(o==="mcp_describe"||o==="mcp_read_resource"){let a=Tt(n,"id")??Ae(r,"id");return a&&s.push(Ke(a,120)),s}if(o==="mcp_call"){let a=Tt(n,"id")??Ae(r,"id"),c=Hu(n?.args),l=c?Object.keys(c).length:void 0;return a&&s.push(Ke(a,120)),l!==void 0&&s.push(`args=${l}`),s}if(o==="mcp_search"){let a=Tt(n,"query")??Ae(r,"query"),c=Tt(n,"server")??Ae(r,"server"),l=Tt(n,"kind")??Ae(r,"kind"),u=qn(n?.limit)??Qn(r,"limit");return a&&s.push(`query=${Ke(a,96)}`),c&&s.push(`server=${Ke(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=Tt(n,"query","pattern")??Ae(r,"query")??Ae(r,"pattern"),c=Tt(n,"path","target_path","targetPath")??Ae(r,"path")??Ae(r,"target_path")??Ae(r,"targetPath"),l=Tt(n,"provider_id","providerId")??Ae(r,"provider_id")??Ae(r,"providerId"),u=qn(n?.limit)??Qn(r,"limit");return a&&s.push(`query=${Ke(a,96)}`),c&&s.push(Ke(c,72)),l&&s.push(`provider=${Ke(l,48)}`),u!==void 0&&s.push(`limit=${u}`),s}return cs(s,n,r,!0),ls(s,"offset",qn(n?.offset)??Qn(r,"offset")),ls(s,"limit",qn(n?.limit)??Qn(r,"limit")),s}i(YA,"summarizeToolDetails");function pS(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(pS,"extractChangedDiffRange");function qA(e){return e.split(/\r?\n/).map(t=>t.trim()).find(t=>t.startsWith("+")||t.startsWith("-")||t.startsWith("@@"))}i(qA,"extractDiffPreviewLine");function QA(e){let t=[],n=pS(e);if(n){let[o,s]=n.split("/");t.push(s?`Diff range: ${o} of ${s}`:`Diff range: ${n}`)}let r=qA(e);return r&&t.push(`Preview: ${Ke(r,220)}`),t}i(QA,"formatChangedDiffExplanation");function JA(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: ${Ke(r[1].trim(),220)}`),t}i(JA,"formatChangedDiffBundleExplanation");function gS(e,t){if(!t)return[];let n=Ip(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(Ke(s[1].trim())),r}if(n.includes("changed_diff")){let o=t.match(/^Changed diff for\s+(.+)$/im);o?.[1]&&r.push(Ke(o[1].trim()));let s=pS(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(Ke(o[1].trim())),r}return[]}i(gS,"summarizeToolOutputDetails");function kp(e,t){let n=Bu(e);return t.length>0?`${n} - ${t.join(" - ")}`:n}i(kp,"formatToolDetailSummary");function ZA(e,t){if(!t)return;let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}i(ZA,"formatDuration");function e_(e){switch(e.status){case $.Scheduled:return"scheduled";case $.Validating:return"validating";case $.AwaitingApproval:return"awaiting approval";case $.Executing:return"running";case $.Error:return"failed";case $.Cancelled:return"cancelled";default:return}}i(e_,"formatToolStatusDetail");function lS(e){switch(e.status){case $.Scheduled:return["Queued: waiting to start"];case $.Validating:return["Validating: checking inputs and policy"];case $.AwaitingApproval:return["Waiting: approval required before execution"];case $.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 $.Cancelled:return["Cancelled before completion"];default:return[]}}i(lS,"formatToolProgressExplanation");function Rp(e){return e.startsWith("Error:")?"error":e.startsWith("Waiting:")?"accent":e.startsWith("Progress:")||e.startsWith("Running:")?"primary":"dim"}i(Rp,"resolveToolExplanationTone");function t_(e){let t=aS(e.error),n=typeof e.output=="string"?aS(e.output):void 0,r=[];return t&&r.push(`Error: ${Ke(t,220)}`),e.status===$.Error&&n&&(!t||n.toLowerCase()!==t.toLowerCase())&&r.push(`Last output: ${Ke(n,220)}`),r}i(t_,"formatToolFailureExplanation");function Ep(e){if(typeof e.output!="string"||!e.output.trim())return lS(e);let t=Ip(e.name).toLowerCase();return e.status===$.Error?t_(e):e.status!==$.Success?lS(e):t.includes("changed_diff_bundle")?JA(e.output):t.includes("changed_diff")?QA(e.output):[]}i(Ep,"formatToolResultExplanation");function Mp(e,t){return kp(e,YA(e,t))}i(Mp,"formatToolSummary");function Fu(e){let t=typeof e.output=="string"?gS(e.name,e.output):[],n=t.length>0?kp(e.name,t):Mp(e.name,e.input),r=e_(e),o=ZA(e.startTime,e.endTime),s=e.status===$.Executing&&e.progress!==void 0?`${e.progress}%`:e.status===$.Executing&&e.preview?e.preview:void 0,a=[r,s,o].filter(Boolean);return a.length>0?`${n} (${a.join(" - ")})`:n}i(Fu,"formatToolCallInlineText");function Wu(e){let t=new Map;for(let n of e){let r=typeof n.output=="string"?gS(n.name,n.output):[],o=r.length>0?kp(n.name,r):Mp(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(Wu,"collapseToolCalls");function Ka(e){let t=Fu(e.tool);return e.count>1?`${t} x${e.count}`:t}i(Ka,"formatCollapsedToolInlineText");function Uu(e,t,n){let r=Mp(e,t);return r!==Bu(e)?`[Tools] ${r}`:n>0?`[Tools] ${Bu(e)} (${n} chars)`:`[Tools] ${Bu(e)}`}i(Uu,"formatLiveToolLabel");function Ap(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(Ap,"countNewlines");function ju(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=Ap(e),l=Ap(s),u=Ap(a),m=Math.max(0,c-l-u);return`${s}
|
|
264
|
+
\u2026 +${m} lines \u2026
|
|
265
|
+
${a}`}i(ju,"truncateUserMessageForDisplay");var hS=400,n_="... (thinking truncated; press Ctrl+O to inspect full reasoning)",yS=2e5,r_="... (thinking show-all truncated at 200K chars; full content available via session artifacts)",xS=1e5;function o_(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(o_,"normalizeManagedLiveActivityLabel");function Gu(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(Gu,"formatTimestamp");function wS(e){switch(e){case $.Scheduled:return"\u25CB";case $.Validating:return"\u25D0";case $.AwaitingApproval:return"\u23F8";case $.Executing:return"\u25CF";case $.Success:return"\u2713";case $.Error:return"\u2717";case $.Cancelled:return"\u2298";default:return"[tool]"}}i(wS,"getToolStatusIcon");function TS(e){switch(e){case $.Scheduled:case $.Validating:return"dim";case $.AwaitingApproval:return"accent";case $.Executing:return"primary";case $.Success:return"success";case $.Error:return"error";case $.Cancelled:return"dim";default:return"text"}}i(TS,"getToolStatusColor");function i_(e,t){let n=Math.max(1,t),r=e.split(`
|
|
266
|
+
`),o=zt(r.length>0?r:[""],n,0,0);return o.visualLines.length>0?o.visualLines:[""]}i(i_,"wrapText");function _p(e,t,n,r=!1){if(n||r)return e.length>yS?`${e.slice(0,yS)}
|
|
267
|
+
|
|
268
|
+
${r_}`:e;let o=e.split(/\r?\n/),s=o.length>t,a=s?o.slice(0,t).join(`
|
|
269
|
+
`):e,c=a.length>hS,l=c?a.slice(0,hS):a;return!s&&!c?e:`${l}
|
|
270
|
+
|
|
271
|
+
${n_}`}i(_p,"buildThinkingPreview");function s_(e){for(let t=e.length-1;t>=0;t--)if(e[t]?.type==="user")return t;return 0}i(s_,"findActiveRoundStartIndex");function Pe(e,t,n,r,o){let s=i_(n,r);if(s.length===0){e.push({key:`${t}-0`,text:"",...o});return}s.forEach((a,c)=>{e.push({key:`${t}-${c}`,text:a,...o})})}i(Pe,"pushWrappedRows");function Va(e,t){e.push({key:t,text:" "})}i(Va,"pushBlankRow");function pt(e,t=0){return Math.max(20,e-t)}i(pt,"getBodyWidth");function a_(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(a_,"buildToolInputPreview");function c_(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(c_,"formatHarnessProfileShort");function l_(e,t,n,r,o,s=!1,a=!1){if(Pe(e,`${t}-tool-${n.id}-main`,`${wS(n.status)} ${Ka({tool:n,count:r})}`,pt(o,2),{color:TS(n.status),indent:2,bold:n.status===$.Executing}),Ep(n).forEach((l,u)=>{let m=Rp(l);Pe(e,`${t}-tool-${n.id}-explanation-${u}`,l,pt(o,4),{color:m,indent:4})}),s){let l=a_(n),u=a?l:l.slice(0,6);u.forEach((m,p)=>{Pe(e,`${t}-tool-${n.id}-input-${p}`,m,pt(o,4),{color:"dim",indent:4})}),!a&&l.length>u.length&&Pe(e,`${t}-tool-${n.id}-input-more`,`... (${l.length-u.length} more lines)`,pt(o,4),{color:"dim",indent:4})}if(s&&typeof n.output=="string"&&n.output.trim()){let l=n.output.trim().split(/\r?\n/),u=a?l:l.slice(0,8);u.forEach((p,g)=>{Pe(e,`${t}-tool-${n.id}-output-${g}`,p,pt(o,4),{color:"dim",indent:4})});let m=l.length;!a&&m>u.length&&Pe(e,`${t}-tool-${n.id}-output-more`,`... (${m-u.length} more lines)`,pt(o,4),{color:"dim",indent:4})}}i(l_,"buildToolRows");function u_(e,t,n,r){let o=n.status===$.Executing,s=o?"":`${wS(n.status)} `;Pe(e,`${t}-tool-${n.id}-main`,`${s}${Ka({tool:n,count:1})}`,pt(r,2),{color:TS(n.status),indent:2,bold:o,spinner:o}),Ep(n).forEach((c,l)=>{let u=Rp(c);Pe(e,`${t}-tool-${n.id}-explanation-${l}`,c,pt(r,4),{color:u,indent:4})})}i(u_,"buildLiveToolRows");function SS(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:g="",iterationHistory:x=[],currentIteration:y=1,isCompacting:C=!1,managedAgentMode:w,managedPhase:b,managedHarnessProfile:P,managedWorkerTitle:L,managedRound:U,managedMaxRounds:D,lastLiveActivityLabel:O,currentTodoActiveForm:I,showFullThinking:ce=!1,showDetailedTools:ye=!1,showAllContent:F=!1,showLiveProgressRows:z=!0}=e,v=[];for(let M of t)switch(M.type){case"user":Pe(v,`${M.id}-header`,`You [${Gu(M.timestamp)}]`,n,{color:"primary",bold:!0,itemId:M.id}),Pe(v,`${M.id}-body`,ju(M.text),pt(n,2),{color:"text",indent:2,itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;case"assistant":{let re=F?M.text:M.compactText??M.text;Pe(v,`${M.id}-header`,`Assistant [${Gu(M.timestamp)}]`,n,{color:"secondary",bold:!0,spinner:M.isStreaming,itemId:M.id}),Pe(v,`${M.id}-body`,re,pt(n,2),{color:"text",indent:2,itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break}case"system":Pe(v,`${M.id}-header`,`System [${Gu(M.timestamp)}]`,n,{color:"dim",bold:!0,itemId:M.id}),Pe(v,`${M.id}-body`,M.text,pt(n,2),{color:"dim",indent:2,itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;case"tool_group":Pe(v,`${M.id}-header`,`Tools [${Gu(M.timestamp)}]`,n,{color:"accent",bold:!0,itemId:M.id}),Wu(M.tools).forEach(re=>l_(v,M.id,re.tool,re.count,n,ye,F)),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;case"thinking":{let re=F?_p(M.text,o,ce,F):M.compactText??_p(M.text,o,ce,F);Pe(v,`${M.id}-header`,"Thinking",n,{color:"thinking",italic:!0,itemId:M.id}),Pe(v,`${M.id}-body`,re,pt(n,2),{color:"thinking",indent:2,italic:!0,itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break}case"error":Pe(v,`${M.id}-header`,"\u2717 Error",n,{color:"error",bold:!0,itemId:M.id}),Pe(v,`${M.id}-body`,M.text,pt(n,2),{color:"error",indent:2,itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;case"info":Pe(v,`${M.id}-body`,`${M.icon??"\u2139"} ${F?M.text:M.compactText??M.text}`,n,{color:"info",itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;case"event":Pe(v,`${M.id}-body`,`${M.icon??">"} ${F?M.text:M.compactText??M.text}`,n,{color:"text",itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;case"hint":Pe(v,`${M.id}-header`,"\u{1F4A1} Hint",n,{color:"hint",bold:!0,itemId:M.id}),Pe(v,`${M.id}-body`,M.text,pt(n,2),{color:"dim",indent:2,itemId:M.id}),v.push({key:`${M.id}-blank`,text:" ",itemId:M.id});break;default:break}if(z&&x.length>0&&(x.forEach(M=>{if(Pe(v,`iteration-${M.iteration}-header`,`\u2500\u2500 Round ${M.iteration} \u2500\u2500`,n,{color:"dim",bold:!0}),M.thinkingSummary){let re=M.thinkingLength>60?` (${M.thinkingLength} chars total)`:"";Pe(v,`iteration-${M.iteration}-thinking`,`\u{1F4AD} ${M.thinkingSummary}${re}`,pt(n,1),{color:"thinking",indent:1,italic:!0})}if(M.response){let re=M.response.slice(0,200);Pe(v,`iteration-${M.iteration}-response`,re,pt(n,1),{color:"text",indent:1}),M.response.length>200&&Pe(v,`iteration-${M.iteration}-response-more`,`... (${M.response.length} chars total)`,pt(n,1),{color:"dim",indent:1})}M.toolsUsed.length>0&&Pe(v,`iteration-${M.iteration}-tools`,`* tools: ${M.toolsUsed.join(", ")}`,pt(n,1),{color:"accent",indent:1}),Va(v,`iteration-${M.iteration}-blank`)}),Pe(v,"iteration-current-header",`\u2500\u2500 Round ${y} (current) \u2500\u2500`,n,{color:"accent",bold:!0}),Va(v,"iteration-current-blank")),r&&c){let M=_p(c,o,ce,F);Pe(v,"thinking-stream-header","Thinking",n,{color:"thinking",italic:!0}),Pe(v,"thinking-stream-body",M,pt(n,2),{color:"thinking",indent:2,italic:!0}),Va(v,"thinking-stream-blank")}if(r){let M="Thinking",re="",xe=c_(P),Re=o_(O,L),Te=L??"Scout",le=b==="routing"?`[${w?w.toUpperCase():"AMA"} Routing] `:b==="preflight"?`[${w?w.toUpperCase():"AMA"} ${Te}] `:P?`[${w?w.toUpperCase():"AMA"} ${xe??P}${L?` - ${L}`:""}] `:"",$e=m.filter(Se=>Se.status===$.Executing).length,J=m.filter(Se=>Se.status===$.Success).length,Y=m.filter(Se=>Se.status===$.Error).length,q=m.filter(Se=>Se.status===$.Cancelled).length,Ge=m.length>0&&($e>0||!l);if(C)M="Compacting";else if(Ge){let Se=[];if($e>0&&Se.push(`${$e} running`),J>0&&Se.push(`${J} done`),Y>0&&Se.push(`${Y} error`),q>0&&Se.push(`${q} cancelled`),Se.length===0&&Se.push(`${m.length} tools`),Pe(v,"loading-tools-header",`${le}[Tools] ${Se.join(", ")}`,n,{color:"primary",bold:!0,spinner:$e>0}),m.forEach(_e=>{u_(v,"loading-tools",_e,n)}),Va(v,"loading-tools-blank"),$e>0&&!l&&!z)return v}else if(I)re=le||"[Plan] ",M=I;else if(u)re=le||"[Tool] ",M=Re?.startsWith("[Tools]")?Re:Uu(u,g,p);else if(s){re=le||"[Thinking] ";let Se=U&&D&&U>1?` round ${U}/${D}`:"";M=a>0?`${a} chars${Se}`:Re?`${Re}${Se}`:`processing${Se}`}else Re&&(M=Re);z&&Pe(v,"loading-indicator",`${re}${M}...`,n,{color:"accent",spinner:!0})}if(l){let M=l.lastIndexOf(`
|
|
272
|
+
`),re=M>=0?l.slice(0,M+1):"";re.length>0&&(Pe(v,"streaming-header","Assistant",n,{color:"secondary",bold:!0}),Pe(v,"streaming-body",re,pt(n,2),{color:"text",indent:2}),Va(v,"streaming-blank"))}return v}i(SS,"buildTranscriptRows");function d_(e,t,n=1e3,r=!1,o=!1){return us(e,t,n,r,void 0,o)}i(d_,"buildStaticTranscriptSections");function us(e,t,n=1e3,r=!1,o,s=!1){return e.map(a=>({key:a.id,rows:SS({items:[a],viewportWidth:t,maxLines:n,showAllContent:s,showDetailedTools:r||!!o?.has(a.id)})}))}i(us,"buildHistoryItemTranscriptSections");function f_(e,t){return{key:e,rows:SS(t)}}i(f_,"buildDynamicTranscriptSection");function Ku(e){let{items:t,viewportWidth:n,maxLines:r=1e3,showDetailedTools:o=!1,showAllContent:s=!1,windowed:a=!1}=e;if(a)return{staticSections:[],activeItems:t};let c=s_(t),l=t.slice(0,c),u=t.slice(c);return{staticSections:d_(l,n,r,o,s),activeItems:u}}i(Ku,"buildTranscriptStaticPortion");function Vu(e){let{activeItems:t,viewportWidth:n,maxLines:r=1e3,showDetailedTools:o=!1,showAllContent:s=!1,expandedItemKeys:a,...c}=e,l=us(t,n,r,o,a,s),u=f_("active-pending",{...c,items:[],managedLiveEvents:[],lastLiveActivityLabel:c.lastLiveActivityLabel,viewportWidth:n,maxLines:r,showAllContent:s,showDetailedTools:o,expandedItemKeys:a}),m=u.rows.length>0?[u]:[];return{sections:l,previewSections:m}}i(Vu,"buildTranscriptDynamicPortion");function zu(e,t){return{staticSections:e.staticSections,sections:t.sections,rows:Do(t.sections),previewSections:t.previewSections,previewRows:Do(t.previewSections)}}i(zu,"composeTranscriptRenderModel");function Xu(e){let t=Ku({items:e.items,viewportWidth:e.viewportWidth,maxLines:e.maxLines,showDetailedTools:e.showDetailedTools,showAllContent:e.showAllContent,windowed:e.windowed}),{items:n,...r}=e,o=Vu({...r,activeItems:t.activeItems});return zu(t,o)}i(Xu,"buildTranscriptRenderModel");function Do(e){return e.flatMap(t=>t.rows)}i(Do,"flattenTranscriptSections");function Pp(e){let t=[...e.staticSections,...e.sections];return{staticSections:[],sections:t,rows:Do(t),previewSections:[...e.previewSections],previewRows:Do(e.previewSections)}}i(Pp,"materializeTranscriptRenderModel");function CS(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?Lp(e,a,c):e}i(CS,"resolveVisibleTranscriptRows");var m_=200,p_=50,$p=30;function bS(e,t,n=m_,r=p_){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(bS,"computeTranscriptCapStart");function vS(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(vS,"sliceHistoryToRecentRounds");function Lp(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(Lp,"getVisibleTranscriptRows");function IS(e,t,n){if(!t||!n||n<=0)return 0;let r=Do(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(IS,"resolveScrollOffsetForTranscriptItem");function kS(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(kS,"resolveTranscriptColor");var RS=new _i(500);function g_(e){let t=Vt(e),n=[],r=[],o=0,s=0;for(let a of t)n.push(o),r.push(s),o+=a.length,s+=Jf(a);return{graphemes:t,codeUnitOffsets:n,visualOffsets:r,length:t.length,displayWidth:s}}i(g_,"buildTranscriptTextMetrics");function za(e){let t=RS.get(e);if(t)return t;let n=g_(e);return RS.set(e,n),n}i(za,"getTranscriptTextMetrics");function Vr(e){return za(e).length}i(Vr,"getTranscriptTextLength");function ES(e){return za(e).displayWidth}i(ES,"getTranscriptTextDisplayWidth");function Yu(e,t){let n=za(e),r=Math.max(0,Math.min(n.length-1,t));return n.graphemes[r]??""}i(Yu,"charAtTranscriptText");function ds(e,t,n){let r=za(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(ds,"sliceTranscriptText");function MS(e,t){let n=za(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(MS,"resolveTranscriptTextIndexAtVisualColumn");function qu(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}i(qu,"formatTimestamp");function h_(e,t){let n=e.split(`
|
|
273
|
+
`),r=n.slice(0,t),o=n.length>t;return{lines:r,hasMore:o}}i(h_,"truncateLines");function y_(e){switch(e){case $.Scheduled:return"\u25CB";case $.Validating:return"\u25D0";case $.AwaitingApproval:return"\u23F8";case $.Executing:return"\u25CF";case $.Success:return"\u2713";case $.Error:return"\u2717";case $.Cancelled:return"\u2298";default:return"?"}}i(y_,"getToolStatusIcon");function x_(e,t){switch(e){case $.Scheduled:case $.Validating:return t.colors.dim;case $.AwaitingApproval:return t.colors.accent;case $.Executing:return t.colors.primary;case $.Success:return t.colors.success;case $.Error:return t.colors.error;case $.Cancelled:return t.colors.dim;default:return t.colors.text}}i(x_,"getToolStatusColor");var w_=sn(({item:e,theme:t})=>{let n=Jn(()=>ju(e.text),[e.text]);return Fe(k,{flexDirection:"column",marginBottom:1,children:[Fe(k,{children:[ue(S,{color:t.colors.primary,bold:!0,children:"You"}),Fe(S,{dimColor:!0,children:[" [",qu(e.timestamp),"]"]})]}),ue(k,{marginLeft:2,children:ue(S,{color:t.colors.text,children:n})})]})}),T_=sn(({item:e,theme:t,maxLines:n})=>{let r=e.compactText??e.text,{lines:o,hasMore:s}=h_(r,n);return Fe(k,{flexDirection:"column",marginBottom:1,children:[Fe(k,{children:[ue(S,{color:t.colors.secondary,bold:!0,children:"Assistant"}),e.isStreaming&&Fe(Op,{children:[ue(S,{children:" "}),ue(Cn,{color:t.colors.accent})]}),Fe(S,{dimColor:!0,children:[" [",qu(e.timestamp),"]"]})]}),Fe(k,{marginLeft:2,flexDirection:"column",children:[o.map((a,c)=>ue(S,{color:t.colors.text,children:a||" "},c)),s&&Fe(S,{dimColor:!0,children:["... (",r.split(`
|
|
274
|
+
`).length-n," more lines)"]})]})]})}),S_=sn(({item:e,theme:t})=>Fe(k,{flexDirection:"column",marginBottom:1,children:[Fe(k,{children:[ue(S,{color:t.colors.dim,bold:!0,children:"System"}),Fe(S,{dimColor:!0,children:[" [",qu(e.timestamp),"]"]})]}),ue(k,{marginLeft:2,children:ue(S,{dimColor:!0,children:e.text})})]})),C_=sn(({tool:e,count:t=1,theme:n})=>{let r=y_(e.status),o=x_(e.status,n);return Fe(k,{flexDirection:"column",marginLeft:2,children:[Fe(k,{children:[Fe(S,{color:o,children:[r," "]}),ue(S,{color:n.colors.text,bold:!0,children:Ka({tool:e,count:t})})]}),e.error&&ue(k,{marginLeft:2,children:ue(S,{color:n.colors.error,children:e.error})})]})}),b_=sn(({item:e,theme:t})=>{let n=Wu(e.tools);return Fe(k,{flexDirection:"column",marginBottom:1,children:[Fe(k,{children:[ue(S,{color:t.colors.accent,bold:!0,children:"Tools"}),Fe(S,{dimColor:!0,children:[" [",qu(e.timestamp),"]"]})]}),n.map(r=>ue(C_,{tool:r.tool,count:r.count,theme:t},`${r.tool.id}-${r.count}`))]})}),v_=sn(({item:e,theme:t})=>Fe(k,{flexDirection:"column",marginBottom:1,children:[ue(k,{children:ue(S,{color:t.colors.thinking,italic:!0,children:"Thinking"})}),ue(k,{marginLeft:2,children:ue(S,{color:t.colors.thinking,italic:!0,children:e.compactText??e.text})})]})),I_=sn(({item:e,theme:t})=>Fe(k,{flexDirection:"column",marginBottom:1,children:[ue(k,{children:Fe(S,{color:t.colors.error,bold:!0,children:["\u2717"," Error"]})}),ue(k,{marginLeft:2,children:ue(S,{color:t.colors.error,children:e.text})})]})),k_=sn(({item:e,theme:t})=>ue(k,{flexDirection:"column",marginBottom:1,children:Fe(S,{color:t.colors.text,children:[ue(S,{color:t.colors.accent,bold:!0,children:e.icon??">"}),ue(S,{children:" "}),e.compactText??e.text]})})),R_=sn(({item:e,theme:t})=>ue(k,{flexDirection:"column",marginBottom:e.tightSpacing?0:1,children:Fe(S,{color:t.colors.info,children:[Fe(S,{bold:!0,children:[e.icon??"\u2139"," "]}),e.compactText??e.text]})})),E_=sn(({item:e,theme:t})=>Fe(k,{flexDirection:"column",marginBottom:1,children:[ue(k,{children:Fe(S,{color:t.colors.hint,bold:!0,children:["\u{1F4A1}"," Hint"]})}),ue(k,{marginLeft:2,children:ue(S,{dimColor:!0,children:e.text})})]})),M_=sn(({item:e,theme:t,maxLines:n=1e3})=>{let r=Jn(()=>te("dark"),[]),o=t??r;switch(e.type){case"user":return ue(w_,{item:e,theme:o});case"assistant":return ue(T_,{item:e,theme:o,maxLines:n});case"system":return ue(S_,{item:e,theme:o});case"tool_group":return ue(b_,{item:e,theme:o});case"thinking":return ue(v_,{item:e,theme:o});case"error":return ue(I_,{item:e,theme:o});case"event":return ue(k_,{item:e,theme:o});case"info":return ue(R_,{item:e,theme:o});case"hint":return ue(E_,{item:e,theme:o});default:return ue(k,{children:ue(S,{dimColor:!0,children:"Unknown item type"})})}});function A_(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(A_,"areTranscriptRowPropsEqual");var _S=sn(({row:e,theme:t,animateSpinners:n=!0,selectedItem:r=!1,selectionRange:o})=>{let s=kS(t,e.color),a=e.text===" "?"":e.text,c=a||" ",l=o&&a?ds(a,o.start,o.end):"",u=o&&a?ds(a,0,o.start):a,m=o&&a?ds(a,o.end):"",p=r&&!o,g=!p&&e.color==="dim",x={bold:e.bold||p,italic:e.italic,dimColor:g};return Fe(k,{marginLeft:e.indent??0,children:[e.spinner&&n&&Fe(Op,{children:[ue(Cn,{color:t.colors.accent,theme:t}),ue(S,{children:" "})]}),ue(S,{color:p?t.colors.accent:s,...x,children:o&&a?Fe(Op,{children:[u?ue(S,{color:p?t.colors.accent:s,...x,children:u}):null,ue(S,{backgroundColor:t.colors.accent,color:t.colors.background,bold:!0,italic:e.italic,children:l}),m?ue(S,{color:p?t.colors.accent:s,...x,children:m}):null]}):c})]})},A_),__=sn(({section:e,theme:t,animateSpinners:n=!0})=>ue(k,{flexDirection:"column",children:e.rows.map(r=>ue(_S,{row:r,theme:t,animateSpinners:n},r.key))})),No=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:g=1,isCompacting:x=!1,agentMode:y,managedPhase:C,managedHarnessProfile:w,managedWorkerTitle:b,managedRound:P,managedMaxRounds:L,managedGlobalWorkBudget:U,managedBudgetUsage:D,managedBudgetApprovalRequired:O,lastLiveActivityLabel:I,viewportRows:ce,viewportWidth:ye,scrollOffset:F=0,animateSpinners:z=!0,windowed:v=!1,showFullThinking:M=!1,showDetailedTools:re=!1,showAllContent:xe=!1,showLiveProgressRows:Re=!0,selectedItemId:Te,expandedItemKeys:le,onMetricsChange:$e,onVisibleRowsChange:J,rendererWindow:Y,selectedTextRanges:q,transcriptModel:Ge,visibleRowsOverride:Se})=>{let _e=Jn(()=>te("dark"),[]),{stdout:Ee}=zn(),dt=ye??Ee?.columns??80,we=Jn(()=>Ge??Xu({items:e,viewportWidth:dt,isLoading:t,maxLines:n,isThinking:r,thinkingCharCount:o,thinkingContent:s,streamingResponse:a,currentTool:c,activeToolCalls:l,toolInputCharCount:u,toolInputContent:m,iterationHistory:p,currentIteration:g,isCompacting:x,managedAgentMode:y,managedPhase:C,managedHarnessProfile:w,managedWorkerTitle:b,managedRound:P,managedMaxRounds:L,managedGlobalWorkBudget:U,managedBudgetUsage:D,managedBudgetApprovalRequired:O,lastLiveActivityLabel:I,windowed:v,showFullThinking:M,showDetailedTools:re,showAllContent:xe,showLiveProgressRows:Re,expandedItemKeys:le}),[Ge,e,dt,t,n,r,o,s,a,c,l,u,m,p,g,x,y,C,w,b,P,L,U,D,O,I,v,M,re,xe,Re,le]),Ze=we.staticSections,et=we.rows,ie=we.previewRows,A=Jn(()=>[...et,...ie],[ie,et]),W=!(A.length>0)&&e.length===0&&!t,ee=Jn(()=>v||Y||Se?A:et,[A,Y,et,Se,v]),Le=Jn(()=>Se||CS(ee,{viewportTop:Y?Math.max(0,Y.viewportTop):void 0,viewportHeight:Y?Math.max(0,Y.viewportHeight):void 0,start:void 0,end:void 0,viewportRows:ce,scrollOffset:F,windowed:v}),[Y,F,ce,Se,v,ee]),tt=Jn(()=>Se||v||Y?Le:A,[A,Y,Le,Se,v]),Ce=Jn(()=>A,[A]),Ne=Y?Math.max(0,Y.viewportHeight):ce;return AS(()=>{$e?.({scrollHeight:A.length,viewportHeight:Y?Math.max(0,Y.viewportHeight):Ne??A.length})},[A.length,Ne,$e,Y]),AS(()=>{J?.({rows:tt,allRows:Ce})},[Ce,J,tt]),W?ue(k,{paddingY:1,children:ue(S,{dimColor:!0,children:"No messages yet. Start typing to begin."})}):Fe(k,{flexDirection:"column",children:[!v&&Ze.length>0&&ue(Vi,{items:Ze,children:i(ve=>ue(__,{section:ve,theme:_e,animateSpinners:z},ve.key),"children")}),tt.map(ve=>ue(_S,{row:ve,theme:_e,animateSpinners:z,selectedItem:Te?ve.key.startsWith(`${Te}-`):!1,selectionRange:q?.get(ve.key)},ve.key))]})},"MessageList");var P_=i(({role:e,content:t})=>{let n=Jn(()=>te("dark"),[]),r={user:n.colors.primary,assistant:n.colors.secondary,system:n.colors.dim}[e];return Fe(k,{flexDirection:"column",marginBottom:1,children:[ue(S,{color:r,bold:!0,children:e==="user"?">":e==="assistant"?"<":"#"}),ue(S,{children:t})]})},"SimpleMessageDisplay");import{jsx as Np,jsxs as ed}from"react/jsx-runtime";import q_,{useMemo as Bp}from"react";var $_="\u{1F504}",L_="\u2588",O_="\u2592",D_="\u2192",N_=" \xB7 ";function B_(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(B_,"formatReasoningModeShort");function H_(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(H_,"formatReasoningCapabilityShort");function F_(e){switch(e){case"off":return"dim";case"quick":return"green";case"balanced":return"yellow";case"deep":return"magenta";default:return"cyan"}}i(F_,"getReasoningColor");function PS(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(PS,"formatTokenCount");function W_(e){let t=Math.min(10,Math.max(0,Math.round(e/10))),n=10-t;return`${L_.repeat(t)}${O_.repeat(n)}`}i(W_,"createMiniProgressBar");function U_(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(U_,"getContextColor");function j_(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(j_,"getPermissionModeColor");function G_(e,t){let n=qi(e);return!(e==="auto"||e==="auto-in-project")||!t?n:`${n}${t==="llm"?"[LLM]":"[RULES]"}`}i(G_,"buildPermissionModeText");function K_(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(K_,"formatToolAction");function V_(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(V_,"formatHarnessProfileShort");function Qu(e,t){return t&&t>0?`${e} (${t} chars)`:e}i(Qu,"formatThinkingStatus");function Ju(e,t,n){let r=K_(e);return n?`${r} (${n}...)`:t&&t>0?`${r} (${t} chars)`:r}i(Ju,"formatToolStatus");function Dp({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 g=e&&e>0?`${e} tool${e===1?"":"s"} running`:void 0;if(o)return"Compacting";if(c==="routing")return g?`Routing - ${g}`:t?`Routing - ${Ju(t,s,a)}`:n?Qu("Routing",r):"Routing";if(c==="preflight"){let x=u??"Scout";return g?`${x} - ${g}`:t?`${x} - ${Ju(t,s,a)}`:n?Qu(x,r):x}if(l){let y=`${V_(l)}${u?` - ${u}`:""}`;if(m===!0&&!g&&!t&&!n){let C=p??0,w=C>1?`waiting for ${C} children`:C===1?"waiting for 1 child":"idle - resuming";return`${y} - ${w}`}return g?`${y} - ${g}`:t?`${y} - ${Ju(t,s,a)}`:n?Qu(y,r):y}if(g)return g;if(t)return Ju(t,s,a);if(n)return Qu("Thinking",r)}i(Dp,"buildBusyStatusText");function z_({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(z_,"resolveIterationSegments");function X_(e){if(e.length!==0)return`${$_} ${e.map(t=>`${t.label} ${t.current}/${t.max}`).join(N_)}`}i(X_,"formatLabeledIterationStatus");function Y_(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:g=u?"auto":"off",reasoningCapability:x,isCompacting:y,toolInputCharCount:C,toolInputContent:w,currentIteration:b,maxIter:P,contextUsage:L,showBusyStatus:U=!0,managedPhase:D,managedHarnessProfile:O,managedWorkerTitle:I,managedRound:ce,managedMaxRounds:ye,managedGlobalWorkBudget:F,managedBudgetUsage:z,managedIdleWaiting:v,managedIdleWaitingPendingCount:M}=e,re=[{id:"agent-mode",text:`KodaX - ${r.toUpperCase()}`,color:"primary",bold:!0},{id:"permission-mode",text:G_(n,e.autoModeEngine),color:j_(n)}],xe=B_(g),Re=H_(x);re.push({id:"reasoning-mode",text:x?`${xe}/${Re}`:xe,color:F_(g)});let Te=z_({agentMode:r,managedPhase:D,managedHarnessProfile:O,managedRound:ce,managedMaxRounds:ye,managedGlobalWorkBudget:F,managedBudgetUsage:z,currentIteration:b,maxIter:P}),le=X_(Te);if(le){let J=Math.max(...Te.map(q=>q.current/q.max)),Y="green";J>=.8?Y="red":J>=.5&&(Y="yellow"),re.push({id:"iteration-status",text:le,color:Y})}re.push({id:"session-id",text:t,color:"dim"});let $e=U?Dp({activeToolCount:l,currentTool:c,isThinkingActive:m,thinkingCharCount:p,isCompacting:y,toolInputCharCount:C,toolInputContent:w,managedPhase:D,managedHarnessProfile:O,managedWorkerTitle:I,managedIdleWaiting:v,managedIdleWaitingPendingCount:M}):void 0;if($e&&re.push({id:"busy-status",text:$e,color:"dim"}),re.push({id:"provider-model",text:`${o}/${s}`,color:"secondary"}),L&&L.contextWindow!==0){let J=Math.round(L.currentTokens/L.contextWindow*100),Y=PS(L.currentTokens),q=PS(L.contextWindow),Ge=W_(J);re.push({id:"context-usage",text:`${Y}/${q} ${Ge} ${J}%`,color:U_(L.currentTokens,L.contextWindow,L.triggerPercent)})}return a&&re.push({id:"token-usage",text:`${a.input}${D_}${a.output} (${a.total})`,color:"dim"}),re}i(Y_,"buildStatusBarSegments");function Zu(e){let t=Y_(e);return{text:t.map(n=>n.text).join(" | "),segments:t}}i(Zu,"buildStatusBarViewModel");function Q_(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(Q_,"resolveViewModelSegmentColor");var fs=i(({viewModel:e,...t})=>{let n=Bp(()=>te("dark"),[]),r=Bp(()=>e??Zu(t),[t,e]);return Np(k,{paddingX:1,children:r.segments.map((o,s)=>ed(q_.Fragment,{children:[Np(S,{color:Q_(o,n),bold:o.bold,children:o.text}),s<r.segments.length-1?Np(S,{dimColor:!0,children:" | "}):null]},o.id))})},"StatusBar"),J_=i(({permissionMode:e,provider:t,model:n})=>{let r=Bp(()=>te("dark"),[]);return ed(k,{children:[ed(S,{color:r.colors.primary,bold:!0,children:["[",e,"]"]}),ed(S,{dimColor:!0,children:[" ",t,"/",n]})]})},"SimpleStatusBar");import{jsx as zr,jsxs as rd}from"react/jsx-runtime";import{useState as Hp,useCallback as td,useMemo as $S}from"react";function nd(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(nd,"generateId");function Z_(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(Z_,"messageToHistoryItem");var eP=i(({model:e,provider:t,onSubmit:n,permissionMode:r="accept-edits",agentMode:o="ama"})=>{let{stdout:s}=zn(),a=$S(()=>te("dark"),[]),[c,l]=Hp({messages:[],isLoading:!1,sessionId:nd()}),[u,m]=Hp(null),[p,g]=Hp(),x=td(async b=>{if(!b.trim())return;let P={id:nd(),role:"user",content:b,timestamp:Date.now()};l(L=>({...L,messages:[...L.messages,P],isLoading:!0}));try{await n(b)}catch(L){let U={id:nd(),role:"system",content:`Error: ${L instanceof Error?L.message:"Unknown error"}`,timestamp:Date.now()};l(D=>({...D,messages:[...D.messages,U],isLoading:!1}))}finally{l(L=>({...L,isLoading:!1}))}},[n]),y=td((b,P)=>{let L={id:nd(),role:b,content:P,timestamp:Date.now()};l(U=>({...U,messages:[...U.messages,L]}))},[]),C=td((b,P)=>{m({input:b,output:P,total:b+P})},[]),w=td(b=>{g(b)},[]);return rd(k,{flexDirection:"column",children:[zr(k,{flexGrow:1,flexDirection:"column",overflow:"hidden",children:zr(No,{items:c.messages.map(Z_),isLoading:c.isLoading})}),zr(k,{flexShrink:0,children:zr(as,{onSubmit:i(b=>x(b.fullText),"onSubmit"),prompt:">",focus:!c.isLoading})}),zr(k,{flexShrink:0,children:zr(fs,{sessionId:c.sessionId,permissionMode:r,agentMode:o,provider:t,model:e,tokenUsage:u??void 0,currentTool:p})})]})},"App"),tP=i(({model:e,provider:t,onInput:n})=>{let r=$S(()=>te("dark"),[]);return rd(k,{flexDirection:"column",children:[rd(k,{marginBottom:1,children:[zr(S,{color:r.colors.primary,bold:!0,children:"KodaX CLI"}),rd(S,{dimColor:!0,children:[" ","- ",t,"/",e]})]}),zr(as,{onSubmit:i(o=>n(o.fullText),"onSubmit"),placeholder:"Type a message...",prompt:">"})]})},"SimpleApp");import{jsx as nP}from"react/jsx-runtime";var Fp=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:g=!0,scrollRef:x,onScrollTopChange:y,onStickyChange:C,onWindowChange:w})=>nP(Pm,{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:g,scrollRef:x,onScrollTopChange:y,onStickyChange:C,onWindowChange:w}),"FullscreenTranscriptLayout");import{jsx as LS}from"react/jsx-runtime";function ms({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(ms,"buildMessageActionsText");var Wp=i(({copyMessage:e=!1,copyToolInput:t=!1,copyOnSelect:n=!1,toggleDetail:r=!1,selectionNavigation:o=!1,matchNavigation:s=!1,dismissAction:a})=>{let c=te("dark"),l=ms({copyMessage:e,copyToolInput:t,copyOnSelect:n,toggleDetail:r,selectionNavigation:o,matchNavigation:s,dismissAction:a});return l?LS(k,{paddingX:1,children:LS(S,{color:c.colors.dim,children:l})}):null},"MessageActions");import{jsx as OS}from"react/jsx-runtime";function Up({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(Up,"buildMessageSelectorText");var rP=i(({itemSummary:e,itemKind:t,position:n,detailState:r="compact"})=>{let o=te("dark"),s=Up({itemSummary:e,itemKind:t,position:n,detailState:r});return s?OS(k,{paddingX:1,children:OS(S,{color:o.colors.dim,children:s})}):null},"MessageSelector");import{jsx as ps,jsxs as oP}from"react/jsx-runtime";import{useMemo as DS}from"react";function od(e,t){return Math.max(1,zt(e.length>0?e.split(`
|
|
275
|
+
`):[""],Math.max(1,t),0,0).visualLines.length)}i(od,"countWrappedRows");var jp=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,g=m?.toolInput??!1,x=m?.copyOnSelect??!1,y=t?.toggleDetail??!1,C=t?.navigationCapabilities?.selection??!1,w=n?.statusText,b=n?.matches?.length??0,P=n?.surface,L=o.viewportWidth??80,U=Math.max(1,L-2),D=n?.query?.trim()?"close-search":a||p||g||y||C?"clear":void 0,O=Up({itemSummary:a,itemKind:l,position:c,detailState:u}),I=DS(()=>ms({copyMessage:p,copyToolInput:g,copyOnSelect:x,toggleDetail:y,selectionNavigation:C,matchNavigation:!!w&&b>0,dismissAction:D}),[p,g,C,y,D,b,w,x]),ce=DS(()=>{if(!s)return 0;let F=0;return e?.hintText&&(F+=od(e.hintText,U)),O&&(F+=od(O,U)),I&&(F+=od(I,U)),w&&(F+=od(w,U)),P&&(F+=1),F},[I,e?.hintText,U,s,w,P,O]),ye=typeof o.viewportRows=="number"?Math.max(1,o.viewportRows-ce):o.viewportRows;return oP(k,{flexDirection:"column",flexGrow:o.windowed?0:1,children:[s&&e?.hintText?ps(k,{paddingX:1,children:ps(S,{dimColor:!0,children:e.hintText})}):null,null,s&&(p||g||x||y||C||b>0)?ps(Wp,{copyMessage:p,copyToolInput:g,copyOnSelect:x,toggleDetail:y,selectionNavigation:C,matchNavigation:!!w&&b>0,dismissAction:D}):null,s&&w?ps(k,{paddingX:1,children:ps(S,{dimColor:!0,children:w})}):null,s?P:null,ps(No,{...o,viewportRows:ye})]})},"TranscriptViewport");import{jsx as NS}from"react/jsx-runtime";var Gp=i(e=>NS(k,{flexDirection:"column",children:NS(as,{...e})}),"PromptComposer");import{jsx as Bo,jsxs as id}from"react/jsx-runtime";import BS from"react";var HS=" \xB7 ",sd=i(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=te("dark");return t.length===0?null:Bo(k,{flexGrow:1,children:t.map((r,o)=>id(BS.Fragment,{children:[Bo(S,{color:r.accent?n.colors.accent:n.colors.dim,bold:r.accent,children:r.label}),o<t.length-1?Bo(S,{dimColor:!0,children:HS}):null]},r.id))})},"PromptFooterLeftSide"),ad=i(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=te("dark");return t.length===0?null:Bo(k,{justifyContent:"flex-end",children:t.map((r,o)=>id(BS.Fragment,{children:[Bo(S,{color:r.accent?n.colors.primary:n.colors.dim,bold:r.accent,children:r.label}),o<t.length-1?Bo(S,{dimColor:!0,children:HS}):null]},r.id))})},"PromptFooterRightSide"),cd=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:g,inlineDialogs:x})=>id(k,{flexDirection:"column",children:[e||t?id(k,{paddingX:1,children:[Bo(k,{flexGrow:1,children:e}),t]}):null,n,r,o,s,a,c,l,u,x,m,p,g]}),"PromptFooter");import{jsx as Kp,jsxs as FS}from"react/jsx-runtime";var Vp=i(({sections:e,title:t="Help"})=>{let n=te("dark"),r=e.filter(o=>o.items.length>0);return r.length===0?null:FS(k,{flexDirection:"column",borderStyle:"round",borderColor:n.colors.accent,paddingX:1,marginTop:1,children:[Kp(S,{color:n.colors.accent,bold:!0,children:t}),r.map(o=>FS(k,{flexDirection:"column",children:[Kp(S,{color:n.colors.primary,bold:!0,children:o.title}),Kp(S,{dimColor:!0,children:o.items.map(s=>s.label).join(" | ")})]},o.id))]})},"PromptHelpMenu");import{jsx as WS}from"react/jsx-runtime";import{createContext as US,useContext as jS,useReducer as iP,useCallback as Bt,useMemo as sP}from"react";var aP=150;function ld(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}i(ld,"generateId");function zp(e){return{...e,id:ld(),timestamp:Date.now()}}i(zp,"createHistoryItem");function Xp(e){return{...e,id:ld(),startTime:Date.now()}}i(Xp,"createToolCall");function cP(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":let n=[...e.history,t.payload];if(n.length<=aP)return{...e,history:n};let r=0,o=0;for(let a=n.length-1;a>=0;a--)if(n[a]?.type==="user"&&(r++,r>50)){o=a;break}let s=o>0?n.slice(o):n;return{...e,history:s};case"UPDATE_HISTORY_ITEM":return{...e,history:e.history.map(a=>a.id===t.payload.id?{...a,...t.payload.updates}:a)};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(a=>a.id===t.payload.id?{...a,...t.payload.updates}:a)};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{...Om,sessionId:e.sessionId};default:return e}}i(cP,"uiReducer");var GS=US(null),KS=US(null);function ud({children:e,initialState:t}){let[n,r]=iP(cP,{...Om,...t}),o=Bt(D=>{r({type:"SET_STREAMING_STATE",payload:D})},[]),s=Bt(D=>{r({type:"APPEND_TO_RESPONSE",payload:D})},[]),a=Bt(()=>{r({type:"CLEAR_RESPONSE"})},[]),c=Bt(D=>{let O=zp(D);r({type:"ADD_HISTORY_ITEM",payload:O})},[]),l=Bt((D,O)=>{r({type:"UPDATE_HISTORY_ITEM",payload:{id:D,updates:O}})},[]),u=Bt(()=>{r({type:"CLEAR_HISTORY"})},[]),m=Bt(D=>{let O=Xp(D);return r({type:"ADD_TOOL_CALL",payload:O}),O.id},[]),p=Bt((D,O)=>{r({type:"UPDATE_TOOL_CALL",payload:{id:D,updates:O}})},[]),g=Bt(()=>{r({type:"CLEAR_TOOL_CALLS"})},[]),x=Bt(D=>{r({type:"SET_SESSION_ID",payload:D})},[]),y=Bt(D=>{r({type:"SET_MODE",payload:D})},[]),C=Bt(D=>{r({type:"SET_PROVIDER",payload:D})},[]),w=Bt(D=>{r({type:"SET_MODEL",payload:D})},[]),b=Bt(D=>{r({type:"SET_TOKEN_USAGE",payload:D})},[]),P=Bt(D=>{r({type:"SET_ERROR",payload:D})},[]),L=Bt(D=>{r({type:"SET_LOADING",payload:D})},[]),U=sP(()=>({setStreamingState:o,appendToResponse:s,clearResponse:a,addHistoryItem:c,updateHistoryItem:l,clearHistory:u,addToolCall:m,updateToolCall:p,clearToolCalls:g,setSessionId:x,setMode:y,setProvider:C,setModel:w,setTokenUsage:b,setError:P,setLoading:L}),[o,s,a,c,l,u,m,p,g,x,y,C,w,b,P,L]);return WS(GS.Provider,{value:n,children:WS(KS.Provider,{value:U,children:e})})}i(ud,"UIStateProvider");function Xa(){let e=jS(GS);if(!e)throw new Error("useUIState must be used within a UIStateProvider");return e}i(Xa,"useUIState");function Ya(){let e=jS(KS);if(!e)throw new Error("useUIActions must be used within a UIStateProvider");return e}i(Ya,"useUIActions");function VS(){let e=Xa(),t=Ya();return{state:e,actions:t}}i(VS,"useUI");function Yp(){return te()}i(Yp,"useTheme");import{jsxs as Xr,jsx as dd,Fragment as lP}from"react/jsx-runtime";import{useMemo as uP}from"react";var dP=80,fP=7,mP={command:">",file:"\u{1F4C4}",history:"\u23F1",argument:"\u2022",snippet:"\u25C7",skill:"\u2605"};function pP(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(pP,"getVisibleRange");function gP({suggestion:e,isSelected:t,width:n}){let r=Yp(),o=e.icon||e.type&&mP[e.type]||"",s=o?Kn(o)+1:0,a=Kn(e.displayText||e.text),c=e.description?Kn(e.description):0,l=Math.min(a,n-s-2),u=n-s-l-3,m=Math.max(0,u),p=da(e.displayText||e.text,l),g=e.description?da(e.description,m):"";return Xr(k,{children:[o&&Xr(S,{color:t?r.colors.accent:r.colors.dim,children:[o," "]}),dd(S,{color:t?r.colors.primary:r.colors.text,bold:t,children:p}),g&&Xr(lP,{children:[dd(S,{children:" "}),dd(S,{color:r.colors.dim,children:da(e.description||"",m)})]}),t&&Xr(S,{color:r.colors.accent,children:[" ","\u25C0"]})]})}i(gP,"SuggestionItem");function fd({suggestions:e,selectedIndex:t,visible:n,maxVisible:r=fP,width:o=dP,showCount:s=!1}){let a=Yp();if(!n||e.length===0)return null;let{start:c,end:l}=uP(()=>pP(t,e.length,r),[t,e.length,r]),u=e.slice(c,l);return Xr(k,{flexDirection:"column",marginLeft:2,children:[c>0&&Xr(S,{color:a.colors.dim,children:[" ","\u25B2 ",c," more..."]}),u.map((m,p)=>{let x=c+p===t;return dd(gP,{suggestion:m,isSelected:x,width:o},m.id)}),l<e.length&&Xr(S,{color:a.colors.dim,children:[" ","\u25BC ",e.length-l," more..."]}),s&&Xr(S,{color:a.colors.dim,children:[t+1,"/",e.length]})]})}i(fd,"SuggestionsDisplay");import{jsx as gs,jsxs as hP}from"react/jsx-runtime";var qp=i(({reserveSpace:e,width:t,hidden:n=!1,mode:r="inline"})=>{let o=Lo(),s=te("dark");if(n)return null;if(!o)return e?gs(k,{height:8}):null;let{state:a,suggestions:c}=o;return a.visible&&c.length>0?r==="overlay"?hP(k,{flexDirection:"column",borderStyle:"round",borderColor:s.colors.accent,paddingX:1,marginTop:1,children:[gs(S,{color:s.colors.accent,bold:!0,children:"Suggestions"}),gs(fd,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-6)})]}):gs(k,{height:8,children:gs(fd,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-2)})}):e?gs(k,{height:8}):null},"PromptSuggestionsSurface");import{jsxs as Ln,jsx as bn,Fragment as Qp}from"react/jsx-runtime";import yP,{useEffect as xP,useState as wP}from"react";var hs=15,zS=Math.max(1,hs-2),Jp=i(({confirm:e,request:t})=>e?Ln(k,{flexDirection:"column",borderStyle:"round",borderColor:"yellow",paddingX:1,marginTop:1,width:"100%",children:[Ln(S,{color:"yellow",bold:!0,children:[Z("dialog.confirm")," ",e.prompt]}),e.planContent?bn(TP,{content:e.planContent}):null,e.instruction?bn(S,{dimColor:!0,children:e.instruction}):null]}):t?Ln(k,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,marginTop:1,width:"100%",children:[t.kind==="select"?Ln(Qp,{children:[Ln(S,{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 Ln(Qp,{children:[c>0?bn(S,{dimColor:!0,children:Z("select.more_above",{count:c})}):null,n.slice(a,a+r).map((u,m)=>{let p=a+m,g=p===o,x=t.selectedIndices?.includes(p)??!1,y=g?"\u276F ":" ",C=x?" \u2713":"",w=u.description?` - ${u.description}`:"";return bn(S,{color:g?"cyan":void 0,dimColor:!g,children:`${y}${u.label}${w}${C}`},`${u.value}-${p}`)}),l>0?bn(S,{dimColor:!0,children:Z("select.more_below",{count:l})}):null]})})(),bn(S,{dimColor:!0,children:t.multiSelect?Z("select.multiselect_hint"):Z("select.navigate_hint")})]}):Ln(Qp,{children:[Ln(S,{color:"cyan",bold:!0,children:[Z("dialog.input")," ",t.prompt]}),t.defaultValue!==void 0?bn(S,{dimColor:!0,children:`${Z("input.default")} ${t.defaultValue}`}):null,bn(S,{dimColor:!0,children:`${Z("input.value")} ${t.buffer||Z("input.type_response")}`}),bn(S,{dimColor:!0,children:Z("select.confirm_hint")})]}),t.error?bn(S,{color:"red",children:t.error}):null]}):null,"DialogSurface"),TP=i(({content:e})=>{let t=yP.useMemo(()=>e.split(`
|
|
276
|
+
`),[e]),n=t.length,r=n>hs,[o,s]=wP(0);xP(()=>{s(u=>{let m=Math.max(0,n-hs);return u>m?m:u})},[n]),nu((u,m)=>{if(!r)return;let p=Math.max(0,n-hs);m.upArrow?s(g=>Math.max(0,g-1)):m.downArrow?s(g=>Math.min(p,g+1)):m.pageUp?s(g=>Math.max(0,g-zS)):m.pageDown&&s(g=>Math.min(p,g+zS))},{isActive:!0});let a=t.slice(o,o+hs),c=o,l=Math.max(0,n-o-hs);return Ln(k,{flexDirection:"column",marginTop:1,children:[r&&c>0?Ln(S,{dimColor:!0,children:["\u2026 ",c," more line",c===1?"":"s"," above"]}):null,a.map((u,m)=>bn(S,{children:u},`plan-line-${o+m}`)),r&&l>0?Ln(S,{dimColor:!0,children:["\u2026 ",l," more line",l===1?"":"s"," below"]}):null,r?bn(S,{dimColor:!0,children:"PgUp/PgDn/\u2191\u2193 to scroll"}):null]})},"PlanScrollPanel");import{jsxs as qa,jsx as SP}from"react/jsx-runtime";function XS(e){let t=e.replace(/\s+/g," ").trim();return t.length<=72?t:`${t.slice(0,69)}...`}i(XS,"normalizePendingPreview");function md(e){if(e.length===0)return;let t=XS(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(md,"formatPendingInputsSummary");function YS(e){if(e.length===0)return[];let t=e.length;return e.map((n,r)=>({index:r+1,total:t,preview:XS(n)}))}i(YS,"formatPendingInputsLines");var Zp=i(({pendingInputs:e})=>{let t=YS(e);if(t.length===0)return null;let n=te("dark");return qa(k,{flexDirection:"column",children:[t.map(r=>qa(k,{children:[qa(S,{color:n.colors.hint,children:["\u23F3"," "]}),qa(S,{color:n.colors.dim,children:["[",r.index,"/",r.total,"] ",r.preview]})]},r.index)),SP(k,{children:qa(S,{color:n.colors.dim,children:[" ","\u2191 pull all into editor \xB7 Esc drops latest"]})})]})},"QueuedCommandsSurface");import{jsx as qS}from"react/jsx-runtime";function CP(e,t){switch(e){case"warning":return t.warning;case"accent":return t.accent;default:return t.dim}}i(CP,"resolveNotificationColor");var pd=i(({notifications:e})=>{let t=e.filter(r=>r.text.trim().length>0),n=te("dark");return t.length===0?null:qS(k,{flexDirection:"column",paddingX:1,children:t.map(r=>qS(S,{color:CP(r.tone,n.colors),children:r.text},r.id))})},"NotificationsSurface");import{jsx as QS}from"react/jsx-runtime";var eg=i(({notices:e})=>{let t=e.filter(r=>r.trim().length>0);if(t.length===0)return null;let n=te("dark");return QS(k,{flexDirection:"column",paddingX:1,children:t.map((r,o)=>QS(S,{color:n.colors.dim,children:r},`${r}-${o}`))})},"StatusNoticesSurface");import{jsxs as JS,jsx as bP}from"react/jsx-runtime";var gd=i(({text:e})=>{let t=e?.trim();if(!t)return null;let n=te("dark");return JS(k,{paddingX:1,children:[JS(S,{color:n.colors.hint,children:["\u22EF"," "]}),bP(S,{color:n.colors.dim,children:t})]})},"StashNotice");import{jsx as Ho,jsxs as vP}from"react/jsx-runtime";function ZS({text:e,accent:t=!1,selected:n=!1}){let r=te("dark");return Ho(k,{marginRight:1,children:Ho(S,{color:t?r.colors.accent:r.colors.primary,bold:n||t,children:`[ ${e} ]`})})}i(ZS,"Pill");var hd=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:vP(k,{flexDirection:"row",paddingX:1,children:[r?Ho(k,{marginRight:1,children:Ho(Cn,{})}):null,o.map(s=>Ho(ZS,{text:s.hint?`${s.label} (${s.hint})`:s.label,accent:s.accent,selected:s.selected},s.id)),t?Ho(ZS,{text:t}):null,n?Ho(S,{dimColor:!0,children:n}):null]})},"BackgroundTaskBar");import eC,{createContext as nC,useContext as rC,useReducer as IP,useCallback as je,useRef as kP,useEffect as tC}from"react";function RP(e){return e.agentId===void 0&&e.priority==="user"&&e.mode==="prompt"}i(RP,"isMainThreadPrompt");function rg(){return Un().getSnapshot().filter(RP)}i(rg,"getMainThreadPrompts");function tg(){return rg().map(e=>e.content)}i(tg,"getMainThreadPromptContents");var ng={state:rn.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 og(){let e={...ng,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 C=!0;for(let w=0;w<y.length;w++)if(y[w]!==e.pendingInputs[w]){C=!1;break}if(C)return}e={...e,pendingInputs:y},l()},"syncReactStateFromQueue"),m=Un().subscribe(()=>{u()}),p=i(()=>Un().dequeue({maxPriority:"user",mode:"prompt"}).map(C=>C.content),"drainOurSlice"),g=i(()=>{if(s&&(clearTimeout(s),s=null),n||r||o>0){let C=e.thinkingContent+r,w=r?C.length:e.thinkingCharCount+o;e={...e,currentResponse:e.currentResponse+n,thinkingContent:C,thinkingCharCount:w,...r||o>0?{isThinking:!0}:{}},n="",r="",o=0,l()}},"flushPendingUpdates"),x=i(()=>{s||(s=setTimeout(g,c))},"scheduleFlush");return{getState:i(()=>e,"getState"),setState:i(y=>{g(),e={...e,state:y},l()},"setState"),startStreaming:i(()=>{a=!1,n="",r="",o=0,s&&(clearTimeout(s),s=null),e={...e,state:rn.Responding,currentResponse:"",abortController:new AbortController,error:void 0,roundStartedAt:Date.now()},l()},"startStreaming"),stopStreaming:i(()=>{g(),e={...e,state:rn.Idle,abortController:void 0,roundStartedAt:null},l()},"stopStreaming"),appendResponse:i(y=>{a||(n+=y,x())},"appendResponse"),clearResponse:i(()=>{g(),e={...e,currentResponse:""},l()},"clearResponse"),setError:i(y=>{g(),e={...e,error:y,state:y?rn.Idle:e.state},l()},"setError"),abort:i(y=>{a=!0,g(),e.abortController?.abort(),n="",r="",o=0,s&&(clearTimeout(s),s=null),y?.preservePendingInputs||p(),e={...e,state:rn.Idle,abortController:void 0,roundStartedAt:null},l()},"abort"),reset:i(()=>{a=!0,g(),e.abortController?.abort(),n="",r="",o=0,s&&(clearTimeout(s),s=null),p(),e={...ng,pendingInputs:tg()},a=!1,l()},"reset"),isStreaming:i(()=>e.state===rn.Responding||e.state===rn.WaitingForConfirmation,"isStreaming"),subscribe:i(y=>(t.add(y),()=>{t.delete(y)}),"subscribe"),startThinking:i(()=>{g(),e={...e,isThinking:!0,thinkingCharCount:0,thinkingContent:""},l()},"startThinking"),appendThinkingChars:i(y=>{a||(o+=y,x())},"appendThinkingChars"),appendThinkingContent:i(y=>{a||(r+=y,x())},"appendThinkingContent"),stopThinking:i(()=>{g(),e={...e,isThinking:!1,thinkingCharCount:0},l()},"stopThinking"),clearThinkingContent:i(()=>{g(),e={...e,isThinking:!1,thinkingCharCount:0,thinkingContent:""},l()},"clearThinkingContent"),setCurrentTool:i(y=>{g(),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=>{g(),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(()=>{g(),e={...e,iterationHistory:[],currentIteration:1,maxIter:ng.maxIter,thinkingContent:"",thinkingCharCount:0,currentResponse:"",currentTool:void 0,toolInputCharCount:0,toolInputContent:""},l()},"clearIterationHistory"),setMaxIter:i(y=>{g(),e={...e,maxIter:y},l()},"setMaxIter"),startCompacting:i(()=>{g(),e={...e,isCompacting:!0},l()},"startCompacting"),stopCompacting:i(()=>{g(),e={...e,isCompacting:!1},l()},"stopCompacting"),addPendingInput:i(y=>{let C=y.trim();C&&(rg().length>=5||(g(),Un().enqueue({priority:"user",mode:"prompt",content:C})))},"addPendingInput"),removeLastPendingInput:i(()=>{let y=rg(),C=y[y.length-1];C&&(g(),Un().dequeue({maxPriority:"user",mode:"prompt",id:C.id}))},"removeLastPendingInput"),shiftPendingInput:i(()=>(g(),Un().dequeue({maxPriority:"user",mode:"prompt",limit:1})[0]?.content),"shiftPendingInput"),clearPendingInputs:i(()=>{g(),p()},"clearPendingInputs"),consumePendingInputs:i(()=>(g(),p()),"consumePendingInputs"),dispose:i(()=>{m()},"dispose")}}i(og,"createStreamingManager");var oC=nC(null),iC=nC(null);function yd({children:e,onStateChange:t}){let n=kP(og()),[,r]=IP(le=>le+1,0);tC(()=>n.current.subscribe($e=>{r(),t?.($e)}),[t]),tC(()=>{let le=n.current;return()=>{le.dispose()}},[]);let o=je(()=>{n.current.startStreaming()},[]),s=je(()=>{n.current.stopStreaming()},[]),a=je(le=>{n.current.appendResponse(le)},[]),c=je(()=>{n.current.clearResponse()},[]),l=je(le=>{n.current.setError(le)},[]),u=je(le=>{n.current.abort(le)},[]),m=je(()=>{n.current.reset()},[]),p=je(()=>{n.current.startThinking()},[]),g=je(le=>{n.current.appendThinkingChars(le)},[]),x=je(le=>{n.current.appendThinkingContent(le)},[]),y=je(()=>{n.current.stopThinking()},[]),C=je(()=>{n.current.clearThinkingContent()},[]),w=je(le=>{n.current.setCurrentTool(le)},[]),b=je(le=>{n.current.appendToolInputChars(le)},[]),P=je(le=>{n.current.appendToolInputContent(le)},[]),L=je(()=>{n.current.clearToolInputContent()},[]),U=je(()=>n.current.getSignal(),[]),D=je(()=>n.current.getFullResponse(),[]),O=je(()=>n.current.getThinkingContent(),[]),I=je(le=>{n.current.startNewIteration(le)},[]),ce=je(()=>{n.current.clearIterationHistory()},[]),ye=je(le=>{n.current.setMaxIter(le)},[]),F=je(()=>{n.current.startCompacting()},[]),z=je(()=>{n.current.stopCompacting()},[]),v=je(le=>{n.current.addPendingInput(le)},[]),M=je(()=>{n.current.removeLastPendingInput()},[]),re=je(()=>n.current.shiftPendingInput(),[]),xe=je(()=>{n.current.clearPendingInputs()},[]),Re=je(()=>n.current.consumePendingInputs(),[]),Te={startStreaming:o,stopStreaming:s,appendResponse:a,clearResponse:c,setError:l,abort:u,reset:m,startThinking:p,appendThinkingChars:g,appendThinkingContent:x,stopThinking:y,clearThinkingContent:C,setCurrentTool:w,appendToolInputChars:b,appendToolInputContent:P,clearToolInputContent:L,getSignal:U,getFullResponse:D,getThinkingContent:O,startNewIteration:I,clearIterationHistory:ce,setMaxIter:ye,startCompacting:F,stopCompacting:z,addPendingInput:v,removeLastPendingInput:M,shiftPendingInput:re,clearPendingInputs:xe,consumePendingInputs:Re};return eC.createElement(oC.Provider,{value:n.current.getState()},eC.createElement(iC.Provider,{value:Te},e))}i(yd,"StreamingProvider");function Ja(){let e=rC(oC);if(!e)throw new Error("useStreamingState must be used within a StreamingProvider");return e}i(Ja,"useStreamingState");function Za(){let e=rC(iC);if(!e)throw new Error("useStreamingActions must be used within a StreamingProvider");return e}i(Za,"useStreamingActions");function sC(){let e=Ja(),t=Za(),n=e.state===rn.Responding||e.state===rn.WaitingForConfirmation;return{state:e,actions:t,isStreaming:n}}i(sC,"useStreaming");import{useCallback as EP,useRef as MP}from"react";var AP=500;function _P(e={}){let{onKey:t,onEsc:n,onCtrlC:r,enabled:o=!0}=e,s=MP(0),{exit:a}=Hr(),c=EP(l=>{if(!o)return!1;if(l.name==="escape"){let u=Date.now(),m=u-s.current<AP;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 on(c,{isActive:o}),{lastEscTime:s.current}}i(_P,"useKeypress");function PP(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(PP,"createKeyMatcher");import{useCallback as $P,useSyncExternalStore as LP}from"react";function OP(e){return e.agentId===void 0&&e.priority==="user"&&e.mode==="prompt"}i(OP,"isMainThreadPrompt");var ig=null,xd=Object.freeze([]);function aC(){let e=Un().getSnapshot();return e===ig||(ig=e,xd=Object.freeze(e.filter(OP))),xd}i(aC,"getQueueSliceSnapshot");function cC(){let e=$P(t=>Un().subscribe(t),[]);return LP(e,aC,aC)}i(cC,"useQueuedPrompts");function DP(){return cC().map(t=>t.content)}i(DP,"useQueuedPromptContents");function NP(){ig=null,xd=Object.freeze([])}i(NP,"_resetQueuedPromptsCacheForTests");async function ec(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??tc(),title:"",gitRoot:e.gitRoot,runtimeInfo:e.runtimeInfo,createdAt:new Date().toISOString(),lastAccessed:new Date().toISOString()}}i(ec,"createInteractiveContext");function tc(){let e=new Date,t=e.toISOString().split("T")[0].replace(/-/g,""),n=e.toTimeString().split(" ")[0].replace(/:/g,"");return`${t}_${n}`}i(tc,"generateSessionId");function Zn(e){e.lastAccessed=new Date().toISOString()}i(Zn,"touchContext");var ys=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:pn(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=wi(o.lineage,n,r);if(!s)return null;let a={...structuredClone(o),messages:Rt(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=Ti(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=bi(o.lineage,n);if(!s)return null;let a=r?.sessionId??await xi(),c={messages:Rt(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??Si(r.lineage);if(!o)return null;let s=Ci(r.lineage,o);if(!s)return null;let a={...r,messages:Rt(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 BP(){return new ys}i(BP,"createMemorySessionStorage");import*as lC from"child_process";import*as uC from"util";import wd from"chalk";var HP=uC.promisify(lC.exec),FP={maxBuffer:1024*1024,timeout:3e4,maxOutputLength:8e3,maxErrorLength:4e3};async function Td(e,t={}){let n={...FP,...t},r=e.trim(),o=Km(r);if(o)return o.startsWith("[Blocked]")&&(console.log(wd.yellow(`
|
|
277
|
+
${o}`)),console.log()),o;try{console.log(wd.dim(`
|
|
278
|
+
[Executing: ${r}]`));let{stdout:s,stderr:a}=await HP(r,{cwd:n.cwd,maxBuffer:n.maxBuffer,timeout:n.timeout,windowsHide:!0}),c="";return s&&(c+=s),a&&(c+=(c?`
|
|
279
|
+
`:"")+`[stderr] ${a}`),c.length>n.maxOutputLength&&(c=c.slice(0,n.maxOutputLength)+`
|
|
280
|
+
...[output truncated]`),console.log(wd.dim(c||"[No output]")),console.log(),`[Shell command executed: ${r}]
|
|
281
|
+
|
|
282
|
+
Output:
|
|
283
|
+
${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)+`
|
|
284
|
+
...[error truncated]`),console.log(wd.red(`
|
|
285
|
+
[Shell Error: ${c}]`)),console.log(),`[Shell command failed: ${r}]
|
|
286
|
+
|
|
287
|
+
Error: ${c}`}}i(Td,"executeShellCommand");async function sg(e,t={}){if(e.startsWith("!")){let n=e.slice(1).trim();return Td(n,t)}return e}i(sg,"processSpecialSyntax");function WP(e){return e.trim().startsWith("!")}i(WP,"isShellCommand");function UP(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell:")}i(UP,"isShellCommandSuccess");function nc(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell command failed:")||e.startsWith("[Shell:")||e.startsWith("[Blocked]")}i(nc,"isShellCommandHandled");function Sd(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(Sd,"createRetryHistoryItem");function ag(e,t,n,r){e(Sd(t,n,r))}i(ag,"emitRetryHistoryItem");function Cd(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(Cd,"createRecoveryHistoryItem");function cg(e,t){e(Cd(t))}i(cg,"emitRecoveryHistoryItem");import{jsx as se,jsxs as Gt,Fragment as OL}from"react/jsx-runtime";import s0,{useState as We,useCallback as V,useRef as fe,useEffect as He,useMemo as de}from"react";import{jsx as er,Fragment as jP,jsxs as bd}from"react/jsx-runtime";var lg=" | ",dC=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=te("dark"),p=r.trim(),g=a?.trim(),x=l?.trim(),y=u?.trim(),C=e?p?`Search /${p}`:"Search":"Transcript",w=e?`Enter jump | n/N next/prev | Ctrl+E ${n?"collapse":"show all"} | Esc close | Ctrl+O/q back`:t?`PgUp/PgDn page | j/k scroll | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | Esc clear focus | Ctrl+O/q back`:`PgUp/PgDn page | j/k scroll | \u2190/\u2192 select | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | s dump | Ctrl+O/q/Esc back`,b=c>0?c===1?"1 new update":`${c} new updates`:void 0,P=e&&s>0?`${Math.max(0,o)}/${s}`:void 0,L=e&&g||x,U=!!(L||y);return bd(k,{flexDirection:"column",children:[bd(k,{paddingX:1,children:[er(S,{color:m.colors.dim,children:C}),er(S,{dimColor:!0,children:lg}),er(S,{color:m.colors.dim,children:w}),P||b?er(k,{flexGrow:1}):null,P?bd(jP,{children:[er(S,{dimColor:!0,children:P}),b?er(S,{dimColor:!0,children:lg}):null]}):null,b?er(S,{color:m.colors.accent,bold:!0,children:b}):null]}),U?bd(k,{paddingX:1,children:[L?er(S,{color:m.colors.dim,children:L}):null,L&&y?er(S,{dimColor:!0,children:lg}):null,y?er(S,{color:m.colors.accent,bold:!0,children:y}):null]}):null]})},"TranscriptModeFooter");import{jsx as GP,jsxs as KP}from"react/jsx-runtime";var fC=i(({banner:e,...t})=>KP(k,{flexDirection:"column",children:[e,GP(No,{...t,animateSpinners:!1,showFullThinking:!1,showDetailedTools:!1,showLiveProgressRows:!1})]}),"PromptTranscriptSurface");import{jsx as VP,jsxs as zP}from"react/jsx-runtime";var mC=i(({banner:e,windowed:t=!1,showDetailedTools:n=!1,showAllContent:r=!1,...o})=>zP(k,{flexDirection:"column",children:[e,VP(jp,{...o,chromeMode:"hidden",windowed:t,showFullThinking:!0,showDetailedTools:n,showAllContent:r,showLiveProgressRows:!0})]}),"TranscriptModeSurface");import{jsxs as XP,jsx as YP}from"react/jsx-runtime";var pC=i(({text:e,tone:t="success"})=>{let n=e?.trim();if(!n)return null;let r=te("dark"),o=t==="warning"?r.colors.warning:r.colors.accent,s=t==="warning"?"!":"\u2713";return YP(k,{paddingX:1,backgroundColor:r.colors.inputBackground,children:XP(S,{color:o,children:[s," ",n]})})},"ClipboardToastSurface");import{jsx as Yr,Fragment as qP,jsxs as ug}from"react/jsx-runtime";var QP=" \u23BF ";function JP(e){let t=te("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(JP,"resolveSymbolColor");var ZP=i(({row:e})=>{let t=JP(e.symbolColor),n=e.kind!=="item";return ug(k,{flexDirection:"row",children:[Yr(S,{color:t,bold:e.isActive,children:e.symbol}),Yr(S,{children:" "}),Yr(S,{dimColor:n,bold:e.isActive,strikethrough:e.isStrikethrough,children:e.text}),e.evaluatorBadge?ug(qP,{children:[Yr(S,{children:" "}),Yr(S,{dimColor:!0,children:e.evaluatorBadge})]}):null]})},"TodoListRow"),gC=i(({viewModel:e})=>{if(!e.shouldRender||e.rows.length===0)return null;let t=te("dark").colors.dim;return ug(k,{flexDirection:"row",children:[Yr(S,{color:t,children:QP}),Yr(k,{flexDirection:"column",flexGrow:1,children:e.rows.map((n,r)=>Yr(ZP,{row:n},`${n.kind}-${n.id??r}`))})]})},"TodoListSurface");function e$(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(e$,"symbolForStatus");function t$(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(t$,"pickAnchorIndex");function n$(e){let{symbol:t,color:n}=e$(e.status),r=e.status==="failed"&&e.note?`${e.content} (${e.note})`:e.content,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(n$,"buildItemRow");function r$(e){return{kind:"summary_done",symbol:"\u2713",symbolColor:"green",text:`${e} done`,isActive:!1}}i(r$,"buildDoneSummary");function dg(e){return{kind:"summary_pending",symbol:"\u2610",symbolColor:"dim",text:`+${e} more`,isActive:!1}}i(dg,"buildPendingSummary");function o$(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].status==="failed"&&!t.has(n))return n;return-1}i(o$,"pickFailedToPromote");function i$(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(i$,"decideWindow");function hC(e,t){let n=e.length,r=e.reduce((x,y)=>y.status==="completed"?x+1:x,0),o=i((x,y)=>({shouldRender:y,rows:x,completedCount:r,totalCount:n}),"baseVm");if(n<1)return o([],!1);t.now,t.lastAllCompletedAt;let s=t$(e),a=i$(e,s),c=new Set(a.visibleIdx),l=o$(e,c),u=[...a.visibleIdx],m=a.hiddenCompletedCount,p=a.hiddenPendingCount;if(l>=0){let x=-1;for(let y=u.length-1;y>=0;y--){let C=u[y];if(C!==s&&e[C].status==="pending"){x=y;break}}if(x>=0){let y=u[x];u[x]=l,p+=1,u.sort((b,P)=>b-P);let C=u[0],w=0;for(let b=0;b<C;b++)e[b].status==="completed"&&w++;m=w}}let g=[];m>0&&g.push(r$(m));for(let x of u)g.push(n$(e[x]));if(p>0&&g.push(dg(p)),g.length>6)for(;g.length>6;){let x=!1;for(let y=g.length-1;y>=0;y--){let C=g[y];if(C.kind==="item"&&!C.isActive){g.splice(y,1);let w=g[g.length-1];if(w&&w.kind==="summary_pending"){let b=/\+(\d+) more/.exec(w.text),P=b?Number.parseInt(b[1],10)+1:1;g[g.length-1]=dg(P)}else g.push(dg(1));x=!0;break}}if(!x)break}return o(g,!0)}i(hC,"buildTodoPlanViewModel");function yC(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(yC,"buildFooterHeaderViewModel");function s$(e){return Cl(e.provider,e.model,"off",{longRunning:!0})}i(s$,"evaluateSessionTransitionPolicy");function a$(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(a$,"formatSessionTransitionGuardMessage");function Fo(e,t,n){let r=s$(e);if(!r||r.status==="allow")return!0;let[o,...s]=a$(t,r);return n(r.status,o,s),r.status!=="block"}i(Fo,"enforceSessionTransitionGuard");function c$(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(c$,"summarizeEntry");function xC(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} ${c$(e.entry)}${c}`);let l=t+(t?n?" ":"| ":"");e.children.forEach((u,m)=>{xC(u,l,m===e.children.length-1,r)})}i(xC,"formatNode");function vd(e){let t=[];return e.forEach((n,r)=>{xC(n,"",r===e.length-1,t)}),t}i(vd,"formatSessionTree");var l$=100,u$=/\b(curl|wget|invoke-webrequest|invoke-restmethod|iwr|irm)\b/i,TC=/\b(rm|del|erase|remove-item|rmdir|rd|git clean)\b/i,SC=/\b(npm|pnpm|yarn|pip|choco|winget)\s+(install|add|remove|uninstall|update|upgrade|ci)\b/i,CC=/\b(set-content|add-content|out-file|new-item|copy-item|move-item|rename-item|cp|mv|copy|move|ren|touch)\b/i;function xs(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}i(xs,"readString");function Ht(e,t,n){n&&e.push({label:t,value:n})}i(Ht,"pushField");function d$(e){return e.replace(/\s+/g," ").trim()}i(d$,"normalizeWhitespace");function f$(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(f$,"truncateMiddle");function m$(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(m$,"maskSensitiveSegments");function wC(e){return f$(m$(d$(e)),l$)}i(wC,"summarizeCommand");function p$(e){return Pn(e)?Z("intent.read"):TC.test(e)?Z("intent.delete"):SC.test(e)?Z("intent.deps"):$n(e)||CC.test(e)?Z("intent.modify"):Z("intent.execute")}i(p$,"classifyShellIntent");function g$(e){let t=[];return TC.test(e)?t.push(Z("risk.destructive")):SC.test(e)?t.push(Z("risk.deps")):$n(e)||CC.test(e)?t.push(Z("risk.modify")):Pn(e)||t.push(Z("risk.unknown")),u$.test(e)&&t.push(Z("risk.network")),t}i(g$,"classifyShellRisks");function h$(e){if(Array.isArray(e))return e.filter(t=>typeof t=="object"&&t!==null&&typeof t.kind=="string")}i(h$,"readSignals");function y$(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(y$,"scopeFromSignals");function x$(e){if(e._outsideProject===!0)return Z("scope.outside");if(e._alwaysConfirm===!0)return Z("scope.protected")}i(x$,"scopeFromMarkers");function w$(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(w$,"risksFromSignals");var T$={Reason:"field.reason",Intent:"field.intent",Target:"field.target",Scope:"field.scope",Risk:"field.risk",Summary:"field.summary"};function S$(e){return Z(T$[e])}i(S$,"localizeFieldLabel");function ws(e,t){return{title:e,fields:t,details:t.map(n=>`${S$(n.label)}: ${n.value}`)}}i(ws,"buildDisplayFromFields");function Id(e,t){if(e==="confirm"){let l=xs(t._message);if(l)return ws(l,[])}if(e==="exit_plan_mode"){let l=xs(t.plan),u="Approve plan? (exits plan mode \u2192 accept-edits)";return l?{title:u,fields:[],details:l.split(`
|
|
288
|
+
`)}:ws(u,[])}let n=[],r=xs(t.path),o=xs(t.command),s=xs(t._reason)??xs(t.justification),a=h$(t._classifierSignals),c=y$(a)??x$(t);switch(Ht(n,"Reason",s),e){case"bash":case"shell_command":{if(o){Ht(n,"Intent",p$(o)),Ht(n,"Scope",c);let l=w$(a),u=l.length>0?l:g$(o);u.length>0&&Ht(n,"Risk",u.join("; ")),Ht(n,"Summary",wC(o))}else Ht(n,"Scope",c);return ws(e==="bash"?Z("tool.bash.title"):Z("tool.shell.title"),n)}case"write":return Ht(n,"Intent",Z("intent.write_file")),Ht(n,"Target",r),Ht(n,"Scope",c),ws(Z("tool.write.title"),n);case"edit":return Ht(n,"Intent",Z("intent.edit_file")),Ht(n,"Target",r),Ht(n,"Scope",c),ws(Z("tool.edit.title"),n);default:return Ht(n,"Intent",Z("intent.use_tool",{tool:e})),Ht(n,"Target",r),Ht(n,"Scope",c),o&&Ht(n,"Summary",wC(o)),ws(Z("tool.generic.title",{tool:e}),n)}}i(Id,"buildToolConfirmationDisplay");function bC(e,t){let n=Id(e,t);return n.details.length>0?`${n.title}
|
|
289
|
+
${n.details.join(`
|
|
290
|
+
`)}`:n.title}i(bC,"buildToolConfirmationPrompt");async function kd(e){let t=await Ky({userKodaxDir:Ry(),projectRoot:e.projectRoot}),n;return{getGuardrail:i(()=>n||(n=Vy({rules:t.merged,claudeMd:Ey(e.getAgentsFiles()),getToolProjection:i(o=>(Tl(o)??Ny(o))?.toClassifierInput,"getToolProjection"),resolveProvider:i(o=>{try{return mi(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(kd,"bootstrapAutoMode");var fg=[" \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 Xe from"chalk";var Rd=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 ")}},tr=i(()=>Rd.getInstance(),"getShortcutsRegistry");var Ts=[{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 C$,useCallback as b$,useRef as v$}from"react";function Tr(e,t,n={}){let{context:r,isActive:o=!0}=n,s=tr(),a=v$(t);a.current=t,C$(()=>(s.setHandler(e,(...u)=>a.current(...u)),()=>{s.setHandler(e,void 0)}),[s,e]);let c=b$(u=>{if(!o)return!1;let p=s.getAllShortcuts().find(C=>C.definition.id===e);if(!p)return!1;let g=r??p.definition.context,x=g==="global"?"input":g,y=s.findMatchingShortcut(u,x);return y&&y.definition.id===e?a.current()===!0:!1},[s,e,o,r]),l=I$(e,s);on(c,{isActive:o,priority:l})}i(Tr,"useShortcut");function I$(e,t){let r=t.getAllShortcuts().find(o=>o.definition.id===e);return r?r.definition.priority:0}i(I$,"getShortcutPriority");import k$,{createContext as R$,useContext as E$,useState as vC,useCallback as mg}from"react";var IC=R$(null);function pg({children:e,initialContext:t="input"}){let[n,r]=vC(!1),[o,s]=vC(t);tr().registerAll(Ts);let c=mg(()=>{r(p=>!p)},[]),l=mg(()=>{let g=tr().getAllShortcuts(),x={global:[],mode:[],navigation:[],editing:[]};for(let y of g){let C=y.definition.category;x[C]||(x[C]=[]),x[C].push(y)}return x},[]),u=mg(()=>tr().getShortcutsByContext(o),[o]),m={showHelp:n,toggleHelp:c,setShowHelp:r,currentContext:o,setCurrentContext:s,getShortcutsByCategory:l,getContextShortcuts:u};return k$.createElement(IC.Provider,{value:m},e)}i(pg,"ShortcutsProvider");function gg(){let e=E$(IC);if(!e)throw new Error("useShortcutsContext must be used within a ShortcutsProvider");return e}i(gg,"useShortcutsContext");import M$ from"chalk";function hg({currentConfig:e,setCurrentConfig:t,isLoading:n,abort:r,stopThinking:o,clearThinkingContent:s,setCurrentTool:a,setIsLoading:c,onToggleHelp:l,setShowHelp:u,onSetThinking:m,onSetReasoningMode:p,onToggleTranscriptMode:g,onOpenTranscriptSearch:x,canOpenTranscriptSearch:y=!0,isInteractiveDialogActive:C=!1,onSetAgentMode:w,onSetPermissionMode:b,isInputEmpty:P,onSavePermissionMode:L}){return Tr("interrupt",()=>n?(r(),o(),s(),a(void 0),c(!1),console.log(M$.yellow(`
|
|
291
|
+
[Interrupted]`)),!0):!1,{isActive:n}),Tr("showHelp",()=>C?!1:P?(l(),!0):!1,{isActive:P}),Tr("toggleThinking",()=>{if(C)return!1;let U=co.indexOf(e.reasoningMode),D=co[(U+1)%co.length],O=D!=="off";return t(I=>({...I,thinking:O,reasoningMode:D})),fr({reasoningMode:D,thinking:O}),p?.(D),m?.(O),u(!1),!0}),Tr("toggleTranscriptMode",()=>C?!1:(g?.(),u(!1),!0)),Tr("openTranscriptSearch",()=>C||!y?!1:(x?.(),u(!1),!0)),Tr("togglePermissionMode",()=>{if(C)return!1;let U=["plan","accept-edits","auto-in-project"],O=(U.indexOf(e.permissionMode)+1)%U.length,I=U[O];return t(ce=>({...ce,permissionMode:I})),b?.(I),L?.(I),u(!1),!0}),Tr("toggleAgentMode",()=>{if(C)return!1;let U=e.agentMode==="ama"?"sa":"ama";return t(D=>({...D,agentMode:U})),fr({agentMode:U}),w?.(U),u(!1),!0}),null}i(hg,"GlobalShortcuts");import{exec as A$}from"child_process";import{promisify as _$}from"util";var P$=_$(A$),$$={read:"read",grep:"grep",glob:"glob",write:"write",edit:"edit",bash:"bash",undo:"undo",askuserquestion:"ask-user-question",askuser:"ask-user-question"};function kC(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(kC,"splitTopLevelCommaList");function L$(e){if(!e?.trim())return{configured:!1,rules:[],invalidEntries:[]};let t=[];return{configured:!0,rules:kC(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=$$[o[1].replace(/[^a-z]/gi,"").toLowerCase()];if(!s){t.push(r);return}let a=o[2]?kC(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(L$,"parseAllowedTools");function O$(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${t}$`,"i")}i(O$,"wildcardToRegExp");function RC(e,t){return O$(e).test(t)}i(RC,"matchesPattern");function EC(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=>RC(a,o)))}i(EC,"isToolAllowed");function D$(e,t){return e.matcher?RC(e.matcher,t):!0}i(D$,"hookMatches");function N$(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(`
|
|
292
|
+
`)}i(N$,"formatManualOutput");function B$(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(B$,"resolveModelOverride");async function H$(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(!EC(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 P$(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(`
|
|
293
|
+
`);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 g=JSON.parse(p);return{allow:typeof g.allow=="boolean"?g.allow:typeof g.continue=="boolean"?g.continue:void 0,message:typeof g.message=="string"?g.message:void 0,additionalContext:typeof g.additionalContext=="string"?g.additionalContext:typeof g.additional_context=="string"?g.additional_context:void 0}}catch{return{message:p,additionalContext:p}}}catch(l){return await r(`[Hook ${e} failed] ${l instanceof Error?l.message:String(l)}`),{}}}i(H$,"executeHookCommand");async function Ss(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(!D$(u,n))continue;let m=await H$(t,u,r,o,s,a);if(m.message&&await o(`[Hook ${t}] ${m.message}`),m.additionalContext&&(l.additionalContext=l.additionalContext?`${l.additionalContext}
|
|
294
|
+
${m.additionalContext}`:m.additionalContext),m.allow===!1){l.allow=!1;break}}return l}i(Ss,"runHooks");async function Ed(e,t,n,r){if(t.disableModelInvocation)return{mode:"manual",manualOutput:N$(t),finalize:i(async()=>{},"finalize")};let o=e.events??{},s=L$(t.allowedTools),a=B$(e.provider,t.model),c=!1,l=i(async w=>{if(r(w),!(c||!t.hooks?.Notification?.length)){c=!0;try{await Ss(t.hooks,"Notification",w,{displayName:t.displayName,source:t.source,path:t.path,message:w},async b=>{r(b)},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 Ss(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 Ss(t.hooks,"UserPromptSubmit",n,{displayName:t.displayName,source:t.source,prompt:n,path:t.path},l,o,s);if(m.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped by a UserPromptSubmit hook.`,finalize:i(async()=>{},"finalize")};let p=[t.agent?`Preferred agent: ${t.agent}`:void 0,u.additionalContext,m.additionalContext].filter(w=>typeof w=="string"&&w.trim().length>0),g=[p.length>0?p.join(`
|
|
295
|
+
|
|
296
|
+
`):void 0,t.prompt,`User request: ${n}`].filter(w=>typeof w=="string"&&w.trim().length>0),x={...o,beforeToolExecute:i(async(w,b)=>EC(s,w,b)?(await Ss(t.hooks,"PreToolUse",w,{tool:w,input:b,displayName:t.displayName,source:t.source,path:t.path},l,o,s)).allow===!1?(await l(`[Blocked] PreToolUse hook blocked '${w}' for ${t.displayName}`),!1):o.beforeToolExecute?await o.beforeToolExecute(w,b):!0:(await l(`[Blocked] Tool '${w}' is not allowed by ${t.displayName}`),!1),"beforeToolExecute"),onToolResult:i(w=>{o.onToolResult?.(w),Ss(t.hooks,"PostToolUse",w.name,{...w,displayName:t.displayName,source:t.source,path:t.path},l,o,s)},"onToolResult")},y=!1,C=i(async w=>{y||(y=!0,await Ss(t.hooks,t.context==="fork"?"SubagentStop":"Stop",t.displayName,{displayName:t.displayName,source:t.source,path:t.path,error:w?.message},l,o,s))},"finalize");return{mode:t.context==="fork"?"fork":"inline",prompt:g.join(`
|
|
297
|
+
|
|
298
|
+
`),options:{...e,modelOverride:a,context:{...e.context,rawUserInput:n,skillInvocation:t.source==="skill"?t.skillInvocation:e.context?.skillInvocation},events:x},finalize:C}}i(Ed,"prepareInvocationExecution");import{appendFileSync as F$,mkdirSync as W$,writeFileSync as U$}from"node:fs";import{join as AC}from"node:path";import MC from"node:v8";var wg=parseInt(process.env.KODAX_MEMORY_DIAG??"0",10),Tg=wg>=1,Sg=hi(),_C=AC(Sg,"memory-diag.log"),yg=0,xg=!1;function PC(){if(!xg)try{W$(Sg,{recursive:!0}),xg=!0}catch{xg=!0}}i(PC,"ensureLogDir");function j$(e){PC();try{F$(_C,e+`
|
|
299
|
+
`)}catch{}}i(j$,"writeLog");function gt(e){return`${(e/1024/1024).toFixed(2)}MB`}i(gt,"formatMB");function G$(){return typeof globalThis.gc=="function"?(globalThis.gc(),!0):!1}i(G$,"tryGC");function It(e){return e?e.length*2:0}i(It,"strBytes");function Wo(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+=Wo(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+=Wo(o,t+1);return n}return 16}i(Wo,"estimateJsonBytes");function $C(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+=$C(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+=Wo(t.input));for(let[o,s]of Object.entries(t))r.has(o)||(n+=o.length*2+Wo(s));return n}i($C,"estimateBlockBytes");function Cg(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+=$C(n);return t}return 200}i(Cg,"estimateMessageBytes");function Md(e){let t=128;switch(t+=It(e.id)+It(e.parentId??void 0)+It(e.timestamp),e.type){case"message":return t+Cg(e.message);case"compaction":return t+=It(e.summary),t+=It(e.firstKeptEntryId),t+=It(e.reason),t+=It(e.artifactLedgerId),e.details!==void 0&&(t+=Wo(e.details)),e.memorySeed!==void 0&&(t+=Wo(e.memorySeed)),t;case"branch_summary":return t+=It(e.summary),t+=It(e.fromId),e.details!==void 0&&(t+=Wo(e.details)),t;case"label":return t+=It(e.targetId),t+=It(e.label),t;case"archive_marker":return t+=It(e.archiveBatchId),t+=It(e.summary),t+=8,t;default:return t}}i(Md,"estimateEntryBytes");function K$(e){let t={},n=[];for(let o=0;o<e.length;o++){let s=e[o],a=Cg(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(K$,"buildMessageBreakdown");function Ad(){return Tg}i(Ad,"memDiagEnabled");function _d(e,t){if(!Tg)return;e==="turn-start"&&yg++;let n=process.memoryUsage(),r=new Date().toISOString(),o=t.biggestMessages,s=["",`\u2550\u2550\u2550 [MEMDIAG] turn=${yg} phase=${e} @${r} \u2550\u2550\u2550`,` V8 heap: used=${gt(n.heapUsed)} total=${gt(n.heapTotal)} rss=${gt(n.rss)} ext=${gt(n.external)}`," \u2500\u2500 Data breakdown \u2500\u2500",` context.messages: ${t.messageCount} msgs, ${gt(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: ${gt(t.lineageNonMessageBytes)} (compaction.details/memorySeed + branch_summary payloads)`,` lineage orphan messages: ${t.lineageOrphanMessageCount} msgs, ${gt(t.lineageOrphanMessageBytes)} (in lineage but not in context.messages \u2014 branches/pruned)`,` UI history: ${t.historyItemCount} items, ${gt(t.historyTextBytes)}`,` foreground turn: ${t.foregroundItemCount} items, ${gt(t.foregroundTextBytes)}`,` streaming response: ${gt(t.streamingResponseBytes)}`,` streaming thinking: ${gt(t.streamingThinkingBytes)}`,` persisted UI history: ${t.persistedUiHistoryCount} items, ${gt(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} ${gt(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=MC.getHeapSpaceStatistics();for(let u of c)u.space_used_size>1024*1024&&s.push(` ${u.space_name.padEnd(25)} used=${gt(u.space_used_size)} allocated=${gt(u.space_size)}`);if(s.push(" \u2500\u2500 Summary \u2500\u2500"),s.push(` tracked data total: ${gt(a)}`),s.push(` V8 heap used: ${gt(n.heapUsed)}`),s.push(` unaccounted (overhead): ${gt(n.heapUsed-a)}`),s.push(" (React/Ink tree, provider SDK buffers, module metadata,"),s.push(' tokenizer caches, source maps \u2014 see "Blind spots" note)'),G$()){let u=process.memoryUsage();s.push(` after forced GC: heap=${gt(u.heapUsed)} (freed ${gt(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(wg>=2)try{let u=AC(Sg,`heap-turn${yg}-${e}.heapsnapshot`);MC.writeHeapSnapshot(u),s.push(` heap snapshot: ${u}`)}catch{s.push(" heap snapshot: FAILED")}j$(s.join(`
|
|
300
|
+
`))}i(_d,"memDiagSnapshot");function Pd(e,t,n){let r=K$(e),o=new Set(e),s=0,a=0,c=0,l=0,u=0,m=0,p=0,g=0,x=t?.entries??[];for(let b of x)switch(b.type){case"message":g++,o.has(b.message)||(c++,a+=Cg(b.message));break;case"compaction":l++,s+=Md(b);break;case"branch_summary":u++,s+=Md(b);break;case"label":m++,s+=Md(b);break;case"archive_marker":p++,s+=Md(b);break}let y=0;for(let b of n.historyItems)y+=It(b.text);let C=0;for(let b of n.foregroundItems)C+=It(b.text);let w=0;for(let b of n.persistedUiHistory)w+=It(b.text);return{messageCount:e.length,messageBytes:r.totalBytes,biggestMessages:r.biggest,lineageEntryCount:x.length,lineageMessageEntryCount:g,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:C,streamingResponseBytes:It(n.streamingResponse),streamingThinkingBytes:It(n.streamingThinking),persistedUiHistoryCount:n.persistedUiHistory.length,persistedUiHistoryBytes:w}}i(Pd,"buildMemDiagBreakdown");function LC(){if(Tg){PC();try{let e=typeof globalThis.gc=="function",t=[`[MEMDIAG] Session started at ${new Date().toISOString()}`,`[MEMDIAG] Level=${wg} 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(`
|
|
301
|
+
`);U$(_C,t+`
|
|
302
|
+
`)}catch{}}}i(LC,"memDiagReset");import V$ from"node:fs";import vg from"node:path";var z$={".gif":"image/gif",".jpeg":"image/jpeg",".jpg":"image/jpeg",".png":"image/png",".webp":"image/webp"},X$=/@(?:"([^"]+)"|'([^']+)'|([^\s]+))/g;function Y$(e){return z$[vg.extname(e).toLowerCase()]}i(Y$,"resolveImageMediaType");var bg="[Image unavailable]";function q$(e){return`[Image #${e}]`}i(q$,"buildImageAnchor");function rc(e,t){let n=[],r=[],o=new Set,s=new Map,a=new Set,c=[],l=0;for(let m of e.matchAll(X$)){let p=m.index??l;c.push(e.slice(l,p));let g=m[1]??m[2]??m[3];if(!g){c.push(m[0]),l=p+m[0].length;continue}let x=Y$(g);if(!x){c.push(m[0]),l=p+m[0].length;continue}let y=vg.resolve(t,g);try{if(!V$.statSync(y).isFile()){a.has(y)||(r.push(`[Image input skipped] ${g} is not a file.`),a.add(y)),c.push(bg),l=p+m[0].length;continue}}catch{a.has(y)||(r.push(`[Image input missing] ${g} was not found from ${t}.`),a.add(y)),c.push(bg),l=p+m[0].length;continue}if(!o.has(y)){o.add(y);let C=q$(n.length+1);s.set(y,C),n.push({kind:"image",path:y,mediaType:x,source:"user-inline",description:`Attached image ${vg.basename(y)}`})}c.push(s.get(y)??bg),l=p+m[0].length}c.push(e.slice(l));let u=c.join("");return{promptText:u,messageContent:By(u,n),inputArtifacts:n,warnings:r}}i(rc,"preparePromptInputArtifacts");function OC(e){let t=Q$(e.stage),n=J$(e);return{type:"info",icon:"\u{1F4E1}",text:n?`[RepoIntel] ${t} \xB7 ${n}`:`[RepoIntel] ${t}`,tightSpacing:!0}}i(OC,"createRepoIntelTraceHistoryItem");function Q$(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(Q$,"stageDisplayName");function J$(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(`${Z$(r.capsuleEstimatedTokens)} tokens`)),t.length===0&&e.summary?eL(e.summary):t.join(" \xB7 ")}i(J$,"buildRepoIntelDetailLine");function Z$(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}i(Z$,"formatTokens");function eL(e){return e.replace(/^stage=[^|]+\|\s*/,"").trim()}i(eL,"stripSummaryStagePrefix");function tL(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(tL,"formatHarnessProfileShort");function DC(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(DC,"mergeLiveThinkingContent");function oc(e,t){let n=t?.expanded?e.detailNote??e.note:e.note,r=tL(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(oc,"formatManagedTaskBreadcrumb");function NC(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(NC,"buildManagedRunContext");var nL=["global","mode","navigation","editing"],rL={global:["showHelp","interrupt"],mode:["toggleThinking","toggleTranscriptMode","togglePermissionMode","toggleAgentMode"],navigation:["openTranscriptSearch","historyUp","historyDown","moveToStart","moveToEnd"],editing:["acceptCompletion","cancelInput","newline","killLineRight","killLineLeft","deleteWordLeft"]},oL={global:"Global",mode:"Modes",navigation:"Navigation",editing:"Editing"},iL={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 sL(e){let t=tr(),n=t.getAllShortcuts().find(o=>o.definition.id===e);if(n?.effectiveBindings?.length)return t.formatBindings(n.effectiveBindings);let r=Ts.find(o=>o.id===e);if(r?.defaultBindings?.length)return t.formatBindings(r.defaultBindings)}i(sL,"resolveShortcutBindingLabel");function aL(e){return`${sL(e.id)??e.id} ${e.name}`}i(aL,"buildMenuItemLabel");function cL(e){return tr().getAllShortcuts().find(r=>r.definition.id===e)?.definition??Ts.find(r=>r.id===e)}i(cL,"resolveShortcutDefinition");function $d(){return[...nL.map(t=>{let n=rL[t].map(r=>cL(r)).filter(r=>!!r).map(r=>({id:r.id,label:aL(r)}));return{id:t,title:oL[t],items:n}}).filter(t=>t.items.length>0),iL]}i($d,"buildHelpMenuSections");var Ig=2,BC=1,HC=4;function Je(e,t){let n=zt(e.length>0?e.split(`
|
|
303
|
+
`):[""],Math.max(1,t),0,0);return Math.max(1,n.visualLines.length)}i(Je,"wrapLineCount");function lL(e,t,n=">"){let r=n.length+1,o=Math.max(20,t-r),s=zt(e.length>0?e.split(`
|
|
304
|
+
`):[""],o,0,0);return Math.max(1,s.visualLines.length)+2}i(lL,"calculateInputPromptRows");function FC(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:g,suggestionsReserved:x,suggestionsMode:y="inline",showHelp:C,statusBarText:w,confirmPrompt:b,confirmInstruction:P,uiRequest:L,dialogMode:U="inline",historySearch:D,maxVisibleSelectOptions:O=5,reviewHint:I,todoSurfaceRows:ce=0,activityBarVisible:ye=!1}=e,F=Math.max(0,Math.floor(ce)),z=a?Je(a,Math.max(1,n-2)):0,v=c?Je(c,Math.max(1,n-2)):0,M=ye?Math.max(1,v):v,re=l?Je(l,Math.max(1,n-2)):0,xe=u?Je(u,Math.max(1,n-2)):0,Re=m?Je(m,Math.max(1,n-2)):0,Te=p?Je(p,Math.max(1,n-2)):0,le=g?Je(g,Math.max(1,n-2)):0,$e=lL(o,n,s),J=x?8:0,Y=C?BC+HC+$d().reduce((_,W)=>_+Je(W.title,Math.max(1,n-Ig))+Je(W.items.map(ee=>ee.label).join(" | "),Math.max(1,n-Ig)),0):0,q=Je(w,Math.max(1,n-2)),Ge=0;if(b&&P){let _=Math.max(1,n-4);Ge=3+Je(`[Confirm] ${b}`,_)+Je(P,_)}let Se=0,_e=0;if(L){let _=Math.max(1,n-4);L.kind==="select"?(_e=Math.min(O,L.options.length),Se=3+Je(`[Select] ${L.title}`,_)+L.options.slice(0,_e).reduce((W,ee,Le)=>W+Je(`${Le+1}. ${ee.label}${ee.description?` - ${ee.description}`:""}`,_),0)+(L.options.length>_e?2:0)+Je(`Choice: ${L.buffer||"(type a number)"}`,_)+1+(L.error?Je(L.error,_):0)):Se=3+Je(`[Input] ${L.prompt}`,_)+(L.defaultValue!==void 0?Je(`Default: ${L.defaultValue}`,_):0)+Je(`Value: ${L.buffer||"(type your response)"}`,_)+1+(L.error?Je(L.error,_):0)}let Ee=0;if(D){let _=Math.max(1,n-4);Ee=3+Je(`Query: ${D.query||"(type to search)"}`,_)+(D.matchCount===0?Je("No matches yet",_):Je(`${Math.max(1,D.matchCount)} matches`,_)+Je(D.selectedExcerpt||"",_))+1}let dt=I?Je(I,Math.max(1,n-2)):0,we=z+M+F+re+xe+Re+$e+Y+Te+dt+(y==="inline"?J:0)+(U==="inline"?Ge+Se+Ee:0),Ze=(y==="overlay"?J:0)+(U==="overlay"?Ge+Se+Ee:0),et=we+le+q,ie=Math.max(1,t-et);return{messageRows:ie,reservedBottomRows:et,headerRows:z,activityRows:M,pendingInputRows:re,stashNoticeRows:xe,notificationRows:Re,workStripRows:le,inputRows:$e,suggestionsRows:J,helpRows:Y,statusNoticeRows:Te,statusRows:q,confirmRows:Ge,uiRequestRows:Se,historySearchRows:Ee,footerRows:we,overlayRows:Ze,visibleSelectOptions:_e,reviewHintRows:dt,todoSurfaceRows:F,slots:[{name:"transcript",rows:ie},{name:"footer",rows:we},{name:"overlay",rows:Ze},{name:"status",rows:q},{name:"task-bar",rows:le}]}}i(FC,"calculateViewportBudget");function WC(e,t={}){let n=Ai(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(WC,"createTranscriptDisplayState");function UC(e){return{...e,surface:"transcript",jumpToLatestAvailable:e.pendingLiveUpdates>0}}i(UC,"enterTranscriptMode");function jC(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(jC,"exitTranscriptMode");function GC(e,t){let n=Math.max(0,t);return{...e,pendingLiveUpdates:n,jumpToLatestAvailable:e.surface==="transcript"?n>0:e.scrollAnchor>0}}i(GC,"setTranscriptPendingLiveUpdates");function KC(e,t){let n=Math.max(0,t);return{...e,scrollAnchor:n,jumpToLatestAvailable:e.surface==="transcript"?e.pendingLiveUpdates>0:n>0}}i(KC,"setTranscriptScrollAnchor");function VC(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}i(VC,"jumpTranscriptToLatest");function zC(e,t){return{...e,stickyPromptVisible:t}}i(zC,"setTranscriptStickyPromptVisible");function Cs(e,t){return{...e,selectedItemId:t,selectionMode:t?"message":"none"}}i(Cs,"setTranscriptSelectedItem");function XC(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(XC,"openTranscriptSearch");function YC(e){return{...e,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0}}i(YC,"closeTranscriptSearch");function qC(e,t){return{...e,currentMatchIndex:Math.max(-1,t)}}i(qC,"setTranscriptSearchMatchIndex");function QC(e){return e.supportsFullscreenLayout&&e.ownsViewportByDefault}i(QC,"shouldWindowTranscript");function JC(e){return e.surface==="transcript"}i(JC,"shouldPauseLiveTranscript");function kg(e){return e.supportsSelection}i(kg,"ownsTranscriptSelectionPath");function Ld(e,t,n){if(!(!kg(e)||!n))return t.includes(n)?n:void 0}i(Ld,"resolveTranscriptSelectedItemId");function ZC(e){return e.supportsSelection&&e.supportsCopyOnSelect}i(ZC,"supportsPassiveTranscriptCopyOnSelect");function eb(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(eb,"buildTranscriptBrowseHint");var tb="Slash commands cannot be queued mid-task. Press Esc to abort the current task, then run the command.",nb="slash-guard";function rb(e){return e.trimStart().startsWith("/")}i(rb,"isSlashCommandText");var uL=`
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
`;async function ob(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(uL),await s?.(c),l=await n(c)}}i(ob,"runQueuedPromptSequence");function sb(e){return e.itemsLength>0||e.currentResponse.length>0||e.thinkingContent.length>0||e.activeToolCallsLength>0}i(sb,"hasTranscriptInputActivity");function dL(e){return e.keyName==="mouse"&&e.hasMouse&&e.usesManagedMouseClicks&&e.supportsMouseTracking&&e.usesRendererMouseTracking}i(dL,"shouldHandleManagedTranscriptMouse");function ib(e){return e.usesManagedMouseWheel&&e.supportsWheelHistory&&e.hasTranscript}i(ib,"shouldHandleManagedTranscriptWheel");function ab(e){if(dL({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"?ib({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?{kind:"scroll-by",delta:e.reviewWheelStep}:{kind:"none"}:e.keyName==="wheeldown"?ib({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(ab,"resolveTranscriptPointerAction");function fL(e){return e.isTranscriptMode&&e.hasTextSelection}i(fL,"shouldDeferInterruptToTranscriptSelectionCopy");function cb(e){return e.ctrl&&e.keyName==="c"?fL({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(cb,"resolveStreamingInterruptAction");function lb(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(lb,"resolveTranscriptKeyboardAction");function ub(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(ub,"executeTranscriptKeyboardAction");function Uo(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(Uo,"stripAnsi");function mL(e){return e.tools.map(n=>`tool: ${n.name}`).join(`
|
|
309
|
+
`)}i(mL,"serializeToolGroup");function pL(e){switch(e.type){case"thinking":return null;case"user":return`user: ${Uo(e.text)}`;case"assistant":return`assistant: ${Uo(e.text)}`;case"system":return`system: ${Uo(e.text)}`;case"info":return`info: ${Uo(e.text)}`;case"error":return`error: ${Uo(e.text)}`;case"event":return`event: ${Uo(e.text)}`;case"hint":return`hint: ${Uo(e.text)}`;case"tool_group":return mL(e);default:return e}}i(pL,"serializeOne");function gL(e){let t=[];for(let n of e){let r=pL(n);r!==null&&r!==""&&t.push(r)}return t.join(`
|
|
310
|
+
|
|
311
|
+
`)}i(gL,"serializeTranscriptForScrollback");function db(e){let{items:t,writeToScrollback:n,exitAltScreen:r,enterAltScreen:o}=e,s=gL(t);r(),s.length>0&&n(`${s}
|
|
312
|
+
`),o()}i(db,"dumpTranscriptToNativeScrollback");function hL(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(`
|
|
313
|
+
`)}).join(`
|
|
314
|
+
`);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return e.text;default:return""}}i(hL,"buildSearchText");function yL(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(yL,"buildExcerpt");function fb(e){return e.map((t,n)=>({itemId:t.id,itemIndex:n,searchText:hL(t)}))}i(fb,"createTranscriptSearchIndex");function mb(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:yL(o,t.trim())}]:[]}):[]}i(mb,"searchTranscriptIndex");function Rg(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(Rg,"stepTranscriptSearchMatch");function pb(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(pb,"buildTranscriptSearchSummary");function gb(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(gb,"resolveTranscriptSearchMatchIndex");function hb(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:xL(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(hb,"buildTranscriptSelectionSummary");function xL(e){return e.tools.length===1?`Tool call: ${e.tools[0]?.name??"tool"}`:`Tool group: ${e.tools.length} calls`}i(xL,"summarizeToolGroup");function yb(e){return e.map(t=>t.id)}i(yb,"getSelectableTranscriptItemIds");function xb(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(xb,"moveTranscriptSelection");function Eg(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(`
|
|
315
|
+
`)}).join(`
|
|
316
|
+
|
|
317
|
+
`);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return e.text;default:return}}i(Eg,"buildTranscriptCopyText");function wb(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(`
|
|
318
|
+
`)}).filter(n=>!!n);return t.length>0?t.join(`
|
|
319
|
+
|
|
320
|
+
`):void 0}i(wb,"buildTranscriptToolInputCopyText");import{useCallback as ic,useRef as wL,useState as Tb}from"react";function Sb(e){let{state:t,ownsViewport:n,isAwaitingUserInteraction:r,isHistorySearchActive:o,isTranscriptMode:s,historySearchQuery:a}=e,c=eb(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(Sb,"buildTranscriptChromeModel");function Cb(e){return Math.max(1,e-2)}i(Cb,"resolveTranscriptPageSize");function bb(e){return Math.max(3,Math.floor(e/4))}i(bb,"resolveTranscriptWheelStep");function TL(e,t){return Math.max(0,e+t)}i(TL,"incrementTranscriptScrollOffset");function vb(e,t,n){let r=Math.max(0,t-n);return Math.min(Math.max(0,e),r)}i(vb,"clampTranscriptScrollOffset");function Ib(){let e=wL(null),[t,n]=Tb(0),[r,o]=Tb(!0),s=ic(m=>{n(Math.max(0,m))},[]),a=ic(m=>{o(m)},[]),c=ic(m=>{if(e.current){e.current.scrollTo(m);return}n(Math.max(0,m)),o(m===0)},[]),l=ic(m=>{if(e.current){e.current.scrollBy(m);return}n(p=>TL(p,m)),o(!1)},[]),u=ic(()=>{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(Ib,"useTranscriptViewportScrollController");function kb(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??us(t,r,o,u,l)).find(y=>y.key===a);if(!p||p.rows.length===0)return!1;let g=new Set(c.map(y=>y.key)),x=Math.max(0,s??0);return x>0&&p.rows.length<=x?p.rows.every(y=>g.has(y.key)):g.has(p.rows[0]?.key??"")}i(kb,"isTranscriptItemVisible");function Rb(e){let{items:t,renderModel:n,terminalWidth:r,transcriptMaxLines:o,viewportRows:s,itemId:a,expandedItemKeys:c,showDetailedTools:l=!1}=e,u=n?.sections??us(t,r,o,l,c);return IS(u,a,s)}i(Rb,"resolveTranscriptSelectionOffset");function Eb(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??us(t,o,s,u,l),g=n?.rows??Do(p),y=Lp(g,a,c)[0]?.key,C=y?p.find(w=>w.rows.some(b=>b.key===y)):void 0;if(C?.key)return C.key}return t[t.length-1]?.id}i(Eb,"resolveTranscriptSearchAnchorItemId");function Mb(e){let t=va(e.stickyHeader),n=iu(t,e.width),r=Math.max(0,e.topChromeRows??0);return{contentWindow:e.window,topOffsetRows:n+r,stickyHeaderRows:n,topChromeRows:r}}i(Mb,"resolveTranscriptOwnedWindowGeometry");function SL(e){return e.text===" "?"":e.text}i(SL,"normalizeTranscriptRowText");function Mg(e){let t=new Map;return e.forEach((n,r)=>{t.set(n.key,r)}),t}i(Mg,"buildTranscriptRowIndexByKey");function CL(e,t={}){let n=Math.max(0,e.indent??0),r=e.spinner&&t.animateSpinners!==!1?2:0;return 1+n+r}i(CL,"resolveTranscriptTextStartColumn");function Ab(e,t={}){let n=Math.max(0,t.topOffsetRows??0),r=t.rowIndexByKey??Mg(t.allRows??e),o=e.map((s,a)=>{let c=SL(s),l=CL(s,t),u=Vr(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+ES(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(Ab,"buildTranscriptScreenBuffer");function bL(e,t){let n=Math.max(1,Math.floor(t));return MS(e.text,n-e.textStartColumn)}i(bL,"clampTextColumn");function Ag(e,t){return{screenRow:e,point:{rowKey:e.key,modelRowIndex:e.modelRowIndex,column:bL(e,t)}}}i(Ag,"toHit");function _g(e,t,n){let r=e.rows.find(o=>o.screenRow===t);return r?Ag(r,n):void 0}i(_g,"hitTestTranscriptScreen");function Pg(e,t,n){if(e.rows.length!==0)return t<=e.topRow?Ag(e.rows[0],n):t>=e.bottomRow?Ag(e.rows[e.rows.length-1],n):_g(e,t,n)}i(Pg,"clampTranscriptScreenHit");function _b(e){return e.text===" "?"":e.text}i(_b,"normalizeTranscriptRowText");function Pb(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i(Pb,"comparePoints");function $b(e,t,n,r={}){if(e.length===0)return;let[o,s]=Pb(t,n)<=0?[t,n]:[n,t],a=r.selectFullRowOnCollapsed===!0,c=Pb(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:Vr(_b(u))}:s,g=new Map,x=[],y=0;for(let C=m.modelRowIndex;C<=p.modelRowIndex;C+=1){let w=e[C];if(!w)continue;let b=_b(w),P=Vr(b),L=C===m.modelRowIndex?m.column:0,U=C===p.modelRowIndex?p.column:P,D=Math.max(0,Math.min(L,P)),O=Math.max(D,Math.min(U,P)),I=ds(b,D,O);O>D&&(g.set(w.key,{start:D,end:O}),y+=O-D),x.push(I)}if(g.size!==0)return{anchor:t,focus:n,rowRanges:g,rowCount:x.length,charCount:y,text:x.join(`
|
|
321
|
+
`)}}i($b,"buildTranscriptScreenSelection");function Lb(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(Lb,"buildTranscriptScreenSelectionSummary");function Ob(e,t){return e.rows.length===0?0:t<e.topRow?1:t>e.bottomRow?-1:0}i(Ob,"resolveTranscriptDragEdgeScrollDirection");function Od(e){return e?e.map(t=>({label:t.label,value:t.value,description:t.description})):[]}i(Od,"toSelectOptions");function $g(e){return e.question}i($g,"getAskUserDialogTitle");function vL(e){switch(e){case"confirm":return Z("waiting.confirm");case"select":return Z("waiting.select");case"input":return Z("waiting.input")}}i(vL,"formatPromptWaitingText");function Db(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(Db,"buildPromptPlaceholderText");function Nb(e){if(e.isTranscriptMode)return;if(e.waitingReason)return{kind:"waiting",text:vL(e.waitingReason),showSpinner:!1};if(!e.isLoading)return;let t=Dp({activeToolCount:e.streamingState.activeToolCalls.filter(n=>n.status===$.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(Nb,"buildPromptActivityViewModel");function Bb(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===$.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(Bb,"buildSurfaceStatusBarProps");function Hb(e){let t=kg(e.state),n=t?Ld(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&&ZC(e.state)},toggleDetail:t&&!!n,navigationCapabilities:{selection:t&&!!n&&e.selectableItemIds.length>0}}}i(Hb,"buildTranscriptSelectionRuntimeState");function Fb(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(Fb,"buildTranscriptSelectionViewModel");function Wb(e){return{query:e.query,matches:e.matches,currentMatchIndex:e.currentMatchIndex,anchorItemId:e.anchorItemId,statusText:e.useOverlaySurface?void 0:e.statusText}}i(Wb,"buildTranscriptSearchViewModel");function IL(e,t){return e===0?0:t<0?-1:Math.min(t,e-1)}i(IL,"clampTranscriptSearchSelectedIndex");function kL(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(kL,"buildTranscriptSearchDetailText");function Ub(e){let t=IL(e.matches.length,e.selectedIndex),n=pb(e.matches,t),r=kL({isHistorySearchActive:e.isHistorySearchActive,historySearchQuery:e.historySearchQuery,matches:e.matches,clampedSelectedIndex:t});return{clampedSelectedIndex:t,statusText:n,detailText:r,searchState:Wb({query:e.historySearchQuery,matches:e.matches,currentMatchIndex:t,anchorItemId:e.anchorItemId,statusText:n,useOverlaySurface:e.useOverlaySurface})}}i(Ub,"buildTranscriptSearchChrome");function RL(e=!1){return`\u2190/\u2192 enter select mode | Ctrl+E ${e?"collapse":"show all"} | Mouse drag selects text`}i(RL,"buildDefaultTranscriptSecondaryText");function jb(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(jb,"buildFooterNotifications");function Gb(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(Gb,"buildBaseFooterNotices");function Kb(e){if(e.inputText.trim()&&(e.isTranscriptMode||e.isHistorySearchActive))return"Draft preserved while viewing transcript"}i(Kb,"buildStashNoticeText");function Vb(e){return[...e]}i(Vb,"buildPromptFooterNotices");function EL(e){let n=(e.isHistorySearchActive?[e.historySearchDetailText]:[e.selectionSummary,e.actionSummary]).filter(r=>!!(r&&r.trim().length>0));return n.length===0?RL(e.showAllActive):n.join(" | ")}i(EL,"buildTranscriptFooterSecondaryText");function ML(e){let t=[];return e&&t.push(e),t}i(ML,"buildTranscriptFooterBudgetNotices");function zb(e){let t=e.selectionState?.copyCapabilities,n=e.selectionState?.navigationCapabilities,o=Lb(e.textSelection),s=e.textSelection?ms({copyMessage:!0,copyToolInput:!1,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!1,selectionNavigation:!1,matchNavigation:!1,dismissAction:"clear"}):e.selectionState?.itemSummary?ms({copyMessage:!!t?.message,copyToolInput:!!t?.toolInput,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!!e.selectionState?.toggleDetail,selectionNavigation:!!n?.selection,matchNavigation:!1,dismissAction:"clear"}):void 0,a=EL({isHistorySearchActive:e.isHistorySearchActive,historySearchDetailText:e.historySearchDetailText,selectionSummary:o,actionSummary:s,showAllActive:e.showAllActive,baseFooterNotices:e.baseFooterNotices});return{selectionSummary:o,actionSummary:s,secondaryText:a,budgetNotices:ML(a)}}i(zb,"buildTranscriptFooterViewModel");import{jsx as Y3,jsxs as q3}from"react/jsx-runtime";function Xb(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(Xb,"formatAmaWorkStripText");function Yb(e){return e.replace(/^\[[^\]]+\]\s*/,"").trim()}i(Yb,"stripLiveActivityPrefix");function qb(e){let t=[],n=e.showPrimary??!0;if(e.isLoading&&n){let l=e.currentTool?Yb(Uu(e.currentTool,e.toolInputContent??"",e.toolInputCharCount??0)):void 0,u=e.liveActivityLabel?Yb(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(qb,"buildBackgroundTaskViewModel");function Qb(e,t){if(!(!t||!e||e.agentMode!=="ama"))return Xb(e.childFanoutClass,e.childFanoutCount)}i(Qb,"buildAmaWorkStripFromStatus");function Lg(e){let t=Qb(e.status,e.isLoading);return{workStripText:t,backgroundTask:qb({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(Lg,"buildAmaSummaryViewModel");function Og(e){return{...e,items:[...e.items],managedLiveEvents:[...e.managedLiveEvents??[]]}}i(Og,"captureTranscriptSnapshot");function Jb(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(Jb,"countPendingTranscriptUpdates");function Zb(e){return e.snapshot?[...e.snapshot.items]:e.surface==="transcript"?[...e.transcriptItems]:[...e.promptItems]}i(Zb,"resolveTranscriptSurfaceItems");function e0(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(e0,"buildPromptSurfaceItems");function t0(e,t){return e.enabled?t==="transcript"?e.transcriptShell:e.promptShell:"main-screen"}i(t0,"resolveFullscreenShellMode");function AL(e,t){return e.enabled&&t0(e,t)==="virtual"}i(AL,"shouldUseRendererViewportShell");function n0(e,t){let n=t0(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(n0,"resolveTranscriptInteractionPolicy");function r0(e,t,n){return AL(e,t)?t==="transcript"||n:!1}i(r0,"shouldOwnTranscriptViewport");var _L=500,PL=1,$L=/[\p{L}\p{N}_/.\-+~\\]/u;function LL(e){return e.text===" "?"":e.text}i(LL,"normalizeTranscriptRowText");function o0(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}i(o0,"comparePoints");function Dg(e){return e===""||/\s/.test(e)?0:$L.test(e)?1:2}i(Dg,"charClass");function i0(e){let t=e.timeoutMs??_L,n=e.distance??PL,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(i0,"resolveTranscriptMultiClickState");function Dd(e,t,n){let r=e[t.modelRowIndex];if(!r)return;let o=LL(r);if(n==="line")return{kind:n,start:{...t,column:0},end:{...t,column:Vr(o)}};let s=Vr(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=Dg(Yu(o,a)),l=a,u=a+1;for(;l>0&&Dg(Yu(o,l-1))===c;)l-=1;for(;u<s&&Dg(Yu(o,u))===c;)u+=1;return{kind:n,start:{...t,column:l},end:{...t,column:u}}}i(Dd,"resolveTranscriptSelectionSpanAt");function Ng(e,t){return o0(t.end,e.start)<0?{anchor:e.end,focus:t.start}:o0(t.start,e.end)>0?{anchor:e.start,focus:t.end}:{anchor:e.start,focus:e.end}}i(Ng,"extendTranscriptSelectionSpan");var a0="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 Bg(e,t){if(Yt(e))return[t.getGuardrail()]}i(Bg,"buildAutoModeGuardrails");function DL(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:e.thinking===!0||t.thinking===!0?"auto":"off"}i(DL,"resolveInitialReasoningMode");function c0(e){let t=e.managedTask;if(!t)return[];let n=i(u=>{if(!e.interrupted&&!t.verdict.signalReason?.includes("Orchestration cancelled"))return!1;let m=u.signalReason?.trim()??"",p=u.summary?.trim()??"",g=u.output?.trim()??"",x=m.includes("Orchestration cancelled"),y=p.includes("Orchestration cancelled"),C=!g||p==="No textual output produced.";return u.status!=="completed"&&(x||y||C)||(x||y)&&C},"isInterruptedCancellation"),r=BL(t),o=new Map(t.roleAssignments.map((u,m)=>[u.id,m])),s=t.verdict.decidedByAssignmentId,a=Math.max(0,...t.evidence.entries.filter(u=>u.assignmentId===s).map(u=>u.round??1)),c=[...t.evidence.entries].sort((u,m)=>{let p=(u.round??1)-(m.round??1);return p!==0?p:(o.get(u.assignmentId)??0)-(o.get(m.assignmentId)??0)}).filter(u=>!n(u)).filter(u=>e.interrupted||!(u.assignmentId===s&&(u.round??1)===a)).map(u=>{let m=u.output?.trim()??"",p=u.summary?.trim()??"",g=m?Ro(m):"",x=p?Ro(p):"",y=u.role==="scout"?x?`Scout completed: ${x}`:"Scout completed.":x;return{entry:u,text:x||g||y}}).filter(({text:u})=>!!u).map(({entry:u,text:m})=>{let p=u.role==="scout"?" Preflight":(u.round??1)>1?` Round ${u.round}`:"";return`[${u.title??u.assignmentId}${p}]
|
|
322
|
+
${m}`}),l=t.verdict.disposition==="complete"?Z("managed.completed"):t.verdict.disposition==="needs_continuation"?Z("managed.completed.continuation"):t.verdict.disposition==="blocked"?Z("managed.completed.blocked"):void 0;return[...r?[r]:[],...c,...l?[`[${l}]`]:[]]}i(c0,"buildManagedTaskTranscriptItems");function NL(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(NL,"buildManagedTranscriptCompactText");function g0(e){return e===`[${Z("managed.completed")}]`||e===`[${Z("managed.completed.blocked")}]`||e===`[${Z("managed.completed.continuation")}]`}i(g0,"isCompletionTranscriptItem");function l0(e){let t=NL(e);return{type:"event",icon:g0(e)?"\u2713":">",text:e,...t&&t!==e?{compactText:t}:{}}}i(l0,"toManagedTranscriptEventItem");function jo(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(jo,"toCreatableHistoryItem");function BL(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(`
|
|
323
|
+
`)}i(BL,"buildManagedTaskRoutingTranscript");function HL(e,t=240){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(HL,"truncateToolPreview");function FL(e,t=800){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}i(FL,"truncateToolOutputPreview");function Ug(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(Ug,"formatManagedLiveActivityLabel");function qr(e,t){return Ug(`[Tools] ${Fu(e)}`,t)??`[Tools] ${Fu(e)}`}i(qr,"formatManagedLiveToolLabel");function Hg(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(Hg,"areManagedLiveItemsEquivalent");function WL(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(WL,"localizeManagedCompletionSummary");function UL(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&&!Hd)return r;let p=m?`[${WL(s)}]`:void 0,g=p??s,x=p??a;return r.push({item:{id:c,type:"event",timestamp:l,text:x,icon:o.kind==="warning"?"!":m?"\u2713":">",...g!==x?{compactText:g}:{}},persistToHistory:u}),r},[]);if(e.phase==="completed"&&!Hd)return[];let t=oc(e),n=oc(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(UL,"buildManagedLiveEventDrafts");function h0(e){return e.replace(/^\[[^\]]+\]\s+/,"").replace(/^[A-Za-z][A-Za-z0-9_-]*:\s*/,"").trim()}i(h0,"stripToolRolePrefix");function u0(e){return h0(e).toLowerCase()}i(u0,"normalizeToolNameForMatch");function jg(e){return gT(e)?"":Ro(e).trim()}i(jg,"sanitizeInterruptedAssistantText");function d0(e){return!!(e?.activeWorkerId&&!e.childFanoutClass&&(e.phase==="preflight"||e.phase==="worker"))}i(d0,"isForegroundManagedStreamingStatus");function jL(e,t,n){let r=[],o=n?.infoItems??[],s=Gg({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=jg(t);return a&&r.push({type:"assistant",text:`${a}
|
|
324
|
+
|
|
325
|
+
[Interrupted]`}),r}i(jL,"buildInterruptedPersistenceItems");function Gg({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(Gg,"buildRoundHistoryItems");function y0(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(y0,"toPersistedUiHistoryItem");var f0=150,m0=50,Hd=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1";function Go(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>m0){let r=t[t.length-m0]??0;n=e.slice(r)}if(n.length>f0){let r=n.slice(-f0),o=r.findIndex(s=>s.type==="user");n=o>0?r.slice(o):r}return[...n]}i(Go,"trimPersistedUiHistorySnapshot");function bs(e){if(e)return Go(e)}i(bs,"normalizePersistedUiHistory");function p0(e){return Go(e.map(t=>y0(t)).filter(t=>!!t))}i(p0,"serializeUiHistorySnapshot");function GL(e){return e.map(t=>y0(t)).filter(t=>!!t)}i(GL,"serializeCreatableHistoryItems");function Nd(e,t){return t.length===0?Go(e):Go([...e,...GL(t)])}i(Nd,"appendPersistedUiHistorySnapshot");function Bd(e,t,n){console.log((e==="block"?Xe.red:Xe.yellow)(t)),n.forEach(r=>console.log(Xe.dim(r)))}i(Bd,"logSessionTransitionGuard");var Fg=i(({config:e,sessionId:t,workingDir:n,terminalWidth:r,compactionInfo:o})=>{let s=te("dark"),a=e.model??jn(e.provider)??e.provider,c=mo(e.provider,e.model),l=bl(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 Gt(k,{flexDirection:"column",marginBottom:1,children:[fg.map((g,x)=>se(S,{color:s.colors.primary,children:g},x)),Gt(k,{children:[Gt(S,{bold:!0,color:s.colors.text,children:[" v",vi]}),se(S,{dimColor:!0,children:" | "}),Gt(S,{color:s.colors.success,children:[e.provider,"/",a]}),se(S,{dimColor:!0,children:` [${l}]`}),se(S,{dimColor:!0,children:" | "}),se(S,{color:s.colors.primary,children:e.agentMode.toUpperCase()}),se(S,{dimColor:!0,children:" | "}),se(S,{color:s.colors.accent,children:e.permissionMode}),e.reasoningMode!=="off"&&se(S,{color:s.colors.warning,children:` +reason:${e.reasoningMode}`})]}),o&&Gt(k,{children:[se(S,{dimColor:!0,children:" Context: "}),Gt(S,{dimColor:!0,children:[m,"k"]}),se(S,{dimColor:!0,children:" | Compaction: "}),se(S,{color:o.enabled?s.colors.success:void 0,dimColor:!o.enabled,children:o.enabled?"on":"off"}),se(S,{dimColor:!0,children:` @ ${o.triggerPercent}% (${p}k)`})]}),Gt(S,{dimColor:!0,children:[" ","-".repeat(u)]}),Gt(k,{children:[se(S,{dimColor:!0,children:" Session: "}),se(S,{color:s.colors.accent,children:t}),se(S,{dimColor:!0,children:" | Working: "}),se(S,{dimColor:!0,children:n})]}),Gt(S,{dimColor:!0,children:[" ","-".repeat(u)]})]})},"Banner");function KL(e){let t=e.config.model??jn(e.config.provider)??e.config.provider,n=mo(e.config.provider,e.config.model),r=bl(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${vi} | ${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=[],g=i(y=>{let C=zt(y.length>0?y.split(`
|
|
326
|
+
`):[""],Math.max(1,e.terminalWidth),0,0);return C.visualLines.length>0?C.visualLines:[""]},"wrapBannerLine"),x=i((y,C,w)=>{g(C).forEach((b,P)=>{p.push({key:`${y}-${P}`,text:b,...w})})},"pushLineRows");return fg.forEach((y,C)=>{x(`banner-logo-${C}`,y,{color:"primary"})}),x("banner-version",c,{color:"text",bold:!0}),l&&x("banner-compaction",l,{color:"dim"}),x("banner-divider-top",m,{color:"dim"}),x("banner-session",u,{color:"dim"}),x("banner-divider-bottom",m,{color:"dim"}),p.push({key:"banner-blank",text:" "}),{key:"banner",rows:p}}i(KL,"buildBannerTranscriptSection");function Wg(e,t){return t?{...e,sections:[t,...e.sections],rows:[...t.rows,...e.rows]}:e}i(Wg,"prependTranscriptSection");var VL=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:g})=>{let{exit:x}=Hr(),{stdout:y}=zn(),{stdin:C,setRawMode:w,isRawModeSupported:b}=Ca(),P=Yi(),{history:L}=Xa(),U=s0.useRef(null),D=s0.useRef(Uy()),{addHistoryItem:O,clearHistory:I,setSessionId:ce}=Ya(),ye=fe(L),F=fe(p0(L));He(()=>{ye.current=L,F.current=p0(L)},[L]),He(()=>{LC()},[]),He(()=>{AT()},[]);let z=y.columns||80,v=Ja(),M=fe(v);He(()=>{M.current=v},[v]);let{startStreaming:re,stopStreaming:xe,abort:Re,startThinking:Te,appendThinkingChars:le,appendThinkingContent:$e,stopThinking:J,clearThinkingContent:Y,setCurrentTool:q,appendToolInputChars:Ge,appendToolInputContent:Se,clearToolInputContent:_e,clearResponse:Ee,appendResponse:dt,getSignal:we,getFullResponse:Ze,getThinkingContent:et,startNewIteration:ie,clearIterationHistory:A,startCompacting:_,stopCompacting:W,setMaxIter:ee,addPendingInput:Le,removeLastPendingInput:tt,shiftPendingInput:Ce,consumePendingInputs:Ne}=Za(),[ve,Q]=We(!1),[N,Oe]=We(t),[Be,Kt]=We(!0),[rr,hc]=We(!0),[vn,yc]=We(0),[zd,Rs]=We(!1),[nh,or]=We(null),tv=de(()=>ho(),[]),xc=fe(null),wc=fe(null),rh=fe(Promise.resolve()),Tc=fe(null),Jr=fe({requested:!1,uiHistoryOverride:void 0}),Es=fe(null),Ms=fe(!1),As=fe(null),[Xd,Sc]=We(!0),[Yd,Cc]=We(""),[De,Nn]=We(()=>WC(tv,{rendererMode:o})),[Ct,qd]=We(!1),[nv,rv]=We(0),{scrollRef:ov,scrollOffset:In,sticky:Qd,setScrollOffset:iv,handleScrollTopChange:sv,handleStickyChange:av,scrollTo:bc,scrollBy:vc,scrollToBottom:Ic}=Ib(),Jd=fe(null),kc=fe(null),_s=fe([]),Rc=fe([]),Vo=fe(null),kn=fe(null),oh=fe({time:0,row:-1,column:-1,count:0}),[Ec,Zd]=We(void 0),[Zr,ef]=We(void 0),[zo,ih]=We(void 0),[Zt,cv]=We(()=>new Set),[tf,sh]=We(null),[Mt,ah]=We(null),[G,nf]=We(null),[Mc,Cr]=We([]),Xo=de(()=>{for(let f of Mc)if(f.status==="in_progress"){if(f.activeForm&&f.activeForm.length>0)return f.activeForm;if(f.content&&f.content.length>0)return f.content}},[Mc]),[X1,Ps]=We([]),[$s,lv]=We([]),[Ac,ut]=We(void 0),[eo,_c]=We(void 0),rt=fe(null),rf=fe(null),to=fe([]),Yo=fe([]),cn=fe([]),nt=fe({}),ft=fe({activeToolGroupTools:[]}),ch=fe(0),Pc=fe({itemId:void 0,kind:"thinking",pendingText:""}),Rn=fe(null),uv=80,dv=20,fv=fe(null),$c=de(()=>[...L,...$s],[L,$s]),of=de(()=>{let f=bS($c,fv);return f===0?$c:$c.slice(f)},[$c]),sf=de(()=>vS(of,dv),[of]),Ls=of,At=fe(null),Bn=fe(null),Hn=fe([]),_t=fe([]),[no,mv]=We([]),ir=fe([]),ln=V(f=>{ir.current=f,mv(f)},[]),lh=V(f=>{to.current=f,Ps(f)},[]),qo=V(f=>{cn.current=f,lv(f)},[]),uh=V(f=>{let h=f([...cn.current]);qo(h)},[qo]),dh=V(f=>{f.length!==0&&qo([...cn.current,...f])},[qo]),Lc=V(f=>{let h=ft.current,T=h.activeToolGroupTools.some(R=>R.status===$.Executing);ft.current={...f?.clearOwner?{}:{workerId:h.workerId,workerTitle:h.workerTitle},...T?{activeToolGroupItemId:h.activeToolGroupItemId,activeToolGroupTools:h.activeToolGroupTools}:{activeToolGroupTools:[]}},f?.clearOwner&&(nt.current={})},[]),Os=V(()=>{Pc.current={itemId:void 0,kind:"thinking",pendingText:""},Rn.current&&(clearTimeout(Rn.current),Rn.current=null),Lc({clearOwner:!0}),qo([])},[Lc,qo]),Oc=V(f=>(ch.current+=1,`managed-foreground-${f}-${ch.current}`),[]),un=V(f=>(dh([f]),f.id),[dh]),ro=V((f,h)=>{nt.current.workerId?un({id:`${h}-${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()}):O(f)},[O,un]),br=V((f,h)=>{if(!f)return;let T;return uh(R=>R.map(E=>E.id!==f?E:(T=h(E),T))),T},[uh]),Qo=V((f,h)=>{let T=ft.current;if(T.activeKind===f){if(f==="thinking"&&T.activeThinkingItemId)return T.activeThinkingItemId;if(f==="assistant"&&T.activeAssistantItemId)return T.activeAssistantItemId;if(f==="tool_group"&&T.activeToolGroupItemId)return T.activeToolGroupItemId}let R=Date.now(),E=h?.trim()?`[${h.trim()}] `:"",H=T.activeToolGroupTools.some(X=>X.status===$.Executing);if(f==="thinking"){let X=un({id:Oc("thinking"),type:"thinking",timestamp:R,text:E});return ft.current={...ft.current,activeKind:"thinking",activeThinkingItemId:X,activeAssistantItemId:void 0,...H?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},X}if(f==="assistant"){let X=un({id:Oc("assistant"),type:"assistant",timestamp:R,text:E});return ft.current={...ft.current,activeKind:"assistant",activeThinkingItemId:void 0,activeAssistantItemId:X,...H?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},X}let B=un({id:Oc("tool_group"),type:"tool_group",timestamp:R,tools:[]});return ft.current={...ft.current,activeKind:"tool_group",activeThinkingItemId:void 0,activeAssistantItemId:void 0,activeToolGroupItemId:B,activeToolGroupTools:[]},B},[un,Oc]),vr=V(()=>{Rn.current&&(clearTimeout(Rn.current),Rn.current=null);let f=Pc.current;if(!f.pendingText||!f.itemId)return;let h=f.pendingText,T=f.itemId,R=f.kind;f.pendingText="",br(T,E=>E.type!==R?E:{...E,text:`${E.text}${h}`})},[br]),fh=V(()=>{Rn.current||(Rn.current=setTimeout(vr,uv))},[vr]),Dc=V((f,h)=>{if(!h)return;let T=ft.current.workerTitle,R=Qo(f,T),E=Pc.current;E.itemId===R&&E.kind===f?E.pendingText+=h:(vr(),E.itemId=R,E.kind=f,E.pendingText=h),fh()},[Qo,vr,fh]),mh=V(f=>{let h=f.trim();if(!h)return;let T=Pc.current;T.kind==="thinking"&&T.pendingText&&(T.pendingText="",Rn.current&&(clearTimeout(Rn.current),Rn.current=null));let R=ft.current.workerTitle?.trim(),E=R?`[${R}] ${h}`:h,H=Qo("thinking",ft.current.workerTitle);br(H,B=>B.type==="thinking"?{...B,text:E}:B)},[Qo,br]),En=V(f=>{vr();let h=ft.current;if(h.activeToolGroupItemId&&h.activeToolGroupTools.some(B=>B.id===f.id)){let B=h.activeToolGroupTools.map(oe=>oe.id===f.id?f:oe),X=B.every(oe=>oe.status===$.Success||oe.status===$.Error||oe.status===$.Cancelled);ft.current={...h,...X?{activeToolGroupItemId:void 0,activeToolGroupTools:[]}:{activeToolGroupTools:B}},br(h.activeToolGroupItemId,oe=>oe.type==="tool_group"?{...oe,tools:B}:oe);return}let T=cn.current;for(let B=T.length-1;B>=0;B-=1){let X=T[B];if(X.type!=="tool_group"||!X.tools.some(he=>he.id===f.id))continue;let oe=X.tools.map(he=>he.id===f.id?f:he);br(X.id,he=>he.type==="tool_group"?{...he,tools:oe}:he);return}let R=Qo("tool_group",h.workerTitle),H=h.activeKind==="tool_group"&&h.activeToolGroupItemId===R?h.activeToolGroupTools.some(B=>B.id===f.id)?h.activeToolGroupTools.map(B=>B.id===f.id?f:B):[...h.activeToolGroupTools,f]:[f];ft.current={...ft.current,activeKind:"tool_group",activeToolGroupItemId:R,activeToolGroupTools:H},br(R,B=>B.type==="tool_group"?{...B,tools:H}:B)},[Qo,br,vr]),pv=V(f=>{vr();let h=ft.current,T=h.activeToolGroupTools.some(H=>H.status===$.Executing),R=ir.current.filter(H=>H.status===$.Executing),E=new Set(R.map(H=>H.id));ft.current={workerId:f?.workerId,workerTitle:f?.workerTitle,...T?{activeToolGroupItemId:h.activeToolGroupItemId,activeToolGroupTools:h.activeToolGroupTools}:{activeToolGroupTools:[]}},nt.current={workerId:f?.workerId,workerTitle:f?.workerTitle},Hn.current=[],_t.current=_t.current.filter(H=>E.has(H.id)),ln(R),_e(),q(void 0),J(),Y(),Ee(),ut(void 0)},[vr,_e,Ee,Y,q,ln,ut,J]),gv=V(f=>{if(f.length===0)return[];let h=[],T=[...to.current],R=[...Yo.current];for(let E of f){let H=E.item,B=T.findIndex(X=>X.id===H.id);if(B>=0){let X=T[B];Hg(X,H)||(T=T.map((oe,he)=>he===B?{...H,timestamp:X.timestamp}:oe))}else T=[...T,H].slice(-12),h.push(H);if(E.persistToHistory){let X=R.findIndex(oe=>oe.id===H.id);if(X>=0){let oe=R[X];Hg(oe,H)||(R=R.map((he,ct)=>ct===X?{...H,timestamp:oe.timestamp}:he))}else R=[...R,H].slice(-48)}}return Yo.current=R,(h.length>0||T.some((E,H)=>!Hg(E,to.current[H]??E)||E.id!==to.current[H]?.id))&&lh(T),h},[lh]),Nc=V(f=>{if(_t.current.findIndex(T=>T.id===f.id)===-1){_t.current=[..._t.current,f];return}_t.current=_t.current.map(T=>T.id===f.id?f:T)},[]),Ir=V(f=>{let h=ir.current.filter(T=>T.status===$.Executing);if(h.length!==0){if(f){let T=u0(f);for(let R=h.length-1;R>=0;R-=1){let E=h[R];if(u0(E.name)===T)return E}}return h[h.length-1]}},[]),Jo=V(()=>{let f=Ir();q(f?h0(f.name):void 0)},[Ir,q]),ph=V(f=>(Nc(f),ln([...ir.current.filter(h=>h.id!==f.id),f]),Jo(),f),[ln,Jo,Nc]),Zo=V((f,h)=>{let T=ir.current.find(E=>E.id===f);if(!T)return null;let R=h(T);return Nc(R),ln(ir.current.map(E=>E.id===f?R:E)),Jo(),R},[ln,Jo,Nc]),gh=V((f,h,T)=>{if(f){let E=Zo(f,T);if(E)return E}let R=Ir(h);return R?Zo(R.id,T):null},[Ir,Zo]),Bc=V((f,h,T,R,E)=>{let H=f??Ir(E)?.id;return H?Zo(H,B=>({...B,status:h,endTime:Date.now(),error:T,output:R})):null},[Ir,Zo]),Ds=V((f,h)=>{let T=Date.now(),R=new Map;for(let E of ir.current){if(E.status!==$.Executing)continue;let H=h(E);R.set(E.id,{...E,status:f,endTime:T,...H})}return R.size===0?[]:(_t.current=_t.current.map(E=>R.get(E.id)??E),ln(ir.current.map(E=>R.get(E.id)??E)),Jo(),[...R.values()])},[ln,Jo]),kr=V(()=>{ln([])},[ln]),{showHelp:hh,toggleHelp:hv,setShowHelp:yh}=gg(),yv=V(f=>{Cc(f),Sc(f.trim().length===0)},[]),Hc=Lo(),xh=de(()=>Hc?Hc.state.visible&&Hc.suggestions.length>0:!1,[Hc]),[Ns,wh]=We(!1),Th=fe(vn),Bs=V(()=>{At.current&&(clearTimeout(At.current),At.current=null),Bn.current&&(clearTimeout(Bn.current),Bn.current=null)},[]);He(()=>{xh&&!Ns&&wh(!0)},[xh,Ns]),He(()=>{vn!==Th.current&&(Th.current=vn,Ns&&wh(!1))},[vn,Ns]);let[Ye,Fc]=We(null),oo=fe(null),[Me,Mn]=We(null),Wc=fe(null),Uc=fe(Me);Uc.current=Me;let[Ft,ei]=We(""),[jc,An]=We(0),af=fe(""),Hs=fe(void 0),Sh=de(()=>{if(!c)return;let{contextWindow:f,triggerPercent:h}=c;return{currentTokens:nh??n.contextTokenSnapshot?.currentTokens??lo(n.messages),contextWindow:f,triggerPercent:h}},[n.messages,n.contextTokenSnapshot,c,nh]),Fs=de(()=>{if(!Ye)return;let f=!!Ye.input._alwaysConfirm,h=N.permissionMode==="accept-edits"&&!f;return f?Z("confirm.instruction.protected"):h?Z("confirm.instruction.always"):Z("confirm.instruction.basic")},[Ye,N.permissionMode]),ot=De.searchMode==="history",ne=De.surface==="transcript",Rr=!!Ye||!!Me||ot,ht=ne?Ct?xS:1e3:12,Er=n0(s,De.surface),Ch=Er.shellMode,cf=Er.usesAlternateScreenShell,ti=Er.usesRendererViewportShell,Gc=Er.usesRendererMouseTracking,bh=Er.usesManagedMouseClicks,vh=Er.usesManagedMouseWheel,lf=Er.usesManagedSelection,yt=r0(s,De.surface,QC(De)),Ih=JC(De),Kc=Ns&&!ne,kh=V(()=>Og({items:Ls,managedLiveEvents:[],isLoading:ve,isThinking:v.isThinking,thinkingCharCount:v.thinkingCharCount,thinkingContent:v.thinkingContent,currentResponse:v.currentResponse,currentTool:v.currentTool,activeToolCalls:no,toolInputCharCount:v.toolInputCharCount,toolInputContent:v.toolInputContent,lastLiveActivityLabel:Ac,workStripText:eo,iterationHistory:v.iterationHistory,currentIteration:v.currentIteration,isCompacting:v.isCompacting}),[Ls,ve,v.isThinking,v.thinkingCharCount,v.thinkingContent,v.currentResponse,v.currentTool,no,v.toolInputCharCount,v.toolInputContent,Ac,eo,v.iterationHistory,v.currentIteration,v.isCompacting]);He(()=>{if(ne){sh(f=>f??kh());return}sh(null)},[kh,ne]);let Ws=de(()=>Jb({isTranscriptMode:ne,snapshot:tf,currentItemsLength:Ls.length,currentManagedLiveEventsLength:0,isLoading:ve,currentResponse:v.currentResponse,thinkingContent:v.thinkingContent,activeToolCallsLength:no.length}),[no.length,ve,ne,Ls.length,v.currentResponse,v.thinkingContent,tf]),Pt=ne?tf:null,uf=de(()=>e0(sf),[sf]),xv=de(()=>!!($s.length>0||d0(G)),[$s.length,G]),Vc=$s.length>0,$t=s.streamingPreview&&xv,Us=Zb({surface:"transcript",snapshot:Pt,promptItems:sf,transcriptItems:Ls}),js=de(()=>!ne||Ct||Us.length<=$p?Us:Us.slice(-$p),[Us,ne,Ct]),it=Pt?.isLoading??ve,qe=s.streamingPreview?{isThinking:$t?!1:v.isThinking,thinkingCharCount:$t?0:v.thinkingCharCount,thinkingContent:$t?"":v.thinkingContent,currentResponse:$t?"":v.currentResponse,currentTool:$t?void 0:v.currentTool,activeToolCalls:$t?[]:no,toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:$t?Ac:void 0,iterationHistory:[],currentIteration:v.currentIteration,isCompacting:!1}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:v.currentIteration,isCompacting:!1},me=s.streamingPreview?{isThinking:$t?!1:Pt?.isThinking??v.isThinking,thinkingCharCount:$t?0:Pt?.thinkingCharCount??v.thinkingCharCount,thinkingContent:$t?"":Pt?.thinkingContent??v.thinkingContent,currentResponse:$t?"":Pt?.currentResponse??v.currentResponse,currentTool:$t?void 0:Pt?.currentTool??v.currentTool,activeToolCalls:$t?[]:Pt?.activeToolCalls??no,toolInputCharCount:$t?0:Pt?.toolInputCharCount??v.toolInputCharCount,toolInputContent:$t?"":Pt?.toolInputContent??v.toolInputContent,managedLiveEvents:[],lastLiveActivityLabel:Pt?.lastLiveActivityLabel??Ac,iterationHistory:$t?[]:Pt?.iterationHistory??v.iterationHistory,currentIteration:Pt?.currentIteration??v.currentIteration,isCompacting:Pt?.isCompacting??v.isCompacting}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:Pt?.currentIteration??v.currentIteration,isCompacting:!1},sr=ne?Zr:Ec,Rh=!!Ec,Eh=V(()=>Og({items:uf,managedLiveEvents:[],isLoading:ve,isThinking:qe.isThinking,thinkingCharCount:qe.thinkingCharCount,thinkingContent:qe.thinkingContent,currentResponse:qe.currentResponse,currentTool:qe.currentTool,activeToolCalls:qe.activeToolCalls,toolInputCharCount:qe.toolInputCharCount,toolInputContent:qe.toolInputContent,lastLiveActivityLabel:qe.lastLiveActivityLabel,iterationHistory:qe.iterationHistory,currentIteration:qe.currentIteration,isCompacting:qe.isCompacting}),[ve,uf,qe.activeToolCalls,qe.currentIteration,qe.currentResponse,qe.currentTool,qe.isCompacting,qe.isThinking,qe.iterationHistory,qe.lastLiveActivityLabel,qe.thinkingCharCount,qe.thinkingContent,qe.toolInputCharCount,qe.toolInputContent]);He(()=>{if(!Rh){ah(null);return}ah(f=>f??Eh())},[Eh,Rh]);let Gs=Mt?.items??uf,Wt=Mt?.isLoading??ve,be=Mt?{isThinking:Mt.isThinking,thinkingCharCount:Mt.thinkingCharCount,thinkingContent:Mt.thinkingContent,currentResponse:Mt.currentResponse,currentTool:Mt.currentTool,activeToolCalls:Mt.activeToolCalls,toolInputCharCount:Mt.toolInputCharCount,toolInputContent:Mt.toolInputContent,managedLiveEvents:Mt.managedLiveEvents,lastLiveActivityLabel:Mt.lastLiveActivityLabel,iterationHistory:Mt.iterationHistory,currentIteration:Mt.currentIteration,isCompacting:Mt.isCompacting}:qe,kt=ne?js:Gs,Fn=ne?it:Wt,Ue=ne?me:be,Mh=Wt&&!v.currentResponse&&!v.thinkingContent&&no.length===0,io=de(()=>({config:N,sessionId:n.sessionId,workingDir:e.context?.gitRoot||process.cwd(),terminalWidth:z,compactionInfo:c??void 0}),[c,n.sessionId,N,e.context?.gitRoot,z]),ni=de(()=>s.enabled&&rr?KL(io):void 0,[io,s.enabled,rr]),df=de(()=>Ku({items:Gs,viewportWidth:z,maxLines:ht,showDetailedTools:!1,showAllContent:!1,windowed:!1}),[Gs,z,ht]),zc=de(()=>{let f=Vu({activeItems:df.activeItems,viewportWidth:z,isLoading:Wt,maxLines:ht,isThinking:be.isThinking,thinkingCharCount:be.thinkingCharCount,thinkingContent:be.thinkingContent,streamingResponse:be.currentResponse,currentTool:be.currentTool,activeToolCalls:be.activeToolCalls,toolInputCharCount:be.toolInputCharCount,toolInputContent:be.toolInputContent,iterationHistory:be.iterationHistory,currentIteration:be.currentIteration,isCompacting:be.isCompacting,managedAgentMode:N.agentMode,managedPhase:Wt?G?.phase:void 0,managedHarnessProfile:Wt?G?.harnessProfile:void 0,managedWorkerTitle:Wt?G?.activeWorkerTitle:void 0,managedRound:Wt?G?.currentRound:void 0,managedMaxRounds:Wt?G?.maxRounds:void 0,managedGlobalWorkBudget:Wt?G?.globalWorkBudget:void 0,managedBudgetUsage:Wt?G?.budgetUsage:void 0,managedBudgetApprovalRequired:Wt?G?.budgetApprovalRequired:void 0,lastLiveActivityLabel:be.lastLiveActivityLabel,currentTodoActiveForm:Xo,showFullThinking:!1,showDetailedTools:!1,showAllContent:!1,showLiveProgressRows:Mh});return Wg(Pp(zu(df,f)),ni)},[N.agentMode,Wt,be.activeToolCalls,be.currentIteration,be.currentTool,be.isCompacting,be.currentResponse,be.isThinking,be.iterationHistory,be.lastLiveActivityLabel,be.thinkingCharCount,be.thinkingContent,be.toolInputCharCount,be.toolInputContent,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,Mh,df,ni,z,ht,Xo]),ff=de(()=>Ku({items:js,viewportWidth:z,maxLines:ht,showDetailedTools:Ct,showAllContent:Ct,windowed:!1}),[js,z,ht,Ct]),Xc=de(()=>{if(!ne||ti)return;let f=Vu({activeItems:ff.activeItems,viewportWidth:z,isLoading:it,maxLines:ht,isThinking:me.isThinking,thinkingCharCount:me.thinkingCharCount,thinkingContent:me.thinkingContent,streamingResponse:me.currentResponse,currentTool:me.currentTool,activeToolCalls:me.activeToolCalls,toolInputCharCount:me.toolInputCharCount,toolInputContent:me.toolInputContent,iterationHistory:me.iterationHistory,currentIteration:me.currentIteration,isCompacting:me.isCompacting,managedAgentMode:N.agentMode,managedPhase:it?G?.phase:void 0,managedHarnessProfile:it?G?.harnessProfile:void 0,managedWorkerTitle:it?G?.activeWorkerTitle:void 0,managedRound:it?G?.currentRound:void 0,managedMaxRounds:it?G?.maxRounds:void 0,managedGlobalWorkBudget:it?G?.globalWorkBudget:void 0,managedBudgetUsage:it?G?.budgetUsage:void 0,managedBudgetApprovalRequired:it?G?.budgetApprovalRequired:void 0,lastLiveActivityLabel:me.lastLiveActivityLabel,currentTodoActiveForm:Xo,showFullThinking:!0,showDetailedTools:Ct,showAllContent:Ct,showLiveProgressRows:!Vc,expandedItemKeys:Zt});return Wg(Pp(zu(ff,f)),ni)},[N.agentMode,Zt,Vc,ni,ne,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,z,it,ht,ff,me.activeToolCalls,me.currentIteration,me.currentResponse,me.currentTool,me.isCompacting,me.isThinking,me.iterationHistory,me.lastLiveActivityLabel,me.thinkingCharCount,me.thinkingContent,me.toolInputCharCount,me.toolInputContent,Ct,ti,Xo]),Ks=de(()=>{if(yt)return ne?Wg(Xu({items:kt,viewportWidth:z,isLoading:Fn,maxLines:ht,isThinking:Ue.isThinking,thinkingCharCount:Ue.thinkingCharCount,thinkingContent:Ue.thinkingContent,streamingResponse:Ue.currentResponse,currentTool:Ue.currentTool,activeToolCalls:Ue.activeToolCalls,toolInputCharCount:Ue.toolInputCharCount,toolInputContent:Ue.toolInputContent,iterationHistory:Ue.iterationHistory,currentIteration:Ue.currentIteration,isCompacting:Ue.isCompacting,managedAgentMode:N.agentMode,managedPhase:Fn?G?.phase:void 0,managedHarnessProfile:Fn?G?.harnessProfile:void 0,managedWorkerTitle:Fn?G?.activeWorkerTitle:void 0,managedRound:Fn?G?.currentRound:void 0,managedMaxRounds:Fn?G?.maxRounds:void 0,managedGlobalWorkBudget:Fn?G?.globalWorkBudget:void 0,managedBudgetUsage:Fn?G?.budgetUsage:void 0,managedBudgetApprovalRequired:Fn?G?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Ue.lastLiveActivityLabel,currentTodoActiveForm:Xo,windowed:!0,showFullThinking:ne,showDetailedTools:Ct,showAllContent:Ct,showLiveProgressRows:ne&&!Vc,expandedItemKeys:ne?Zt:void 0}),ni):zc},[N.agentMode,Fn,kt,Vc,ni,Ue.activeToolCalls,Ue.currentIteration,Ue.currentResponse,Ue.currentTool,Ue.isCompacting,Ue.isThinking,Ue.iterationHistory,Ue.lastLiveActivityLabel,Ue.thinkingCharCount,Ue.thinkingContent,Ue.toolInputCharCount,Ue.toolInputContent,Zt,ne,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,zc,ve,ne,z,ht,yt,Ct,Xo]),Wn=de(()=>Ks??Xc,[Ks,Xc]),Vs=de(()=>Lg({status:G,isLoading:ve,agentMode:N.agentMode}),[N.agentMode,ve,G]).workStripText,zs=Pt?.workStripText??eo,ri=de(()=>Lg({status:G,isLoading:ve,agentMode:N.agentMode,parallelTextOverride:zs}),[N.agentMode,zs,ve,G]),so=de(()=>yb(kt),[kt]),Ve=de(()=>Ld(De,so,De.selectedItemId),[so,De]),en=de(()=>kt.find(f=>f.id===Ve),[kt,Ve]),Ah=de(()=>({...De,supportsSelection:De.supportsSelection&&yt,supportsCopyOnSelect:De.supportsCopyOnSelect&&yt}),[De,yt]),dn=de(()=>Hb({state:Ah,selectableItemIds:so,selectedItemId:Ve,selectedItemType:en?.type,isExpanded:Ve?Zt.has(Ve):!1}),[Zt,so,en?.type,Ve,Ah]),_h=dn.selectionEnabled,Ph=dn.copyCapabilities.copyOnSelect,Q1=dn.selectedItemIndex,$h=de(()=>hb(en),[en]),Yc=de(()=>fb(kt),[kt]),bt=de(()=>mb(Yc,Ft),[Yc,Ft]),qc=de(()=>Ub({isHistorySearchActive:ot,historySearchQuery:Ft,matches:bt,selectedIndex:jc,anchorItemId:De.searchAnchorItemId,useOverlaySurface:De.supportsOverlaySurface&&De.supportsSearchViewport&&yt}),[bt,Ft,jc,ot,De.searchAnchorItemId,De.supportsOverlaySurface,De.supportsSearchViewport,yt]),Mr=qc.clampedSelectedIndex,Lh=qc.statusText,mf=qc.detailText,Oh=qc.searchState,J1=dn.detailState==="expanded",Qc=dn.selectionEnabled&&so.length>0&&!sr,oi=dn.copyCapabilities.message,Jc=dn.copyCapabilities.toolInput,Zc=dn.toggleDetail;He(()=>{if(Vs){if(Bn.current&&(clearTimeout(Bn.current),Bn.current=null),eo===Vs)return;if(eo){At.current&&(clearTimeout(At.current),At.current=null),_c(Vs);return}At.current&&clearTimeout(At.current),At.current=setTimeout(()=>{_c(Vs),At.current=null},400);return}if(!eo){At.current&&(clearTimeout(At.current),At.current=null);return}At.current&&(clearTimeout(At.current),At.current=null),Bn.current&&clearTimeout(Bn.current),Bn.current=setTimeout(()=>{_c(void 0),Bn.current=null},300)},[Bs,Vs,eo]),He(()=>()=>{Bs()},[Bs]);let Ar=de(()=>Sb({state:De,ownsViewport:yt,isAwaitingUserInteraction:Rr,isHistorySearchActive:ot,isTranscriptMode:ne,historySearchQuery:Ft}),[Ft,Rr,ot,ne,De,yt]);He(()=>{Nn(f=>{let h=KC(f,In);return h=GC(h,Ws),h=zC(h,s.enabled&&yt?!Qd||ot||Rr:ne||ot||Rr),h=qC(h,Mr),h})},[Mr,s.enabled,In,Rr,ot,ne,Ws,yt,Qd]),He(()=>{jc!==Mr&&An(Mr)},[Mr,jc]),He(()=>{if(!ot){af.current=Ft;return}if(Ft===af.current)return;af.current=Ft;let f=gb(Yc,bt,De.searchAnchorItemId);An(f)},[bt,Ft,ot,De.searchAnchorItemId,Yc]);let Dh=ne?me:{isThinking:be.isThinking,thinkingCharCount:be.thinkingCharCount,currentTool:be.currentTool,activeToolCalls:be.activeToolCalls,toolInputCharCount:be.toolInputCharCount,toolInputContent:be.toolInputContent,currentIteration:be.currentIteration,isCompacting:be.isCompacting},Xs=ne?it:Wt,[pf,gf]=We(()=>Yt(N.permissionMode)?l.getGuardrail().getEngine():void 0),el=de(()=>Bb({sessionId:n.sessionId,permissionMode:N.permissionMode,agentMode:N.agentMode,provider:N.provider,model:N.model??jn(N.provider)??N.provider,thinking:N.thinking,reasoningMode:N.reasoningMode,reasoningCapability:bl(mo(N.provider,N.model)),isTranscriptMode:ne,streamingState:Dh,maxIter:v.maxIter,contextUsage:Sh,isLoading:Xs,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:pf}),[n.sessionId,N.permissionMode,N.agentMode,N.provider,N.model,N.thinking,N.reasoningMode,ne,Dh,v.maxIter,Sh,Xs,G?.phase,G?.harnessProfile,G?.activeWorkerTitle,G?.currentRound,G?.maxRounds,G?.globalWorkBudget,G?.budgetUsage,G?.budgetApprovalRequired,G?.idleWaiting,G?.idleWaitingPendingCount,pf]),hf=Ye?"confirm":Me?.kind,_r=de(()=>Nb({isTranscriptMode:ne,isLoading:Xs,streamingState:be,managedState:Xs?{phase:G?.phase,harnessProfile:G?.harnessProfile,workerTitle:G?.activeWorkerTitle}:void 0,waitingReason:hf}),[be.activeToolCalls,be.currentTool,be.isCompacting,be.isThinking,be.thinkingCharCount,be.toolInputCharCount,be.toolInputContent,ne,G?.activeWorkerTitle,G?.harnessProfile,G?.phase,hf,Xs]),yf=_r?.text,ar=de(()=>hC(Mc,{now:Date.now(),lastAllCompletedAt:null}),[Mc]),Nh=fe(!1);He(()=>{Nh.current&&!ve&&Cr(f=>f.length>0?[]:f),Nh.current=ve},[ve]);let xf=de(()=>Zu(el),[el]),Bh=de(()=>xf,[xf]),Hh=Bh.text,wv=de(()=>md(v.pendingInputs),[v.pendingInputs]),wf=de(()=>yC({isHistorySearchActive:ot,isTranscriptMode:ne,pendingInputCount:v.pendingInputs.length,buffering:De.buffering,pendingLiveUpdates:Ws}),[ot,ne,Ws,v.pendingInputs.length,De.buffering]),Fh=wf.leftItems,Wh=wf.rightItems,Uh=wf.summary,tl=de(()=>Gb({historySearchQuery:Ft,pendingInputCount:v.pendingInputs.length}),[Ft,v.pendingInputs.length]),nl=de(()=>jb({historySearchQuery:Ft,isHistorySearchActive:ot,historySearchMatchCount:bt.length,pendingInputCount:v.pendingInputs.length,maxPendingInputs:5}),[bt.length,Ft,ot,v.pendingInputs.length]),jh=de(()=>nl.map(f=>f.text).join(" | "),[nl]),rl=de(()=>Kb({inputText:Yd,isTranscriptMode:ne,isHistorySearchActive:ot}),[Yd,ot,ne]),Gh=De.supportsOverlaySurface&&De.supportsSearchViewport&&yt,ol=de(()=>Fb({runtime:dn,itemSummary:$h}),[$h,dn]),Tf=de(()=>Vb(tl),[tl]),Kh=de(()=>zb({textSelection:sr,selectionState:ol,isHistorySearchActive:ot,historySearchDetailText:mf,historySearchHasMatches:!!Lh&&bt.length>0,showAllActive:Ct,baseFooterNotices:tl}),[sr,tl,mf,bt.length,Lh,ot,Ct,ol]),Tv=Kh.secondaryText,Sv=Kh.budgetNotices,Vh=ne?Sv:Tf,zh=y.rows??24,Xh=ne?"":Yd,Yh=ne?void 0:wv,qh=zs,Qh=ne?!1:hh,Ut=de(()=>FC({terminalRows:zh,terminalWidth:z,windowedTranscript:ti,inputText:Xh,footerHeaderText:Uh,activitySummary:ne?void 0:yf,activityBarVisible:ne?!1:!!yf||ve&&ar.shouldRender,todoSurfaceRows:ne?0:ve&&ar.shouldRender?ar.rows.length:0,pendingInputSummary:Yh,stashNoticeSummary:rl,notificationSummary:jh,statusNoticeSummary:Vh.join(" | "),workStripText:qh,suggestionsReserved:Kc,suggestionsMode:"inline",showHelp:Qh,statusBarText:Hh,confirmPrompt:Ye?.prompt,confirmInstruction:Fs,dialogMode:"inline",reviewHint:s.enabled&&yt?void 0:Ar.browseHintText,uiRequest:Me?Me.kind==="select"?{kind:"select",title:Me.title,options:Me.options.map(f=>({label:f.label,description:f.description})),buffer:Me.buffer,error:Me.error}:{kind:"input",prompt:Me.prompt,defaultValue:Me.defaultValue,buffer:Me.buffer,error:Me.error}:null}),[zh,z,Xh,Uh,yf,Yh,rl,jh,Vh,qh,Kc,Gh,Qh,Hh,Ye,Fs,s.enabled,Ar.browseHintText,yt,Me]),Cv=de(()=>se(qp,{reserveSpace:Kc,width:z,hidden:ne,mode:"inline"}),[Kc,z,ne,Gh]),Ys=de(()=>Cb(Ut.messageRows),[Ut.messageRows]),Jh=de(()=>bb(Ys),[Ys]),ii=!Ih&&s.transcriptSpinnerAnimation,qs=Wn?Wn.rows.length+Wn.previewRows.length:nv,il=V(f=>{Wn||rv(f.scrollHeight)},[Wn]),Qs=V(f=>Mb({window:f,stickyHeader:Ar.stickyHeader,width:z,topChromeRows:0}),[z,Ar.stickyHeader]),si=V((f=_s.current,h=Rc.current,T=Jd.current?Qs(Jd.current):kc.current)=>{if(!T||f.length===0){Vo.current=null;return}kc.current=T,Vo.current=Ab(f,{allRows:h,rowIndexByKey:Mg(h),topOffsetRows:T.topOffsetRows,viewportHeight:T.contentWindow.viewportHeight,animateSpinners:ii})},[Qs,ii]),Js=V(()=>{let f=kc.current;return f?.contentWindow.viewportHeight&&f.contentWindow.viewportHeight>0?f.contentWindow.viewportHeight:Ut.messageRows},[Ut.messageRows]),bv=V(f=>{Jd.current=f;let h=Qs(f);kc.current=h,si(_s.current,Rc.current,h)},[si,Qs]),sl=V(f=>{_s.current=f.rows,Rc.current=f.allRows,si(f.rows,f.allRows)},[si]),Lt=V(()=>{kn.current=null,Zd(void 0),ef(void 0)},[]),Sf=V(()=>{Lt(),Nn(f=>Cs(f,void 0))},[Lt]);He(()=>{si()},[si]),He(()=>{iv(f=>vb(f,qs,Ut.messageRows))},[qs,Ut.messageRows]),He(()=>{if(!zo)return;let f=setTimeout(()=>{ih(void 0)},2e3);return()=>{clearTimeout(f)}},[zo]);let cr=V((f,h="success")=>{let T=f?.trim();T&&ih({text:T,tone:h})},[]),ai=V((f,h)=>{let T=h instanceof Error?h.message:String(h);return`${f}: ${T}`},[]),al=V(async f=>{let h=f??sr;if(!h)return!1;let T=h.text.trimEnd();if(!T)return!1;try{return await Mo(T,{terminalWrite:P}),cr(`Copied ${h.rowCount} selected line${h.rowCount===1?"":"s"} to clipboard.`,"success"),!0}catch(R){return cr(ai("Failed to copy transcript selection",R),"warning"),!1}},[sr,ai,cr,P]),ci=V(f=>{if(!f||kb({items:kt,renderModel:Wn,terminalWidth:z,transcriptMaxLines:ht,viewportRows:Js(),itemId:f,visibleRows:_s.current,expandedItemKeys:Zt,showDetailedTools:!1}))return;let h=Rb({items:kt,renderModel:Wn,terminalWidth:z,transcriptMaxLines:ht,viewportRows:Js(),itemId:f,expandedItemKeys:Zt,showDetailedTools:!1});bc(h)},[kt,z,ht,Wn,Zt,Js,bc,_s]),Zh=V(f=>{Nn(h=>Cs(h,f)),f&&ci(f)},[ci]),Cf=V(f=>{f&&ci(f)},[ci]),ey=V(f=>{if(!Qc)return;let h=xb(so,Ve,f);h&&Zh(h)},[Qc,so,Ve,Zh]),ty=V(()=>{!Zc||!Ve||(cv(f=>{let h=new Set(f);return h.has(Ve)?h.delete(Ve):h.add(Ve),h}),ci(Ve))},[ci,Zc,Ve]),ny=V(async()=>{if(!oi||!en)return;let f=Eg(en);if(f)try{await Mo(f,{terminalWrite:P}),cr("Copied selected transcript entry to clipboard.","success")}catch(h){cr(ai("Failed to copy transcript entry",h),"warning")}},[ai,oi,en,cr,P]),ry=V(async()=>{if(!Jc||!en)return;let f=wb(en);if(f)try{await Mo(f,{terminalWrite:P}),cr("Copied selected tool args to clipboard.","success")}catch(h){cr(ai("Failed to copy tool args",h),"warning")}},[ai,Jc,en,cr,P]),Zs=V(()=>Rc.current,[]),oy=V((f,h)=>{if(!s.enabled||!yt)return;let T=Vo.current;return T?_g(T,f,h):void 0},[s.enabled,yt]),li=V((f,h,T)=>{let R=Zs(),E=$b(R,f,h,{animateSpinners:ii,selectFullRowOnCollapsed:T?.selectFullRowOnCollapsed});ne?ef(E):Zd(E);let H=R[Math.max(0,Math.min(h.modelRowIndex,R.length-1))];return T?.updateSelectedItem&&H?.itemId&&Nn(B=>Cs(B,H.itemId)),E},[ne,Zs,ii]),iy=V((f,h)=>{if(!f)return;kn.current=null;let T={...f,focus:h?.focusPoint??f.focus};if(!(T.mode!=="char"||T.didDrag)){Lt();return}let E=li(T.anchor,T.focus,{selectFullRowOnCollapsed:!1,updateSelectedItem:!1});if(!E){Lt();return}return h?.copySelection!==!1&&al(E),E},[Lt,al,li]),bf=V(()=>{if(!ne||!kt.length||Ye||Me)return;Lt();let f=Eb({items:kt,selectedItemId:Ve,renderModel:Wn,terminalWidth:z,transcriptMaxLines:ht,viewportRows:Js(),scrollOffset:In,expandedItemKeys:Zt,showDetailedTools:!1,preferViewportAnchor:!0});Nn(h=>XC(h,{anchorItemId:f,initialMatchIndex:0})),ei(""),An(0)},[Ye,kt,Zt,In,ne,Ve,Wn,z,ht,Me,Js,Lt]),vf=V(()=>{Nn(f=>YC(f)),ei(""),An(0),Lt()},[Lt]),cl=V(()=>{!ot||bt.length===0||An(-1)},[bt.length,ot]),sy=de(()=>{if(!Ye)return null;if(Ye.tool==="exit_plan_mode"){let f=typeof Ye.input.plan=="string"?Ye.input.plan:void 0;return{prompt:Ye.prompt.split(`
|
|
327
|
+
`,1)[0]??Ye.prompt,instruction:Fs,planContent:f}}return{prompt:Ye.prompt,instruction:Fs}},[Fs,Ye]),ay=de(()=>Me?Me.kind==="select"?{kind:"select",title:Me.title,options:Me.options,buffer:Me.buffer,error:Me.error,visibleSelectOptions:Ut.visibleSelectOptions,focusedIndex:Me.focusedIndex,selectedIndices:Me.selectedIndices,multiSelect:Me.multiSelect}:{kind:"input",prompt:Me.prompt,defaultValue:Me.defaultValue,buffer:Me.buffer,error:Me.error}:null,[Me,Ut.visibleSelectOptions]),vv=de(()=>se(Jp,{confirm:sy,request:ay}),[sy,ay]),If=de(()=>{if(zo)return se(pC,{text:zo.text,tone:zo.tone})},[zo]),kf=de(()=>{if(If)return se(k,{flexDirection:"column",width:"100%",children:If})},[If]),ll=V(()=>{Nn(f=>VC(jC(f))),qd(!1),Ic(),ei(""),An(0),Lt()},[Lt,Ic]),cy=V(()=>{ne&&qd(f=>!f)},[ne]),Iv=V(()=>{if(ne){ll();return}qd(!1),Nn(f=>UC(f)),ei(""),An(0),Lt()},[Lt,ll,ne]);He(()=>{_h||!De.selectedItemId||Nn(f=>Cs(f,void 0))},[_h,De.selectedItemId]),He(()=>{if(!ne||!oi||!Ph){Hs.current=void 0;return}if(Zr||!Ve||!en)return;if(!Hs.current){Hs.current=Ve;return}if(Hs.current===Ve)return;Hs.current=Ve;let f=Eg(en);f&&Mo(f,{terminalWrite:P}).catch(()=>{})},[ne,en,Ve,oi,Ph,Zr,P]),He(()=>{if(y?.isTTY!==!0)return;let f=Jl(y);f?.setShellMode?.(Ch,Gc),cf||f?.setAltScreenActive?.(!1)},[Ch,y,cf,Gc]);let ze=fe({...e,thinking:N.thinking,reasoningMode:N.reasoningMode,agentMode:N.agentMode,context:{...e.context,repoIntelligenceMode:N.repoIntelligenceMode,repoIntelligenceTrace:N.repoIntelligenceTrace,toolConstructionMode:!0},session:{...e.session,id:n.sessionId},guardrails:Bg(N.permissionMode,l)}),fn=fe(N.permissionMode);He(()=>{fn.current=N.permissionMode},[N.permissionMode]);let ly=fe(es()),Rf=fe(N);He(()=>{Rf.current=N},[N]);let Ef=fe(null);Ef.current===null&&(Ef.current=Sl({getProvider:i(()=>mi(Rf.current.provider),"getProvider"),getModel:i(()=>Rf.current.model??"","getModel")}));let uy=fe(lu());He(()=>{N.permissionMode==="auto-in-project"&&uy.current()},[]);let Mf=V(f=>{Oe(h=>({...h,permissionMode:f})),fn.current=f,ze.current={...ze.current,guardrails:Bg(f,l)},gf(Yt(f)?l.getGuardrail().getEngine():void 0),f==="auto-in-project"&&uy.current()},[l]),dy=fe(v.pendingInputs),Qe=fe(!1),ea=fe(0),ul=V(()=>{if(Ms.current)return;let f=rf.current?.trim(),h=ye.current.length>0?ye.current[ye.current.length-1]:void 0,T=h&&"text"in h&&typeof h.text=="string"?h.text.trim():void 0,E=cn.current.length>0?[...cn.current.map(H=>jo(H)),...f&&f!==T?[{type:"info",text:f}]:[]]:[...cn.current.map(H=>jo(H)),...jL(et(),Ze(),{toolCalls:_t.current,toolNames:Hn.current,infoItems:f&&f!==T?[f]:[]})];E.length!==0&&(Ms.current=!0,Es.current?.(E))},[Ze,et]);He(()=>{dy.current=v.pendingInputs},[v.pendingInputs]);let fy=V(()=>{Qe.current=!0,Re(),xe(),J(),Y(),_e(),Ee(),q(void 0),kr(),ut(void 0),Os(),to.current=[],Yo.current=[],Ps([]),Q(!1)},[Re,Ee,Y,_e,kr,Os,q,Ps,Q,ut,xe,J]),dl=fe(0),kv=500;on(Nt.Critical,f=>{if(!ve)return!1;switch(cb({keyName:f.name,ctrl:!!f.ctrl,isTranscriptMode:ne,isAwaitingUserInteraction:Rr,isInputEmpty:Xd,pendingInputCount:v.pendingInputs.length,hasTranscriptTextSelection:!!Zr,timeSinceLastEscapeMs:Date.now()-dl.current,doubleEscapeIntervalMs:kv}).kind){case"interrupt":return dl.current=0,ul(),fy(),!0;case"pop-pending-input":return tt(),dl.current=0,!0;case"arm-double-escape":return dl.current=Date.now(),!0;default:break}return!1},[ve,ne,Rr,Xd,v.pendingInputs.length,tt,ul,fy]),on(Nt.Critical,f=>{let h=sb({itemsLength:kt.length,currentResponse:Ue.currentResponse,thinkingContent:Ue.thinkingContent,activeToolCallsLength:Ue.activeToolCalls.length}),T=ab({keyName:f.name,hasTranscript:h,historyScrollOffset:In,reviewPageSize:Ys,reviewWheelStep:Jh,hasMouse:!!f.mouse,mouseButton:f.mouse?.button,mouseAction:f.mouse?.action,usesManagedMouseClicks:bh,supportsMouseTracking:De.supportsMouseTracking,usesRendererMouseTracking:Gc,usesManagedMouseWheel:vh,supportsWheelHistory:De.supportsWheelHistory});if(T.kind==="mouse-phase"){let E=f.mouse;if(!E)return!1;T.phase==="press"&&kn.current&&iy(kn.current);let H=oy(E.row,E.column);if(T.phase==="press"){if(!H||!h)return sr||Ve?(Sf(),!0):(Lt(),!1);let B=i0({previous:oh.current,time:Date.now(),row:E.row,column:E.column});oh.current=B;let X=B.count>=3?"line":B.count===2?"word":"char";if(cl(),Nn(oe=>Cs(oe,void 0)),ne?ef(void 0):Zd(void 0),X!=="char"){let oe=Dd(Zs(),H.point,X);if(oe)return kn.current={anchor:oe.start,focus:oe.end,didDrag:!1,mode:X,anchorSpan:oe},li(oe.start,oe.end,{updateSelectedItem:!1}),!0}return kn.current={anchor:H.point,focus:H.point,didDrag:!1,mode:"char"},!0}if(!kn.current)return!1;if(T.phase==="drag"){let B=Vo.current,X=B?Ob(B,E.row):0;X!==0&&vc(X);let oe=H??(B?Pg(B,E.row,E.column):void 0);if(!oe)return!1;let he=kn.current;if(he.mode!=="char"&&he.anchorSpan){let ct=Dd(Zs(),oe.point,he.mode);if(!ct)return!1;let Ot=Ng(he.anchorSpan,ct);return kn.current={...he,anchor:Ot.anchor,focus:Ot.focus,didDrag:!0},li(Ot.anchor,Ot.focus,{updateSelectedItem:!1}),!0}return kn.current={...he,focus:oe.point,didDrag:!0},li(he.anchor,oe.point,{updateSelectedItem:!1}),!0}if(T.phase==="release"){let B=kn.current,X=B.focus,he=(H??(Vo.current?Pg(Vo.current,E.row,E.column):void 0))?.point??X;if(B.mode!=="char"&&B.anchorSpan){let ct=Dd(Zs(),he,B.mode);if(ct){let Ot=Ng(B.anchorSpan,ct);B.anchor=Ot.anchor,he=Ot.focus}}return iy(B,{focusPoint:he}),!0}}if(T.kind==="scroll-by")return cl(),vc(T.delta),!0;if(T.kind==="consume")return!0;let R=lb({key:f,isTranscriptMode:ne,isHistorySearchActive:ot,historySearchMatchCount:bt.length,hasTextSelection:!!sr,hasFocusedItem:!!Ve,canCopySelectedItem:oi,canCopySelectedToolInput:Jc,canToggleSelectedDetail:Zc,canCycleTranscriptSelection:Qc});return ub({action:R,hasTranscript:h,isTranscriptMode:ne,pageScrollDelta:Ys,disarmHistorySearchSelection:cl,scrollTranscriptBy:vc,closeHistorySearchSurface:vf,backspaceHistorySearchQuery:i(()=>{ei(E=>E.slice(0,-1)),An(0)},"backspaceHistorySearchQuery"),stepHistorySearchSelection:i(E=>{An(H=>Rg(bt.length,H,E))},"stepHistorySearchSelection"),submitHistorySearchSelection:i(()=>{let E=bt[Mr];E&&(Cf(E.itemId),vf())},"submitHistorySearchSelection"),appendHistorySearchQuery:i(E=>{ei(H=>H+E),An(0)},"appendHistorySearchQuery"),openHistorySearchSurface:bf,clearTranscriptSelectionFocus:Sf,exitTranscriptModeSurface:ll,toggleTranscriptShowAll:cy,scrollTranscriptHome:i(()=>{bc(Math.max(0,qs-Ut.messageRows))},"scrollTranscriptHome"),scrollTranscriptToBottom:i(()=>{Ic(),Lt()},"scrollTranscriptToBottom"),cycleTranscriptSelection:ey,copySelectedTranscriptText:i(()=>{al()},"copySelectedTranscriptText"),copySelectedTranscriptItem:i(()=>{ny()},"copySelectedTranscriptItem"),copySelectedTranscriptToolInput:i(()=>{ry()},"copySelectedTranscriptToolInput"),toggleSelectedTranscriptDetail:ty,navigateSearchMatch:i(E=>{An(H=>{let B=Rg(bt.length,H,E),X=bt[B];return X&&Cf(X.itemId),B})},"navigateSearchMatch"),dumpTranscriptToScrollback:i(()=>{db({items:kt,exitAltScreen:i(()=>{P(ou({mouseTracking:!0}))},"exitAltScreen"),writeToScrollback:i(E=>{P(E)},"writeToScrollback"),enterAltScreen:i(()=>{P(ru({mouseTracking:!0,clearOnEnter:!1}))},"enterAltScreen")})},"dumpTranscriptToScrollback")})},[ne,kt,Ue.currentResponse,Ue.thinkingContent,Ue.activeToolCalls,In,qs,Ys,Jh,Ve,Sf,ll,cy,De,vc,bc,Ic,Qc,Mr,Lt,al,bt,bf,vf,cl,ey,oi,ny,Jc,ry,Zc,ty,Cf,sr,oy,De.supportsMouseTracking,Zr,bh,vh,lf,ti,Gc,li,Ut.messageRows]),on(f=>{if(!Ye)return!1;let h=f.sequence.trim().toLowerCase(),T=!!Ye.input._alwaysConfirm,R=N.permissionMode==="accept-edits"&&!T,E=i(H=>{let B=`${Z("dialog.confirm")} ${Ye.prompt}
|
|
328
|
+
\u2192 ${Z(`confirm.result.${H}`)}`;!!nt.current.workerId?un({id:`confirm-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"info",text:B,timestamp:Date.now()}):O({type:"info",text:B})},"recordConfirmResult");return h==="y"||h==="yes"?(E("approved"),Fc(null),oo.current?.({confirmed:!0}),oo.current=null,!0):R&&(h==="a"||h==="always")?(E("approved_always"),Fc(null),oo.current?.({confirmed:!0,always:!0}),oo.current=null,!0):h==="n"||h==="no"||f.name==="escape"?(E("denied"),Fc(null),oo.current?.({confirmed:!1}),oo.current=null,!0):f.insertable||f.name==="return"},{isActive:!!Ye,priority:Nt.Critical});let fl=V(f=>{Mn(null),Wc.current?.(f),Wc.current=null},[]),ui=V((f,h,T)=>h.length===0?Promise.resolve(void 0):new Promise(R=>{Wc.current=R,Mn({kind:"select",title:f,options:h,buffer:"",focusedIndex:0,selectedIndices:[],multiSelect:T})}),[]),Rv=V((f,h)=>ui(f,h.map(T=>({label:T,value:T}))),[ui]),my=V(async f=>{let h=f.options?Od(f.options):[];return await ui($g(f),h,f.multiSelect)??Bf},[ui]);He(()=>{let f=!1;return(async()=>{let{bindAskUserForConstruction:h}=await import("./construction-bootstrap-HBCWJFHC.js");f||h(my)})(),()=>{f=!0,(async()=>{let{bindAskUserForConstruction:h}=await import("./construction-bootstrap-HBCWJFHC.js");h(null)})()}},[my]);let py=V((f,h)=>new Promise(T=>{Wc.current=T,Mn({kind:"input",prompt:f,defaultValue:h,buffer:""})}),[]);on(f=>{let h=Uc.current;if(!h)return!1;if(f.name==="escape")return fl(void 0),!0;if(h.kind==="select"){let T=h.options.length;if(f.name==="up"||f.sequence==="k")return Mn(R=>R&&R.kind==="select"?{...R,focusedIndex:(R.focusedIndex-1+T)%T,error:void 0}:R),!0;if(f.name==="down"||f.sequence==="j")return Mn(R=>R&&R.kind==="select"?{...R,focusedIndex:(R.focusedIndex+1)%T,error:void 0}:R),!0;if(f.sequence===" "&&h.multiSelect)return Mn(R=>{if(!R||R.kind!=="select")return R;let E=R.focusedIndex,H=R.selectedIndices.includes(E)?R.selectedIndices.filter(B=>B!==E):[...R.selectedIndices,E];return{...R,selectedIndices:H,error:void 0}}),!0;if(f.name==="return"){let R=Uc.current;if(!R||R.kind!=="select")return!1;if(R.multiSelect){if(R.selectedIndices.length===0)return Mn(H=>H&&H.kind==="select"?{...H,error:Z("select.multiselect_empty")}:H),!0;let E=R.selectedIndices.sort((H,B)=>H-B).map(H=>R.options[H]?.value).filter(Boolean).join(", ");fl(E)}else fl(R.options[R.focusedIndex]?.value);return!0}if(/^[1-9]$/.test(f.sequence)){let R=Number.parseInt(f.sequence,10)-1;if(R>=0&&R<T)return h.multiSelect?Mn(E=>{if(!E||E.kind!=="select")return E;let H=E.selectedIndices.includes(R)?E.selectedIndices.filter(B=>B!==R):[...E.selectedIndices,R];return{...E,focusedIndex:R,selectedIndices:H,error:void 0}}):Mn(E=>E&&E.kind==="select"?{...E,focusedIndex:R,error:void 0}:E),!0}return!1}if(f.name==="return"){let T=Uc.current;if(!T||T.kind!=="input")return!1;let R=T.buffer.trim();return fl(R===""?T.defaultValue??void 0:R),!0}return f.name==="backspace"||f.name==="delete"?(Mn(T=>T&&T.kind==="input"?{...T,buffer:T.buffer.slice(0,-1),error:void 0}:T),!0):(f.insertable||f.isPasted===!0)&&!f.ctrl&&!f.meta?(Mn(T=>T&&T.kind==="input"?{...T,buffer:T.buffer+f.sequence,error:void 0}:T),!0):!1},{isActive:!!Me,priority:Nt.Critical}),He(()=>{if(n.messages.length>0&&L.length===0){if(n.uiHistory?.length){let f=Go(n.uiHistory);f.length!==n.uiHistory.length&&(n.uiHistory=f);for(let h of f)O({type:h.type,text:h.text,...h.icon?{icon:h.icon}:{},...h.compactText?{compactText:h.compactText}:{}});return}for(let f of n.messages){let h=$a(f);for(let T of h)O(Pa(T))}}},[n.messages,n.uiHistory,L.length,O]),He(()=>{uo(n.gitRoot)},[n.gitRoot]),He(()=>{process.env.KODAX_PREWARM_REPO_INTELLIGENCE!=="0"&&ky({executionCwd:n.gitRoot??process.cwd(),gitRoot:n.gitRoot??void 0},{mode:N.repoIntelligenceMode})},[n.gitRoot,N.repoIntelligenceMode]);let Af=V(()=>({onThinkingDelta:i(f=>{Qe.current||(v.currentTool&&(q(void 0),_e()),ut(Ug(rt.current?.activeWorkerTitle?`[${rt.current.activeWorkerTitle}] [Thinking]`:"[Thinking]",rt.current?.activeWorkerTitle)),le(f.length),$e(f),nt.current.workerId&&Dc("thinking",f))},"onThinkingDelta"),onThinkingEnd:i(f=>{if(Qe.current)return;let h=et(),T=DC(h,f);T&&T!==h&&(Y(),Te(),le(T.length),$e(T)),nt.current.workerId&&mh(T),J()},"onThinkingEnd"),onTextDelta:i(f=>{Qe.current||(v.currentTool&&(q(void 0),_e()),J(),ut(void 0),dt(f),nt.current.workerId&&Dc("assistant",f))},"onTextDelta"),onToolUseStart:i(f=>{if(Qe.current)return;Hn.current.includes(f.name)||(Hn.current=[...Hn.current,f.name]);let h=rt.current?.activeWorkerTitle?`[${rt.current.activeWorkerTitle}] `:"",T={id:f.id,name:`${h}${f.name}`,status:$.Executing,startTime:Date.now(),input:f.input};ph(T),nt.current.workerId&&En(T),ut(qr(T,rt.current?.activeWorkerTitle))},"onToolUseStart"),onToolInputDelta:i((f,h,T)=>{if(Qe.current)return;Ge(h.length),Se(h);let R=gh(T?.toolId,f,E=>{let H=E.preview??"",B=HL(`${H}${h}`);return{...E,preview:B||void 0,input:E.input?B?{...E.input,preview:B}:{...E.input}:B?{preview:B}:void 0}});R&&(nt.current.workerId&&En(R),ut(qr(R,rt.current?.activeWorkerTitle)))},"onToolInputDelta"),onToolResult:i(f=>{if(Qe.current)return;let h=typeof f.content=="string"?f.content:String(f.content??""),T=FL(h);if(/^\[(?:Tool Error|Error)\]/.test(h)){let E=Bc(f.id,$.Error,T,T,f.name);E&&(nt.current.workerId&&En(E),ut(qr(E,rt.current?.activeWorkerTitle)));return}if(/^\[(?:Cancelled|Blocked)\]/.test(h)){let E=Bc(f.id,$.Cancelled,void 0,T,f.name);E&&(nt.current.workerId&&En(E),ut(qr(E,rt.current?.activeWorkerTitle)));return}let R=Bc(f.id,$.Success,void 0,T||void 0,f.name);R&&(nt.current.workerId&&En(R),ut(qr(R,rt.current?.activeWorkerTitle)))},"onToolResult"),onToolProgress:i(f=>{if(Qe.current)return;let h=f.message.length>100?f.message.slice(0,97)+"...":f.message,T=Zo(f.id,R=>({...R,preview:h,progressLines:[...(R.progressLines??[]).slice(-4),h]}));T&&nt.current.workerId&&En(T),ut(h)},"onToolProgress"),onStreamEnd:i(()=>{if(Qe.current)return;let f=Ds($.Cancelled,()=>({error:"Stream ended before the tool completed.",output:void 0})),h=f[f.length-1];nt.current.workerId&&f.forEach(T=>En(T)),h&&ut(qr(h,rt.current?.activeWorkerTitle)),J(),_e(),q(void 0)},"onStreamEnd"),hasPendingInputs:i(()=>dy.current.length>0,"hasPendingInputs"),onMidTurnUserMessages:i(f=>{if(!Qe.current)for(let h of f){let T=h.trim();T&&(nt.current.workerId?un({id:`mid-turn-user-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"user",text:T,timestamp:Date.now()}):O({type:"user",text:T}))}},"onMidTurnUserMessages"),onError:i(f=>{let h=Ir();h?.name&&ut(qr(h,rt.current?.activeWorkerTitle));let T=Ds($.Error,()=>({error:f.message,output:void 0})),R=T[T.length-1];nt.current.workerId&&T.forEach(ct=>En(ct)),R&&ut(qr(R,rt.current?.activeWorkerTitle));let E=Cy(f),H=["Transient","Permanent","Tool Call ID","User Abort"];if(E.category===ia.USER_ABORT)return;let X=[`\u274C API Error (${H[E.category]||"Unknown"}): ${f.message}`];E.shouldCleanup&&X.push(" \u{1F9F9} Cleaned incomplete tool calls"),E.category===ia.PERMANENT?(X.push(" \u{1F4A1} This error requires manual intervention. Please check:"),f.message.includes("auth")||f.message.includes("401")?(X.push(" - Your API key is valid"),X.push(" - Run /config to check provider settings")):f.message.includes("400")?(X.push(" - The request parameters are correct"),X.push(" - Try restarting the conversation")):X.push(" - The error details above")):E.category===ia.TRANSIENT?X.push(" \u23F3 Retries exhausted. Press Enter to continue the conversation"):E.category===ia.TOOL_CALL_ID&&X.push(" \u2705 Session cleaned, ready to continue");let oe=X.join(`
|
|
329
|
+
`);!!nt.current.workerId?un({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:oe,timestamp:Date.now()}):O({type:"error",text:oe})},"onError"),onRetry:i((f,h,T)=>{if(Qe.current)return;if(!!nt.current.workerId){let E=Sd(f,h,T);un({...E,id:`retry-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()})}else ag(O,f,h,T)},"onRetry"),onProviderRecovery:i(f=>{if(Qe.current)return;let h=!!nt.current.workerId,T=Ze().trim();if(T&&(h?Dc("assistant",T):O({type:"assistant",text:T})),Ee(),Y(),J(),_e(),q(void 0),kr(),ut(void 0),h){let R=Cd(f);un({...R,id:`recovery-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()})}else cg(O,f)},"onProviderRecovery"),onManagedTaskStatus:i(f=>{if(Qe.current)return;let h=nt.current;if(d0(f)){if(h.workerId&&h.workerId!==f.activeWorkerId)pv({workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle});else if(h.workerId!==f.activeWorkerId){let B=ft.current,X=B.activeToolGroupTools.some(oe=>oe.status===$.Executing);ft.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle,...X?{activeToolGroupItemId:B.activeToolGroupItemId,activeToolGroupTools:B.activeToolGroupTools}:{activeToolGroupTools:[]}},nt.current={workerId:f.activeWorkerId,workerTitle:f.activeWorkerTitle}}}rt.current=f,nf(f);let T=UL(f);gv(T);let R=oc(f),H=oc(f,{expanded:!0})??R;H&&(rf.current=H)},"onManagedTaskStatus"),onProviderRateLimit:i((f,h,T)=>{Qe.current||ro({type:"info",icon:"\u23F3",text:`[Rate Limit] Retrying in ${T/1e3}s (${f}/${h})...`},"ratelimit")},"onProviderRateLimit"),onRetryAfter:i(f=>{if(Qe.current)return;let h=Math.round(f.waitMs/1e3),T=f.source==="exponential-backoff"?"no-header \u2192 backoff":f.source,R=f.reason==="overloaded"?"Overloaded":"Rate limited";ro({type:"info",icon:"\u23F3",text:`[${R}] (${f.provider}) \u2014 retrying in ${h}s [${T}] (${f.attempt}/${f.maxAttempts})`},"ratelimit")},"onRetryAfter"),onRepoIntelligenceTrace:i(f=>{Qe.current||ro(OC(f),"repointel-trace")},"onRepoIntelligenceTrace"),onTodoUpdate:i(f=>{Qe.current||Cr(f)},"onTodoUpdate"),onScoutSuspiciousCompletion:i(f=>{Qe.current||Hd&&ro({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,h)=>{if(Qe.current)return;if(h&&ee(h),rt.current?.globalWorkBudget){let he={...rt.current,budgetUsage:Math.min(rt.current.globalWorkBudget,(rt.current.budgetUsage??0)+1)};rt.current=he,nf(he)}let T=f>1?et().trim():"",R=f>1?jg(Ze()):"",E=f>1?[...Hn.current]:[],H=f>1?[..._t.current]:[],B=!!nt.current.workerId;ie(f),B&&Lc({clearOwner:!1});let X=ir.current.filter(he=>he.status===$.Executing),oe=new Set(X.map(he=>he.id));if(Hn.current=[],_t.current=_t.current.filter(he=>oe.has(he.id)),ln(X),_e(),q(void 0),ut(Ug(rt.current?.activeWorkerTitle?`[Thinking] [${rt.current.activeWorkerTitle}]`:void 0,rt.current?.activeWorkerTitle)),Te(),f>1&&!B){let he=Gg({thinking:T,response:R,toolCalls:H,toolNames:E});if(Es.current)Es.current(he);else for(let ct of he)O(ct)}},"onIterationStart"),beforeToolExecute:i(async(f,h)=>{let T=fn.current,R=vo(T),E=ly.current,H=n.gitRoot;if(jy(D.current,f,h))return`[Skipped] Previously denied operation. ${Gy(D.current)}`;if(T==="plan"&&(xn.has(f)||f==="undo"))return`[Blocked] Tool '${f}' is not allowed in plan mode (read-only). ${a0}`;if(T==="plan"&&f==="bash"){let B=h.command??"";if($n(B))return`[Blocked] Bash write operation not allowed in plan mode: ${B.slice(0,50)}... ${a0}`}if(f==="bash"){let B=h.command??"";if(Pn(B))return!0}if(Yt(T)&&pf==="llm")return!0;if(f==="bash"){let B=h.command??"",X=Wy(B);if(X.level==="dangerous"){let oe=await ao(f,{...h,_dangerousCommand:!0});return oe.confirmed?oe.confirmed:(D.current=Wf(D.current,f,h,X.reason),`[Blocked] Dangerous command requires confirmation: ${X.reason}`)}}if(H){let B=!1;if(xn.has(f)){let X=h.path;X&&Yn(X,H)&&(B=!0)}if(f==="bash"){let X=h.command;X&&zm(X,H)&&(B=!0)}if(B){let X=await ao(f,{...h,_alwaysConfirm:!0});if(fn.current==="plan"&&(xn.has(f)||f==="undo"))return!1;if(fn.current==="plan"&&f==="bash"){let oe=h.command??"";if($n(oe))return!1}return X.confirmed}}if(R.has(f)){if(T==="accept-edits"&&f==="bash"&&await Wr(f,h,E,Ef.current??void 0))return!0;let B=await ao(f,h);if(fn.current==="plan"&&(xn.has(f)||f==="undo"))return!1;if(fn.current==="plan"&&f==="bash"){let X=h.command??"";if($n(X))return!1}if(!B.confirmed)return O({type:"info",text:Z("cancelled")}),D.current=Wf(D.current,f,h),!1;B.always&&T==="accept-edits"&&(Tu(f,h,!1),ly.current=es())}return!0},"beforeToolExecute"),askUser:i(async f=>{let h=f.options?Od(f.options):[],T=await ui($g(f),h,f.multiSelect);return T===void 0?Bf:T},"askUser"),exitPlanMode:i(async f=>fn.current!=="plan"?"not-in-plan-mode":(await ao("exit_plan_mode",{plan:f})).confirmed?(Mf("accept-edits"),!0):!1,"exitPlanMode"),askUserMulti:i(async f=>{let h=f.questions,T={},R="__back__",E=0;for(;E<h.length;){let H=h[E],B=Od(H.options);E>0&&B.push({label:Z("select.back_prev"),value:R});let X=`[${E+1}/${h.length}] ${H.question}`,oe=await ui(X,B,H.multiSelect);if(oe===void 0)return;if(oe===R){E--;continue}T[H.question]=oe,E++}return T},"askUserMulti"),askUserInput:i(async f=>py(f.question,f.default),"askUserInput"),onCompactStart:i(()=>{_()},"onCompactStart"),onCompactStats:i(f=>{xc.current=f.tokensBefore,or(f.tokensAfter)},"onCompactStats"),onCompactedMessages:i((f,h)=>{n.messages=f,h?.artifactLedger&&h.artifactLedger.length>0&&(n.artifactLedger=aa(n.artifactLedger??[],h.artifactLedger)),n.lineage=h?.anchor?$y(n.lineage,f,h.anchor,h.postCompactAttachments??[]):pn(f,n.lineage);let T=lo(f);n.contextTokenSnapshot={currentTokens:T,baselineEstimatedTokens:T,source:"estimate"},Zn(n),or(T),wc.current?.().catch(()=>{})},"onCompactedMessages"),onCompact:i(f=>{W();let h=xc.current??f;xc.current=null;let T=Math.round(h/1e3);ro({type:"info",icon:"\u2728",text:`Context auto-compacted (was ~${T}k tokens)`},"compact")},"onCompact"),onCompactEnd:i(()=>{xc.current=null,W()},"onCompactEnd"),onIterationEnd:i(f=>{f.scope!=="worker"&&(n.contextTokenSnapshot=f.contextTokenSnapshot),or(f.tokenCount)},"onIterationEnd")}),[le,$e,J,dt,q,Ge,Se,_e,ie,Te,N,n,_,W,O,Y,et,Ze,Lc,ut,Dc,mh,En,ph,gh,Bc,Ds,Ir,kr,ln,v.currentTool]),ao=i((f,h)=>{let T=bC(f,h);return new Promise(R=>{oo.current=R,Fc({tool:f,input:h,prompt:T})})},"showConfirmDialog");He(()=>(u(async(f,h,T)=>(await ao(f.name,{...f.input,_reason:`[auto-mode] ${h}`,...T&&T.length>0?{_classifierSignals:T}:{}})).confirmed?"allow":"block"),m(f=>{gf(f)}),()=>{u(null),m(null)}),[]),He(()=>{p(N)},[N,p]);let ta=i(async(f,h,T=n.lineage?Rt(n.lineage,n.lineage.activeEntryId):n.messages,R)=>{let E={...Af(),getCostReport:U},B=ur(n.gitRoot).getSystemPromptSnippet(),X=NC(f.context,n.gitRoot,n.contextTokenSnapshot,B);R&&R.length>0&&(X.inputArtifacts=[...R]),X.planModeBlockCheck=(oe,he)=>fn.current!=="plan"?null:xr(oe,he,n.gitRoot??process.cwd());try{return await ca({...f,session:{...f.session,initialMessages:T},context:X,events:E,abortSignal:we()},h)}finally{Dy()}},"runAgentRound"),lr=V(f=>{let h=pn([...f],n.lineage);return n.lineage=h,h},[n]),na=V(async f=>{if(n.messages.length===0)return;let h=Zi(n.messages),T=Go(f??F.current);F.current=T,n.title=h,n.uiHistory=T;let R=n.lineage??lr(n.messages);n.lineage=R;let E={messages:n.messages,title:h,gitRoot:n.gitRoot??"",uiHistory:T,lineage:R,artifactLedger:n.artifactLedger};"appendSessionDelta"in r&&typeof r.appendSessionDelta=="function"?await r.appendSessionDelta(n.sessionId,E):await r.save(n.sessionId,E),Ad()&&_d("persist",Pd(n.messages,R,{historyItems:ye.current,foregroundItems:cn.current,streamingResponse:M.current.currentResponse,streamingThinking:M.current.thinkingContent,persistedUiHistory:F.current}))},[n,lr,r]),_f=V(()=>{if(Tc.current)return Tc.current;let f=(async()=>{try{for(;Jr.current.requested;){Jr.current.requested=!1;let h=Jr.current.uiHistoryOverride;Jr.current.uiHistoryOverride=void 0,await na(h)}}finally{Tc.current=null,Jr.current.requested&&_f()}})();return Tc.current=f,rh.current=f,f},[na]),di=V(f=>{if(f!==void 0){let h=Go(f);F.current=h,Jr.current.uiHistoryOverride=h}return Jr.current.requested=!0,_f()},[_f]),Ev=V(async()=>{if(As.current)return As.current;let f=(async()=>{Qe.current=!0,Re(),xe(),J(),Y(),_e(),Ee(),q(void 0),Q(!1),await rh.current.catch(()=>{}),await wc.current?.().catch(()=>{}),Kt(!1),b&&C?.isRaw&&w(!1),C?.pause?.(),C?.unref?.(),x(),a()})();return As.current=f.finally(()=>{As.current=null}),As.current},[Re,Ee,Y,_e,x,b,a,q,Q,w,C,xe,J]);He(()=>(wc.current=di,()=>{wc.current=null}),[di]);let gy=V(f=>{if(f.length===0)return;let h=Nd(F.current,f);F.current=h,di(h)},[di]),ra=V(f=>{if(f.length!==0){for(let h of f)O(h);gy(f)}},[O,gy]),ml=V(f=>{if(f.length!==0){for(let h of f)O(h);F.current=Nd(F.current,f)}},[O]);He(()=>(Es.current=ra,()=>{Es.current=null}),[ra]);let hy=V(async f=>{n.messages=f.messages,n.contextTokenSnapshot=f.contextTokenSnapshot,lr(f.messages);let h=f.success===!1&&!f.interrupted,T=et().trim(),R=pT(f.messages,Ze(),f.managedTask?.verdict.summary,f.lastText),E=[...cn.current],H=E.length>0,B=H&&E.some(pe=>pe.type==="assistant"&&"text"in pe&&Ro(String(pe.text??"")).length>0),X=!h&&R&&!B,oe=[...Yo.current],he=h?[]:oe.length===0?Hd?c0(f):c0(f).filter(pe=>!g0(pe)):[],ct=H?[]:Gg({thinking:T,response:void 0,toolCalls:_t.current,toolNames:Hn.current}),Ot=[...E.map(pe=>jo(pe)),...ct,...h?[]:oe.map(pe=>jo(pe)),...he.map(pe=>l0(pe)),...X?[{type:"assistant",text:f.interrupted?`${R}
|
|
330
|
+
|
|
331
|
+
[Interrupted]`:R}]:!R&&!B&&!f.interrupted&&!h?[{type:"info",text:"[No response text was produced for this round]"}]:[]],oa=Nd(F.current,Ot);Y(),Ee();for(let pe of E)O(jo(pe));for(let pe of ct)O(pe);if(!h){for(let pe of he)O(l0(pe));for(let pe of oe)O(jo(pe))}X?O({type:"assistant",text:f.interrupted?`${R}
|
|
332
|
+
|
|
333
|
+
[Interrupted]`:R}):!R&&!B&&!f.interrupted&&!h&&O({type:"info",text:"[No response text was produced for this round]"}),Hn.current=[],_t.current=[],kr(),_e(),q(void 0),ut(void 0),Os(),to.current=[],Yo.current=[],Ps([]),A(),di(oa).catch(()=>{})},[O,A,_e,Ee,Y,n,Ze,et,di,lr,kr,Os,q,ut,v.currentIteration]),pl=V(async f=>{let h=f.trim();h&&(O({type:"user",text:h}),yc(T=>T+1),Zn(n))},[O,n]),gl=V(async(f,h)=>{let T=ea.current;Qe.current=!1,Ms.current=!1,Rs(!0);try{return await ob({initialPrompt:f,runRound:h,shiftPendingPrompt:Ce,onRoundComplete:i(async R=>{ea.current===T&&await hy(R)},"onRoundComplete"),onBeforeQueuedRound:i(async R=>{Qe.current=!1,Ms.current=!1,await pl(R)},"onBeforeQueuedRound"),shouldContinue:i(R=>!Qe.current&&R.success!==!1,"shouldContinue")})}finally{Rs(!1)}},[hy,Ce,pl]),Pf=V(async()=>{let f=Ce();if(!f||!f.trim())return;let h=f.trim();await pl(h),await gl(h,async T=>ta(ze.current,T))},[ta,gl,Ce,pl]),$f=V(f=>{let h=f[f.length-1];if(h?.role!=="assistant")return;let T=$a(h);for(let R of T)O(Pa(R))},[O]),yy=V(async(f,h)=>{let T=await Ed({...ze.current,provider:N.provider,thinking:N.thinking,reasoningMode:N.reasoningMode},f,h,R=>O({type:"info",text:R}));if(T.mode==="manual"){T.manualOutput&&O({type:"info",text:T.manualOutput}),await T.finalize();return}if(!T.prompt||!T.options){await T.finalize();return}Rs(!0);try{let R=T.mode==="fork"?[]:n.lineage?Rt(n.lineage,n.lineage.activeEntryId):n.messages,E=ea.current,H=await ta(T.options,T.prompt,R);if(ea.current!==E)await T.finalize();else{let B=F.current,X=[];if(T.mode==="fork"){let oe=H.messages.find(ct=>ct.role==="user");oe&&n.messages.push(oe);let he=H.messages.slice().reverse().find(ct=>ct.role==="assistant");if(he){n.messages.push({role:"assistant",content:he.content}),lr(n.messages);for(let ct of $a(he)){let Ot=Pa(ct);O(Ot),X.push(Ot)}}}else{n.messages=H.messages,n.contextTokenSnapshot=H.contextTokenSnapshot,lr(H.messages),$f(H.messages);let oe=H.messages[H.messages.length-1];if(oe?.role==="assistant")for(let he of $a(oe))X.push(Pa(he))}await na(Nd(B,X)),Ad()&&_d("round-end",Pd(n.messages,n.lineage,{historyItems:ye.current,foregroundItems:cn.current,streamingResponse:M.current.currentResponse,streamingThinking:M.current.thinkingContent,persistedUiHistory:F.current})),await T.finalize()}}catch(R){let E=R instanceof Error?R:new Error(String(R));throw await T.finalize(E),Rs(!1),E}Rs(!1),await Pf()},[O,$f,n,N.provider,N.thinking,Pf,na,lr,ta]),Mv=V(async f=>{for(let h of f.pastedContents)if(h.type==="text"&&!h.content&&h.contentHash)try{let T=await Ru(h.contentHash);T&&(h.content=T)}catch{}},[]),Av=V(async f=>{let{displayText:h,fullText:T,pastedContents:R}=f;if(!T.trim()||!Be||Ye||Me)return;for(let pe of R){if(pe.type!=="text"||pe.content.length<1024)continue;let ke=ET(pe.content);MT(ke,pe.content)}if(yh(!1),ve){if(!zd)return;if(v.pendingInputs.length>=5){ro({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(rb(T)){ro({type:"info",icon:"\u26A0",text:tb},nb);return}let pe=v.currentTool;if(pe&&Tl(pe)?.interruptBehavior==="cancel"){Le(T),Re({preservePendingInputs:!0}),Cc(""),Sc(!0),yc(tn=>tn+1),Zn(n);return}Le(T),Cc(""),Sc(!0),yc(ke=>ke+1),Zn(n);return}let E=jg(Ze()),H=cn.current.map(pe=>jo(pe)),B=H.length>0;H.length>0&&ml(H),!B&&E&&ml([{type:"assistant",text:E+`
|
|
334
|
+
|
|
335
|
+
[Interrupted]`}]),ml([{type:"user",text:h}]),Cc(""),Sc(!0),yc(pe=>pe+1),Ad()&&_d("turn-start",Pd(n.messages,n.lineage,{historyItems:ye.current,foregroundItems:cn.current,streamingResponse:M.current.currentResponse,streamingThinking:M.current.thinkingContent,persistedUiHistory:F.current})),Q(!0),Qe.current=!1,Ms.current=!1,++ea.current,nf(null),rt.current=null,rf.current=null,ut(void 0),Os(),to.current=[],Yo.current=[],Ps([]),Bs(),_c(void 0),Hn.current=[],_t.current=[],kr(),Ee(),_e(),q(void 0),A(),re(),Zn(n),await new Promise(pe=>setTimeout(pe,50));let X=os(T.trim());if(X){let pe={exit:Ev,saveSession:i(async()=>{if(n.messages.length>0){let j=Zi(n.messages);n.title=j;let ae=n.lineage??lr(n.messages);n.lineage=ae,await r.save(n.sessionId,{messages:n.messages,title:j,gitRoot:n.gitRoot??"",uiHistory:F.current,lineage:ae,artifactLedger:n.artifactLedger})}},"saveSession"),startNewSession:i(()=>{let j=tc(),ae=new Date().toISOString();n.sessionId=j,n.title="",n.uiHistory=[],n.contextTokenSnapshot=void 0,n.lineage=void 0,n.artifactLedger=void 0,F.current=[],n.createdAt=ae,n.lastAccessed=ae,ze.current.session={...ze.current.session,id:j},or(null),I(),Cr([]),ku()?.reset(),ce(j)},"startNewSession"),loadSession:i(async j=>{let ae=await r.load(j);return ae?Fo(N,"Resuming a saved session",Bd)?(n.messages=ae.messages,n.uiHistory=bs(ae.uiHistory),n.lineage=ae.lineage,n.artifactLedger=ae.artifactLedger,n.title=ae.title,n.sessionId=j,n.contextTokenSnapshot=void 0,F.current=n.uiHistory??[],or(null),I(),Cr([]),ce(j),console.log(Xe.green(`[Session loaded: ${j}]`)),"loaded"):"blocked":"missing"},"loadSession"),listSessions:i(async()=>{let j=await r.list(n.gitRoot??void 0);if(j.length===0){console.log(Xe.dim(`
|
|
336
|
+
[No saved sessions]`));return}console.log(Xe.bold(`
|
|
337
|
+
Recent Sessions:
|
|
338
|
+
`));for(let ae of j.slice(0,10))console.log(` ${Xe.cyan(ae.id)} ${Xe.dim(`(${ae.msgCount} messages)`)} ${ae.title.slice(0,40)}`);console.log()},"listSessions"),clearHistory:i(()=>{n.uiHistory=[],I(),Cr([])},"clearHistory"),printHistory:i(()=>{if(n.messages.length===0){console.log(Xe.dim(`
|
|
339
|
+
[No conversation history]`));return}console.log(Xe.bold(`
|
|
340
|
+
Conversation History:
|
|
341
|
+
`));let j=n.messages.slice(-20);for(let ae=0;ae<j.length;ae++){let Ie=j[ae],fi=Xe.cyan(Ie.role.padEnd(10)),Ty=La(Ie.content),Ov=Ty.slice(0,60).replace(/\n/g," "),Dv=Ty.length>60?"...":"";console.log(` ${(ae+1).toString().padStart(2)}. ${fi} ${Ov}${Dv}`)}console.log()},"printHistory"),switchProvider:i((j,ae)=>{Oe(Ie=>({...Ie,provider:j,model:ae})),ze.current.provider=j,ze.current.model=ae},"switchProvider"),setThinking:i(j=>{let ae=j?"auto":"off";Oe(Ie=>({...Ie,thinking:j,reasoningMode:ae})),ze.current.thinking=j,ze.current.reasoningMode=ae},"setThinking"),setReasoningMode:i(j=>{let ae=j!=="off";Oe(Ie=>({...Ie,thinking:ae,reasoningMode:j})),ze.current.thinking=ae,ze.current.reasoningMode=j},"setReasoningMode"),setAgentMode:i(j=>{Oe(ae=>({...ae,agentMode:j})),ze.current.agentMode=j},"setAgentMode"),setPermissionMode:i(j=>{Mf(j)},"setPermissionMode"),setRepoIntelligenceRuntime:i(j=>{Oe(ae=>({...ae,...j.mode!==void 0?{repoIntelligenceMode:j.mode}:{},...j.endpoint!==void 0?{repointelEndpoint:j.endpoint??void 0}:{},...j.bin!==void 0?{repointelBin:j.bin??void 0}:{},...j.trace!==void 0?{repoIntelligenceTrace:j.trace}:{}})),j.mode!==void 0&&(process.env.KODAX_REPO_INTELLIGENCE_MODE=j.mode,ze.current.context={...ze.current.context,repoIntelligenceMode:j.mode}),j.trace!==void 0&&(j.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,ze.current.context={...ze.current.context,repoIntelligenceTrace:j.trace}),j.endpoint!==void 0&&(j.endpoint?process.env.KODAX_REPOINTEL_ENDPOINT=j.endpoint:delete process.env.KODAX_REPOINTEL_ENDPOINT),j.bin!==void 0&&(j.bin?process.env.KODAX_REPOINTEL_BIN=j.bin:delete process.env.KODAX_REPOINTEL_BIN)},"setRepoIntelligenceRuntime"),deleteSession:i(async j=>{await r.delete?.(j)},"deleteSession"),deleteAllSessions:i(async()=>{await r.deleteAll?.(n.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:i(async()=>{let j=await r.getLineage?.(n.sessionId);if(!j){console.log(Xe.dim(`
|
|
342
|
+
[No session tree available for this session]`));return}let ae=vd(wl(j));console.log(Xe.bold(`
|
|
343
|
+
Session Tree:
|
|
344
|
+
`)),ae.forEach(Ie=>console.log(` ${Ie}`)),console.log()},"printSessionTree"),switchSessionBranch:i(async j=>{if(!Fo(N,"Switching session branches",Bd))return"blocked";let Ie=await r.setActiveEntry?.(n.sessionId,j,{summarizeCurrentBranch:!0});return Ie?(n.messages=Ie.messages,n.uiHistory=bs(Ie.uiHistory),n.title=Ie.title,n.contextTokenSnapshot=void 0,F.current=n.uiHistory??[],or(null),I(),Cr([]),console.log(Xe.green(`
|
|
345
|
+
[Switched to tree entry: ${j}]`)),console.log(Xe.dim(` Messages: ${Ie.messages.length}`)),"switched"):"missing"},"switchSessionBranch"),labelSessionBranch:i(async(j,ae)=>{if(!await r.setLabel?.(n.sessionId,j,ae))return!1;let fi=ae&&ae.trim()?`checkpoint label set: ${ae.trim()}`:"checkpoint label cleared";return console.log(Xe.green(`
|
|
346
|
+
[${fi}]`)),!0},"labelSessionBranch"),forkSession:i(async j=>{if(!Fo(N,"Forking a session branch",Bd))return"blocked";let Ie=await r.fork?.(n.sessionId,j);if(!Ie)return"failed";n.sessionId=Ie.sessionId,n.messages=Ie.data.messages,n.uiHistory=bs(Ie.data.uiHistory),n.title=Ie.data.title,n.contextTokenSnapshot=void 0,F.current=n.uiHistory??[];let fi=new Date().toISOString();return n.createdAt=fi,n.lastAccessed=fi,ze.current.session={...ze.current.session,id:Ie.sessionId},or(null),I(),Cr([]),ce(Ie.sessionId),console.log(Xe.green(`
|
|
347
|
+
[Forked session: ${Ie.sessionId}]`)),console.log(Xe.dim(` Messages: ${Ie.data.messages.length}`)),"forked"},"forkSession"),rewindSession:i(async j=>{if(!Fo(N,"Rewinding session",Bd))return"blocked";let Ie=await r.rewind?.(n.sessionId,j);return Ie?(n.messages=Ie.messages,n.uiHistory=bs(Ie.uiHistory),n.title=Ie.title,n.contextTokenSnapshot=void 0,F.current=n.uiHistory??[],or(null),I(),Cr([]),console.log(Xe.green(`
|
|
348
|
+
[Rewound session${j?` to ${j}`:" to previous turn"}]`)),console.log(Xe.dim(` Messages: ${Ie.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:i(()=>U.current?.()??null,"getCostReport"),getAutoModeStats:i(()=>{if(Yt(fn.current))return l.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:i(j=>{Yt(fn.current)&&(l.getGuardrail().setEngine(j),gf(j))},"setAutoModeEngine"),createKodaXOptions:i(()=>({...ze.current,provider:N.provider,model:N.model,thinking:N.thinking,reasoningMode:N.reasoningMode,agentMode:N.agentMode,guardrails:Bg(fn.current,l),events:Af()}),"createKodaXOptions"),reloadAgentsFiles:i(async()=>{let j=await Hf({cwd:process.cwd(),projectRoot:n.gitRoot??void 0});return g(j),j},"reloadAgentsFiles"),startCompacting:i(()=>{_()},"startCompacting"),stopCompacting:i(()=>{W()},"stopCompacting"),confirm:i(async j=>(await ao("confirm",{_alwaysConfirm:!0,_message:j})).confirmed,"confirm"),ui:{select:i(async(j,ae)=>Rv(j,ae),"select"),confirm:i(async j=>(await ao("confirm",{_alwaysConfirm:!0,_message:j})).confirmed,"confirm"),input:i(async(j,ae)=>py(j,ae),"input")}},ke=[],tn=console.log;console.log=(...j)=>{let ae=j.map(Ie=>typeof Ie=="string"?Ie:String(Ie)).join(" ");ke.push(ae)};let mn;try{let j=await is(X,n,pe,N);typeof j=="object"&&j!==null&&"invocation"in j&&(mn=j.invocation)}finally{console.log=tn}if(ke.length>0&&O({type:"info",text:ke.join(`
|
|
349
|
+
`)}),mn){Q(!1),xe(),Q(!0),re(),Te();try{await yy(mn,T.trim())}catch(j){let ae=j instanceof Error?j:new Error(String(j)),Ie=ae.name==="AbortError"||ae.message.includes("aborted")||ae.message.includes("ABORTED");console.log=tn,Ie?ul():ra([{type:"error",text:ae.message}])}finally{Q(!1),xe(),Y()}return}Q(!1),xe();return}let oe=await sg(T.trim());if(T.trim().startsWith("!")&&nc(oe)){Q(!1),xe();return}let he=ze.current.context?.executionCwd??process.cwd(),ct=i(pe=>{pe.length!==0&&ra(pe.map(ke=>({type:"info",text:ke})))},"emitArtifactWarnings");Te();let Ot=[],oa=console.log;console.log=(...pe)=>{let ke=pe.map(tn=>typeof tn=="string"?tn:String(tn)).join(" ");Ot.push(ke)};try{await gl(oe,async pe=>{let ke=rc(pe,ze.current.context?.executionCwd??process.cwd());return ct(ke.warnings),ta(ze.current,ke.promptText,n.messages,ke.inputArtifacts)})}catch(pe){let ke=pe instanceof Error?pe:new Error(String(pe));if(ke.name==="AbortError"||ke.message.includes("aborted")||ke.message.includes("ABORTED"))console.log=oa,ul();else{let mn=ke.message;ke.message.includes("rate limit")||ke.message.includes("Rate limit")?mn=`[Rate Limit] ${ke.message}
|
|
350
|
+
Suggestion: Wait a moment and try again, or switch provider with /mode`:ke.message.includes("API key")||ke.message.includes("not configured")?mn=`[Configuration Error] ${ke.message}
|
|
351
|
+
Suggestion: Set the required API key environment variable`:ke.message.includes("network")||ke.message.includes("ECONNREFUSED")||ke.message.includes("ETIMEDOUT")?mn=`[Network Error] ${ke.message}
|
|
352
|
+
Suggestion: Check your internet connection`:(ke.message.includes("token")||ke.message.includes("context too long"))&&(mn=`[Context Error] ${ke.message}
|
|
353
|
+
Suggestion: Use /clear to start fresh`),console.log=oa,nt.current.workerId?un({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:mn,timestamp:Date.now()}):ra([{type:"error",text:mn}])}}finally{if(console.log=oa,Ot.length>0){let ke=Ot.filter((tn,mn,j)=>j.indexOf(tn)===mn);O({type:"info",text:ke.join(`
|
|
354
|
+
`)})}if(!Qe.current){let ke=Ds($.Cancelled,()=>({error:"Run ended before the tool result was observed.",output:void 0}));ke.length>0&&nt.current.workerId&&ke.forEach(tn=>En(tn))}Q(!1),xe(),Ee(),Y();let pe=lo(n.messages);n.contextTokenSnapshot={currentTokens:pe,baselineEstimatedTokens:pe,source:"estimate"},or(pe)}},[Be,n,N,zd,v.pendingInputs.length,r,Ye,Me,x,a,O,I,re,xe,Ee,Af,yy,we,Ze,et,ml,$f,na,lr,gl,Pf,_,W,kr,Ds,En,Bs]),_v=se(cd,{left:se(sd,{items:Fh}),right:se(ad,{items:Wh}),queued:se(Zp,{pendingInputs:v.pendingInputs}),stashNotice:se(gd,{text:rl}),notifications:se(pd,{notifications:nl}),inlineNotices:Tf.length>0?se(eg,{notices:Tf}):void 0,activityBar:_r||ve&&ar.shouldRender?Gt(k,{paddingX:1,flexDirection:"row",children:[Gt(k,{flexGrow:1,children:[_r?.showSpinner?se(Cn,{color:te("dark").colors.accent}):null,_r?Gt(S,{color:_r.kind==="waiting"?te("dark").colors.warning:te("dark").colors.accent,children:[_r.showSpinner?" ":"",_r.text]}):null,_r?.showSpinner&&v.roundStartedAt!=null?se(oS,{roundStartedAt:v.roundStartedAt,charCount:v.currentResponse.length,theme:te("dark")}):null]}),ve&&ar.shouldRender?se(S,{dimColor:!0,children:`${ar.completedCount}/${ar.totalCount} completed`}):null]}):void 0,todoSurface:ve&&ar.shouldRender?se(k,{paddingX:1,children:se(gC,{viewModel:ar})}):void 0,composer:se(Gp,{onSubmit:Av,onHistoryRecall:Mv,onPopPendingInputs:i(()=>{let f=Ne();if(f.length!==0)return f.join(`
|
|
355
|
+
---
|
|
356
|
+
`)},"onPopPendingInputs"),prompt:">",placeholder:Db({isLoading:ve,canQueueFollowUps:zd,waitingReason:hf}),focus:!Ye&&!Me&&!ot,cwd:process.cwd(),gitRoot:e.context?.gitRoot||n.gitRoot,onInputChange:yv}),inlineSuggestions:Cv,helpSurface:hh?se(Vp,{sections:$d()}):void 0,taskBar:zs?se(hd,{items:ri.backgroundTask.items,overflowLabel:ri.backgroundTask.overflowLabel,ctaHint:ri.backgroundTask.ctaHint,showSpinner:ve}):void 0,statusLine:se(k,{children:se(fs,{...el,viewModel:Bh})}),inlineDialogs:vv}),Pv=se(cd,{left:se(sd,{items:Fh}),right:se(ad,{items:Wh}),stashNotice:se(gd,{text:rl}),notifications:se(pd,{notifications:nl}),composer:se(dC,{searchActive:ot,selectionActive:!!(sr||Ve),showAllActive:Ct,searchQuery:Ft,searchCurrent:bt.length>0?Mr+1:0,searchCount:bt.length,searchDetailText:mf,pendingLiveUpdates:Ws,secondaryText:Tv}),taskBar:zs?se(hd,{items:ri.backgroundTask.items,overflowLabel:ri.backgroundTask.overflowLabel,ctaHint:ri.backgroundTask.ctaHint,showSpinner:it}):void 0,statusLine:se(k,{children:se(fs,{...el,viewModel:xf})})}),Lf=V(f=>se(fC,{banner:f?.bannerVisible?se(Fg,{...io}):void 0,items:Gs,isLoading:Wt,viewportRows:Ut.messageRows,viewportWidth:z,scrollOffset:In,windowed:!!f?.rendererWindow,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Ks:zc,maxLines:ht,selectedTextRanges:lf?Ec?.rowRanges:void 0,onMetricsChange:il,onVisibleRowsChange:sl}),[io,Gs,Wt,il,sl,In,zc,z,ht,Ec?.rowRanges,Ut.messageRows,lf]),Of=V(f=>se(mC,{banner:f?.bannerVisible?se(Fg,{...io}):void 0,items:js,browse:{hintText:Ar.browseHintText},selection:ol,search:Oh,isLoading:it,isThinking:me.isThinking,thinkingCharCount:me.thinkingCharCount,thinkingContent:me.thinkingContent,streamingResponse:me.currentResponse,currentTool:me.currentTool,activeToolCalls:me.activeToolCalls,toolInputCharCount:me.toolInputCharCount,toolInputContent:me.toolInputContent,iterationHistory:me.iterationHistory,currentIteration:me.currentIteration,isCompacting:me.isCompacting,agentMode:N.agentMode,managedPhase:it?G?.phase:void 0,managedHarnessProfile:it?G?.harnessProfile:void 0,managedWorkerTitle:it?G?.activeWorkerTitle:void 0,managedRound:it?G?.currentRound:void 0,managedMaxRounds:it?G?.maxRounds:void 0,managedGlobalWorkBudget:it?G?.globalWorkBudget:void 0,managedBudgetUsage:it?G?.budgetUsage:void 0,managedBudgetApprovalRequired:it?G?.budgetApprovalRequired:void 0,lastLiveActivityLabel:me.lastLiveActivityLabel,viewportRows:Ut.messageRows,viewportWidth:z,scrollOffset:In,windowed:!!f?.windowed,animateSpinners:!!f?.rendererWindow&&ii,rendererWindow:f?.rendererWindow,transcriptModel:f?.rendererWindow?Ks:Xc,maxLines:ht,showDetailedTools:Ct,showAllContent:Ct,selectedItemId:dn.selectionEnabled?Ve:void 0,selectedTextRanges:Zr?.rowRanges,expandedItemKeys:dn.selectionEnabled?Zt:void 0,onMetricsChange:il,onVisibleRowsChange:sl}),[io,N.agentMode,it,Zt,s.transcriptSpinnerAnimation,il,sl,In,Ih,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,Ks,Xc,Ar.browseHintText,Ve,ol,z,ii,js,ht,me.activeToolCalls,me.currentIteration,me.currentResponse,me.currentTool,me.isCompacting,me.isThinking,me.iterationHistory,me.lastLiveActivityLabel,me.thinkingCharCount,me.thinkingContent,me.toolInputCharCount,me.toolInputContent,Zr?.rowRanges,Oh,Ct,Ut.messageRows]),$v=ne?Of({bannerVisible:!1,windowed:yt}):Lf({bannerVisible:!1}),xy=ne?Pv:_v,Lv=s.enabled&&ti,wy=Gt(k,{flexDirection:"column",width:z,flexShrink:0,flexGrow:Lv?1:0,children:[se(hg,{currentConfig:N,setCurrentConfig:Oe,isLoading:ve,abort:Re,stopThinking:J,clearThinkingContent:Y,setCurrentTool:q,setIsLoading:Q,onToggleHelp:hv,setShowHelp:yh,onSetThinking:i(f=>{ze.current.thinking=f},"onSetThinking"),onSetReasoningMode:i(f=>{ze.current.reasoningMode=f,ze.current.thinking=f!=="off"},"onSetReasoningMode"),onToggleTranscriptMode:Iv,onOpenTranscriptSearch:bf,canOpenTranscriptSearch:ne&&!Ye&&!Me,isInteractiveDialogActive:!!(Ye||Me),onSetAgentMode:i(f=>{ze.current.agentMode=f},"onSetAgentMode"),onSetPermissionMode:i(f=>{Mf(f)},"onSetPermissionMode"),isInputEmpty:Xd,onSavePermissionMode:Na}),rr&&(s.enabled?null:se(Vi,{items:[1],children:i(()=>se(Fg,{...io},"banner"),"children")})),ti?se(Fp,{width:z,stickyHeader:Ar.stickyHeader,jumpToLatest:Ar.jumpToLatest,transcript:!s.enabled||!yt?ne?Of({bannerVisible:!1}):Lf({bannerVisible:!1}):void 0,renderTranscriptWindow:s.enabled&&yt?f=>(()=>{let T=Qs(f).contentWindow;return ne?Of({bannerVisible:!1,windowed:!0,rendererWindow:T}):Lf({bannerVisible:!1,rendererWindow:T})})():void 0,overlay:kf,scrollTop:In,scrollHeight:qs,viewportHeight:Ut.messageRows,stickyScroll:!ne&&!Rr&&Qd,scrollRef:ov,onWindowChange:bv,onScrollTopChange:sv,onStickyChange:av,footer:xy}):Gt(OL,{children:[Gt(k,{flexDirection:"column",flexGrow:1,children:[$v,kf?se(k,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:kf}):null]}),xy]})]});return cf?se(km,{mouseTracking:Er.usesRendererMouseTracking,children:wy}):wy},"InkREPLInner"),zL=i(e=>{let t=process.cwd(),n=e.options?.context?.gitRoot??void 0;return se(ud,{children:se(yd,{children:se(cu,{children:se(pg,{children:se(wp,{cwd:t,gitRoot:n,children:se(VL,{...e})})})})})})},"InkREPL");function XL(){return process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function"}i(XL,"isRawModeSupported");async function Kg(e){if(!XL())throw new Nf("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 ys,n=ho(),r=yo(),o=xo(n,r),{prepareRuntimeConfig:s,getGitRoot:a}=await import("./utils-FAFUQJ2A.js"),{loadCompactionConfig:c}=await import("./compaction-config-LT5PEXPT.js"),{resolveProvider:l}=await import("./dist-V3BS2NKB.js"),u=s(),m=e.provider??u.provider??hl,p=e.model??u.model,g=DL(e,u),x=e.agentMode??u.agentMode??"ama",y=g!=="off",C=Xn(u.permissionMode,"accept-edits")??"accept-edits",w=xl(),b=u.repoIntelligenceTrace===!0,P={provider:m,model:p,thinking:y,reasoningMode:g,agentMode:x,permissionMode:C,repoIntelligenceMode:w.mode,repointelEndpoint:w.endpoint,repointelBin:w.bin,repoIntelligenceTrace:b},L=e.session?.id,U=[],D,O,I,ce="",ye=await a().catch(()=>null)??void 0,F=yl({meta:{cwd:process.cwd(),startedAt:Date.now()}});if(F){let J=i(()=>{F.shutdown()},"teamModeCleanup");process.on("exit",J),process.on("SIGTERM",J)}try{let{bootstrapConstructionRuntime:J}=await import("./construction-bootstrap-HBCWJFHC.js"),Y=await J(ye??process.cwd());if(Y.loaded>0||Y.failed>0||Y.tampered>0){let q=Y.failed>0?`; ${Y.failed} failed (see warnings above)`:"",Ge=Y.tampered>0?`; ${Y.tampered} skipped due to manifest contentHash mismatch \u2014 re-stage and re-activate to re-approve`:"";console.log(Xe.dim(`[Constructed] Rehydrated ${Y.loaded} active tool(s)${q}${Ge}.`))}}catch(J){console.warn(Xe.yellow(`[Constructed] Bootstrap failed: ${J.message}. Self-construction disabled this session.`))}let z;try{let J=await c(ye),Y=l(m);z={contextWindow:J.contextWindow??Y.getContextWindow?.()??2e5,triggerPercent:J.triggerPercent,enabled:J.enabled}}catch{}if(e.session?.id&&!e.session.resume){let J=await t.load(e.session.id);J&&(U=J.messages,D=bs(J.uiHistory),O=J.lineage,I=J.artifactLedger,ce=J.title,L=e.session.id,console.log(Xe.green(`[Session loaded: ${e.session.id}]`)))}else if(e.session?.resume||e.session?.autoResume){let J=await t.list(ye);if(J.length>0){let Y=J[0];if(Y){let q=await t.load(Y.id);q&&(U=q.messages,D=bs(q.uiHistory),O=q.lineage,I=q.artifactLedger,ce=q.title,L=Y.id,console.log(Xe.green(`[Continuing session: ${Y.id}]`)))}}}let v=await ec({sessionId:L,gitRoot:ye,existingMessages:U,existingUiHistory:D,existingLineage:O,existingArtifactLedger:I});v.title=ce;let re={current:await Hf({cwd:process.cwd(),projectRoot:ye??void 0})},xe={current:null},Re={current:null},Te={current:P},le=wu(),$e=await kd({askUser:i(async(J,Y,q)=>{let Ge=xe.current;return Ge?Ge(J,Y,q):"block"},"askUser"),projectRoot:ye??process.cwd(),getAgentsFiles:i(()=>re.current,"getAgentsFiles"),getCurrentProviderName:i(()=>Te.current.provider,"getCurrentProviderName"),getCurrentModel:i(()=>Te.current.model,"getCurrentModel"),getCurrentPermissionMode:i(()=>Te.current.permissionMode,"getCurrentPermissionMode"),autoModeSettings:le,log:i((J,Y)=>{J==="warn"?console.warn(Xe.yellow(Y)):console.log(Xe.dim(Y))},"log"),onEngineChange:i(J=>{Re.current?.(J)},"onEngineChange"),extraCollectors:[Ma]});try{let J=process.stdout,Y=process.stdin;import("./paste-5DSTHQGK.js").then(Ee=>Ee.prunePasteTmpDir()).catch(()=>{});let q=!1,{waitUntilExit:Ge,cleanup:Se}=tu(se(zL,{options:e,config:P,context:v,storage:t,compactionInfo:z,rendererMode:r,fullscreenPolicy:o,autoModeBootstrap:$e,setAutoModeAskUser:i(Ee=>{xe.current=Ee},"setAutoModeAskUser"),setAutoModeEngineChange:i(Ee=>{Re.current=Ee},"setAutoModeEngineChange"),setCurrentConfigRef:i(Ee=>{Te.current=Ee},"setCurrentConfigRef"),onAgentsFilesReload:i(Ee=>{re.current=Ee},"onAgentsFilesReload"),onExit:i(()=>{q=!0},"onExit")}),{stdout:J,stdin:Y,exitOnCtrlC:!1,patchConsole:!1,maxFps:30,shellMode:o.enabled?o.promptShell:"main-screen"});await Ge(),Se(),F?.shutdown(),Y.isTTY===!0&&typeof Y.setRawMode=="function"&&Y.isRaw&&Y.setRawMode(!1),Y.pause?.(),Y.unref?.(),q&&console.log(Xe.dim(`
|
|
357
|
+
[Exiting KodaX...]`));let _e=e.hardExitOnClose??process.env.VITEST!=="true";if(q&&_e){let Ee=process.exitCode??0,dt=!1,we=i(()=>{dt||(dt=!0,process.exit(Ee))},"requestProcessExit");setTimeout(we,0).unref?.(),J.write("",we);return}}catch(J){throw J instanceof Error&&J.message.includes("Raw mode")?new Nf("Interactive mode failed to start.",['kodax -p "your task" # Run a single task',"kodax -c # Continue last session"]):J}}i(Kg,"runInkInteractiveMode");import an from"chalk";var x0=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],w0=["\x1B[36m","\x1B[35m","\x1B[34m"],ac=null,vs=!1;function sc(){let e=0,t=0,n=!1,r="Thinking...",o=i(()=>{if(n)return;let c=w0[t%w0.length],l="\x1B[0m",u=x0[e%x0.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 ac=a,a}i(sc,"startWaitingDots");function YL(e=!0){let t=null,n=0,r=!1;return{onSessionStart:i(s=>{console.log(e?an.cyan(`[KodaX] Provider: ${s.provider} | Session: ${s.sessionId}`):an.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=sc()),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(an.dim(`[Thinking] ${c}`))}},"onThinkingEnd"),onToolUseStart:i(s=>{t||(vs||(process.stdout.write(`
|
|
358
|
+
`),vs=!0),t=sc()),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())&&(vs||(process.stdout.write(`
|
|
359
|
+
`),vs=!0,r=!1),t=sc(),t.updateText(`Receiving ${s}... (${l} chars)`))},"onToolInputDelta"),onToolResult:i(s=>{t&&(t.stop(),t=null),console.log(an.green(`[Result] ${s.content.slice(0,300)}${s.content.length>300?"...":""}`))},"onToolResult"),onRepoIntelligenceTrace:i(s=>{t&&(t.stop(),t=null),console.log(an.dim(`[RepoIntel] ${s.summary}`))},"onRepoIntelligenceTrace"),onStreamEnd:i(()=>{ac&&!ac.isStopped()&&ac.stop(),ac=null,vs=!1,r&&(console.log(),r=!1),(!t||t.isStopped())&&(t=sc(),t.updateText("Processing..."))},"onStreamEnd"),onIterationStart:i((s,a)=>{t&&!t.isStopped()&&t.stop(),vs=!1,r=!1,console.log(an.magenta(`
|
|
360
|
+
[Assistant]`)),t=sc()},"onIterationStart"),onCompactStart:i(()=>{console.log(an.dim(`
|
|
361
|
+
[KodaX] Compacting context...`))},"onCompactStart"),onCompact:i(s=>{console.log(an.dim(`[KodaX] Compaction finished (${s} tokens).`))},"onCompact"),onCompactEnd:i(()=>{},"onCompactEnd"),onRetry:i((s,a,c)=>{console.log(an.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(an.yellow(`[KodaX] ${a} (${s.errorClass}, ${s.stage})`))},"onProviderRecovery"),onComplete:i(()=>{t&&(t.stop(),t=null),console.log(an.green(`
|
|
362
|
+
[KodaX] Done!`))},"onComplete"),onError:i(s=>{t&&(t.stop(),t=null),console.log(an.red(`
|
|
363
|
+
[Error] ${s.message}`))},"onError"),onScoutSuspiciousCompletion:i(s=>{console.log(an.yellow(`
|
|
364
|
+
[Scout] Completion marked uncertain \u2014 signals: ${s.signals.join(", ")}. Verify the result before continuing.`))},"onScoutSuspiciousCompletion"),beforeToolExecute:i(async(s,a)=>!0,"beforeToolExecute")}}i(YL,"createCliEvents");function at(e,t){e.write(`${JSON.stringify(t)}
|
|
365
|
+
`)}i(at,"writeJsonLine");function qL(e){return{type:"error",name:e.name,message:e.message,stack:e.stack}}i(qL,"serializeError");function QL(e={}){let t=e.stdout??process.stdout,n=e.stderr??process.stderr;return{onSessionStart:i(r=>{at(t,{type:"session.start",provider:r.provider,sessionId:r.sessionId})},"onSessionStart"),onIterationStart:i((r,o)=>{at(t,{type:"iteration.start",iter:r,maxIter:o})},"onIterationStart"),onIterationEnd:i(r=>{at(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=>{at(t,{type:"text.delta",text:r})},"onTextDelta"),onThinkingDelta:i(r=>{at(t,{type:"thinking.delta",text:r})},"onThinkingDelta"),onThinkingEnd:i(r=>{at(t,{type:"thinking.end",thinking:r})},"onThinkingEnd"),onToolUseStart:i(r=>{at(t,{type:"tool.start",id:r.id,name:r.name,input:r.input})},"onToolUseStart"),onToolInputDelta:i((r,o,s)=>{at(t,{type:"tool.input.delta",toolName:r,partialJson:o,toolId:s?.toolId})},"onToolInputDelta"),onToolResult:i(r=>{at(t,{type:"tool.result",id:r.id,name:r.name,content:r.content})},"onToolResult"),onStreamEnd:i(()=>{at(t,{type:"stream.end"})},"onStreamEnd"),onCompactStart:i(()=>{at(t,{type:"compact.start"})},"onCompactStart"),onCompact:i(r=>{at(t,{type:"compact.finish",estimatedTokens:r})},"onCompact"),onCompactStats:i(r=>{at(t,{type:"compact.stats",tokensBefore:r.tokensBefore,tokensAfter:r.tokensAfter})},"onCompactStats"),onCompactEnd:i(()=>{at(t,{type:"compact.end"})},"onCompactEnd"),onRetry:i((r,o,s)=>{at(t,{type:"retry",reason:r,attempt:o,maxAttempts:s})},"onRetry"),onProviderRecovery:i(r=>{at(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)=>{at(t,{type:"provider.rate_limit",attempt:r,maxRetries:o,delayMs:s})},"onProviderRateLimit"),onRepoIntelligenceTrace:i(r=>{at(t,{type:"repo_intelligence.trace",stage:r.stage,summary:r.summary,capability:r.capability,trace:r.trace})},"onRepoIntelligenceTrace"),onToolProgress:i(r=>{at(t,{type:"tool.progress",id:r.id,message:r.message})},"onToolProgress"),onManagedTaskStatus:i(r=>{at(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=>{at(t,{type:"scout.suspicious_completion",confidence:r.confidence,signals:r.signals,sessionId:r.sessionId,lastTextPreview:r.lastTextPreview})},"onScoutSuspiciousCompletion"),onComplete:i(()=>{at(t,{type:"complete"})},"onComplete"),onError:i(r=>{at(n,qL(r))},"onError")}}i(QL,"createJsonEvents");import{jsx as lt,jsxs as Qt}from"react/jsx-runtime";import n1,{useMemo as cc}from"react";var Vg=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@.*$/,T0=/^---\s+(.+)$/;function S0(e){if(!e)return[];let t=e.split(`
|
|
366
|
+
`),n=[],r=[],o=[],s=!1,a=null,c=null,l=0,u=0,m=i(()=>{if(r.length===0)return;let g=r.join(`
|
|
367
|
+
`);g.length>0&&n.push({kind:"text",text:g}),r=[]},"flushText"),p=i(()=>{o.length!==0&&(n.push({kind:"diff",text:o.join(`
|
|
368
|
+
`),addedLines:l,removedLines:u,filePath:c}),o=[],l=0,u=0,c=null)},"flushDiff");for(let g=0;g<t.length;g++){let x=t[g];if(!s){let w=T0.exec(x);if(w){let b=Math.min(g+3,t.length-1),P=!1;for(let L=g+1;L<=b;L++)if(t[L]?.startsWith("+++ ")||Vg.test(t[L]??"")){P=!0;break}if(P){m(),s=!0,a=w[1]??null,c=a,o.push(x);continue}}if(Vg.test(x)){m(),s=!0,o.push(x);continue}r.push(x);continue}let y=T0.exec(x);if(y){let w=Math.min(g+3,t.length-1),b=!1;for(let P=g+1;P<=w;P++)if(t[P]?.startsWith("+++ ")||Vg.test(t[P]??"")){b=!0;break}if(b){p(),c=y[1]??null,o.push(x);continue}}let C=x[0];if(C==="+"||C==="-"||C===" "||C==="@"||x===""){C==="+"&&!x.startsWith("+++ ")&&l++,C==="-"&&!x.startsWith("--- ")&&u++,o.push(x);continue}p(),s=!1,a=null,r.push(x)}return p(),m(),n}i(S0,"parseUnifiedDiff");function C0(e){return e?/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/m.test(e):!1}i(C0,"containsUnifiedDiff");import{jsxs as Is,jsx as JL}from"react/jsx-runtime";import ZL from"react";function e1(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(e1,"classifyLine");function t1(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(t1,"colorFor");var zg=ZL.memo(({text:e,addedLines:t,removedLines:n,filePath:r,theme:o,maxLines:s=16,extremeThreshold:a=200})=>{let c=o??te("dark"),l=e.split(`
|
|
369
|
+
`),u=l.map(e1),m=`(${t>0?`+${t}`:"\xB10"} ${n>0?`-${n}`:""})`.trim();if(l.length>a)return Is(k,{flexDirection:"column",marginLeft:4,children:[r&&Is(S,{dimColor:!0,children:[r," ",m]}),Is(S,{dimColor:!0,children:["[diff too large to render inline \u2014 ",l.length," lines, ",t,"+ / ",n,"-]"]})]});let p,g=0;if(l.length>s){let x=Math.floor(s/2),y=u.slice(0,x),C=u.slice(-x);g=l.length-y.length-C.length,p=[...y,{text:"",kind:"context"},...C]}else p=u;return Is(k,{flexDirection:"column",marginLeft:4,children:[r&&Is(S,{dimColor:!0,children:[r," ",m]}),p.map((x,y)=>{if(y===Math.floor(s/2)&&g>0&&x.kind==="context"&&x.text==="")return Is(S,{dimColor:!0,children:["... ",g," lines collapsed ..."]},`collapse-${y}`);let w=t1(x.kind,c);return JL(S,{color:w,children:x.text||" "},y)})]})});zg.displayName="DiffHunk";function b0(e){switch(e){case $.Scheduled:return"\u25CB";case $.Validating:return"\u25D0";case $.AwaitingApproval:return"\u23F8";case $.Executing:return"\u25CF";case $.Success:return"\u2713";case $.Error:return"\u2717";case $.Cancelled:return"\u2298";default:return"?"}}i(b0,"getStatusIcon");function v0(e,t){switch(e){case $.Scheduled:case $.Validating:return t.colors.dim;case $.AwaitingApproval:return t.colors.accent;case $.Executing:return t.colors.primary;case $.Success:return t.colors.success??t.colors.primary;case $.Error:return t.colors.error;case $.Cancelled:return t.colors.dim;default:return t.colors.text}}i(v0,"getStatusColor");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 o1(e){if(!e)return"";let t=JSON.stringify(e);return t.length<=50?t:t.slice(0,47)+"..."}i(o1,"formatInputSummary");var i1=i(({status:e,theme:t})=>{let n=t??cc(()=>te("dark"),[]),r=b0(e),o=v0(e,n);return lt(S,{color:o,children:r})},"ToolStatusBadge"),I0=i(({progress:e,width:t=20,theme:n})=>{let r=n??cc(()=>te("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 Qt(k,{children:[lt(S,{color:r.colors.primary,children:c}),lt(S,{dimColor:!0,children:l}),Qt(S,{children:[" ",o,"%"]})]})},"ToolProgressBar"),k0=i(({tool:e,collapsed:t=!1,theme:n})=>{let r=n??cc(()=>te("dark"),[]),o=b0(e.status),s=v0(e.status,r),a=o1(e.input),c=r1(e.startTime,e.endTime);return t?Qt(k,{children:[Qt(S,{color:s,children:[o," "]}),lt(S,{color:r.colors.text,children:e.name})]}):Qt(k,{flexDirection:"column",marginLeft:2,children:[Qt(k,{children:[Qt(S,{color:s,children:[o," "]}),lt(S,{color:r.colors.text,bold:!0,children:e.name}),a&&Qt(S,{dimColor:!0,children:[" ",a]})]}),e.progress!==void 0&&e.status===$.Executing&<(k,{marginLeft:2,children:lt(I0,{progress:e.progress,theme:r})}),e.progressLines&&e.progressLines.length>0&&e.status===$.Executing&<(k,{flexDirection:"column",marginLeft:2,children:e.progressLines.slice(-5).map((l,u)=>lt(S,{dimColor:!0,children:l},u))}),e.error&<(k,{marginLeft:2,children:lt(S,{color:r.colors.error,children:e.error})}),e.status===$.Success&&typeof e.output=="string"&&e.output.length>0&<(R0,{output:e.output,theme:r}),c&&e.status!==$.Executing&<(k,{marginLeft:2,children:Qt(S,{dimColor:!0,children:["Completed in ",c]})})]})},"ToolCallDisplay"),R0=n1.memo(({output:e,theme:t})=>{if(!C0(e))return lt(k,{marginLeft:2,children:lt(S,{dimColor:!0,children:e})});let n=S0(e);return lt(k,{flexDirection:"column",marginLeft:2,children:n.map((r,o)=>r.kind==="text"?lt(S,{dimColor:!0,children:r.text},o):lt(zg,{text:r.text,addedLines:r.addedLines,removedLines:r.removedLines,filePath:r.filePath,theme:t},o))})});R0.displayName="ToolOutputBlock";var s1=i(({tools:e,collapsed:t=!1,title:n,theme:r})=>{let o=r??cc(()=>te("dark"),[]);if(e.length===0)return null;let s=cc(()=>{let c={[$.Scheduled]:0,[$.Validating]:0,[$.AwaitingApproval]:0,[$.Executing]:0,[$.Success]:0,[$.Error]:0,[$.Cancelled]:0};for(let l of e)c[l.status]++;return c},[e]),a=n??"Tools";if(t){let c=s[$.Success],l=s[$.Error],u=s[$.Executing]+s[$.Scheduled]+s[$.Validating];return lt(k,{flexDirection:"column",marginBottom:1,children:Qt(k,{children:[lt(S,{color:o.colors.accent,bold:!0,children:a}),Qt(S,{dimColor:!0,children:[" ","(",e.length," tools",c>0&&`, ${c} succeeded`,l>0&&`, ${l} failed`,u>0&&`, ${u} running`,")"]})]})})}return Qt(k,{flexDirection:"column",marginBottom:1,children:[Qt(k,{children:[lt(S,{color:o.colors.accent,bold:!0,children:a}),Qt(S,{dimColor:!0,children:[" ","(",e.length," ",e.length===1?"tool":"tools",")"]})]}),e.map(c=>lt(k0,{tool:c,theme:o},c.id))]})},"ToolGroup");import{jsxs as E0,jsx as a1}from"react/jsx-runtime";var c1=i(({pendingInputs:e})=>{let t=md(e);if(!t)return null;let n=te("dark");return E0(k,{children:[E0(S,{color:n.colors.hint,children:["\u23F3"," "]}),a1(S,{color:n.colors.dim,children:t})]})},"PendingInputsIndicator");import*as M0 from"child_process";var lc;function l1(){if(process.platform!=="win32")return null;if(lc!==void 0)return lc;try{lc=M0.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{lc=null}return lc}i(l1,"detectWindowsCodePage");function Fd(){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(Fd,"supportsTrueColor");function A0(){if(Fd())return!0;let e=process.env.TERM||"";return e.includes("256color")||e==="xterm-256color"||e==="screen-256color"||e==="tmux-256color"}i(A0,"supports256Colors");function Sr(){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:l1()==="65001":!0}i(Sr,"supportsUnicode");function _0(){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(_0,"supportsEmoji");function P0(){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(P0,"getTerminalWidth");function $0(){let e=process.env;return!!(e.NO_COLOR||e.TERM==="dumb"||e.CI)}i($0,"isScreenReader");function u1(){return process.stdout?.isTTY??!1}i(u1,"isTTY");function d1(){return{trueColor:Fd(),colors256:A0(),unicode:Sr(),emoji:_0(),tty:u1(),columns:P0(),screenReader:$0()}}i(d1,"detectTerminalCapabilities");var uc=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 f1(e){let t=new uc;t.start();try{let n=await e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}i(f1,"withCapture");function m1(e){let t=new uc;t.start();try{let n=e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}i(m1,"withCaptureSync");import*as W0 from"readline";import*as U0 from"child_process";import*as gc from"path";import*as pc from"fs";import*as j0 from"os";import K from"chalk";import On from"chalk";var p1=[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel the action",value:"no"}],g1=[{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 h1(e,t=!0){return e.map(n=>{let r=On.dim(`[${n.key}]`);return t?`${r} ${On.cyan(n.label)} ${On.dim(`- ${n.description}`)}`:`${r} ${n.label}`}).join(" ")}i(h1,"formatOptions");function ks(){return process.stdout.columns??80}i(ks,"getTerminalWidth");function y1(){return Sr()}i(y1,"supportsUnicode");function x1(){let e=y1();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(x1,"getSymbols");async function w1(e,t){let{message:n,default:r,options:o,showDescription:s=!0}=t,a=o??p1,c=h1(a,s);console.log(),console.log(On.cyan(`? ${n}`));let l=ks();if(c.length>l-4)for(let u of a){let m=On.dim(` [${u.key}]`);console.log(`${m} ${On.cyan(u.label)}`),s&&console.log(On.dim(` ${u.description}`))}else console.log(On.dim(` ${c}`));return new Promise(u=>{let m=r?` (${r})`:"";e.question(On.dim(` Choose${m}: `),p=>{let g=p.trim().toLowerCase()||r||"",x=a.find(y=>y.key===g||y.value===g||y.label.toLowerCase()===g);u(x?x.value:g===""?"no":g)})})}i(w1,"confirmEnhanced");async function dc(e,t,n,r){let{isOutsideProject:o=!1,isProtectedPath:s=!1,permissionMode:a="accept-edits"}=r??{},c=x1(),l,u,m={...n,...o?{_outsideProject:!0}:{},...s?{_alwaysConfirm:!0}:{}},p=Id(t,m),g=p.details.map(y=>` ${On.dim(y)}`);o||s?(l=`${On.yellow(c.warning)} Safety Warning`,g.length>0&&(l+=`
|
|
370
|
+
${g.join(`
|
|
371
|
+
`)}`),u=[{key:"y",label:"Yes",description:"Allow this once",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]):(l=p.title,g.length>0&&(l+=`
|
|
372
|
+
${g.join(`
|
|
373
|
+
`)}`),u=a==="accept-edits"?g1:[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]);let x=await w1(e,{message:l,default:"n",options:u});return x==="always"?{confirmed:!0,always:!0}:{confirmed:x==="yes"}}i(dc,"confirmToolExecution");import Jt from"chalk";var Wd=/\x1b\[[0-9;]*m/g,nr={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 T1(e,t){if(t<=0)return"";let n="",r=0,o=0;for(;o<e.length&&r<t;){Wd.lastIndex=o;let s=Wd.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(T1,"truncateAnsi");function L0(e){return Wd.lastIndex=0,e.replace(Wd,"")}i(L0,"stripAnsi");function S1(e,t=ks()){let n=[],r=e.sessionId.slice(0,6);n.push(Jt.dim(`#${r}`));let o=e.permissionMode==="plan"?Jt.blue:e.permissionMode==="accept-edits"?Jt.cyan:e.permissionMode==="auto-in-project"?Jt.magenta:Jt.green,s=qi(e.permissionMode),c=(e.permissionMode==="auto"||e.permissionMode==="auto-in-project")&&e.autoModeEngine?e.autoModeEngine==="llm"?Jt.green("[LLM]"):Jt.yellow("[RULES]"):"";if(n.push(o(s)+c),e.reasoningMode&&n.push(Jt.yellow(`reason:${e.reasoningMode}`)),n.push(Jt.cyan(e.provider)),e.tokenUsage){let m=e.tokenUsage.total,p=m>=1e3?`${(m/1e3).toFixed(1)}k`:String(m);n.push(Jt.dim(`${p}t`))}if(e.currentTool&&n.push(Jt.magenta(`tool:${e.currentTool}`)),e.projectInfo){let{completedFeatures:m,totalFeatures:p}=e.projectInfo,g=p>0?Math.round(m/p*100):0;n.push(Jt.dim(`${m}/${p} [${g}%]`))}e.messageCount!==void 0&&n.push(Jt.dim(`${e.messageCount} msgs`));let l=n.join(Jt.dim(" | ")),u=t-1;return L0(l).length>u&&(l=`${T1(l,Math.max(0,u-3))}...`),l}i(S1,"buildStatusBarContent");var Ud=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=ks(),n=S1(this.state,t),r=n+" ".repeat(Math.max(0,t-L0(n).length));process.stdout.write(nr.SAVE_CURSOR+nr.MOVE_TO_BOTTOM+nr.CLEAR_LINE+nr.REVERSE+r+nr.RESET+nr.RESTORE_CURSOR)}clear(){process.stdout.write(nr.SAVE_CURSOR+nr.MOVE_TO_BOTTOM+nr.CLEAR_LINE+nr.RESTORE_CURSOR)}};function O0(e,t,n,r,o="off"){return{sessionId:e,permissionMode:t,reasoningMode:o,provider:n,model:r}}i(O0,"createStatusBarState");function D0(){if(!process.stdout.isTTY||Ei())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(D0,"supportsStatusBar");import DY from"chalk";function N0(){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(N0,"getUnicodeSymbols");function Xg(){return{prompt:">",success:"[OK]",error:"[X]",warning:"[!]",info:"[i]",arrow:"->",bullet:"*",check:"[v]",cross:"[x]",spinner:["|","/","-","\\","|","/","-","\\"]}}i(Xg,"getAsciiSymbols");var B0={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:Sr()?N0():Xg(),spinner:{frames:Sr()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},C1={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:Sr()?N0():Xg(),spinner:{frames:Sr()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},b1={name:"minimal",description:"Minimal theme without colors (for CI or limited terminals)",colors:{primary:"",secondary:"",accent:"",text:"",dim:"",success:"",warning:"",error:"",info:""},symbols:Xg(),spinner:{frames:[".","o","O","0","O","o"],interval:120}},v1={dark:B0,light:C1,minimal:b1},H0=B0;function mc(){return H0}i(mc,"getCurrentTheme");function fc(e){let t=v1[e];return t?(H0=t,!0):!1}i(fc,"setTheme");function I1(){if(!process.stdout.isTTY){fc("minimal");return}let e=process.env;if(e.WT_SESSION!==void 0||e.TERM_PROGRAM==="vscode"){fc("dark");return}fc("dark")}i(I1,"autoSelectTheme");I1();var jd=class{static{i(this,"ReadlineUIContext")}rl;constructor(t){this.rl=t}async select(t,n){if(n.length!==0)return console.log(`
|
|
374
|
+
${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)})})}};var qg=class{static{i(this,"MemorySessionStorage")}sessions=new Map;async save(t,n){let r=this.sessions.get(t),o=pn(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=wi(o.data.lineage,n,r);if(!s)return null;let a={...structuredClone(o.data),messages:Rt(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=Ti(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=bi(o.data.lineage,n);if(!s)return null;let a=r?.sessionId??await xi(),c={messages:Rt(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??Si(r.data.lineage);if(!o)return null;let s=Ci(r.data.lineage,o);if(!s)return null;let a={...r.data,messages:Rt(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 Yg(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(Yg,"applyRuntimeContext");function k1(e){e?.workspaceRoot&&(console.log(K.dim(` Workspace: ${Tn(e)}`)),console.log(K.dim(` Use /status workspace for runtime details.
|
|
375
|
+
`)))}i(k1,"printWorkspaceEntryNotice");function R1(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:(e.thinking===!0||t.thinking===!0,"auto")}i(R1,"resolveInitialReasoningMode");var Qg={current:null};async function E1(e){let t=await ns({cwd:process.cwd()}),n=t.workspaceRoot??await po()??void 0,r=e.storage??new qg,o=yl({meta:{cwd:process.cwd(),startedAt:Date.now()}}),s=zf(),a=e.provider??s.provider??hl,c=e.model??s.model,l=R1(e,s),u=e.agentMode??s.agentMode??"ama",m=l!=="off",p=Xn(s.permissionMode,"accept-edits")??"accept-edits",g=lu();p==="auto-in-project"&&g();let x=xl(),y=s.theme;y&&fc(y);let C=mc(),w={provider:a,model:c,thinking:m,reasoningMode:l,agentMode:u,permissionMode:p,repoIntelligenceMode:x.mode,repointelEndpoint:x.endpoint,repointelBin:x.bin,repoIntelligenceTrace:x.trace},b=p,P=es(),L=0,U="",D=!1,O=500,I=await ec({sessionId:e.session?.id,gitRoot:n,runtimeInfo:t}),ce=i(A=>Fo(w,A,(_,W,ee)=>{console.log((_==="block"?K.red:K.yellow)(`
|
|
376
|
+
${W}`));for(let Le of ee)console.log(K.dim(Le));console.log()}),"guardSessionTransition"),ye=await vl(n??void 0),{resolveProvider:F}=await import("./dist-V3BS2NKB.js"),z=F(w.provider),v=ye.contextWindow??z.getEffectiveContextWindow?.(w.model)??z.getContextWindow?.()??2e5,{loadAgentsFiles:M}=await import("./dist-V3BS2NKB.js"),re=i(async()=>M({cwd:process.cwd(),projectRoot:I.gitRoot??void 0}),"reloadAgentsFiles"),xe=await re();P1(w,w.permissionMode,{contextWindow:v,triggerPercent:ye.triggerPercent,enabled:ye.enabled},xe),k1(t);let Re=FT(()=>I.gitRoot??process.cwd()),Te=W0.createInterface({input:process.stdin,output:process.stdout,terminal:process.stdout.isTTY??!0,historySize:100,completer:i((A,_)=>{Re(A).then(W=>{_(null,W)}).catch(()=>{_(null,[[],A])})},"completer")}),le=wu(),$e=await kd({askUser:i(async(A,_,W)=>(await dc(Te,A.name,{...A.input,...W&&W.length>0?{_classifierSignals:W}:{}},{permissionMode:b,reason:`[auto-mode] ${_}`})).confirmed?"allow":"block","askUser"),projectRoot:n??process.cwd(),getAgentsFiles:i(()=>xe,"getAgentsFiles"),getCurrentProviderName:i(()=>w.provider,"getCurrentProviderName"),getCurrentModel:i(()=>w.model,"getCurrentModel"),getCurrentPermissionMode:i(()=>b,"getCurrentPermissionMode"),autoModeSettings:le,log:i((A,_)=>{A==="warn"?console.warn(K.yellow(_)):console.log(K.dim(_))},"log"),onEngineChange:i(A=>{Yt(b)&&q?.update({autoModeEngine:A})},"onEngineChange"),extraCollectors:[Ma]}),J=Sl({getProvider:i(()=>F(w.provider),"getProvider"),getModel:i(()=>w.model??"","getModel")}),Y=w.model??jn(w.provider)??w.provider,q=null;D0()&&(q=new Ud(O0(I.sessionId,w.permissionMode,w.provider,Y,w.reasoningMode)),Yt(b)&&q.update({autoModeEngine:$e.getGuardrail().getEngine()}));let Ge=`
|
|
377
|
+
Keyboard Shortcuts:
|
|
378
|
+
Tab Auto-complete (@paths, /commands)
|
|
379
|
+
Esc+Esc Edit last message
|
|
380
|
+
Ctrl+T Cycle reasoning mode
|
|
381
|
+
Ctrl+E Open external editor
|
|
382
|
+
Ctrl+R Search command history (built-in)
|
|
383
|
+
Ctrl+C Cancel current input
|
|
384
|
+
Ctrl+D Exit REPL`,Se=i(()=>{console.log(K.dim(Ge))},"_printKeyboardShortcuts");process.stdin.isTTY&&process.stdin.on("keypress",(A,_)=>{if(_&&_.name==="escape"){let W=Date.now();W-L<O&&U&&(D=!0,console.log(K.dim(`
|
|
385
|
+
[Opening editor with last message...]`)),Te.pause()),L=W}});let Ee=ur(n).getSystemPromptSnippet(),dt=!0,we={...e,reasoningMode:l,thinking:m,context:{...e.context,gitRoot:n,executionCwd:t.executionCwd,repoIntelligenceMode:x.mode,repoIntelligenceTrace:x.trace,skillsPrompt:Ee},session:{...e.session,id:I.sessionId}};Qg.current=null;let Ze={exit:i(()=>{dt=!1,o?.shutdown(),Te.close()},"exit"),saveSession:i(async()=>{if(I.messages.length>0){let A=Gd(I.messages);I.title=A,await r.save(I.sessionId,{messages:I.messages,title:A,gitRoot:I.gitRoot??"",runtimeInfo:I.runtimeInfo,artifactLedger:I.artifactLedger})}},"saveSession"),startNewSession:i(()=>{I.sessionId=tc(),I.title="",I.contextTokenSnapshot=void 0,I.artifactLedger=void 0,I.createdAt=new Date().toISOString(),I.lastAccessed=I.createdAt,Yg(I,we,t),we.session={...we.session,id:I.sessionId},q?.update({sessionId:I.sessionId,messageCount:0})},"startNewSession"),loadSession:i(async A=>{let _=await r.load(A);if(_){if(!ce("Resuming a saved session"))return"blocked";let W=await ns({cwd:process.cwd()}),ee=Ha(_),Le=ee??W;return ee?.workspaceRoot&&!$T(ee)?(console.log(K.yellow(`
|
|
386
|
+
[Saved workspace unavailable]`)),console.log(K.dim(` Session workspace: ${Tn(ee)}`)),console.log(K.dim(` Falling back to current workspace: ${Tn(W)}`)),Le=W):ee?.workspaceRoot&&W.workspaceRoot&&ee.workspaceRoot!==W.workspaceRoot&&(console.log(K.cyan(`
|
|
387
|
+
[Loading sibling workspace session]`)),console.log(K.dim(` Current workspace: ${Tn(W)}`)),console.log(K.dim(` Session workspace: ${Tn(ee)}`))),I.messages=_.messages,I.title=_.title,I.sessionId=A,I.contextTokenSnapshot=void 0,I.artifactLedger=_.artifactLedger,I.lastAccessed=new Date().toISOString(),Yg(I,we,Le),we.session={...we.session,id:A},q?.update({sessionId:A,messageCount:_.messages.length}),console.log(K.green(`
|
|
388
|
+
[Loaded session: ${A}]`)),console.log(K.dim(` Messages: ${_.messages.length}`)),I.runtimeInfo?.workspaceRoot&&console.log(K.dim(` Workspace: ${Tn(I.runtimeInfo)}`)),"loaded"}return"missing"},"loadSession"),listSessions:i(async()=>{let A=await r.list(I.gitRoot??void 0);if(A.length===0){console.log(K.dim(`
|
|
389
|
+
[No saved sessions]`));return}console.log(K.bold(`
|
|
390
|
+
Recent Sessions:
|
|
391
|
+
`)),I.runtimeInfo?.workspaceRoot&&(console.log(K.dim(` Current workspace: ${Tn(I.runtimeInfo)}`)),console.log());for(let _ of A.slice(0,10))if(console.log(` ${K.cyan(_.id)} ${K.dim(`(${_.msgCount} messages)`)} ${_.title.slice(0,40)}`),_.runtimeInfo?.workspaceRoot){let ee=I.runtimeInfo?.workspaceRoot===_.runtimeInfo.workspaceRoot?" (current workspace)":"";console.log(K.dim(` workspace: ${Tn(_.runtimeInfo)}${ee}`))}console.log()},"listSessions"),clearHistory:i(()=>{I.messages=[],I.contextTokenSnapshot=void 0},"clearHistory"),printHistory:i(()=>{if(I.messages.length===0){console.log(K.dim(`
|
|
392
|
+
[No conversation history]`));return}console.log(K.bold(`
|
|
393
|
+
Conversation History:
|
|
394
|
+
`));let A=I.messages.slice(-20);for(let _=0;_<A.length;_++){let W=A[_],ee=K.cyan(W.role.padEnd(10)),Le=typeof W.content=="string"?W.content:"[Complex content]",tt=Le.slice(0,60).replace(/\n/g," "),Ce=Le.length>60?"...":"";console.log(` ${(_+1).toString().padStart(2)}. ${ee} ${tt}${Ce}`)}console.log()},"printHistory"),switchProvider:i((A,_)=>{w.provider=A,w.model=_,we.provider=A,we.model=_;let W=_??jn(A);if(!W)try{W=Sy(A)?.getModel()??A}catch{W=A}q?.update({provider:A,model:W})},"switchProvider"),setThinking:i(A=>{w.thinking=A,we.thinking=A,w.reasoningMode=A?"auto":"off",we.reasoningMode=w.reasoningMode,q?.update({reasoningMode:w.reasoningMode})},"setThinking"),setReasoningMode:i(A=>{let _=A!=="off";w.reasoningMode=A,w.thinking=_,we.reasoningMode=A,we.thinking=_,q?.update({reasoningMode:A})},"setReasoningMode"),setPermissionMode:i(A=>{w.permissionMode=A,b=A;let _=Yt(A)?$e.getGuardrail().getEngine():void 0;q?.update({permissionMode:A,autoModeEngine:_}),A==="auto-in-project"&&g()},"setPermissionMode"),setRepoIntelligenceRuntime:i(A=>{A.mode!==void 0&&(w.repoIntelligenceMode=A.mode,process.env.KODAX_REPO_INTELLIGENCE_MODE=A.mode,we.context={...we.context,repoIntelligenceMode:A.mode}),A.trace!==void 0&&(w.repoIntelligenceTrace=A.trace,A.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,we.context={...we.context,repoIntelligenceTrace:A.trace}),A.endpoint!==void 0&&(w.repointelEndpoint=A.endpoint??void 0,A.endpoint?process.env.KODAX_REPOINTEL_ENDPOINT=A.endpoint:delete process.env.KODAX_REPOINTEL_ENDPOINT),A.bin!==void 0&&(w.repointelBin=A.bin??void 0,A.bin?process.env.KODAX_REPOINTEL_BIN=A.bin:delete process.env.KODAX_REPOINTEL_BIN)},"setRepoIntelligenceRuntime"),deleteSession:i(async A=>{await r.delete?.(A)},"deleteSession"),deleteAllSessions:i(async()=>{await r.deleteAll?.(I.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:i(async()=>{let A=await r.getLineage?.(I.sessionId);if(!A){console.log(K.dim(`
|
|
395
|
+
[No session tree available for this session]`));return}let _=vd(wl(A));console.log(K.bold(`
|
|
396
|
+
Session Tree:
|
|
397
|
+
`));for(let W of _)console.log(` ${W}`);console.log()},"printSessionTree"),switchSessionBranch:i(async A=>{if(!ce("Switching session branches"))return"blocked";let _=await r.setActiveEntry?.(I.sessionId,A,{summarizeCurrentBranch:!0});return _?(I.messages=_.messages,I.title=_.title,I.contextTokenSnapshot=void 0,q?.update({messageCount:I.messages.length}),console.log(K.green(`
|
|
398
|
+
[Switched to tree entry: ${A}]`)),console.log(K.dim(` Messages: ${_.messages.length}`)),"switched"):"missing"},"switchSessionBranch"),labelSessionBranch:i(async(A,_)=>{if(!await r.setLabel?.(I.sessionId,A,_))return!1;let ee=_&&_.trim()?`checkpoint label set: ${_.trim()}`:"checkpoint label cleared";return console.log(K.green(`
|
|
399
|
+
[${ee}]`)),!0},"labelSessionBranch"),forkSession:i(async A=>{if(!ce("Forking a session branch"))return"blocked";let _=await r.fork?.(I.sessionId,A);return _?(I.sessionId=_.sessionId,I.messages=_.data.messages,I.title=_.data.title,I.contextTokenSnapshot=void 0,I.createdAt=new Date().toISOString(),I.lastAccessed=I.createdAt,Yg(I,we,Ha(_.data)??I.runtimeInfo),we.session={...we.session,id:_.sessionId},q?.update({sessionId:_.sessionId,messageCount:I.messages.length}),console.log(K.green(`
|
|
400
|
+
[Forked session: ${_.sessionId}]`)),console.log(K.dim(` Messages: ${_.data.messages.length}`)),"forked"):"failed"},"forkSession"),rewindSession:i(async A=>{if(!ce("Rewinding session"))return"blocked";let _=await r.rewind?.(I.sessionId,A);return _?(I.messages=_.messages,I.title=_.title,I.contextTokenSnapshot=void 0,I.lastAccessed=new Date().toISOString(),q?.update({messageCount:I.messages.length}),console.log(K.green(`
|
|
401
|
+
[Rewound session${A?` to ${A}`:" to previous turn"}]`)),console.log(K.dim(` Messages: ${_.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:i(()=>Qg.current?.()??null,"getCostReport"),getAutoModeStats:i(()=>{if(Yt(b))return $e.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:i(A=>{Yt(b)&&($e.getGuardrail().setEngine(A),q?.update({permissionMode:b}))},"setAutoModeEngine"),createKodaXOptions:i(()=>{let A=i((W,ee)=>b!=="plan"?null:xr(W,ee,n??process.cwd()),"planModeBlockCheck"),_=Yt(b)?[$e.getGuardrail()]:void 0;return{...we,provider:w.provider,model:w.model,thinking:w.thinking,reasoningMode:w.reasoningMode,guardrails:_,context:{...we.context,planModeBlockCheck:A},events:{...we.events,exitPlanMode:i(async W=>b!=="plan"?"not-in-plan-mode":(await dc(Te,"exit_plan_mode",{plan:W},{isProtectedPath:!1,permissionMode:b})).confirmed?(w.permissionMode="accept-edits",b="accept-edits",q?.update({permissionMode:"accept-edits"}),!0):!1,"exitPlanMode"),beforeToolExecute:i(async(W,ee)=>{let Le=b,tt=vo(Le);if(Le==="plan"){let Ce=xr(W,ee,n??process.cwd());if(Ce)return console.log(K.yellow(Ce)),`${Ce} 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(W==="bash"){let Ce=ee.command??"";if(Pn(Ce))return!0}if(n&&xn.has(W)){let Ce=ee.path;if(Ce&&Yn(Ce,n))return(await dc(Te,W,ee,{isProtectedPath:!0,permissionMode:Le})).confirmed?!0:(console.log(K.dim("[Cancelled] Operation on protected path requires confirmation")),!1)}if(tt.has(W)){if(Le==="accept-edits"&&W==="bash"&&await Wr(W,ee,P,J))return!0;let Ce=await dc(Te,W,ee,{isOutsideProject:ee._outsideProject===!0,reason:ee._reason,permissionMode:Le});if(!Ce.confirmed)return console.log(K.dim("[Cancelled] Operation cancelled by user")),!1;Ce.always&&Le==="accept-edits"&&(Tu(W,ee,!1),P=es())}return!0},"beforeToolExecute")}}},"createKodaXOptions"),reloadAgentsFiles:i(async()=>(xe=await re(),xe),"reloadAgentsFiles"),readline:Te,ui:new jd(Te)};Te.on("SIGINT",async()=>{console.log(K.dim(`
|
|
402
|
+
|
|
403
|
+
[Press /exit to quit]`)),Te.prompt()});let et=i(()=>{q?.hide(),o?.shutdown(),Te.close()},"cleanup");process.on("exit",et),process.on("SIGTERM",et);let ie=i(async(A,_)=>{if(!A||typeof A!="object"||!A.invocation)return;let W=await Ed({...we,provider:w.provider,thinking:w.thinking,reasoningMode:w.reasoningMode},A.invocation,_,ee=>console.log(K.dim(`
|
|
404
|
+
${ee}`)));if(W.mode==="manual"){W.manualOutput&&console.log(K.yellow(`
|
|
405
|
+
${W.manualOutput}
|
|
406
|
+
`)),await W.finalize();return}if(!W.prompt||!W.options){await W.finalize();return}try{let ee=W.mode==="fork"?[]:I.messages,Le=await F0(W.options,I,W.prompt,ee);if(W.mode==="fork"){let tt=Oa(Le.messages);tt.trim()&&(console.log(`
|
|
407
|
+
${tt}
|
|
408
|
+
`),I.messages.push({role:"assistant",content:tt}))}else I.messages=Le.messages,I.contextTokenSnapshot=Le.contextTokenSnapshot;if(q?.update({messageCount:I.messages.length}),I.messages.length>0){let tt=Gd(I.messages);I.title=tt,await r.save(I.sessionId,{messages:I.messages,title:tt,gitRoot:I.gitRoot??"",runtimeInfo:I.runtimeInfo})}await W.finalize()}catch(ee){throw await W.finalize(ee instanceof Error?ee:new Error(String(ee))),ee}},"handleCommandResult");for(;dt;){if(D&&U){D=!1,Te.resume();let Ce=await G0(U);if(Ce&&Ce.trim()&&Ce!==U){console.log(K.dim(`
|
|
409
|
+
[Edited message ready to send]`));let Ne=Ce.trim();Zn(I);let ve=os(Ne);if(ve){let Oe=await is(ve,I,Ze,w);await ie(Oe,Ne);continue}let Q=await Jg(Ne);if(Ne.startsWith("!")&&nc(Q))continue;let N=rc(Q,we.context?.executionCwd??process.cwd());for(let Oe of N.warnings)console.log(K.yellow(`
|
|
410
|
+
${Oe}`));I.messages.push({role:"user",content:N.messageContent}),U=Ne,q?.update({messageCount:I.messages.length});try{let Oe=await ca({...we,provider:w.provider,thinking:w.thinking,reasoningMode:w.reasoningMode,session:{...we.session,initialMessages:I.lineage?Rt(I.lineage,I.lineage.activeEntryId):I.messages},context:{...we.context,taskSurface:"repl",planModeBlockCheck:i((Be,Kt)=>b!=="plan"?null:xr(Be,Kt,n??process.cwd()),"planModeBlockCheck"),...N.inputArtifacts.length>0?{inputArtifacts:N.inputArtifacts}:{}}},Q);if(I.messages=Oe.messages,I.contextTokenSnapshot=Oe.contextTokenSnapshot,I.artifactLedger=aa(I.artifactLedger??[],Oe.artifactLedger??Ff(Oe.messages)),I.messages.length>0){let Be=Gd(I.messages);I.title=Be,await r.save(I.sessionId,{messages:I.messages,title:Be,gitRoot:I.gitRoot??"",runtimeInfo:I.runtimeInfo,artifactLedger:I.artifactLedger})}}catch(Oe){let Be=Oe instanceof Error?Oe:new Error(String(Oe));I.messages.pop(),console.log(K.red(`
|
|
411
|
+
[Error] ${Be.message}`))}continue}else Ce===U&&console.log(K.dim(`
|
|
412
|
+
[No changes made, continuing...]`))}let A=M1(w.permissionMode,w),_=await A1(Te,A);if(!dt)break;let W=_.trim();if(!W)continue;Zn(I);let ee=os(W);if(ee){let Ce=await is(ee,I,Ze,w);await ie(Ce,W);continue}let Le=await Jg(W);if(W.startsWith("!")&&nc(Le))continue;let tt=rc(Le,we.context?.executionCwd??process.cwd());for(let Ce of tt.warnings)console.log(K.yellow(`
|
|
413
|
+
${Ce}`));I.messages.push({role:"user",content:tt.messageContent}),U=W,q?.update({messageCount:I.messages.length});try{let Ce=await F0(we,I,Le,I.messages,tt.inputArtifacts);if(I.messages=Ce.messages,I.contextTokenSnapshot=Ce.contextTokenSnapshot,I.artifactLedger=aa(I.artifactLedger??[],Ce.artifactLedger??Ff(Ce.messages)),q?.update({messageCount:I.messages.length}),I.messages.length>0){let Ne=Gd(I.messages);I.title=Ne,await r.save(I.sessionId,{messages:I.messages,title:Ne,gitRoot:I.gitRoot??"",runtimeInfo:I.runtimeInfo,artifactLedger:I.artifactLedger})}}catch(Ce){let Ne=Ce instanceof Error?Ce:new Error(String(Ce));I.messages.pop(),Ne.message.includes("rate limit")||Ne.message.includes("Rate limit")?(console.log(K.yellow(`
|
|
414
|
+
[Rate Limit] ${Ne.message}`)),console.log(K.dim(`Suggestion: Wait a moment and try again, or switch provider with /mode
|
|
415
|
+
`))):Ne.message.includes("API key")||Ne.message.includes("not configured")?(console.log(K.red(`
|
|
416
|
+
[Configuration Error] ${Ne.message}`)),console.log(K.dim(`Suggestion: Set the required API key environment variable
|
|
417
|
+
`))):Ne.message.includes("network")||Ne.message.includes("ECONNREFUSED")||Ne.message.includes("ETIMEDOUT")?(console.log(K.red(`
|
|
418
|
+
[Network Error] ${Ne.message}`)),console.log(K.dim(`Suggestion: Check your internet connection and try again
|
|
419
|
+
`))):Ne.message.includes("token")||Ne.message.includes("context too long")?(console.log(K.yellow(`
|
|
420
|
+
[Context Error] ${Ne.message}`)),console.log(K.dim(`Suggestion: Use /clear to start a fresh conversation
|
|
421
|
+
`))):(console.log(K.red(`
|
|
422
|
+
[Error] ${Ne.message}`)),console.log(K.dim(`Your message was not sent. Please try again.
|
|
423
|
+
`)))}}}i(E1,"runInteractiveMode");function M1(e,t){let n=mc(),r=e==="plan"?K.hex(n.colors.warning):K.hex(n.colors.success),o=t.model??jn(t.provider)??t.provider,s=ks();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?K.hex(n.colors.dim)(`[${c}]`):"";return r(`kodax:${e}${l}> `)}let a=t.reasoningMode!=="off"?K.hex(n.colors.info)(`[reason:${t.reasoningMode}]`):"";return r(`kodax:${e} (${t.provider}:${o})${a}> `)}i(M1,"getPrompt");async function A1(e,t){let n=mc(),r=[],o=await new Promise(a=>{e.question(t,a)});if(o===""||o.toLowerCase()==="/e")return await G0(r.join(`
|
|
424
|
+
`));for(r.push(o);_1(r.join(`
|
|
425
|
+
`));){let a=K.hex(n.colors.dim)("... "),c=await new Promise(l=>{e.question(a,l)});r.push(c)}return r.join(`
|
|
426
|
+
`).replace(/\\\n/g,`
|
|
427
|
+
`)}i(A1,"askInput");async function G0(e){let t=gc.join(j0.tmpdir(),"kodax"),n=gc.join(t,`input-${Date.now()}-${Math.random().toString(36).slice(2)}.txt`);try{await pc.promises.mkdir(t,{recursive:!0}),await pc.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=gc.basename(r);console.log(K.yellow(`
|
|
428
|
+
[Security] Editor path sanitized: ${a}`)),r=a}console.log(K.dim(`
|
|
429
|
+
[Opening editor: ${r}]`));let o=process.platform==="win32"&&(r.toLowerCase()==="notepad"||r.toLowerCase()==="notepad.exe");return console.log(o?K.dim(`Note: Please close Notepad manually after editing to continue.
|
|
430
|
+
`):K.dim(`Save and close the editor to continue...
|
|
431
|
+
`)),U0.spawnSync(r,[n],{stdio:"inherit",timeout:3e5,shell:!1}),(await pc.promises.readFile(n,"utf-8")).trim()}catch(r){let o=r instanceof Error?r:new Error(String(r));return console.log(K.red(`
|
|
432
|
+
[Editor Error] ${o.message}`)),e}finally{try{await pc.promises.unlink(n)}catch{}}}i(G0,"openExternalEditor");function _1(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(_1,"needsContinuation");async function Jg(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 Td(n,{cwd:process.cwd()})}return e}i(Jg,"processSpecialSyntax");async function F0(e,t,n,r=t.messages,o){let s={...e.events??{},getCostReport:Qg};return ca({...e,events:s,session:{...e.session,initialMessages:r},context:{...e.context,contextTokenSnapshot:t.contextTokenSnapshot,taskSurface:"repl",...o&&o.length>0?{inputArtifacts:[...o]}:{}}},n)}i(F0,"runAgentRound");function Gd(e){return Zi(e)}i(Gd,"extractTitle");function P1(e,t,n,r){let o=mc(),s=e.model??jn(e.provider)??e.provider;if(console.log(K.hex(o.colors.primary)(`
|
|
433
|
+
`+`
|
|
434
|
+
\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
|
|
435
|
+
\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
|
|
436
|
+
\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
|
|
437
|
+
\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
|
|
438
|
+
\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
|
|
439
|
+
\u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D`)),console.log(K.hex(o.colors.text)(`
|
|
440
|
+
v${vi} | AI Coding Agent | ${e.provider}:${s}`)),console.log(K.hex(o.colors.dim)(`
|
|
441
|
+
\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500`)),console.log(K.hex(o.colors.dim)(" Mode: ")+K.hex(o.colors.primary)(t)+K.hex(o.colors.dim)(" | Reasoning: ")+(e.reasoningMode==="off"?K.hex(o.colors.dim)("off"):K.hex(o.colors.success)(e.reasoningMode))),n){let c=Math.round(n.contextWindow/1e3),l=Math.round(n.contextWindow*n.triggerPercent/100/1e3),u=n.enabled?K.hex(o.colors.success)("on"):K.hex(o.colors.dim)("off");console.log(K.hex(o.colors.dim)(` Context: ${c}k | Compaction: `)+u+K.hex(o.colors.dim)(` @ ${n.triggerPercent}% (${l}k)`))}if(console.log(K.hex(o.colors.dim)(` \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
|
|
442
|
+
`)),r){let c=r.length;console.log(K.hex(o.colors.dim)(" Project Rules: ")+K.hex(o.colors.success)(`${c} rule file(s) loaded`)),console.log(K.hex(o.colors.dim)(` Use /reload to refresh rules
|
|
443
|
+
`))}console.log(K.hex(o.colors.dim)(" Quick tips:")),console.log(K.hex(o.colors.primary)(" /help ")+K.hex(o.colors.dim)("Show all commands")),console.log(K.hex(o.colors.primary)(" /mode ")+K.hex(o.colors.dim)("Switch permission mode")),console.log(K.hex(o.colors.primary)(" /clear ")+K.hex(o.colors.dim)("Clear conversation")),console.log(K.hex(o.colors.primary)(" @path ")+K.hex(o.colors.dim)("Attach image to context")),console.log(K.hex(o.colors.primary)(" !cmd ")+K.hex(o.colors.dim)("Run read-only shell command")),console.log(K.hex(o.colors.dim)(`
|
|
444
|
+
Keyboard: Tab (complete) | Esc+Esc (edit last) | Ctrl+T (reasoning) | Ctrl+E (editor) | Ctrl+R (history)
|
|
445
|
+
`))}i(P1,"printStartupBanner");import Dn from"fs/promises";import Kd from"fs";import Vd from"path";import X0 from"chalk";var $1=new Set(["user","assistant","system"]);function St(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}i(St,"isRecord");function Ko(e){if(e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return!0;if(Array.isArray(e))return e.every(Ko);if(!St(e))return!1;let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null?!1:Object.values(e).every(Ko)}i(Ko,"isKodaXJsonValue");function K0(e){return St(e)&&typeof e.id=="string"&&typeof e.extensionId=="string"&&typeof e.type=="string"&&typeof e.ts=="number"&&(e.data===void 0||Ko(e.data))&&(e.dedupeKey===void 0||typeof e.dedupeKey=="string")}i(K0,"isKodaXExtensionSessionRecord");function V0(e){return St(e)?Object.values(e).every(t=>St(t)?Object.values(t).every(Ko):!1):!1}i(V0,"isKodaXExtensionSessionState");function L1(e){if(!St(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"&&St(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(L1,"isKodaXContentBlock");function Zg(e){return!St(e)||typeof e.role!="string"||!$1.has(e.role)?!1:typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(L1)}i(Zg,"isKodaXMessage");function z0(e){return St(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(z0,"isSessionErrorMetadata");function O1(e){return St(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(O1,"isKodaXSessionUiHistoryItem");function eh(e){return Array.isArray(e)&&e.every(O1)}i(eh,"isKodaXSessionUiHistory");function D1(e){return!St(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||eh(e.uiHistory))&&(e.scope===void 0||typeof e.scope=="string")}i(D1,"isPersistedMetaUpdateLine");function Y0(e,t){t!==0&&process.stderr.write(`[KodaX] Skipped ${t} malformed session record(s) from ${Vd.basename(e)}.
|
|
446
|
+
`)}i(Y0,"warnMalformedSessionData");function Qr(e){process.stderr.write(`${e}
|
|
447
|
+
`)}i(Qr,"writeStorageNotice");function q0(e){return{_type:"extension_record",...e}}i(q0,"toExtensionRecordLine");function Q0(e){return{_type:"lineage_entry",entry:e}}i(Q0,"toLineageEntryLine");function J0(e){return{_type:"artifact_ledger_entry",entry:e}}i(J0,"toArtifactLedgerLine");function N1(e){return St(e)&&e._type==="extension_record"&&K0(e)}i(N1,"isPersistedExtensionRecordLine");function B1(e){return St(e)&&typeof e.id=="string"&&(e.parentId===null||typeof e.parentId=="string")&&typeof e.timestamp=="string"&&typeof e.type=="string"}i(B1,"hasEntryBase");function H1(e){if(!B1(e))return!1;let t=e;switch(t.type){case"message":return Zg(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||Ko(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(H1,"isKodaXSessionEntry");function F1(e){return St(e)&&e._type==="lineage_entry"&&H1(e.entry)}i(F1,"isPersistedLineageEntryLine");function W1(e){return St(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||Ko(e.metadata))}i(W1,"isKodaXSessionArtifactLedgerEntry");function U1(e){return St(e)&&e._type==="artifact_ledger_entry"&&W1(e.entry)}i(U1,"isPersistedArtifactLedgerLine");function ev(e){return St(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(ev,"isKodaXSessionRuntimeInfo");function Z0(e,t){return process.platform==="win32"||process.platform==="darwin"?e.toLowerCase()===t.toLowerCase():e===t}i(Z0,"pathsEqual");function j1(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(j1,"getLastNavigableEntryId");function G1(e){if(e.lineageEntries.length>0)return{version:2,activeEntryId:e.meta?.activeEntryId??j1(e.lineageEntries),entries:e.lineageEntries};if(e.legacyMessages.length!==0)return pn(e.legacyMessages)}i(G1,"buildLineage");function K1(e){let t=G1(e);return{createdAt:e.meta?.createdAt,data:{messages:t?Rt(t):[...e.legacyMessages],title:e.meta?.title??"",gitRoot:e.meta?.gitRoot??"",runtimeInfo:ev(e.meta?.runtimeInfo)?{...e.meta.runtimeInfo}:void 0,scope:e.meta?.scope??"user",uiHistory:eh(e.meta?.uiHistory)?e.meta.uiHistory.map(n=>({...n})):void 0,errorMetadata:z0(e.meta?.errorMetadata)?{...e.meta.errorMetadata}:void 0,extensionState:V0(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(K1,"buildSessionData");function V1(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(V1,"createSessionMeta");async function z1(e){if(!Kd.existsSync(e))return null;let n=(await Dn.readFile(e,"utf-8")).trim();if(!n)return null;let r={legacyMessages:[],lineageEntries:[],artifactLedger:[],extensionRecords:[],malformedCount:0},o=n.split(`
|
|
448
|
+
`);for(let s=0;s<o.length;s+=1)try{let a=JSON.parse(o[s]);if(s===0&&St(a)&&a._type==="meta"){r.meta=a;continue}if(D1(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(F1(a)){r.lineageEntries.push(a.entry);continue}if(U1(a)){r.artifactLedger.push(a.entry);continue}if(N1(a)){r.extensionRecords.push({id:a.id,extensionId:a.extensionId,type:a.type,ts:a.ts,data:a.data,dedupeKey:a.dedupeKey});continue}if(Zg(a)){r.legacyMessages.push(a);continue}r.malformedCount+=1}catch{r.malformedCount+=1}return r}i(z1,"readPersistedSessionFile");var th=class{static{i(this,"FileSessionStorage")}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;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})}getSessionFilePath(t){return Vd.join(Pr,`${t}.jsonl`)}getArchiveFilePath(t){return Vd.join(Pr,`${t}.archive.jsonl`)}async readSession(t){let n=this.getSessionFilePath(t),r=await z1(n);return r?(Y0(n,r.malformedCount),K1(r)):null}async writeSessionInternal(t,n,r){await Dn.mkdir(Pr,{recursive:!0});let o=this.getSessionFilePath(t),s=`${o}.${process.pid}.${Date.now()}.tmp`,a=n.lineage??pn(n.messages),c=V1(t,n,a,r);try{let l=await Dn.open(s,"w");try{await l.write(JSON.stringify(c)+`
|
|
449
|
+
`);for(let u of a.entries)await l.write(JSON.stringify(Q0(u))+`
|
|
450
|
+
`);for(let u of n.artifactLedger??[])await l.write(JSON.stringify(J0(u))+`
|
|
451
|
+
`);for(let u of n.extensionRecords??[])await l.write(JSON.stringify(q0(u))+`
|
|
452
|
+
`)}finally{await l.close()}await Dn.rename(s,o)}finally{Kd.existsSync(s)&&await Dn.unlink(s).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:n.lineage??pn(n.messages,r?.data.lineage)};await this.writeSessionInternal(t,o,r?.createdAt),this.syncAppendState(t,o)}async appendSessionDelta(t,n){let r=this.getSessionFilePath(t);if(!Kd.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(Q0(p)));for(let p of c)u.push(JSON.stringify(J0(p)));for(let p of l)u.push(JSON.stringify(q0(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 Dn.appendFile(r,`
|
|
453
|
+
`+u.join(`
|
|
454
|
+
`),"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)}
|
|
455
|
+
`)})}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}=Ly(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.getArchiveFilePath(t),c=await Dn.open(a,"a");try{await c.write(JSON.stringify({_type:"archive_batch",archiveBatchId:s,sessionId:t,archivedAt:new Date().toISOString(),entryCount:o.length})+`
|
|
456
|
+
`);for(let u of o)await c.write(JSON.stringify({_type:"archived_entry",archiveBatchId:s,entry:u})+`
|
|
457
|
+
`)}finally{await c.close()}let l={...n.data,lineage:r};await this.writeSessionInternal(t,l,n.createdAt),this.syncAppendState(t,l,0)})}async save(t,n){await this.serializedWrite(t,async()=>{await this.mergeAndWriteInternal(t,n)})}async load(t){let n=await this.readSession(t);if(!n)return null;this.syncAppendState(t,n.data);let{data:r,createdAt:o}=n,s=this.getSessionFilePath(t),a=await po(),c=await ns(),l=Ha(r);if((c.canonicalRepoRoot&&l?.canonicalRepoRoot&&!Eu(c,l)||a&&r.gitRoot&&a!==r.gitRoot&&!Eu(c,{canonicalRepoRoot:r.gitRoot}))&&(Qr(X0.yellow(`
|
|
458
|
+
[Warning] Session project mismatch:`)),c.workspaceRoot&&Qr(` Current workspace: ${c.workspaceRoot}`),l?.workspaceRoot&&Qr(` Session workspace: ${l.workspaceRoot}`),c.canonicalRepoRoot&&Qr(` Current repo: ${c.canonicalRepoRoot}`),l?.canonicalRepoRoot?Qr(` Session repo: ${l.canonicalRepoRoot}`):r.gitRoot&&Qr(` Session repo: ${r.gitRoot}`),Qr(` Continuing anyway...
|
|
459
|
+
`)),r.errorMetadata?.consecutiveErrors&&r.errorMetadata.consecutiveErrors>0){let m=by(r.messages);if(m!==r.messages){Qr(X0.cyan("[Session Recovery] Cleaned incomplete tool calls from previous session"));let p={...r,messages:m,errorMetadata:{...r.errorMetadata,consecutiveErrors:0},lineage:pn(m,r.lineage)};return await this.serializedWrite(t,async()=>{await this.writeSessionInternal(t,p,o),this.syncAppendState(t,p)}),p}}return Y0(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=wi(s.data.lineage,n,r);if(!a)return;let c={...s.data,messages:Rt(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??Si(o.data.lineage);if(!s)return;let a=Ci(o.data.lineage,s);if(!a)return;let c={...o.data,messages:Rt(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=Ti(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=bi(s.data.lineage,n);if(!a)return;let c=r?.sessionId??await xi(),l={messages:Rt(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){await Dn.mkdir(Pr,{recursive:!0});let n=t??await po(),r=await ns({cwd:n??process.cwd()}),o=(await Dn.readdir(Pr)).filter(a=>a.endsWith(".jsonl")),s=[];for(let a of o)try{let c=(await Dn.readFile(Vd.join(Pr,a),"utf-8")).trim(),l=c.split(`
|
|
460
|
+
`)[0];if(!l)continue;let u=JSON.parse(l);if(St(u)&&u._type==="meta"){let m=typeof u.gitRoot=="string"?u.gitRoot:"",p=ev(u.runtimeInfo)?u.runtimeInfo:void 0,g=u.scope==="managed-task-worker"?"managed-task-worker":"user";if(n){let w=Eu(r,p),b=p?.workspaceRoot?Z0(p.workspaceRoot,r.workspaceRoot??""):Z0(m,n);if(!w&&!b)continue}if(g!=="user")continue;let x=c.split(`
|
|
461
|
+
`).length,y=typeof u.extensionRecordCount=="number"&&u.extensionRecordCount>0?u.extensionRecordCount:0,C=typeof u.activeMessageCount=="number"&&u.activeMessageCount>=0?u.activeMessageCount:Math.max(0,x-1-y);s.push({id:a.replace(".jsonl",""),title:typeof u.title=="string"?u.title:"",msgCount:C,createdAt:typeof u.createdAt=="string"?u.createdAt:void 0,runtimeInfo:p?{...p}:void 0})}else{let m=c.split(`
|
|
462
|
+
`).length;s.push({id:a.replace(".jsonl",""),title:"",msgCount:m})}}catch{continue}return s.sort((a,c)=>{let l=a.createdAt?Date.parse(a.createdAt):Number.NaN,u=c.createdAt?Date.parse(c.createdAt):Number.NaN;return Number.isFinite(l)&&Number.isFinite(u)&&l!==u?u-l:Number.isFinite(u)&&!Number.isFinite(l)?1:Number.isFinite(l)&&!Number.isFinite(u)?-1:c.id.localeCompare(a.id)}).slice(0,10).map(({id:a,title:c,msgCount:l,runtimeInfo:u})=>u?{id:a,title:c,msgCount:l,runtimeInfo:u}:{id:a,title:c,msgCount:l})}async delete(t){let n=this.getSessionFilePath(t);Kd.existsSync(n)&&await Dn.unlink(n)}async deleteAll(t){let n=t??await po(),r=await this.list(n??void 0);for(let o of r)await this.delete(o.id)}};export{ki as a,Ri as b,la as c,Ei as d,ua as e,Xf as f,go as g,ho as h,Mi as i,yo as j,kl as k,xo as l,Ai as m,Rl as n,El as o,_i as p,nn as q,Gn as r,Kn as s,jv as t,Vt as u,da as v,Qf as w,Jf as x,zt as y,Zf as z,em as A,ix as B,sx as C,te as D,cO as E,$m as F,rE as G,au as H,Ia as I,Dw as J,cE as K,lE as L,rn as M,$ as N,sF as O,Nt as P,Om as Q,Nm as R,cu as S,Bm as T,Hw as U,ka as V,qi as W,vo as X,Hm as Y,Xn as Z,Pn as _,$n as $,Wr as aa,pu as ba,Yn as ca,hu as da,ko as ea,qm as fa,xr as ga,La as ha,Zi as ia,cM as ja,ip as ka,os as la,is as ma,wp as na,Lo as oa,Lu as pa,Tp as qa,ja as ra,Cp as sa,as as ta,BA as ua,Cn as va,iS as wa,sS as xa,KA as ya,VA as za,M_ as Aa,No as Ba,P_ as Ca,fs as Da,J_ as Ea,eP as Fa,tP as Ga,Fp as Ha,Wp as Ia,rP as Ja,jp as Ka,Gp as La,sd as Ma,ad as Na,cd as Oa,Vp as Pa,ld as Qa,zp as Ra,Xp as Sa,ud as Ta,Xa as Ua,Ya as Va,VS as Wa,fd as Xa,qp as Ya,Jp as Za,Zp as _a,pd as $a,eg as ab,gd as bb,hd as cb,og as db,yd as eb,Ja as fb,Za as gb,sC as hb,_P as ib,PP as jb,cC as kb,DP as lb,NP as mb,ec as nb,Zn as ob,ys as pb,BP as qb,Td as rb,WP as sb,UP as tb,Sd as ub,ag as vb,Cd as wb,cg as xb,Kg as yb,YL as zb,QL as Ab,i1 as Bb,I0 as Cb,k0 as Db,s1 as Eb,c1 as Fb,Fd as Gb,A0 as Hb,Sr as Ib,_0 as Jb,P0 as Kb,$0 as Lb,d1 as Mb,uc as Nb,f1 as Ob,m1 as Pb,E1 as Qb,Jg as Rb,th as Sb};
|