@kodax-ai/kodax 0.7.47 → 0.7.49
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 +1741 -1702
- package/README.md +80 -27
- package/README_CN.md +60 -15
- package/dist/builtin/code-review/SKILL.md +1 -1
- package/dist/chunks/argument-completer-GDG5OHN7.js +2 -0
- package/dist/chunks/{chunk-VGRG2F6H.js → chunk-67SWUEEN.js} +424 -276
- package/dist/chunks/chunk-C5PKZX5Z.js +291 -0
- package/dist/chunks/chunk-ISGHUKRY.js +428 -0
- package/dist/chunks/chunk-JTHMWRXM.js +566 -0
- package/dist/chunks/chunk-TYZAH3YP.js +2 -0
- package/dist/chunks/chunk-YACQ4OST.js +31 -0
- package/dist/chunks/{chunk-2SMCCP44.js → chunk-YW4RQV7U.js} +1 -1
- package/dist/chunks/{compaction-config-YU7SI6L6.js → compaction-config-BQBYOWX2.js} +1 -1
- package/dist/chunks/{construction-bootstrap-6UN3OY7X.js → construction-bootstrap-5TFGMSWQ.js} +1 -1
- package/dist/chunks/{dist-IDNOAB4M.js → dist-BL7IBQHD.js} +1 -1
- package/dist/chunks/dist-D7HOETCE.js +2 -0
- package/dist/chunks/{utils-3ISOUEFC.js → utils-XWDT3W5X.js} +1 -1
- package/dist/index.d.ts +13 -13
- package/dist/index.js +5 -5
- package/dist/kodax_cli.js +1337 -888
- package/dist/provider-capabilities.json +193 -190
- package/dist/sdk-agent.d.ts +207 -105
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +569 -37
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-llm.d.ts +5 -5
- package/dist/sdk-llm.js +1 -1
- package/dist/sdk-mcp.d.ts +3 -3
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-repl.d.ts +16 -15
- package/dist/sdk-repl.js +1 -1
- package/dist/sdk-session.d.ts +6 -3
- package/dist/sdk-session.js +1 -1
- package/dist/sdk-skills.js +1 -1
- package/dist/types-chunks/{base.d-BdJKSPO2.d.ts → base.d-C4jYVjJh.d.ts} +2 -1
- package/dist/types-chunks/{bash-prefix-extractor.d-D6hL0Cuv.d.ts → bash-prefix-extractor.d-CI_xcPhn.d.ts} +70 -35
- package/dist/types-chunks/{file-tracker.d-BNTIvsdb.d.ts → capsule.d-DaPuhyyK.d.ts} +170 -5
- package/dist/types-chunks/{config.d-BfJUXxC0.d.ts → config.d-CJy1WENT.d.ts} +17 -7
- package/dist/types-chunks/manager.d-DLmDhX3i.d.ts +696 -0
- package/dist/types-chunks/{resolver.d-DkgJlEzr.d.ts → resolver.d-B_wm409c.d.ts} +2 -2
- package/dist/types-chunks/{storage.d-B1Jk6ryM.d.ts → storage.d-J2GqOgaX.d.ts} +4 -1
- package/dist/types-chunks/{types.d-D2RNa5Y7.d.ts → types.d-BR9oNWup.d.ts} +429 -4
- package/dist/types-chunks/{types.d-B_MIIApc.d.ts → types.d-BnjX2Gn4.d.ts} +6 -1
- package/dist/types-chunks/{types.d-Cf-GCzac.d.ts → types.d-rPRl2LSB.d.ts} +4 -0
- package/dist/types-chunks/{utils.d-umRKgMAu.d.ts → utils.d-BJ_-y8gC.d.ts} +42 -8
- package/package.json +1 -1
- package/dist/chunks/chunk-66B6ZOU7.js +0 -31
- package/dist/chunks/chunk-KRHAO2T3.js +0 -567
- package/dist/chunks/chunk-QZFZIGPF.js +0 -2
- package/dist/chunks/chunk-VX6HN3JP.js +0 -415
- package/dist/chunks/dist-DS2KIZQG.js +0 -2
- package/dist/types-chunks/manager.d-U3UEwY1P.d.ts +0 -385
- package/dist/types-chunks/types.d-C5mHR87z.d.ts +0 -119
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
+
import{$ as Ly,A as Ta,B as Ca,C as gp,D as Ty,E as Cy,F as Pi,G as by,H as $i,J as Oi,K as zl,L as Iy,M as ba,N as Jn,O as xp,P as Ia,Q as Ni,R as ky,S as Xl,T as Yl,U as ql,V as vy,W as Ry,X as Ey,Y as My,Z as Ay,_ as _y,aa as Py,b as tn,c as ma,ca as Di,d as Wl,da as Bi,e as ko,ea as $y,f as ha,ga as yp,h as ga,ha as Ql,i as Gr,ia as Oy,j as gy,ja as Ny,k as Vr,l as ya,n as Sa,o as xy,s as Ro,t as Gl,u as Vl,v as yy,w as Li,x as Kl,y as Sy,z as wa}from"./chunk-ISGHUKRY.js";import{a as ne,c as xa,j as _i,k as vn,m as Fl,p as hy,r as Ul,x as hp,y as jl,z as vo}from"./chunk-TYZAH3YP.js";import{a as wy}from"./chunk-YW4RQV7U.js";import{n as Dy,o as By,p as Hy}from"./chunk-EVIDQWMF.js";import{Da as oy,De as my,Fb as Dl,Ib as iy,Ld as fy,Pe as Hl,S as Nl,ba as ty,c as lp,d as da,dc as sy,e as zx,fe as py,g as fp,gd as ay,hd as pa,ie as Bl,sa as ny,ta as pp,ua as ry,ud as cy,vd as ly,xd as mp,yd as uy,zd as dy}from"./chunk-67SWUEEN.js";import{S as _l,ca as Vx,ea as cp,fa as Kx,j as Al,sa as ua}from"./chunk-YACQ4OST.js";import{Cc as ki,Ka as up,Kc as kn,Mc as At,Na as In,Oc as vi,Pc as Ri,Qc as Zx,Sc as Ei,Tc as Mi,Uc as Ai,Vc as Ol,Wc as Io,Xc as ey,cd as dp,db as Yx,dd as fa,ib as Pl,k as Ll,kb as qx,rc as Ii,sc as $l,ub as Qx,va as Xx,vb as Jx,wa as bi}from"./chunk-JTHMWRXM.js";import{a as o}from"./chunk-V4WSBIXB.js";import{spawnSync as Rv}from"node:child_process";function Jl(e){return e==="1"||e?.toLowerCase()==="true"}o(Jl,"isTruthyEnv");function Wy(e){return e==="0"||e?.toLowerCase()==="false"}o(Wy,"isFalseyEnv");function Hi(e=process.env){return e.TERM_PROGRAM?.toLowerCase()==="vscode"||!!e.VSCODE_GIT_IPC_HANDLE||!!e.VSCODE_INJECTION}o(Hi,"isVsCodeTerminalHostEnv");function Wi(e={}){let t=e.env??process.env;return(e.platform??process.platform)==="win32"||!!t.WT_SESSION}o(Wi,"hasCursorUpViewportYankRisk");function Ev(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}o(Ev,"isSshSession");function ka(e={}){let t=e.env??process.env;return Jl(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&Ev(t)}o(ka,"isRemoteConptyHost");function Fi(e={}){let t=e.env??process.env;return Wi(e)||Hi(t)}o(Fi,"hasMainScreenRenderScrollRisk");function Mv(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}o(Mv,"isTmuxControlModeEnvHeuristic");var wr;function va(e={}){if(typeof e.tmuxControlMode=="boolean")return e.tmuxControlMode;let t=e.env??process.env,n=e.platform??process.platform;if(n==="win32")return!1;if(Mv(t))return!0;if(!(t===process.env&&n===process.platform))return!1;if(wr!==void 0||(wr=!1,!t.TMUX)||t.TERM_PROGRAM&&t.TERM_PROGRAM!=="iTerm.app")return wr;try{let i=Rv("tmux",["display-message","-p","#{client_control_mode}"],{encoding:"utf8",timeout:2e3});i.status===0&&(wr=i.stdout.trim()==="1")}catch{wr=!1}return wr}o(va,"isTmuxControlMode");function Sp(){wr=void 0}o(Sp,"resetTmuxControlModeProbeForTesting");function Eo(e={}){let t=e.env??process.env,n=e.isTTY??process.stdout.isTTY===!0,r=e.rawModeSupported??(process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function");return!n||!r||t.TERM==="dumb"||t.CI==="true"?"unsupported_control_host":va(e)?"tmux_control_mode":Hi(t)?"xtermjs_host":ka(e)?"remote_conpty_host":Wi(e)?"degraded_vt":"native_vt"}o(Eo,"detectTerminalRenderHost");var Mo=Eo;function Ui(e={}){let t=e.env??process.env;if(Jl(t.KODAX_FORCE_INK))return"legacy";let n=t.KODAX_TUI_RENDERER?.trim().toLowerCase();return n==="legacy"||n==="owned"||n==="auto"?n:"auto"}o(Ui,"resolveConfiguredTuiRendererMode");function Ao(e={}){let t=Ui(e);if(t==="legacy"||t==="owned")return t;let n=Eo(e);return n==="unsupported_control_host"||n==="tmux_control_mode"?"legacy":"owned"}o(Ao,"resolveEffectiveTuiRendererMode");function Zl(e={}){let t=e.env??process.env;if(Jl(t.KODAX_FORCE_CLASSIC_REPL))return"classic";let n=Ui({env:t});if(n==="legacy"||n==="owned")return"ink";let r=Eo(e);return r==="unsupported_control_host"||r==="tmux_control_mode"?"classic":"ink"}o(Zl,"resolveInteractiveSurfacePreference");var Av={enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!0},Fy={enabled:!0,promptShell:"main-screen",transcriptShell:"virtual",mouseWheel:!0,mouseClicks:!0,streamingPreview:!1,transcriptSpinnerAnimation:!0};function _o(e,t="owned",n={}){let r=n.env??process.env;return Wy(r.KODAX_FULLSCREEN)?t==="owned"&&e!=="tmux_control_mode"&&e!=="unsupported_control_host"?Fy:Av:_v(e,t)}o(_o,"resolveFullscreenPolicy");function _v(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 Fy;default:return{enabled:!1,promptShell:"main-screen",transcriptShell:"main-screen",mouseWheel:!1,mouseClicks:!1,streamingPreview:!1,transcriptSpinnerAnimation:!1}}}o(_v,"buildFullscreenPolicy");function ji(e,t={}){let n=t.rendererMode??"owned",r=_o(e,n,{env:t.env}),i=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:i,supportsCopyOnSelect:!1,supportsWheelHistory:r.mouseWheel,supportsViewportChrome:r.enabled,supportsSearchViewport:r.enabled,supportsStickyPrompt:r.enabled}}o(ji,"getTerminalHostCapabilities");function eu(e={}){return Ao(e)==="owned"}o(eu,"isOwnedRendererPreferred");function tu(e={}){let t=e.env??process.env;return Jl(t.KODAX_FORCE_CLASSIC_REPL)&&!Wy(t.KODAX_FORCE_CLASSIC_REPL)}o(tu,"isClassicReplForced");var Gi=class{static{o(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}},wp=1,Tp=2,Lv=1e3,Uy;function nu(){if(!(typeof Intl>"u"||typeof Intl.Segmenter!="function"))return Uy??=new Intl.Segmenter("en",{granularity:"grapheme"}),Uy}o(nu,"getGraphemeSegmenter");function mn(e){if(!e)return 0;let t=nu();if(t){let n=0;for(let r of t.segment(e))n++;return n}return[...e].length}o(mn,"getCodePointLength");function Zn(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}o(Zn,"isWideChar");function er(e){if(!e)return 0;let t=0,n=nu();if(n)for(let r of n.segment(e))t+=Zn(r.segment)?Tp:wp;else for(let r of e)t+=Zn(r)?Tp:wp;return t}o(er,"getVisualWidth");function Pv(e,t){if(!e||t<0)return"";let n=nu();if(n){let i=0;for(let s of n.segment(e)){if(i===t)return s.segment;i++}return""}let r=[...e];return t>=r.length?"":r[t]}o(Pv,"getCharAtCodePoint");function nn(e){if(!e)return[];let t=nu();if(t){let n=[];for(let r of t.segment(e))n.push(r.segment);return n}return[...e]}o(nn,"splitByCodePoints");function $v(e,t,n){return nn(e).slice(t,n).join("")}o($v,"sliceByCodePoints");function jy(e,t){let n=Math.max(0,t),r=nn(e),i=0,s=0;for(;i<r.length;){let a=Zn(r[i])?Tp:wp;if(s+a>n)break;s+=a,i++}return{before:r.slice(0,i).join(""),current:r[i]??"",after:r.slice(i+1).join("")}}o(jy,"splitAtVisualColumn");function Ra(e,t,n=!1){if(!e||t<=0)return"";let r="\u2026",s=n?t-1:t,a="",c=0,l=nn(e);for(let u of l){let f=Zn(u)?2:1;if(c+f>s)break;a+=u,c+=f}return n&&a.length<e.length&&(a+=r),a}o(Ra,"truncateByVisualWidth");var Cp=new Gi(Lv);function bp(e){let t=Cp.get(e);if(t!==void 0)return t;let n=er(e);return Cp.set(e,n),n}o(bp,"getVisualWidthCached");function rn(e,t,n,r){let i=[],s=[],a=[];for(let c=0;c<e.length;c++){let l=e[c]||"";if(s[c]=[],l.length===0){i.push("");let p=i.length-1;s[c].push([p,0]),a.push([c,0]);continue}let u=0,f=nn(l);for(;u<f.length;){let p="",m=0,h=u,w=-1;for(let S=u;S<f.length;S++){let x=f[S],T=Zn(x)?2:1;if(m+T>t){w>=0&&S-u>0?(p=f.slice(u,w).join(""),m=f.slice(u,w).reduce((M,v)=>M+(Zn(v)?2:1),0),h=w):p.length===0&&T>t&&(p=x,m=T,h=S+1);break}p+=x,m+=T,h=S+1,x===" "&&(w=S+1)}if(p.length>0||i.length===0){let S=u,x=i.length;i.push(p),s[c].push([x,S]),a.push([c,S])}u=h}}return{visualLines:i,logicalToVisualMap:s,visualToLogicalMap:a}}o(rn,"calculateVisualLayout");function Ip(e,t){let{logicalToVisualMap:n,visualLines:r}=e;if(r.length===0)return[0,0];let[i,s]=t,a=n[i];if(!a||a.length===0)return[0,0];let c;for(let[h,w]of a)if(w<=s)c=[h,w];else break;let[l,u]=c??a[0],f=r[l]??"",p=Math.max(0,s-u),m=er($v(f,0,p));return[l,m]}o(Ip,"calculateVisualCursorFromLayout");var kp={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"]}},Gy={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 Vy={dark:kp,minimal:Gy};function oe(e="dark"){return Vy[e]??kp}o(oe,"getTheme");function VN(){return Object.keys(Vy)}o(VN,"getThemeNames");import{jsx as an,jsxs as En,Fragment as GM}from"react/jsx-runtime";import{useMemo as Nu}from"react";import{jsx as bw}from"react/jsx-runtime";import{createContext as SM,useContext as No,useEffect as es,useMemo as Cw,useState as wM,useCallback as Iw,useRef as Ru}from"react";import{Stream as YE}from"node:stream";import{openSync as qE,writeSync as uw}from"node:fs";import{performance as QE}from"node:perf_hooks";import{tmpdir as JE}from"node:os";import{join as ZE}from"node:path";import vp,{forwardRef as Dv,useContext as Bv}from"react";import{createContext as Ov}from"react";var Vi=Ov({isScreenReaderEnabled:!1});import{createContext as Nv}from"react";var ru=Nv(void 0);var Ky=Dv(({children:e,backgroundColor:t,"aria-label":n,"aria-hidden":r,"aria-role":i,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:l}=Bv(Vi),u=n?vp.createElement("ink-text",null,n):void 0;if(l&&r)return null;let f=vp.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:i,state:s}},l&&u?u:e);return t?vp.createElement(ru.Provider,{value:t},f):f});Ky.displayName="Box";var Rn=Ky;import Uv,{useContext as zy}from"react";import Ki from"chalk";import Kr from"chalk";var Hv=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,Wv=/^ansi256\(\s?(\d+)\s?\)$/;function Fv(e){return e in Kr}o(Fv,"isNamedColor");function Un(e,t,n){if(!t)return e;if(Fv(t)){let r=Kr;if(n==="foreground")return r[t]?.(e)??e;let i=`bg${t[0].toUpperCase()+t.slice(1)}`;return r[i]?.(e)??e}if(t.startsWith("#"))return n==="foreground"?Kr.hex(t)(e):Kr.bgHex(t)(e);if(t.startsWith("ansi256")){let r=Wv.exec(t);if(!r)return e;let i=Number(r[1]);return n==="foreground"?Kr.ansi256(i)(e):Kr.bgAnsi256(i)(e)}if(t.startsWith("rgb")){let r=Hv.exec(t);if(!r)return e;let i=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?Kr.rgb(i,s,a)(e):Kr.bgRgb(i,s,a)(e)}return e}o(Un,"colorize");function on({color:e,backgroundColor:t,dimColor:n=!1,bold:r=!1,italic:i=!1,underline:s=!1,strikethrough:a=!1,inverse:c=!1,wrap:l="wrap",children:u,"aria-label":f,"aria-hidden":p=!1,internal_cursorAnchor:m=!1}){let{isScreenReaderEnabled:h}=zy(Vi),w=zy(ru),S=h&&f?f:u;if(S==null)return null;let x=o(T=>{let M=T;n&&(M=Ki.dim(M)),e&&(M=Un(M,e,"foreground"));let v=t??w;return v&&(M=Un(M,v,"background")),r&&(M=Ki.bold(M)),i&&(M=Ki.italic(M)),s&&(M=Ki.underline(M)),a&&(M=Ki.strikethrough(M)),c&&(M=Ki.inverse(M)),M},"transform");return h&&p?null:Uv.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:l},internal_transform:x,...m?{internal_cursorAnchor:!0}:{}},h&&f?f:u)}o(on,"Text");import jv,{useLayoutEffect as Gv,useMemo as Xy,useState as Vv}from"react";function Rp({items:e,children:t,style:n}){let[r,i]=Vv(0),s=Xy(()=>e.slice(r),[e,r]);Gv(()=>{i(e.length)},[e.length]);let a=s.map((l,u)=>t(l,r+u)),c=Xy(()=>({position:"absolute",flexDirection:"column",...n}),[n]);return jv.createElement("ink-box",{internal_static:!0,style:c},a)}o(Rp,"Static");import $o from"node:process";import aw from"react";import{throttle as AE}from"es-toolkit/compat";import sn from"ansi-escapes";import Yr from"is-in-ci";import _E from"auto-bind";import{onExit as LE}from"signal-exit";import PE from"patch-console";import{LegacyRoot as $E,ConcurrentRoot as OE}from"react-reconciler/constants.js";import NE from"yoga-layout";import DE from"wrap-ansi";import BE from"terminal-size";import Kv from"node:process";var ou=o(()=>Kv.env.DEV==="true","isDev");import SR from"react-reconciler";import{DefaultEventPriority as wR,NoEventPriority as uS}from"react-reconciler/constants.js";import*as zr from"scheduler";import sS from"yoga-layout";import{createContext as TR}from"react";import aR from"yoga-layout";import zv from"widest-line";var Yy=new Map,Xv=o(e=>{if(e.length===0)return{width:0,height:0};let t=Yy.get(e);if(t)return t;let n=zv(e),r=e.split(`
|
|
3
|
+
`).length,i={width:n,height:r};return Yy.set(e,i),i},"measureText"),Ep=Xv;import Yv from"wrap-ansi";import qv from"cli-truncate";var qy={},Qv=o((e,t,n)=>{let r=e+String(t)+String(n),i=qy[r];if(i)return i;let s=e;if(n==="wrap"&&(s=Yv(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=qv(e,t,{position:a})}return qy[r]=s,s},"wrapText"),iu=Qv;var Jv=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),Zv=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),eR=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),Zy=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),tR=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),eS=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),Qy=o((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!Jv(c))break;n++}let r=e.slice(t,n),i=n;for(;n<e.length;){let c=e[n];if(!Zv(c))break;n++}let s=e.slice(i,n),a=e[n];if(!(a===void 0||!eR(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),Jy=o((e,t,n)=>{for(let r=t;r<e.length;r++){let i=e[r];if(n&&i==="\x07"||i==="\x9C")return r+1;if(i==="\x1B"){let s=e[r+1];if(s==="\x1B"){r++;continue}if(s==="\\")return r+2}}},"findControlStringTerminatorIndex"),nR=o((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!Zy(s))break;n++}let r=e.slice(t,n),i=e[n];if(!(i===void 0||!tR(i)))return{endIndex:n+1,intermediateString:r,finalCharacter:i}},"readEscapeSequence"),rR=o(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"),oR=o(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"),Mp=o(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(eS(t))return!0;return!1},"hasAnsiControlCharacters"),zi=o((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"),tS=o(e=>{if(!Mp(e))return[{type:"text",value:e}];let t=[],n=0;for(let r=0;r<e.length;){let i=e[r];if(i===void 0)break;if(i==="\x1B"){let a=e[r+1];if(a===void 0)return zi(t,e,n,r);if(a==="["){let u=Qy(e,r+2);if(u===void 0)return zi(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=rR(a);if(c!==void 0){let u=Jy(e,r+2,c.allowBellTerminator);if(u===void 0)return zi(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=nR(e,r+1);if(l===void 0){if(Zy(a))return zi(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(i==="\x9B"){let a=Qy(e,r+1);if(a===void 0)return zi(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=oR(i);if(s!==void 0){let a=Jy(e,r+1,s.allowBellTerminator);if(a===void 0)return zi(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(i==="\x9C"){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"st",value:i}),r++,n=r;continue}if(eS(i)){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"c1",value:i}),r++,n=r;continue}r++}return n<e.length&&t.push({type:"text",value:e.slice(n)}),t},"tokenizeAnsi");var iR=/^[\d:;]*$/,sR=o(e=>{if(!Mp(e))return e;let t="";for(let n of tS(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&iR.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),nS=sR;var rS=o(e=>{let t="";for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r===void 0)continue;let i="";r.nodeName==="#text"?i=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(i=rS(r)),i.length>0&&typeof r.internal_transform=="function"&&(i=r.internal_transform(i,n))),t+=i}return nS(t)},"squashTextNodes"),Ea=rS;var su=o(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:aR.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(cR.bind(null,t)),t},"createNode"),au=o((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")&&cu(e)},"appendChildNode"),Ap=o((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")&&cu(e)},"insertBeforeNode"),Ma=o((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")&&cu(e)},"removeChildNode"),_p=o((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),Lp=o((e,t)=>{e.style=t},"setStyle"),oS=o(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return Aa(t,e),t},"createTextNode"),cR=o(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:Ea(e),r=Ep(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let i=e.style?.textWrap??"wrap",s=iu(n,t,i);return Ep(s)},"measureTextNode"),iS=o(e=>{if(e?.parentNode)return e.yogaNode??iS(e.parentNode)},"findClosestYogaNode"),cu=o(e=>{iS(e)?.markDirty()},"markNodeAsDirty"),Aa=o((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,cu(e)},"setTextNodeValue");import Ce from"yoga-layout";var uR=o((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?Ce.POSITION_TYPE_ABSOLUTE:Ce.POSITION_TYPE_RELATIVE),"top"in t&&e.setPosition(Ce.EDGE_TOP,t.top??0),"bottom"in t&&e.setPosition(Ce.EDGE_BOTTOM,t.bottom??0),"left"in t&&e.setPosition(Ce.EDGE_LEFT,t.left??0),"right"in t&&e.setPosition(Ce.EDGE_RIGHT,t.right??0)},"applyPositionStyles"),dR=o((e,t)=>{"margin"in t&&e.setMargin(Ce.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(Ce.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(Ce.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(Ce.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(Ce.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(Ce.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(Ce.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),fR=o((e,t)=>{"padding"in t&&e.setPadding(Ce.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(Ce.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(Ce.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(Ce.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(Ce.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(Ce.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(Ce.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),pR=o((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(Ce.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(Ce.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(Ce.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(Ce.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(Ce.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(Ce.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(Ce.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(Ce.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(Ce.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(Ce.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(Ce.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(Ce.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(Ce.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(Ce.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(Ce.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(Ce.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(Ce.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(Ce.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(Ce.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(Ce.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(Ce.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),mR=o((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"),hR=o((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?Ce.DISPLAY_FLEX:Ce.DISPLAY_NONE)},"applyDisplayStyles"),gR=o((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(Ce.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(Ce.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(Ce.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(Ce.EDGE_RIGHT,n)}},"applyBorderStyles"),xR=o((e,t)=>{"gap"in t&&e.setGap(Ce.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(Ce.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(Ce.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),yR=o((e,t={})=>{uR(e,t),dR(e,t),fR(e,t),pR(e,t),mR(e,t),hR(e,t),gR(e,t),xR(e,t)},"styles"),Pp=yR;if(ou())try{await import("./devtools-YINBSZC7.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
|
|
4
|
+
The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
|
|
5
|
+
but this failed as it was not installed. Debugging with React Devtools requires it.
|
|
6
|
+
|
|
7
|
+
To install use this command:
|
|
8
|
+
|
|
9
|
+
$ npm install --save-dev react-devtools-core
|
|
10
|
+
`.trim()+`
|
|
11
|
+
`);else throw e}var aS=o((e,t)=>{if(e===t)return;if(!e)return t;let n={},r=!1;for(let i of Object.keys(e))(!t||!Object.hasOwn(t,i))&&(n[i]=void 0,r=!0);if(t)for(let i of Object.keys(t))t[i]!==e[i]&&(n[i]=t[i],r=!0);return r?n:void 0},"diff"),cS=o(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),lu=uS,$p,lS={name:void 0,version:void 0},Tr=SR({getRootHostContext:o(()=>({isInsideText:!1}),"getRootHostContext"),prepareForCommit:o(()=>null,"prepareForCommit"),preparePortalMount:o(()=>null,"preparePortalMount"),clearContainer:o(()=>!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:o(()=>!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 i=e==="ink-text"&&r.isInsideText?"ink-virtual-text":e,s=su(i);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){Lp(s,c),s.yogaNode&&Pp(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_cursorAnchor"){s.internal_cursorAnchor=c;continue}if(a==="internal_static"){$p=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}_p(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 oS(e)},resetTextContent(){},hideTextInstance(e){Aa(e,"")},unhideTextInstance(e,t){Aa(e,t)},getPublicInstance:o(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(sS.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(sS.DISPLAY_FLEX)},appendInitialChild:au,appendChild:au,insertBefore:Ap,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:zr.unstable_scheduleCallback,cancelCallback:zr.unstable_cancelCallback,shouldYield:zr.unstable_shouldYield,now:zr.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:o(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:o(()=>null,"getInstanceFromScope"),appendChildToContainer:au,insertInContainerBefore:Ap,removeChildFromContainer(e,t){Ma(e,t),cS(t.yogaNode)},commitUpdate(e,t,n,r){$p&&e.internal_static&&($p.isStaticDirty=!0);let i=aS(n,r),s=aS(n.style,r.style);if(!(!i&&!s)){if(i)for(let[a,c]of Object.entries(i)){if(a==="style"){Lp(e,c);continue}if(a==="internal_transform"){e.internal_transform=c;continue}if(a==="internal_cursorAnchor"){e.internal_cursorAnchor=c;continue}if(a==="internal_static"){e.internal_static=!0;continue}_p(e,a,c)}s&&e.yogaNode&&Pp(e.yogaNode,s)}},commitTextUpdate(e,t,n){Aa(e,n)},removeChild(e,t){Ma(e,t),cS(t.yogaNode)},setCurrentUpdatePriority(e){lu=e},getCurrentUpdatePriority:o(()=>lu,"getCurrentUpdatePriority"),resolveUpdatePriority(){return lu!==uS?lu:wR},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:TR(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:lS.name,rendererVersion:lS.version});import vR from"widest-line";import RR from"indent-string";import Xr from"yoga-layout";import uu from"yoga-layout";var CR=o(e=>e.getComputedWidth()-e.getComputedPadding(uu.EDGE_LEFT)-e.getComputedPadding(uu.EDGE_RIGHT)-e.getComputedBorder(uu.EDGE_LEFT)-e.getComputedBorder(uu.EDGE_RIGHT),"getMaxWidth"),dS=CR;import bR from"cli-boxes";import du from"chalk";var IR=o((e,t,n,r)=>{if(n.style.borderStyle){let i=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?bR[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,f=n.style.borderRightColor??n.style.borderColor,p=n.style.borderTopDimColor??n.style.borderDimColor,m=n.style.borderBottomDimColor??n.style.borderDimColor,h=n.style.borderLeftDimColor??n.style.borderDimColor,w=n.style.borderRightDimColor??n.style.borderDimColor,S=n.style.borderTop!==!1,x=n.style.borderBottom!==!1,T=n.style.borderLeft!==!1,M=n.style.borderRight!==!1,v=i-(T?1:0)-(M?1:0),P=S?Un((T?a.topLeft:"")+a.top.repeat(v)+(M?a.topRight:""),c,"foreground"):void 0;S&&p&&(P=du.dim(P));let O=s;S&&(O-=1),x&&(O-=1);let _=(Un(a.left,u,"foreground")+`
|
|
12
|
+
`).repeat(O);h&&(_=du.dim(_));let C=(Un(a.right,f,"foreground")+`
|
|
13
|
+
`).repeat(O);w&&(C=du.dim(C));let j=x?Un((T?a.bottomLeft:"")+a.bottom.repeat(v)+(M?a.bottomRight:""),l,"foreground"):void 0;x&&m&&(j=du.dim(j));let ue=S?1:0;P&&r.write(e,t,P,{transformers:[]}),T&&r.write(e,t+ue,_,{transformers:[]}),M&&r.write(e+i-1,t+ue,C,{transformers:[]}),j&&r.write(e,t+s-1,j,{transformers:[]})}},"renderBorder"),fS=IR;var kR=o((e,t,n,r)=>{if(!n.style.backgroundColor)return;let i=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,f=i-a-c,p=s-l-u;if(!(f>0&&p>0))return;let m=Un(" ".repeat(f),n.style.backgroundColor,"background");for(let h=0;h<p;h++)r.write(e+a,t+l+h,m,{transformers:[]})},"renderBackground"),pS=kR;function fu(e){let{rawScrollTop:t,contentHeight:n,viewportHeight:r,previousScrollHeight:i,stickyScroll:s,clampMin:a,clampMax:c,virtualScrollWindowed:l,inWindowScrollTop:u,previousAppliedScrollTop:f,regionTop:p}=e,m=Math.max(0,n-r),h=Math.max(0,Math.min(Math.floor(t),m)),S=s&&n>=i?m:h,x=a!==void 0||c!==void 0?Math.max(a??0,Math.min(S,Math.min(m,c??m))):S,T=l&&u!==void 0,M=Math.max(0,Math.floor(u??0)),v=l?T?M:0:x,P=T?v:x,O=null;if(f!==void 0&&f!==P&&r>0){let _=p+r-1;_>=p&&(O={top:p,bottom:_,delta:P-f})}return{scrollHeight:n,viewportTop:x,appliedScrollTop:P,scrollTop:x,scrollOffsetY:v,scrollHint:O}}o(fu,"computeScrollState");var ER=o((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),i=n.getComputedTop();t=`
|
|
14
|
+
`.repeat(i)+RR(t,r)}return t},"applyPaddingToText"),pu=o((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===Xr.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=Ea(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=>pu(s,{parentRole:e.internal_accessibility?.role,skipStaticElements:t.skipStaticElements})).filter(Boolean).join(r)}if(e.internal_accessibility){let{role:r,state:i}=e.internal_accessibility;if(i){let a=Object.keys(i).filter(c=>i[c]).join(", ");a&&(n=`(${a}) ${n}`)}r&&r!==t.parentRole&&(n=`${r}: ${n}`)}return n},"renderNodeToScreenReaderOutput"),Op=null;function mS(){Op=null}o(mS,"resetScrollHint");function hS(){return Op}o(hS,"getScrollHint");var gS=o((e,t,n)=>{let{offsetX:r=0,offsetY:i=0,transformers:s=[],skipStaticElements:a}=n;if(a&&e.internal_static)return;let{yogaNode:c}=e;if(c){if(c.getDisplay()===Xr.DISPLAY_NONE)return;let l=r+c.getComputedLeft(),u=i+c.getComputedTop();e.internal_cursorAnchor&&(t.cursorPosition={x:l,y:u});let f=s;if(typeof e.internal_transform=="function"&&(f=[e.internal_transform,...s]),e.nodeName==="ink-text"){let h=Ea(e);if(h.length>0){let w=vR(h),S=dS(c);if(w>S){let x=e.style.textWrap??"wrap";h=iu(h,S,x)}h=ER(e,h),t.write(l,u,h,{transformers:f})}return}let p=!1,m=0;if(e.nodeName==="ink-box"){pS(l,u,e,t),fS(l,u,e,t);let h=e.style.overflowX??e.style.overflow,w=e.style.overflowY??e.style.overflow,S=h==="hidden"||h==="scroll",x=w==="hidden"||w==="scroll";if(w==="scroll"){let T=c.getComputedBorder(Xr.EDGE_TOP),M=c.getComputedBorder(Xr.EDGE_BOTTOM),v=Math.max(0,c.getComputedHeight()-T-M),P=e.attributes?.virtualScrollWindowed===!0,O=e.childNodes[0],_=Math.max(0,Math.floor(P?e.attributes?.scrollHeight??0:O?.yogaNode?.getComputedHeight()??e.attributes?.scrollHeight??0)),C=typeof e.scrollHeight=="number"?e.scrollHeight:_,j=fu({rawScrollTop:e.scrollTop??e.attributes?.scrollTop??0,contentHeight:_,viewportHeight:v,previousScrollHeight:C,stickyScroll:e.stickyScroll??!!e.attributes?.stickyScroll,clampMin:e.attributes?.scrollClampMin,clampMax:e.attributes?.scrollClampMax,virtualScrollWindowed:P,inWindowScrollTop:e.attributes?.inWindowScrollTop,previousAppliedScrollTop:e.appliedScrollTop,regionTop:u+T});e.scrollHeight=j.scrollHeight,e.scrollViewportHeight=v,e.scrollViewportTop=j.viewportTop,e.appliedScrollTop=j.appliedScrollTop,j.scrollHint&&(Op=j.scrollHint),e.scrollTop=j.scrollTop,m=j.scrollOffsetY}if(S||x){let T=S?l+c.getComputedBorder(Xr.EDGE_LEFT):void 0,M=S?l+c.getComputedWidth()-c.getComputedBorder(Xr.EDGE_RIGHT):void 0,v=x?u+c.getComputedBorder(Xr.EDGE_TOP):void 0,P=x?u+c.getComputedHeight()-c.getComputedBorder(Xr.EDGE_BOTTOM):void 0;t.clip({x1:T,x2:M,y1:v,y2:P}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let h of e.childNodes)gS(h,t,{offsetX:l,offsetY:u-m,transformers:f,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),Np=gS;import MR from"slice-ansi";import AR from"string-width";import{styledCharsFromTokens as _R,styledCharsToString as LR,tokenize as PR}from"@alcalzone/ansi-tokenize";var Dp=class{static{o(this,"OutputCaches")}widths=new Map;blockWidths=new Map;styledChars=new Map;getStyledChars(t){let n=this.styledChars.get(t);return n===void 0&&(n=_R(PR(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=AR(t),this.widths.set(t,n)),n}getWidestLine(t){let n=this.blockWidths.get(t);if(n===void 0){let r=0;for(let i of t.split(`
|
|
16
|
+
`))r=Math.max(r,this.getStringWidth(i));n=r,this.blockWidths.set(t,n)}return n}},Xi=class{static{o(this,"Output")}width;height;operations=[];caches=new Dp;constructor(t){let{width:n,height:r}=t;this.width=n,this.height=r}write(t,n,r,i){let{transformers:s}=i;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 i=[];for(let s=0;s<this.width;s++)i.push({type:"char",value:" ",fullWidth:!1,styles:[]});t.push(i)}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:i,transformers:s}=r,{x:a,y:c}=r,l=i.split(`
|
|
17
|
+
`),u=n.at(-1);if(u){let p=typeof u?.x1=="number"&&typeof u?.x2=="number",m=typeof u?.y1=="number"&&typeof u?.y2=="number";if(p){let h=this.caches.getWidestLine(i);if(a+h<u.x1||a>u.x2)continue}if(m){let h=l.length;if(c+h<u.y1||c>u.y2)continue}if(p&&(l=l.map(h=>{let w=a<u.x1?u.x1-a:0,S=this.caches.getStringWidth(h),x=a+S>u.x2?u.x2-a:S;return MR(h,w,x)}),a<u.x1&&(a=u.x1)),m){let h=c<u.y1?u.y1-c:0,w=l.length,S=c+w>u.y2?u.y2-c:w;l=l.slice(h,S),c<u.y1&&(c=u.y1)}}let f=0;for(let[p,m]of l.entries()){let h=t[c+f];if(!h)continue;for(let x of s)m=x(m,p);let w=this.caches.getStyledChars(m),S=a;for(let x of w){h[S]=x;let T=Math.max(1,this.caches.getStringWidth(x.value));if(T>1)for(let M=1;M<T;M++)h[S+M]={type:"char",value:"",fullWidth:!1,styles:x.styles};S+=T}f++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let i=r.filter(s=>s!==void 0);return LR(i).trimEnd()}).join(`
|
|
18
|
+
`),height:t.length}}};var Cr={Single:0,Wide:1,SpacerTail:2},tr={char:" ",width:Cr.Single,style:"",hyperlink:void 0};function xS(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(tr);return{width:e,height:t,cells:n}}o(xS,"createScreen");function Yi(e,t,n){if(!(t<0||n<0||t>=e.width||n>=e.height))return e.cells[n*e.width+t]}o(Yi,"cellAt");function yS(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(tr),r=!1;return{width:e,height:t,setCellAt(i,s,a){if(r)throw new Error("ScreenBuilder.setCellAt called after build()");if(i<0||s<0||i>=e||s>=t)throw new RangeError(`ScreenBuilder.setCellAt out of bounds: (${i}, ${s}) on ${e}x${t}`);n[s*e+i]=a},build(){if(r)throw new Error("ScreenBuilder.build called twice");return r=!0,{width:e,height:t,cells:n}}}}o(yS,"createScreenBuilder");function*mu(e,t){let n=Math.max(e.width,t.width),r=Math.max(e.height,t.height);for(let i=0;i<r;i++)for(let s=0;s<n;s++){let a=Yi(e,s,i),c=Yi(t,s,i);$R(a,c)||(yield{x:s,y:i,prev:a,next:c})}}o(mu,"diffEach");function SS(e,t,n,r){if(r===0||e.height===0)return e;let i=Math.max(0,t),s=Math.min(e.height-1,n);if(i>s)return e;let a=e.width,c=e.cells.slice(),l=s-i+1,u=o(f=>{for(let p=0;p<a;p++)c[f*a+p]=tr},"blankRow");if(Math.abs(r)>=l){for(let f=i;f<=s;f++)u(f);return{...e,cells:c}}if(r>0){for(let f=i;f<=s-r;f++)for(let p=0;p<a;p++)c[f*a+p]=e.cells[(f+r)*a+p]??tr;for(let f=s-r+1;f<=s;f++)u(f)}else{let f=-r;for(let p=s;p>=i+f;p--)for(let m=0;m<a;m++)c[p*a+m]=e.cells[(p-f)*a+m]??tr;for(let p=i;p<=i+f-1;p++)u(p)}return{...e,cells:c}}o(SS,"shiftRowsRegion");function $R(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}o($R,"cellsEqual");var Bp="\x1B]8;";function OR(e){return e.endsWith("\x07")?e.slice(0,-1):e}o(OR,"stripOsc8Terminator");function NR(e){if(!e.startsWith(Bp))return;let t=e.slice(Bp.length),n=t.indexOf(";");if(n<0)return;let r=t.slice(n+1),i=OR(r);return i.length>0?i:void 0}o(NR,"parseOsc8Url");function DR(e){if(e.value==="")return{char:"",width:Cr.SpacerTail,style:"",hyperlink:void 0};let t="",n;for(let r of e.styles)if(r.code.startsWith(Bp)){let i=NR(r.code);i!==void 0&&(n=i)}else t+=r.code;return{char:e.value,width:e.fullWidth?Cr.Wide:Cr.Single,style:t,hyperlink:n}}o(DR,"styledCharToCell");function hu(e){let t=e.getGrid(),n=e.width,r=e.height,i=yS(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 f=c[u];if(!f)continue;let p=DR(f);p.char===tr.char&&p.width===tr.width&&p.style===tr.style&&p.hyperlink===tr.hyperlink||i.setCellAt(u,a,p)}}return i.build()}o(hu,"outputToScreen");var BR=o((e,t,n)=>{if(e.yogaNode){if(t){let m=pu(e,{skipStaticElements:!0}),h=m===""?0:m.split(`
|
|
19
|
+
`).length,w="";return e.staticNode&&(w=pu(e.staticNode,{skipStaticElements:!1})),{output:m,outputHeight:h,staticOutput:w?`${w}
|
|
20
|
+
`:"",frame:void 0}}let r=new Xi({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});mS(),Np(e,r,{skipStaticElements:!0});let i;e.staticNode?.yogaNode&&(i=new Xi({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),Np(e.staticNode,i,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=hu(r),l=n?.columns??e.yogaNode.getComputedWidth(),u=n?.rows??e.yogaNode.getComputedHeight(),f=r.cursorPosition,p={screen:c,viewport:{width:l,height:u},cursor:{x:0,y:c.height,visible:!1},scrollHint:hS(),...f?{inputCursor:{x:f.x,y:f.y}}:{}};return{output:s,outputHeight:a,staticOutput:i?`${i.get().output}
|
|
21
|
+
`:"",frame:p}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),Hp=BR;function hn(...e){if(e.length===0)return"\x1B[";if(e.length===1)return`\x1B[${e[0]}`;let t=e.slice(0,-1),n=e[e.length-1];return`\x1B[${t.join(";")}${n}`}o(hn,"csi");function wS(e=1){return e===0?"":hn(e,"A")}o(wS,"cursorUp");function HR(e=1){return e===0?"":hn(e,"B")}o(HR,"cursorDown");function WR(e=1){return e===0?"":hn(e,"C")}o(WR,"cursorForward");function FR(e=1){return e===0?"":hn(e,"D")}o(FR,"cursorBack");function TS(e){return hn(e,"G")}o(TS,"cursorTo");var UR=hn("G"),CS=hn("H");function bS(e,t){let n="";return e<0?n+=FR(-e):e>0&&(n+=WR(e)),t<0?n+=wS(-t):t>0&&(n+=HR(t)),n}o(bS,"cursorMove");var jR=hn(2,"K");function IS(e){if(e<=0)return"";let t="";for(let n=0;n<e;n++)t+=jR,n<e-1&&(t+=wS(1));return t+=UR,t}o(IS,"eraseLines");var kS=hn("r"),vS="\x1B7",RS="\x1B8";function ES(e,t){return hn(e,t,"r")}o(ES,"setScrollRegion");function MS(e=1){return hn(e,"S")}o(MS,"scrollUp");function AS(e=1){return hn(e,"T")}o(AS,"scrollDown");var gu=hn(0,"m");function _S(e){return`\x1B]${e.join(";")}\x07`}o(_S,"osc");function GR(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)}o(GR,"osc8Id");function _a(e,t){if(!e)return La;let n={id:GR(e),...t??{}},r=Object.entries(n).map(([i,s])=>`${i}=${s}`).join(":");return _S(["8",r,e])}o(_a,"link");var La=_S(["8","",""]);function Wp(e){let{screen:t}=e;if(t.width===0||t.height===0)return[];let n=[],r="",i;for(let s=0;s<t.height;s++){let a="";for(let c=0;c<t.width;c++){let l=Yi(t,c,s);!l||l.width===Cr.SpacerTail||(l.hyperlink!==i&&(i!==void 0&&(a+=La),l.hyperlink!==void 0&&(a+=_a(l.hyperlink)),i=l.hyperlink),l.style!==r&&(r!==""&&(a+=gu),l.style!==""&&(a+=l.style),r=l.style),a+=l.char)}i!==void 0&&(a+=La,i=void 0),r!==""&&(a+=gu,r=""),n.push(a.trimEnd())}return[{type:"stdout",content:n.join(`
|
|
22
|
+
`)}]}o(Wp,"renderFullFrame");var VR=Object.freeze([]),KR=Object.freeze([]);function qi(e,t){if(e===t)return{patches:VR,current:e};let n=[];return e!==""&&n.push({type:"stdout",content:gu}),t!==""&&n.push({type:"stdout",content:t}),{patches:n,current:t}}o(qi,"transitionStyle");function xu(e,t){let n=qi(e,t),r="";for(let i of n.patches)i.type==="stdout"&&(r+=i.content);return{str:r,current:n.current}}o(xu,"transitionStyleStr");function Lo(e,t){if(e===t)return{patches:KR,current:e};let n=[];return e!==void 0&&n.push({type:"stdout",content:La}),t!==void 0&&n.push({type:"stdout",content:_a(t)}),{patches:n,current:t}}o(Lo,"transitionHyperlink");function LS(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}o(LS,"needsWidthCompensation");var Qi=class{static{o(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 i of n)this._diffMut.push(i);this._cursorMut.x+=r.dx,this._cursorMut.y+=r.dy}},br={type:"carriageReturn"},Pa={type:"stdout",content:`
|
|
23
|
+
`};function yu(e,t,n){let r=t.width===Cr.Wide?2:1,i=e.viewportWidth,s=!1;return e.txn(a=>{let c=a.x;if(r===2&&c<i){let f=t.char.length>2?i:i+1;if(c+2>=f)return[[],{dx:0,dy:0}]}let l=[];n.length>0&&l.push({type:"stdout",content:n});let u=r===2&&LS(t.char);return u&&c+1<i&&(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>=i?[l,{dx:r-c,dy:1}]:[l,{dx:r,dy:0}]}),s}o(yu,"writeCellWithStyleStr");function $a(e,t,n){e.txn(r=>{let i=t-r.x,s=n-r.y;return r.x>=e.viewportWidth?[[br,{type:"cursorMove",x:t,y:s}],{dx:i,dy:s}]:s!==0?[[br,{type:"cursorMove",x:t,y:s}],{dx:i,dy:s}]:[[{type:"cursorMove",x:i,y:s}],{dx:i,dy:s}]})}o($a,"moveCursorTo");function Su(e,t,n,r,i=!1){let s="",a;for(let c=n;c<r;c++){if(e.cursor.y<c){let p=c-e.cursor.y;e.txn(m=>{let h=new Array(1+p);h[0]=br;for(let w=0;w<p;w++)h[1+w]=Pa;return[h,{dx:-m.x,dy:p}]})}for(let p=0;p<t.screen.width;p++){let m=Yi(t.screen,p,c);if(!m||m.width===Cr.SpacerTail||m.char===" "&&m.style===""&&m.hyperlink===void 0)continue;$a(e,p,c);let h=Lo(a,m.hyperlink);for(let S of h.patches)e.txn(()=>[[S],{dx:0,dy:0}]);a=h.current;let w=xu(s,m.style);yu(e,m,w.str)&&(s=w.current)}let l=qi(s,"");for(let p of l.patches)e.txn(()=>[[p],{dx:0,dy:0}]);s=l.current;let u=Lo(a,void 0);for(let p of u.patches)e.txn(()=>[[p],{dx:0,dy:0}]);a=u.current;let f=c===r-1&&t.screen.height<=t.viewport.height&&(c+1>=t.viewport.height||i);e.txn(p=>f?[[br],{dx:-p.x,dy:0}]:[[br,Pa],{dx:-p.x,dy:1}])}if(s!==""||a!==void 0){let c=qi(s,"");for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);let l=Lo(a,void 0);for(let u of l.patches)e.txn(()=>[[u],{dx:0,dy:0}])}}o(Su,"renderFrameSlice");function Fp(e,t){let n="";for(let r=0;r<e.width;r++){let i=Yi(e,r,t);n+=i?.char??" "}return n.trimEnd()}o(Fp,"readLine");function wu(e,t,n=!1){let r=new Qi({x:0,y:0},e.viewport.width);Su(r,e,0,e.screen.height,n);let i=[{type:"clearTerminal",reason:t}];for(let s of r.diff)i.push(s);return i}o(wu,"fullResetSequence_CAUSES_FLICKER");function Up(e,t){let n=e.cursor.y>=e.screen.height,r=t.screen.height>e.screen.height,i=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:i,prevHadScrollback:s,nextFitsViewport:a}}o(Up,"computeViewportState");function PS(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=Up(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 mu(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}}o(PS,"shouldFullReset");function $S(e,t,n){return!!(t&&t.width===2||e&&e.width===2&&!t||t&&n&&!e)}o($S,"shouldSkipDiff");var Tu=class{static{o(this,"LogUpdate")}options;constructor(t){this.options=t}render(t,n,r={}){if(!this.options.isTTY)return Wp(n);let i=r.inlineBottomAnchored??!1,s=OS(t,i),a=OS(n,i),c=PS(s,a,Fp);if(c.reset)return wu(a,c.reason,i);let l=a.scrollHint;if(l&&r.altScreen&&r.decstbmSafe&&process.env.KODAX_SCROLL_DECSTBM==="1"&&l.delta!==0&&l.top>=0&&l.bottom<s.screen.height&&l.bottom<a.screen.height&&Math.abs(l.delta)<=l.bottom-l.top){let u={type:"scrollRegion",top:l.top,bottom:l.bottom,delta:l.delta},f={...s,screen:SS(s.screen,l.top,l.bottom,l.delta)};return[u,...NS(f,a,i)]}return NS(s,a,i)}reset(){}};function jp(e,t){for(let n of t)e.txn(()=>[[n],{dx:0,dy:0}])}o(jp,"emitPatches");function DS(e,t,n){if(t!==""){let r=qi(t,"");jp(e,r.patches)}if(n!==void 0){let r=Lo(n,void 0);jp(e,r.patches)}return{style:"",hyperlink:void 0}}o(DS,"resetStyleAndHyperlink");function zR(e,t,n){let r=t.screen.height-n.screen.height;e.txn(i=>[[{type:"clear",count:r},{type:"cursorMove",x:0,y:-1}],{dx:-i.x,dy:-r}])}o(zR,"applyShrink");function XR(e,t,n,r){let i="",s,a=!1;for(let c of mu(t.screen,n.screen)){let{x:l,y:u,prev:f,next:p}=c;if(r.growing&&u>=t.screen.height)continue;let m=!!(p&&p.char===" "&&p.style===""&&p.hyperlink===void 0);if(!$S(f,p,m)){if(u<r.viewportY){a=!0;break}if($a(e,l,u),p){let h=Lo(s,p.hyperlink);jp(e,h.patches),s=h.current;let w=xu(i,p.style);yu(e,p,w.str)&&(i=w.current)}else if(f){let h=DS(e,i,s);i=h.style,s=h.hyperlink,e.txn(()=>[[{type:"stdout",content:" "}],{dx:1,dy:0}])}}}return{currentStyle:i,currentHyperlink:s,needsFullReset:a}}o(XR,"diffPass");function OS(e,t){let n=t?Math.max(0,Math.min(e.viewport.height-1,e.screen.height-1)):Math.max(0,e.viewport.height-1);return e.cursor.y<=n?e:{...e,cursor:{...e.cursor,y:n}}}o(OS,"clampRestingCursor");function YR(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]=br;for(let a=0;a<r;a++)s[1+a]=Pa;return[s,{dx:-n.x,dy:r}]}let i=t.cursor.y-n.y;return i!==0||n.x!==t.cursor.x?[[br,{type:"cursorMove",x:t.cursor.x,y:i}],{dx:t.cursor.x-n.x,dy:i}]:[[],{dx:0,dy:0}]}):$a(e,t.cursor.x,t.cursor.y)}o(YR,"restoreCursor");function NS(e,t,n=!1){let r=Up(e,t),i=new Qi(e.cursor,t.viewport.width);r.shrinking&&zR(i,e,t);let s=XR(i,e,t,r);return s.needsFullReset?wu(t,"offscreen",n):(DS(i,s.currentStyle,s.currentHyperlink),r.growing&&Su(i,t,e.screen.height,t.screen.height,n),YR(i,t),i.diff)}o(NS,"renderIncremental");var qR="\x1B[?25l",QR="\x1B[?25h",JR=`\x1B[2J${CS}`,ZR="\x1B[?2026h",eE="\x1B[?2026l";function tE(e){switch(e.type){case"stdout":return e.content;case"carriageReturn":return"\r";case"cursorHide":return qR;case"cursorShow":return QR;case"cursorMove":return bS(e.x,e.y);case"cursorTo":return TS(e.col);case"clear":return IS(e.count);case"clearTerminal":return JR;case"hyperlink":return _a(e.uri);case"scrollRegion":{let t=e.top+1,n=e.bottom+1,r=Math.abs(e.delta),i=e.delta>0?MS(r):AS(r);return vS+ES(t,n)+i+kS+RS}}}o(tE,"patchToBytes");function Cu(e,t,n=!1){let r="",i=!1;for(let s of t)s.type==="clearTerminal"&&(i=!0),r+=tE(s);if(r.length!==0){if(n&&i){e.write(ZR+r+eE);return}e.write(r)}}o(Cu,"applyDiff");function BS(e,t,n={}){if(t===void 0)return!1;let r=e.cellLogUpdate.render(e.prevFrame,t,n);return Cu(e.stdout,r,n.synchronized??!1),e.prevFrame=t,!0}o(BS,"applyCellFrame");function Oa(e,t){return{screen:xS(0,0),viewport:{width:t,height:e},cursor:{x:0,y:0,visible:!0}}}o(Oa,"emptyFrame");import nE from"is-in-ci";var Ir="\x1B[?2026h",nr="\x1B[?2026l";function kr(e){return"isTTY"in e&&e.isTTY===!0&&!nE}o(kr,"shouldSynchronize");var rE=new WeakMap,HS=rE;import{EventEmitter as bE}from"node:events";import IE from"node:process";import Po,{useState as Kp,useRef as Ji,useCallback as yt,useMemo as Zi,useEffect as rw}from"react";import kE from"cli-cursor";var oE=o(e=>e>=48&&e<=63,"isCsiParameterByte"),iE=o(e=>e>=32&&e<=47,"isCsiIntermediateByte"),FS=o(e=>e>=64&&e<=126,"isCsiFinalByte");function sE(e,t,n){let r=t+n+1,i=r;for(;i<e.length;i+=1){let s=e.codePointAt(i);if(s===void 0)return"pending";if(!(oE(s)||iE(s))&&!(s===91&&i===r))return FS(s)?{sequence:e.slice(t,i+1),nextIndex:i+1}:void 0}return"pending"}o(sE,"parseCsiSequence");function aE(e,t,n){let r=t+n+2;if(r>e.length)return"pending";let i=e.codePointAt(r-1);if(!(i===void 0||!FS(i)))return{sequence:e.slice(t,r),nextIndex:r}}o(aE,"parseSs3Sequence");function WS(e,t,n){let r=e[t+n];if(r===void 0)return"pending";if(r==="[")return sE(e,t,n);if(r==="O")return aE(e,t,n)}o(WS,"parseControlSequence");function cE(e,t){let n=e.codePointAt(t+1),r=n!==void 0&&n>65535?2:1,i=t+1+r;return{sequence:e.slice(t,i),nextIndex:i}}o(cE,"parseEscapedCodePoint");function lE(e){let t=[],n=0,r=o(i=>({events:t,pending:e.slice(i)}),"pendingFrom");for(;n<e.length;){let i=e.indexOf("\x1B",n);if(i===-1)return t.push(e.slice(n)),{events:t,pending:""};if(i>n&&t.push(e.slice(n,i)),i===e.length-1)return r(i);let s=WS(e,i,1);if(s==="pending")return r(i);if(s){t.push(s.sequence),n=s.nextIndex;continue}if(e[i+1]==="\x1B"){if(i+2>=e.length)return r(i);let l=WS(e,i,2);if(l==="pending")return r(i);if(l){t.push(l.sequence),n=l.nextIndex;continue}t.push(e.slice(i,i+2)),n=i+2;continue}let c=cE(e,i);t.push(c.sequence),n=c.nextIndex}return{events:t,pending:""}}o(lE,"parseKeypresses");function bu(){let e="";return{push(t){let n=lE(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=""}}}o(bu,"createInputParser");import{createContext as uE}from"react";var US=uE({exit(){}});US.displayName="InternalAppContext";var jS=US;import{EventEmitter as dE}from"node:events";import{createContext as fE}from"react";var pE={isTTY:!1,isRaw:!1,on(){},off(){},pause(){},resume(){},setRawMode(){}},GS=fE({stdin:pE,internal_eventEmitter:new dE,setRawMode(){},isRawModeSupported:!1,internal_exitOnCtrlC:!0});GS.displayName="InternalStdinContext";var VS=GS;import{createContext as mE}from"react";var hE={isTTY:!1,columns:80,rows:24,write(){return!0},on(){},off(){}},KS=mE({stdout:hE,write(){}});KS.displayName="InternalStdoutContext";var zS=KS;import{createContext as gE}from"react";var xE={isTTY:!1,write(){return!0},on(){},off(){}},XS=gE({stderr:xE,write(){}});XS.displayName="InternalStderrContext";var YS=XS;import{createContext as yE}from"react";var qS=yE({activeId:void 0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){}});qS.displayName="InternalFocusContext";var QS=qS;import{createContext as SE}from"react";var JS=SE({setCursorPosition(){}});JS.displayName="InternalCursorContext";var ZS=JS;import TE,{PureComponent as CE}from"react";import*as Iu from"node:fs";import{cwd as nw}from"node:process";import Ct from"react";import ew from"stack-utils";import wE from"code-excerpt";var Gp=o(e=>e?.replace(`file://${nw()}/`,""),"cleanupPath"),tw=new ew({cwd:nw(),internals:ew.nodeInternals()});function Vp({error:e}){let t=e.stack?e.stack.split(`
|
|
24
|
+
`).slice(1):void 0,n=t?tw.parseLine(t[0]):void 0,r=Gp(n?.file),i,s=0;if(r&&n?.line&&Iu.existsSync(r)){let a=Iu.readFileSync(r,"utf8");if(i=wE(a,n.line),i)for(let{line:c}of i)s=Math.max(s,String(c).length)}return Ct.createElement(Rn,{flexDirection:"column",padding:1},Ct.createElement(Rn,null,Ct.createElement(on,{backgroundColor:"red",color:"white"}," ","ERROR"," "),Ct.createElement(on,null," ",e.message)),n&&r&&Ct.createElement(Rn,{marginTop:1},Ct.createElement(on,{dimColor:!0},r,":",n.line,":",n.column)),n&&i&&Ct.createElement(Rn,{marginTop:1,flexDirection:"column"},i.map(({line:a,value:c})=>Ct.createElement(Rn,{key:a},Ct.createElement(Rn,{width:s+1},Ct.createElement(on,{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," "),":")),Ct.createElement(on,{key:a,backgroundColor:a===n.line?"red":void 0,color:a===n.line?"white":void 0}," "+c)))),e.stack&&Ct.createElement(Rn,{marginTop:1,flexDirection:"column"},e.stack.split(`
|
|
25
|
+
`).slice(1).map(a=>{let c=tw.parseLine(a);return c?Ct.createElement(Rn,{key:a},Ct.createElement(on,{dimColor:!0},"- "),Ct.createElement(on,{dimColor:!0,bold:!0},c.function),Ct.createElement(on,{dimColor:!0,color:"gray","aria-label":`at ${Gp(c.file)??""} line ${c.line} column ${c.column}`}," ","(",Gp(c.file)??"",":",c.line,":",c.column,")")):Ct.createElement(Rn,{key:a},Ct.createElement(on,{dimColor:!0},"- "),Ct.createElement(on,{dimColor:!0,bold:!0},a,"\\t"," "))})))}o(Vp,"ErrorOverview");var Na=class extends CE{static{o(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?TE.createElement(Vp,{error:this.state.error}):this.props.children}};var vE=" ",RE="\x1B[Z",EE="\x1B";function ow({children:e,stdin:t,stdout:n,stderr:r,writeToStdout:i,writeToStderr:s,exitOnCtrlC:a,onExit:c,setCursorPosition:l}){let[u,f]=Kp(!0),[p,m]=Kp(void 0),[,h]=Kp([]),w=Ji(0),S=Ji(0),x=Ji(new bE);x.current.setMaxListeners(1/0);let T=Ji(void 0),M=Ji(bu()),v=Ji(void 0),P=yt(()=>{v.current&&(clearImmediate(v.current),v.current=void 0)},[]),O=t.isTTY,_=yt(()=>{T.current&&(t.removeListener("readable",T.current),T.current=void 0)},[t]),C=yt(()=>{t.setRawMode(!1),_(),t.unref(),S.current=0,M.current.reset(),P()},[t,_,P]),j=yt(ee=>{O&&S.current>0&&C(),c(ee)},[O,C,c]),ue=yt(ee=>{if(ee===""&&a){j();return}ee===EE&&m(xe=>xe&&void 0)},[a,j]),ge=yt(ee=>{ue(ee),x.current.emit("input",ee)},[ue]),de=yt(()=>{P(),v.current=setImmediate(()=>{v.current=void 0;let ee=M.current.flushPendingEscape();ee&&ge(ee)})},[P,ge]),Y=yt(()=>{P();let ee;for(;(ee=t.read())!==null;){let xe=M.current.push(ee);for(let A of xe)ge(A)}M.current.hasPendingEscape()&&de()},[t,ge,P,de]),L=yt(ee=>{if(!O)throw t===IE.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default.
|
|
26
|
+
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink.
|
|
27
|
+
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(t.setEncoding("utf8"),ee){S.current===0&&(t.ref(),t.setRawMode(!0),T.current=Y,t.addListener("readable",Y)),S.current++;return}S.current!==0&&--S.current===0&&C()},[O,t,Y,C]),I=yt((ee,xe)=>{let A=ee.findIndex(H=>H.id===xe);for(let H=A+1;H<ee.length;H++){let D=ee[H];if(D?.isActive)return D.id}},[]),le=yt((ee,xe)=>{let A=ee.findIndex(H=>H.id===xe);for(let H=A-1;H>=0;H--){let D=ee[H];if(D?.isActive)return D.id}},[]),We=yt(()=>{h(ee=>(m(xe=>{let A=ee.find(D=>D.isActive)?.id;return I(ee,xe)??A}),ee))},[I]),K=yt(()=>{h(ee=>(m(xe=>{let A=ee.findLast(D=>D.isActive)?.id;return le(ee,xe)??A}),ee))},[le]);rw(()=>{let ee=o(A=>{!u||w.current===0||(A===vE&&We(),A===RE&&K())},"handleTabNavigation");x.current.on("input",ee);let xe=x.current;return()=>{xe.off("input",ee)}},[u,We,K]);let z=yt(()=>{f(!0)},[]),fe=yt(()=>{f(!1)},[]),J=yt(ee=>{h(xe=>(xe.some(H=>H?.id===ee)&&m(ee),xe))},[]),ce=yt((ee,{autoFocus:xe})=>{h(A=>(w.current=A.length+1,[...A,{id:ee,isActive:!0}])),xe&&m(A=>A??ee)},[]),U=yt(ee=>{m(xe=>xe===ee?void 0:xe),h(xe=>{let A=xe.filter(H=>H.id!==ee);return w.current=A.length,A})},[]),Re=yt(ee=>{h(xe=>xe.map(A=>A.id!==ee?A:{id:ee,isActive:!0}))},[]),Pe=yt(ee=>{m(xe=>xe===ee?void 0:xe),h(xe=>xe.map(A=>A.id!==ee?A:{id:ee,isActive:!1}))},[]);rw(()=>()=>{kE.show(n),O&&S.current>0&&C()},[n,O,C]);let be=Zi(()=>({exit:j}),[j]),De=Zi(()=>({stdin:t,setRawMode:L,isRawModeSupported:O,internal_exitOnCtrlC:a,internal_eventEmitter:x.current}),[t,L,O,a]),Oe=Zi(()=>({stdout:n,write:i}),[n,i]),ie=Zi(()=>({stderr:r,write:s}),[r,s]),gt=Zi(()=>({setCursorPosition:l}),[l]),Pt=Zi(()=>({activeId:p,add:ce,remove:U,activate:Re,deactivate:Pe,enableFocus:z,disableFocus:fe,focusNext:We,focusPrevious:K,focus:J}),[p,ce,U,Re,Pe,z,fe,We,K,J]);return Po.createElement(jS.Provider,{value:be},Po.createElement(VS.Provider,{value:De},Po.createElement(zS.Provider,{value:Oe},Po.createElement(YS.Provider,{value:ie},Po.createElement(QS.Provider,{value:Pt},Po.createElement(ZS.Provider,{value:gt},Po.createElement(Na,{onError:j},e)))))))}o(ow,"App");ow.displayName="InternalApp";var iw=ow;var ME={disambiguateEscapeCodes:1,reportEventTypes:2,reportAlternateKeys:4,reportAllKeysAsEscapeCodes:8,reportAssociatedText:16};function sw(e){let t=0;for(let n of e)t|=ME[n];return t}o(sw,"resolveFlags");var vr={shift:1,alt:2,ctrl:4,super:8,hyper:16,meta:32,capsLock:64,numLock:128};var zp=o((e,t)=>(t<0?sn.cursorUp(-t):t>0?sn.cursorDown(t):"")+(e<0?sn.cursorBackward(-e):e>0?sn.cursorForward(e):""),"cursorMoveSeq"),Xp=o((e,t=!1)=>{let n=Math.max(0,e.screen.height-e.viewport.height),r=t?Math.max(0,Math.min(e.viewport.height-1,e.screen.height-1)):Math.max(0,e.viewport.height-1);return i=>({x:i.x,y:Math.min(Math.max(i.y-n,0),r)})},"toVisibleCursor"),ku=o(()=>{},"noop"),HE=27,WE=91,FE=63,UE=117,jE=48,GE=57,VE=o(e=>e>=jE&&e<=GE,"isDigitByte"),cw=o((e,t)=>{if(e[t]!==HE||e[t+1]!==WE||e[t+2]!==FE)return;let n=t+3,r=n;for(;n<e.length&&VE(e[n]);)n++;if(n!==r){if(n===e.length)return{state:"partial"};if(e[n]===UE)return{state:"complete",endIndex:n}}},"matchKittyQueryResponse"),KE=o(e=>{for(let t=0;t<e.length;t++)if(cw(e,t)?.state==="complete")return!0;return!1},"hasCompleteKittyQueryResponse"),zE=o(e=>{let t=[],n=0;for(;n<e.length;){let r=cw(e,n);if(r?.state==="complete"){n=r.endIndex+1;continue}if(r?.state==="partial")break;t.push(e[n]),n++}return t},"stripKittyQueryResponsesAndTrailingPartial"),Yp=o(e=>e instanceof Error||Object.prototype.toString.call(e)==="[object Error]","isErrorInput"),XE=class{static{o(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){_E(this),this.options=t,this.rootNode=su("ink-root"),this.rootNode.onComputeLayout=this.calculateLayout,this.isScreenReaderEnabled=t.isScreenReaderEnabled??$o.env.INK_SCREEN_READER==="true";let n=t.debug||this.isScreenReaderEnabled,r=t.maxFps??30,i=r>0?Math.max(1,Math.ceil(1e3/r)):0;if(n)this.rootNode.onRender=this.onRender,this.throttledOnRender=void 0;else{let a=AE(this.onRender,i,{leading:!0,trailing:!0});this.rootNode.onRender=()=>{this.hasPendingThrottledRender=!0,a()},this.throttledOnRender=a}this.rootNode.onImmediateRender=this.onRender,this.cellLogUpdate=new Tu({isTTY:!!t.stdout.isTTY}),this.prevFrame=Oa(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?OE:$E;this.container=Tr.createContainer(this.rootNode,s,null,!1,null,"id",()=>{},()=>{},()=>{},()=>{}),this.unsubscribeExit=LE(this.unmount,{alwaysLast:!1}),ou()&&Tr.injectIntoDevTools(),t.patchConsole&&this.patchConsole(),Yr||(t.stdout.on("resize",this.resized),this.unsubscribeResize=()=>{t.stdout.off("resize",this.resized)}),this.initKittyKeyboard()}getTerminalWidth=o(()=>this.options.stdout.columns?this.options.stdout.columns:BE()?.columns??80,"getTerminalWidth");resized=o(()=>{let t=this.getTerminalWidth();if(t<this.lastTerminalWidth){this.returnCursorToRest();let n=this.altScreenActive?this.lastOutputHeight>0?sn.eraseLines(this.lastOutputHeight):"":this.eraseInlineLiveBlock();n.length>0&&this.options.stdout.write(n),this.lastOutput="",this.lastOutputToRender="",this.cellLogUpdate.reset(),this.prevFrame=Oa(this.options.stdout.rows??24,t)}this.calculateLayout(),this.onRender(),this.lastTerminalWidth=t},"resized");resolveExitPromise=o(()=>{},"resolveExitPromise");rejectExitPromise=o(()=>{},"rejectExitPromise");unsubscribeExit=o(()=>{},"unsubscribeExit");handleAppExit=o(t=>{if(!(this.isUnmounted||this.isUnmounting)){if(Yp(t)){this.unmount(t);return}this.exitResult=t,this.unmount()}},"handleAppExit");setCursorPosition=o(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 i=Math.max(0,Math.min(t.x|0,n-1)),s=Math.max(0,Math.min(t.y|0,r-1));this.cursorPosition={x:i,y:s}},"setCursorPosition");resetOutputTracking=o(()=>{this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.cursorPosition=void 0,this.invalidateCellFrame()},"resetOutputTracking");usesVirtualShellOwnership=o((t={})=>t.altScreenActive??this.altScreenActive,"usesVirtualShellOwnership");beginShellTransition(t){this.shellTransitionPhase=t}setShellMode(t,n){let r=this.shellMode,i=this.mouseTrackingActive,s=this.usesVirtualShellOwnership(),a=n??!1;this.shellMode=t,this.mouseTrackingActive=a;let c=this.usesVirtualShellOwnership();(r!==t&&(s||c)||i!==a&&c)&&this.resetOutputTracking()}setAltScreenActive(t,n){let r=this.altScreenActive,i=this.mouseTrackingActive,s=this.usesVirtualShellOwnership(),a=n??!1;this.altScreenActive=t,this.mouseTrackingActive=a,this.shellTransitionPhase=void 0;let c=this.usesVirtualShellOwnership();(r!==t||i!==a&&(s||c))&&this.resetOutputTracking()}clearTextSelection(){}restoreLastOutput=o(()=>{if(this.prevFrame.screen.height===0)return;let t=Oa(this.options.stdout.rows??24,this.getTerminalWidth()),n=this.cellLogUpdate.render(t,this.prevFrame);Cu(this.options.stdout,n)},"restoreLastOutput");shouldRestoreManagedShellAfterExternalWrite=o(()=>this.altScreenActive,"shouldRestoreManagedShellAfterExternalWrite");calculateLayout=o(()=>{let t=this.getTerminalWidth();this.rootNode.yogaNode.setWidth(t),this.rootNode.yogaNode.calculateLayout(void 0,void 0,NE.DIRECTION_LTR)},"calculateLayout");onRender=o(()=>{if(this.hasPendingThrottledRender=!1,this.isUnmounted)return;let t=performance.now(),n={rows:this.options.stdout.rows??24,columns:this.getTerminalWidth()},{output:r,outputHeight:i,staticOutput:s,frame:a}=Hp(this.rootNode,this.isScreenReaderEnabled,n);this.options.onRender?.({renderTime:performance.now()-t}),!Yr&&!this.options.debug&&!this.isScreenReaderEnabled&&!this.cursorHidden&&(this.options.stdout.write(sn.cursorHide),this.cursorHidden=!0);let c=s&&s!==`
|
|
28
|
+
`;if(this.options.debug){c&&(this.fullStaticOutput+=s),this.options.stdout.write(this.fullStaticOutput+r);return}if(Yr){c&&this.options.stdout.write(s),this.lastOutput=r,this.lastOutputToRender=r+`
|
|
29
|
+
`,this.lastOutputHeight=i;return}if(this.isScreenReaderEnabled){let x=kr(this.options.stdout);if(x&&this.options.stdout.write(Ir),c){let v=this.lastOutputHeight>0?sn.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(v+s),this.lastOutputHeight=0}if(r===this.lastOutput&&!c){x&&this.options.stdout.write(nr);return}let T=this.getTerminalWidth(),M=DE(r,T,{trim:!1,hard:!0});if(c)this.options.stdout.write(M);else{let v=this.lastOutputHeight>0?sn.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(v+M)}this.lastOutput=r,this.lastOutputToRender=M,this.lastOutputHeight=M===""?0:M.split(`
|
|
30
|
+
`).length,x&&this.options.stdout.write(nr);return}c&&(this.fullStaticOutput+=s);let u=!this.altScreenActive&&!!(a&&a.inputCursor)?[]:null,f=o(x=>{x&&(u?u.push(x):this.options.stdout.write(x))},"emit"),p=u?{write:f}:null;f(this.computeReturnToRestSeq());let m=this.altScreenActive,w=this.options.stdout.isTTY&&i>=this.options.stdout.rows&&m?r:r+`
|
|
31
|
+
`;if(this.lastOutputHeight>=this.options.stdout.rows&&m){if($o.env.KODAX_FULLSCREEN_CELLDIFF!=="0"&&this.altScreenActive&&this.fullStaticOutput===""){let M=kr(this.options.stdout);M&&this.options.stdout.write(Ir),this.applyCellFrame(a),M&&this.options.stdout.write(nr),this.lastOutput=r,this.lastOutputToRender=w,this.lastOutputHeight=i;return}let x=kr(this.options.stdout);x&&this.options.stdout.write(Ir);let T=this.fullStaticOutput+w;if(this.altScreenActive){let M=this.lastOutputHeight>0?sn.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(M+T)}else this.options.stdout.write(sn.clearTerminal+this.fullStaticOutput+r);this.lastOutput=r,this.lastOutputToRender=this.altScreenActive?T:w,this.lastOutputHeight=i,this.invalidateCellFrame(),x&&this.options.stdout.write(nr);return}let S=!u&&kr(this.options.stdout);try{if(c?(S&&f(Ir),f(this.eraseInlineLiveBlock()+s),this.invalidateCellFrame(),this.applyCellFrame(a,p),S&&f(nr)):!this.altScreenActive&&this.prevFrame&&this.prevFrame.screen.height!==a.screen.height&&this.lastOutputHeight>0&&i<=this.options.stdout.rows&&this.lastOutputHeight<this.options.stdout.rows?(S&&f(Ir),f(this.eraseInlineLiveBlock()),this.invalidateCellFrame(),this.applyCellFrame(a,p),S&&f(nr)):this.applyCellFrame(a,p),a?.inputCursor){let x=Xp(a,!this.altScreenActive),T=x(a.cursor),M=x(a.inputCursor),v=zp(M.x-T.x,M.y-T.y);f(v),this.displayCursor=M}}finally{u&&this.flushCursorTxn(u)}this.lastOutput=r,this.lastOutputToRender=w,this.lastOutputHeight=i},"onRender");applyCellFrame=o((t,n=null)=>{let r={cellLogUpdate:this.cellLogUpdate,prevFrame:this.prevFrame,stdout:n??this.options.stdout},i=kr(this.options.stdout),s={altScreen:this.altScreenActive,decstbmSafe:i,synchronized:n?!1:i,inlineBottomAnchored:!this.altScreenActive},a=BS(r,t,s);return this.prevFrame=r.prevFrame,a},"applyCellFrame");invalidateCellFrame=o(()=>{this.cellLogUpdate.reset(),this.prevFrame=Oa(this.options.stdout.rows??24,this.getTerminalWidth())},"invalidateCellFrame");eraseInlineLiveBlock=o(()=>this.lastOutputHeight>0?sn.eraseLines(this.lastOutputHeight):"","eraseInlineLiveBlock");commitInlineScrollback=o(({mode:t,text:n})=>{if(this.altScreenActive||this.isUnmounted)return;let r=[],i=o(c=>{c&&r.push(c)},"emit"),s={write:i};i(this.computeReturnToRestSeq());let a=t==="rebuild"?"\x1B[2J\x1B[3J\x1B[H":this.eraseInlineLiveBlock();i(a+(n??"")),this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.fullStaticOutput="",this.invalidateCellFrame();try{this.calculateLayout();let c={rows:this.options.stdout.rows??24,columns:this.getTerminalWidth()},{output:l,outputHeight:u,frame:f}=Hp(this.rootNode,this.isScreenReaderEnabled,c);if(this.applyCellFrame(f,s),f?.inputCursor){let p=Xp(f,!this.altScreenActive),m=p(f.cursor),h=p(f.inputCursor),w=zp(h.x-m.x,h.y-m.y);i(w),this.displayCursor=h}this.lastOutput=l,this.lastOutputToRender=l,this.lastOutputHeight=u}finally{this.flushCursorTxn(r)}},"commitInlineScrollback");flushCursorTxn(t){let n=t.join("");if(!n)return;let r=kr(this.options.stdout);this.options.stdout.write(r?Ir+n+nr:n)}render(t){let n=aw.createElement(Vi.Provider,{value:{isScreenReaderEnabled:this.isScreenReaderEnabled}},aw.createElement(iw,{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?Tr.updateContainer(n,this.container,null,ku):(Tr.updateContainerSync(n,this.container,null,ku),Tr.flushSyncWork())}computeReturnToRestSeq(){if(this.displayCursor&&this.prevFrame){let t=Xp(this.prevFrame,!this.altScreenActive)(this.prevFrame.cursor),n=zp(t.x-this.displayCursor.x,t.y-this.displayCursor.y);return this.displayCursor=null,n}return""}returnCursorToRest(){let t=this.computeReturnToRestSeq();t&&this.options.stdout.write(t)}writeToStdout(t){if(this.isUnmounted)return;if(this.options.debug){this.options.stdout.write(t+this.fullStaticOutput+this.lastOutput);return}if(Yr){this.options.stdout.write(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.options.stdout.write(t),this.invalidateCellFrame();return}let n=kr(this.options.stdout);n&&this.options.stdout.write(Ir),this.returnCursorToRest();let r=this.lastOutputHeight>0?sn.eraseLines(this.lastOutputHeight):"";this.options.stdout.write(r+t),this.restoreLastOutput(),n&&this.options.stdout.write(nr)}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(Yr){this.options.stderr.write(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.options.stderr.write(t),this.invalidateCellFrame();return}let n=kr(this.options.stdout);n&&this.options.stdout.write(Ir),this.returnCursorToRest();let r=this.lastOutputHeight>0?sn.eraseLines(this.lastOutputHeight):"";r.length>0&&this.options.stdout.write(r),this.options.stderr.write(t),this.restoreLastOutput(),n&&this.options.stdout.write(nr)}unmount(t){if(this.isUnmounted||this.isUnmounting)return;this.isUnmounting=!0,this.beforeExitHandler&&($o.off("beforeExit",this.beforeExitHandler),this.beforeExitHandler=void 0);let n=this.options.stdout,r=!n.destroyed&&!n.writableEnded&&(n.writable??!0);if(o(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{}Yr&&this.options.stdout.write(this.lastOutput+`
|
|
32
|
+
`)}this.kittyProtocolEnabled=!1,this.shellTransitionPhase=void 0,this.options.concurrent?Tr.updateContainer(null,this.container,null,ku):(Tr.updateContainerSync(null,this.container,null,ku),Tr.flushSyncWork()),HS.delete(this.options.stdout);let{exitResult:s}=this,a=o(()=>{Yp(t)?this.rejectExitPromise(t):this.resolveExitPromise(s)},"resolveOrReject"),c=t!==void 0&&!Yp(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()},$o.once("beforeExit",this.beforeExitHandler)),this.exitPromise}clear(){if(!Yr&&!this.options.debug){this.returnCursorToRest();let t=this.altScreenActive?this.lastOutputHeight>0?sn.eraseLines(this.lastOutputHeight):"":this.eraseInlineLiveBlock();t.length>0&&this.options.stdout.write(t),this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.invalidateCellFrame()}}patchConsole(){this.options.debug||(this.restoreConsole=PE((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 i=$o.env.TERM??"",s=$o.env.TERM_PROGRAM??"",a="KITTY_WINDOW_ID"in $o.env||i==="xterm-kitty"||s==="WezTerm"||s==="ghostty";!Yr&&a&&this.confirmKittySupport(r)}confirmKittySupport(t){let{stdin:n,stdout:r}=this.options,i=[],s=o(()=>{this.cancelKittyDetection=void 0,clearTimeout(c),n.removeListener("data",a);let l=zE(i);i=[],l.length>0&&n.unshift(Buffer.from(l))},"cleanup"),a=o(l=>{let u=typeof l=="string"?Buffer.from(l):l;for(let f of u)i.push(f);KE(i)&&(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[>${sw(t)}u`),this.kittyProtocolEnabled=!0}},lw=XE;var Da=class{static{o(this,"KodaXRenderer")}engineInstance;isConcurrent;constructor(t){this.engineInstance=new lw(t),this.isConcurrent=this.engineInstance.isConcurrent}render=o(t=>{this.engineInstance.render(t)},"render");unmount=o(t=>{this.engineInstance.unmount(t)},"unmount");waitUntilExit=o(()=>this.engineInstance.waitUntilExit(),"waitUntilExit");clear=o(()=>{this.engineInstance.clear()},"clear");setAltScreenActive=o((t,n)=>{this.engineInstance.setAltScreenActive?.(t,n)},"setAltScreenActive");setShellMode=o((t,n)=>{this.engineInstance.setShellMode?.(t,n)},"setShellMode");beginShellTransition=o(t=>{this.engineInstance.beginShellTransition?.(t)},"beginShellTransition");clearTextSelection=o(()=>{this.engineInstance.clearTextSelection?.()},"clearTextSelection");commitInlineScrollback=o(t=>{this.engineInstance.commitInlineScrollback?.(t)},"commitInlineScrollback")};var qr=null;function dw(){if(qr===-1)return null;if(qr!==null)return qr;let e=process.env.KODAX_RENDER_TRACE;if(!e||e==="0"||e==="false")return qr=-1,null;let t=e==="1"||e==="true"?ZE(JE(),`kodax-render-trace-${process.pid}.log`):e;try{return qr=qE(t,"a"),uw(qr,`=== KODAX render trace pid=${process.pid} ${new Date().toISOString()} platform=${process.platform} node=${process.version} ===
|
|
33
|
+
`),qr}catch{return qr=-1,null}}o(dw,"resolveTraceFd");function eM(e){let t=dw();if(t!==null)try{uw(t,e)}catch{}}o(eM,"traceLine");var vu=new WeakMap,tM={isTTY:!1,columns:80,rows:24,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")},nM={isTTY:!1,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")},rM={isTTY:!1,isRaw:!1,on:o(()=>{},"on"),off:o(()=>{},"off"),pause:o(()=>{},"pause"),resume:o(()=>{},"resume"),setRawMode:o(()=>{},"setRawMode")};function oM(e={}){return e instanceof YE?{stdout:e}:e}o(oM,"getOptions");function iM(e,t,n){let r=vu.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(),vu.set(e,r)),r}o(iM,"getInstance");function Oo(e){return vu.get(e)}o(Oo,"getRendererInstance");function qp(e,t){let n={stdout:tM,stdin:rM,stderr:nM,debug:!1,exitOnCtrlC:!0,patchConsole:!1,maxFps:30,concurrent:!1,...oM(t)};if(dw()!==null){let s=n.stdout,a=s.write.bind(s),c=0,l=0;s.write=((m,...h)=>(c+=1,l+=typeof m=="string"?Buffer.byteLength(m,"utf8"):m?.length??0,a(m,...h)));let u=0,f=0,p=n.onRender;n.onRender=m=>{let h=QE.now(),w=u===0?0:h-u,S=s,x=S.columns??0,T=S.rows??0;return eM(`frame=${f} renderTime=${m.renderTime.toFixed(2)}ms interval=${w.toFixed(2)}ms writes=${c} bytes=${l} viewport=${x}x${T}
|
|
34
|
+
`),c=0,l=0,u=h,f+=1,p?.(m)}}let i=iM(n.stdout,()=>new Da(n),n.concurrent??!1);return i.render(e),{rerender:i.render,unmount(){i.unmount()},waitUntilExit:i.waitUntilExit,cleanup:o(()=>{vu.delete(n.stdout)},"cleanup"),clear:i.clear}}o(qp,"render");var fw=Rn,pw=on,mw=Rp;import{Buffer as aM}from"node:buffer";var cM=/^(?:\x1b)([a-zA-Z0-9])$/,lM=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,gw={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"},xw=[...Object.values(gw),"backspace"],uM=o(e=>["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e),"isShiftKey"),dM=o(e=>["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e),"isCtrlKey"),yw=/^\x1b\[(\d+)(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/,fM=/^\x1b\[(\d+);(\d+):(\d+)([A-Za-z~])$/,pM={A:"up",B:"down",C:"right",D:"left",E:"clear",F:"end",H:"home",P:"f1",Q:"f2",R:"f3",S:"f4"},mM={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"},hw={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"},Sw=o(e=>e>=0&&e<=1114111&&!(e>=55296&&e<=57343),"isValidCodepoint"),Qp=o(e=>Sw(e)?String.fromCodePoint(e):"?","safeFromCodePoint");function ww(e){return e===3?"release":e===2?"repeat":"press"}o(ww,"resolveEventType");function Tw(e){return{ctrl:!!(e&vr.ctrl),shift:!!(e&vr.shift),meta:!!(e&vr.meta),option:!!(e&vr.alt),super:!!(e&vr.super),hyper:!!(e&vr.hyper),capsLock:!!(e&vr.capsLock),numLock:!!(e&vr.numLock)}}o(Tw,"parseKittyModifiers");function hM(e){let t=yw.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,i=t[3]?Number.parseInt(t[3],10):1,s=t[4];if(!Sw(n))return null;let a;s&&(a=s.split(":").map(u=>Qp(Number.parseInt(u,10))).join(""));let c,l;return n===32?(c="space",l=!0):n===13?(c="return",l=!0):hw[n]?(c=hw[n],l=!1):n>=1&&n<=26?(c=String.fromCodePoint(n+96),l=!1):(c=Qp(n).toLowerCase(),l=!0),l&&!a&&(a=Qp(n)),{name:c,...Tw(r),eventType:ww(i),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:l,text:a}}o(hM,"parseKittyKeypress");function gM(e){let t=fM.exec(e);if(!t)return null;let n=Number.parseInt(t[1],10),r=Math.max(0,Number.parseInt(t[2],10)-1),i=Number.parseInt(t[3],10),s=t[4],a=s==="~"?mM[n]:pM[s];return a?{name:a,...Tw(r),eventType:ww(i),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:!1}:null}o(gM,"parseKittySpecialKey");var Jp="\x1B[200~",xM="\x1B[201~";function yM(e){if(!e.startsWith(Jp))return null;let t=e.indexOf(xM,Jp.length);return t===-1?null:e.slice(Jp.length,t)}o(yM,"extractBracketedPaste");function Zp(e=""){let t=e,n;if(aM.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=yM(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=hM(t);if(r)return r;let i=gM(t);if(i)return i;if(yw.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=cM.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(n[1]??"");else if(n=lM.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=gw[c]??"",s.shift=uM(c)||s.shift,s.ctrl=dM(c)||s.ctrl}return s}o(Zp,"parseKeypress");var TM=50;function Eu(e){return{columns:e?.columns??80,rows:e?.rows??24}}o(Eu,"resolveTerminalSize");var Qr=SM(null),em={isTTY:!1,columns:80,rows:24,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")};var kw={isTTY:!1,isRaw:!1,on:o(()=>{},"on"),off:o(()=>{},"off"),pause:o(()=>{},"pause"),resume:o(()=>{},"resume"),setRawMode:o(()=>{},"setRawMode")};function CM(e){for(let t of e)if(t.rawMode)return!0;return!1}o(CM,"hasRawModeSubscribers");function bM({stdin:e,setRawMode:t,isRawModeSupported:n}){let r=new Set,i,s=!1,a=o(f=>{for(let p of r)p.listener(f)},"handleData"),c=o(()=>{if(s){try{t(!1)}catch{}s=!1}},"disableRawModeIfOwned"),l=o(()=>{i?.off?.("data",a),i=void 0,c()},"detachInput"),u=o(()=>{if(i&&i!==e&&l(),!e||r.size===0){l();return}if(i!==e&&(e.on?.("data",a),i=e),!(n&&CM(r))){c();return}if(e.isRaw===!1&&!s)try{t(!0),s=!0}catch{s=!1}},"syncInputOwnership");return{subscribe(f,p={}){let m={listener:f,rawMode:p.rawMode!==!1};return r.add(m),u(),()=>{r.delete(m),u()}},dispose(){r.clear(),l()}}}o(bM,"createTerminalInputController");var IM=o(({children:e,runtime:t})=>{let[n,r]=wM(()=>t.terminalSize);es(()=>{if(r(Eu(t.stdout)),typeof t.stdout?.on!="function"||typeof t.stdout?.off!="function")return;let c=o(()=>{r(Eu(t.stdout))},"handleResize");return t.stdout.on("resize",c),()=>{t.stdout.off?.("resize",c)}},[t.stdout]);let i=Iw(c=>typeof t.stdout?.write!="function"?!1:(t.stdout.write(c),!0),[t.stdout]),s=Cw(()=>bM({stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported}),[t.stdin,t.isRawModeSupported,t.setRawMode]);es(()=>()=>{s.dispose()},[s]);let a=Cw(()=>({stdout:t.stdout,stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported,exit:t.exit,terminalSize:n,isTTY:t.stdout?.isTTY===!0,writeRaw:i,subscribeInput:s.subscribe}),[s.subscribe,t.exit,t.isRawModeSupported,t.setRawMode,t.stdin,t.stdout,s.subscribe,n,i]);return bw(Qr.Provider,{value:a,children:e})},"TuiRuntimeProvider");function kM(e){let t=e?.stdout??em,n=e?.stdin??kw,r=o(s=>{typeof n?.setRawMode=="function"&&n.setRawMode(s)},"setRawMode"),i;return{stdout:t,stdin:n,setRawMode:r,isRawModeSupported:typeof n?.setRawMode=="function",exit:o(()=>{i?.()},"exit"),terminalSize:Eu(t),isTTY:t?.isTTY===!0,writeRaw:o(s=>typeof t?.write!="function"?!1:(t.write(s),!0),"writeRaw"),subscribeInput:o(()=>()=>{},"subscribeInput"),attachExit(s){i=s}}}o(kM,"createRuntimeValue");function Mu(e,t){let n=kM(t),r=qp(bw(IM,{runtime:n,children:e}),t);return n.attachExit(r.unmount),r}o(Mu,"render");var k=fw,b=pw,ts=mw;function vM(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&&xw.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}}o(vM,"createCompatKeypress");function Au(e,t={}){let{isActive:n=!0}=t,r=Ru(e),i=Ru(null),s=Ru(null);es(()=>{r.current=e},[e]),es(()=>{if(!n){i.current=null,s.current&&(clearTimeout(s.current),s.current=null);return}return i.current=bu(),()=>{i.current?.reset(),i.current=null,s.current&&(clearTimeout(s.current),s.current=null)}},[n]);let a=Iw(c=>{let{input:l,key:u}=vM(Zp(c));l==="c"&&u.ctrl||r.current(l,u)},[]);Ha(c=>{if(!n)return;s.current&&(clearTimeout(s.current),s.current=null);let l=i.current,u=typeof c=="string"?c:c.toString("utf8"),f=l?.push(u)??[u];for(let p of f)a(p);u.length>0&&(s.current=setTimeout(()=>{let p=i.current?.flushPendingEscape();p&&a(p)},TM))},{isActive:n,rawMode:!0})}o(Au,"useInput");function rr(){return{stdout:No(Qr)?.stdout??em}}o(rr,"useStdout");function Ba(){let e=No(Qr),t=e?.stdin??kw,n=e?.setRawMode??(r=>{typeof t?.setRawMode=="function"&&t.setRawMode(r)});return{stdin:t,setRawMode:n,isRawModeSupported:e?.isRawModeSupported??typeof t?.setRawMode=="function"}}o(Ba,"useStdin");function Jr(){return{exit:No(Qr)?.exit??(()=>{})}}o(Jr,"useApp");function ns(){return No(Qr)?.stdout??em}o(ns,"useTerminalOutput");function rs(){let e=ns();return No(Qr)?.terminalSize??Eu(e)}o(rs,"useTerminalSize");function os(){let e=ns();return No(Qr)?.writeRaw??(n=>typeof e?.write!="function"?!1:(e.write(n),!0))}o(os,"useTerminalWrite");function Ha(e,t={}){let{isActive:n=!0,rawMode:r=!0}=t,i=No(Qr),{stdin:s,setRawMode:a,isRawModeSupported:c}=Ba(),l=Ru(e);es(()=>{l.current=e},[e]),es(()=>{if(!n||!s)return;if(i)return i.subscribeInput(m=>{l.current(m)},{rawMode:r});let u=s,f=u.isRaw;r&&c&&f===!1&&a(!0);let p=o(m=>{l.current(m)},"handleData");return u.on?.("data",p),()=>{if(u.off?.("data",p),r&&c&&f===!1)try{a(!1)}catch{}}},[i,s,n,r,c,a])}o(Ha,"useTerminalInput");import{jsx as LM}from"react/jsx-runtime";import{useInsertionEffect as PM,useMemo as $M}from"react";var RM="\x1B[?1049h",EM="\x1B[?1049l";var MM="\x1B[2J",AM="\x1B[?1000h\x1B[?1002h\x1B[?1006h",_M="\x1B[?1006l\x1B[?1002l\x1B[?1000l";function _u(e={}){let t=e.mouseTracking!==!1,n=e.clearOnEnter===!0;return RM+(n?MM:"")+"\x1B[H"+(t?AM:"")}o(_u,"buildAlternateScreenEnterSequence");function Lu(e={}){return(e.mouseTracking!==!1?_M:"")+EM}o(Lu,"buildAlternateScreenExitSequence");var tm=o(({children:e,mouseTracking:t=!0,enabled:n=!0,clearOnEnter:r=!1})=>{let i=ns(),{rows:s}=rs(),a=os(),c=$M(()=>n&&i.isTTY===!0,[n,i]);return PM(()=>{if(!c)return;let l=Oo(i);if(l?.setShellMode?.("virtual",t),l?.beginShellTransition?.("enter-alt-screen"),!!a(_u({mouseTracking:t,clearOnEnter:r})))return l?.setAltScreenActive?.(!0,t),()=>{l?.beginShellTransition?.("exit-alt-screen"),l?.clearTextSelection?.(),l?.setAltScreenActive?.(!1),a(Lu({mouseTracking:t}))}},[r,c,t,i,a]),LM(k,{flexDirection:"column",height:s,width:"100%",flexGrow:1,flexShrink:0,children:e})},"AlternateScreen");import{jsx as Zr,jsxs as Aw}from"react/jsx-runtime";import{jsx as NM}from"react/jsx-runtime";import DM,{useEffect as nm,useImperativeHandle as BM,useMemo as HM,useRef as Pu,useCallback as Fa,useState as WM}from"react";function OM(e,t,n){return Math.max(t,Math.min(e,n))}o(OM,"clamp");function Wa(e){let t=Math.max(0,Math.floor(e.overscan??80)),n=Math.max(1,Math.floor(e.quantum??40)),r=Math.max(0,Math.floor(e.viewportHeight)),i=Math.max(0,Math.floor(e.contentHeight)),s=Math.max(0,i-r),a=OM(Math.floor(e.globalScrollTop),0,s),c=Math.floor(a/n),l=c*n,u=Math.max(0,l-t),f=Math.min(i,l+r+t),p=Math.max(0,f-u),m=a-u;return{blockTop:u,blockHeight:p,inBlockOffset:m,bin:c}}o(Wa,"computeOverscanWindow");function vw(e,t,n){let r=Wa({...n,globalScrollTop:e}),i=Wa({...n,globalScrollTop:t});return r.bin===i.bin}o(vw,"staysWithinOverscanBlock");function Rw(e){let t=e??void 0;for(;t?.parentNode;)t=t.parentNode;return t&&typeof t.onRender=="function"?(t.onRender(),!0):!1}o(Rw,"scheduleRenderFromNode");function Ew(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:$u(t,t.scrollTop)}}o(Ew,"normalizeScrollSnapshot");function Mw(e,t){return e.scrollTop===t.scrollTop&&e.scrollHeight===t.scrollHeight&&e.viewportHeight===t.viewportHeight&&e.pendingDelta===t.pendingDelta&&e.clampMin===t.clampMin&&e.clampMax===t.clampMax&&e.sticky===t.sticky&&e.overscanRows===t.overscanRows}o(Mw,"areSnapshotsEqual");function FM(e,t){return e.start===t.start&&e.end===t.end&&e.scrollTop===t.scrollTop&&e.scrollHeight===t.scrollHeight&&e.viewportHeight===t.viewportHeight&&e.viewportTop===t.viewportTop&&e.pendingDelta===t.pendingDelta&&e.sticky===t.sticky&&e.inWindowScrollTop===t.inWindowScrollTop}o(FM,"areWindowsEqual");function $u(e,t){let n=Math.max(0,e.scrollHeight-e.viewportHeight),r=e.clampMin??0,i=e.clampMax??n;return Math.max(r,Math.min(Math.floor(t),Math.min(n,i)))}o($u,"clampScrollTop");function rm(e){let t=Math.max(0,e.viewportHeight),n=$u(e,e.scrollTop),r=Math.max(0,e.scrollHeight-n),i=Math.max(0,r-t),s=Math.max(0,Math.floor(e.overscanRows??0));if(s>0&&t>0){let a=Wa({globalScrollTop:i,viewportHeight:t,contentHeight:e.scrollHeight,overscan:s});return{start:a.blockTop,end:a.blockTop+a.blockHeight,scrollTop:n,scrollHeight:e.scrollHeight,viewportHeight:t,viewportTop:i,pendingDelta:e.pendingDelta,sticky:e.sticky,inWindowScrollTop:a.inBlockOffset}}return{start:i,end:r,scrollTop:n,scrollHeight:e.scrollHeight,viewportHeight:t,viewportTop:i,pendingDelta:e.pendingDelta,sticky:e.sticky,inWindowScrollTop:0}}o(rm,"resolveScrollWindow");function UM(e){let t=$u(e,e.scrollTop);return Math.max(0,e.scrollHeight-e.viewportHeight-t)}o(UM,"resolveNativeScrollTop");var om=o(({children:e,width:t,flexGrow:n=0,flexShrink:r=1,paddingTop:i=0,scrollTop:s=0,scrollHeight:a=0,viewportHeight:c=0,stickyScroll:l=!0,scrollRef:u,onScrollTopChange:f,onStickyChange:p,onWindowChange:m,renderWindow:h,overscanRows:w})=>{let S=Pu(null),x=Pu(new Set),T=Pu(Ew({scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,sticky:l,overscanRows:w})),[M,v]=WM(()=>rm(T.current)),P=Pu(null),O=Fa(()=>{for(let K of x.current)K()},[]),_=Fa((K,z=!0)=>{let fe=T.current,J=Ew(K),ce=rm(J);return T.current=J,v(U=>FM(U,ce)?U:ce),z&&!Mw(fe,J)&&O(),{previous:fe,snapshot:J,window:ce,changed:!Mw(fe,J)}},[O]),C=Fa(K=>{let z=T.current,fe=Math.max(0,Math.floor(z.overscanRows??0)),J=S.current;if(fe<=0||!J||z.viewportHeight<=0)return!1;let ce=Math.max(0,z.scrollHeight-z.viewportHeight),U=P.current??$u(z,z.scrollTop),Re=Math.max(0,Math.min(Math.floor(U+K),ce));if(Re===U)return!0;let Pe=Math.max(0,z.scrollHeight-z.viewportHeight-U),be=Math.max(0,z.scrollHeight-z.viewportHeight-Re),De={viewportHeight:z.viewportHeight,contentHeight:z.scrollHeight,overscan:fe};if(!vw(Pe,be,De))return!1;let Oe=Wa({...De,globalScrollTop:be});return J.scrollTop=be,J.attributes&&(J.attributes.inWindowScrollTop=Oe.inBlockOffset),Rw(J)?(P.current=Re,z.sticky&&(T.current={...T.current,sticky:!1},p?.(!1)),O(),!0):!1},[O,p]),j=Fa(K=>{let z=S.current;z&&T.current.overscanRows&&(z.scrollTop=K.viewportTop)},[]);nm(()=>{let K=T.current,z={scrollTop:s,scrollHeight:a,viewportHeight:c,pendingDelta:0,clampMin:K.clampMin,clampMax:K.clampMax,sticky:l,overscanRows:w},fe=_(z);fe.previous.sticky!==l&&p?.(l),fe.window.scrollTop!==s&&f?.(fe.window.scrollTop)},[_,p,f,w,a,s,l,c]);let ue=Fa(()=>{let K=S.current;if(!K)return;P.current=null;let z=typeof K.scrollHeight=="number"?Math.max(0,Math.floor(K.scrollHeight)):void 0,fe=typeof K.scrollViewportHeight=="number"?Math.max(0,Math.floor(K.scrollViewportHeight)):void 0,J=typeof K.scrollViewportTop=="number"?Math.max(0,Math.floor(K.scrollViewportTop)):void 0;if(z===void 0||fe===void 0||J===void 0)return;let ce=Math.max(0,z-fe-J),U=_({...T.current,scrollTop:ce,scrollHeight:z,viewportHeight:fe});U.changed&&U.window.scrollTop!==U.previous.scrollTop&&f?.(U.window.scrollTop)},[_,f]);nm(()=>{ue()},[ue]);let ge=HM(()=>({scrollTo(K){P.current=null;let z=_({...T.current,scrollTop:K,pendingDelta:0,sticky:!1});z.previous.sticky!==!1&&p?.(!1),j(z.window),f?.(z.window.scrollTop)},scrollBy(K){if(C(K))return;let z=P.current??T.current.scrollTop;P.current=null;let fe=_({...T.current,scrollTop:z+K,pendingDelta:T.current.pendingDelta+Math.floor(K),sticky:!1});fe.previous.sticky!==!1&&p?.(!1),j(fe.window),f?.(fe.window.scrollTop)},scrollToElement(K,z=0){P.current=null;let fe=_({...T.current,scrollTop:K-z,pendingDelta:0,sticky:!1});fe.previous.sticky!==!1&&p?.(!1),j(fe.window),f?.(fe.window.scrollTop)},scrollToBottom(){P.current=null;let K=_({...T.current,scrollTop:0,pendingDelta:0,sticky:!0});j(K.window),f?.(K.window.scrollTop),K.previous.sticky!==!0&&p?.(!0)},getScrollTop(){return P.current??T.current.scrollTop},getPendingDelta(){return T.current.pendingDelta},getScrollHeight(){return S.current?.scrollHeight??T.current.scrollHeight},getViewportHeight(){return S.current?.scrollViewportHeight??M.viewportHeight},getViewportTop(){return S.current?.scrollViewportTop??M.viewportTop},isSticky(){return T.current.sticky},subscribe(K){return x.current.add(K),()=>{x.current.delete(K)}},setClampBounds(K,z){P.current=null;let fe=_({...T.current,clampMin:K,clampMax:z});j(fe.window),fe.window.scrollTop!==fe.previous.scrollTop&&f?.(fe.window.scrollTop)}}),[_,f,p,C,j]);BM(u,()=>ge,[ge]),nm(()=>{m?.(M)},[m,M]);let de=P.current!==null,Y=de?{...T.current,scrollTop:P.current}:T.current,L=de?rm(Y):M,I=h?h(L):e,le=Math.max(0,c+i),We=UM(Y);return DM.createElement("ink-box",{ref:S,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:n,flexShrink:r,width:t,height:le,paddingTop:i,overflowX:"visible",overflowY:"scroll"},scrollTop:We,scrollHeight:T.current.scrollHeight,scrollViewportHeight:T.current.viewportHeight,scrollViewportTop:L.viewportTop,pendingScrollDelta:T.current.pendingDelta,virtualScrollWindowed:!!h,...T.current.overscanRows?{inWindowScrollTop:L.inWindowScrollTop}:{},...T.current.clampMin!==void 0?{scrollClampMin:T.current.clampMin}:{},...T.current.clampMax!==void 0?{scrollClampMax:T.current.clampMax}:{},...l?{stickyScroll:!0}:{}},NM(k,{flexDirection:"column",flexGrow:1,flexShrink:0,width:"100%",children:I}))},"ScrollBox");var jM=80;function Ua(e){if(!(!e?.visible||!e.label))return e.hint?`${e.label}: ${e.hint}`:e.label}o(Ua,"resolveFullscreenChromeSlotText");function Ou(e,t){if(!e)return 0;let n=Math.max(1,(typeof t=="number"?t:jM)-2);return Math.max(1,rn(e.split(`
|
|
36
|
+
`),n,0,0).visualLines.length)}o(Ou,"measureFullscreenChromeSlotRows");var im=o(({top:e,topRows:t=0,scrollable:n,renderScrollableWindow:r,bottom:i,overlay:s,stickyHeader:a,jumpToLatest:c,width:l,scrollTop:u=0,scrollHeight:f=0,viewportHeight:p=0,stickyScroll:m=!0,scrollRef:h,onScrollTopChange:w,onStickyChange:S,onWindowChange:x,overscanRows:T})=>{let M=o((ge,de)=>de?Zr(k,{paddingX:1,children:Zr(b,{dimColor:ge?.tone!=="accent",children:de})}):null,"renderChromeSlot"),v=Ua(a),P=Ua(c),O=Ou(v,l),_=M(a,v),C=s?null:M(c,P),j=Math.max(0,e?t:0),ue=Math.max(0,p-O-j);return Aw(k,{flexDirection:"column",width:l,flexGrow:1,flexShrink:0,children:[e?Zr(k,{flexDirection:"column",flexShrink:0,children:e}):null,Aw(k,{flexDirection:"column",flexGrow:1,overflowY:"hidden",children:[Zr(om,{width:l,flexGrow:1,flexShrink:1,paddingTop:O,scrollTop:u,scrollHeight:f,viewportHeight:ue,stickyScroll:m,scrollRef:h,onScrollTopChange:w,onStickyChange:S,onWindowChange:x,renderWindow:r,overscanRows:T,children:n}),_?Zr(k,{position:"absolute",top:0,left:0,right:0,flexDirection:"column",children:_}):null,C?Zr(k,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:C}):null,s?Zr(k,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:s}):null]}),Zr(k,{flexDirection:"column",flexShrink:0,children:i})]})},"FullscreenLayout");import VM from"string-width";function KM(){return rs().columns}o(KM,"useTerminalWidth");var sm=o(({lines:e,cursorRow:t,cursorCol:n,prompt:r=">",placeholder:i="Type your message...",focus:s=!0,terminalFocused:a=!0,isPasting:c=!1,editingMode:l="idle",theme:u="dark",width:f})=>{let p=Nu(()=>oe(u),[u]),m=KM(),h=f??m,w=VM(r)+1,S=Nu(()=>{let O=Math.max(20,h-w);return rn(e,O,t,n)},[e,h,t,n,w]),x=Nu(()=>{if(!S)return null;let[O,_]=Ip(S,[t,n]);return{row:O,col:_}},[S,t,n]),T=s&&a,M=c&&e.some(O=>O.length>0),v=S,P=x;return En(k,{flexDirection:"column",borderStyle:"round",borderColor:p.colors.dim,borderTop:!0,borderBottom:!0,borderLeft:!1,borderRight:!1,width:f??"100%",children:[M?an(k,{children:an(b,{dimColor:!0,children:l==="pasting"?"Pasting input...":"Editing input..."})}):null,v.visualLines.length===0||v.visualLines.length===1&&v.visualLines[0]===""?En(k,{children:[En(b,{color:p.colors.primary,children:[r," "]}),T?En(GM,{children:[an(b,{internal_cursorAnchor:!0,backgroundColor:p.colors.primary,color:"#000000",children:" "}),an(b,{dimColor:!0,children:i})]}):an(b,{dimColor:!0,children:i})]}):v.visualLines.map((O,_)=>{let C=_===P.row,j=_===0?r:" ".repeat(w-1);if(C&&T){let{before:ue,current:ge,after:de}=jy(O,P.col),Y=ge||" ";return En(k,{children:[En(b,{color:p.colors.primary,children:[j," "]}),an(b,{color:p.colors.text,children:ue}),an(b,{internal_cursorAnchor:!0,backgroundColor:p.colors.primary,color:"#000000",children:Y}),an(b,{color:p.colors.text,children:de})]},_)}return En(k,{children:[En(b,{color:p.colors.dim,children:[j," "]}),an(b,{color:p.colors.text,children:O})]},_)})]})},"TextInput"),zM=o(({value:e,cursorCol:t,prompt:n=">",placeholder:r,focus:i=!0,theme:s="dark"})=>{let a=Nu(()=>oe(s),[s]);if(!e)return En(k,{children:[En(b,{color:a.colors.primary,children:[n," "]}),r&&an(b,{dimColor:!0,children:r}),i&&an(b,{backgroundColor:a.colors.primary,color:"#000000",children:" "})]});let c=nn(e),l=c.slice(0,t).join(""),u=c[t]??" ",f=c.slice(t+1).join("");return En(k,{children:[En(b,{color:a.colors.primary,children:[n," "]}),an(b,{color:a.colors.text,children:l}),an(b,{backgroundColor:a.colors.primary,color:"#000000",children:u}),an(b,{color:a.colors.text,children:f})]})},"SingleLineTextInput");var am={"[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"}},XM=/^\x1b\[([0-9]+);?([0-9]+)?([~A-Za-z])?/,YM=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/;function qM(e){switch(e&3){case 0:return"left";case 1:return"middle";case 2:return"right";default:return"unknown"}}o(qM,"parseMouseButton");function QM(e){return{shift:(e&1)!==0,alt:(e&2)!==0,ctrl:(e&4)!==0,meta:(e&8)!==0}}o(QM,"parseModifier");function Du(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(YM);if(r){let[,i,s,a,c]=r,l=Number(i),u=Number(s),f=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:f,column:u},n):l===65?(n.name="wheeldown",n.mouse={action:"wheel",button:"wheeldown",row:f,column:u},n):(n.name="mouse",n.mouse={action:c==="m"?"release":(l&32)!==0?"drag":"press",button:qM(l),row:f,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 i=e.slice(1);if(i.length===1)return n.meta=!0,i>="a"&&i<="z"?(n.name=i,n.insertable=!0):i>="A"&&i<="Z"?(n.name=i.toLowerCase(),n.shift=!0,n.insertable=!0):i.charCodeAt(0)>=32&&(n.name=i,n.insertable=!0),n;let s=e.match(XM);if(s){let[,l,u,f]=s,p=f||"~",h=am[i];if(h)return Object.assign(n,h),n;let w="["+l+p+"]",S=am[w];if(S&&S.name){if(n.name=S.name,u){let x=parseInt(u,10)-1,T=QM(x);Object.assign(n,T)}return n}}let c=am[i];if(c)return Object.assign(n,c),n;if(e.startsWith("\x1B\x1B")){n.meta=!0;let l="\x1B"+e.slice(2),u=Du(l);return n.name=u.name,n}}return n}o(Du,"parseKeypress");var ja=class{static{o(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=Du(s,this.inBracketedPaste);this.emit(a)}break}let{sequence:n,remaining:r}=t;this.buffer=r;let i=Du(n,this.inBracketedPaste);if(i.name==="paste_start"){this.inBracketedPaste=!0,this.pasteAccumulator="";continue}if(i.name==="paste_end"){this.inBracketedPaste=!1,this.flushPasteAccumulator();continue}this.emit(i)}}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 i=this.buffer[r-1];return i&&(i>="A"&&i<="Z"||i>="a"&&i<="z"||i==="~")?{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 _w(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)}o(_w,"isFunctionKey");function JM(e){return e.ctrl||e.meta||_w(e)?!1:e.sequence.length===1&&e.sequence.charCodeAt(0)>=32}o(JM,"isPrintable");function ZM(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("+")}o(ZM,"getKeyDisplayName");var gn;(function(e){e.Idle="idle",e.Responding="responding",e.WaitingForConfirmation="waiting_for_confirmation"})(gn||(gn={}));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 QF={[$.Scheduled]:"\u25CB",[$.Validating]:"\u25CC",[$.AwaitingApproval]:"?",[$.Executing]:"\u25CB",[$.Success]:"\u2713",[$.Error]:"\u2717",[$.Cancelled]:"-"},Kt;(function(e){e[e.Low=-100]="Low",e[e.Normal=0]="Normal",e[e.High=100]="High",e[e.Critical=200]="Critical"})(Kt||(Kt={}));var cm={streamingState:gn.Idle,currentResponse:"",history:[],pendingToolCalls:[],sessionId:"",provider:"",model:"",isLoading:!1};import eA,{createContext as tA,useContext as nA,useEffect as Lw,useCallback as rA,useRef as lm}from"react";var oA=50;function um(){let e=new Map,t=null,n=o(()=>(t===null&&(t=[...e.keys()].sort((r,i)=>i-r)),t),"getSortedPriorities");return{register(r,i){return e.has(r)||e.set(r,[]),e.get(r).push(i),t=null,()=>{let s=e.get(r);if(!s)return;let a=s.indexOf(i);a>=0&&s.splice(a,1),s.length===0&&e.delete(r),t=null}},dispatch(r){let i=n();for(let s of i){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 i of e.values())r+=i.length;return r}}}o(um,"createKeypressManager");var Pw=tA(null);function Bu({children:e,enabled:t=!0}){let{stdout:n}=rr(),r=lm(um()),i=lm(null),s=lm(null),a=rA(c=>{t&&r.current.dispatch(c)},[t]);return Lw(()=>{if(!t)return;n?.write?.("\x1B[?2004h");let c=new ja;i.current=c;let l=c.onKeypress(a);return()=>{s.current&&(clearTimeout(s.current),s.current=null),l(),i.current=null;try{n?.write?.("\x1B[?2004l")}catch{}}},[a,t,n]),Ha(c=>{t&&(s.current&&clearTimeout(s.current),i.current?.feed(c),c.length!==0&&(s.current=setTimeout(()=>{i.current?.feed("",!0)},oA)))},{isActive:t,rawMode:!0}),eA.createElement(Pw.Provider,{value:r.current},e)}o(Bu,"KeypressProvider");function dm(){let e=nA(Pw);if(!e)throw new Error("useKeypressManager must be used within a KeypressProvider");return e}o(dm,"useKeypressManager");function xn(e,t,n=[]){let r=dm(),i=typeof e=="function",s,a,c;if(i){s=e;let l=t??{};c=l.isActive??!0;let u=l.priority;a=typeof u=="boolean"?u?Kt.High:Kt.Normal:u??Kt.Normal}else a=typeof e=="boolean"?e?Kt.High:Kt.Normal:e,s=t,c=!0;Lw(()=>c?r.register(a,s):void 0,[r,a,c,...i?[]:n])}o(xn,"useKeypress");function Mn(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)}o(Mn,"createKeyMatcher");var $w={isEnter:Mn({name:"return"}),isEscape:Mn({name:"escape"}),isCtrlC:Mn({name:"c",ctrl:!0}),isCtrlD:Mn({name:"d",ctrl:!0}),isUp:Mn({name:"up"}),isDown:Mn({name:"down"}),isLeft:Mn({name:"left"}),isRight:Mn({name:"right"}),isBackspace:Mn({name:"backspace"}),isDelete:Mn({name:"delete"}),isTab:Mn({name:"tab"}),isShiftEnter:o(e=>e.name==="return"&&e.shift===!0,"isShiftEnter"),isCtrlEnter:o(e=>e.name==="return"&&e.ctrl===!0,"isCtrlEnter"),isInsertable:o(e=>e.insertable===!0&&!e.ctrl&&!e.meta,"isInsertable")};import{jsx as uA}from"react/jsx-runtime";import{useState as dA,useEffect as Dw,useCallback as eo,useMemo as Bw,createContext as fA,useContext as Hw}from"react";var Ga=class{static{o(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 i=r.lastIndexOf("/skill:");return!(i>0&&!/\s/.test(r[i-1]??""))}async getCompletions(t,n){let i=t.slice(0,n).match(/\/skill:([^\s]*)$/);if(!i)return[];let s=(i[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),f=l.display.toLowerCase().startsWith(s);return u&&!f?-1:!u&&f?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=Ii(this.gitRoot);return n.size===0&&await $l(this.gitRoot),this.skillsCache=n.listUserInvocable(),this.cacheTimestamp=t,this.skillsCache}catch{return[]}}fuzzyIncludes(t,n){let r=0;for(let i=0;i<n.length&&r<t.length;i++)n[i]===t[r]&&r++;return r===t.length}truncateDescription(t,n=50){return t.length<=n?t:t.slice(0,n-3)+"..."}};function iA(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(),i=0,s=-1,a=[];for(let l=0;l<e.length;l++){let u=n[l];if(u===void 0)continue;let f=r.indexOf(u,s+1);if(f===-1)return{matched:!1,score:0,highlights:[]};f===s+1?i+=10:f===0?i+=5:i-=1,t[f]===e[l]&&(i+=2),a.push(f),s=f}let c=sA(t,a);return i+=c,{matched:!0,score:i,highlights:a}}o(iA,"fuzzyMatch");function sA(e,t){let n=0;for(let r of t)if(r===0)n+=3;else if(r>0){let i=e[r-1];(i===" "||i==="-"||i==="_")&&(n+=2)}return n}o(sA,"calculateWordBoundaryBonus");function aA(e,t){return e?t.toLowerCase().startsWith(e.toLowerCase()):!0}o(aA,"prefixMatch");function cA(e,t){if(aA(e,t)){let i=e?Array.from({length:e.length},(s,a)=>a):[];return{matched:!0,score:100+e.length*10,highlights:i,isPrefix:!0}}return{...iA(e,t),isPrefix:!1}}o(cA,"combinedMatch");function Ow(e,t,n=0){return e?t.map(r=>{let i=cA(e,r.text);return{...r,_fuzzyScore:i.matched?i.score:-1,_fuzzyHighlights:i.highlights}}).filter(r=>(r._fuzzyScore??-1)>=n).sort((r,i)=>{let s=(i._fuzzyScore??0)-(r._fuzzyScore??0);return s!==0?s:r.text.length-i.text.length}):t}o(Ow,"sortCandidatesCombined");var lA={debounceDelay:100,minTriggerChars:1,maxCompletions:10,minScore:0},fm=class{static{o(this,"AutocompleteProvider")}completers;options;state;listeners=new Set;debounceTimer=null;lastInput="";lastCursorPos=0;constructor(t={}){this.options={...lA,...t},this.completers=[new Ga(this.options.gitRoot),new $y,new Oy,new Ql(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 Ga)?.setGitRoot(this.options.gitRoot),r){let i=this.completers.findIndex(s=>s instanceof Ql);i!==-1&&(this.completers[i]=new Ql(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=yp(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 i=[];for(let l of r)try{let u=await l.getCompletions(t,n);i.push(...u)}catch(u){console.error("[Autocomplete] Completer error:",u)}let s=this.extractPattern(t,n),a=i.map((l,u)=>({_idx:u,text:l.type==="command"&&l.display.startsWith("/")?l.display.slice(1):l.display}));return Ow(s,a,this.options.minScore).map(l=>i[l._idx]).filter(l=>l!==void 0)}extractPattern(t,n){let r=t.slice(0,n),i=yp(r);if(i!==-1){let c=r.slice(i),l=c.match(/^\/skill:(\S*)$/);if(l)return l[1]??"";let u=c.match(/^\/(\S*)$/);if(u)return u[1]??"";let f=c.split(/\s+/);return(f[f.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 Nw(e){return new fm(e)}o(Nw,"createAutocompleteProvider");var pm=fA(null);function mm({children:e,cwd:t,gitRoot:n}){let r=Hu({cwd:t,gitRoot:n,enabled:!0});return uA(pm.Provider,{value:r,children:e})}o(mm,"AutocompleteContextProvider");function Do(){return Hw(pm)}o(Do,"useAutocompleteContext");function pA(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]??">"}}o(pA,"completionToSuggestion");function Hu(e={}){let t=Hw(pm);return t&&!e.cwd&&!e.gitRoot?t:mA(e)}o(Hu,"useAutocomplete");function mA(e){let{cwd:t,gitRoot:n,enabled:r=!0}=e,i=Bw(()=>Nw({cwd:t,gitRoot:n,debounceDelay:100,minTriggerChars:1,maxCompletions:8}),[]);Dw(()=>{i.updateOptions({cwd:t,gitRoot:n})},[i,t,n]);let[s,a]=dA({visible:!1,selectedIndex:0,completions:[],loading:!1});Dw(()=>i.subscribe(T=>{a(T)}),[i]);let c=Bw(()=>s.completions.map((x,T)=>pA(x,T)),[s.completions]),l=eo((x,T)=>{if(!r){i.cancel();return}i.handleInput(x,T)},[i,r]),u=eo(()=>s.visible?i.acceptCompletionWithType():null,[i,s.visible]),f=eo(()=>s.visible?i.acceptCompletionWithType():null,[i,s.visible]),p=eo(()=>{s.visible&&i.selectPrevious()},[i,s.visible]),m=eo(()=>{s.visible&&i.selectNext()},[i,s.visible]),h=eo(()=>{s.visible&&i.cancel()},[i,s.visible]),w=eo(()=>{i.cancel()},[i]),S=eo(()=>i,[i]);return{state:s,suggestions:c,handleInput:l,handleTab:u,handleEnter:f,handleUp:p,handleDown:m,handleEscape:h,cancel:w,getProvider:S}}o(mA,"useAutocompleteImpl");import{useCallback as Va,useRef as Ww}from"react";var An=[];function hm(e={}){let{maxSize:t=1e3,onSave:n}=e,r=Ww(-1),i=Ww(""),s=Va((f,p)=>{if(!f.trim())return;if(An[An.length-1]?.text!==f){let h={text:f,timestamp:Date.now(),...p?.pastedContents&&p.pastedContents.length>0?{pastedContents:[...p.pastedContents]}:{}};An.push(h),An.length>t&&An.splice(0,An.length-t),n?.(h)}r.current=-1,i.current=""},[t,n]),a=Va(()=>An.length===0?null:r.current===-1?(r.current=An.length-1,An[r.current]??null):r.current>0?(r.current--,An[r.current]??null):null,[]),c=Va(()=>r.current===-1?null:r.current<An.length-1?(r.current++,An[r.current]??null):(r.current=-1,{text:i.current,timestamp:Date.now()}),[]),l=Va(()=>{r.current=-1,i.current=""},[]),u=Va(f=>{r.current===-1&&(i.current=f)},[]);return{add:s,navigateUp:a,navigateDown:c,reset:l,saveTempInput:u}}o(hm,"useInputHistory");function cn(e,t,n){return nn(e).slice(t,n).join("")}o(cn,"sliceByCodePoints");var Ka=class{static{o(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 er(this.currentLine)}get visualCursor(){let t=this._lines[this._cursor.row]??"",n=cn(t,0,this._cursor.col);return{row:this._cursor.row,col:er(n)}}getCharWidthAtCursor(){let t=this._lines[this._cursor.row]??"",r=nn(t)[this._cursor.col];return r?Zn(r)?2:1:0}visualColToLogicalCol(t){let n=this._lines[this._cursor.row]??"",r=nn(n),i=0;for(let s=0;s<r.length;s++){let a=Zn(r[s])?2:1;if(i+a>t)return s;i+=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 i=Math.max(0,Math.min(t,this._text.length)),s=Math.max(i,Math.min(n,this._text.length)),a=this._text.slice(0,i)+r+this._text.slice(s);this._setTextInternal(a),this.moveToAbsoluteOffset(i+r.length)}insert(t,n){if(this._saveHistory(),n?.paste){this._insertText(t);return}let r=t.split(`
|
|
42
|
+
`);for(let i=0;i<r.length;i++)i>0&&this._insertNewline(),this._insertText(r[i])}_insertText(t){let n=this._lines[this._cursor.row],r=cn(n,0,this._cursor.col),i=cn(n,this._cursor.col);this._lines[this._cursor.row]=r+t+i,this._cursor.col+=mn(t),this._rememberedCol=this._cursor.col,this._updateText()}newline(){this._saveHistory(),this._insertNewline()}_insertNewline(){let t=this._lines[this._cursor.row],n=cn(t,0,this._cursor.col),r=cn(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=cn(t,0,n),i=cn(t,this._cursor.col);this._lines[this._cursor.row]=r+i,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=mn(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<mn(t)){this._saveHistory();let n=cn(t,0,this._cursor.col),r=cn(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=mn(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col)}_moveRight(){let t=this._lines[this._cursor.row];this._cursor.col<mn(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=mn(this._lines[this._cursor.row]),this._rememberedCol=this._cursor.col}_clampColumn(){let t=this._lines[this._cursor.row],n=mn(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,mn(this._lines[this._cursor.row]))),this._rememberedCol=this._cursor.col}killLineRight(){let t=this._lines[this._cursor.row];this._cursor.col<mn(t)&&(this._saveHistory(),this._lines[this._cursor.row]=cn(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]=cn(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=nn(t);for(;n>0&&/\s/.test(r[n]??"");)n--;for(;n>0&&!/\s/.test(r[n-1]??"");)n--;let i=cn(t,0,n),s=cn(t,this._cursor.col);this._lines[this._cursor.row]=i+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(`
|
|
43
|
+
`),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(`
|
|
44
|
+
`),this._lines.length===0&&(this._lines=[""]),this._clampCursor(),!0):!1}_updateText(){this._text=this._lines.join(`
|
|
45
|
+
`)}_setTextInternal(t){this._text=t,this._lines=t.split(`
|
|
46
|
+
`),this._lines.length===0&&(this._lines=[""])}moveToAbsoluteOffset(t){let r=Math.max(0,Math.min(t,this._text.length));for(let i=0;i<this._lines.length;i++){let s=this._lines[i]??"",a=s.length;if(r<=a){this._cursor={row:i,col:mn(s.slice(0,r))},this._rememberedCol=this._cursor.col;return}r-=a,i<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+=cn(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=mn(this._lines[this._cursor.row]??""),this._rememberedCol=this._cursor.col}};import{useState as hA,useCallback as _t,useRef as gm,useEffect as gA}from"react";function xm(e={}){let{initialValue:t="",onTextChange:n}=e,r=gm(null),i=gm(null),s=gm(null),[a,c]=hA({text:t,cursor:{row:0,col:0},lines:[""],isPasting:!1,editingMode:t?"typing":"idle"});r.current===null&&(r.current=new Ka,t&&r.current.setText(t)),i.current===null&&(i.current=Ey());let l=r.current,u=i.current,f=_t(Y=>{c(L=>({text:l.text,cursor:l.cursor,lines:l.lines,isPasting:Y?.isPasting??L.isPasting,editingMode:Y?.editingMode??L.editingMode})),n?.(l.text)},[l,n]),p=_t(()=>{s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{c(Y=>({...Y,isPasting:!1,editingMode:Y.text?"typing":"idle"})),s.current=null},120)},[]),m=_t(Y=>{l.setText(Y),f({isPasting:!1,editingMode:Y?"typing":"idle"})},[l,f]),h=_t((Y,L,I)=>{l.replaceRange(Y,L,I),f({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,f]),w=_t((Y,L)=>{let I=L?.paste??!1;if(I&&vy(Y)){let le=Y.replace(/\r\n/g,`
|
|
47
|
+
`).replace(/\r/g,`
|
|
48
|
+
`),{placeholder:We}=u.registerText(le);l.insert(We,{paste:!0}),f({isPasting:!0,editingMode:"pasting"}),p();return}l.insert(Y,{paste:!1}),f({isPasting:I,editingMode:I?"pasting":"typing"}),I&&p()},[l,u,p,f]),S=_t(()=>{l.newline(),f({isPasting:!1,editingMode:"typing"})},[l,f]),x=_t(()=>{let Y=l.getAbsoluteOffset(),L=Yl(l.text,Y);L?l.replaceRange(L.start,L.end,""):l.backspace(),f({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,f]),T=_t(()=>{let Y=l.getAbsoluteOffset(),L=ql(l.text,Y);L?l.replaceRange(L.start,L.end,""):l.delete(),f({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,f]),M=_t(Y=>{l.move(Y),f()},[l,f]),v=_t(()=>{l.clear(),f({isPasting:!1,editingMode:"idle"})},[l,f]),P=_t(()=>{let Y=l.undo();return Y&&f(),Y},[l,f]),O=_t(()=>{let Y=l.redo();return Y&&f(),Y},[l,f]),_=_t(()=>{l.moveToEnd(),f()},[l,f]),C=_t(Y=>{l.moveToAbsoluteOffset(Y),f()},[l,f]),j=_t(()=>{l.killLineRight(),f({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,f]),ue=_t(()=>{l.killLineLeft(),f({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,f]),ge=_t(()=>{l.deleteWordLeft(),f({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,f]),de=_t(()=>{s.current&&(clearTimeout(s.current),s.current=null),f({isPasting:!1,editingMode:l.text?"typing":"idle"})},[l,f]);return gA(()=>()=>{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:de,setText:m,replaceRange:h,insert:w,newline:S,backspace:x,delete:T,move:M,moveToEnd:_,moveToOffset:C,killLineRight:j,killLineLeft:ue,deleteWordLeft:ge,clear:v,undo:P,redo:O}}o(xm,"useTextBuffer");import{jsx as Bo,jsxs as Fu}from"react/jsx-runtime";import{useState as Gw}from"react";import{useCallback as is,useEffect as ym,useRef as Wu}from"react";function Fw(e,t,n){let r=Math.max(0,Math.min(t,e.length)),i=e.slice(0,r);if(n.type==="command"||n.type==="skill"){let a=i.lastIndexOf("/");return{start:a===-1?0:a,end:r,replacement:n.text}}if(n.type==="argument"){let a=i.match(/\S+$/);if(a){let c=a[0],l=r-c.length;if(c.startsWith("/")&&i.lastIndexOf("/")===l)return{start:r,end:r,replacement:` ${n.text}`}}return{start:a?r-a[0].length:r,end:r,replacement:n.text}}let s=i.lastIndexOf("@");return{start:s===-1?0:s,end:r,replacement:n.text}}o(Fw,"buildAutocompleteReplacement");var yA=500;function Uw(e,t,n){return n==="up"?e===0:e>=Math.max(0,t-1)}o(Uw,"shouldUseHistoryNavigation");function SA(e){return e.isAutocompleteVisible?"cancel-autocomplete":e.hasText?e.timeSinceLastEscapeMs<yA?"clear-input":"arm-clear":"pass-through"}o(SA,"resolvePromptEscapeBehavior");function wA(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"}o(wA,"resolvePromptEnterBehavior");function TA(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}}o(TA,"resolvePromptEditingCommand");function jw({onSubmit:e,onExit:t,focus:n=!0,initialValue:r="",cwd:i,gitRoot:s,autocompleteEnabled:a=!0,onInputChange:c,onHistoryRecall:l,onPopPendingInputs:u}){let f=Wu(0),{add:p,navigateUp:m,navigateDown:h,reset:w,saveTempInput:S}=hm(),{buffer:x,text:T,cursor:M,lines:v,isPasting:P,editingMode:O,pasteStore:_,resetTransientState:C,setText:j,replaceRange:ue,clear:ge,move:de,moveToOffset:Y,insert:L,backspace:I,newline:le,delete:We,undo:K,redo:z,killLineRight:fe,killLineLeft:J,deleteWordLeft:ce}=xm({initialValue:r,onTextChange:c}),U=Wu(0);ym(()=>{if(P)return;if(T.length<=1e4){U.current=0;return}if(T.length===U.current)return;let q=_.peekNextId(),{truncatedText:te,placeholderContent:Be}=Ry(T,q);Be&&(_.registerTruncatedText(Be),U.current=te.length,j(te))},[T,P,_,j]);let Re=Do(),Pe=Hu({cwd:i,gitRoot:s,enabled:a}),{state:be,suggestions:De,handleInput:Oe,handleTab:ie,handleEnter:gt,handleUp:Pt,handleDown:ee,handleEscape:xe}=Re??Pe;ym(()=>{n||(f.current=0,C(),be.visible&&xe())},[be.visible,n,xe,C]);let A=Wu(T);ym(()=>{a&&T!==A.current&&(A.current=T,Oe(T,x.getAbsoluteOffset()))},[a,x,Oe,T]);let H=is(q=>{if(!q?.text)return;let te=Fw(T,x.getAbsoluteOffset(),q),Be=T.slice(0,te.start)+te.replacement+T.slice(te.end);return ue(te.start,te.end,te.replacement),Be},[x,ue,T]),D=is(q=>{let te=q??T;if(!te.trim())return;let Be=_.expand(te),W=new Set,Ue=/\[(Pasted text|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.*)\]/g;for(let Lr of te.matchAll(Ue)){let Pr=Number.parseInt(Lr[2]??"0",10);Number.isFinite(Pr)&&Pr>0&&W.add(Pr)}let vt=[];for(let Lr of W){let Pr=_.get(Lr);Pr&&vt.push(Pr)}p(te,{pastedContents:vt}),e({displayText:te,fullText:Be,pastedContents:vt}),ge()},[p,ge,e,_,T]),pe=is(q=>{if(q){if(q.pastedContents&&q.pastedContents.length>0){for(let te of q.pastedContents)_.adopt(te);l?.({text:q.text,pastedContents:[...q.pastedContents]})}j(q.text)}},[l,_,j]),Le=is(async q=>{try{let te=await Dy(q);if(te.kind==="images"){let Be=te.blocks.map(W=>`@${W.path}`).join(" ");L(`${Be} `,{paste:!1})}else te.kind==="error"&&console.warn(`[KodaX paste] ${te.message}`)}catch(te){console.warn(`[KodaX paste] image handling failed: ${te instanceof Error?te.message:String(te)}`)}},[L]),Ye=Wu(!1),Ee=is(async()=>{if(!Ye.current){Ye.current=!0;try{let q=await By();if(q.kind==="images"){let te=q.blocks.map(Be=>`@${Be.path}`).join(" ");L(`${te} `,{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{Ye.current=!1}}},[L]),Ie=is(q=>{if(!n)return!1;if(q.name==="v"&&(q.ctrl||q.meta))return Ee(),!0;if(q.name==="paste"&&q.isPasted&&Hy(q.sequence).length>0)return Le(q.sequence),!0;let te=be.visible&&De.length>0;if(q.name==="tab"&&te){let W=ie();return W&&H(W),!0}if(q.ctrl&&q.name==="c")return T.length>0?(ge(),w()):t?.(),!0;if(q.name==="escape")switch(SA({isAutocompleteVisible:te,hasText:T.length>0,timeSinceLastEscapeMs:Date.now()-f.current})){case"cancel-autocomplete":return xe(),f.current=0,!0;case"clear-input":return f.current=0,ge(),w(),!0;case"arm-clear":return f.current=Date.now(),!0;default:return!1}if(q.name==="up"){if(te)return Pt(),!0;if(q.ctrl)return de("up"),!0;if(T.length===0&&u){let W=u();if(typeof W=="string"&&W.length>0)return j(W),!0}if(Uw(M.row,v.length,"up")){S(T);let W=m();pe(W)}else de("up");return!0}if(q.name==="down"){if(te)return ee(),!0;if(q.ctrl)return de("down"),!0;if(Uw(M.row,v.length,"down")){let W=h();pe(W)}else de("down");return!0}if(q.name==="left"){let W=x.getAbsoluteOffset(),Ue=Yl(x.text,W);return Ue?Y(Ue.start):de("left"),!0}if(q.name==="right"){let W=x.getAbsoluteOffset(),Ue=ql(x.text,W);return Ue?Y(Ue.end):de("right"),!0}if(q.name==="home")return de("home"),!0;if(q.name==="end")return de("end"),!0;let Be=TA(q);if(Be)switch(Be){case"move-home":return de("home"),!0;case"move-end":return de("end"),!0;case"undo":return K(),!0;case"redo":return z(),!0;case"kill-line-right":return fe(),!0;case"kill-line-left":return J(),!0;case"delete-word-left":return ce(),!0;default:break}if(q.name==="backspace")return I(),!0;if(q.name==="delete")return We(),!0;if(q.name==="return"||q.name==="newline")switch(wA({keyName:q.name,ctrl:q.ctrl,shift:q.shift,isAutocompleteVisible:te,isLineContinuation:!!v[M.row]?.endsWith("\\"),isPasting:P})){case"accept-completion-and-submit":{let Ue=gt();if(Ue){let vt=H(Ue);D(vt)}else D();return!0}case"newline":return le(),!0;case"line-continuation":return I(),le(),!0;default:return D(),!0}return q.insertable&&!q.ctrl&&!q.meta?(L(q.sequence,q.isPasted?{paste:!0}:void 0),!0):!1},[H,p,be.visible,I,x,ge,M.row,We,n,ee,xe,Pt,gt,pe,ie,Le,Ee,v,J,fe,de,Y,h,m,le,t,u,z,w,S,j,D,De.length,T.length,ce,P,K]);return{text:T,cursor:M,lines:v,isPasting:P,terminalFocused:n,editingMode:O,handleKey:Ie}}o(jw,"usePromptInputController");var ss=o(({onSubmit:e,onHistoryRecall:t,onPopPendingInputs:n,placeholder:r="Type a message...",prompt:i=">",focus:s=!0,initialValue:a="",cwd:c,gitRoot:l,autocompleteEnabled:u=!0,onInputChange:f})=>{let{exit:p}=Jr(),{cursor:m,lines:h,handleKey:w,isPasting:S,terminalFocused:x,editingMode:T}=jw({onSubmit:e,onExit:p,focus:s,initialValue:a,cwd:c,gitRoot:l,autocompleteEnabled:u,onInputChange:f,onHistoryRecall:t,onPopPendingInputs:n});return xn(Kt.High,M=>w(M),[w]),Bo(k,{flexDirection:"column",children:Bo(sm,{lines:h,cursorRow:m.row,cursorCol:m.col,prompt:i,placeholder:r,focus:s,terminalFocused:x,isPasting:S,editingMode:T,theme:"dark"})})},"InputPrompt"),CA=o(({onSubmit:e,placeholder:t,prompt:n=">"})=>{let[r,i]=Gw(""),[s,a]=Gw(0);xn(Kt.High,p=>{if(p.name==="return")return r.trim()&&(e(r),i(""),a(0)),!0;if(p.name==="backspace"&&s>0){let m=[...r].slice(0,s-1).join(""),h=[...r].slice(s).join("");return i(m+h),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 m=[...r].slice(0,s).join(""),h=[...r].slice(s).join("");return i(m+p.sequence+h),a(s+1),!0}return!1},[r,s,e]);let c=oe("dark");if(!r)return Fu(k,{children:[Fu(b,{color:c.colors.primary,children:[n," "]}),t&&Bo(b,{dimColor:!0,children:t}),Bo(b,{backgroundColor:c.colors.primary,color:"#000000",children:" "})]});let l=[...r].slice(0,s).join(""),u=[...r][s]??" ",f=[...r].slice(s+1).join("");return Fu(k,{children:[Fu(b,{color:c.colors.primary,children:[n," "]}),Bo(b,{children:l}),Bo(b,{backgroundColor:c.colors.primary,color:"#000000",children:u}),Bo(b,{children:f})]})},"SimpleInputPrompt");import{jsx as ut,jsxs as Bt}from"react/jsx-runtime";import{useState as Kw,useEffect as zw}from"react";var Vw=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],bA=80,Uu=new Set,za=null;function IA(){let e=Array.from(Uu);for(let t of e)t()}o(IA,"dispatchSharedSpinnerTick");function kA(e){return Uu.add(e),za===null&&(za=setInterval(IA,bA)),()=>{Uu.delete(e),Uu.size===0&&za!==null&&(clearInterval(za),za=null)}}o(kA,"subscribeToSharedSpinnerClock");function ju(e=!0){let[t,n]=Kw(0);return zw(()=>{if(e)return kA(()=>{n(r=>r+1)})},[e]),t}o(ju,"useSharedSpinnerTick");var _n=o(({color:e,theme:t})=>{let n=t??oe("dark"),i=ju(!0)%Vw.length,s=e??n.colors.accent;return ut(b,{color:s,children:Vw[i]})},"Spinner");function vA(e){return e<=0?0:Math.round(e/4)}o(vA,"estimateOutputTokens");function RA(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),i=t%60;return n===0?`${r}m${i}s`:`${n}h${r}m${i}s`}o(RA,"formatElapsedDuration");var Xw=o(({roundStartedAt:e,charCount:t,theme:n})=>{let r=n??oe("dark");if(ju(e!==null),e===null)return null;let i=EA(Date.now()-e,t);return ut(b,{color:r.colors.dim,wrap:"truncate",children:i})},"SpinnerStatsTail");function EA(e,t){let n=RA(e),r=vA(t);return r>0?` (${n} \xB7 \u2193 ${r} tokens)`:` (${n})`}o(EA,"buildSpinnerStatsText");var Yw=o(({label:e,dotCount:t=3,theme:n})=>{let r=n??oe("dark"),[i,s]=Kw(1);zw(()=>{let c=setInterval(()=>{s(l=>l%t+1)},300);return()=>clearInterval(c)},[t]);let a=".".repeat(i);return Bt(k,{children:[e&&ut(b,{color:r.colors.text,children:e}),ut(b,{color:r.colors.accent,children:a})]})},"DotsIndicator"),qw=o(({progress:e,label:t,width:n=20,theme:r})=>{let i=r??oe("dark"),s=Math.max(0,Math.min(100,e)),a=Math.round(s/100*n),c=n-a,l="\u2588".repeat(a),u="\u2591".repeat(c);return Bt(k,{flexDirection:"column",children:[t&&ut(k,{marginBottom:1,children:ut(b,{color:i.colors.text,children:t})}),Bt(k,{children:[ut(b,{color:i.colors.primary,children:l}),ut(b,{dimColor:!0,children:u}),Bt(b,{children:[" ",s,"%"]})]})]})},"ProgressIndicator"),MA=o(({message:e,showSpinner:t=!1,theme:n})=>{let r=n??oe("dark"),i=e??"Thinking";return Bt(k,{children:[t&&ut(k,{marginRight:1,children:ut(_n,{theme:r})}),Bt(b,{color:r.colors.accent,children:[i,"\u2026"]})]})},"ThinkingIndicator"),AA=o(({message:e,subMessage:t,progress:n,type:r="spinner",compact:i=!1,theme:s})=>{let a=s??oe("dark"),c=e??"Loading";return i?Bt(k,{children:[ut(_n,{theme:a}),Bt(b,{color:a.colors.text,children:[" ",c,"\u2026"]})]}):r==="bar"&&n!==void 0?Bt(k,{flexDirection:"column",children:[ut(qw,{progress:n,label:c,theme:a}),t&&ut(k,{marginTop:1,children:ut(b,{dimColor:!0,children:t})})]}):r==="dots"?Bt(k,{flexDirection:"column",children:[ut(Yw,{label:c,theme:a}),t&&ut(k,{marginTop:1,children:ut(b,{dimColor:!0,children:t})})]}):r==="simple"?Bt(k,{flexDirection:"column",children:[Bt(b,{color:a.colors.accent,children:[c,"\u2026"]}),t&&ut(k,{marginTop:1,children:ut(b,{dimColor:!0,children:t})}),n!==void 0&&ut(k,{marginTop:1,children:Bt(b,{dimColor:!0,children:[n,"%"]})})]}):Bt(k,{flexDirection:"column",children:[Bt(k,{children:[ut(_n,{theme:a}),Bt(b,{color:a.colors.text,children:[" ",c,"\u2026"]}),n!==void 0&&Bt(b,{dimColor:!0,children:[" (",n,"%)"]})]}),t&&ut(k,{marginTop:1,children:ut(b,{dimColor:!0,children:t})})]})},"LoadingIndicator");import{jsx as ye,jsxs as Ke,Fragment as _m}from"react/jsx-runtime";import{useEffect as AT,useMemo as sr,memo as yn}from"react";import*as Ya from"node:path";function Xa(e){if(Qx(e)){let t=Jx(e);return t?`[memory:${t}]`:"[memory]"}if(_A(e))return"[memory]"}o(Xa,"memoryBadgeFor");function _A(e){let t=Ya.resolve(e),n=bi("projects");if(!t.startsWith(n+Ya.sep)&&t!==n)return!1;let i=t.slice(n.length+1).split(Ya.sep);return i.length>=2&&i[1]==="memory"}o(_A,"isInsideAnyMemoryDir");function Je(e,t=120){return e.length>t?`${e.slice(0,t-3)}...`:e}o(Je,"truncateValue");function Qw(e){if(e)return e.split(/\r?\n/).map(t=>t.trim()).find(Boolean)}o(Qw,"extractFirstMeaningfulLine");function eT(e){let t=e.match(/^\[([^\]]+)\]\s+(.*)$/);if(!t)return{toolLabel:e};let n=t[1]?.trim(),r=t[2]?.trim()??e,i=new RegExp(`^${n?.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}:`,"i"),s=r.replace(i,"").trim();return{rolePrefix:n?`[${n}]`:void 0,toolLabel:s||r}}o(eT,"splitDisplayToolName");function Gu(e){let{rolePrefix:t,toolLabel:n}=eT(e);return t?`${t} ${n}`:n}o(Gu,"normalizeDisplayToolName");function qa(e){return eT(e).toolLabel}o(qa,"stripRolePrefix");function Vu(e){if(!(!e||Array.isArray(e)||typeof e!="object"))return e}o(Vu,"asRecord");function tT(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}o(tT,"readString");function bt(e,...t){for(let n of t){let r=tT(e?.[n]);if(r)return r}}o(bt,"readFirstString");function or(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}}o(or,"readNumber");function nT(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}o(nT,"readStringArray");function LA(e){if(typeof e=="string")return e.trim()||void 0;let t=Vu(e);if(t)return tT(t.preview)??void 0}o(LA,"extractPreview");function Jw(e){if(e)try{return Vu(JSON.parse(e))}catch{return}}o(Jw,"parsePreviewRecord");function Ne(e,t){return e&&e.match(new RegExp(`"${t}"\\s*:\\s*"([^"]+)`))?.[1]?.trim()||void 0}o(Ne,"extractFieldFromPreview");function ir(e,t){if(!e)return;let n=e.match(new RegExp(`"${t}"\\s*:\\s*(\\d+)`));return n?.[1]?Number(n[1]):void 0}o(ir,"extractNumberFromPreview");function rT(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}o(rT,"extractPathsFromPreview");function PA(e){let t=LA(e);if(typeof e=="string")return{record:Jw(t),preview:t};let n=Vu(e),r=Jw(t);return n?r?{record:{...n,...r},preview:t}:{record:n,preview:t}:{record:r,preview:t}}o(PA,"resolveInputRecord");function as(e,t,n,r=!1){let i=bt(t,"path","target_path","targetPath")??Ne(n,"path")??Ne(n,"target_path")??Ne(n,"targetPath"),s=nT(t?.paths)??rT(n);if(r&&s?.length){if(s.length===1){let a=Xa(s[0]);a&&e.push(a),e.push(Je(s[0]))}else e.push(`${s.length} files`);return}if(i){let a=Xa(i);a&&e.push(a),e.push(Je(i));return}if(s?.length)if(s.length===1){let a=Xa(s[0]);a&&e.push(a),e.push(Je(s[0]))}else e.push(`${s.length} files`)}o(as,"pushPathSummary");function cs(e,t,n){n!==void 0&&e.push(`${t}=${n}`)}o(cs,"pushNumericSummary");function Sm(e,t,n){let r=bt(t,"baseRef","base_ref")??Ne(n,"baseRef")??Ne(n,"base_ref"),i=bt(t,"targetRef","target_ref")??Ne(n,"targetRef")??Ne(n,"target_ref");r&&i&&e.push(Je(`${r}...${i}`,88))}o(Sm,"pushRangeSummary");function $A(e,t){let{record:n,preview:r}=PA(t),i=qa(e).toLowerCase(),s=[];if(i.includes("changed_diff_bundle")){let a=nT(n?.paths)??rT(r);a?.length?(s.push(a.length===1?Je(a[0]):`${a.length} files`),a.length>1&&s.push(Je(a[0]))):as(s,n,r,!0);let c=or(n?.limit_per_path)??or(n?.limitPerPath)??ir(r,"limit_per_path")??ir(r,"limitPerPath");return c!==void 0&&s.push(`limit=${c}`),Sm(s,n,r),s}if(i.includes("changed_diff"))return as(s,n,r),cs(s,"offset",or(n?.offset)??ir(r,"offset")),cs(s,"limit",or(n?.limit)??ir(r,"limit")),Sm(s,n,r),s;if(i==="read"||i.includes("read_"))return as(s,n,r),cs(s,"offset",or(n?.offset)??ir(r,"offset")),cs(s,"limit",or(n?.limit)??ir(r,"limit")),s;if(i.includes("changed_scope"))return as(s,n,r,!0),Sm(s,n,r),s;if(i.includes("repo_overview"))return as(s,n,r),s;if(i.includes("bash")||i.includes("shell_command")){let a=bt(n,"command")??Ne(r,"command");return a&&s.push(`cmd=${Je(a,140)}`),s}if(i==="glob"||i.includes("glob_")){let a=bt(n,"pattern")??Ne(r,"pattern"),c=bt(n,"path","root","directory","cwd")??Ne(r,"path")??Ne(r,"root")??Ne(r,"directory")??Ne(r,"cwd");if(a&&s.push(`pattern=${Je(a,96)}`),c){let l=Xa(c);l&&s.push(l),s.push(Je(c))}return s}if(i==="grep"||i.includes("grep_")){let a=bt(n,"pattern","query")??Ne(r,"pattern")??Ne(r,"query"),c=bt(n,"path","root","directory","cwd")??Ne(r,"path")??Ne(r,"root")??Ne(r,"directory")??Ne(r,"cwd");if(a&&s.push(`pattern=${Je(a,96)}`),c){let l=Xa(c);l&&s.push(l),s.push(Je(c))}return s}if(i==="web_fetch"){let a=bt(n,"url")??Ne(r,"url"),c=bt(n,"provider_id","providerId")??Ne(r,"provider_id")??Ne(r,"providerId"),l=bt(n,"capability_id","capabilityId")??Ne(r,"capability_id")??Ne(r,"capabilityId");return a&&s.push(Je(a,120)),c&&s.push(`provider=${Je(c,48)}`),l&&s.push(`cap=${Je(l,48)}`),s}if(i==="mcp_describe"||i==="mcp_read_resource"){let a=bt(n,"id")??Ne(r,"id");return a&&s.push(Je(a,120)),s}if(i==="mcp_call"){let a=bt(n,"id")??Ne(r,"id"),c=Vu(n?.args),l=c?Object.keys(c).length:void 0;return a&&s.push(Je(a,120)),l!==void 0&&s.push(`args=${l}`),s}if(i==="mcp_search"){let a=bt(n,"query")??Ne(r,"query"),c=bt(n,"server")??Ne(r,"server"),l=bt(n,"kind")??Ne(r,"kind"),u=or(n?.limit)??ir(r,"limit");return a&&s.push(`query=${Je(a,96)}`),c&&s.push(`server=${Je(c,48)}`),l&&s.push(`kind=${l}`),u!==void 0&&s.push(`limit=${u}`),s}if(i==="web_search"||i==="code_search"||i==="semantic_lookup"){let a=bt(n,"query","pattern")??Ne(r,"query")??Ne(r,"pattern"),c=bt(n,"path","target_path","targetPath")??Ne(r,"path")??Ne(r,"target_path")??Ne(r,"targetPath"),l=bt(n,"provider_id","providerId")??Ne(r,"provider_id")??Ne(r,"providerId"),u=or(n?.limit)??ir(r,"limit");return a&&s.push(`query=${Je(a,96)}`),c&&s.push(Je(c,72)),l&&s.push(`provider=${Je(l,48)}`),u!==void 0&&s.push(`limit=${u}`),s}return as(s,n,r,!0),cs(s,"offset",or(n?.offset)??ir(r,"offset")),cs(s,"limit",or(n?.limit)??ir(r,"limit")),s}o($A,"summarizeToolDetails");function oT(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]}`}o(oT,"extractChangedDiffRange");function OA(e){return e.split(/\r?\n/).map(t=>t.trim()).find(t=>t.startsWith("+")||t.startsWith("-")||t.startsWith("@@"))}o(OA,"extractDiffPreviewLine");function NA(e){let t=[],n=oT(e);if(n){let[i,s]=n.split("/");t.push(s?`Diff range: ${i} of ${s}`:`Diff range: ${n}`)}let r=OA(e);return r&&t.push(`Preview: ${Je(r,220)}`),t}o(NA,"formatChangedDiffExplanation");function DA(e){let t=[],n=e.match(/^Changed diff bundle for\s+(\d+)\s+file\(s\)/im);if(n?.[1]){let i=Number(n[1]);Number.isFinite(i)&&i>0&&t.push(`Bundle: ${i===1?"1 file":`${i} files`}`)}let r=e.match(/^===\s+(.+?)\s+===/m);return r?.[1]&&t.push(`First file: ${Je(r[1].trim(),220)}`),t}o(DA,"formatChangedDiffBundleExplanation");function iT(e,t){if(!t)return[];let n=qa(e).toLowerCase(),r=[];if(n.includes("changed_diff_bundle")){let i=t.match(/^Changed diff bundle for\s+(\d+)\s+file\(s\)/im);if(i?.[1]){let a=Number(i[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(Je(s[1].trim())),r}if(n.includes("changed_diff")){let i=t.match(/^Changed diff for\s+(.+)$/im);i?.[1]&&r.push(Je(i[1].trim()));let s=oT(t);return s&&r.push(s),r}if(n==="read"||n.includes("read_")){let i=t.match(/^Reading\s+(.+)$/im);return i?.[1]&&r.push(Je(i[1].trim())),r}return[]}o(iT,"summarizeToolOutputDetails");function wm(e,t){let n=Gu(e);return t.length>0?`${n} - ${t.join(" - ")}`:n}o(wm,"formatToolDetailSummary");function BA(e,t){if(!t)return;let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}o(BA,"formatDuration");function HA(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}}o(HA,"formatToolStatusDetail");function Zw(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[]}}o(Zw,"formatToolProgressExplanation");function Tm(e){return e.startsWith("Error:")?"error":e.startsWith("Waiting:")?"accent":e.startsWith("Progress:")||e.startsWith("Running:")?"primary":"dim"}o(Tm,"resolveToolExplanationTone");function WA(e){let t=Qw(e.error),n=typeof e.output=="string"?Qw(e.output):void 0,r=[];return t&&r.push(`Error: ${Je(t,220)}`),e.status===$.Error&&n&&(!t||n.toLowerCase()!==t.toLowerCase())&&r.push(`Last output: ${Je(n,220)}`),r}o(WA,"formatToolFailureExplanation");function Cm(e){if(typeof e.output!="string"||!e.output.trim())return Zw(e);let t=qa(e.name).toLowerCase();return e.status===$.Error?WA(e):e.status!==$.Success?Zw(e):t.includes("changed_diff_bundle")?DA(e.output):t.includes("changed_diff")?NA(e.output):[]}o(Cm,"formatToolResultExplanation");function bm(e,t){return wm(e,$A(e,t))}o(bm,"formatToolSummary");function Ku(e){let t=typeof e.output=="string"?iT(e.name,e.output):[],n=t.length>0?wm(e.name,t):bm(e.name,e.input),r=HA(e),i=BA(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,i].filter(Boolean);return a.length>0?`${n} (${a.join(" - ")})`:n}o(Ku,"formatToolCallInlineText");function zu(e){let t=new Map;for(let n of e){let r=typeof n.output=="string"?iT(n.name,n.output):[],i=r.length>0?wm(n.name,r):bm(n.name,n.input),a=n.progressLines&&n.progressLines.length>0?`${i}|${n.id}`:`${i}|${n.error??""}`,c=t.get(a);c?(c.tool=n,c.count+=1):t.set(a,{tool:n,count:1})}return[...t.values()]}o(zu,"collapseToolCalls");function Qa(e){let t=Ku(e.tool);return e.count>1?`${t} x${e.count}`:t}o(Qa,"formatCollapsedToolInlineText");function Xu(e,t,n){let r=bm(e,t);return r!==Gu(e)?`[Tools] ${r}`:n>0?`[Tools] ${Gu(e)} (${n} chars)`:`[Tools] ${Gu(e)}`}o(Xu,"formatLiveToolLabel");function Im(e,t=e.length){let n=0,r=Math.min(t,e.length);for(let i=0;i<r;i++)e.charCodeAt(i)===10&&(n+=1);return n}o(Im,"countNewlines");function Yu(e,t={}){let n=t.maxChars??1e4,r=t.headChars??2500,i=t.tailChars??2500;if(e.length<=n)return e;let s=e.slice(0,r),a=e.slice(-i),c=Im(e),l=Im(s),u=Im(a),f=Math.max(0,c-l-u);return`${s}
|
|
49
|
+
\u2026 +${f} lines \u2026
|
|
50
|
+
${a}`}o(Yu,"truncateUserMessageForDisplay");var sT="(?:\x1B[[0-9;]*m)*",FA=new RegExp(`^(${sT})(?:[ \r]*
|
|
51
|
+
)+`),UA=new RegExp(`(?:
|
|
52
|
+
[ \r]*)+(${sT})$`);function km(e){return e.replace(FA,"$1").replace(UA,"$1")}o(km,"stripOuterBlankLines");function It(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,"")}o(It,"stripAnsi");var jA=new Set(["edit","write","multi_edit","insert_after_anchor"]),GA=20;function VA(e){return jA.has(qa(e.name).trim().toLowerCase())}o(VA,"isMutationTool");function KA(e){return e.startsWith("--- ")||e.startsWith("+++ ")?{color:"dim",skip:!0}:/^(File (edited|created|updated|written)|Content inserted)/.test(e)?{color:"dim",skip:!0}:e.startsWith("@@")?{color:"dim",skip:!1}:e.startsWith("+")?{color:"success",skip:!1}:e.startsWith("-")?{color:"error",skip:!1}:{color:"dim",skip:!1}}o(KA,"classifyDiffLine");function zA(e,t,n,r,i){let s=[],a=!1;for(let p of n.split(/\r?\n/)){let{color:m,skip:h}=KA(p);h||((m==="success"||m==="error")&&(a=!0),s.push({text:p,color:m}))}if(!a)return!1;let c=0,l=s.length;for(;c<l&&s[c].text.trim()==="";)c++;for(;l>c&&s[l-1].text.trim()==="";)l--;let u=s.slice(c,l);if(u.length===0)return!1;let f=i?u:u.slice(0,GA);return f.forEach((p,m)=>{_e(e,`${t}-diff-${m}`,p.text,at(r,4),{color:p.color,indent:4})}),!i&&u.length>f.length&&_e(e,`${t}-diff-more`,`... (${u.length-f.length} more lines)`,at(r,4),{color:"dim",indent:4}),!0}o(zA,"pushDiffRows");var aT=400,XA="... (thinking truncated; press Ctrl+O to inspect full reasoning)",cT=2e5,YA="... (thinking show-all truncated at 200K chars; full content available via session artifacts)",fT=1e5,lT=120,qA=" \u2026 (Ctrl+O to expand)";function pT(){return process.env.KODAX_THINKING_COLLAPSE!=="0"}o(pT,"isThinkingCollapseEnabled");function QA(e){let t=e.split(/\r?\n/).map(a=>a.trim()).filter(a=>a.length>0),n=t[0]??"",r=t.length>1,i=n.length>lT;return{summary:i?`${n.slice(0,lT).trimEnd()}\u2026`:n,hasMore:r||i}}o(QA,"buildCollapsedThinkingLine");function JA(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()}o(JA,"normalizeManagedLiveActivityLabel");function qu(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}o(qu,"formatTimestamp");function mT(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]"}}o(mT,"getToolStatusIcon");function hT(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"}}o(hT,"getToolStatusColor");function ZA(e,t){let n=Math.max(1,t),r=e.split(`
|
|
53
|
+
`),i=rn(r.length>0?r:[""],n,0,0);return i.visualLines.length>0?i.visualLines:[""]}o(ZA,"wrapText");function vm(e,t,n,r=!1){if(n||r)return e.length>cT?`${e.slice(0,cT)}
|
|
54
|
+
|
|
55
|
+
${YA}`:e;let i=e.split(/\r?\n/),s=i.length>t,a=s?i.slice(0,t).join(`
|
|
56
|
+
`):e,c=a.length>aT,l=c?a.slice(0,aT):a;return!s&&!c?e:`${l}
|
|
57
|
+
|
|
58
|
+
${XA}`}o(vm,"buildThinkingPreview");function e_(e){for(let t=e.length-1;t>=0;t--)if(e[t]?.type==="user")return t;return 0}o(e_,"findActiveRoundStartIndex");function _e(e,t,n,r,i){let s=It(n),a=ZA(s,r);if(a.length===0){e.push({key:`${t}-0`,text:"",...i});return}a.forEach((c,l)=>{e.push({key:`${t}-${l}`,text:c,...i})})}o(_e,"pushWrappedRows");function ls(e,t){e.push({key:t,text:" "})}o(ls,"pushBlankRow");function at(e,t=0){return Math.max(20,e-t)}o(at,"getBodyWidth");function t_(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):[]}o(t_,"buildToolInputPreview");function n_(e){switch(e){case"H0_DIRECT":return"H0";case"H1_EXECUTE_EVAL":return"H1";case"H2_PLAN_EXECUTE_EVAL":return"H2";default:return e}}o(n_,"formatHarnessProfileShort");function r_(e,t,n,r,i,s=!1,a=!1){_e(e,`${t}-tool-${n.id}-main`,`${mT(n.status)} ${Qa({tool:n,count:r})}`,at(i,2),{color:hT(n.status),indent:2,bold:n.status===$.Executing}),Cm(n).forEach((u,f)=>{let p=Tm(u);_e(e,`${t}-tool-${n.id}-explanation-${f}`,u,at(i,4),{color:p,indent:4})});let l=n.status===$.Success&&typeof n.output=="string"&&n.output.trim().length>0&&VA(n)&&zA(e,`${t}-tool-${n.id}`,n.output,i,a);if(s){let u=t_(n),f=a?u:u.slice(0,6);f.forEach((p,m)=>{_e(e,`${t}-tool-${n.id}-input-${m}`,p,at(i,4),{color:"dim",indent:4})}),!a&&u.length>f.length&&_e(e,`${t}-tool-${n.id}-input-more`,`... (${u.length-f.length} more lines)`,at(i,4),{color:"dim",indent:4})}if(s&&!l&&typeof n.output=="string"&&n.output.trim()){let u=n.output.trim().split(/\r?\n/),f=a?u:u.slice(0,8);f.forEach((m,h)=>{_e(e,`${t}-tool-${n.id}-output-${h}`,m,at(i,4),{color:"dim",indent:4})});let p=u.length;!a&&p>f.length&&_e(e,`${t}-tool-${n.id}-output-more`,`... (${p-f.length} more lines)`,at(i,4),{color:"dim",indent:4})}}o(r_,"buildToolRows");function o_(e,t,n,r){let i=n.status===$.Executing,s=i?"":`${mT(n.status)} `;_e(e,`${t}-tool-${n.id}-main`,`${s}${Qa({tool:n,count:1})}`,at(r,2),{color:hT(n.status),indent:2,bold:i,spinner:i}),Cm(n).forEach((c,l)=>{let u=Tm(c);_e(e,`${t}-tool-${n.id}-explanation-${l}`,c,at(r,4),{color:u,indent:4})})}o(o_,"buildLiveToolRows");function gT(e){let{items:t,viewportWidth:n,isLoading:r=!1,maxLines:i=1e3,isThinking:s=!1,thinkingCharCount:a=0,thinkingContent:c="",streamingResponse:l="",currentTool:u,activeToolCalls:f=[],toolInputCharCount:p=0,toolInputContent:m="",iterationHistory:h=[],currentIteration:w=1,isCompacting:S=!1,managedAgentMode:x,managedPhase:T,managedHarnessProfile:M,managedWorkerTitle:v,managedRound:P,managedMaxRounds:O,lastLiveActivityLabel:_,liveStatusLines:C=[],currentTodoActiveForm:j,showFullThinking:ue=!1,showDetailedTools:ge=!1,showAllContent:de=!1,showLiveProgressRows:Y=!0}=e,L=[];for(let I of t)switch(I.type){case"user":_e(L,`${I.id}-header`,`You [${qu(I.timestamp)}]`,n,{color:"primary",bold:!0,itemId:I.id}),_e(L,`${I.id}-body`,Yu(I.text),at(n,2),{color:"text",indent:2,itemId:I.id}),L.push({key:`${I.id}-blank`,text:" ",itemId:I.id});break;case"assistant":{let le=km(de?I.text:I.compactText??I.text);_e(L,`${I.id}-header`,`Assistant [${qu(I.timestamp)}]`,n,{color:"secondary",bold:!0,spinner:I.isStreaming,itemId:I.id}),_e(L,`${I.id}-body`,le,at(n,2),{color:"text",indent:2,itemId:I.id}),L.push({key:`${I.id}-blank`,text:" ",itemId:I.id});break}case"system":_e(L,`${I.id}-header`,`System [${qu(I.timestamp)}]`,n,{color:"dim",bold:!0,itemId:I.id}),_e(L,`${I.id}-body`,I.text,at(n,2),{color:"dim",indent:2,itemId:I.id}),L.push({key:`${I.id}-blank`,text:" ",itemId:I.id});break;case"tool_group":_e(L,`${I.id}-header`,`Tools [${qu(I.timestamp)}]`,n,{color:"accent",bold:!0,itemId:I.id}),zu(I.tools).forEach(le=>r_(L,I.id,le.tool,le.count,n,ge,de)),L.push({key:`${I.id}-blank`,text:" ",itemId:I.id});break;case"thinking":{_e(L,`${I.id}-header`,"Thinking",n,{color:"thinking",italic:!0,itemId:I.id});let le=pT()&&!ue&&!de?QA(I.compactText??I.text):void 0;if(le?.hasMore){_e(L,`${I.id}-body`,`${le.summary}${qA}`,at(n,2),{color:"thinking",indent:2,italic:!0,itemId:I.id}),L.push({key:`${I.id}-blank`,text:" ",itemId:I.id});break}let We=de?vm(I.text,i,ue,de):I.compactText??vm(I.text,i,ue,de);_e(L,`${I.id}-body`,We,at(n,2),{color:"thinking",indent:2,italic:!0,itemId:I.id}),L.push({key:`${I.id}-blank`,text:" ",itemId:I.id});break}case"error":_e(L,`${I.id}-header`,"\u2717 Error",n,{color:"error",bold:!0,itemId:I.id}),_e(L,`${I.id}-body`,I.text,at(n,2),{color:"error",indent:2,itemId:I.id}),L.push({key:`${I.id}-blank`,text:" ",itemId:I.id});break;case"info":_e(L,`${I.id}-body`,`${I.icon??"\u2139"} ${km(de?I.text:I.compactText??I.text)}`,n,{color:"info",itemId:I.id}),L.push({key:`${I.id}-blank`,text:" ",itemId:I.id});break;case"event":_e(L,`${I.id}-body`,`${I.icon??">"} ${de?I.text:I.compactText??I.text}`,n,{color:"text",itemId:I.id}),L.push({key:`${I.id}-blank`,text:" ",itemId:I.id});break;case"hint":_e(L,`${I.id}-header`,"\u{1F4A1} Hint",n,{color:"hint",bold:!0,itemId:I.id}),_e(L,`${I.id}-body`,I.text,at(n,2),{color:"dim",indent:2,itemId:I.id}),L.push({key:`${I.id}-blank`,text:" ",itemId:I.id});break;default:break}if(Y&&h.length>0&&(h.forEach(I=>{if(_e(L,`iteration-${I.iteration}-header`,`\u2500\u2500 Round ${I.iteration} \u2500\u2500`,n,{color:"dim",bold:!0}),I.thinkingSummary){let le=I.thinkingLength>60?` (${I.thinkingLength} chars total)`:"";_e(L,`iteration-${I.iteration}-thinking`,`\u{1F4AD} ${I.thinkingSummary}${le}`,at(n,1),{color:"thinking",indent:1,italic:!0})}if(I.response){let le=I.response.slice(0,200);_e(L,`iteration-${I.iteration}-response`,le,at(n,1),{color:"text",indent:1}),I.response.length>200&&_e(L,`iteration-${I.iteration}-response-more`,`... (${I.response.length} chars total)`,at(n,1),{color:"dim",indent:1})}I.toolsUsed.length>0&&_e(L,`iteration-${I.iteration}-tools`,`* tools: ${I.toolsUsed.join(", ")}`,at(n,1),{color:"accent",indent:1}),ls(L,`iteration-${I.iteration}-blank`)}),_e(L,"iteration-current-header",`\u2500\u2500 Round ${w} (current) \u2500\u2500`,n,{color:"accent",bold:!0}),ls(L,"iteration-current-blank")),r&&c){let I=vm(c,i,ue,de);_e(L,"thinking-stream-header","Thinking",n,{color:"thinking",italic:!0}),_e(L,"thinking-stream-body",I,at(n,2),{color:"thinking",indent:2,italic:!0}),ls(L,"thinking-stream-blank")}if(r){let I="Thinking",le="",We=n_(M),K=JA(_,v),z=v??"Scout",fe=T==="routing"?`[${x?x.toUpperCase():"AMA"} Routing] `:T==="preflight"?`[${x?x.toUpperCase():"AMA"} ${z}] `:T==="verifying"?`[${x?x.toUpperCase():"AMA"} Verifying] `:M?`[${x?x.toUpperCase():"AMA"} ${We??M}${v?` - ${v}`:""}] `:"",J=f.filter(be=>be.status===$.Executing).length,ce=f.filter(be=>be.status===$.Success).length,U=f.filter(be=>be.status===$.Error).length,Re=f.filter(be=>be.status===$.Cancelled).length,Pe=f.length>0&&(J>0||!l);if(S)I="Compacting";else if(T==="verifying")le=fe,I="checking agent output";else if(Pe){let be=[];if(J>0&&be.push(`${J} running`),ce>0&&be.push(`${ce} done`),U>0&&be.push(`${U} error`),Re>0&&be.push(`${Re} cancelled`),be.length===0&&be.push(`${f.length} tools`),_e(L,"loading-tools-header",`${fe}[Tools] ${be.join(", ")}`,n,{color:"primary",bold:!0,spinner:J>0}),f.forEach(De=>{o_(L,"loading-tools",De,n)}),ls(L,"loading-tools-blank"),J>0&&!l&&!Y)return L}else if(j)le=fe||"[Plan] ",I=j;else if(u)le=fe||"[Tool] ",I=K?.startsWith("[Tools]")?K:Xu(u,m,p);else if(s){le=fe||"[Thinking] ";let be=P&&O&&P>1?` round ${P}/${O}`:"";I=a>0?`${a} chars${be}`:K?`${K}${be}`:`processing${be}`}else K&&(I=K);Y&&_e(L,"loading-indicator",`${le}${I}...`,n,{color:"accent",spinner:!0})}if(Y&&C.length>0&&(_e(L,"live-status-header","Live status",n,{color:"dim",bold:!0}),C.forEach((I,le)=>{_e(L,`live-status-${le}`,I,at(n,2),{color:"dim",indent:2})}),ls(L,"live-status-blank")),l){let I=l.lastIndexOf(`
|
|
59
|
+
`),le=I>=0?l.slice(0,I+1):"";le.length>0&&(_e(L,"streaming-header","Assistant",n,{color:"secondary",bold:!0}),_e(L,"streaming-body",le,at(n,2),{color:"text",indent:2}),ls(L,"streaming-blank"))}return L}o(gT,"buildTranscriptRows");function i_(e,t,n=1e3,r=!1,i=!1,s=!1){return us(e,t,n,r,void 0,i,s)}o(i_,"buildStaticTranscriptSections");var uT=new WeakMap,dT=new Set(["thinking","tool_group"]);function s_(){return process.env.KODAX_TRANSCRIPT_TIGHT!=="0"}o(s_,"isTightRunSpacingEnabled");function a_(e,t){return s_()?t.map((n,r)=>{let i=e[r],s=e[r+1];if(!i||!s||!dT.has(i.type)||!dT.has(s.type))return n;let a=n.rows,c=a[a.length-1];return c&&c.text===" "&&c.key.endsWith("-blank")?{...n,rows:a.slice(0,-1)}:n}):t}o(a_,"suppressTightRunBlanks");function us(e,t,n=1e3,r=!1,i,s=!1,a=!1){let c=e.map(l=>{let u=r||!!i?.has(l.id),f=`${t}|${n}|${s?1:0}|${u?1:0}|${pT()?1:0}|${a?1:0}`,p=uT.get(l);if(p!==void 0&&p.sig===f)return p.section;let m={key:l.id,rows:gT({items:[l],viewportWidth:t,maxLines:n,showAllContent:s,showDetailedTools:u,showFullThinking:a})};return uT.set(l,{sig:f,section:m}),m});return a_(e,c)}o(us,"buildHistoryItemTranscriptSections");function c_(e,t){return{key:e,rows:gT(t)}}o(c_,"buildDynamicTranscriptSection");function Qu(e){let{items:t,viewportWidth:n,maxLines:r=1e3,showDetailedTools:i=!1,showAllContent:s=!1,showFullThinking:a=!1,windowed:c=!1}=e;if(c)return{staticSections:[],activeItems:t};let l=e_(t),u=t.slice(0,l),f=t.slice(l);return{staticSections:i_(u,n,r,i,s,a),activeItems:f}}o(Qu,"buildTranscriptStaticPortion");function Ju(e){let{activeItems:t,viewportWidth:n,maxLines:r=1e3,showDetailedTools:i=!1,showAllContent:s=!1,showFullThinking:a=!1,expandedItemKeys:c,...l}=e,u=us(t,n,r,i,c,s,a),f=c_("active-pending",{...l,items:[],managedLiveEvents:[],lastLiveActivityLabel:l.lastLiveActivityLabel,viewportWidth:n,maxLines:r,showAllContent:s,showDetailedTools:i,showFullThinking:a,expandedItemKeys:c}),p=f.rows.length>0?[f]:[];return{sections:u,previewSections:p}}o(Ju,"buildTranscriptDynamicPortion");function Zu(e,t){return{staticSections:e.staticSections,sections:t.sections,rows:Ho(t.sections),previewSections:t.previewSections,previewRows:Ho(t.previewSections)}}o(Zu,"composeTranscriptRenderModel");function xT(e,t,n){let r=Zu(e,t);return n?{...r,staticSections:[n,...r.staticSections]}:r}o(xT,"buildInlinePromptRenderModel");function yT(e,t,n,r){let i=Number.isFinite(r)?Math.max(1,Math.floor(r)):1,s=[...t,...n],a=Math.max(0,s.length-i),c=s.slice(a),l=e.flatMap(m=>m.rows),u=s.slice(0,a).filter(m=>m.spinner!==!0);return{committedSections:[...l,...u].map((m,h)=>({key:`il-${h}`,rows:[{...m,key:`il-${h}`}]})),liveRows:c}}o(yT,"splitInlineLedgerModel");function l_(e){return e.replace(/^(You|Assistant|Tools|System) \[\d{1,2}:\d{2}[^\]]*\]$/u,"$1")}o(l_,"stripHeaderTimestamp");function ST(e){let t=5381;for(let n of e.rows){let r=l_(n.text);for(let i=0;i<n.key.length;i++)t=(t<<5)+t+n.key.charCodeAt(i)|0;t=(t<<5)+t+0|0;for(let i=0;i<r.length;i++)t=(t<<5)+t+r.charCodeAt(i)|0;t=(t<<5)+t+1|0}return{key:e.key,fingerprint:`${t>>>0}`}}o(ST,"identifyInlineCommitSection");function ed(e){let t=Qu({items:e.items,viewportWidth:e.viewportWidth,maxLines:e.maxLines,showDetailedTools:e.showDetailedTools,showAllContent:e.showAllContent,showFullThinking:e.showFullThinking,windowed:e.windowed}),{items:n,...r}=e,i=Ju({...r,activeItems:t.activeItems});return Zu(t,i)}o(ed,"buildTranscriptRenderModel");function Ho(e){return e.flatMap(t=>t.rows)}o(Ho,"flattenTranscriptSections");function wT(e){let t=5381;for(let n of e.rows){let r=`${n.key}\0${n.text}`;for(let i=0;i<r.length;i++)t=Math.imul(t,33)+r.charCodeAt(i)|0}return{key:e.key,fingerprint:`${e.rows.length}:${(t>>>0).toString(36)}`}}o(wT,"identifyTranscriptSection");function Rm(e){let t=[...e.staticSections,...e.sections];return{staticSections:[],sections:t,rows:Ho(t),previewSections:[...e.previewSections],previewRows:Ho(e.previewSections)}}o(Rm,"materializeTranscriptRenderModel");function TT(e,t={}){let{start:n,end:r,viewportTop:i,viewportHeight:s,viewportRows:a,scrollOffset:c=0,windowed:l=!1}=t;if(typeof i=="number"&&typeof s=="number"){let u=Math.max(0,i),f=Math.max(u,i+Math.max(0,s));return e.slice(u,f)}return typeof n=="number"&&typeof r=="number"?e.slice(Math.max(0,n),Math.max(0,r)):l?Mm(e,a,c):e}o(TT,"resolveVisibleTranscriptRows");var u_=200,d_=50,Em=30;function CT(e,t,n=u_,r=d_){let i=t.current,s=i?e.findIndex(l=>l.id===i.id):-1,a=s>=0?s:i?Math.min(i.idx,Math.max(0,e.length-n)):0;e.length-a>n+r&&(a=e.length-n);let c=e[a];return c&&(i?.id!==c.id||i.idx!==a)?t.current={id:c.id,idx:a}:!c&&i&&(t.current=null),a}o(CT,"computeTranscriptCapStart");function bT(e,t){if(t<=0||e.length===0)return[];let n=0,r=0;for(let i=e.length-1;i>=0;i--)if(e[i]?.type==="user"&&(n++,n>t)){r=i+1;break}return e.slice(r)}o(bT,"sliceHistoryToRecentRounds");function Mm(e,t,n=0){if(!t||t<=0)return e;let r=Math.max(0,n),i=Math.max(0,e.length-r),s=Math.max(0,i-t);return e.slice(s,i)}o(Mm,"getVisibleTranscriptRows");function IT(e,t,n){if(!t||!n||n<=0)return 0;let r=Ho(e),i=e.find(u=>u.key===t);if(!i||i.rows.length===0)return 0;let s=i.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)}o(IT,"resolveScrollOffsetForTranscriptItem");function kT(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]}}o(kT,"resolveTranscriptColor");var td="__transcript_hidden_divider__";function vT(e,t){let n=e===1?"message":"messages";return{id:td,type:"info",timestamp:t?Math.max(0,t-1):0,text:`${e} earlier ${n} hidden \u2014 press Ctrl+E to show all`,icon:"\u2191"}}o(vT,"buildTranscriptHiddenDivider");function Am(e){return e.id===td}o(Am,"isTranscriptHiddenDivider");var RT=new Gi(500);function f_(e){let t=nn(e),n=[],r=[],i=0,s=0;for(let a of t)n.push(i),r.push(s),i+=a.length,s+=bp(a);return{graphemes:t,codeUnitOffsets:n,visualOffsets:r,length:t.length,displayWidth:s}}o(f_,"buildTranscriptTextMetrics");function Ja(e){let t=RT.get(e);if(t)return t;let n=f_(e);return RT.set(e,n),n}o(Ja,"getTranscriptTextMetrics");function to(e){return Ja(e).length}o(to,"getTranscriptTextLength");function ET(e){return Ja(e).displayWidth}o(ET,"getTranscriptTextDisplayWidth");function nd(e,t){let n=Ja(e),r=Math.max(0,Math.min(n.length-1,t));return n.graphemes[r]??""}o(nd,"charAtTranscriptText");function ds(e,t,n){let r=Ja(e),i=Math.max(0,Math.min(r.length,Math.floor(t))),s=typeof n=="number"?Math.max(i,Math.min(r.length,Math.floor(n))):r.length;return r.graphemes.slice(i,s).join("")}o(ds,"sliceTranscriptText");function MT(e,t){let n=Ja(e),r=Math.max(0,Math.floor(t));if(r<=0||n.length===0)return 0;for(let i=0;i<n.length;i+=1){let s=n.visualOffsets[i]??0,a=i+1<n.length?n.visualOffsets[i+1]??n.displayWidth:n.displayWidth;if(r<a||r===s)return i}return n.length}o(MT,"resolveTranscriptTextIndexAtVisualColumn");function rd(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}o(rd,"formatTimestamp");function p_(e,t){let n=e.split(`
|
|
60
|
+
`),r=n.slice(0,t),i=n.length>t;return{lines:r,hasMore:i}}o(p_,"truncateLines");function m_(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"?"}}o(m_,"getToolStatusIcon");function h_(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}}o(h_,"getToolStatusColor");var g_=yn(({item:e,theme:t})=>{let n=sr(()=>Yu(e.text),[e.text]);return Ke(k,{flexDirection:"column",marginBottom:1,children:[Ke(k,{children:[ye(b,{color:t.colors.primary,bold:!0,children:"You"}),Ke(b,{dimColor:!0,children:[" [",rd(e.timestamp),"]"]})]}),ye(k,{marginLeft:2,children:ye(b,{color:t.colors.text,children:n})})]})}),x_=yn(({item:e,theme:t,maxLines:n})=>{let r=e.compactText??e.text,{lines:i,hasMore:s}=p_(r,n);return Ke(k,{flexDirection:"column",marginBottom:1,children:[Ke(k,{children:[ye(b,{color:t.colors.secondary,bold:!0,children:"Assistant"}),e.isStreaming&&Ke(_m,{children:[ye(b,{children:" "}),ye(_n,{color:t.colors.accent})]}),Ke(b,{dimColor:!0,children:[" [",rd(e.timestamp),"]"]})]}),Ke(k,{marginLeft:2,flexDirection:"column",children:[i.map((a,c)=>ye(b,{color:t.colors.text,children:a||" "},c)),s&&Ke(b,{dimColor:!0,children:["... (",r.split(`
|
|
61
|
+
`).length-n," more lines)"]})]})]})}),y_=yn(({item:e,theme:t})=>Ke(k,{flexDirection:"column",marginBottom:1,children:[Ke(k,{children:[ye(b,{color:t.colors.dim,bold:!0,children:"System"}),Ke(b,{dimColor:!0,children:[" [",rd(e.timestamp),"]"]})]}),ye(k,{marginLeft:2,children:ye(b,{dimColor:!0,children:e.text})})]})),S_=yn(({tool:e,count:t=1,theme:n})=>{let r=m_(e.status),i=h_(e.status,n);return Ke(k,{flexDirection:"column",marginLeft:2,children:[Ke(k,{children:[Ke(b,{color:i,children:[r," "]}),ye(b,{color:n.colors.text,bold:!0,children:Qa({tool:e,count:t})})]}),e.error&&ye(k,{marginLeft:2,children:ye(b,{color:n.colors.error,children:e.error})})]})}),w_=yn(({item:e,theme:t})=>{let n=zu(e.tools);return Ke(k,{flexDirection:"column",marginBottom:1,children:[Ke(k,{children:[ye(b,{color:t.colors.accent,bold:!0,children:"Tools"}),Ke(b,{dimColor:!0,children:[" [",rd(e.timestamp),"]"]})]}),n.map(r=>ye(S_,{tool:r.tool,count:r.count,theme:t},`${r.tool.id}-${r.count}`))]})}),T_=yn(({item:e,theme:t})=>Ke(k,{flexDirection:"column",marginBottom:1,children:[ye(k,{children:ye(b,{color:t.colors.thinking,italic:!0,children:"Thinking"})}),ye(k,{marginLeft:2,children:ye(b,{color:t.colors.thinking,italic:!0,children:e.compactText??e.text})})]})),C_=yn(({item:e,theme:t})=>Ke(k,{flexDirection:"column",marginBottom:1,children:[ye(k,{children:Ke(b,{color:t.colors.error,bold:!0,children:["\u2717"," Error"]})}),ye(k,{marginLeft:2,children:ye(b,{color:t.colors.error,children:e.text})})]})),b_=yn(({item:e,theme:t})=>ye(k,{flexDirection:"column",marginBottom:1,children:Ke(b,{color:t.colors.text,children:[ye(b,{color:t.colors.accent,bold:!0,children:e.icon??">"}),ye(b,{children:" "}),e.compactText??e.text]})})),I_=yn(({item:e,theme:t})=>ye(k,{flexDirection:"column",marginBottom:e.tightSpacing?0:1,children:Ke(b,{color:t.colors.info,children:[Ke(b,{bold:!0,children:[e.icon??"\u2139"," "]}),e.compactText??e.text]})})),k_=yn(({item:e,theme:t})=>Ke(k,{flexDirection:"column",marginBottom:1,children:[ye(k,{children:Ke(b,{color:t.colors.hint,bold:!0,children:["\u{1F4A1}"," Hint"]})}),ye(k,{marginLeft:2,children:ye(b,{dimColor:!0,children:e.text})})]})),v_=yn(({item:e,theme:t,maxLines:n=1e3})=>{let r=sr(()=>oe("dark"),[]),i=t??r;switch(e.type){case"user":return ye(g_,{item:e,theme:i});case"assistant":return ye(x_,{item:e,theme:i,maxLines:n});case"system":return ye(y_,{item:e,theme:i});case"tool_group":return ye(w_,{item:e,theme:i});case"thinking":return ye(T_,{item:e,theme:i});case"error":return ye(C_,{item:e,theme:i});case"event":return ye(b_,{item:e,theme:i});case"info":return ye(I_,{item:e,theme:i});case"hint":return ye(k_,{item:e,theme:i});default:return ye(k,{children:ye(b,{dimColor:!0,children:"Unknown item type"})})}});function R_(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 i=e.selectionRange,s=t.selectionRange;return i===s?!0:!i||!s?!1:i.start===s.start&&i.end===s.end}o(R_,"areTranscriptRowPropsEqual");var _T=yn(({row:e,theme:t,animateSpinners:n=!0,selectedItem:r=!1,selectionRange:i})=>{let s=kT(t,e.color),a=e.text===" "?"":e.text,c=a||" ",l=i&&a?ds(a,i.start,i.end):"",u=i&&a?ds(a,0,i.start):a,f=i&&a?ds(a,i.end):"",p=r&&!i,m=!p&&e.color==="dim",h={bold:e.bold||p,italic:e.italic,dimColor:m};return Ke(k,{marginLeft:e.indent??0,children:[e.spinner&&n&&Ke(_m,{children:[ye(_n,{color:t.colors.accent,theme:t}),ye(b,{children:" "})]}),ye(b,{color:p?t.colors.accent:s,...h,children:i&&a?Ke(_m,{children:[u?ye(b,{color:p?t.colors.accent:s,...h,children:u}):null,ye(b,{backgroundColor:t.colors.accent,color:t.colors.background,bold:!0,italic:e.italic,children:l}),f?ye(b,{color:p?t.colors.accent:s,...h,children:f}):null]}):c})]})},R_),Lm=yn(({section:e,theme:t,animateSpinners:n=!0})=>ye(k,{flexDirection:"column",children:e.rows.map(r=>ye(_T,{row:r,theme:t,animateSpinners:n},r.key))})),Wo=o(({items:e,isLoading:t=!1,maxLines:n=1e3,isThinking:r=!1,thinkingCharCount:i=0,thinkingContent:s="",streamingResponse:a="",currentTool:c,activeToolCalls:l,toolInputCharCount:u=0,toolInputContent:f="",iterationHistory:p=[],currentIteration:m=1,isCompacting:h=!1,agentMode:w,managedPhase:S,managedHarnessProfile:x,managedWorkerTitle:T,managedRound:M,managedMaxRounds:v,managedGlobalWorkBudget:P,managedBudgetUsage:O,managedBudgetApprovalRequired:_,lastLiveActivityLabel:C,liveStatusLines:j,viewportRows:ue,viewportWidth:ge,scrollOffset:de=0,animateSpinners:Y=!0,windowed:L=!1,showFullThinking:I=!1,showDetailedTools:le=!1,showAllContent:We=!1,showLiveProgressRows:K=!0,selectedItemId:z,expandedItemKeys:fe,onMetricsChange:J,onVisibleRowsChange:ce,rendererWindow:U,selectedTextRanges:Re,transcriptModel:Pe,visibleRowsOverride:be})=>{let De=sr(()=>oe("dark"),[]),{stdout:Oe}=rr(),ie=ge??Oe?.columns??80,gt=sr(()=>Pe??ed({items:e,viewportWidth:ie,isLoading:t,maxLines:n,isThinking:r,thinkingCharCount:i,thinkingContent:s,streamingResponse:a,currentTool:c,activeToolCalls:l,toolInputCharCount:u,toolInputContent:f,iterationHistory:p,currentIteration:m,isCompacting:h,managedAgentMode:w,managedPhase:S,managedHarnessProfile:x,managedWorkerTitle:T,managedRound:M,managedMaxRounds:v,managedGlobalWorkBudget:P,managedBudgetUsage:O,managedBudgetApprovalRequired:_,lastLiveActivityLabel:C,liveStatusLines:j,windowed:L,showFullThinking:I,showDetailedTools:le,showAllContent:We,showLiveProgressRows:K,expandedItemKeys:fe}),[Pe,e,ie,t,n,r,i,s,a,c,l,u,f,p,m,h,w,S,x,T,M,v,P,O,_,C,j,L,I,le,We,K,fe]),Pt=gt.staticSections,ee=gt.rows,xe=gt.previewRows,A=sr(()=>[...ee,...xe],[xe,ee]),D=!(A.length>0)&&e.length===0&&!t,pe=sr(()=>L||U||be?A:ee,[A,U,ee,be,L]),Le=sr(()=>be||TT(pe,{viewportTop:U?Math.max(0,U.viewportTop):void 0,viewportHeight:U?Math.max(0,U.viewportHeight):void 0,start:void 0,end:void 0,viewportRows:ue,scrollOffset:de,windowed:L}),[U,de,ue,be,L,pe]),Ye=sr(()=>be||L||U?Le:A,[A,U,Le,be,L]),Ee=sr(()=>A,[A]),Ie=U?Math.max(0,U.viewportHeight):ue;return AT(()=>{J?.({scrollHeight:A.length,viewportHeight:U?Math.max(0,U.viewportHeight):Ie??A.length})},[A.length,Ie,J,U]),AT(()=>{ce?.({rows:Ye,allRows:Ee})},[Ee,ce,Ye]),D?ye(k,{paddingY:1,children:ye(b,{dimColor:!0,children:"No messages yet. Start typing to begin."})}):Ke(k,{flexDirection:"column",children:[!L&&Pt.length>0&&ye(ts,{items:Pt,children:o(q=>ye(Lm,{section:q,theme:De,animateSpinners:Y},q.key),"children")}),Ye.map(q=>ye(_T,{row:q,theme:De,animateSpinners:Y,selectedItem:z?q.key.startsWith(`${z}-`):!1,selectionRange:Re?.get(q.key)},q.key))]})},"MessageList");var E_=o(({role:e,content:t})=>{let n=sr(()=>oe("dark"),[]),r={user:n.colors.primary,assistant:n.colors.secondary,system:n.colors.dim}[e];return Ke(k,{flexDirection:"column",marginBottom:1,children:[ye(b,{color:r,bold:!0,children:e==="user"?">":e==="assistant"?"<":"#"}),ye(b,{children:t})]})},"SimpleMessageDisplay");import{jsx as $m,jsxs as ad}from"react/jsx-runtime";import K_,{useMemo as Om}from"react";var M_="\u{1F504}",A_="\u2588",__="\u2592",L_="\u2192",P_=" \xB7 ";function $_(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()}}o($_,"formatReasoningModeShort");function O_(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??""}}o(O_,"formatReasoningCapabilityShort");function N_(e){switch(e){case"off":return"dim";case"quick":return"green";case"balanced":return"yellow";case"deep":return"magenta";default:return"cyan"}}o(N_,"getReasoningColor");function LT(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}o(LT,"formatTokenCount");function D_(e){let t=Math.min(10,Math.max(0,Math.round(e/10))),n=10-t;return`${A_.repeat(t)}${__.repeat(n)}`}o(D_,"createMiniProgressBar");function B_(e,t,n){if(t===0)return"green";let r=e/t*100,i=n*(2/3);return r>=n?"red":r>=i?"yellow":"green"}o(B_,"getContextColor");function H_(e){switch(e.toLowerCase()){case"plan":return"blue";case"accept-edits":return"green";case"auto":case"auto-in-project":return"warning";default:return"magenta"}}o(H_,"getPermissionModeColor");function W_(e,t){let n=ma(e);return!(e==="auto"||e==="auto-in-project")||!t?n:`${n}${t==="llm"?"[LLM]":"[RULES]"}`}o(W_,"buildPermissionModeText");function F_(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}o(F_,"formatToolAction");function U_(e){switch(e){case"H0_DIRECT":return"H0";case"H1_EXECUTE_EVAL":return"H1";case"H2_PLAN_EXECUTE_EVAL":return"H2";default:return e}}o(U_,"formatHarnessProfileShort");function od(e,t){return t&&t>0?`${e} (${t} chars)`:e}o(od,"formatThinkingStatus");function id(e,t,n){let r=F_(e);return n?`${r} (${n}...)`:t&&t>0?`${r} (${t} chars)`:r}o(id,"formatToolStatus");function Pm({activeToolCount:e,currentTool:t,isThinkingActive:n,thinkingCharCount:r,isCompacting:i,toolInputCharCount:s,toolInputContent:a,managedPhase:c,managedHarnessProfile:l,managedWorkerTitle:u,managedIdleWaiting:f,managedIdleWaitingPendingCount:p}){let m=e&&e>0?`${e} tool${e===1?"":"s"} running`:void 0;if(i)return"Compacting";if(c==="routing")return m?`Routing - ${m}`:t?`Routing - ${id(t,s,a)}`:n?od("Routing",r):"Routing";if(c==="preflight"){let h=u??"Scout";return m?`${h} - ${m}`:t?`${h} - ${id(t,s,a)}`:n?od(h,r):h}if(c==="verifying")return"Verifying";if(l){let w=`${U_(l)}${u?` - ${u}`:""}`;if(f===!0&&!m&&!t&&!n){let S=p??0,x=S>1?`waiting for ${S} children`:S===1?"waiting for 1 child":"idle - resuming";return`${w} - ${x}`}return m?`${w} - ${m}`:t?`${w} - ${id(t,s,a)}`:n?od(w,r):w}if(m)return m;if(t)return id(t,s,a);if(n)return od("Thinking",r)}o(Pm,"buildBusyStatusText");function j_({agentMode:e,managedPhase:t,managedHarnessProfile:n,managedRound:r,managedMaxRounds:i,managedGlobalWorkBudget:s,managedBudgetUsage:a,currentIteration:c,maxIter:l}){let u=[];return t==="routing"||t==="preflight"||(n&&r&&i&&r>1&&u.push({label:"Round",current:r,max:i}),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}o(j_,"resolveIterationSegments");function G_(e){if(e.length!==0)return`${M_} ${e.map(t=>`${t.label} ${t.current}/${t.max}`).join(P_)}`}o(G_,"formatLabeledIterationStatus");function V_(e){let{sessionId:t,permissionMode:n,agentMode:r,provider:i,model:s,tokenUsage:a,currentTool:c,activeToolCount:l,thinking:u,isThinkingActive:f,thinkingCharCount:p,reasoningMode:m=u?"auto":"off",reasoningCapability:h,isCompacting:w,toolInputCharCount:S,toolInputContent:x,currentIteration:T,maxIter:M,contextUsage:v,showBusyStatus:P=!0,managedPhase:O,managedHarnessProfile:_,managedWorkerTitle:C,managedRound:j,managedMaxRounds:ue,managedGlobalWorkBudget:ge,managedBudgetUsage:de,managedIdleWaiting:Y,managedIdleWaitingPendingCount:L}=e,I=[{id:"agent-mode",text:`KodaX - ${r.toUpperCase()}`,color:"primary",bold:!0},{id:"permission-mode",text:W_(n,e.autoModeEngine),color:H_(n)}],le=$_(m),We=O_(h);I.push({id:"reasoning-mode",text:h?`${le}/${We}`:le,color:N_(m)});let K=j_({agentMode:r,managedPhase:O,managedHarnessProfile:_,managedRound:j,managedMaxRounds:ue,managedGlobalWorkBudget:ge,managedBudgetUsage:de,currentIteration:T,maxIter:M}),z=G_(K);if(z){let J=Math.max(...K.map(U=>U.current/U.max)),ce="green";J>=.8?ce="red":J>=.5&&(ce="yellow"),I.push({id:"iteration-status",text:z,color:ce})}I.push({id:"session-id",text:t,color:"dim"});let fe=P?Pm({activeToolCount:l,currentTool:c,isThinkingActive:f,thinkingCharCount:p,isCompacting:w,toolInputCharCount:S,toolInputContent:x,managedPhase:O,managedHarnessProfile:_,managedWorkerTitle:C,managedIdleWaiting:Y,managedIdleWaitingPendingCount:L}):void 0;if(fe&&I.push({id:"busy-status",text:fe,color:"dim"}),I.push({id:"provider-model",text:`${i}/${s}`,color:"secondary"}),v&&v.contextWindow!==0){let J=Math.round(v.currentTokens/v.contextWindow*100),ce=LT(v.currentTokens),U=LT(v.contextWindow),Re=D_(J);I.push({id:"context-usage",text:`${ce}/${U} ${Re} ${J}%`,color:B_(v.currentTokens,v.contextWindow,v.triggerPercent)})}return a&&I.push({id:"token-usage",text:`${a.input}${L_}${a.output} (${a.total})`,color:"dim"}),I}o(V_,"buildStatusBarSegments");function sd(e){let t=V_(e);return{text:t.map(n=>n.text).join(" | "),segments:t}}o(sd,"buildStatusBarViewModel");function z_(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}}o(z_,"resolveViewModelSegmentColor");var fs=o(({viewModel:e,...t})=>{let n=Om(()=>oe("dark"),[]),r=Om(()=>e??sd(t),[t,e]);return $m(k,{paddingX:1,children:r.segments.map((i,s)=>ad(K_.Fragment,{children:[$m(b,{color:z_(i,n),bold:i.bold,children:i.text}),s<r.segments.length-1?$m(b,{dimColor:!0,children:" | "}):null]},i.id))})},"StatusBar"),X_=o(({permissionMode:e,provider:t,model:n})=>{let r=Om(()=>oe("dark"),[]);return ad(k,{children:[ad(b,{color:r.colors.primary,bold:!0,children:["[",e,"]"]}),ad(b,{dimColor:!0,children:[" ",t,"/",n]})]})},"SimpleStatusBar");import{jsx as no,jsxs as ud}from"react/jsx-runtime";import{useState as Nm,useCallback as cd,useMemo as PT}from"react";function ld(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}o(ld,"generateId");function Y_(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}}}o(Y_,"messageToHistoryItem");var q_=o(({model:e,provider:t,onSubmit:n,permissionMode:r="accept-edits",agentMode:i="ama"})=>{let{stdout:s}=rr(),a=PT(()=>oe("dark"),[]),[c,l]=Nm({messages:[],isLoading:!1,sessionId:ld()}),[u,f]=Nm(null),[p,m]=Nm(),h=cd(async T=>{if(!T.trim())return;let M={id:ld(),role:"user",content:T,timestamp:Date.now()};l(v=>({...v,messages:[...v.messages,M],isLoading:!0}));try{await n(T)}catch(v){let P={id:ld(),role:"system",content:`Error: ${v instanceof Error?v.message:"Unknown error"}`,timestamp:Date.now()};l(O=>({...O,messages:[...O.messages,P],isLoading:!1}))}finally{l(v=>({...v,isLoading:!1}))}},[n]),w=cd((T,M)=>{let v={id:ld(),role:T,content:M,timestamp:Date.now()};l(P=>({...P,messages:[...P.messages,v]}))},[]),S=cd((T,M)=>{f({input:T,output:M,total:T+M})},[]),x=cd(T=>{m(T)},[]);return ud(k,{flexDirection:"column",children:[no(k,{flexGrow:1,flexDirection:"column",overflow:"hidden",children:no(Wo,{items:c.messages.map(Y_),isLoading:c.isLoading})}),no(k,{flexShrink:0,children:no(ss,{onSubmit:o(T=>h(T.fullText),"onSubmit"),prompt:">",focus:!c.isLoading})}),no(k,{flexShrink:0,children:no(fs,{sessionId:c.sessionId,permissionMode:r,agentMode:i,provider:t,model:e,tokenUsage:u??void 0,currentTool:p})})]})},"App"),Q_=o(({model:e,provider:t,onInput:n})=>{let r=PT(()=>oe("dark"),[]);return ud(k,{flexDirection:"column",children:[ud(k,{marginBottom:1,children:[no(b,{color:r.colors.primary,bold:!0,children:"KodaX CLI"}),ud(b,{dimColor:!0,children:[" ","- ",t,"/",e]})]}),no(ss,{onSubmit:o(i=>n(i.fullText),"onSubmit"),placeholder:"Type a message...",prompt:">"})]})},"SimpleApp");import{jsx as J_}from"react/jsx-runtime";var Dm=o(({top:e,topRows:t=0,transcript:n,renderTranscriptWindow:r,footer:i,overlay:s,stickyHeader:a,jumpToLatest:c,width:l,scrollTop:u=0,scrollHeight:f=0,viewportHeight:p=0,stickyScroll:m=!0,scrollRef:h,onScrollTopChange:w,onStickyChange:S,onWindowChange:x,overscanRows:T})=>J_(im,{width:l,top:e,topRows:t,stickyHeader:a,jumpToLatest:c,scrollable:n,renderScrollableWindow:r,overlay:s,bottom:i,scrollTop:u,scrollHeight:f,viewportHeight:p,stickyScroll:m,scrollRef:h,onScrollTopChange:w,onStickyChange:S,onWindowChange:x,overscanRows:T}),"FullscreenTranscriptLayout");import{jsx as $T}from"react/jsx-runtime";function ps({copyMessage:e=!1,copyToolInput:t=!1,copyOnSelect:n=!1,toggleDetail:r=!1,selectionNavigation:i=!1,matchNavigation:s=!1,dismissAction:a}){let c=[];return i&&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}o(ps,"buildMessageActionsText");var Bm=o(({copyMessage:e=!1,copyToolInput:t=!1,copyOnSelect:n=!1,toggleDetail:r=!1,selectionNavigation:i=!1,matchNavigation:s=!1,dismissAction:a})=>{let c=oe("dark"),l=ps({copyMessage:e,copyToolInput:t,copyOnSelect:n,toggleDetail:r,selectionNavigation:i,matchNavigation:s,dismissAction:a});return l?$T(k,{paddingX:1,children:$T(b,{color:c.colors.dim,children:l})}):null},"MessageActions");import{jsx as OT}from"react/jsx-runtime";function Hm({itemSummary:e,itemKind:t,position:n,detailState:r="compact"}){if(!e||!n||n.total<=0)return;let i=r==="expanded"?"expanded":"compact",s=t?`${t}: `:"";return`Selected item ${n.current}/${n.total}: ${s}${e} | ${i}`}o(Hm,"buildMessageSelectorText");var Z_=o(({itemSummary:e,itemKind:t,position:n,detailState:r="compact"})=>{let i=oe("dark"),s=Hm({itemSummary:e,itemKind:t,position:n,detailState:r});return s?OT(k,{paddingX:1,children:OT(b,{color:i.colors.dim,children:s})}):null},"MessageSelector");import{jsx as ms,jsxs as eL}from"react/jsx-runtime";import{useMemo as NT}from"react";function dd(e,t){return Math.max(1,rn(e.length>0?e.split(`
|
|
62
|
+
`):[""],Math.max(1,t),0,0).visualLines.length)}o(dd,"countWrappedRows");var Wm=o(({browse:e,selection:t,search:n,chromeMode:r="inline",...i})=>{let s=r==="inline",a=t?.itemSummary,c=t?.position,l=t?.itemKind,u=t?.detailState??"compact",f=t?.copyCapabilities,p=f?.message??!1,m=f?.toolInput??!1,h=f?.copyOnSelect??!1,w=t?.toggleDetail??!1,S=t?.navigationCapabilities?.selection??!1,x=n?.statusText,T=n?.matches?.length??0,M=n?.surface,v=i.viewportWidth??80,P=Math.max(1,v-2),O=n?.query?.trim()?"close-search":a||p||m||w||S?"clear":void 0,_=Hm({itemSummary:a,itemKind:l,position:c,detailState:u}),C=NT(()=>ps({copyMessage:p,copyToolInput:m,copyOnSelect:h,toggleDetail:w,selectionNavigation:S,matchNavigation:!!x&&T>0,dismissAction:O}),[p,m,S,w,O,T,x,h]),j=NT(()=>{if(!s)return 0;let ge=0;return e?.hintText&&(ge+=dd(e.hintText,P)),_&&(ge+=dd(_,P)),C&&(ge+=dd(C,P)),x&&(ge+=dd(x,P)),M&&(ge+=1),ge},[C,e?.hintText,P,s,x,M,_]),ue=typeof i.viewportRows=="number"?Math.max(1,i.viewportRows-j):i.viewportRows;return eL(k,{flexDirection:"column",flexGrow:i.windowed?0:1,children:[s&&e?.hintText?ms(k,{paddingX:1,children:ms(b,{dimColor:!0,children:e.hintText})}):null,null,s&&(p||m||h||w||S||T>0)?ms(Bm,{copyMessage:p,copyToolInput:m,copyOnSelect:h,toggleDetail:w,selectionNavigation:S,matchNavigation:!!x&&T>0,dismissAction:O}):null,s&&x?ms(k,{paddingX:1,children:ms(b,{dimColor:!0,children:x})}):null,s?M:null,ms(Wo,{...i,viewportRows:ue})]})},"TranscriptViewport");import{jsx as DT}from"react/jsx-runtime";var Fm=o(e=>DT(k,{flexDirection:"column",children:DT(ss,{...e})}),"PromptComposer");import{jsx as Fo,jsxs as fd}from"react/jsx-runtime";import BT from"react";var HT=" \xB7 ",pd=o(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=oe("dark");return t.length===0?null:Fo(k,{flexGrow:1,children:t.map((r,i)=>fd(BT.Fragment,{children:[Fo(b,{color:r.accent?n.colors.accent:n.colors.dim,bold:r.accent,children:r.label}),i<t.length-1?Fo(b,{dimColor:!0,children:HT}):null]},r.id))})},"PromptFooterLeftSide"),md=o(({items:e=[]})=>{let t=e.filter(r=>r.label.trim().length>0),n=oe("dark");return t.length===0?null:Fo(k,{justifyContent:"flex-end",children:t.map((r,i)=>fd(BT.Fragment,{children:[Fo(b,{color:r.accent?n.colors.primary:n.colors.dim,bold:r.accent,children:r.label}),i<t.length-1?Fo(b,{dimColor:!0,children:HT}):null]},r.id))})},"PromptFooterRightSide"),hd=o(({left:e,right:t,queued:n,stashNotice:r,notifications:i,inlineNotices:s,activityBar:a,todoSurface:c,composer:l,inlineSuggestions:u,helpSurface:f,taskBar:p,statusLine:m,inlineDialogs:h})=>fd(k,{flexDirection:"column",children:[e||t?fd(k,{paddingX:1,children:[Fo(k,{flexGrow:1,children:e}),t]}):null,n,r,i,s,a,c,l,u,h,f,p,m]}),"PromptFooter");import{jsx as Um,jsxs as WT}from"react/jsx-runtime";var jm=o(({sections:e,title:t="Help"})=>{let n=oe("dark"),r=e.filter(i=>i.items.length>0);return r.length===0?null:WT(k,{flexDirection:"column",borderStyle:"round",borderColor:n.colors.accent,paddingX:1,marginTop:1,children:[Um(b,{color:n.colors.accent,bold:!0,children:t}),r.map(i=>WT(k,{flexDirection:"column",children:[Um(b,{color:n.colors.primary,bold:!0,children:i.title}),Um(b,{dimColor:!0,children:i.items.map(s=>s.label).join(" | ")})]},i.id))]})},"PromptHelpMenu");import{jsx as FT}from"react/jsx-runtime";import{createContext as jT,useContext as GT,useReducer as tL,useCallback as Ht,useMemo as nL}from"react";var rL=150;function xd(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}o(xd,"generateId");function gd(e){return{...e,id:xd(),timestamp:Date.now()}}o(gd,"createHistoryItem");function UT(e){if(e.length<=rL)return e;let t=0,n=0;for(let r=e.length-1;r>=0;r--)if(e[r]?.type==="user"&&(t++,t>50)){n=r;break}return n>0?e.slice(n):e}o(UT,"trimHistoryToRounds");function Gm(e,t){return e.filter(n=>n.type==="user"&&typeof n.id=="string"&&!t.has(n.id))}o(Gm,"selectUncommittedLedgerUserItems");function Vm(e){return{...e,id:xd(),startTime:Date.now()}}o(Vm,"createToolCall");function oL(e,t){switch(t.type){case"SET_STREAMING_STATE":return{...e,streamingState:t.payload};case"APPEND_TO_RESPONSE":return{...e,currentResponse:e.currentResponse+t.payload};case"CLEAR_RESPONSE":return{...e,currentResponse:""};case"ADD_HISTORY_ITEM":return{...e,history:UT([...e.history,t.payload])};case"BULK_ADD_HISTORY_ITEMS":return{...e,history:UT([...e.history,...t.payload])};case"UPDATE_HISTORY_ITEM":return{...e,history:e.history.map(n=>n.id===t.payload.id?{...n,...t.payload.updates}:n)};case"CLEAR_HISTORY":return{...e,history:[]};case"ADD_TOOL_CALL":return{...e,pendingToolCalls:[...e.pendingToolCalls,t.payload]};case"UPDATE_TOOL_CALL":return{...e,pendingToolCalls:e.pendingToolCalls.map(n=>n.id===t.payload.id?{...n,...t.payload.updates}:n)};case"CLEAR_TOOL_CALLS":return{...e,pendingToolCalls:[]};case"SET_SESSION_ID":return{...e,sessionId:t.payload};case"SET_PROVIDER":return{...e,provider:t.payload};case"SET_MODEL":return{...e,model:t.payload};case"SET_TOKEN_USAGE":return{...e,tokenUsage:t.payload};case"SET_ERROR":return{...e,error:t.payload};case"SET_LOADING":return{...e,isLoading:t.payload};case"RESET_STATE":return{...cm,sessionId:e.sessionId};default:return e}}o(oL,"uiReducer");var VT=jT(null),KT=jT(null);function yd({children:e,initialState:t}){let[n,r]=tL(oL,{...cm,...t}),i=Ht(_=>{r({type:"SET_STREAMING_STATE",payload:_})},[]),s=Ht(_=>{r({type:"APPEND_TO_RESPONSE",payload:_})},[]),a=Ht(()=>{r({type:"CLEAR_RESPONSE"})},[]),c=Ht(_=>{let C=gd(_);r({type:"ADD_HISTORY_ITEM",payload:C})},[]),l=Ht(_=>{_.length!==0&&r({type:"BULK_ADD_HISTORY_ITEMS",payload:_.map(gd)})},[]),u=Ht((_,C)=>{r({type:"UPDATE_HISTORY_ITEM",payload:{id:_,updates:C}})},[]),f=Ht(()=>{r({type:"CLEAR_HISTORY"})},[]),p=Ht(_=>{let C=Vm(_);return r({type:"ADD_TOOL_CALL",payload:C}),C.id},[]),m=Ht((_,C)=>{r({type:"UPDATE_TOOL_CALL",payload:{id:_,updates:C}})},[]),h=Ht(()=>{r({type:"CLEAR_TOOL_CALLS"})},[]),w=Ht(_=>{r({type:"SET_SESSION_ID",payload:_})},[]),S=Ht(_=>{r({type:"SET_MODE",payload:_})},[]),x=Ht(_=>{r({type:"SET_PROVIDER",payload:_})},[]),T=Ht(_=>{r({type:"SET_MODEL",payload:_})},[]),M=Ht(_=>{r({type:"SET_TOKEN_USAGE",payload:_})},[]),v=Ht(_=>{r({type:"SET_ERROR",payload:_})},[]),P=Ht(_=>{r({type:"SET_LOADING",payload:_})},[]),O=nL(()=>({setStreamingState:i,appendToResponse:s,clearResponse:a,addHistoryItem:c,addHistoryItems:l,updateHistoryItem:u,clearHistory:f,addToolCall:p,updateToolCall:m,clearToolCalls:h,setSessionId:w,setMode:S,setProvider:x,setModel:T,setTokenUsage:M,setError:v,setLoading:P}),[i,s,a,c,l,u,f,p,m,h,w,S,x,T,M,v,P]);return FT(VT.Provider,{value:n,children:FT(KT.Provider,{value:O,children:e})})}o(yd,"UIStateProvider");function Za(){let e=GT(VT);if(!e)throw new Error("useUIState must be used within a UIStateProvider");return e}o(Za,"useUIState");function ec(){let e=GT(KT);if(!e)throw new Error("useUIActions must be used within a UIStateProvider");return e}o(ec,"useUIActions");function zT(){let e=Za(),t=ec();return{state:e,actions:t}}o(zT,"useUI");function Km(){return oe()}o(Km,"useTheme");import{jsxs as ro,jsx as Sd,Fragment as iL}from"react/jsx-runtime";import{useMemo as sL}from"react";var aL=80,cL=7,lL={command:">",file:"\u{1F4C4}",history:"\u23F1",argument:"\u2022",snippet:"\u25C7",skill:"\u2605"};function uL(e,t,n){if(t<=n)return{start:0,end:t};let r=Math.floor(n/2),i=e-r,s=i+n;return i<0?(i=0,s=n):s>t&&(s=t,i=t-n),{start:i,end:s}}o(uL,"getVisibleRange");function dL({suggestion:e,isSelected:t,width:n}){let r=Km(),i=e.icon||e.type&&lL[e.type]||"",s=i?er(i)+1:0,a=er(e.displayText||e.text),c=e.description?er(e.description):0,l=Math.min(a,n-s-2),u=n-s-l-3,f=Math.max(0,u),p=Ra(e.displayText||e.text,l),m=e.description?Ra(e.description,f):"";return ro(k,{children:[i&&ro(b,{color:t?r.colors.accent:r.colors.dim,children:[i," "]}),Sd(b,{color:t?r.colors.primary:r.colors.text,bold:t,children:p}),m&&ro(iL,{children:[Sd(b,{children:" "}),Sd(b,{color:r.colors.dim,children:Ra(e.description||"",f)})]}),t&&ro(b,{color:r.colors.accent,children:[" ","\u25C0"]})]})}o(dL,"SuggestionItem");function wd({suggestions:e,selectedIndex:t,visible:n,maxVisible:r=cL,width:i=aL,showCount:s=!1}){let a=Km();if(!n||e.length===0)return null;let{start:c,end:l}=sL(()=>uL(t,e.length,r),[t,e.length,r]),u=e.slice(c,l);return ro(k,{flexDirection:"column",marginLeft:2,children:[c>0&&ro(b,{color:a.colors.dim,children:[" ","\u25B2 ",c," more..."]}),u.map((f,p)=>{let h=c+p===t;return Sd(dL,{suggestion:f,isSelected:h,width:i},f.id)}),l<e.length&&ro(b,{color:a.colors.dim,children:[" ","\u25BC ",e.length-l," more..."]}),s&&ro(b,{color:a.colors.dim,children:[t+1,"/",e.length]})]})}o(wd,"SuggestionsDisplay");import{jsx as hs,jsxs as fL}from"react/jsx-runtime";var zm=o(({reserveSpace:e,width:t,hidden:n=!1,mode:r="inline"})=>{let i=Do(),s=oe("dark");if(n)return null;if(!i)return e?hs(k,{height:8}):null;let{state:a,suggestions:c}=i;return a.visible&&c.length>0?r==="overlay"?fL(k,{flexDirection:"column",borderStyle:"round",borderColor:s.colors.accent,paddingX:1,marginTop:1,children:[hs(b,{color:s.colors.accent,bold:!0,children:"Suggestions"}),hs(wd,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-6)})]}):hs(k,{height:8,children:hs(wd,{suggestions:c,selectedIndex:a.selectedIndex,visible:a.visible,maxVisible:7,width:Math.max(20,t-2)})}):e?hs(k,{height:8}):null},"PromptSuggestionsSurface");import{jsxs as jn,jsx as Ln,Fragment as Xm}from"react/jsx-runtime";import pL,{useEffect as mL,useState as hL}from"react";var gs=15,XT=Math.max(1,gs-2),Ym=o(({confirm:e,request:t})=>e?jn(k,{flexDirection:"column",borderStyle:"round",borderColor:"yellow",paddingX:1,marginTop:1,width:"100%",children:[jn(b,{color:"yellow",bold:!0,children:[ne("dialog.confirm")," ",e.prompt]}),e.planContent?Ln(gL,{content:e.planContent}):null,e.instruction?Ln(b,{dimColor:!0,children:e.instruction}):null]}):t?jn(k,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,marginTop:1,width:"100%",children:[t.kind==="select"?jn(Xm,{children:[jn(b,{color:"cyan",bold:!0,children:[ne("dialog.select")," ",t.title]}),(()=>{let n=t.options??[],r=t.visibleSelectOptions??5,i=t.focusedIndex??0,s=n.length,a=0;if(s>r){let u=Math.floor(r/2);a=Math.max(0,Math.min(i-u,s-r))}let c=a,l=Math.max(0,s-a-r);return jn(Xm,{children:[c>0?Ln(b,{dimColor:!0,children:ne("select.more_above",{count:c})}):null,n.slice(a,a+r).map((u,f)=>{let p=a+f,m=p===i,h=t.selectedIndices?.includes(p)??!1,w=m?"\u276F ":" ",S=h?" \u2713":"",x=u.description?` - ${u.description}`:"";return Ln(b,{color:m?"cyan":void 0,dimColor:!m,children:`${w}${u.label}${x}${S}`},`${u.value}-${p}`)}),l>0?Ln(b,{dimColor:!0,children:ne("select.more_below",{count:l})}):null]})})(),Ln(b,{dimColor:!0,children:t.multiSelect?ne("select.multiselect_hint"):ne("select.navigate_hint")})]}):jn(Xm,{children:[jn(b,{color:"cyan",bold:!0,children:[ne("dialog.input")," ",t.prompt]}),t.defaultValue!==void 0?Ln(b,{dimColor:!0,children:`${ne("input.default")} ${t.defaultValue}`}):null,Ln(b,{dimColor:!0,children:`${ne("input.value")} ${t.buffer||ne("input.type_response")}`}),Ln(b,{dimColor:!0,children:ne("select.confirm_hint")})]}),t.error?Ln(b,{color:"red",children:t.error}):null]}):null,"DialogSurface"),gL=o(({content:e})=>{let t=pL.useMemo(()=>e.split(`
|
|
63
|
+
`),[e]),n=t.length,r=n>gs,[i,s]=hL(0);mL(()=>{s(u=>{let f=Math.max(0,n-gs);return u>f?f:u})},[n]),Au((u,f)=>{if(!r)return;let p=Math.max(0,n-gs);f.upArrow?s(m=>Math.max(0,m-1)):f.downArrow?s(m=>Math.min(p,m+1)):f.pageUp?s(m=>Math.max(0,m-XT)):f.pageDown&&s(m=>Math.min(p,m+XT))},{isActive:!0});let a=t.slice(i,i+gs),c=i,l=Math.max(0,n-i-gs);return jn(k,{flexDirection:"column",marginTop:1,children:[r&&c>0?jn(b,{dimColor:!0,children:["\u2026 ",c," more line",c===1?"":"s"," above"]}):null,a.map((u,f)=>Ln(b,{children:u},`plan-line-${i+f}`)),r&&l>0?jn(b,{dimColor:!0,children:["\u2026 ",l," more line",l===1?"":"s"," below"]}):null,r?Ln(b,{dimColor:!0,children:"PgUp/PgDn/\u2191\u2193 to scroll"}):null]})},"PlanScrollPanel");import{jsxs as tc,jsx as xL}from"react/jsx-runtime";function YT(e){let t=e.replace(/\s+/g," ").trim();return t.length<=72?t:`${t.slice(0,69)}...`}o(YT,"normalizePendingPreview");function qT(e){if(e.length===0)return;let t=YT(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)`}o(qT,"formatPendingInputsSummary");function qm(e){if(e.length===0)return[];let t=e.length;return e.map((n,r)=>({index:r+1,total:t,preview:YT(n)}))}o(qm,"formatPendingInputsLines");function QT(e){let t=qm(e);return t.length===0?void 0:[...t.map(i=>`\u23F3 [${i.index}/${i.total}] ${i.preview}`)," \u2191 pull all into editor \xB7 Esc drops latest"].join(`
|
|
64
|
+
`)}o(QT,"formatPendingInputsBudgetText");var Qm=o(({pendingInputs:e})=>{let t=qm(e);if(t.length===0)return null;let n=oe("dark");return tc(k,{flexDirection:"column",children:[t.map(r=>tc(k,{children:[tc(b,{color:n.colors.hint,children:["\u23F3"," "]}),tc(b,{color:n.colors.dim,children:["[",r.index,"/",r.total,"] ",r.preview]})]},r.index)),xL(k,{children:tc(b,{color:n.colors.dim,children:[" ","\u2191 pull all into editor \xB7 Esc drops latest"]})})]})},"QueuedCommandsSurface");import{jsx as JT}from"react/jsx-runtime";function yL(e,t){switch(e){case"warning":return t.warning;case"accent":return t.accent;default:return t.dim}}o(yL,"resolveNotificationColor");var Td=o(({notifications:e})=>{let t=e.filter(r=>r.text.trim().length>0),n=oe("dark");return t.length===0?null:JT(k,{flexDirection:"column",paddingX:1,children:t.map(r=>JT(b,{color:yL(r.tone,n.colors),children:r.text},r.id))})},"NotificationsSurface");import{jsx as ZT}from"react/jsx-runtime";var Jm=o(({notices:e})=>{let t=e.filter(r=>r.trim().length>0);if(t.length===0)return null;let n=oe("dark");return ZT(k,{flexDirection:"column",paddingX:1,children:t.map((r,i)=>ZT(b,{color:n.colors.dim,children:r},`${r}-${i}`))})},"StatusNoticesSurface");import{jsxs as eC,jsx as SL}from"react/jsx-runtime";var Cd=o(({text:e})=>{let t=e?.trim();if(!t)return null;let n=oe("dark");return eC(k,{paddingX:1,children:[eC(b,{color:n.colors.hint,children:["\u22EF"," "]}),SL(b,{color:n.colors.dim,children:t})]})},"StashNotice");import{jsx as Uo,jsxs as wL}from"react/jsx-runtime";function tC({text:e,accent:t=!1,selected:n=!1}){let r=oe("dark");return Uo(k,{marginRight:1,children:Uo(b,{color:t?r.colors.accent:r.colors.primary,bold:n||t,children:`[ ${e} ]`})})}o(tC,"Pill");var bd=o(({items:e,overflowLabel:t,ctaHint:n,showSpinner:r=!1})=>{let i=e.filter(s=>s.label.trim().length>0);return i.length===0&&!t&&!n&&!r?null:wL(k,{flexDirection:"row",paddingX:1,children:[r?Uo(k,{marginRight:1,children:Uo(_n,{})}):null,i.map(s=>Uo(tC,{text:s.hint?`${s.label} (${s.hint})`:s.label,accent:s.accent,selected:s.selected},s.id)),t?Uo(tC,{text:t}):null,n?Uo(b,{dimColor:!0,children:n}):null]})},"BackgroundTaskBar");import nC,{createContext as oC,useContext as iC,useReducer as TL,useCallback as qe,useRef as CL,useEffect as rC}from"react";function bL(e){return e.agentId===void 0&&e.priority==="user"&&e.mode==="prompt"}o(bL,"isMainThreadPrompt");function th(){return In().getSnapshot().filter(bL)}o(th,"getMainThreadPrompts");function Zm(){return th().map(e=>e.content)}o(Zm,"getMainThreadPromptContents");var eh={state:gn.Idle,currentResponse:"",error:void 0,abortController:void 0,isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentTool:void 0,toolInputCharCount:0,toolInputContent:"",iterationHistory:[],currentIteration:1,maxIter:200,isCompacting:!1,pendingInputs:[],roundStartedAt:null};function nh(){let e={...eh,pendingInputs:Zm()},t=new Set,n="",r="",i=0,s=null,a=!1,c=80,l=o(()=>{for(let w of t)w(e)},"notify"),u=o(()=>{let w=Zm();if(w.length===e.pendingInputs.length){let S=!0;for(let x=0;x<w.length;x++)if(w[x]!==e.pendingInputs[x]){S=!1;break}if(S)return}e={...e,pendingInputs:w},l()},"syncReactStateFromQueue"),f=In().subscribe(()=>{u()}),p=o(()=>In().dequeue({maxPriority:"user",mode:"prompt"}).map(S=>S.content),"drainOurSlice"),m=o(()=>{if(s&&(clearTimeout(s),s=null),n||r||i>0){let S=e.thinkingContent+r,x=r?S.length:e.thinkingCharCount+i;e={...e,currentResponse:e.currentResponse+n,thinkingContent:S,thinkingCharCount:x,...r||i>0?{isThinking:!0}:{}},n="",r="",i=0,l()}},"flushPendingUpdates"),h=o(()=>{s||(s=setTimeout(m,c))},"scheduleFlush");return{getState:o(()=>e,"getState"),setState:o(w=>{m(),e={...e,state:w},l()},"setState"),startStreaming:o(()=>{a=!1,n="",r="",i=0,s&&(clearTimeout(s),s=null),e={...e,state:gn.Responding,currentResponse:"",abortController:new AbortController,error:void 0,roundStartedAt:Date.now()},l()},"startStreaming"),stopStreaming:o(()=>{m(),e={...e,state:gn.Idle,abortController:void 0,roundStartedAt:null},l()},"stopStreaming"),appendResponse:o(w=>{a||(n+=w,h())},"appendResponse"),clearResponse:o(()=>{m(),e={...e,currentResponse:""},l()},"clearResponse"),setError:o(w=>{m(),e={...e,error:w,state:w?gn.Idle:e.state},l()},"setError"),abort:o(w=>{a=!0,m(),e.abortController?.abort(),n="",r="",i=0,s&&(clearTimeout(s),s=null),w?.preservePendingInputs||p(),e={...e,state:gn.Idle,abortController:void 0,roundStartedAt:null},l()},"abort"),reset:o(()=>{a=!0,m(),e.abortController?.abort(),n="",r="",i=0,s&&(clearTimeout(s),s=null),p(),e={...eh,pendingInputs:Zm()},a=!1,l()},"reset"),isStreaming:o(()=>e.state===gn.Responding||e.state===gn.WaitingForConfirmation,"isStreaming"),subscribe:o(w=>(t.add(w),()=>{t.delete(w)}),"subscribe"),startThinking:o(()=>{m(),e={...e,isThinking:!0,thinkingCharCount:0,thinkingContent:""},l()},"startThinking"),appendThinkingChars:o(w=>{a||(i+=w,h())},"appendThinkingChars"),appendThinkingContent:o(w=>{a||(r+=w,h())},"appendThinkingContent"),stopThinking:o(()=>{m(),e={...e,isThinking:!1,thinkingCharCount:0},l()},"stopThinking"),clearThinkingContent:o(()=>{m(),e={...e,isThinking:!1,thinkingCharCount:0,thinkingContent:""},l()},"clearThinkingContent"),setCurrentTool:o(w=>{m(),e={...e,currentTool:w,toolInputCharCount:0,toolInputContent:""},l()},"setCurrentTool"),appendToolInputChars:o(w=>{e={...e,toolInputCharCount:e.toolInputCharCount+w},l()},"appendToolInputChars"),appendToolInputContent:o(w=>{e.toolInputContent.length<240&&(e={...e,toolInputContent:(e.toolInputContent+w).slice(0,240)},l())},"appendToolInputContent"),clearToolInputContent:o(()=>{e={...e,toolInputContent:""},l()},"clearToolInputContent"),getSignal:o(()=>e.abortController?.signal,"getSignal"),getFullResponse:o(()=>e.currentResponse+n,"getFullResponse"),getThinkingContent:o(()=>e.thinkingContent+r,"getThinkingContent"),startNewIteration:o(w=>{m(),e.thinkingContent||e.currentResponse?e={...e,thinkingContent:"",thinkingCharCount:0,currentResponse:"",isThinking:!1,currentTool:void 0,toolInputCharCount:0,toolInputContent:"",currentIteration:w}:e={...e,currentIteration:w},l()},"startNewIteration"),clearIterationHistory:o(()=>{m(),e={...e,iterationHistory:[],currentIteration:1,maxIter:eh.maxIter,thinkingContent:"",thinkingCharCount:0,currentResponse:"",currentTool:void 0,toolInputCharCount:0,toolInputContent:""},l()},"clearIterationHistory"),setMaxIter:o(w=>{m(),e={...e,maxIter:w},l()},"setMaxIter"),startCompacting:o(()=>{m(),e={...e,isCompacting:!0},l()},"startCompacting"),stopCompacting:o(()=>{m(),e={...e,isCompacting:!1},l()},"stopCompacting"),addPendingInput:o(w=>{let S=w.trim();S&&(th().length>=5||(m(),In().enqueue({priority:"user",mode:"prompt",content:S})))},"addPendingInput"),removeLastPendingInput:o(()=>{let w=th(),S=w[w.length-1];S&&(m(),In().dequeue({maxPriority:"user",mode:"prompt",id:S.id}))},"removeLastPendingInput"),shiftPendingInput:o(()=>(m(),In().dequeue({maxPriority:"user",mode:"prompt",limit:1})[0]?.content),"shiftPendingInput"),clearPendingInputs:o(()=>{m(),p()},"clearPendingInputs"),consumePendingInputs:o(()=>(m(),p()),"consumePendingInputs"),dispose:o(()=>{f()},"dispose")}}o(nh,"createStreamingManager");var sC=oC(null),aC=oC(null);function Id({children:e,onStateChange:t}){let n=CL(nh()),[,r]=TL(z=>z+1,0);rC(()=>n.current.subscribe(fe=>{r(),t?.(fe)}),[t]),rC(()=>{let z=n.current;return()=>{z.dispose()}},[]);let i=qe(()=>{n.current.startStreaming()},[]),s=qe(()=>{n.current.stopStreaming()},[]),a=qe(z=>{n.current.appendResponse(z)},[]),c=qe(()=>{n.current.clearResponse()},[]),l=qe(z=>{n.current.setError(z)},[]),u=qe(z=>{n.current.abort(z)},[]),f=qe(()=>{n.current.reset()},[]),p=qe(()=>{n.current.startThinking()},[]),m=qe(z=>{n.current.appendThinkingChars(z)},[]),h=qe(z=>{n.current.appendThinkingContent(z)},[]),w=qe(()=>{n.current.stopThinking()},[]),S=qe(()=>{n.current.clearThinkingContent()},[]),x=qe(z=>{n.current.setCurrentTool(z)},[]),T=qe(z=>{n.current.appendToolInputChars(z)},[]),M=qe(z=>{n.current.appendToolInputContent(z)},[]),v=qe(()=>{n.current.clearToolInputContent()},[]),P=qe(()=>n.current.getSignal(),[]),O=qe(()=>n.current.getFullResponse(),[]),_=qe(()=>n.current.getThinkingContent(),[]),C=qe(z=>{n.current.startNewIteration(z)},[]),j=qe(()=>{n.current.clearIterationHistory()},[]),ue=qe(z=>{n.current.setMaxIter(z)},[]),ge=qe(()=>{n.current.startCompacting()},[]),de=qe(()=>{n.current.stopCompacting()},[]),Y=qe(z=>{n.current.addPendingInput(z)},[]),L=qe(()=>{n.current.removeLastPendingInput()},[]),I=qe(()=>n.current.shiftPendingInput(),[]),le=qe(()=>{n.current.clearPendingInputs()},[]),We=qe(()=>n.current.consumePendingInputs(),[]),K={startStreaming:i,stopStreaming:s,appendResponse:a,clearResponse:c,setError:l,abort:u,reset:f,startThinking:p,appendThinkingChars:m,appendThinkingContent:h,stopThinking:w,clearThinkingContent:S,setCurrentTool:x,appendToolInputChars:T,appendToolInputContent:M,clearToolInputContent:v,getSignal:P,getFullResponse:O,getThinkingContent:_,startNewIteration:C,clearIterationHistory:j,setMaxIter:ue,startCompacting:ge,stopCompacting:de,addPendingInput:Y,removeLastPendingInput:L,shiftPendingInput:I,clearPendingInputs:le,consumePendingInputs:We};return nC.createElement(sC.Provider,{value:n.current.getState()},nC.createElement(aC.Provider,{value:K},e))}o(Id,"StreamingProvider");function rc(){let e=iC(sC);if(!e)throw new Error("useStreamingState must be used within a StreamingProvider");return e}o(rc,"useStreamingState");function oc(){let e=iC(aC);if(!e)throw new Error("useStreamingActions must be used within a StreamingProvider");return e}o(oc,"useStreamingActions");function cC(){let e=rc(),t=oc(),n=e.state===gn.Responding||e.state===gn.WaitingForConfirmation;return{state:e,actions:t,isStreaming:n}}o(cC,"useStreaming");import{useCallback as IL,useRef as kL}from"react";var vL=500;function RL(e={}){let{onKey:t,onEsc:n,onCtrlC:r,enabled:i=!0}=e,s=kL(0),{exit:a}=Jr(),c=IL(l=>{if(!i)return!1;if(l.name==="escape"){let u=Date.now(),f=u-s.current<vL;return s.current=u,f&&(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)},[i,a,r,n,t]);return xn(c,{isActive:i}),{lastEscTime:s.current}}o(RL,"useKeypress");function EL(e){return{is:o((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:o(t=>e.ctrl&&e.name===t,"isCtrl"),isShift:o(t=>e.shift&&e.name===t,"isShift"),isArrow:o(()=>["up","down","left","right"].includes(e.name),"isArrow"),isChar:o(()=>e.sequence?.length===1&&!e.ctrl&&!e.meta,"isChar"),getChar:o(()=>e.sequence?.length===1?e.sequence:null,"getChar")}}o(EL,"createKeyMatcher");import{useCallback as ML,useSyncExternalStore as AL}from"react";function _L(e){return e.agentId===void 0&&e.priority==="user"&&e.mode==="prompt"}o(_L,"isMainThreadPrompt");var rh=null,kd=Object.freeze([]);function lC(){let e=In().getSnapshot();return e===rh||(rh=e,kd=Object.freeze(e.filter(_L))),kd}o(lC,"getQueueSliceSnapshot");function uC(){let e=ML(t=>In().subscribe(t),[]);return AL(e,lC,lC)}o(uC,"useQueuedPrompts");function LL(){return uC().map(t=>t.content)}o(LL,"useQueuedPromptContents");function PL(){rh=null,kd=Object.freeze([])}o(PL,"_resetQueuedPromptsCacheForTests");async function ic(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??sc(),title:"",gitRoot:e.gitRoot,runtimeInfo:e.runtimeInfo,createdAt:new Date().toISOString(),lastAccessed:new Date().toISOString()}}o(ic,"createInteractiveContext");function sc(){let e=new Date,t=e.toISOString().split("T")[0].replace(/-/g,""),n=e.toTimeString().split(" ")[0].replace(/:/g,"");return`${t}_${n}`}o(sc,"generateSessionId");function ar(e){e.lastAccessed=new Date().toISOString()}o(ar,"touchContext");async function ac(e){let t=await fy({userKodaxDir:ny(),projectRoot:e.projectRoot}),n;return{getGuardrail:o(()=>n||(n=py({rules:t.merged,claudeMd:ry(e.getAgentsFiles()),getToolProjection:o(i=>(Dl(i)??iy(i))?.toClassifierInput,"getToolProjection"),resolveProvider:o(i=>{try{return ua(i)}catch{return}},"resolveProvider"),defaultProvider:e.getCurrentProviderName(),defaultModel:e.getCurrentModel()??"",getDefaultProvider:e.getCurrentProviderName,getDefaultModel:o(()=>{let i=e.getCurrentModel();return i||(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}}o(ac,"bootstrapAutoMode");var xs=class{static{o(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,tag:n.tag??r?.tag,lineage:kn(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 i=this.sessions.get(t);if(!i?.lineage)return null;let s=vi(i.lineage,n,r);if(!s)return null;let a={...structuredClone(i),messages:At(s),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async setLabel(t,n,r){let i=this.sessions.get(t);if(!i?.lineage)return null;let s=Ri(i.lineage,n,r);if(!s)return null;let a={...structuredClone(i),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async fork(t,n,r){let i=this.sessions.get(t);if(!i?.lineage)return null;let s=Ai(i.lineage,n);if(!s)return null;let a=r?.sessionId??await ki(),c={messages:At(s),title:r?.title??i.title,gitRoot:i.gitRoot,tag:i.tag,uiHistory:i.uiHistory?i.uiHistory.map(l=>({...l})):void 0,extensionState:i.extensionState?structuredClone(i.extensionState):void 0,artifactLedger:i.artifactLedger?structuredClone(i.artifactLedger):void 0,extensionRecords:i.extensionRecords?structuredClone(i.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 i=n??Ei(r.lineage);if(!i)return null;let s=Mi(r.lineage,i);if(!s)return null;let a={...r,messages:At(s),lineage:s};return this.sessions.set(t,a),structuredClone(a)}async list(t){return Array.from(this.sessions.entries()).filter(([,n])=>(n.scope??"user")==="user").map(([n,r])=>({id:n,title:r.title,msgCount:r.lineage?Io(r.lineage):r.messages.length,...r.tag!==void 0?{tag:r.tag}:{}}))}async delete(t){this.sessions.delete(t)}async deleteAll(t){this.sessions.clear()}};function $L(){return new xs}o($L,"createMemorySessionStorage");import*as dC from"child_process";import*as fC from"util";import vd from"chalk";var OL=fC.promisify(dC.exec),NL={maxBuffer:1024*1024,timeout:3e4,maxOutputLength:8e3,maxErrorLength:4e3};async function Rd(e,t={}){let n={...NL,...t},r=e.trim(),i=gy(r);if(i)return i.startsWith("[Blocked]")&&(console.log(vd.yellow(`
|
|
65
|
+
${i}`)),console.log()),i;try{console.log(vd.dim(`
|
|
66
|
+
[Executing: ${r}]`));let{stdout:s,stderr:a}=await OL(r,{cwd:n.cwd,maxBuffer:n.maxBuffer,timeout:n.timeout,windowsHide:!0}),c="";return s&&(c+=s),a&&(c+=(c?`
|
|
67
|
+
`:"")+`[stderr] ${a}`),c.length>n.maxOutputLength&&(c=c.slice(0,n.maxOutputLength)+`
|
|
68
|
+
...[output truncated]`),console.log(vd.dim(c||"[No output]")),console.log(),`[Shell command executed: ${r}]
|
|
69
|
+
|
|
70
|
+
Output:
|
|
71
|
+
${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)+`
|
|
72
|
+
...[error truncated]`),console.log(vd.red(`
|
|
73
|
+
[Shell Error: ${c}]`)),console.log(),`[Shell command failed: ${r}]
|
|
74
|
+
|
|
75
|
+
Error: ${c}`}}o(Rd,"executeShellCommand");async function oh(e,t={}){if(e.startsWith("!")){let n=e.slice(1).trim();return Rd(n,t)}return e}o(oh,"processSpecialSyntax");function DL(e){return e.trim().startsWith("!")}o(DL,"isShellCommand");function BL(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell:")}o(BL,"isShellCommandSuccess");function cc(e){return e.startsWith("[Shell command executed:")||e.startsWith("[Shell command failed:")||e.startsWith("[Shell:")||e.startsWith("[Blocked]")}o(cc,"isShellCommandHandled");function Ed(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}`}}o(Ed,"createRetryHistoryItem");function ih(e,t,n,r){e(Ed(t,n,r))}o(ih,"emitRetryHistoryItem");function Md(e){let{recoveryAction:t,attempt:n,maxAttempts:r,delayMs:i,stage:s,fallbackUsed:a}=e,c=Math.round(i/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}`}}o(Md,"createRecoveryHistoryItem");function sh(e,t){e(Md(t))}o(sh,"emitRecoveryHistoryItem");import{jsx as se,jsxs as Zt,Fragment as gI}from"react/jsx-runtime";import sI,{useState as Ge,useCallback as X,useRef as Se,useEffect as He,useMemo as me}from"react";import{jsx as cr,Fragment as HL,jsxs as Ad}from"react/jsx-runtime";var ah=" | ",pC=o(({searchActive:e=!1,selectionActive:t=!1,showAllActive:n=!1,searchQuery:r="",searchCurrent:i=0,searchCount:s=0,searchDetailText:a,pendingLiveUpdates:c=0,secondaryText:l,noticeText:u})=>{let f=oe("dark"),p=r.trim(),m=a?.trim(),h=l?.trim(),w=u?.trim(),S=e?p?`Search /${p}`:"Search":"Transcript",x=e?`Enter jump | n/N next/prev | Ctrl+E ${n?"collapse":"show all"} | Esc close | Ctrl+O/q back`:t?`PgUp/PgDn page | j/k scroll | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | Esc clear focus | Ctrl+O/q back`:`PgUp/PgDn page | j/k scroll | \u2190/\u2192 select | / search | n/N matches | Ctrl+E ${n?"collapse":"show all"} | s dump | Ctrl+O/q/Esc back`,T=c>0?c===1?"1 new update":`${c} new updates`:void 0,M=e&&s>0?`${Math.max(0,i)}/${s}`:void 0,v=e&&m||h,P=!!(v||w);return Ad(k,{flexDirection:"column",children:[Ad(k,{paddingX:1,children:[cr(b,{color:f.colors.dim,children:S}),cr(b,{dimColor:!0,children:ah}),cr(b,{color:f.colors.dim,children:x}),M||T?cr(k,{flexGrow:1}):null,M?Ad(HL,{children:[cr(b,{dimColor:!0,children:M}),T?cr(b,{dimColor:!0,children:ah}):null]}):null,T?cr(b,{color:f.colors.accent,bold:!0,children:T}):null]}),P?Ad(k,{paddingX:1,children:[v?cr(b,{color:f.colors.dim,children:v}):null,v&&w?cr(b,{dimColor:!0,children:ah}):null,w?cr(b,{color:f.colors.accent,bold:!0,children:w}):null]}):null]})},"TranscriptModeFooter");import{jsx as WL,jsxs as FL}from"react/jsx-runtime";var mC=o(({banner:e,...t})=>FL(k,{flexDirection:"column",children:[e,WL(Wo,{...t,animateSpinners:!1,showFullThinking:!1,showDetailedTools:!1,showLiveProgressRows:!1})]}),"PromptTranscriptSurface");import{jsx as UL,jsxs as jL}from"react/jsx-runtime";var hC=o(({banner:e,windowed:t=!1,showDetailedTools:n=!1,showAllContent:r=!1,...i})=>jL(k,{flexDirection:"column",children:[e,UL(Wm,{...i,chromeMode:"hidden",windowed:t,showFullThinking:!0,showDetailedTools:n,showAllContent:r,showLiveProgressRows:!0})]}),"TranscriptModeSurface");import{jsxs as GL,jsx as VL}from"react/jsx-runtime";var gC=o(({text:e,tone:t="success"})=>{let n=e?.trim();if(!n)return null;let r=oe("dark"),i=t==="warning"?r.colors.warning:r.colors.accent,s=t==="warning"?"!":"\u2713";return VL(k,{paddingX:1,backgroundColor:r.colors.inputBackground,children:GL(b,{color:i,children:[s," ",n]})})},"ClipboardToastSurface");import{jsx as oo,Fragment as KL,jsxs as ch}from"react/jsx-runtime";var zL=" \u23BF ";function XL(e){let t=oe("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}}o(XL,"resolveSymbolColor");var YL=o(({row:e})=>{let t=XL(e.symbolColor),n=e.kind!=="item";return ch(k,{flexDirection:"row",children:[oo(b,{color:t,bold:e.isActive,children:e.symbol}),oo(b,{children:" "}),oo(b,{dimColor:n,bold:e.isActive,strikethrough:e.isStrikethrough,children:e.text}),e.evaluatorBadge?ch(KL,{children:[oo(b,{children:" "}),oo(b,{dimColor:!0,children:e.evaluatorBadge})]}):null]})},"TodoListRow"),xC=o(({viewModel:e})=>{if(!e.shouldRender||e.rows.length===0)return null;let t=oe("dark").colors.dim;return ch(k,{flexDirection:"row",children:[oo(b,{color:t,children:zL}),oo(k,{flexDirection:"column",flexGrow:1,children:e.rows.map((n,r)=>oo(YL,{row:n},`${n.kind}-${n.id??r}`))})]})},"TodoListSurface");import{jsx as lc,jsxs as qL}from"react/jsx-runtime";var yC=9;function QL(e){let t=oe("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}}o(QL,"resolveSymbolColor");var JL=o(({row:e})=>{let t=QL(e.symbolColor);return qL(k,{flexDirection:"row",children:[lc(k,{width:yC,flexShrink:0,children:lc(b,{color:t,bold:e.isActive,wrap:"truncate",children:e.symbol.padEnd(yC)})}),lc(b,{color:e.kind==="hint"?oe("dark").colors.dim:void 0,bold:e.isActive,wrap:"truncate",children:e.text})]})},"WorkflowRunRow");function SC(e){return!e.shouldRender||e.rows.length===0?0:e.rows.length}o(SC,"measureWorkflowRunSurfaceRows");var wC=o(({viewModel:e})=>!e.shouldRender||e.rows.length===0?null:lc(k,{flexDirection:"column",flexGrow:1,children:e.rows.map((t,n)=>lc(JL,{row:t},`${t.kind}-${t.id??n}`))}),"WorkflowRunSurface");function TC(e){if(!e.shouldRender||e.rows.length===0)return[];let t=[`Plan ${e.completedCount}/${e.totalCount} completed`];for(let n of e.rows){let r=n.evaluatorBadge?` ${n.evaluatorBadge}`:"";t.push(`${n.symbol} ${n.text}${r}`)}return t}o(TC,"formatTodoPlanViewModelForTranscript");var CC="\u2610",ZL="\u25CF",bC="\u2713",eP="\u2717",tP="\u2298",nP="\u2612";function rP(e){switch(e){case"in_progress":return{symbol:ZL,color:"cyan"};case"completed":return{symbol:bC,color:"green"};case"failed":return{symbol:eP,color:"red"};case"skipped":return{symbol:tP,color:"gray"};case"cancelled":return{symbol:nP,color:"gray"};default:return{symbol:CC,color:"dim"}}}o(rP,"symbolForStatus");function oP(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}o(oP,"pickAnchorIndex");function iP(e){let{symbol:t,color:n}=rP(e.status),r=e.status==="failed"&&e.note?`${e.subject} (${e.note})`:e.subject,i=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:i,evaluatorBadge:s}}o(iP,"buildItemRow");function sP(e){return{kind:"summary_done",symbol:bC,symbolColor:"green",text:`${e} done`,isActive:!1}}o(sP,"buildDoneSummary");function lh(e){return{kind:"summary_pending",symbol:CC,symbolColor:"dim",text:`+${e} more`,isActive:!1}}o(lh,"buildPendingSummary");function aP(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].status==="failed"&&!t.has(n))return n;return-1}o(aP,"pickFailedToPromote");function cP(e,t){let n=e.length;if(n===0)return{visibleIdx:[],hiddenCompletedCount:0,hiddenPendingCount:0};let r=4,i=Math.max(0,t-1),s=Math.min(n,i+r);s-i<r&&i>0&&(i=Math.max(0,s-r)),s-i<r&&s<n&&(s=Math.min(n,i+r));let a=[];for(let u=i;u<s;u++)a.push(u);let c=0,l=0;for(let u=0;u<i;u++)e[u].status==="completed"&&c++;for(let u=s;u<n;u++){let f=e[u].status;(f==="pending"||f==="in_progress")&&l++}return{visibleIdx:a,hiddenCompletedCount:c,hiddenPendingCount:l}}o(cP,"decideWindow");function IC(e,t){let n=e.length,r=e.reduce((h,w)=>w.status==="completed"?h+1:h,0),i=o((h,w)=>({shouldRender:w,rows:h,completedCount:r,totalCount:n}),"baseVm");if(n<1)return i([],!1);t.now,t.lastAllCompletedAt;let s=oP(e),a=cP(e,s),c=new Set(a.visibleIdx),l=aP(e,c),u=[...a.visibleIdx],f=a.hiddenCompletedCount,p=a.hiddenPendingCount;if(l>=0){let h=-1;for(let w=u.length-1;w>=0;w--){let S=u[w];if(S!==s&&e[S].status==="pending"){h=w;break}}if(h>=0){let w=u[h];u[h]=l,p+=1,u.sort((T,M)=>T-M);let S=u[0],x=0;for(let T=0;T<S;T++)e[T].status==="completed"&&x++;f=x}}let m=[];f>0&&m.push(sP(f));for(let h of u)m.push(iP(e[h]));if(p>0&&m.push(lh(p)),m.length>6)for(;m.length>6;){let h=!1;for(let w=m.length-1;w>=0;w--){let S=m[w];if(S.kind==="item"&&!S.isActive){m.splice(w,1);let x=m[m.length-1];if(x&&x.kind==="summary_pending"){let T=/\+(\d+) more/.exec(x.text),M=T?Number.parseInt(T[1],10)+1:1;m[m.length-1]=lh(M)}else m.push(lh(1));h=!0;break}}if(!h)break}return i(m,!0)}o(IC,"buildTodoPlanViewModel");function EC(e){return!e.shouldRender||e.rows.length===0?[]:e.rows.map(t=>`${t.symbol.padEnd(9)}${t.text}`)}o(EC,"formatWorkflowLiveViewModelForTranscript");var lP=6,kC=2,vC={en:{workflow:"workflow",phase:"phase",agent:"agent",more:"more",progress:"progress",waiting:"waiting",hint:"hint",finished:"finished",failed:"failed",stopped:"stopped",started:"started",cap:"cap",budget:"budget",spent:"spent",waitingForFirstAgent:"waiting for first agent",showStopHint:o(e=>`show: /workflow show ${e} | stop: /workflow stop ${e}`,"showStopHint"),activeAgents:o(e=>`${e} active agent${e===1?"":"s"}`,"activeAgents"),moreActive:o(e=>`${e} more active agent${e===1?"":"s"}`,"moreActive")},zh:{workflow:"\u5DE5\u4F5C\u6D41",phase:"\u9636\u6BB5",agent:"\u667A\u80FD\u4F53",more:"\u66F4\u591A",progress:"\u8FDB\u5EA6",waiting:"\u7B49\u5F85",hint:"\u63D0\u793A",finished:"\u5B8C\u6210",failed:"\u5931\u8D25",stopped:"\u505C\u6B62",started:"\u5DF2\u542F\u52A8",cap:"\u4E0A\u9650",budget:"\u9884\u7B97",spent:"\u5DF2\u7528",waitingForFirstAgent:"\u7B49\u5F85\u7B2C\u4E00\u4E2A\u667A\u80FD\u4F53\u542F\u52A8",showStopHint:o(e=>`\u67E5\u770B: /workflow show ${e} | \u505C\u6B62: /workflow stop ${e}`,"showStopHint"),activeAgents:o(e=>`${e} \u4E2A\u667A\u80FD\u4F53\u8FD0\u884C\u4E2D`,"activeAgents"),moreActive:o(e=>`\u53E6\u6709 ${e} \u4E2A\u8FD0\u884C\u4E2D`,"moreActive")}},uP={shouldRender:!1,workflow:"",runId:"",activeCount:0,totalSpawned:0,completedAgents:0,failedAgents:0,stoppedAgents:0,rows:[]};function dP(e){return e.length>14?`${e.slice(0,14)}...`:e}o(dP,"shortRunId");function _d(e){return e==="zh"?vC.zh:vC.en}o(_d,"workflowLiveLabels");function fP(e,t){let n=Math.max(0,Math.floor(e)),r=Math.floor(n/1e3),i=r%60,s=Math.floor(r/60),a=s%60,c=Math.floor(s/60);return t==="zh"?c>0?`${c}\u5C0F\u65F6${String(a).padStart(2,"0")}\u5206`:a>0?`${a}\u5206${String(i).padStart(2,"0")}\u79D2`:`${i}\u79D2`:c>0?`${c}h${a}m${i}s`:a>0?`${a}m${i}s`:`${i}s`}o(fP,"formatElapsedMs");function RC(e){let t=Math.max(0,Math.floor(e));return t>=1e6?`${(t/1e6).toFixed(1).replace(/\.0$/,"")}M`:t>=1e3?`${(t/1e3).toFixed(1).replace(/\.0$/,"")}k`:String(t)}o(RC,"formatTokenCount");function pP(e){if(e.tokenBudgetSpent===void 0)return;let t=_d(e.locale),n=RC(e.tokenBudgetSpent);if(e.tokenBudgetTotal!==void 0&&Number.isFinite(e.tokenBudgetTotal)){let r=RC(e.tokenBudgetTotal);return e.tokenBudgetSpent<=0?`${t.budget} ${r} tokens`:`${t.spent} ${n}/${r} tokens`}if(!(e.tokenBudgetSpent<=0))return`${t.spent} ${n} tokens`}o(pP,"formatWorkflowTokenUsage");function mP(e,t){let n=[],r=e.startedAt===void 0?e.elapsedMs:t-e.startedAt;r!==void 0&&n.push(fP(r,e.locale));let i=pP(e);return i!==void 0&&n.push(i),n}o(mP,"formatWorkflowHeaderMetrics");function hP(e){let t=_d(e.locale),n=e.completedAgents+e.failedAgents+e.stoppedAgents;if(e.totalSpawned===0&&n===0)return;let r=MC(e,n),i=[];e.activeAgents.length>0&&i.push(t.activeAgents(e.activeAgents.length)),e.plannedAgents!==void 0&&i.push(`${t.started} ${e.totalSpawned}`),e.failedAgents>0&&i.push(`${e.failedAgents} ${t.failed}`),e.stoppedAgents>0&&i.push(`${e.stoppedAgents} ${t.stopped}`),e.agentCap!==void 0&&i.push(`${t.cap} ${e.agentCap}`);let s=i.length===0?"":e.locale==="zh"?`\uFF08${i.join("\uFF0C")}\uFF09`:` (${i.join(", ")})`;return`${n}/${r} ${t.finished}${s}`}o(hP,"formatWorkflowProgress");function gP(e){let t=_d(e.locale);if(e.totalSpawned===0)return t.waiting;let n=e.activeAgents.length,r=MC(e),i=e.locale==="zh"?`${n}/${r} \u4E2A\u667A\u80FD\u4F53\u8FD0\u884C\u4E2D`:`${n}/${r} active agent${n===1?"":"s"}`,s=[];return e.failedAgents>0&&s.push(`${e.failedAgents} ${t.failed}`),e.stoppedAgents>0&&s.push(`${e.stoppedAgents} ${t.stopped}`),s.length===0?i:e.locale==="zh"?`${i}\uFF0C${s.join("\uFF0C")}`:`${i}, ${s.join(", ")}`}o(gP,"formatWorkflowCounter");function MC(e,t){let n=t??e.completedAgents+e.failedAgents+e.stoppedAgents;return Math.max(e.plannedAgents??0,e.totalSpawned,n)}o(MC,"workflowProgressDenominator");function xP(e){if(e.phase)return e.phaseIndex!==void 0&&e.phaseTotal!==void 0&&e.phaseIndex>0&&e.phaseTotal>0?`${e.phaseIndex}/${e.phaseTotal} ${e.phase}`:e.phase}o(xP,"formatWorkflowPhase");function AC(e,t=Date.now()){if(!e||e.status!=="running")return uP;let n=[],r=_d(e.locale),i=mP(e,t),s=i.length===0?"":` \xB7 ${i.join(" \xB7 ")}`;n.push({kind:"header",id:"header",symbol:r.workflow,symbolColor:e.failedAgents>0?"red":"cyan",text:`${e.workflow} (${dP(e.runId)}) - ${r.activeAgents(e.activeAgents.length)}${s}`,isActive:!0});let a=xP(e);a&&n.push({kind:"phase",id:"phase",symbol:r.phase,symbolColor:"cyan",text:a,isActive:!0});let c=e.activeAgents.length>kC?1:kC,l=e.activeAgents.slice(0,c);for(let[m,h]of l.entries())n.push({kind:"agent",id:`active-${m}-${h}`,symbol:r.agent,symbolColor:"cyan",text:h,isActive:!0});let u=e.activeAgents.length-l.length;u>0&&n.push({kind:"summary",id:"more-active",symbol:r.more,symbolColor:"dim",text:r.moreActive(u),isActive:!1});let f=hP(e);f&&n.push({kind:"summary",id:"progress",symbol:r.progress,symbolColor:e.failedAgents>0?"red":"green",text:f,isActive:!1}),e.totalSpawned===0&&e.activeAgents.length===0&&n.push({kind:"summary",id:"waiting",symbol:r.waiting,symbolColor:"dim",text:r.waitingForFirstAgent,isActive:!1}),n.push({kind:"hint",id:"controls",symbol:r.hint,symbolColor:"dim",text:e.message??r.showStopHint(e.runId),isActive:!1});let p=n.slice(0,lP);return{shouldRender:!0,workflow:e.workflow,runId:e.runId,...e.phase!==void 0?{phase:e.phase}:{},...e.phaseIndex!==void 0?{phaseIndex:e.phaseIndex}:{},...e.phaseTotal!==void 0?{phaseTotal:e.phaseTotal}:{},activeCount:e.activeAgents.length,totalSpawned:e.totalSpawned,...e.plannedAgents!==void 0?{plannedAgents:e.plannedAgents}:{},completedAgents:e.completedAgents,failedAgents:e.failedAgents,stoppedAgents:e.stoppedAgents,counterText:gP(e),rows:p}}o(AC,"buildWorkflowLiveViewModel");function _C(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(i=>i.label.trim()).filter(Boolean).join(" | ");return{leftItems:t,rightItems:n,summary:r}}o(_C,"buildFooterHeaderViewModel");function yP(e){return hy(e.provider,e.model,"off",{longRunning:!0})}o(yP,"evaluateSessionTransitionPolicy");function SP(e,t){let n=t.snapshot.model?`${t.snapshot.provider}:${t.snapshot.model}`:t.snapshot.provider,r=[`[Provider Guardrail] ${e} on ${n}: ${t.summary}`],i=t.issues[0]?.detail;return i&&r.push(` ${i}`),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}o(SP,"formatSessionTransitionGuardMessage");function jo(e,t,n){let r=yP(e);if(!r||r.status==="allow")return!0;let[i,...s]=SP(t,r);return n(r.status,i,s),r.status!=="block"}o(jo,"enforceSessionTransitionGuard");function wP(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}}o(wP,"summarizeEntry");function LC(e,t,n,r){let i=t?n?"\\- ":"|- ":"",s=e.active?"*":" ",a=e.entry.id.slice(0,12),c=e.label?` [${e.label}]`:"";r.push(`${t}${i}${s} ${a} ${wP(e.entry)}${c}`);let l=t+(t?n?" ":"| ":"");e.children.forEach((u,f)=>{LC(u,l,f===e.children.length-1,r)})}o(LC,"formatNode");function Ld(e){let t=[];return e.forEach((n,r)=>{LC(n,"",r===e.length-1,t)}),t}o(Ld,"formatSessionTree");var TP=100,CP=/\b(curl|wget|invoke-webrequest|invoke-restmethod|iwr|irm)\b/i,$C=/\b(rm|del|erase|remove-item|rmdir|rd|git clean)\b/i,OC=/\b(npm|pnpm|yarn|pip|choco|winget)\s+(install|add|remove|uninstall|update|upgrade|ci)\b/i,NC=/\b(set-content|add-content|out-file|new-item|copy-item|move-item|rename-item|cp|mv|copy|move|ren|touch)\b/i;function ys(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}o(ys,"readString");function zt(e,t,n){n&&e.push({label:t,value:n})}o(zt,"pushField");function bP(e){return e.replace(/\s+/g," ").trim()}o(bP,"normalizeWhitespace");function IP(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)}`}o(IP,"truncateMiddle");function kP(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,i,s)=>`${r}${i}${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}o(kP,"maskSensitiveSegments");function PC(e){return IP(kP(bP(e)),TP)}o(PC,"summarizeCommand");function vP(e){return Gr(e)?ne("intent.read"):$C.test(e)?ne("intent.delete"):OC.test(e)?ne("intent.deps"):Vr(e)||NC.test(e)?ne("intent.modify"):ne("intent.execute")}o(vP,"classifyShellIntent");function RP(e){let t=[];return $C.test(e)?t.push(ne("risk.destructive")):OC.test(e)?t.push(ne("risk.deps")):Vr(e)||NC.test(e)?t.push(ne("risk.modify")):Gr(e)||t.push(ne("risk.unknown")),CP.test(e)&&t.push(ne("risk.network")),t}o(RP,"classifyShellRisks");function EP(e){if(Array.isArray(e))return e.filter(t=>typeof t=="object"&&t!==null&&typeof t.kind=="string")}o(EP,"readSignals");function MP(e){if(e){if(e.some(t=>t.kind==="protected_path"))return ne("scope.protected");if(e.some(t=>t.kind==="outside_project"||t.kind==="shell_redirect_outside"))return ne("scope.outside")}}o(MP,"scopeFromSignals");function AP(e){if(e._outsideProject===!0)return ne("scope.outside");if(e._alwaysConfirm===!0)return ne("scope.protected")}o(AP,"scopeFromMarkers");function _P(e){if(!e)return[];let t=[],n=e.some(i=>i.kind==="dangerous_pattern"&&i.severity==="high"),r=e.some(i=>i.kind==="dangerous_pattern"&&i.severity==="medium");return n?t.push(ne("risk.destructive")):r&&t.push(ne("risk.modify")),e.some(i=>i.kind==="network")&&t.push(ne("risk.network")),e.some(i=>i.kind==="package_install")&&t.push(ne("risk.deps")),t}o(_P,"risksFromSignals");var LP={Reason:"field.reason",Intent:"field.intent",Target:"field.target",Scope:"field.scope",Risk:"field.risk",Summary:"field.summary"};function PP(e){return ne(LP[e])}o(PP,"localizeFieldLabel");function Ss(e,t){return{title:e,fields:t,details:t.map(n=>`${PP(n.label)}: ${n.value}`)}}o(Ss,"buildDisplayFromFields");function Pd(e,t){if(e==="confirm"){let l=ys(t._message);if(l)return Ss(l,[])}if(e==="exit_plan_mode"){let l=ys(t.plan),u="Approve plan? (exits plan mode \u2192 accept-edits)";return l?{title:u,fields:[],details:l.split(`
|
|
76
|
+
`)}:Ss(u,[])}let n=[],r=ys(t.path),i=ys(t.command),s=ys(t._reason)??ys(t.justification),a=EP(t._classifierSignals),c=MP(a)??AP(t);switch(zt(n,"Reason",s),e){case"bash":case"shell_command":{if(i){zt(n,"Intent",vP(i)),zt(n,"Scope",c);let l=_P(a),u=l.length>0?l:RP(i);u.length>0&&zt(n,"Risk",u.join("; ")),zt(n,"Summary",PC(i))}else zt(n,"Scope",c);return Ss(e==="bash"?ne("tool.bash.title"):ne("tool.shell.title"),n)}case"write":return zt(n,"Intent",ne("intent.write_file")),zt(n,"Target",r),zt(n,"Scope",c),Ss(ne("tool.write.title"),n);case"edit":return zt(n,"Intent",ne("intent.edit_file")),zt(n,"Target",r),zt(n,"Scope",c),Ss(ne("tool.edit.title"),n);default:return zt(n,"Intent",ne("intent.use_tool",{tool:e})),zt(n,"Target",r),zt(n,"Scope",c),i&&zt(n,"Summary",PC(i)),Ss(ne("tool.generic.title",{tool:e}),n)}}o(Pd,"buildToolConfirmationDisplay");function DC(e,t){let n=Pd(e,t);return n.details.length>0?`${n.title}
|
|
77
|
+
${n.details.join(`
|
|
78
|
+
`)}`:n.title}o(DC,"buildToolConfirmationPrompt");function BC(e,t=240){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}o(BC,"truncateToolPreview");function HC(e,t=800){let n=e.trim();return n?n.length>t?`${n.slice(0,t-3)}...`:n:""}o(HC,"truncateToolOutputPreview");function uh(e){return e.replace(/^\[[^\]]+\]\s+/,"").replace(/^[A-Za-z][A-Za-z0-9_-]*:\s*/,"").trim()}o(uh,"stripToolRolePrefix");function dh(e){return uh(e).toLowerCase()}o(dh,"normalizeToolNameForMatch");function fh(e){return e===`[${ne("managed.completed")}]`||e===`[${ne("managed.completed.blocked")}]`||e===`[${ne("managed.completed.continuation")}]`}o(fh,"isCompletionTranscriptItem");function $d(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()}o($d,"formatManagedLiveActivityLabel");function Rr(e,t){return $d(`[Tools] ${Ku(e)}`,t)??`[Tools] ${Ku(e)}`}o(Rr,"formatManagedLiveToolLabel");function Od(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}}o(Od,"areManagedLiveItemsEquivalent");function WC(e){return e==="Task completed"?ne("managed.completed"):e==="Task needs continuation"?ne("managed.completed.continuation"):e==="Task ended: blocked"?ne("managed.completed.blocked"):e==="Task ended: needs_continuation"?ne("managed.completed.continuation"):e.startsWith("Task ended:")?ne("managed.completed.blocked"):e}o(WC,"localizeManagedCompletionSummary");function $P(e){switch(e){case"H0_DIRECT":return"H0";case"H1_EXECUTE_EVAL":return"H1";case"H2_PLAN_EXECUTE_EVAL":return"H2";default:return e}}o($P,"formatHarnessProfileShort");function FC(e,t){let n=e.trim();return t.trim()?n?e===t?e:t.startsWith(e)?t:e.startsWith(t)?e:t:t:e}o(FC,"mergeLiveThinkingContent");function ws(e,t){let n=t?.expanded?e.detailNote??e.note:e.note,r=$P(e.harnessProfile)??e.harnessProfile,i=`${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?`${i} - ${n}`:`${i} - Managed task starting`;case"preflight":return n?`${a} - ${n}`:`${a} - ${s} preflight starting`;case"round":return n?`${i} - ${n}`:`${i} - Managed task round update${l}`;case"worker":return n?`${i} - ${n}${l}`:`${i} - ${e.activeWorkerTitle??"Worker"} starting${l}`;case"upgrade":return n?`${i} - ${n}`:`${i} - Harness transition${l}`;case"verifying":return n?`${e.agentMode.toUpperCase()} Verifying - ${n}`:`${e.agentMode.toUpperCase()} Verifying`;case"completed":return n?`${i} - ${n}`:`${i} - Managed task completed`;default:return}}o(ws,"formatManagedTaskBreadcrumb");var UC=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1";function jC(e){if(e.events&&e.events.length>0)return e.events.reduce((r,i)=>{let s=i.summary.trim(),a=(i.detail??i.summary).trim();if(!s||!a)return r;let c=`managed-live-${i.key}`,l=Date.now(),u=i.persistToHistory??e.persistToHistory??!1;if(i.presentation==="thinking")return r.push({item:{id:c,type:"thinking",timestamp:l,text:a,...s!==a?{compactText:s}:{}},persistToHistory:u}),r;if(i.presentation==="assistant")return r.push({item:{id:c,type:"assistant",timestamp:l,text:a,...s!==a?{compactText:s}:{}},persistToHistory:u}),r;let f=i.kind==="completed";if(f&&!UC)return r;let p=f?`[${WC(s)}]`:void 0,m=p??s,h=p??a;return r.push({item:{id:c,type:"event",timestamp:l,text:h,icon:i.kind==="warning"?"!":f?"\u2713":">",...m!==h?{compactText:m}:{}},persistToHistory:u}),r},[]);if(e.phase==="completed"&&!UC)return[];let t=ws(e),n=ws(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}]}o(jC,"buildManagedLiveEventDrafts");function OP(e,t){return!(t||e.role!=="evaluator"||e.signal!=="COMPLETE")}o(OP,"shouldFilterSidecarAcceptEntry");function NP(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(i=>!!i).join(`
|
|
79
|
+
`)}o(NP,"buildManagedTaskRoutingTranscript");function ph(e,t){let n=e.managedTask;if(!n)return[];let r=t?.verifierLog??process.env.KODAX_VERIFIER_LOG==="1",i=o(p=>{if(!e.interrupted&&!n.verdict.signalReason?.includes("Orchestration cancelled"))return!1;let m=p.signalReason?.trim()??"",h=p.summary?.trim()??"",w=p.output?.trim()??"",S=m.includes("Orchestration cancelled"),x=h.includes("Orchestration cancelled"),T=!w||h==="No textual output produced.";return p.status!=="completed"&&(S||x||T)||(S||x)&&T},"isInterruptedCancellation"),s=NP(n),a=new Map(n.roleAssignments.map((p,m)=>[p.id,m])),c=n.verdict.decidedByAssignmentId,l=Math.max(0,...n.evidence.entries.filter(p=>p.assignmentId===c).map(p=>p.round??1)),u=[...n.evidence.entries].sort((p,m)=>{let h=(p.round??1)-(m.round??1);return h!==0?h:(a.get(p.assignmentId)??0)-(a.get(m.assignmentId)??0)}).filter(p=>!i(p)).filter(p=>!OP(p,r)).filter(p=>e.interrupted||!(p.assignmentId===c&&(p.round??1)===l)).map(p=>{let m=p.output?.trim()??"",h=p.summary?.trim()??"",w=m?Pi(m):"",S=h?Pi(h):"",x=p.role==="scout"?S?`Scout completed: ${S}`:"Scout completed.":S;return{entry:p,text:S||w||x}}).filter(({text:p})=>!!p).map(({entry:p,text:m})=>{let h=p.role==="scout"?" Preflight":(p.round??1)>1?` Round ${p.round}`:"";return`[${p.title??p.assignmentId}${h}]
|
|
80
|
+
${m}`}),f=n.verdict.disposition==="complete"?ne("managed.completed"):n.verdict.disposition==="needs_continuation"?ne("managed.completed.continuation"):n.verdict.disposition==="blocked"?ne("managed.completed.blocked"):void 0;return[...s?[s]:[],...u,...f?[`[${f}]`]:[]]}o(ph,"buildManagedTaskTranscriptItems");function GC(e){let r=e.slice(0,400).match(new RegExp("\\*\\*([^*\\n]{1,80}?)\\*\\*"))?.[1]?.trim();return r?{header:r}:{}}o(GC,"extractBoldHeader");var mh=[" \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 Qe from"chalk";var Nd=class e{static{o(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,i=-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>i&&(i=s.definition.priority,r=s)}return r}matchesBinding(t,n){for(let r of n){let i=this.normalizeKeyName(t.name),s=this.normalizeKeyName(r.key);if(i===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(t)===!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 ")}},lr=o(()=>Nd.getInstance(),"getShortcutsRegistry");var Ts=[{id:"interrupt",name:"Interrupt",description:"Interrupt the current streaming response",defaultBindings:[{key:"c",ctrl:!0},{key:"escape"}],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:"Cycle Agent Mode",description:"Cycle agent mode: AMA, AMAW, 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 DP,useCallback as BP,useRef as HP}from"react";function Er(e,t,n={}){let{context:r,isActive:i=!0}=n,s=lr(),a=HP(t);a.current=t,DP(()=>(s.setHandler(e,u=>a.current(u)),()=>{s.setHandler(e,void 0)}),[s,e]);let c=BP(u=>{if(!i)return!1;let p=s.getAllShortcuts().find(S=>S.definition.id===e);if(!p)return!1;let m=r??p.definition.context,h=m==="global"?"input":m,w=s.findMatchingShortcut(u,h);return w&&w.definition.id===e?a.current(u)===!0:!1},[s,e,i,r]),l=WP(e,s);xn(c,{isActive:i,priority:l})}o(Er,"useShortcut");function WP(e,t){let r=t.getAllShortcuts().find(i=>i.definition.id===e);return r?r.definition.priority:0}o(WP,"getShortcutPriority");import FP,{createContext as UP,useContext as jP,useState as VC,useCallback as hh}from"react";var KC=UP(null);function gh({children:e,initialContext:t="input"}){let[n,r]=VC(!1),[i,s]=VC(t);lr().registerAll(Ts);let c=hh(()=>{r(p=>!p)},[]),l=hh(()=>{let m=lr().getAllShortcuts(),h={global:[],mode:[],navigation:[],editing:[]};for(let w of m){let S=w.definition.category;h[S]||(h[S]=[]),h[S].push(w)}return h},[]),u=hh(()=>lr().getShortcutsByContext(i),[i]),f={showHelp:n,toggleHelp:c,setShowHelp:r,currentContext:i,setCurrentContext:s,getShortcutsByCategory:l,getContextShortcuts:u};return FP.createElement(KC.Provider,{value:f},e)}o(gh,"ShortcutsProvider");function xh(){let e=jP(KC);if(!e)throw new Error("useShortcutsContext must be used within a ShortcutsProvider");return e}o(xh,"useShortcutsContext");import GP from"chalk";function yh({currentConfig:e,setCurrentConfig:t,isLoading:n,abort:r,stopThinking:i,clearThinkingContent:s,setCurrentTool:a,setIsLoading:c,onToggleHelp:l,setShowHelp:u,onSetThinking:f,onSetReasoningMode:p,onToggleTranscriptMode:m,onOpenTranscriptSearch:h,canOpenTranscriptSearch:w=!0,isInteractiveDialogActive:S=!1,onSetAgentMode:x,onSetPermissionMode:T,isInputEmpty:M,onSavePermissionMode:v}){let P=o(O=>O?.name?.toLowerCase()==="c"&&O.ctrl===!0,"isCtrlCInterrupt");return Er("interrupt",O=>S&&!P(O)?!1:n?(r(),i(),s(),a(void 0),c(!1),console.log(GP.yellow(`
|
|
81
|
+
[Interrupted]`)),!0):!1,{isActive:n}),Er("showHelp",()=>S?!1:M?(l(),!0):!1,{isActive:M}),Er("toggleThinking",()=>{if(S)return!1;let O=Al.indexOf(e.reasoningMode),_=Al[(O+1)%Al.length],C=_!=="off";return t(j=>({...j,thinking:C,reasoningMode:_})),jl({reasoningMode:_,thinking:C}),p?.(_),f?.(C),u(!1),!0}),Er("toggleTranscriptMode",()=>S?!1:(m?.(),u(!1),!0)),Er("openTranscriptSearch",()=>S||!w?!1:(h?.(),u(!1),!0)),Er("togglePermissionMode",()=>{if(S)return!1;let O=["plan","accept-edits","auto"],_=e.permissionMode==="auto-in-project"?"auto":e.permissionMode,j=(O.indexOf(_)+1)%O.length,ue=O[j];return t(ge=>({...ge,permissionMode:ue})),T?.(ue),v?.(ue),u(!1),!0}),Er("toggleAgentMode",()=>{if(S)return!1;let O=Sy(e.agentMode);return t(_=>({..._,agentMode:O})),jl({agentMode:O}),x?.(O),u(!1),!0}),null}o(yh,"GlobalShortcuts");import{exec as VP}from"child_process";import{promisify as KP}from"util";var zP=KP(VP),XP={read:"read",grep:"grep",glob:"glob",write:"write",edit:"edit",bash:"bash",undo:"undo",askuserquestion:"ask-user-question",askuser:"ask-user-question"};function zC(e){let t=[],n="",r=0;for(let i of e){if(i===","&&r===0){n.trim()&&t.push(n.trim()),n="";continue}i==="("?r++:i===")"&&r>0&&r--,n+=i}return n.trim()&&t.push(n.trim()),t}o(zC,"splitTopLevelCommaList");function YP(e){if(!e?.trim())return{configured:!1,rules:[],invalidEntries:[]};let t=[];return{configured:!0,rules:zC(e).map(r=>{if(r==="*")return{tool:"*"};if(r.includes("(")&&!r.endsWith(")")){t.push(r);return}let i=r.match(/^([^(]+?)(?:\((.*)\))?$/);if(!i){t.push(r);return}let s=XP[i[1].replace(/[^a-z]/gi,"").toLowerCase()];if(!s){t.push(r);return}let a=i[2]?zC(i[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}}o(YP,"parseAllowedTools");function qP(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${t}$`,"i")}o(qP,"wildcardToRegExp");function XC(e,t){return qP(e).test(t)}o(XC,"matchesPattern");function YC(e,t,n){if(!e.configured)return!0;if(e.rules.length===0)return!1;let r=t.toLowerCase(),i=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=>XC(a,i)))}o(YC,"isToolAllowed");function QP(e,t){return e.matcher?XC(e.matcher,t):!0}o(QP,"hookMatches");function JP(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(`
|
|
82
|
+
`)}o(JP,"formatManualOutput");function ZP(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"}}}o(ZP,"resolveModelOverride");async function e$(e,t,n,r,i,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(!YC(s,"bash",c))return{allow:!1,message:`Hook ${e} for ${a} is blocked by allowed-tools policy.`};if(i.beforeToolExecute&&!await i.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 zP(t.command,{env:{...process.env,KODAX_HOOK_EVENT:e,KODAX_HOOK_PAYLOAD:JSON.stringify(n)},maxBuffer:1048576,windowsHide:!0}),f=[l.trim(),u.trim()].filter(Boolean).join(`
|
|
83
|
+
`);f&&i.onToolResult?.({id:`frontmatter-hook:${e}`,name:"bash",content:f}),u.trim()&&await r(`[Hook ${e} stderr] ${u.trim()}`);let p=l.trim();if(!p)return{};try{let m=JSON.parse(p);return{allow:typeof m.allow=="boolean"?m.allow:typeof m.continue=="boolean"?m.continue:void 0,message:typeof m.message=="string"?m.message:void 0,additionalContext:typeof m.additionalContext=="string"?m.additionalContext:typeof m.additional_context=="string"?m.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)}`),{}}}o(e$,"executeHookCommand");async function Cs(e,t,n,r,i,s,a){let c=e?.[t];if(!c||c.length===0)return{};let l={};for(let u of c){if(!QP(u,n))continue;let f=await e$(t,u,r,i,s,a);if(f.message&&await i(`[Hook ${t}] ${f.message}`),f.additionalContext&&(l.additionalContext=l.additionalContext?`${l.additionalContext}
|
|
84
|
+
${f.additionalContext}`:f.additionalContext),f.allow===!1){l.allow=!1;break}}return l}o(Cs,"runHooks");async function Dd(e,t,n,r){if(t.disableModelInvocation)return{mode:"manual",manualOutput:JP(t),finalize:o(async()=>{},"finalize")};let i=e.events??{},s=YP(t.allowedTools),a=ZP(e.provider,t.model),c=!1,l=o(async x=>{if(r(x),!(c||!t.hooks?.Notification?.length)){c=!0;try{await Cs(t.hooks,"Notification",x,{displayName:t.displayName,source:t.source,path:t.path,message:x},async T=>{r(T)},i,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 Cs(t.hooks,"SessionStart",t.displayName,{displayName:t.displayName,source:t.source,path:t.path},l,i,s);if(u.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped before execution.`,finalize:o(async()=>{},"finalize")};let f=await Cs(t.hooks,"UserPromptSubmit",n,{displayName:t.displayName,source:t.source,prompt:n,path:t.path},l,i,s);if(f.allow===!1)return{mode:"manual",manualOutput:`[Blocked] ${t.displayName} was stopped by a UserPromptSubmit hook.`,finalize:o(async()=>{},"finalize")};let p=[t.agent?`Preferred agent: ${t.agent}`:void 0,u.additionalContext,f.additionalContext].filter(x=>typeof x=="string"&&x.trim().length>0),m=[p.length>0?p.join(`
|
|
85
|
+
|
|
86
|
+
`):void 0,t.prompt,`User request: ${n}`].filter(x=>typeof x=="string"&&x.trim().length>0),h={...i,beforeToolExecute:o(async(x,T)=>YC(s,x,T)?(await Cs(t.hooks,"PreToolUse",x,{tool:x,input:T,displayName:t.displayName,source:t.source,path:t.path},l,i,s)).allow===!1?(await l(`[Blocked] PreToolUse hook blocked '${x}' for ${t.displayName}`),!1):i.beforeToolExecute?await i.beforeToolExecute(x,T):!0:(await l(`[Blocked] Tool '${x}' is not allowed by ${t.displayName}`),!1),"beforeToolExecute"),onToolResult:o(x=>{i.onToolResult?.(x),Cs(t.hooks,"PostToolUse",x.name,{...x,displayName:t.displayName,source:t.source,path:t.path},l,i,s)},"onToolResult")},w=!1,S=o(async x=>{w||(w=!0,await Cs(t.hooks,t.context==="fork"?"SubagentStop":"Stop",t.displayName,{displayName:t.displayName,source:t.source,path:t.path,error:x?.message},l,i,s))},"finalize");return{mode:t.context==="fork"?"fork":"inline",prompt:m.join(`
|
|
87
|
+
|
|
88
|
+
`),options:{...e,modelOverride:a,context:{...e.context,rawUserInput:n,skillInvocation:t.source==="skill"?t.skillInvocation:e.context?.skillInvocation},events:h},finalize:S}}o(Dd,"prepareInvocationExecution");import{appendFileSync as t$,mkdirSync as n$,writeFileSync as r$}from"node:fs";import{join as QC}from"node:path";import qC from"node:v8";var Th=parseInt(process.env.KODAX_MEMORY_DIAG??"0",10),Ch=Th>=1,bh=Xx(),JC=QC(bh,"memory-diag.log"),Sh=0,wh=!1;function ZC(){if(!wh)try{n$(bh,{recursive:!0}),wh=!0}catch{wh=!0}}o(ZC,"ensureLogDir");function o$(e){ZC();try{t$(JC,e+`
|
|
89
|
+
`)}catch{}}o(o$,"writeLog");function St(e){return`${(e/1024/1024).toFixed(2)}MB`}o(St,"formatMB");function i$(){return typeof globalThis.gc=="function"?(globalThis.gc(),!0):!1}o(i$,"tryGC");function Lt(e){return e?e.length*2:0}o(Lt,"strBytes");function Go(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+=Go(r,t+1);return n}if(typeof e=="object"){let n=64;for(let[r,i]of Object.entries(e))n+=r.length*2,n+=Go(i,t+1);return n}return 16}o(Go,"estimateJsonBytes");function e0(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 i of t.content)n+=e0(i);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+=Go(t.input));for(let[i,s]of Object.entries(t))r.has(i)||(n+=i.length*2+Go(s));return n}o(e0,"estimateBlockBytes");function Ih(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+=e0(n);return t}return 200}o(Ih,"estimateMessageBytes");function Bd(e){let t=128;switch(t+=Lt(e.id)+Lt(e.parentId??void 0)+Lt(e.timestamp),e.type){case"message":return t+Ih(e.message);case"compaction":return t+=Lt(e.summary),t+=Lt(e.firstKeptEntryId),t+=Lt(e.reason),t+=Lt(e.artifactLedgerId),e.details!==void 0&&(t+=Go(e.details)),e.memorySeed!==void 0&&(t+=Go(e.memorySeed)),t;case"branch_summary":return t+=Lt(e.summary),t+=Lt(e.fromId),e.details!==void 0&&(t+=Go(e.details)),t;case"label":return t+=Lt(e.targetId),t+=Lt(e.label),t;case"archive_marker":return t+=Lt(e.archiveBatchId),t+=Lt(e.summary),t+=8,t;default:return t}}o(Bd,"estimateEntryBytes");function s$(e){let t={},n=[];for(let i=0;i<e.length;i++){let s=e[i],a=Ih(s);n.push({index:i,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((i,s)=>s.bytes-i.bytes),{totalBytes:n.reduce((i,s)=>i+s.bytes,0),biggest:n.slice(0,5),byRole:t}}o(s$,"buildMessageBreakdown");function Hd(){return Ch}o(Hd,"memDiagEnabled");function Wd(e,t){if(!Ch)return;e==="turn-start"&&Sh++;let n=process.memoryUsage(),r=new Date().toISOString(),i=t.biggestMessages,s=["",`\u2550\u2550\u2550 [MEMDIAG] turn=${Sh} phase=${e} @${r} \u2550\u2550\u2550`,` V8 heap: used=${St(n.heapUsed)} total=${St(n.heapTotal)} rss=${St(n.rss)} ext=${St(n.external)}`," \u2500\u2500 Data breakdown \u2500\u2500",` context.messages: ${t.messageCount} msgs, ${St(t.messageBytes)}`,` lineage.entries: ${t.lineageEntryCount} total (msg=${t.lineageMessageEntryCount}, compact=${t.lineageCompactionCount}, branch=${t.lineageBranchSummaryCount}, label=${t.lineageLabelCount}, archive=${t.lineageArchiveMarkerCount})`,` lineage non-message: ${St(t.lineageNonMessageBytes)} (compaction.details/memorySeed + branch_summary payloads)`,` lineage orphan messages: ${t.lineageOrphanMessageCount} msgs, ${St(t.lineageOrphanMessageBytes)} (in lineage but not in context.messages \u2014 branches/pruned)`,` UI history: ${t.historyItemCount} items, ${St(t.historyTextBytes)}`,` foreground turn: ${t.foregroundItemCount} items, ${St(t.foregroundTextBytes)}`,` streaming response: ${St(t.streamingResponseBytes)}`,` streaming thinking: ${St(t.streamingThinkingBytes)}`,` persisted UI history: ${t.persistedUiHistoryCount} items, ${St(t.persistedUiHistoryBytes)}`];if(i.length>0){s.push(" \u2500\u2500 Top 5 biggest messages \u2500\u2500");for(let u of i)s.push(` [${u.index}] role=${u.role} ${St(u.bytes)}`)}let a=t.messageBytes+t.lineageNonMessageBytes+t.lineageOrphanMessageBytes+t.historyTextBytes+t.foregroundTextBytes+t.streamingResponseBytes+t.streamingThinkingBytes+t.persistedUiHistoryBytes;s.push(" \u2500\u2500 V8 heap spaces \u2500\u2500");let c=qC.getHeapSpaceStatistics();for(let u of c)u.space_used_size>1024*1024&&s.push(` ${u.space_name.padEnd(25)} used=${St(u.space_used_size)} allocated=${St(u.space_size)}`);if(s.push(" \u2500\u2500 Summary \u2500\u2500"),s.push(` tracked data total: ${St(a)}`),s.push(` V8 heap used: ${St(n.heapUsed)}`),s.push(` unaccounted (overhead): ${St(n.heapUsed-a)}`),s.push(" (React/Ink tree, provider SDK buffers, module metadata,"),s.push(' tokenizer caches, source maps \u2014 see "Blind spots" note)'),i$()){let u=process.memoryUsage();s.push(` after forced GC: heap=${St(u.heapUsed)} (freed ${St(n.heapUsed-u.heapUsed)})`)}else s.push(" after forced GC: UNAVAILABLE \u2014 re-run with `node --expose-gc` to distinguish"),s.push(` "real leak" from "GC hasn't run yet".`);if(Th>=2)try{let u=QC(bh,`heap-turn${Sh}-${e}.heapsnapshot`);qC.writeHeapSnapshot(u),s.push(` heap snapshot: ${u}`)}catch{s.push(" heap snapshot: FAILED")}o$(s.join(`
|
|
90
|
+
`))}o(Wd,"memDiagSnapshot");function Fd(e,t,n){let r=s$(e),i=new Set(e),s=0,a=0,c=0,l=0,u=0,f=0,p=0,m=0,h=t?.entries??[];for(let T of h)switch(T.type){case"message":m++,i.has(T.message)||(c++,a+=Ih(T.message));break;case"compaction":l++,s+=Bd(T);break;case"branch_summary":u++,s+=Bd(T);break;case"label":f++,s+=Bd(T);break;case"archive_marker":p++,s+=Bd(T);break}let w=0;for(let T of n.historyItems)w+=Lt(T.text);let S=0;for(let T of n.foregroundItems)S+=Lt(T.text);let x=0;for(let T of n.persistedUiHistory)x+=Lt(T.text);return{messageCount:e.length,messageBytes:r.totalBytes,biggestMessages:r.biggest,lineageEntryCount:h.length,lineageMessageEntryCount:m,lineageCompactionCount:l,lineageBranchSummaryCount:u,lineageLabelCount:f,lineageArchiveMarkerCount:p,lineageNonMessageBytes:s,lineageOrphanMessageBytes:a,lineageOrphanMessageCount:c,historyItemCount:n.historyItems.length,historyTextBytes:w,foregroundItemCount:n.foregroundItems.length,foregroundTextBytes:S,streamingResponseBytes:Lt(n.streamingResponse),streamingThinkingBytes:Lt(n.streamingThinking),persistedUiHistoryCount:n.persistedUiHistory.length,persistedUiHistoryBytes:x}}o(Fd,"buildMemDiagBreakdown");function t0(){if(Ch){ZC();try{let e=typeof globalThis.gc=="function",t=[`[MEMDIAG] Session started at ${new Date().toISOString()}`,`[MEMDIAG] Level=${Th} 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(`
|
|
91
|
+
`);r$(JC,t+`
|
|
92
|
+
`)}catch{}}}o(t0,"memDiagReset");import a$ from"node:fs";import vh from"node:path";var c$={".gif":"image/gif",".jpeg":"image/jpeg",".jpg":"image/jpeg",".png":"image/png",".webp":"image/webp"},l$=/@(?:"([^"]+)"|'([^']+)'|([^\s]+))/g;function u$(e){return c$[vh.extname(e).toLowerCase()]}o(u$,"resolveImageMediaType");var kh="[Image unavailable]";function d$(e){return""}o(d$,"buildImageAnchor");function uc(e,t){let n=[],r=[],i=new Set,s=new Map,a=new Set,c=[],l=0;for(let f of e.matchAll(l$)){let p=f.index??l;c.push(e.slice(l,p));let m=f[1]??f[2]??f[3];if(!m){c.push(f[0]),l=p+f[0].length;continue}let h=u$(m);if(!h){c.push(f[0]),l=p+f[0].length;continue}let w=vh.resolve(t,m);try{if(!a$.statSync(w).isFile()){a.has(w)||(r.push(`[Image input skipped] ${m} is not a file.`),a.add(w)),c.push(kh),l=p+f[0].length;continue}}catch{a.has(w)||(r.push(`[Image input missing] ${m} was not found from ${t}.`),a.add(w)),c.push(kh),l=p+f[0].length;continue}if(!i.has(w)){i.add(w);let S=d$(n.length+1);s.set(w,S),n.push({kind:"image",path:w,mediaType:h,source:"user-inline",description:`Attached image ${vh.basename(w)}`})}c.push(s.get(w)??kh),l=p+f[0].length}c.push(e.slice(l));let u=c.join("");return{promptText:u,messageContent:sy(u,n),inputArtifacts:n,warnings:r}}o(uc,"preparePromptInputArtifacts");function n0(e){let t=f$(e.stage),n=p$(e);return{type:"info",icon:"\u{1F4E1}",text:n?`[RepoIntel] ${t} \xB7 ${n}`:`[RepoIntel] ${t}`,tightSpacing:!0}}o(n0,"createRepoIntelTraceHistoryItem");function f$(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)}}o(f$,"stageDisplayName");function p$(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(`${m$(r.capsuleEstimatedTokens)} tokens`)),t.length===0&&e.summary?h$(e.summary):t.join(" \xB7 ")}o(p$,"buildRepoIntelDetailLine");function m$(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}o(m$,"formatTokens");function h$(e){return e.replace(/^stage=[^|]+\|\s*/,"").trim()}o(h$,"stripSummaryStagePrefix");function r0(e,t,n,r){let i=e?.gitRoot??t??void 0,s=e?.executionCwd??i??process.cwd();return{...e,gitRoot:i,executionCwd:s,contextTokenSnapshot:n,taskSurface:"repl",skillsPrompt:r}}o(r0,"buildManagedRunContext");var g$=["global","mode","navigation","editing"],x$={global:["showHelp","interrupt"],mode:["toggleThinking","toggleTranscriptMode","togglePermissionMode","toggleAgentMode"],navigation:["openTranscriptSearch","historyUp","historyDown","moveToStart","moveToEnd"],editing:["acceptCompletion","cancelInput","newline","killLineRight","killLineLeft","deleteWordLeft"]},y$={global:"Global",mode:"Modes",navigation:"Navigation",editing:"Editing"},S$={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 w$(e){let t=lr(),n=t.getAllShortcuts().find(i=>i.definition.id===e);if(n?.effectiveBindings?.length)return t.formatBindings(n.effectiveBindings);let r=Ts.find(i=>i.id===e);if(r?.defaultBindings?.length)return t.formatBindings(r.defaultBindings)}o(w$,"resolveShortcutBindingLabel");function T$(e){return`${w$(e.id)??e.id} ${e.name}`}o(T$,"buildMenuItemLabel");function C$(e){return lr().getAllShortcuts().find(r=>r.definition.id===e)?.definition??Ts.find(r=>r.id===e)}o(C$,"resolveShortcutDefinition");function Ud(){return[...g$.map(t=>{let n=x$[t].map(r=>C$(r)).filter(r=>!!r).map(r=>({id:r.id,label:T$(r)}));return{id:t,title:y$[t],items:n}}).filter(t=>t.items.length>0),S$]}o(Ud,"buildHelpMenuSections");var Rh=2,o0=1,i0=4;function ot(e,t){let n=rn(e.length>0?e.split(`
|
|
93
|
+
`):[""],Math.max(1,t),0,0);return Math.max(1,n.visualLines.length)}o(ot,"wrapLineCount");function b$(e,t,n=">"){let r=n.length+1,i=Math.max(20,t-r),s=rn(e.length>0?e.split(`
|
|
94
|
+
`):[""],i,0,0);return Math.max(1,s.visualLines.length)+2}o(b$,"calculateInputPromptRows");function s0(e){let{terminalRows:t,terminalWidth:n,windowedTranscript:r=!1,inputText:i,inputPrompt:s=">",footerHeaderText:a,activitySummary:c,pendingInputSummary:l,stashNoticeSummary:u,notificationSummary:f,statusNoticeSummary:p,workStripText:m,suggestionsReserved:h,suggestionsMode:w="inline",showHelp:S,statusBarText:x,confirmPrompt:T,confirmInstruction:M,uiRequest:v,dialogMode:P="inline",historySearch:O,maxVisibleSelectOptions:_=5,reviewHint:C,todoSurfaceRows:j=0,workflowSurfaceRows:ue=0,activityBarVisible:ge=!1}=e,de=Math.max(0,Math.floor(j)),Y=Math.max(0,Math.floor(ue)),L=a?ot(a,Math.max(1,n-2)):0,I=c?ot(c,Math.max(1,n-2)):0,le=ge?1:I,We=l?ot(l,Math.max(1,n-2)):0,K=u?ot(u,Math.max(1,n-2)):0,z=f?ot(f,Math.max(1,n-2)):0,fe=p?ot(p,Math.max(1,n-2)):0,J=m?ot(m,Math.max(1,n-2)):0,ce=b$(i,n,s),U=h?8:0,Re=S?o0+i0+Ud().reduce((D,pe)=>D+ot(pe.title,Math.max(1,n-Rh))+ot(pe.items.map(Le=>Le.label).join(" | "),Math.max(1,n-Rh)),0):0,Pe=ot(x,Math.max(1,n-2)),be=0;if(T&&M){let D=Math.max(1,n-4);be=3+ot(`[Confirm] ${T}`,D)+ot(M,D)}let De=0,Oe=0;if(v){let D=Math.max(1,n-4);v.kind==="select"?(Oe=Math.min(_,v.options.length),De=3+ot(`[Select] ${v.title}`,D)+v.options.slice(0,Oe).reduce((pe,Le,Ye)=>pe+ot(`${Ye+1}. ${Le.label}${Le.description?` - ${Le.description}`:""}`,D),0)+(v.options.length>Oe?2:0)+ot(`Choice: ${v.buffer||"(type a number)"}`,D)+1+(v.error?ot(v.error,D):0)):De=3+ot(`[Input] ${v.prompt}`,D)+(v.defaultValue!==void 0?ot(`Default: ${v.defaultValue}`,D):0)+ot(`Value: ${v.buffer||"(type your response)"}`,D)+1+(v.error?ot(v.error,D):0)}let ie=0;if(O){let D=Math.max(1,n-4);ie=3+ot(`Query: ${O.query||"(type to search)"}`,D)+(O.matchCount===0?ot("No matches yet",D):ot(`${Math.max(1,O.matchCount)} matches`,D)+ot(O.selectedExcerpt||"",D))+1}let gt=C?ot(C,Math.max(1,n-2)):0,Pt=L+le+Y+de+We+K+z+ce+Re+fe+gt+(w==="inline"?U:0)+(P==="inline"?be+De+ie:0),ee=(w==="overlay"?U:0)+(P==="overlay"?be+De+ie:0),xe=Pt+J+Pe,A=Math.max(1,t-xe);return{messageRows:A,reservedBottomRows:xe,headerRows:L,activityRows:le,pendingInputRows:We,stashNoticeRows:K,notificationRows:z,workStripRows:J,inputRows:ce,suggestionsRows:U,helpRows:Re,statusNoticeRows:fe,statusRows:Pe,confirmRows:be,uiRequestRows:De,historySearchRows:ie,footerRows:Pt,overlayRows:ee,visibleSelectOptions:Oe,reviewHintRows:gt,todoSurfaceRows:de,workflowSurfaceRows:Y,slots:[{name:"transcript",rows:A},{name:"footer",rows:Pt},{name:"overlay",rows:ee},{name:"status",rows:Pe},{name:"task-bar",rows:J}]}}o(s0,"calculateViewportBudget");function a0(e,t={}){let n=ji(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}}o(a0,"createTranscriptDisplayState");function c0(e){return{...e,surface:"transcript",jumpToLatestAvailable:e.pendingLiveUpdates>0}}o(c0,"enterTranscriptMode");function l0(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}o(l0,"exitTranscriptMode");function u0(e,t){let n=Math.max(0,t);return{...e,pendingLiveUpdates:n,jumpToLatestAvailable:e.surface==="transcript"?n>0:e.scrollAnchor>0}}o(u0,"setTranscriptPendingLiveUpdates");function d0(e,t){let n=Math.max(0,t);return{...e,scrollAnchor:n,jumpToLatestAvailable:e.surface==="transcript"?e.pendingLiveUpdates>0:n>0}}o(d0,"setTranscriptScrollAnchor");function f0(e){return{...e,surface:"prompt",scrollAnchor:0,jumpToLatestAvailable:!1,selectionMode:"none",selectedItemId:void 0,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0,pendingLiveUpdates:0}}o(f0,"jumpTranscriptToLatest");function p0(e,t){return{...e,stickyPromptVisible:t}}o(p0,"setTranscriptStickyPromptVisible");function bs(e,t){return{...e,selectedItemId:t,selectionMode:t?"message":"none"}}o(bs,"setTranscriptSelectedItem");function m0(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}}o(m0,"openTranscriptSearch");function h0(e){return{...e,searchMode:"closed",searchAnchorItemId:void 0,currentMatchIndex:0}}o(h0,"closeTranscriptSearch");function g0(e,t){return{...e,currentMatchIndex:Math.max(-1,t)}}o(g0,"setTranscriptSearchMatchIndex");function x0(e){return e.supportsFullscreenLayout&&e.ownsViewportByDefault}o(x0,"shouldWindowTranscript");function y0(e){return e.surface==="transcript"}o(y0,"shouldPauseLiveTranscript");function Eh(e){return e.supportsSelection}o(Eh,"ownsTranscriptSelectionPath");function jd(e,t,n){if(!(!Eh(e)||!n))return t.includes(n)?n:void 0}o(jd,"resolveTranscriptSelectedItemId");function S0(e){return e.supportsSelection&&e.supportsCopyOnSelect}o(S0,"supportsPassiveTranscriptCopyOnSelect");function w0(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"}o(w0,"buildTranscriptBrowseHint");var T0="Slash commands cannot be queued mid-task. Press Esc to abort the current task, then run the command.",C0="slash-guard";function b0(e){return e.trimStart().startsWith("/")}o(b0,"isSlashCommandText");var I$=`
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
`;async function I0(e){let{initialPrompt:t,runRound:n,shiftPendingPrompt:r,onRoundComplete:i,onBeforeQueuedRound:s,shouldContinue:a=o(()=>!0,"shouldContinue"),shouldDrainQueuedPrompts:c=o(()=>!0,"shouldDrainQueuedPrompts")}=e,l=t,u=await n(l);for(;;){if(await i?.(u),!a(u)||!c())return u;let f=[];for(;;){let p=r();if(p===void 0)break;let m=typeof p=="string"?p.trim():"";m.length>0&&f.push(m)}if(f.length===0)return u;l=f.length===1?f[0]:f.join(I$),await s?.(l),u=await n(l)}}o(I0,"runQueuedPromptSequence");function v0(e){return e.itemsLength>0||e.currentResponse.length>0||e.thinkingContent.length>0||e.activeToolCallsLength>0}o(v0,"hasTranscriptInputActivity");function k$(e){return e.keyName==="mouse"&&e.hasMouse&&e.usesManagedMouseClicks&&e.supportsMouseTracking&&e.usesRendererMouseTracking}o(k$,"shouldHandleManagedTranscriptMouse");function k0(e){return e.usesManagedMouseWheel&&e.supportsWheelHistory&&e.hasTranscript}o(k0,"shouldHandleManagedTranscriptWheel");function R0(e){if(k$({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"?k0({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?{kind:"scroll-by",delta:e.reviewWheelStep}:{kind:"none"}:e.keyName==="wheeldown"?k0({usesManagedMouseWheel:e.usesManagedMouseWheel,supportsWheelHistory:e.supportsWheelHistory,hasTranscript:e.hasTranscript})?e.historyScrollOffset===0?{kind:"consume"}:{kind:"scroll-by",delta:-e.reviewWheelStep}:{kind:"none"}:{kind:"none"}}o(R0,"resolveTranscriptPointerAction");function E0(e){return e.isTranscriptMode&&e.hasTextSelection}o(E0,"shouldDeferInterruptToTranscriptSelectionCopy");function M0(e){return e.hasActiveWorkflow?e.ctrl&&e.keyName==="c"?!E0({isTranscriptMode:e.isTranscriptMode,hasTextSelection:e.hasTranscriptTextSelection}):e.keyName!=="escape"||e.isTranscriptMode||e.isAwaitingUserInteraction?!1:e.isInputEmpty&&e.pendingInputCount===0:!1}o(M0,"shouldStopWorkflowFromInterruptKey");function A0(e){return e.ctrl&&e.keyName==="c"?E0({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?{kind:"interrupt"}:{kind:"none"}}o(A0,"resolveStreamingInterruptAction");function _0(e){let{key:t,isTranscriptMode:n,isHistorySearchActive:r,historySearchMatchCount:i,hasTextSelection:s,hasFocusedItem:a,canCopySelectedItem:c,canCopySelectedToolInput:l,canToggleSelectedDetail:u,canCycleTranscriptSelection:f}=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"?f?{kind:"cycle-selection",direction:"prev"}:{kind:"none"}:t.name==="right"?f?{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"?i===0?{kind:"none"}:{kind:"search-match-nav",direction:t.shift?"prev":"next"}:{kind:"none"}:{kind:"none"}}o(_0,"resolveTranscriptKeyboardAction");function L0(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}}o(L0,"executeTranscriptKeyboardAction");function Vo(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,"")}o(Vo,"stripAnsi");function v$(e){return e.tools.map(n=>`tool: ${n.name}`).join(`
|
|
99
|
+
`)}o(v$,"serializeToolGroup");function R$(e){switch(e.type){case"thinking":return null;case"user":return`user: ${Vo(e.text)}`;case"assistant":return`assistant: ${Vo(e.text)}`;case"system":return`system: ${Vo(e.text)}`;case"info":return`info: ${Vo(e.text)}`;case"error":return`error: ${Vo(e.text)}`;case"event":return`event: ${Vo(e.text)}`;case"hint":return`hint: ${Vo(e.text)}`;case"tool_group":return v$(e);default:return e}}o(R$,"serializeOne");function E$(e){let t=[];for(let n of e){let r=R$(n);r!==null&&r!==""&&t.push(r)}return t.join(`
|
|
100
|
+
|
|
101
|
+
`)}o(E$,"serializeTranscriptForScrollback");function P0(e){let{items:t,writeToScrollback:n,exitAltScreen:r,enterAltScreen:i}=e,s=E$(t);r(),s.length>0&&n(`${s}
|
|
102
|
+
`),i()}o(P0,"dumpTranscriptToNativeScrollback");var Is={committed:[],width:0,hasBanner:!1};function $0(e,t,n){let r=e.bannerSection!==null,i=e.bannerSection!==null?[e.bannerSection,...e.finalizedSections]:[...e.finalizedSections],s=i.map(t),a={committed:s,width:e.width,hasBanner:r},c=o(f=>({plan:{kind:"rebuild",sections:i,reason:f},nextState:a}),"rebuild"),l=n.committed.length>0;if(l&&n.width!==e.width)return c("width-change");if(l&&n.hasBanner!==r)return c("banner-change");let u=Math.min(n.committed.length,s.length);for(let f=0;f<u;f++){let p=r&&f===0;if(n.committed[f].key!==s[f].key)return c(p?"banner-change":"key-order-change");if(n.committed[f].fingerprint!==s[f].fingerprint)return c(p?"banner-change":"fingerprint-change")}return s.length<n.committed.length?c("source-rewrite"):s.length===n.committed.length?{plan:{kind:"none"},nextState:a}:{plan:{kind:"append",sections:i.slice(n.committed.length)},nextState:a}}o($0,"planInlineScrollback");import{jsx as ib}from"react/jsx-runtime";import T1 from"yoga-layout";import{LegacyRoot as C1}from"react-reconciler/constants.js";import t1 from"react-reconciler";import{DefaultEventPriority as n1,NoEventPriority as Q0}from"react-reconciler/constants.js";import*as io from"scheduler";import z0 from"yoga-layout";import{createContext as r1}from"react";import j$ from"yoga-layout";import M$ from"widest-line";var O0=new Map,A$=o(e=>{if(e.length===0)return{width:0,height:0};let t=O0.get(e);if(t)return t;let n=M$(e),r=e.split(`
|
|
103
|
+
`).length,i={width:n,height:r};return O0.set(e,i),i},"measureText"),Mh=A$;import _$ from"wrap-ansi";import L$ from"cli-truncate";var N0={},P$=o((e,t,n)=>{let r=e+String(t)+String(n),i=N0[r];if(i)return i;let s=e;if(n==="wrap"&&(s=_$(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=L$(e,t,{position:a})}return N0[r]=s,s},"wrapText"),Gd=P$;var $$=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),O$=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),N$=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),H0=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),D$=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),W0=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),D0=o((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!$$(c))break;n++}let r=e.slice(t,n),i=n;for(;n<e.length;){let c=e[n];if(!O$(c))break;n++}let s=e.slice(i,n),a=e[n];if(!(a===void 0||!N$(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),B0=o((e,t,n)=>{for(let r=t;r<e.length;r++){let i=e[r];if(n&&i==="\x07"||i==="\x9C")return r+1;if(i==="\x1B"){let s=e[r+1];if(s==="\x1B"){r++;continue}if(s==="\\")return r+2}}},"findControlStringTerminatorIndex"),B$=o((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!H0(s))break;n++}let r=e.slice(t,n),i=e[n];if(!(i===void 0||!D$(i)))return{endIndex:n+1,intermediateString:r,finalCharacter:i}},"readEscapeSequence"),H$=o(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"),W$=o(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"),Ah=o(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(W0(t))return!0;return!1},"hasAnsiControlCharacters"),ks=o((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"),F0=o(e=>{if(!Ah(e))return[{type:"text",value:e}];let t=[],n=0;for(let r=0;r<e.length;){let i=e[r];if(i===void 0)break;if(i==="\x1B"){let a=e[r+1];if(a===void 0)return ks(t,e,n,r);if(a==="["){let u=D0(e,r+2);if(u===void 0)return ks(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=H$(a);if(c!==void 0){let u=B0(e,r+2,c.allowBellTerminator);if(u===void 0)return ks(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=B$(e,r+1);if(l===void 0){if(H0(a))return ks(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(i==="\x9B"){let a=D0(e,r+1);if(a===void 0)return ks(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=W$(i);if(s!==void 0){let a=B0(e,r+1,s.allowBellTerminator);if(a===void 0)return ks(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(i==="\x9C"){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"st",value:i}),r++,n=r;continue}if(W0(i)){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"c1",value:i}),r++,n=r;continue}r++}return n<e.length&&t.push({type:"text",value:e.slice(n)}),t},"tokenizeAnsi");var F$=/^[\d:;]*$/,U$=o(e=>{if(!Ah(e))return e;let t="";for(let n of F0(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&F$.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),U0=U$;var j0=o(e=>{let t="";for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r===void 0)continue;let i="";r.nodeName==="#text"?i=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(i=j0(r)),i.length>0&&typeof r.internal_transform=="function"&&(i=r.internal_transform(i,n))),t+=i}return U0(t)},"squashTextNodes"),dc=j0;var Vd=o(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:j$.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(G$.bind(null,t)),t},"createNode"),Kd=o((e,t)=>{t.parentNode&&fc(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")&&zd(e)},"appendChildNode"),_h=o((e,t,n)=>{t.parentNode&&fc(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")&&zd(e)},"insertBeforeNode"),fc=o((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")&&zd(e)},"removeChildNode"),Lh=o((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),Ph=o((e,t)=>{e.style=t},"setStyle"),G0=o(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return pc(t,e),t},"createTextNode"),G$=o(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:dc(e),r=Mh(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let i=e.style?.textWrap??"wrap",s=Gd(n,t,i);return Mh(s)},"measureTextNode"),V0=o(e=>{if(e?.parentNode)return e.yogaNode??V0(e.parentNode)},"findClosestYogaNode"),zd=o(e=>{V0(e)?.markDirty()},"markNodeAsDirty"),pc=o((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,zd(e)},"setTextNodeValue");import ve from"yoga-layout";var V$=o((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?ve.POSITION_TYPE_ABSOLUTE:ve.POSITION_TYPE_RELATIVE)},"applyPositionStyles"),K$=o((e,t)=>{"margin"in t&&e.setMargin(ve.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(ve.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(ve.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(ve.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(ve.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(ve.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(ve.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),z$=o((e,t)=>{"padding"in t&&e.setPadding(ve.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(ve.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(ve.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(ve.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(ve.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(ve.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(ve.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),X$=o((e,t)=>{"flexGrow"in t&&e.setFlexGrow(t.flexGrow??0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexWrap"in t&&(t.flexWrap==="nowrap"&&e.setFlexWrap(ve.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(ve.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(ve.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(ve.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(ve.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(ve.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(ve.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(Number.NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(ve.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(ve.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(ve.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(ve.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(ve.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(ve.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(ve.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(ve.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(ve.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(ve.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(ve.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(ve.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(ve.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(ve.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),Y$=o((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"),q$=o((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?ve.DISPLAY_FLEX:ve.DISPLAY_NONE)},"applyDisplayStyles"),Q$=o((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(ve.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(ve.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(ve.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(ve.EDGE_RIGHT,n)}},"applyBorderStyles"),J$=o((e,t)=>{"gap"in t&&e.setGap(ve.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(ve.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(ve.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),Z$=o((e,t={})=>{V$(e,t),K$(e,t),z$(e,t),X$(e,t),Y$(e,t),q$(e,t),Q$(e,t),J$(e,t)},"styles"),$h=Z$;import e1 from"node:process";var K0=o(()=>e1.env.DEV==="true","isDev");if(K0())try{await import("./devtools-4CRULTR2.js")}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
|
|
104
|
+
The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
|
|
105
|
+
but this failed as it was not installed. Debugging with React Devtools requires it.
|
|
106
|
+
|
|
107
|
+
To install use this command:
|
|
108
|
+
|
|
109
|
+
$ npm install --save-dev react-devtools-core
|
|
110
|
+
`.trim()+`
|
|
111
|
+
`);else throw e}var X0=o((e,t)=>{if(e===t)return;if(!e)return t;let n={},r=!1;for(let i of Object.keys(e))(!t||!Object.hasOwn(t,i))&&(n[i]=void 0,r=!0);if(t)for(let i of Object.keys(t))t[i]!==e[i]&&(n[i]=t[i],r=!0);return r?n:void 0},"diff"),Y0=o(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),Xd=Q0,Oh,q0={name:void 0,version:void 0},vs=t1({getRootHostContext:o(()=>({isInsideText:!1}),"getRootHostContext"),prepareForCommit:o(()=>null,"prepareForCommit"),preparePortalMount:o(()=>null,"preparePortalMount"),clearContainer:o(()=>!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:o(()=>!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 i=e==="ink-text"&&r.isInsideText?"ink-virtual-text":e,s=Vd(i);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){Ph(s,c),s.yogaNode&&$h(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_static"){Oh=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}Lh(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 G0(e)},resetTextContent(){},hideTextInstance(e){pc(e,"")},unhideTextInstance(e,t){pc(e,t)},getPublicInstance:o(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(z0.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(z0.DISPLAY_FLEX)},appendInitialChild:Kd,appendChild:Kd,insertBefore:_h,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:io.unstable_scheduleCallback,cancelCallback:io.unstable_cancelCallback,shouldYield:io.unstable_shouldYield,now:io.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:o(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:o(()=>null,"getInstanceFromScope"),appendChildToContainer:Kd,insertInContainerBefore:_h,removeChildFromContainer(e,t){fc(e,t),Y0(t.yogaNode)},commitUpdate(e,t,n,r){Oh&&e.internal_static&&(Oh.isStaticDirty=!0);let i=X0(n,r),s=X0(n.style,r.style);if(!(!i&&!s)){if(i)for(let[a,c]of Object.entries(i)){if(a==="style"){Ph(e,c);continue}if(a==="internal_transform"){e.internal_transform=c;continue}if(a==="internal_static"){e.internal_static=!0;continue}Lh(e,a,c)}s&&e.yogaNode&&$h(e.yogaNode,s)}},commitTextUpdate(e,t,n){pc(e,n)},removeChild(e,t){fc(e,t),Y0(t.yogaNode)},setCurrentUpdatePriority(e){Xd=e},getCurrentUpdatePriority:o(()=>Xd,"getCurrentUpdatePriority"),resolveUpdatePriority(){return Xd!==Q0?Xd:n1},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:r1(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:q0.name,rendererVersion:q0.version});import f1 from"widest-line";import p1 from"indent-string";import so from"yoga-layout";import Yd from"yoga-layout";var o1=o(e=>e.getComputedWidth()-e.getComputedPadding(Yd.EDGE_LEFT)-e.getComputedPadding(Yd.EDGE_RIGHT)-e.getComputedBorder(Yd.EDGE_LEFT)-e.getComputedBorder(Yd.EDGE_RIGHT),"getMaxWidth"),J0=o1;import l1 from"cli-boxes";import qd from"chalk";import Mr from"chalk";var i1=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,s1=/^ansi256\(\s?(\d+)\s?\)$/,a1=o(e=>e in Mr,"isNamedColor"),c1=o((e,t,n)=>{if(!t)return e;if(a1(t)){if(n==="foreground")return Mr[t](e);let r=`bg${t[0].toUpperCase()+t.slice(1)}`;return Mr[r](e)}if(t.startsWith("#"))return n==="foreground"?Mr.hex(t)(e):Mr.bgHex(t)(e);if(t.startsWith("ansi256")){let r=s1.exec(t);if(!r)return e;let i=Number(r[1]);return n==="foreground"?Mr.ansi256(i)(e):Mr.bgAnsi256(i)(e)}if(t.startsWith("rgb")){let r=i1.exec(t);if(!r)return e;let i=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?Mr.rgb(i,s,a)(e):Mr.bgRgb(i,s,a)(e)}return e},"colorize"),Ko=c1;var u1=o((e,t,n,r)=>{if(n.style.borderStyle){let i=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?l1[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,f=n.style.borderRightColor??n.style.borderColor,p=n.style.borderTopDimColor??n.style.borderDimColor,m=n.style.borderBottomDimColor??n.style.borderDimColor,h=n.style.borderLeftDimColor??n.style.borderDimColor,w=n.style.borderRightDimColor??n.style.borderDimColor,S=n.style.borderTop!==!1,x=n.style.borderBottom!==!1,T=n.style.borderLeft!==!1,M=n.style.borderRight!==!1,v=i-(T?1:0)-(M?1:0),P=S?Ko((T?a.topLeft:"")+a.top.repeat(v)+(M?a.topRight:""),c,"foreground"):void 0;S&&p&&(P=qd.dim(P));let O=s;S&&(O-=1),x&&(O-=1);let _=(Ko(a.left,u,"foreground")+`
|
|
112
|
+
`).repeat(O);h&&(_=qd.dim(_));let C=(Ko(a.right,f,"foreground")+`
|
|
113
|
+
`).repeat(O);w&&(C=qd.dim(C));let j=x?Ko((T?a.bottomLeft:"")+a.bottom.repeat(v)+(M?a.bottomRight:""),l,"foreground"):void 0;x&&m&&(j=qd.dim(j));let ue=S?1:0;P&&r.write(e,t,P,{transformers:[]}),T&&r.write(e,t+ue,_,{transformers:[]}),M&&r.write(e+i-1,t+ue,C,{transformers:[]}),j&&r.write(e,t+s-1,j,{transformers:[]})}},"renderBorder"),Z0=u1;var d1=o((e,t,n,r)=>{if(!n.style.backgroundColor)return;let i=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,f=i-a-c,p=s-l-u;if(!(f>0&&p>0))return;let m=Ko(" ".repeat(f),n.style.backgroundColor,"background");for(let h=0;h<p;h++)r.write(e+a,t+l+h,m,{transformers:[]})},"renderBackground"),eb=d1;var m1=o((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),i=n.getComputedTop();t=`
|
|
114
|
+
`.repeat(i)+p1(t,r)}return t},"applyPaddingToText"),Qd=o((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===so.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=dc(e);else if(e.nodeName==="ink-box"||e.nodeName==="ink-root"){let r=e.style.flexDirection==="row"||e.style.flexDirection==="row-reverse"?" ":`
|
|
115
|
+
`;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>Qd(s,{parentRole:e.internal_accessibility?.role,skipStaticElements:t.skipStaticElements})).filter(Boolean).join(r)}if(e.internal_accessibility){let{role:r,state:i}=e.internal_accessibility;if(i){let a=Object.keys(i).filter(c=>i[c]).join(", ");a&&(n=`(${a}) ${n}`)}r&&r!==t.parentRole&&(n=`${r}: ${n}`)}return n},"renderNodeToScreenReaderOutput"),Nh=null;function tb(){Nh=null}o(tb,"resetScrollHint");function nb(){return Nh}o(nb,"getScrollHint");var rb=o((e,t,n)=>{let{offsetX:r=0,offsetY:i=0,transformers:s=[],skipStaticElements:a}=n;if(a&&e.internal_static)return;let{yogaNode:c}=e;if(c){if(c.getDisplay()===so.DISPLAY_NONE)return;let l=r+c.getComputedLeft(),u=i+c.getComputedTop(),f=s;if(typeof e.internal_transform=="function"&&(f=[e.internal_transform,...s]),e.nodeName==="ink-text"){let h=dc(e);if(h.length>0){let w=f1(h),S=J0(c);if(w>S){let x=e.style.textWrap??"wrap";h=Gd(h,S,x)}h=m1(e,h),t.write(l,u,h,{transformers:f})}return}let p=!1,m=0;if(e.nodeName==="ink-box"){eb(l,u,e,t),Z0(l,u,e,t);let h=e.style.overflowX??e.style.overflow,w=e.style.overflowY??e.style.overflow,S=h==="hidden"||h==="scroll",x=w==="hidden"||w==="scroll";if(w==="scroll"){let T=c.getComputedBorder(so.EDGE_TOP),M=c.getComputedBorder(so.EDGE_BOTTOM),v=Math.max(0,c.getComputedHeight()-T-M),P=e.attributes?.virtualScrollWindowed===!0,O=e.childNodes[0],_=Math.max(0,Math.floor(P?e.attributes?.scrollHeight??0:O?.yogaNode?.getComputedHeight()??e.attributes?.scrollHeight??0)),C=typeof e.scrollHeight=="number"?e.scrollHeight:_,j=fu({rawScrollTop:e.scrollTop??e.attributes?.scrollTop??0,contentHeight:_,viewportHeight:v,previousScrollHeight:C,stickyScroll:e.stickyScroll??!!e.attributes?.stickyScroll,clampMin:e.attributes?.scrollClampMin,clampMax:e.attributes?.scrollClampMax,virtualScrollWindowed:P,inWindowScrollTop:e.attributes?.inWindowScrollTop,previousAppliedScrollTop:e.appliedScrollTop,regionTop:u+T});e.scrollHeight=j.scrollHeight,e.scrollViewportHeight=v,e.scrollViewportTop=j.viewportTop,e.appliedScrollTop=j.appliedScrollTop,j.scrollHint&&(Nh=j.scrollHint),e.scrollTop=j.scrollTop,m=j.scrollOffsetY}if(S||x){let T=S?l+c.getComputedBorder(so.EDGE_LEFT):void 0,M=S?l+c.getComputedWidth()-c.getComputedBorder(so.EDGE_RIGHT):void 0,v=x?u+c.getComputedBorder(so.EDGE_TOP):void 0,P=x?u+c.getComputedHeight()-c.getComputedBorder(so.EDGE_BOTTOM):void 0;t.clip({x1:T,x2:M,y1:v,y2:P}),p=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let h of e.childNodes)rb(h,t,{offsetX:l,offsetY:u-m,transformers:f,skipStaticElements:a});p&&t.unclip()}}},"renderNodeToOutput"),Dh=rb;import h1 from"slice-ansi";import g1 from"string-width";import{styledCharsFromTokens as x1,styledCharsToString as y1,tokenize as S1}from"@alcalzone/ansi-tokenize";var Bh=class{static{o(this,"OutputCaches")}widths=new Map;blockWidths=new Map;styledChars=new Map;getStyledChars(t){let n=this.styledChars.get(t);return n===void 0&&(n=x1(S1(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=g1(t),this.widths.set(t,n)),n}getWidestLine(t){let n=this.blockWidths.get(t);if(n===void 0){let r=0;for(let i of t.split(`
|
|
116
|
+
`))r=Math.max(r,this.getStringWidth(i));n=r,this.blockWidths.set(t,n)}return n}},Rs=class{static{o(this,"Output")}width;height;operations=[];caches=new Bh;constructor(t){let{width:n,height:r}=t;this.width=n,this.height=r}write(t,n,r,i){let{transformers:s}=i;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 i=[];for(let s=0;s<this.width;s++)i.push({type:"char",value:" ",fullWidth:!1,styles:[]});t.push(i)}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:i,transformers:s}=r,{x:a,y:c}=r,l=i.split(`
|
|
117
|
+
`),u=n.at(-1);if(u){let p=typeof u?.x1=="number"&&typeof u?.x2=="number",m=typeof u?.y1=="number"&&typeof u?.y2=="number";if(p){let h=this.caches.getWidestLine(i);if(a+h<u.x1||a>u.x2)continue}if(m){let h=l.length;if(c+h<u.y1||c>u.y2)continue}if(p&&(l=l.map(h=>{let w=a<u.x1?u.x1-a:0,S=this.caches.getStringWidth(h),x=a+S>u.x2?u.x2-a:S;return h1(h,w,x)}),a<u.x1&&(a=u.x1)),m){let h=c<u.y1?u.y1-c:0,w=l.length,S=c+w>u.y2?u.y2-c:w;l=l.slice(h,S),c<u.y1&&(c=u.y1)}}let f=0;for(let[p,m]of l.entries()){let h=t[c+f];if(!h)continue;for(let x of s)m=x(m,p);let w=this.caches.getStyledChars(m),S=a;for(let x of w){h[S]=x;let T=Math.max(1,this.caches.getStringWidth(x.value));if(T>1)for(let M=1;M<T;M++)h[S+M]={type:"char",value:"",fullWidth:!1,styles:x.styles};S+=T}f++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let i=r.filter(s=>s!==void 0);return y1(i).trimEnd()}).join(`
|
|
118
|
+
`),height:t.length}}};var w1=o((e,t,n)=>{if(e.yogaNode){if(t){let p=Qd(e,{skipStaticElements:!0}),m=p===""?0:p.split(`
|
|
119
|
+
`).length,h="";return e.staticNode&&(h=Qd(e.staticNode,{skipStaticElements:!1})),{output:p,outputHeight:m,staticOutput:h?`${h}
|
|
120
|
+
`:"",frame:void 0}}let r=new Rs({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});tb(),Dh(e,r,{skipStaticElements:!0});let i;e.staticNode?.yogaNode&&(i=new Rs({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),Dh(e.staticNode,i,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=hu(r),l=n?.columns??e.yogaNode.getComputedWidth(),u=n?.rows??e.yogaNode.getComputedHeight(),f={screen:c,viewport:{width:l,height:u},cursor:{x:0,y:c.height,visible:!0},scrollHint:nb()};return{output:s,outputHeight:a,staticOutput:i?`${i.get().output}
|
|
121
|
+
`:"",frame:f}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),Hh=w1;var b1=o((e,t)=>{let n=t?.columns??80,r=Vd("ink-root"),i="";r.onComputeLayout=()=>{r.yogaNode.setWidth(n),r.yogaNode.calculateLayout(void 0,void 0,T1.DIRECTION_LTR)},r.onImmediateRender=()=>{let{staticOutput:l}=Hh(r,!1);l&&l!==`
|
|
122
|
+
`&&(i+=l)};let s,a=vs.createContainer(r,C1,null,!1,null,"render-to-string",l=>{s??=l},()=>{},()=>{},()=>{}),c=!1;try{vs.updateContainerSync(e,a,null,()=>{}),vs.flushSyncWork();let{output:l}=Hh(r,!1);if(vs.updateContainerSync(null,a,null,()=>{}),vs.flushSyncWork(),c=!0,r.yogaNode.free(),s!==void 0)throw s instanceof Error?s:new Error(String(s));let u=i.endsWith(`
|
|
123
|
+
`)?i.slice(0,-1):i;return u&&l?u+`
|
|
124
|
+
`+l:u||l}finally{if(!c&&r.yogaNode)try{r.yogaNode.freeRecursive()}catch{}}},"renderToString"),ob=b1;var I1="\x1B[0m";function sb(e,t){if(e.length===0)return"";let n=ib(k,{flexDirection:"column",children:e.map(s=>ib(Lm,{section:s,theme:t.theme,animateSpinners:!1},s.key))}),r=ob(n,{columns:t.width});return(r.endsWith(`
|
|
125
|
+
`)?r.slice(0,-1):r)+I1+`
|
|
126
|
+
`}o(sb,"renderFinalizedSectionsToScrollbackText");function ab(e){return e.enabled&&!e.useRendererViewportShell&&!e.isTranscriptMode&&e.hasCommitHandle}o(ab,"isInlineLedgerActive");function cb(e){if(!e.active)return{kind:"reset"};if(!e.hasCommitHandle)return{kind:"skip"};let t=!e.wasActive,n=t?Is:e.prior,{plan:r,nextState:i}=$0({bannerSection:e.bannerSection??null,finalizedSections:e.finalizedSections,width:e.width},e.identify??wT,n);return t?r.kind==="none"?e.forceRebuild?{kind:"commit",mode:"rebuild",sections:e.finalizedSections,nextState:i}:{kind:"noop",nextState:i}:{kind:"commit",mode:e.forceRebuild?"rebuild":"append",sections:r.sections,nextState:i}:r.kind==="none"?{kind:"noop",nextState:i}:{kind:"commit",mode:r.kind,sections:r.sections,nextState:i}}o(cb,"computeInlineLedgerStep");function lb(e,t,n){return e.kind==="noop"?{state:e.nextState,wasActive:!0,owns:n}:e.kind==="commit"?t.committed?{state:e.nextState,wasActive:!0,owns:t.hadContent}:{state:Is,wasActive:!1,owns:!0}:{state:Is,wasActive:!1,owns:n}}o(lb,"resolveInlineLedgerState");function ub(e,t){return t?{...e,staticSections:[]}:e}o(ub,"gateInlinePromptModel");function k1(e){switch(e.type){case"tool_group":return e.tools.map(t=>{let n=[t.name];return typeof t.output=="string"&&n.push(It(t.output)),t.error&&n.push(It(t.error)),n.join(`
|
|
127
|
+
`)}).join(`
|
|
128
|
+
`);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return It(e.text);default:return""}}o(k1,"buildSearchText");function v1(e,t){let n=e.replace(/\s+/g," ").trim();if(!n)return"";let r=n.toLowerCase(),i=t.toLowerCase(),s=r.indexOf(i);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}`}o(v1,"buildExcerpt");function db(e){return e.map((t,n)=>({itemId:t.id,itemIndex:n,searchText:k1(t)}))}o(db,"createTranscriptSearchIndex");function fb(e,t){let n=t.trim().toLowerCase();return n?e.flatMap(r=>{let i=r.searchText;return i.toLowerCase().includes(n)?[{itemId:r.itemId,itemIndex:r.itemIndex,excerpt:v1(i,t.trim())}]:[]}):[]}o(fb,"searchTranscriptIndex");function Wh(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}o(Wh,"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`}o(pb,"buildTranscriptSearchSummary");function mb(e,t,n){if(t.length===0||!n)return 0;let r=t.findIndex(a=>a.itemId===n);if(r>=0)return r;let i=e.find(a=>a.itemId===n)?.itemIndex;if(i===void 0)return 0;let s=t.findIndex(a=>a.itemIndex>=i);return s>=0?s:0}o(mb,"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:R1(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"}}}o(hb,"buildTranscriptSelectionSummary");function R1(e){return e.tools.length===1?`Tool call: ${e.tools[0]?.name??"tool"}`:`Tool group: ${e.tools.length} calls`}o(R1,"summarizeToolGroup");function gb(e){return e.map(t=>t.id)}o(gb,"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)]}o(xb,"moveTranscriptSelection");function Fh(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: ${It(t.output)}`),t.error&&n.push(`Error: ${It(t.error)}`),n.join(`
|
|
129
|
+
`)}).join(`
|
|
130
|
+
|
|
131
|
+
`);case"assistant":case"user":case"system":case"thinking":case"error":case"info":case"hint":return It(e.text);default:return}}o(Fh,"buildTranscriptCopyText");function yb(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(`
|
|
132
|
+
`)}).filter(n=>!!n);return t.length>0?t.join(`
|
|
133
|
+
|
|
134
|
+
`):void 0}o(yb,"buildTranscriptToolInputCopyText");import{useCallback as mc,useRef as E1,useState as Sb}from"react";function wb(e){let{state:t,ownsViewport:n,isAwaitingUserInteraction:r,isHistorySearchActive:i,isTranscriptMode:s,historySearchQuery:a}=e,c=w0(t),l;if(t.supportsStickyPrompt&&t.stickyPromptVisible)if(i){let f=a.trim();l={visible:!0,label:f?`Searching transcript for "${f}"`:"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}}o(wb,"buildTranscriptChromeModel");function Tb(e){return Math.max(1,e-2)}o(Tb,"resolveTranscriptPageSize");function Cb(e){return Math.max(3,Math.floor(e/4))}o(Cb,"resolveTranscriptWheelStep");function M1(e,t){return Math.max(0,e+t)}o(M1,"incrementTranscriptScrollOffset");function bb(e,t,n){let r=Math.max(0,t-n);return Math.min(Math.max(0,e),r)}o(bb,"clampTranscriptScrollOffset");function Ib(){let e=E1(null),[t,n]=Sb(0),[r,i]=Sb(!0),s=mc(f=>{n(Math.max(0,f))},[]),a=mc(f=>{i(f)},[]),c=mc(f=>{if(e.current){e.current.scrollTo(f);return}n(Math.max(0,f)),i(f===0)},[]),l=mc(f=>{if(e.current){e.current.scrollBy(f);return}n(p=>M1(p,f)),i(!1)},[]),u=mc(()=>{if(e.current){e.current.scrollToBottom();return}n(0),i(!0)},[]);return{scrollRef:e,scrollOffset:t,sticky:r,setScrollOffset:n,setSticky:i,handleScrollTopChange:s,handleStickyChange:a,scrollTo:c,scrollBy:l,scrollToBottom:u}}o(Ib,"useTranscriptViewportScrollController");function kb(e){let{items:t,renderModel:n,terminalWidth:r,transcriptMaxLines:i,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,i,u,l)).find(w=>w.key===a);if(!p||p.rows.length===0)return!1;let m=new Set(c.map(w=>w.key)),h=Math.max(0,s??0);return h>0&&p.rows.length<=h?p.rows.every(w=>m.has(w.key)):m.has(p.rows[0]?.key??"")}o(kb,"isTranscriptItemVisible");function vb(e){let{items:t,renderModel:n,terminalWidth:r,transcriptMaxLines:i,viewportRows:s,itemId:a,expandedItemKeys:c,showDetailedTools:l=!1}=e,u=n?.sections??us(t,r,i,l,c);return IT(u,a,s)}o(vb,"resolveTranscriptSelectionOffset");function Rb(e){let{items:t,renderModel:n,selectedItemId:r,terminalWidth:i=80,transcriptMaxLines:s=1e3,viewportRows:a,scrollOffset:c=0,expandedItemKeys:l,showDetailedTools:u=!1,preferViewportAnchor:f=!1}=e;if(r&&t.some(p=>p.id===r))return r;if(f&&c>0&&a&&a>0){let p=n?.sections??us(t,i,s,u,l),m=n?.rows??Ho(p),w=Mm(m,a,c)[0]?.key,S=w?p.find(x=>x.rows.some(T=>T.key===w)):void 0;if(S?.key)return S.key}return t[t.length-1]?.id}o(Rb,"resolveTranscriptSearchAnchorItemId");function Eb(e){let t=Ua(e.stickyHeader),n=Ou(t,e.width),r=Math.max(0,e.topChromeRows??0);return{contentWindow:e.window,topOffsetRows:n+r,stickyHeaderRows:n,topChromeRows:r}}o(Eb,"resolveTranscriptOwnedWindowGeometry");function A1(e){return e.text===" "?"":It(e.text)}o(A1,"normalizeTranscriptRowText");function Uh(e){let t=new Map;return e.forEach((n,r)=>{t.set(n.key,r)}),t}o(Uh,"buildTranscriptRowIndexByKey");function _1(e,t={}){let n=Math.max(0,e.indent??0),r=e.spinner&&t.animateSpinners!==!1?2:0;return 1+n+r}o(_1,"resolveTranscriptTextStartColumn");function Mb(e,t={}){let n=Math.max(0,t.topOffsetRows??0),r=t.rowIndexByKey??Uh(t.allRows??e),i=e.map((s,a)=>{let c=A1(s),l=_1(s,t),u=to(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+ET(c)}});return{rows:i,topRow:i[0]?.screenRow??n+1,bottomRow:i[i.length-1]?.screenRow??n,viewportHeight:Math.max(0,t.viewportHeight??e.length)}}o(Mb,"buildTranscriptScreenBuffer");function L1(e,t){let n=Math.max(1,Math.floor(t));return MT(e.text,n-e.textStartColumn)}o(L1,"clampTextColumn");function jh(e,t){return{screenRow:e,point:{rowKey:e.key,modelRowIndex:e.modelRowIndex,column:L1(e,t)}}}o(jh,"toHit");function Gh(e,t,n){let r=e.rows.find(i=>i.screenRow===t);return r?jh(r,n):void 0}o(Gh,"hitTestTranscriptScreen");function Vh(e,t,n){if(e.rows.length!==0)return t<=e.topRow?jh(e.rows[0],n):t>=e.bottomRow?jh(e.rows[e.rows.length-1],n):Gh(e,t,n)}o(Vh,"clampTranscriptScreenHit");function Ab(e){return e.text===" "?"":It(e.text)}o(Ab,"normalizeTranscriptRowText");function _b(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}o(_b,"comparePoints");function Lb(e,t,n,r={}){if(e.length===0)return;let[i,s]=_b(t,n)<=0?[t,n]:[n,t],a=r.selectFullRowOnCollapsed===!0,c=_b(t,n)===0,l=e[i.modelRowIndex],u=e[s.modelRowIndex];if(!l||!u)return;let f=a&&c?{...i,column:0}:i,p=a&&c?{...s,column:to(Ab(u))}:s,m=new Map,h=[],w=0;for(let S=f.modelRowIndex;S<=p.modelRowIndex;S+=1){let x=e[S];if(!x)continue;let T=Ab(x),M=to(T),v=S===f.modelRowIndex?f.column:0,P=S===p.modelRowIndex?p.column:M,O=Math.max(0,Math.min(v,M)),_=Math.max(O,Math.min(P,M)),C=ds(T,O,_);_>O&&(m.set(x.key,{start:O,end:_}),w+=_-O),h.push(C)}if(m.size!==0)return{anchor:t,focus:n,rowRanges:m,rowCount:h.length,charCount:w,text:h.join(`
|
|
135
|
+
`)}}o(Lb,"buildTranscriptScreenSelection");function Pb(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`}o(Pb,"buildTranscriptScreenSelectionSummary");function $b(e,t){return e.rows.length===0?0:t<e.topRow?1:t>e.bottomRow?-1:0}o($b,"resolveTranscriptDragEdgeScrollDirection");function Jd(e){return e?e.map(t=>({label:t.label,value:t.value,description:t.description})):[]}o(Jd,"toSelectOptions");function Kh(e){return e.question}o(Kh,"getAskUserDialogTitle");function P1(e){switch(e){case"confirm":return ne("waiting.confirm");case"select":return ne("waiting.select");case"input":return ne("waiting.input")}}o(P1,"formatPromptWaitingText");function Ob(e){return e.waitingReason==="confirm"?ne("placeholder.confirm"):e.waitingReason==="select"?ne("placeholder.select"):e.waitingReason==="input"?ne("placeholder.input"):e.isLoading?e.canQueueFollowUps?ne("placeholder.queue"):ne("placeholder.busy"):ne("placeholder.idle")}o(Ob,"buildPromptPlaceholderText");function Nb(e){if(e.isTranscriptMode)return;if(e.waitingReason)return{kind:"waiting",text:P1(e.waitingReason),showSpinner:!1};if(e.workflowBuilderMessage)return{kind:"busy",text:e.workflowBuilderMessage,showSpinner:!0};if(e.backgroundWorkflowMessage)return{kind:"busy",text:e.backgroundWorkflowMessage,showSpinner:!0};if(!e.isLoading)return;let t=Pm({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}o(Nb,"buildPromptActivityViewModel");function Db(e,t,n){if(e){if(e.userOverrideContextWindow!==void 0)return e.contextWindow===e.userOverrideContextWindow?e:{...e,contextWindow:e.userOverrideContextWindow};try{let i=n(t.provider)?.getEffectiveContextWindow?.(t.model);if(i!==void 0&&i!==e.contextWindow)return{...e,contextWindow:i};if(i!==void 0)return e}catch{}return e}}o(Db,"resolveEffectiveCompactionInfo");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}}o(Bb,"buildSurfaceStatusBarProps");function Hb(e){let t=Eh(e.state),n=t?jd(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&&S0(e.state)},toggleDetail:t&&!!n,navigationCapabilities:{selection:t&&!!n&&e.selectableItemIds.length>0}}}o(Hb,"buildTranscriptSelectionRuntimeState");function Wb(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}}o(Wb,"buildTranscriptSelectionViewModel");function Fb(e){return{query:e.query,matches:e.matches,currentMatchIndex:e.currentMatchIndex,anchorItemId:e.anchorItemId,statusText:e.useOverlaySurface?void 0:e.statusText}}o(Fb,"buildTranscriptSearchViewModel");function $1(e,t){return e===0?0:t<0?-1:Math.min(t,e-1)}o($1,"clampTranscriptSearchSelectedIndex");function O1(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}o(O1,"buildTranscriptSearchDetailText");function Ub(e){let t=$1(e.matches.length,e.selectedIndex),n=pb(e.matches,t),r=O1({isHistorySearchActive:e.isHistorySearchActive,historySearchQuery:e.historySearchQuery,matches:e.matches,clampedSelectedIndex:t});return{clampedSelectedIndex:t,statusText:n,detailText:r,searchState:Fb({query:e.historySearchQuery,matches:e.matches,currentMatchIndex:t,anchorItemId:e.anchorItemId,statusText:n,useOverlaySurface:e.useOverlaySurface})}}o(Ub,"buildTranscriptSearchChrome");function N1(e=!1){return`\u2190/\u2192 enter select mode | Ctrl+E ${e?"collapse":"show all"} | Mouse drag selects text`}o(N1,"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}o(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}o(Gb,"buildBaseFooterNotices");function Vb(e){if(e.inputText.trim()&&(e.isTranscriptMode||e.isHistorySearchActive))return"Draft preserved while viewing transcript"}o(Vb,"buildStashNoticeText");function Kb(e){return[...e]}o(Kb,"buildPromptFooterNotices");function D1(e){let n=(e.isHistorySearchActive?[e.historySearchDetailText]:[e.selectionSummary,e.actionSummary]).filter(r=>!!(r&&r.trim().length>0));return n.length===0?N1(e.showAllActive):n.join(" | ")}o(D1,"buildTranscriptFooterSecondaryText");function B1(e){let t=[];return e&&t.push(e),t}o(B1,"buildTranscriptFooterBudgetNotices");function zb(e){let t=e.selectionState?.copyCapabilities,n=e.selectionState?.navigationCapabilities,i=Pb(e.textSelection),s=e.textSelection?ps({copyMessage:!0,copyToolInput:!1,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!1,selectionNavigation:!1,matchNavigation:!1,dismissAction:"clear"}):e.selectionState?.itemSummary?ps({copyMessage:!!t?.message,copyToolInput:!!t?.toolInput,copyOnSelect:!!t?.copyOnSelect,toggleDetail:!!e.selectionState?.toggleDetail,selectionNavigation:!!n?.selection,matchNavigation:!1,dismissAction:"clear"}):void 0,a=D1({isHistorySearchActive:e.isHistorySearchActive,historySearchDetailText:e.historySearchDetailText,selectionSummary:i,actionSummary:s,showAllActive:e.showAllActive,baseFooterNotices:e.baseFooterNotices});return{selectionSummary:i,actionSummary:s,secondaryText:a,budgetNotices:B1(a)}}o(zb,"buildTranscriptFooterViewModel");import{jsx as jY,jsxs as GY}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}}o(Xb,"formatAmaWorkStripText");function Yb(e){return e.replace(/^\[[^\]]+\]\s*/,"").trim()}o(Yb,"stripLiveActivityPrefix");function qb(e){let t=[],n=e.showPrimary??!0;if(e.isLoading&&n){let l=e.currentTool?Yb(Xu(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,i,s,...a]=t,c=[r,i,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}}o(qb,"buildBackgroundTaskViewModel");function Qb(e,t){if(!(!t||!e||e.agentMode!=="ama"&&e.agentMode!=="amaw"))return Xb(e.childFanoutClass,e.childFanoutCount)}o(Qb,"buildAmaWorkStripFromStatus");function zh(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"||e.agentMode==="amaw"?`${e.agentMode.toUpperCase()} active`:void 0),parallelText:e.parallelTextOverride??t,currentTool:e.currentTool,toolInputCharCount:e.toolInputCharCount,toolInputContent:e.toolInputContent,liveActivityLabel:e.liveActivityLabel,isThinkingActive:e.isThinkingActive})}}o(zh,"buildAmaSummaryViewModel");function Xh(e){return{...e,items:[...e.items],managedLiveEvents:[...e.managedLiveEvents??[]]}}o(Xh,"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}o(Jb,"countPendingTranscriptUpdates");function Zb(e){return e.snapshot?[...e.snapshot.items]:e.surface==="transcript"?[...e.transcriptItems]:[...e.promptItems]}o(Zb,"resolveTranscriptSurfaceItems");function eI(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,...i}=n;t.push(i);break}default:break}return t}o(eI,"buildPromptSurfaceItems");function tI(e,t){return e.enabled?t==="transcript"?e.transcriptShell:e.promptShell:"main-screen"}o(tI,"resolveFullscreenShellMode");function H1(e,t){return e.enabled&&tI(e,t)==="virtual"}o(H1,"shouldUseRendererViewportShell");function nI(e,t){let n=tI(e,t),r=e.enabled&&n==="virtual",i=e.enabled&&n==="virtual",s=r&&(e.mouseWheel||e.mouseClicks),a=s&&e.mouseClicks,c=i&&e.mouseWheel;return{shellMode:n,usesAlternateScreenShell:r,usesRendererViewportShell:i,usesRendererMouseTracking:s,usesManagedMouseClicks:a,usesManagedMouseWheel:c,usesManagedSelection:i,usesManagedWheelHistory:c,usesNativeMainScreenScrollback:!i}}o(nI,"resolveTranscriptInteractionPolicy");function rI(e,t,n){return H1(e,t)?t==="transcript"||n:!1}o(rI,"shouldOwnTranscriptViewport");var W1=500,F1=1,U1=/[\p{L}\p{N}_/.\-+~\\]/u;function j1(e){return e.text===" "?"":e.text}o(j1,"normalizeTranscriptRowText");function oI(e,t){return e.modelRowIndex!==t.modelRowIndex?e.modelRowIndex-t.modelRowIndex:e.column-t.column}o(oI,"comparePoints");function Yh(e){return e===""||/\s/.test(e)?0:U1.test(e)?1:2}o(Yh,"charClass");function iI(e){let t=e.timeoutMs??W1,n=e.distance??F1,r=e.time-e.previous.time<=t,i=Math.abs(e.row-e.previous.row)<=n&&Math.abs(e.column-e.previous.column)<=n,s=r&&i?Math.min(3,e.previous.count+1):1;return{time:e.time,row:e.row,column:e.column,count:s}}o(iI,"resolveTranscriptMultiClickState");function Zd(e,t,n){let r=e[t.modelRowIndex];if(!r)return;let i=j1(r);if(n==="line")return{kind:n,start:{...t,column:0},end:{...t,column:to(i)}};let s=to(i);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=Yh(nd(i,a)),l=a,u=a+1;for(;l>0&&Yh(nd(i,l-1))===c;)l-=1;for(;u<s&&Yh(nd(i,u))===c;)u+=1;return{kind:n,start:{...t,column:l},end:{...t,column:u}}}o(Zd,"resolveTranscriptSelectionSpanAt");function qh(e,t){return oI(t.end,e.start)<0?{anchor:e.end,focus:t.start}:oI(t.start,e.end)>0?{anchor:e.start,focus:t.end}:{anchor:e.start,focus:e.end}}o(qh,"extendTranscriptSelectionSpan");function Qh(e){return{messages:e.messages,title:e.title,gitRoot:e.gitRoot??"",...e.tag!==void 0?{tag:e.tag}:{},...e.uiHistory!==void 0?{uiHistory:e.uiHistory}:{},...e.lineage!==void 0?{lineage:e.lineage}:{},...e.artifactLedger!==void 0?{artifactLedger:e.artifactLedger}:{}}}o(Qh,"buildHostSessionPayload");var aI="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 ef(e,t){if(tn(e))return[t.getGuardrail()]}o(ef,"buildAutoModeGuardrails");function V1(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:e.thinking===!0||t.thinking===!0?"auto":"off"}o(V1,"resolveInitialReasoningMode");function Jh(e){return It(e.map(t=>typeof t=="string"?t:String(t)).join(" "))}o(Jh,"formatCapturedConsoleOutput");function Zh(e){let t=e.map(It).join(`
|
|
136
|
+
`).trimEnd();return t.trim().length>0?t:void 0}o(Zh,"joinCapturedConsoleOutput");function K1(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,i=n.startsWith("[")?`${n} ${r}`:`${n} / ${r}`;return i.length>220?`${i.slice(0,217)}...`:i}o(K1,"buildManagedTranscriptCompactText");function cI(e){let t=K1(e);return{type:"event",icon:fh(e)?"\u2713":">",text:e,...t&&t!==e?{compactText:t}:{}}}o(cI,"toManagedTranscriptEventItem");function ao(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}}o(ao,"toCreatableHistoryItem");function tg(e){return by(e)?"":Pi(e).trim()}o(tg,"sanitizeInterruptedAssistantText");function lI(e){return!!(e?.activeWorkerId&&!e.childFanoutClass&&(e.phase==="preflight"||e.phase==="worker"))}o(lI,"isForegroundManagedStreamingStatus");function z1(e,t,n){let r=[],i=n?.infoItems??[],s=ng({thinking:e,toolCalls:n?.toolCalls,toolNames:n?.toolNames});for(let c of i){let l=c.trim();l&&r.push({type:"info",text:l})}r.push(...s);let a=tg(t);return a&&r.push({type:"assistant",text:`${a}
|
|
137
|
+
|
|
138
|
+
[Interrupted]`}),r}o(z1,"buildInterruptedPersistenceItems");function ng({thinking:e,response:t,toolCalls:n,toolNames:r}){let i=[],s=e?.trim()??"",a=t?.trim()??"",c=n&&n.length>0?[...n]:[],l=r&&r.length>0?[...r]:[];return s&&i.push({type:"thinking",text:s}),c.length>0?i.push({type:"tool_group",tools:c}):!s&&!a&&l.length>0&&i.push({type:"info",icon:"*",text:`Tools: ${l.join(", ")}`}),a&&i.push({type:"assistant",text:a}),i}o(ng,"buildRoundHistoryItems");function xI(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()}:{}}}o(xI,"toPersistedUiHistoryItem");var uI=150,dI=50,fI=process.env.KODAX_TRANSCRIPT_HARNESS_MARKERS==="1",X1=process.env.KODAX_SCROLL_OVERSCAN==="1"?80:void 0;function zo(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>dI){let r=t[t.length-dI]??0;n=e.slice(r)}if(n.length>uI){let r=n.slice(-uI),i=r.findIndex(s=>s.type==="user");n=i>0?r.slice(i):r}return[...n]}o(zo,"trimPersistedUiHistorySnapshot");function Es(e){if(e)return zo(e)}o(Es,"normalizePersistedUiHistory");function pI(e){return zo(e.map(t=>xI(t)).filter(t=>!!t))}o(pI,"serializeUiHistorySnapshot");function Y1(e){return e.map(t=>xI(t)).filter(t=>!!t)}o(Y1,"serializeCreatableHistoryItems");function tf(e,t){return t.length===0?zo(e):zo([...e,...Y1(t)])}o(tf,"appendPersistedUiHistorySnapshot");function nf(e,t,n){console.log((e==="block"?Qe.red:Qe.yellow)(t)),n.forEach(r=>console.log(Qe.dim(r)))}o(nf,"logSessionTransitionGuard");var eg=o(({config:e,sessionId:t,workingDir:n,compactionInfo:r})=>{let i=oe("dark"),s=e.model??vn(e.provider)??e.provider,a=Fl(e.provider,e.model),c=Ul(a),l=r?Math.round(r.contextWindow/1e3):0,u=r?Math.round(r.contextWindow*r.triggerPercent/100/1e3):0;return Zt(k,{flexDirection:"column",marginBottom:1,children:[mh.map((f,p)=>se(b,{color:i.colors.primary,children:f},p)),Zt(k,{children:[se(b,{color:i.colors.primary,children:" \u258E "}),se(b,{color:i.colors.primary,children:"AI Coding Agent \xB7 Minimalist & Intelligent"})]}),Zt(k,{children:[se(b,{color:i.colors.success,children:" \u258E "}),Zt(b,{bold:!0,color:i.colors.text,children:["v",_i]}),se(b,{dimColor:!0,children:" \xB7 "}),Zt(b,{color:i.colors.success,children:[e.provider,"/",s]}),se(b,{dimColor:!0,children:` [${c}]`}),se(b,{dimColor:!0,children:" \xB7 "}),se(b,{color:i.colors.primary,children:e.agentMode.toUpperCase()}),se(b,{dimColor:!0,children:" / "}),se(b,{color:i.colors.accent,children:e.permissionMode}),e.reasoningMode!=="off"&&Zt(gI,{children:[se(b,{dimColor:!0,children:" \xB7 "}),se(b,{color:i.colors.warning,children:`reason:${e.reasoningMode}`})]})]}),r&&Zt(k,{children:[se(b,{color:i.colors.accent,children:" \u258E "}),se(b,{color:i.colors.text,children:`ctx ${l}k \xB7 compaction `}),se(b,{color:r.enabled?i.colors.success:i.colors.text,children:r.enabled?"on":"off"}),se(b,{color:i.colors.text,children:` @ ${r.triggerPercent}% (${u}k)`})]}),Zt(k,{children:[se(b,{color:i.colors.secondary,children:" \u258E "}),se(b,{color:i.colors.text,children:"session "}),se(b,{color:i.colors.primary,children:t}),se(b,{color:i.colors.text,children:" \xB7 "}),se(b,{color:i.colors.text,children:n})]})]})},"Banner");function q1(e){let t=e.config.model??vn(e.config.provider)??e.config.provider,n=Fl(e.config.provider,e.config.model),r=Ul(n),i=e.compactionInfo?Math.round(e.compactionInfo.contextWindow/1e3):0,s=e.compactionInfo?Math.round(e.compactionInfo.contextWindow*e.compactionInfo.triggerPercent/100/1e3):0,a=" \u258E AI Coding Agent \xB7 Minimalist & Intelligent",c=` \u258E v${_i} \xB7 ${e.config.provider}/${t} [${r}] \xB7 ${e.config.agentMode.toUpperCase()} / ${e.config.permissionMode}${e.config.reasoningMode!=="off"?` \xB7 reason:${e.config.reasoningMode}`:""}`,l=e.compactionInfo?` \u258E ctx ${i}k \xB7 compaction ${e.compactionInfo.enabled?"on":"off"} @ ${e.compactionInfo.triggerPercent}% (${s}k)`:void 0,u=` \u258E session ${e.sessionId} \xB7 ${e.workingDir}`,f=[],p=o(h=>{let w=rn(h.length>0?h.split(`
|
|
139
|
+
`):[""],Math.max(1,e.terminalWidth),0,0);return w.visualLines.length>0?w.visualLines:[""]},"wrapBannerLine"),m=o((h,w,S)=>{p(w).forEach((x,T)=>{f.push({key:`${h}-${T}`,text:x,...S})})},"pushLineRows");return mh.forEach((h,w)=>{m(`banner-logo-${w}`,h,{color:"primary"})}),m("banner-tagline",a,{color:"primary"}),m("banner-version",c,{color:"text",bold:!0}),l&&m("banner-compaction",l,{color:"text"}),m("banner-session",u,{color:"text"}),f.push({key:"banner-blank",text:" "}),{key:"banner",rows:f}}o(q1,"buildBannerTranscriptSection");function mI(e,t){return t?{...e,sections:[t,...e.sections],rows:[...t.rows,...e.rows]}:e}o(mI,"prependTranscriptSection");var Q1=process.env.KODAX_INLINE_LEDGER!=="0";function hI(e,t){if(process.env.KODAX_INLINE_LEDGER_DEBUG!=="1")return;let n=t instanceof Error?t.message:t!==void 0?String(t):"";process.stderr.write(`[inline-ledger] ${e}${n?`: ${n}`:""} \u2014 rebuilding on next change
|
|
140
|
+
`)}o(hI,"reportInlineLedgerFailure");var J1=o(({options:e,config:t,context:n,storage:r,rendererMode:i,fullscreenPolicy:s,onExit:a,compactionInfo:c,autoModeBootstrap:l,setAutoModeAskUser:u,setAutoModeEngineChange:f,setCurrentConfigRef:p,onAgentsFilesReload:m,teamModeHandle:h})=>{let{exit:w}=Jr(),{stdout:S}=rr(),{stdin:x,setRawMode:T,isRawModeSupported:M}=Ba(),v=os(),{history:P}=Za(),O=sI.useRef(null),_=sI.useRef(ly()),{addHistoryItem:C,addHistoryItems:j,clearHistory:ue,setSessionId:ge}=ec(),de=Se(P),Y=Se(pI(P));He(()=>{de.current=P,Y.current=pI(P)},[P]),He(()=>{t0()},[]),He(()=>{Py()},[]);let L=S.columns||80,I=rc(),le=Se(I);He(()=>{le.current=I},[I]);let{startStreaming:We,stopStreaming:K,abort:z,startThinking:fe,appendThinkingChars:J,appendThinkingContent:ce,stopThinking:U,clearThinkingContent:Re,setCurrentTool:Pe,appendToolInputChars:be,appendToolInputContent:De,clearToolInputContent:Oe,clearResponse:ie,appendResponse:gt,getSignal:Pt,getFullResponse:ee,getThinkingContent:xe,startNewIteration:A,clearIterationHistory:H,startCompacting:D,stopCompacting:pe,setMaxIter:Le,addPendingInput:Ye,removeLastPendingInput:Ee,shiftPendingInput:Ie,consumePendingInputs:q}=oc(),[te,Be]=Ge(!1),[W,Ue]=Ge(t),vt=me(()=>Db(c,{provider:W.provider,model:W.model},ua),[c,W.provider,W.model]),[Lr,Pr]=Ge(!0),[gf,AN]=Ge(!0),[vc,Rc]=Ge(0),[xf,Ps]=Ge(!1),[Sg,Kn]=Ge(null),Qo=Se(!1),Uk=me(()=>Mo(),[]),$s=Se(null),Ec=Se(null),wg=Se(Promise.resolve()),Mc=Se(null),uo=Se({requested:!1,uiHistoryOverride:void 0}),Jo=Se(null),Os=Se(!1),Ns=Se(null),[Ac,_c]=Ge(!0),[yf,Lc]=Ge(""),[je,zn]=Ge(()=>a0(Uk,{rendererMode:i})),[Rt,Sf]=Ge(!1),[jk,Gk]=Ge(0),{scrollRef:Vk,scrollOffset:Pn,sticky:wf,setScrollOffset:Kk,handleScrollTopChange:zk,handleStickyChange:Xk,scrollTo:Pc,scrollBy:$c,scrollToBottom:Oc}=Ib(),Tf=Se(null),Nc=Se(null),Ds=Se([]),Dc=Se([]),Zo=Se(null),$n=Se(null),Tg=Se({time:0,row:-1,column:-1,count:0}),[Bc,Cf]=Ge(void 0),[fr,bf]=Ge(void 0),[ei,Cg]=Ge(void 0),[dn,Yk]=Ge(()=>new Set),[If,bg]=Ge(null),[Ft,Ig]=Ge(null),[G,Hc]=Ge(null),[kg,ti]=Ge(null),[kf,vf]=Ge(null),[Wc,$r]=Ge([]),ni=me(()=>{for(let d of Wc)if(d.status==="in_progress"){if(d.activeForm&&d.activeForm.length>0)return d.activeForm;if(d.subject&&d.subject.length>0)return d.subject}},[Wc]),[_N,Bs]=Ge([]),[Hs,qk]=Ge([]),[Fc,pt]=Ge(void 0),[fo,Ws]=Ge(void 0),it=Se(null),Uc=Se(null),po=Se([]),ri=Se([]),Xt=Se([]),Rf=Se(new Set),st=Se({}),mt=Se({activeToolGroupTools:[]}),vg=Se(0),jc=Se({itemId:void 0,kind:"thinking",pendingText:""}),On=Se(null),Qk=80,Jk=20,Zk=Se(null),Gc=me(()=>[...P,...Hs],[P,Hs]),Ef=me(()=>{let d=CT(Gc,Zk);return d===0?Gc:Gc.slice(d)},[Gc]),Vc=me(()=>bT(Ef,Jk),[Ef]),oi=Ef,Ut=Se(null),Xn=Se(null),Yn=Se([]),jt=Se([]),[mo,ev]=Ge([]),pr=Se([]),Tn=X(d=>{pr.current=d,ev(d)},[]),Rg=X(d=>{po.current=d,Bs(d)},[]),ii=X(d=>{Xt.current=d,qk(d)},[]),Eg=X(d=>{let g=d([...Xt.current]);ii(g)},[ii]),Mg=X(d=>{d.length!==0&&ii([...Xt.current,...d])},[ii]),Kc=X(d=>{let g=mt.current,y=g.activeToolGroupTools.some(E=>E.status===$.Executing);mt.current={...d?.clearOwner?{}:{workerId:g.workerId,workerTitle:g.workerTitle},...y?{activeToolGroupItemId:g.activeToolGroupItemId,activeToolGroupTools:g.activeToolGroupTools}:{activeToolGroupTools:[]}},d?.clearOwner&&(st.current={})},[]),zc=X(d=>{for(let g of d)g.type==="user"&&typeof g.id=="string"&&Rf.current.add(g.id)},[]),Fs=X(()=>{jc.current={itemId:void 0,kind:"thinking",pendingText:""},On.current&&(clearTimeout(On.current),On.current=null);let d=Gm(Xt.current,Rf.current);if(d.length>0){for(let g of d)Rf.current.add(g.id);Jo.current?.(d.map(g=>ao(g)))}Kc({clearOwner:!0}),ii([])},[Kc,ii]),Xc=X(d=>(vg.current+=1,`managed-foreground-${d}-${vg.current}`),[]),Cn=X(d=>(Mg([d]),d.id),[Mg]),Nn=X((d,g)=>{st.current.workerId?Cn({id:`${g}-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:d.type,text:d.text,...d.icon?{icon:d.icon}:{},...d.tightSpacing?{tightSpacing:!0}:{},timestamp:Date.now()}):C(d)},[C,Cn]),mr=X((d,g)=>{if(!d)return;let y;return Eg(E=>E.map(R=>R.id!==d?R:(y=g(R),y))),y},[Eg]),si=X((d,g)=>{let y=mt.current;if(y.activeKind===d){if(d==="thinking"&&y.activeThinkingItemId)return y.activeThinkingItemId;if(d==="assistant"&&y.activeAssistantItemId)return y.activeAssistantItemId;if(d==="tool_group"&&y.activeToolGroupItemId)return y.activeToolGroupItemId}let E=Date.now(),R=g?.trim()?`[${g.trim()}] `:"",B=y.activeToolGroupTools.some(V=>V.status===$.Executing);if(d==="thinking"){let V=Cn({id:Xc("thinking"),type:"thinking",timestamp:E,text:R});return mt.current={...mt.current,activeKind:"thinking",activeThinkingItemId:V,currentTurnThinkingItemId:V,activeAssistantItemId:void 0,...B?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},V}if(d==="assistant"){let V=Cn({id:Xc("assistant"),type:"assistant",timestamp:E,text:R});return mt.current={...mt.current,activeKind:"assistant",activeThinkingItemId:void 0,activeAssistantItemId:V,...B?{}:{activeToolGroupItemId:void 0,activeToolGroupTools:[]}},V}let F=Cn({id:Xc("tool_group"),type:"tool_group",timestamp:E,tools:[]});return mt.current={...mt.current,activeKind:"tool_group",activeThinkingItemId:void 0,activeAssistantItemId:void 0,activeToolGroupItemId:F,activeToolGroupTools:[]},F},[Cn,Xc]),hr=X(()=>{On.current&&(clearTimeout(On.current),On.current=null);let d=jc.current;if(!d.pendingText||!d.itemId)return;let g=d.pendingText,y=d.itemId,E=d.kind;d.pendingText="",mr(y,R=>R.type!==E?R:{...R,text:`${R.text}${g}`})},[mr]),Ag=X(()=>{On.current||(On.current=setTimeout(hr,Qk))},[hr]),Yc=X((d,g)=>{if(!g)return;let y=mt.current.workerTitle,E=si(d,y),R=jc.current;R.itemId===E&&R.kind===d?R.pendingText+=g:(hr(),R.itemId=E,R.kind=d,R.pendingText=g),Ag()},[si,hr,Ag]),_g=X(d=>{let g=d.trim();if(!g)return;let y=jc.current;y.kind==="thinking"&&y.pendingText&&(y.pendingText="",On.current&&(clearTimeout(On.current),On.current=null));let E=mt.current.workerTitle?.trim(),R=E?`[${E}] ${g}`:g,B=mt.current.currentTurnThinkingItemId;if(B){mr(B,V=>V.type==="thinking"?{...V,text:R}:V);return}let F=si("thinking",mt.current.workerTitle);mr(F,V=>V.type==="thinking"?{...V,text:R}:V)},[si,mr]),Dn=X(d=>{hr();let g=mt.current;if(g.activeToolGroupItemId&&g.activeToolGroupTools.some(F=>F.id===d.id)){let F=g.activeToolGroupTools.map(ae=>ae.id===d.id?d:ae),V=F.every(ae=>ae.status===$.Success||ae.status===$.Error||ae.status===$.Cancelled);mt.current={...g,...V?{activeToolGroupItemId:void 0,activeToolGroupTools:[]}:{activeToolGroupTools:F}},mr(g.activeToolGroupItemId,ae=>ae.type==="tool_group"?{...ae,tools:F}:ae);return}let y=Xt.current;for(let F=y.length-1;F>=0;F-=1){let V=y[F];if(V.type!=="tool_group"||!V.tools.some(we=>we.id===d.id))continue;let ae=V.tools.map(we=>we.id===d.id?d:we);mr(V.id,we=>we.type==="tool_group"?{...we,tools:ae}:we);return}let E=si("tool_group",g.workerTitle),B=g.activeKind==="tool_group"&&g.activeToolGroupItemId===E?g.activeToolGroupTools.some(F=>F.id===d.id)?g.activeToolGroupTools.map(F=>F.id===d.id?d:F):[...g.activeToolGroupTools,d]:[d];mt.current={...mt.current,activeKind:"tool_group",activeToolGroupItemId:E,activeToolGroupTools:B},mr(E,F=>F.type==="tool_group"?{...F,tools:B}:F)},[si,mr,hr]),tv=X(d=>{hr();let g=mt.current,y=g.activeToolGroupTools.some(B=>B.status===$.Executing),E=pr.current.filter(B=>B.status===$.Executing),R=new Set(E.map(B=>B.id));mt.current={workerId:d?.workerId,workerTitle:d?.workerTitle,...y?{activeToolGroupItemId:g.activeToolGroupItemId,activeToolGroupTools:g.activeToolGroupTools}:{activeToolGroupTools:[]}},st.current={workerId:d?.workerId,workerTitle:d?.workerTitle},Yn.current=[],jt.current=jt.current.filter(B=>R.has(B.id)),Tn(E),Oe(),Pe(void 0),U(),Re(),ie(),pt(void 0)},[hr,Oe,ie,Re,Pe,Tn,pt,U]),nv=X(d=>{if(d.length===0)return[];let g=[],y=[...po.current],E=[...ri.current];for(let R of d){let B=R.item,F=y.findIndex(V=>V.id===B.id);if(F>=0){let V=y[F];Od(V,B)||(y=y.map((ae,we)=>we===F?{...B,timestamp:V.timestamp}:ae))}else y=[...y,B].slice(-12),g.push(B);if(R.persistToHistory){let V=E.findIndex(ae=>ae.id===B.id);if(V>=0){let ae=E[V];Od(ae,B)||(E=E.map((we,xt)=>xt===V?{...B,timestamp:ae.timestamp}:we))}else E=[...E,B].slice(-48)}}return ri.current=E,(g.length>0||y.some((R,B)=>!Od(R,po.current[B]??R)||R.id!==po.current[B]?.id))&&Rg(y),g},[Rg]),qc=X(d=>{if(jt.current.findIndex(y=>y.id===d.id)===-1){jt.current=[...jt.current,d];return}jt.current=jt.current.map(y=>y.id===d.id?d:y)},[]),Or=X(d=>{let g=pr.current.filter(y=>y.status===$.Executing);if(g.length!==0){if(d){let y=dh(d);for(let E=g.length-1;E>=0;E-=1){let R=g[E];if(dh(R.name)===y)return R}}return g[g.length-1]}},[]),ai=X(()=>{let d=Or();Pe(d?uh(d.name):void 0)},[Or,Pe]),Lg=X(d=>(qc(d),Tn([...pr.current.filter(g=>g.id!==d.id),d]),ai(),d),[Tn,ai,qc]),ci=X((d,g)=>{let y=pr.current.find(R=>R.id===d);if(!y)return null;let E=g(y);return qc(E),Tn(pr.current.map(R=>R.id===d?E:R)),ai(),E},[Tn,ai,qc]),Pg=X((d,g,y)=>{if(d){let R=ci(d,y);if(R)return R}let E=Or(g);return E?ci(E.id,y):null},[Or,ci]),Qc=X((d,g,y,E,R)=>{let B=d??Or(R)?.id;return B?ci(B,F=>({...F,status:g,endTime:Date.now(),error:y,output:E})):null},[Or,ci]),Us=X((d,g)=>{let y=Date.now(),E=new Map;for(let R of pr.current){if(R.status!==$.Executing)continue;let B=g(R);E.set(R.id,{...R,status:d,endTime:y,...B})}return E.size===0?[]:(jt.current=jt.current.map(R=>E.get(R.id)??R),Tn(pr.current.map(R=>E.get(R.id)??R)),ai(),[...E.values()])},[Tn,ai]),Nr=X(()=>{Tn([])},[Tn]),{showHelp:$g,toggleHelp:rv,setShowHelp:Og}=xh(),ov=X(d=>{Lc(d),_c(d.trim().length===0)},[]),Jc=Do(),Ng=me(()=>Jc?Jc.state.visible&&Jc.suggestions.length>0:!1,[Jc]),[js,Dg]=Ge(!1),Bg=Se(vc),ho=X(()=>{Ut.current&&(clearTimeout(Ut.current),Ut.current=null),Xn.current&&(clearTimeout(Xn.current),Xn.current=null)},[]);He(()=>{Ng&&!js&&Dg(!0)},[Ng,js]),He(()=>{vc!==Bg.current&&(Bg.current=vc,js&&Dg(!1))},[vc,js]);let[tt,Zc]=Ge(null),go=Se(null),[$e,Bn]=Ge(null),el=Se(null),tl=Se($e);tl.current=$e;let[Yt,li]=Ge(""),[nl,Hn]=Ge(0),Mf=Se(""),Gs=Se(void 0),Hg=me(()=>{if(!vt)return;let{contextWindow:d,triggerPercent:g}=vt;return{currentTokens:Sg??n.contextTokenSnapshot?.currentTokens??Ll(n.messages),contextWindow:d,triggerPercent:g}},[n.messages,n.contextTokenSnapshot,vt,Sg]),Vs=me(()=>{if(!tt)return;let d=!!tt.input._alwaysConfirm,g=W.permissionMode==="accept-edits"&&!d;return d?ne("confirm.instruction.protected"):g?ne("confirm.instruction.always"):ne("confirm.instruction.basic")},[tt,W.permissionMode]),ct=je.searchMode==="history",re=je.surface==="transcript",gr=!!tt||!!$e||ct,wt=re?Rt?fT:1e3:12,Dr=nI(s,je.surface),Wg=Dr.shellMode,Af=Dr.usesAlternateScreenShell,xo=Dr.usesRendererViewportShell,rl=Dr.usesRendererMouseTracking,Fg=Dr.usesManagedMouseClicks,Ug=Dr.usesManagedMouseWheel,_f=Dr.usesManagedSelection,Tt=rI(s,je.surface,x0(je)),jg=y0(je),ol=js&&!re,Gg=X(()=>Xh({items:oi,managedLiveEvents:[],isLoading:te,isThinking:I.isThinking,thinkingCharCount:I.thinkingCharCount,thinkingContent:I.thinkingContent,currentResponse:I.currentResponse,currentTool:I.currentTool,activeToolCalls:mo,toolInputCharCount:I.toolInputCharCount,toolInputContent:I.toolInputContent,lastLiveActivityLabel:Fc,workStripText:fo,iterationHistory:I.iterationHistory,currentIteration:I.currentIteration,isCompacting:I.isCompacting}),[oi,te,I.isThinking,I.thinkingCharCount,I.thinkingContent,I.currentResponse,I.currentTool,mo,I.toolInputCharCount,I.toolInputContent,Fc,fo,I.iterationHistory,I.currentIteration,I.isCompacting]);He(()=>{if(re){bg(d=>d??Gg());return}bg(null)},[Gg,re]);let Ks=me(()=>Jb({isTranscriptMode:re,snapshot:If,currentItemsLength:oi.length,currentManagedLiveEventsLength:0,isLoading:te,currentResponse:I.currentResponse,thinkingContent:I.thinkingContent,activeToolCallsLength:mo.length}),[mo.length,te,re,oi.length,I.currentResponse,I.thinkingContent,If]),$t=re?If:null,Lf=me(()=>eI(Vc),[Vc]),iv=me(()=>!!(Hs.length>0||lI(G)),[Hs.length,G]),il=Hs.length>0,Gt=s.streamingPreview&&iv,ui=me(()=>Zb({surface:"transcript",snapshot:$t,promptItems:Vc,transcriptItems:oi}),[$t,Vc,oi]),zs=me(()=>{if(!re||Rt||ui.length<=Em)return ui;let d=ui.slice(-Em),g=ui.length-d.length;return[vT(g,d[0]?.timestamp),...d]},[ui,re,Rt]),lt=$t?.isLoading??te,nt=s.streamingPreview?{isThinking:Gt?!1:I.isThinking,thinkingCharCount:Gt?0:I.thinkingCharCount,thinkingContent:Gt?"":I.thinkingContent,currentResponse:Gt?"":I.currentResponse,currentTool:Gt?void 0:I.currentTool,activeToolCalls:Gt?[]:mo,toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:Gt?Fc:void 0,iterationHistory:[],currentIteration:I.currentIteration,isCompacting:!1}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:I.currentIteration,isCompacting:!1},Te=s.streamingPreview?{isThinking:Gt?!1:$t?.isThinking??I.isThinking,thinkingCharCount:Gt?0:$t?.thinkingCharCount??I.thinkingCharCount,thinkingContent:Gt?"":$t?.thinkingContent??I.thinkingContent,currentResponse:Gt?"":$t?.currentResponse??I.currentResponse,currentTool:Gt?void 0:$t?.currentTool??I.currentTool,activeToolCalls:Gt?[]:$t?.activeToolCalls??mo,toolInputCharCount:Gt?0:$t?.toolInputCharCount??I.toolInputCharCount,toolInputContent:Gt?"":$t?.toolInputContent??I.toolInputContent,managedLiveEvents:[],lastLiveActivityLabel:$t?.lastLiveActivityLabel??Fc,iterationHistory:Gt?[]:$t?.iterationHistory??I.iterationHistory,currentIteration:$t?.currentIteration??I.currentIteration,isCompacting:$t?.isCompacting??I.isCompacting}:{isThinking:!1,thinkingCharCount:0,thinkingContent:"",currentResponse:"",currentTool:void 0,activeToolCalls:[],toolInputCharCount:0,toolInputContent:"",managedLiveEvents:[],lastLiveActivityLabel:void 0,iterationHistory:[],currentIteration:$t?.currentIteration??I.currentIteration,isCompacting:!1},xr=re?fr:Bc,Vg=!!Bc,Kg=X(()=>Xh({items:Lf,managedLiveEvents:[],isLoading:te,isThinking:nt.isThinking,thinkingCharCount:nt.thinkingCharCount,thinkingContent:nt.thinkingContent,currentResponse:nt.currentResponse,currentTool:nt.currentTool,activeToolCalls:nt.activeToolCalls,toolInputCharCount:nt.toolInputCharCount,toolInputContent:nt.toolInputContent,lastLiveActivityLabel:nt.lastLiveActivityLabel,iterationHistory:nt.iterationHistory,currentIteration:nt.currentIteration,isCompacting:nt.isCompacting}),[te,Lf,nt.activeToolCalls,nt.currentIteration,nt.currentResponse,nt.currentTool,nt.isCompacting,nt.isThinking,nt.iterationHistory,nt.lastLiveActivityLabel,nt.thinkingCharCount,nt.thinkingContent,nt.toolInputCharCount,nt.toolInputContent]);He(()=>{if(!Vg){Ig(null);return}Ig(d=>d??Kg())},[Kg,Vg]);let Xs=Ft?.items??Lf,qt=Ft?.isLoading??te,Ae=Ft?{isThinking:Ft.isThinking,thinkingCharCount:Ft.thinkingCharCount,thinkingContent:Ft.thinkingContent,currentResponse:Ft.currentResponse,currentTool:Ft.currentTool,activeToolCalls:Ft.activeToolCalls,toolInputCharCount:Ft.toolInputCharCount,toolInputContent:Ft.toolInputContent,managedLiveEvents:Ft.managedLiveEvents,lastLiveActivityLabel:Ft.lastLiveActivityLabel,iterationHistory:Ft.iterationHistory,currentIteration:Ft.currentIteration,isCompacting:Ft.isCompacting}:nt,Ot=re?zs:Xs,qn=re?lt:qt,Xe=re?Te:Ae,zg=qt&&!I.currentResponse&&!I.thinkingContent&&mo.length===0,sv=ju(kf?.status==="running"),Nt=me(()=>AC(kf,Date.now()),[kf,sv]),Xg=Nt.shouldRender?`Workflow ${Nt.workflow}${Nt.phase?` - ${Nt.phase}`:""}`:void 0,Wn=me(()=>IC(Wc,{now:Date.now(),lastAllCompletedAt:null}),[Wc]),di=me(()=>{if(!re)return[];let d=[];return d.push(...EC(Nt)),te&&Wn.shouldRender&&d.push(...TC(Wn)),d},[re,te,Wn,Nt]),yo=me(()=>({config:W,sessionId:n.sessionId,workingDir:e.context?.gitRoot||process.cwd(),terminalWidth:L,compactionInfo:vt??void 0}),[vt,n.sessionId,W,e.context?.gitRoot,L]),Br=me(()=>s.enabled&&gf?q1(yo):void 0,[yo,s.enabled,gf]),Yg=Se(Is),qg=Se(!1),Pf=Se(!1),fi=ab({enabled:Q1,useRendererViewportShell:xo,isTranscriptMode:re,hasCommitHandle:typeof Oo(S)?.commitInlineScrollback=="function"}),Ys=me(()=>Qu({items:Xs,viewportWidth:L,maxLines:wt,showDetailedTools:!1,showAllContent:!1,windowed:!1}),[Xs,L,wt]),So=me(()=>{let d=Ju({activeItems:Ys.activeItems,viewportWidth:L,isLoading:qt,maxLines:wt,isThinking:Ae.isThinking,thinkingCharCount:Ae.thinkingCharCount,thinkingContent:Ae.thinkingContent,streamingResponse:Ae.currentResponse,currentTool:Ae.currentTool,activeToolCalls:Ae.activeToolCalls,toolInputCharCount:Ae.toolInputCharCount,toolInputContent:Ae.toolInputContent,iterationHistory:Ae.iterationHistory,currentIteration:Ae.currentIteration,isCompacting:Ae.isCompacting,managedAgentMode:W.agentMode,managedPhase:qt?G?.phase:void 0,managedHarnessProfile:qt?G?.harnessProfile:void 0,managedWorkerTitle:qt?G?.activeWorkerTitle:void 0,managedRound:qt?G?.currentRound:void 0,managedMaxRounds:qt?G?.maxRounds:void 0,managedGlobalWorkBudget:qt?G?.globalWorkBudget:void 0,managedBudgetUsage:qt?G?.budgetUsage:void 0,managedBudgetApprovalRequired:qt?G?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Ae.lastLiveActivityLabel,currentTodoActiveForm:ni,showFullThinking:!1,showDetailedTools:!1,showAllContent:!1,showLiveProgressRows:zg}),g=xT(Ys,d,Br);return ub(g,fi)},[W.agentMode,fi,qt,Ae.activeToolCalls,Ae.currentIteration,Ae.currentTool,Ae.isCompacting,Ae.currentResponse,Ae.isThinking,Ae.iterationHistory,Ae.lastLiveActivityLabel,Ae.thinkingCharCount,Ae.thinkingContent,Ae.toolInputCharCount,Ae.toolInputContent,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,zg,Ys,Br,L,wt,ni]),$f=me(()=>Qu({items:zs,viewportWidth:L,maxLines:wt,showDetailedTools:Rt,showAllContent:Rt,showFullThinking:!0,windowed:!1}),[zs,L,wt,Rt]),sl=me(()=>{if(!re||xo)return;let d=Ju({activeItems:$f.activeItems,viewportWidth:L,isLoading:lt,maxLines:wt,isThinking:Te.isThinking,thinkingCharCount:Te.thinkingCharCount,thinkingContent:Te.thinkingContent,streamingResponse:Te.currentResponse,currentTool:Te.currentTool,activeToolCalls:Te.activeToolCalls,toolInputCharCount:Te.toolInputCharCount,toolInputContent:Te.toolInputContent,iterationHistory:Te.iterationHistory,currentIteration:Te.currentIteration,isCompacting:Te.isCompacting,managedAgentMode:W.agentMode,managedPhase:lt?G?.phase:void 0,managedHarnessProfile:lt?G?.harnessProfile:void 0,managedWorkerTitle:lt?G?.activeWorkerTitle:void 0,managedRound:lt?G?.currentRound:void 0,managedMaxRounds:lt?G?.maxRounds:void 0,managedGlobalWorkBudget:lt?G?.globalWorkBudget:void 0,managedBudgetUsage:lt?G?.budgetUsage:void 0,managedBudgetApprovalRequired:lt?G?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Te.lastLiveActivityLabel,liveStatusLines:di,currentTodoActiveForm:ni,showFullThinking:!0,showDetailedTools:Rt,showAllContent:Rt,showLiveProgressRows:!il,expandedItemKeys:dn});return mI(Rm(Zu($f,d)),Br)},[W.agentMode,dn,il,Br,re,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,L,lt,wt,$f,Te.activeToolCalls,Te.currentIteration,Te.currentResponse,Te.currentTool,Te.isCompacting,Te.isThinking,Te.iterationHistory,Te.lastLiveActivityLabel,Te.thinkingCharCount,Te.thinkingContent,Te.toolInputCharCount,Te.toolInputContent,Rt,di,xo,ni]),qs=me(()=>{if(Tt)return re?mI(ed({items:Ot,viewportWidth:L,isLoading:qn,maxLines:wt,isThinking:Xe.isThinking,thinkingCharCount:Xe.thinkingCharCount,thinkingContent:Xe.thinkingContent,streamingResponse:Xe.currentResponse,currentTool:Xe.currentTool,activeToolCalls:Xe.activeToolCalls,toolInputCharCount:Xe.toolInputCharCount,toolInputContent:Xe.toolInputContent,iterationHistory:Xe.iterationHistory,currentIteration:Xe.currentIteration,isCompacting:Xe.isCompacting,managedAgentMode:W.agentMode,managedPhase:qn?G?.phase:void 0,managedHarnessProfile:qn?G?.harnessProfile:void 0,managedWorkerTitle:qn?G?.activeWorkerTitle:void 0,managedRound:qn?G?.currentRound:void 0,managedMaxRounds:qn?G?.maxRounds:void 0,managedGlobalWorkBudget:qn?G?.globalWorkBudget:void 0,managedBudgetUsage:qn?G?.budgetUsage:void 0,managedBudgetApprovalRequired:qn?G?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Xe.lastLiveActivityLabel,liveStatusLines:di,currentTodoActiveForm:ni,windowed:!0,showFullThinking:re,showDetailedTools:Rt,showAllContent:Rt,showLiveProgressRows:re&&!il,expandedItemKeys:re?dn:void 0}),Br):Rm(So)},[W.agentMode,qn,Ot,il,Br,Xe.activeToolCalls,Xe.currentIteration,Xe.currentResponse,Xe.currentTool,Xe.isCompacting,Xe.isThinking,Xe.iterationHistory,Xe.lastLiveActivityLabel,Xe.thinkingCharCount,Xe.thinkingContent,Xe.toolInputCharCount,Xe.toolInputContent,dn,re,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,So,te,re,L,wt,Tt,di,Rt,ni]),Qn=me(()=>qs??sl,[qs,sl]),Qs=me(()=>zh({status:G,isLoading:te,agentMode:W.agentMode}),[W.agentMode,te,G]).workStripText,Js=$t?.workStripText??fo,pi=me(()=>zh({status:G,isLoading:te,agentMode:W.agentMode,parallelTextOverride:Js}),[W.agentMode,Js,te,G]),wo=me(()=>gb(Ot).filter(d=>d!==td),[Ot]),et=me(()=>jd(je,wo,je.selectedItemId),[wo,je]),fn=me(()=>Ot.find(d=>d.id===et),[Ot,et]),Qg=me(()=>({...je,supportsSelection:je.supportsSelection&&Tt,supportsCopyOnSelect:je.supportsCopyOnSelect&&Tt}),[je,Tt]),bn=me(()=>Hb({state:Qg,selectableItemIds:wo,selectedItemId:et,selectedItemType:fn?.type,isExpanded:et?dn.has(et):!1}),[dn,wo,fn?.type,et,Qg]),Jg=bn.selectionEnabled,Zg=bn.copyCapabilities.copyOnSelect,$N=bn.selectedItemIndex,ex=me(()=>hb(fn),[fn]),al=me(()=>db(Ot.filter(d=>!Am(d))),[Ot]),Et=me(()=>fb(al,Yt),[al,Yt]),cl=me(()=>Ub({isHistorySearchActive:ct,historySearchQuery:Yt,matches:Et,selectedIndex:nl,anchorItemId:je.searchAnchorItemId,useOverlaySurface:je.supportsOverlaySurface&&je.supportsSearchViewport&&Tt}),[Et,Yt,nl,ct,je.searchAnchorItemId,je.supportsOverlaySurface,je.supportsSearchViewport,Tt]),Hr=cl.clampedSelectedIndex,tx=cl.statusText,Of=cl.detailText,nx=cl.searchState,ON=bn.detailState==="expanded",ll=bn.selectionEnabled&&wo.length>0&&!xr,mi=bn.copyCapabilities.message,ul=bn.copyCapabilities.toolInput,dl=bn.toggleDetail;He(()=>{if(Qs){if(Xn.current&&(clearTimeout(Xn.current),Xn.current=null),fo===Qs)return;if(fo){Ut.current&&(clearTimeout(Ut.current),Ut.current=null),Ws(Qs);return}Ut.current&&clearTimeout(Ut.current),Ut.current=setTimeout(()=>{Ws(Qs),Ut.current=null},400);return}if(!fo){Ut.current&&(clearTimeout(Ut.current),Ut.current=null);return}Ut.current&&(clearTimeout(Ut.current),Ut.current=null),Xn.current&&clearTimeout(Xn.current),Xn.current=setTimeout(()=>{Ws(void 0),Xn.current=null},300)},[ho,Qs,fo]),He(()=>()=>{ho()},[ho]);let Wr=me(()=>wb({state:je,ownsViewport:Tt,isAwaitingUserInteraction:gr,isHistorySearchActive:ct,isTranscriptMode:re,historySearchQuery:Yt}),[Yt,gr,ct,re,je,Tt]);He(()=>{zn(d=>{let g=d0(d,Pn);return g=u0(g,Ks),g=p0(g,s.enabled&&Tt?!wf||ct||gr:re||ct||gr),g=g0(g,Hr),g})},[Hr,s.enabled,Pn,gr,ct,re,Ks,Tt,wf]),He(()=>{nl!==Hr&&Hn(Hr)},[Hr,nl]),He(()=>{if(!ct){Mf.current=Yt;return}if(Yt===Mf.current)return;Mf.current=Yt;let d=mb(al,Et,je.searchAnchorItemId);Hn(d)},[Et,Yt,ct,je.searchAnchorItemId,al]);let rx=re?Te:{isThinking:Ae.isThinking,thinkingCharCount:Ae.thinkingCharCount,currentTool:Ae.currentTool,activeToolCalls:Ae.activeToolCalls,toolInputCharCount:Ae.toolInputCharCount,toolInputContent:Ae.toolInputContent,currentIteration:Ae.currentIteration,isCompacting:Ae.isCompacting},Zs=re?lt:qt,[Nf,Df]=Ge(()=>tn(W.permissionMode)?l.getGuardrail().getEngine():void 0),fl=me(()=>Bb({sessionId:n.sessionId,permissionMode:W.permissionMode,agentMode:W.agentMode,provider:W.provider,model:W.model??vn(W.provider)??W.provider,thinking:W.thinking,reasoningMode:W.reasoningMode,reasoningCapability:Ul(Fl(W.provider,W.model)),isTranscriptMode:re,streamingState:rx,maxIter:I.maxIter,contextUsage:Hg,isLoading:Zs,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:Nf}),[n.sessionId,W.permissionMode,W.agentMode,W.provider,W.model,W.thinking,W.reasoningMode,re,rx,I.maxIter,Hg,Zs,G?.phase,G?.harnessProfile,G?.activeWorkerTitle,G?.currentRound,G?.maxRounds,G?.globalWorkBudget,G?.budgetUsage,G?.budgetApprovalRequired,G?.idleWaiting,G?.idleWaitingPendingCount,Nf]),Bf=tt?"confirm":$e?.kind,Fr=me(()=>Nb({isTranscriptMode:re,isLoading:Zs,streamingState:Ae,managedState:Zs?{phase:G?.phase,harnessProfile:G?.harnessProfile,workerTitle:G?.activeWorkerTitle}:void 0,waitingReason:Bf,workflowBuilderMessage:kg??void 0,backgroundWorkflowMessage:Xg}),[Ae.activeToolCalls,Ae.currentTool,Ae.isCompacting,Ae.isThinking,Ae.thinkingCharCount,Ae.toolInputCharCount,Ae.toolInputContent,re,G?.activeWorkerTitle,G?.harnessProfile,G?.phase,Bf,Zs,kg,Xg]),Hf=Fr?.text,ox=Se(!1);He(()=>{ox.current&&!te&&$r(d=>d.length>0?[]:d),ox.current=te},[te]);let Wf=me(()=>sd(fl),[fl]),ix=me(()=>Wf,[Wf]),sx=ix.text,av=me(()=>QT(I.pendingInputs),[I.pendingInputs]),Ff=me(()=>_C({isHistorySearchActive:ct,isTranscriptMode:re,pendingInputCount:I.pendingInputs.length,buffering:je.buffering,pendingLiveUpdates:Ks}),[ct,re,Ks,I.pendingInputs.length,je.buffering]),ax=Ff.leftItems,cx=Ff.rightItems,lx=Ff.summary,pl=me(()=>Gb({historySearchQuery:Yt,pendingInputCount:I.pendingInputs.length}),[Yt,I.pendingInputs.length]),ml=me(()=>jb({historySearchQuery:Yt,isHistorySearchActive:ct,historySearchMatchCount:Et.length,pendingInputCount:I.pendingInputs.length,maxPendingInputs:5}),[Et.length,Yt,ct,I.pendingInputs.length]),ux=me(()=>ml.map(d=>d.text).join(" | "),[ml]),hl=me(()=>Vb({inputText:yf,isTranscriptMode:re,isHistorySearchActive:ct}),[yf,ct,re]),dx=je.supportsOverlaySurface&&je.supportsSearchViewport&&Tt,gl=me(()=>Wb({runtime:bn,itemSummary:ex}),[ex,bn]),Uf=me(()=>Kb(pl),[pl]),fx=me(()=>zb({textSelection:xr,selectionState:gl,isHistorySearchActive:ct,historySearchDetailText:Of,historySearchHasMatches:!!tx&&Et.length>0,showAllActive:Rt,baseFooterNotices:pl}),[xr,pl,Of,Et.length,tx,ct,Rt,gl]),cv=fx.secondaryText,lv=fx.budgetNotices,px=re?lv:Uf,mx=S.rows??24,hx=re?"":yf,gx=re?void 0:av,xx=Js,yx=re?!1:$g,jf=Nt.shouldRender?SC(Nt):0,Gf=te&&Wn.shouldRender?Wn.rows.length:0,Dt=me(()=>s0({terminalRows:mx,terminalWidth:L,windowedTranscript:xo,inputText:hx,footerHeaderText:lx,activitySummary:re?void 0:Hf,activityBarVisible:re?!1:!!Hf||jf>0||Gf>0,workflowSurfaceRows:re?0:jf,todoSurfaceRows:re?0:Gf,pendingInputSummary:gx,stashNoticeSummary:hl,notificationSummary:ux,statusNoticeSummary:px.join(" | "),workStripText:xx,suggestionsReserved:ol,suggestionsMode:"inline",showHelp:yx,statusBarText:sx,confirmPrompt:tt?.prompt,confirmInstruction:Vs,dialogMode:"inline",reviewHint:s.enabled&&Tt?void 0:Wr.browseHintText,uiRequest:$e?$e.kind==="select"?{kind:"select",title:$e.title,options:$e.options.map(d=>({label:d.label,description:d.description})),buffer:$e.buffer,error:$e.error}:{kind:"input",prompt:$e.prompt,defaultValue:$e.defaultValue,buffer:$e.buffer,error:$e.error}:null}),[mx,L,hx,lx,Hf,re,jf,Gf,gx,hl,ux,px,xx,ol,dx,yx,sx,tt,Vs,s.enabled,Wr.browseHintText,Tt,$e]),Vf=me(()=>{if(!fi)return{model:So,committedSections:[]};let{committedSections:d,liveRows:g}=yT(Ys.staticSections,So.rows,So.previewRows,Dt.messageRows);return{model:{...So,staticSections:[],rows:g,previewRows:[]},committedSections:d}},[fi,So,Ys.staticSections,Dt.messageRows]),Sx=Vf.model;He(()=>{let d=Oo(S),g=typeof d?.commitInlineScrollback=="function",y=cb({active:fi,hasCommitHandle:g,wasActive:qg.current,forceRebuild:Pf.current,prior:Yg.current,finalizedSections:Vf.committedSections,bannerSection:Br,width:L,identify:ST}),E=!1,R=!1;if(y.kind==="commit"){let F=y.sections.flatMap(ae=>ae.rows),V=sb(F.length>0?[{key:"il-delta",rows:F}]:[],{width:L,theme:oe("dark")});if(R=V.length>0,y.mode==="append"&&!V)hI("empty-append-text");else try{d?.commitInlineScrollback?.({mode:y.mode,text:V}),E=!0}catch(ae){hI("commit-threw",ae)}}let B=lb(y,{committed:E,hadContent:R},Pf.current);Yg.current=B.state,qg.current=B.wasActive,Pf.current=B.owns},[fi,Vf.committedSections,Br,L,S]);let uv=me(()=>se(zm,{reserveSpace:ol,width:L,hidden:re,mode:"inline"}),[ol,L,re,dx]),ea=me(()=>Tb(Dt.messageRows),[Dt.messageRows]),wx=me(()=>Cb(ea),[ea]),hi=!jg&&s.transcriptSpinnerAnimation,ta=Qn?Qn.rows.length+Qn.previewRows.length:jk,xl=X(d=>{Qn||Gk(d.scrollHeight)},[Qn]),na=X(d=>Eb({window:d,stickyHeader:Wr.stickyHeader,width:L,topChromeRows:0}),[L,Wr.stickyHeader]),gi=X((d=Ds.current,g=Dc.current,y=Tf.current?na(Tf.current):Nc.current)=>{if(!y||d.length===0){Zo.current=null;return}Nc.current=y,Zo.current=Mb(d,{allRows:g,rowIndexByKey:Uh(g),topOffsetRows:y.topOffsetRows,viewportHeight:y.contentWindow.viewportHeight,animateSpinners:hi})},[na,hi]),ra=X(()=>{let d=Nc.current;return d?.contentWindow.viewportHeight&&d.contentWindow.viewportHeight>0?d.contentWindow.viewportHeight:Dt.messageRows},[Dt.messageRows]),dv=X(d=>{Tf.current=d;let g=na(d);Nc.current=g,gi(Ds.current,Dc.current,g)},[gi,na]),yl=X(d=>{Ds.current=d.rows,Dc.current=d.allRows,gi(d.rows,d.allRows)},[gi]),Vt=X(()=>{$n.current=null,Cf(void 0),bf(void 0)},[]),Kf=X(()=>{Vt(),zn(d=>bs(d,void 0))},[Vt]);He(()=>{gi()},[gi]),He(()=>{Kk(d=>bb(d,ta,Dt.messageRows))},[ta,Dt.messageRows]),He(()=>{if(!ei)return;let d=setTimeout(()=>{Cg(void 0)},2e3);return()=>{clearTimeout(d)}},[ei]);let yr=X((d,g="success")=>{let y=d?.trim();y&&Cg({text:y,tone:g})},[]),xi=X((d,g)=>{let y=g instanceof Error?g.message:String(g);return`${d}: ${y}`},[]),Sl=X(async d=>{let g=d??xr;if(!g)return!1;let y=g.text.trimEnd();if(!y)return!1;try{return await wa(y,{terminalWrite:v}),yr(`Copied ${g.rowCount} selected line${g.rowCount===1?"":"s"} to clipboard.`,"success"),!0}catch(E){return yr(xi("Failed to copy transcript selection",E),"warning"),!1}},[xr,xi,yr,v]),yi=X(d=>{if(!d||kb({items:Ot,renderModel:Qn,terminalWidth:L,transcriptMaxLines:wt,viewportRows:ra(),itemId:d,visibleRows:Ds.current,expandedItemKeys:dn,showDetailedTools:!1}))return;let g=vb({items:Ot,renderModel:Qn,terminalWidth:L,transcriptMaxLines:wt,viewportRows:ra(),itemId:d,expandedItemKeys:dn,showDetailedTools:!1});Pc(g)},[Ot,L,wt,Qn,dn,ra,Pc,Ds]),Tx=X(d=>{zn(g=>bs(g,d)),d&&yi(d)},[yi]),zf=X(d=>{d&&yi(d)},[yi]),Cx=X(d=>{if(!ll)return;let g=xb(wo,et,d);g&&Tx(g)},[ll,wo,et,Tx]),bx=X(()=>{!dl||!et||(Yk(d=>{let g=new Set(d);return g.has(et)?g.delete(et):g.add(et),g}),yi(et))},[yi,dl,et]),Ix=X(async()=>{if(!mi||!fn)return;let d=Fh(fn);if(d)try{await wa(d,{terminalWrite:v}),yr("Copied selected transcript entry to clipboard.","success")}catch(g){yr(xi("Failed to copy transcript entry",g),"warning")}},[xi,mi,fn,yr,v]),kx=X(async()=>{if(!ul||!fn)return;let d=yb(fn);if(d)try{await wa(d,{terminalWrite:v}),yr("Copied selected tool args to clipboard.","success")}catch(g){yr(xi("Failed to copy tool args",g),"warning")}},[xi,ul,fn,yr,v]),oa=X(()=>Dc.current,[]),vx=X((d,g)=>{if(!s.enabled||!Tt)return;let y=Zo.current;return y?Gh(y,d,g):void 0},[s.enabled,Tt]),Si=X((d,g,y)=>{let E=oa(),R=Lb(E,d,g,{animateSpinners:hi,selectFullRowOnCollapsed:y?.selectFullRowOnCollapsed});re?bf(R):Cf(R);let B=E[Math.max(0,Math.min(g.modelRowIndex,E.length-1))];return y?.updateSelectedItem&&B?.itemId&&zn(F=>bs(F,B.itemId)),R},[re,oa,hi]),Rx=X((d,g)=>{if(!d)return;$n.current=null;let y={...d,focus:g?.focusPoint??d.focus};if(!(y.mode!=="char"||y.didDrag)){Vt();return}let R=Si(y.anchor,y.focus,{selectFullRowOnCollapsed:!1,updateSelectedItem:!1});if(!R){Vt();return}return g?.copySelection!==!1&&Sl(R),R},[Vt,Sl,Si]),Xf=X(()=>{if(!re||!Ot.length||tt||$e)return;Vt();let d=Rb({items:Ot,selectedItemId:et,renderModel:Qn,terminalWidth:L,transcriptMaxLines:wt,viewportRows:ra(),scrollOffset:Pn,expandedItemKeys:dn,showDetailedTools:!1,preferViewportAnchor:!0});zn(g=>m0(g,{anchorItemId:d,initialMatchIndex:0})),li(""),Hn(0)},[tt,Ot,dn,Pn,re,et,Qn,L,wt,$e,ra,Vt]),Yf=X(()=>{zn(d=>h0(d)),li(""),Hn(0),Vt()},[Vt]),wl=X(()=>{!ct||Et.length===0||Hn(-1)},[Et.length,ct]),Ex=me(()=>{if(!tt)return null;if(tt.tool==="exit_plan_mode"){let d=typeof tt.input.plan=="string"?tt.input.plan:void 0;return{prompt:tt.prompt.split(`
|
|
141
|
+
`,1)[0]??tt.prompt,instruction:Vs,planContent:d}}return{prompt:tt.prompt,instruction:Vs}},[Vs,tt]),Mx=me(()=>$e?$e.kind==="select"?{kind:"select",title:$e.title,options:$e.options,buffer:$e.buffer,error:$e.error,visibleSelectOptions:Dt.visibleSelectOptions,focusedIndex:$e.focusedIndex,selectedIndices:$e.selectedIndices,multiSelect:$e.multiSelect}:{kind:"input",prompt:$e.prompt,defaultValue:$e.defaultValue,buffer:$e.buffer,error:$e.error}:null,[$e,Dt.visibleSelectOptions]),fv=me(()=>se(Ym,{confirm:Ex,request:Mx}),[Ex,Mx]),qf=me(()=>{if(ei)return se(gC,{text:ei.text,tone:ei.tone})},[ei]),Qf=me(()=>{if(qf)return se(k,{flexDirection:"column",width:"100%",children:qf})},[qf]),Tl=X(()=>{zn(d=>f0(l0(d))),Sf(!1),Oc(),li(""),Hn(0),Vt()},[Vt,Oc]),Ax=X(()=>{re&&Sf(d=>!d)},[re]),pv=X(()=>{if(re){Tl();return}Sf(!1),zn(d=>c0(d)),li(""),Hn(0),Vt()},[Vt,Tl,re]);He(()=>{Jg||!je.selectedItemId||zn(d=>bs(d,void 0))},[Jg,je.selectedItemId]),He(()=>{if(!re||!mi||!Zg){Gs.current=void 0;return}if(fr||!et||!fn)return;if(!Gs.current){Gs.current=et;return}if(Gs.current===et)return;Gs.current=et;let d=Fh(fn);d&&wa(d,{terminalWrite:v}).catch(()=>{})},[re,fn,et,mi,Zg,fr,v]),He(()=>{if(S?.isTTY!==!0)return;let d=Oo(S);d?.setShellMode?.(Wg,rl),Af||d?.setAltScreenActive?.(!1)},[Wg,S,Af,rl]);let Ve=Se({...e,thinking:W.thinking,reasoningMode:W.reasoningMode,agentMode:W.agentMode,context:{...e.context,repoIntelligenceMode:W.repoIntelligenceMode,repoIntelligenceTrace:W.repoIntelligenceTrace,toolConstructionMode:!0},session:{...e.session,id:n.sessionId,persistedByHost:!0},guardrails:ef(W.permissionMode,l)}),pn=Se(W.permissionMode);He(()=>{pn.current=W.permissionMode},[W.permissionMode]);let mv=me(()=>Li(),[]),_x=Se(mv),Jf=Se(W);He(()=>{Jf.current=W},[W]);let Zf=Se(null);Zf.current===null&&(Zf.current=Bl({getProvider:o(()=>ua(Jf.current.provider),"getProvider"),getModel:o(()=>Jf.current.model??"","getModel")}));let Lx=Se(Wl());He(()=>{W.permissionMode==="auto-in-project"&&Lx.current()},[]);let ep=X(d=>{Ue(g=>({...g,permissionMode:d})),pn.current=d,Ve.current={...Ve.current,guardrails:ef(d,l)},Df(tn(d)?l.getGuardrail().getEngine():void 0),d==="auto-in-project"&&Lx.current()},[l]),Px=Se(I.pendingInputs),rt=Se(!1),ia=Se(0),Cl=X(()=>{if(Os.current)return;let d=Uc.current?.trim(),g=de.current.length>0?de.current[de.current.length-1]:void 0,y=g&&"text"in g&&typeof g.text=="string"?g.text.trim():void 0,R=Xt.current.length>0?[...Xt.current.map(B=>ao(B)),...d&&d!==y?[{type:"info",text:d}]:[]]:[...Xt.current.map(B=>ao(B)),...z1(xe(),ee(),{toolCalls:jt.current,toolNames:Yn.current,infoItems:d&&d!==y?[d]:[]})];R.length!==0&&(Os.current=!0,zc(Xt.current),Jo.current?.(R))},[ee,xe,zc]);He(()=>{Px.current=I.pendingInputs},[I.pendingInputs]);let $x=X(()=>{rt.current=!0,z(),K(),U(),Re(),Oe(),ie(),Pe(void 0),Nr(),pt(void 0),Fs(),po.current=[],ri.current=[],it.current=null,Uc.current=null,Bs([]),Hc(null),ti(null),ho(),Ws(void 0),Be(!1),S?.isTTY===!0&&Oo(S)?.clear?.()},[z,ie,Re,Oe,ho,Nr,Fs,Pe,Bs,Be,pt,K,U,S]),bl=X(d=>{let g=my(),y=g.list().filter(R=>R.status==="running"||R.status==="paused");if(y.length===0)return!1;for(let R of y)g.stop(R.runId,d);vf(R=>!R||R.status!=="running"||!y.some(B=>B.runId===R.runId)?R:{...R,status:"stopped",activeAgents:[],message:"Workflow stopped by user."});let E=y[0];return y.length===1&&E?Nn({type:"info",text:`Stopped workflow ${E.workflow} (${E.runId}).`},"workflow-stop"):Nn({type:"info",text:`Stopped ${y.length} active workflows.`},"workflow-stop"),!0},[Nn]);He(()=>{if(!Nt.shouldRender)return;let d=o(()=>{bl("stopped by Ctrl+C")},"handleSigint");return process.on("SIGINT",d),()=>{process.off("SIGINT",d)}},[bl,Nt.shouldRender]),xn(Kt.Critical,d=>{if(M0({keyName:d.name,ctrl:!!d.ctrl,isTranscriptMode:re,isAwaitingUserInteraction:gr,isInputEmpty:Ac,pendingInputCount:I.pendingInputs.length,hasTranscriptTextSelection:!!fr,hasActiveWorkflow:Nt.shouldRender}))return bl(d.ctrl?"stopped by Ctrl+C":"stopped by Escape");if(!te)return!1;switch(A0({keyName:d.name,ctrl:!!d.ctrl,isTranscriptMode:re,isAwaitingUserInteraction:gr,isInputEmpty:Ac,pendingInputCount:I.pendingInputs.length,hasTranscriptTextSelection:!!fr}).kind){case"interrupt":return Cl(),$x(),!0;case"pop-pending-input":return Ee(),!0;default:break}return!1},[te,re,gr,Ac,I.pendingInputs.length,Ee,Cl,$x,bl,fr,Nt.shouldRender]),xn(Kt.Critical,d=>{let g=v0({itemsLength:Ot.length,currentResponse:Xe.currentResponse,thinkingContent:Xe.thinkingContent,activeToolCallsLength:Xe.activeToolCalls.length}),y=R0({keyName:d.name,hasTranscript:g,historyScrollOffset:Pn,reviewPageSize:ea,reviewWheelStep:wx,hasMouse:!!d.mouse,mouseButton:d.mouse?.button,mouseAction:d.mouse?.action,usesManagedMouseClicks:Fg,supportsMouseTracking:je.supportsMouseTracking,usesRendererMouseTracking:rl,usesManagedMouseWheel:Ug,supportsWheelHistory:je.supportsWheelHistory});if(y.kind==="mouse-phase"){let R=d.mouse;if(!R)return!1;y.phase==="press"&&$n.current&&Rx($n.current);let B=vx(R.row,R.column);if(y.phase==="press"){if(!B||!g)return xr||et?(Kf(),!0):(Vt(),!1);let F=iI({previous:Tg.current,time:Date.now(),row:R.row,column:R.column});Tg.current=F;let V=F.count>=3?"line":F.count===2?"word":"char";if(wl(),zn(ae=>bs(ae,void 0)),re?bf(void 0):Cf(void 0),V!=="char"){let ae=Zd(oa(),B.point,V);if(ae)return $n.current={anchor:ae.start,focus:ae.end,didDrag:!1,mode:V,anchorSpan:ae},Si(ae.start,ae.end,{updateSelectedItem:!1}),!0}return $n.current={anchor:B.point,focus:B.point,didDrag:!1,mode:"char"},!0}if(!$n.current)return!1;if(y.phase==="drag"){let F=Zo.current,V=F?$b(F,R.row):0;V!==0&&$c(V);let ae=B??(F?Vh(F,R.row,R.column):void 0);if(!ae)return!1;let we=$n.current;if(we.mode!=="char"&&we.anchorSpan){let xt=Zd(oa(),ae.point,we.mode);if(!xt)return!1;let Qt=qh(we.anchorSpan,xt);return $n.current={...we,anchor:Qt.anchor,focus:Qt.focus,didDrag:!0},Si(Qt.anchor,Qt.focus,{updateSelectedItem:!1}),!0}return $n.current={...we,focus:ae.point,didDrag:!0},Si(we.anchor,ae.point,{updateSelectedItem:!1}),!0}if(y.phase==="release"){let F=$n.current,V=F.focus,we=(B??(Zo.current?Vh(Zo.current,R.row,R.column):void 0))?.point??V;if(F.mode!=="char"&&F.anchorSpan){let xt=Zd(oa(),we,F.mode);if(xt){let Qt=qh(F.anchorSpan,xt);F.anchor=Qt.anchor,we=Qt.focus}}return Rx(F,{focusPoint:we}),!0}}if(y.kind==="scroll-by")return wl(),$c(y.delta),!0;if(y.kind==="consume")return!0;let E=_0({key:d,isTranscriptMode:re,isHistorySearchActive:ct,historySearchMatchCount:Et.length,hasTextSelection:!!xr,hasFocusedItem:!!et,canCopySelectedItem:mi,canCopySelectedToolInput:ul,canToggleSelectedDetail:dl,canCycleTranscriptSelection:ll});return L0({action:E,hasTranscript:g,isTranscriptMode:re,pageScrollDelta:ea,disarmHistorySearchSelection:wl,scrollTranscriptBy:$c,closeHistorySearchSurface:Yf,backspaceHistorySearchQuery:o(()=>{li(R=>R.slice(0,-1)),Hn(0)},"backspaceHistorySearchQuery"),stepHistorySearchSelection:o(R=>{Hn(B=>Wh(Et.length,B,R))},"stepHistorySearchSelection"),submitHistorySearchSelection:o(()=>{let R=Et[Hr];R&&(zf(R.itemId),Yf())},"submitHistorySearchSelection"),appendHistorySearchQuery:o(R=>{li(B=>B+R),Hn(0)},"appendHistorySearchQuery"),openHistorySearchSurface:Xf,clearTranscriptSelectionFocus:Kf,exitTranscriptModeSurface:Tl,toggleTranscriptShowAll:Ax,scrollTranscriptHome:o(()=>{Pc(Math.max(0,ta-Dt.messageRows))},"scrollTranscriptHome"),scrollTranscriptToBottom:o(()=>{Oc(),Vt()},"scrollTranscriptToBottom"),cycleTranscriptSelection:Cx,copySelectedTranscriptText:o(()=>{Sl()},"copySelectedTranscriptText"),copySelectedTranscriptItem:o(()=>{Ix()},"copySelectedTranscriptItem"),copySelectedTranscriptToolInput:o(()=>{kx()},"copySelectedTranscriptToolInput"),toggleSelectedTranscriptDetail:bx,navigateSearchMatch:o(R=>{Hn(B=>{let F=Wh(Et.length,B,R),V=Et[F];return V&&zf(V.itemId),F})},"navigateSearchMatch"),dumpTranscriptToScrollback:o(()=>{P0({items:Ot.filter(R=>!Am(R)),exitAltScreen:o(()=>{v(Lu({mouseTracking:!0}))},"exitAltScreen"),writeToScrollback:o(R=>{v(R)},"writeToScrollback"),enterAltScreen:o(()=>{v(_u({mouseTracking:!0,clearOnEnter:!1}))},"enterAltScreen")})},"dumpTranscriptToScrollback")})},[re,Ot,Xe.currentResponse,Xe.thinkingContent,Xe.activeToolCalls,Pn,ta,ea,wx,et,Kf,Tl,Ax,je,$c,Pc,Oc,ll,Hr,Vt,Sl,Et,Xf,Yf,wl,Cx,mi,Ix,ul,kx,dl,bx,zf,xr,vx,je.supportsMouseTracking,fr,Fg,Ug,_f,xo,rl,Si,Dt.messageRows]),xn(d=>{if(!tt)return!1;let g=d.sequence.trim().toLowerCase(),y=!!tt.input._alwaysConfirm,E=W.permissionMode==="accept-edits"&&!y,R=o(B=>{let F=`${ne("dialog.confirm")} ${tt.prompt}
|
|
142
|
+
\u2192 ${ne(`confirm.result.${B}`)}`;!!st.current.workerId?Cn({id:`confirm-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"info",text:F,timestamp:Date.now()}):C({type:"info",text:F})},"recordConfirmResult");return g==="y"||g==="yes"?(R("approved"),Zc(null),go.current?.({confirmed:!0}),go.current=null,!0):E&&(g==="a"||g==="always")?(R("approved_always"),Zc(null),go.current?.({confirmed:!0,always:!0}),go.current=null,!0):g==="n"||g==="no"||d.name==="escape"?(R("denied"),Zc(null),go.current?.({confirmed:!1}),go.current=null,!0):d.insertable||d.name==="return"},{isActive:!!tt,priority:Kt.Critical});let Il=X(d=>{Bn(null),el.current?.(d),el.current=null},[]),wi=X((d,g,y)=>g.length===0?Promise.resolve(void 0):new Promise(E=>{el.current=E,Bn({kind:"select",title:d,options:g,buffer:"",focusedIndex:0,selectedIndices:[],multiSelect:y})}),[]),hv=X((d,g)=>wi(d,g.map(y=>({label:y,value:y}))),[wi]),Ox=X(async d=>{let g=d.options?Jd(d.options):[];return await wi(Kh(d),g,d.multiSelect)??fp},[wi]);He(()=>{let d=!1;return(async()=>{let{bindAskUserForConstruction:g}=await import("./construction-bootstrap-5TFGMSWQ.js");d||g(Ox)})(),()=>{d=!0,(async()=>{let{bindAskUserForConstruction:g}=await import("./construction-bootstrap-5TFGMSWQ.js");g(null)})()}},[Ox]);let Nx=X((d,g)=>new Promise(y=>{el.current=y,Bn({kind:"input",prompt:d,defaultValue:g,buffer:""})}),[]);xn(d=>{let g=tl.current;if(!g)return!1;if(d.name==="escape")return Il(void 0),!0;if(g.kind==="select"){let y=g.options.length;if(d.name==="up"||d.sequence==="k")return Bn(E=>E&&E.kind==="select"?{...E,focusedIndex:(E.focusedIndex-1+y)%y,error:void 0}:E),!0;if(d.name==="down"||d.sequence==="j")return Bn(E=>E&&E.kind==="select"?{...E,focusedIndex:(E.focusedIndex+1)%y,error:void 0}:E),!0;if(d.sequence===" "&&g.multiSelect)return Bn(E=>{if(!E||E.kind!=="select")return E;let R=E.focusedIndex,B=E.selectedIndices.includes(R)?E.selectedIndices.filter(F=>F!==R):[...E.selectedIndices,R];return{...E,selectedIndices:B,error:void 0}}),!0;if(d.name==="return"){let E=tl.current;if(!E||E.kind!=="select")return!1;if(E.multiSelect){if(E.selectedIndices.length===0)return Bn(B=>B&&B.kind==="select"?{...B,error:ne("select.multiselect_empty")}:B),!0;let R=E.selectedIndices.sort((B,F)=>B-F).map(B=>E.options[B]?.value).filter(Boolean).join(", ");Il(R)}else Il(E.options[E.focusedIndex]?.value);return!0}if(/^[1-9]$/.test(d.sequence)){let E=Number.parseInt(d.sequence,10)-1;if(E>=0&&E<y)return g.multiSelect?Bn(R=>{if(!R||R.kind!=="select")return R;let B=R.selectedIndices.includes(E)?R.selectedIndices.filter(F=>F!==E):[...R.selectedIndices,E];return{...R,focusedIndex:E,selectedIndices:B,error:void 0}}):Bn(R=>R&&R.kind==="select"?{...R,focusedIndex:E,error:void 0}:R),!0}return!1}if(d.name==="return"){let y=tl.current;if(!y||y.kind!=="input")return!1;let E=y.buffer.trim();return Il(E===""?y.defaultValue??void 0:E),!0}return d.name==="backspace"||d.name==="delete"?(Bn(y=>y&&y.kind==="input"?{...y,buffer:y.buffer.slice(0,-1),error:void 0}:y),!0):(d.insertable||d.isPasted===!0)&&!d.ctrl&&!d.meta?(Bn(y=>y&&y.kind==="input"?{...y,buffer:y.buffer+d.sequence,error:void 0}:y),!0):!1},{isActive:!!$e,priority:Kt.Critical}),He(()=>{if(n.messages.length>0&&P.length===0){if(n.uiHistory?.length){let g=zo(n.uiHistory);g.length!==n.uiHistory.length&&(n.uiHistory=g),j(g.map(y=>({type:y.type,text:y.text,...y.icon?{icon:y.icon}:{},...y.compactText?{compactText:y.compactText}:{}})));return}let d=n.messages.flatMap(g=>Ca(g).map(Ta));j(d)}},[n.messages,n.uiHistory,P.length,j]),He(()=>{$l(n.gitRoot)},[n.gitRoot]),He(()=>{process.env.KODAX_PREWARM_REPO_INTELLIGENCE!=="0"&&ty({executionCwd:n.gitRoot??process.cwd(),gitRoot:n.gitRoot??void 0},{mode:W.repoIntelligenceMode})},[n.gitRoot,W.repoIntelligenceMode]);let Ti=X(()=>({onThinkingDelta:o(d=>{if(rt.current)return;I.currentTool&&(Pe(void 0),Oe());let{header:g}=GC(xe()+d),y=g?`[Thinking: ${g}]`:"[Thinking]";pt($d(it.current?.activeWorkerTitle?`[${it.current.activeWorkerTitle}] ${y}`:y,it.current?.activeWorkerTitle)),J(d.length),ce(d),st.current.workerId&&Yc("thinking",d)},"onThinkingDelta"),onThinkingEnd:o(d=>{if(rt.current)return;let g=xe(),y=FC(g,d);y&&y!==g&&(Re(),fe(),J(y.length),ce(y)),st.current.workerId&&_g(y),U()},"onThinkingEnd"),onTextDelta:o(d=>{rt.current||(I.currentTool&&(Pe(void 0),Oe()),U(),pt(void 0),gt(d),st.current.workerId&&Yc("assistant",d))},"onTextDelta"),onToolUseStart:o(d=>{if(rt.current)return;Yn.current.includes(d.name)||(Yn.current=[...Yn.current,d.name]);let g=it.current?.activeWorkerTitle?`[${it.current.activeWorkerTitle}] `:"",y={id:d.id,name:`${g}${d.name}`,status:$.Executing,startTime:Date.now(),input:d.input};Lg(y),st.current.workerId&&Dn(y),pt(Rr(y,it.current?.activeWorkerTitle))},"onToolUseStart"),onToolInputDelta:o((d,g,y)=>{if(rt.current)return;be(g.length),De(g);let E=Pg(y?.toolId,d,R=>{let B=R.preview??"",F=BC(`${B}${g}`);return{...R,preview:F||void 0,input:R.input?F?{...R.input,preview:F}:{...R.input}:F?{preview:F}:void 0}});E&&(st.current.workerId&&Dn(E),pt(Rr(E,it.current?.activeWorkerTitle)))},"onToolInputDelta"),onToolResult:o(d=>{if(rt.current)return;let g=typeof d.content=="string"?d.content:String(d.content??""),y=HC(g);if(/^\[(?:Tool Error|Error)\]/.test(g)){let R=Qc(d.id,$.Error,y,y,d.name);R&&(st.current.workerId&&Dn(R),pt(Rr(R,it.current?.activeWorkerTitle)));return}if(/^\[(?:Cancelled|Blocked)\]/.test(g)){let R=Qc(d.id,$.Cancelled,void 0,y,d.name);R&&(st.current.workerId&&Dn(R),pt(Rr(R,it.current?.activeWorkerTitle)));return}let E=Qc(d.id,$.Success,void 0,y||void 0,d.name);E&&(st.current.workerId&&Dn(E),pt(Rr(E,it.current?.activeWorkerTitle)))},"onToolResult"),onToolProgress:o(d=>{if(rt.current)return;let g=d.message.length>100?d.message.slice(0,97)+"...":d.message,y=ci(d.id,E=>({...E,preview:g,progressLines:[...(E.progressLines??[]).slice(-4),g]}));y&&st.current.workerId&&Dn(y),pt(g)},"onToolProgress"),onStreamEnd:o(()=>{if(rt.current)return;let d=Us($.Cancelled,()=>({error:"Stream ended before the tool completed.",output:void 0})),g=d[d.length-1];st.current.workerId&&d.forEach(y=>Dn(y)),g&&pt(Rr(g,it.current?.activeWorkerTitle)),U(),Oe(),Pe(void 0)},"onStreamEnd"),hasPendingInputs:o(()=>Px.current.length>0,"hasPendingInputs"),onMidTurnUserMessages:o(d=>{if(!rt.current)for(let g of d){let y=g.trim();y&&(st.current.workerId?Cn({id:`mid-turn-user-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"user",text:y,timestamp:Date.now()}):C({type:"user",text:y}))}},"onMidTurnUserMessages"),onError:o(d=>{let g=Or();g?.name&&pt(Rr(g,it.current?.activeWorkerTitle));let y=Us($.Error,()=>({error:d.message,output:void 0})),E=y[y.length-1];st.current.workerId&&y.forEach(xt=>Dn(xt)),E&&pt(Rr(E,it.current?.activeWorkerTitle));let R=zx(d),B=["Transient","Permanent","Tool Call ID","User Abort"];if(R.category===da.USER_ABORT)return;let V=[`\u274C API Error (${B[R.category]||"Unknown"}): ${d.message}`];R.shouldCleanup&&V.push(" \u{1F9F9} Cleaned incomplete tool calls"),R.category===da.PERMANENT?(V.push(" \u{1F4A1} This error requires manual intervention. Please check:"),d.message.includes("auth")||d.message.includes("401")?(V.push(" - Your API key is valid"),V.push(" - Run /config to check provider settings")):d.message.includes("400")?(V.push(" - The request parameters are correct"),V.push(" - Try restarting the conversation")):V.push(" - The error details above")):R.category===da.TRANSIENT?V.push(" \u23F3 Retries exhausted. Press Enter to continue the conversation"):R.category===da.TOOL_CALL_ID&&V.push(" \u2705 Session cleaned, ready to continue");let ae=V.join(`
|
|
143
|
+
`);!!st.current.workerId?Cn({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:ae,timestamp:Date.now()}):C({type:"error",text:ae})},"onError"),onRetry:o((d,g,y)=>{if(rt.current)return;if(!!st.current.workerId){let R=Ed(d,g,y);Cn({...R,id:`retry-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()})}else ih(C,d,g,y)},"onRetry"),onProviderRecovery:o(d=>{if(rt.current)return;let g=!!st.current.workerId,y=ee().trim();if(y&&(g?Yc("assistant",y):C({type:"assistant",text:y})),ie(),Re(),U(),Oe(),Pe(void 0),Nr(),pt(void 0),g){let E=Md(d);Cn({...E,id:`recovery-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:Date.now()})}else sh(C,d)},"onProviderRecovery"),onManagedTaskStatus:o(d=>{if(rt.current)return;let g=st.current;if(lI(d)){if(g.workerId&&g.workerId!==d.activeWorkerId)tv({workerId:d.activeWorkerId,workerTitle:d.activeWorkerTitle});else if(g.workerId!==d.activeWorkerId){let F=mt.current,V=F.activeToolGroupTools.some(ae=>ae.status===$.Executing);mt.current={workerId:d.activeWorkerId,workerTitle:d.activeWorkerTitle,...V?{activeToolGroupItemId:F.activeToolGroupItemId,activeToolGroupTools:F.activeToolGroupTools}:{activeToolGroupTools:[]}},st.current={workerId:d.activeWorkerId,workerTitle:d.activeWorkerTitle}}}it.current=d,Hc(d);let y=jC(d);nv(y);let E=ws(d),B=ws(d,{expanded:!0})??E;B&&(Uc.current=B)},"onManagedTaskStatus"),onProviderRateLimit:o((d,g,y)=>{rt.current||Nn({type:"info",icon:"\u23F3",text:`[Rate Limit] Retrying in ${y/1e3}s (${d}/${g})...`},"ratelimit")},"onProviderRateLimit"),onRetryAfter:o(d=>{if(rt.current)return;let g=Math.round(d.waitMs/1e3),y=d.source==="exponential-backoff"?"no-header \u2192 backoff":d.source,E=d.reason==="overloaded"?"Overloaded":"Rate limited";Nn({type:"info",icon:"\u23F3",text:`[${E}] (${d.provider}) \u2014 retrying in ${g}s [${y}] (${d.attempt}/${d.maxAttempts})`},"ratelimit")},"onRetryAfter"),onRepoIntelligenceTrace:o(d=>{rt.current||Nn(n0(d),"repointel-trace")},"onRepoIntelligenceTrace"),onTodoUpdate:o(d=>{rt.current||$r(d)},"onTodoUpdate"),onScoutSuspiciousCompletion:o(d=>{rt.current||fI&&Nn({type:"info",icon:"\u26A0",text:`[Scout] Completion marked uncertain \u2014 signals: ${d.signals.join(", ")}. Verify the result before continuing.`},"scout-uncertain")},"onScoutSuspiciousCompletion"),onIterationStart:o((d,g)=>{if(rt.current)return;if(g&&Le(g),it.current?.globalWorkBudget){let we={...it.current,budgetUsage:Math.min(it.current.globalWorkBudget,(it.current.budgetUsage??0)+1)};it.current=we,Hc(we)}let y=d>1?xe().trim():"",E=d>1?tg(ee()):"",R=d>1?[...Yn.current]:[],B=d>1?[...jt.current]:[],F=!!st.current.workerId;A(d),F&&Kc({clearOwner:!1});let V=pr.current.filter(we=>we.status===$.Executing),ae=new Set(V.map(we=>we.id));if(Yn.current=[],jt.current=jt.current.filter(we=>ae.has(we.id)),Tn(V),Oe(),Pe(void 0),pt($d(it.current?.activeWorkerTitle?`[Thinking] [${it.current.activeWorkerTitle}]`:void 0,it.current?.activeWorkerTitle)),fe(),d>1&&!F){let we=ng({thinking:y,response:E,toolCalls:B,toolNames:R});Jo.current?Jo.current(we):j([...we])}},"onIterationStart"),beforeToolExecute:o(async(d,g)=>{let y=pn.current,E=ha(y),R=_x.current,B=n.gitRoot;if(uy(_.current,d,g))return`[Skipped] Previously denied operation. ${dy(_.current)}`;if(y==="plan"&&(ko.has(d)||d==="undo"))return`[Blocked] Tool '${d}' is not allowed in plan mode (read-only). ${aI}`;if(y==="plan"&&d==="bash"){let F=g.command??"";if(Vr(F))return`[Blocked] Bash write operation not allowed in plan mode: ${F.slice(0,50)}... ${aI}`}if(d==="bash"){let F=g.command??"";if(Gr(F))return!0}if(tn(y)&&Nf==="llm")return!0;if(d==="bash"){let F=g.command??"",V=cy(F);if(V.level==="dangerous"){let ae=await Ur(d,{...g,_dangerousCommand:!0});return ae.confirmed?ae.confirmed:(_.current=mp(_.current,d,g,V.reason),`[Blocked] Dangerous command requires confirmation: ${V.reason}`)}}if(B){let F=!1;if(ko.has(d)){let V=g.path;V&&Sa(V,B)&&(F=!0)}if(d==="bash"){let V=g.command;V&&xy(V,B)&&(F=!0)}if(F){let V=await Ur(d,{...g,_alwaysConfirm:!0});if(pn.current==="plan"&&(ko.has(d)||d==="undo"))return!1;if(pn.current==="plan"&&d==="bash"){let ae=g.command??"";if(Vr(ae))return!1}return V.confirmed}}if(E.has(d)){if(y==="accept-edits"&&d==="bash"&&await ya(d,g,R,Zf.current??void 0))return!0;let F=await Ur(d,g);if(pn.current==="plan"&&(ko.has(d)||d==="undo"))return!1;if(pn.current==="plan"&&d==="bash"){let V=g.command??"";if(Vr(V))return!1}if(!F.confirmed)return C({type:"info",text:ne("cancelled")}),_.current=mp(_.current,d,g),!1;F.always&&y==="accept-edits"&&(Kl(d,g,!1),_x.current=Li())}return!0},"beforeToolExecute"),askUser:o(async d=>{let g=d.options?Jd(d.options):[],y=await wi(Kh(d),g,d.multiSelect);return y===void 0?fp:y},"askUser"),exitPlanMode:o(async d=>pn.current!=="plan"?"not-in-plan-mode":(await Ur("exit_plan_mode",{plan:d})).confirmed?(ep("accept-edits"),!0):!1,"exitPlanMode"),askUserMulti:o(async d=>{let g=d.questions,y={},E="__back__",R=0;for(;R<g.length;){let B=g[R],F=Jd(B.options);R>0&&F.push({label:ne("select.back_prev"),value:E});let V=`[${R+1}/${g.length}] ${B.question}`,ae=await wi(V,F,B.multiSelect);if(ae===void 0)return;if(ae===E){R--;continue}y[B.question]=ae,R++}return y},"askUserMulti"),askUserInput:o(async d=>Nx(d.question,d.default),"askUserInput"),onCompactStart:o(()=>{D()},"onCompactStart"),onCompactStats:o(d=>{$s.current=d.tokensBefore,Kn(d.tokensAfter)},"onCompactStats"),onCompactedMessages:o((d,g)=>{n.messages=d,g?.artifactLedger&&g.artifactLedger.length>0&&(n.artifactLedger=fa(n.artifactLedger??[],g.artifactLedger)),n.lineage=g?.anchor?Zx(n.lineage,d,g.anchor,g.postCompactAttachments??[]):kn(d,n.lineage);let y=Ll(d);n.contextTokenSnapshot={currentTokens:y,baselineEstimatedTokens:y,source:"estimate"},ar(n),Kn(y),Ec.current?.().catch(()=>{})},"onCompactedMessages"),onCompact:o(d=>{pe();let g=$s.current??d;$s.current=null;let y=Math.round(g/1e3);Nn({type:"info",icon:"\u2728",text:`Context auto-compacted (was ~${y}k tokens)`},"compact")},"onCompact"),onCompactEnd:o(()=>{$s.current=null,pe()},"onCompactEnd"),onIterationEnd:o(d=>{d.scope!=="worker"&&(n.contextTokenSnapshot=d.contextTokenSnapshot),Kn(d.tokenCount)},"onIterationEnd")}),[J,ce,U,gt,Pe,be,De,Oe,A,fe,W,n,D,pe,C,Re,xe,ee,Kc,pt,Yc,_g,Dn,Lg,Pg,Qc,Us,Or,Nr,Tn,I.currentTool]),Ur=o((d,g)=>{let y=DC(d,g);return hr(),new Promise(E=>{go.current=E,Zc({tool:d,input:g,prompt:y})})},"showConfirmDialog");He(()=>(u(async(d,g,y)=>(await Ur(d.name,{...d.input,_reason:`[auto-mode] ${g}`,...y&&y.length>0?{_classifierSignals:y}:{}})).confirmed?"allow":"block"),f(d=>{Df(d)}),()=>{u(null),f(null)}),[]),He(()=>{p(W)},[W,p]),He(()=>{let d=o(()=>Ti(),"resolve");return up({askUser:o(g=>{let y=d().askUser;if(!y)throw new Error("askUser surface unavailable");return y(g)},"askUser"),askUserMulti:o(async g=>{let y=d().askUserMulti;return y?y(g):void 0},"askUserMulti"),askUserInput:o(async g=>{let y=d().askUserInput;return y?y(g):void 0},"askUserInput")}),()=>up(void 0)},[Ti]);let sa=o(async(d,g,y=n.lineage?At(n.lineage,n.lineage.activeEntryId):n.messages,E)=>{let R={...Ti(),getCostReport:O},F=Ii(n.gitRoot).getSystemPromptSnippet(),V=r0(d.context,n.gitRoot,n.contextTokenSnapshot,F);E&&E.length>0&&(V.inputArtifacts=[...E]),V.planModeBlockCheck=(ae,we)=>pn.current!=="plan"?null:Ro(ae,we,n.gitRoot??process.cwd());try{return await pa({...d,session:{...d.session,initialMessages:y},context:V,events:R,abortSignal:Pt()},g)}finally{oy()}},"runAgentRound"),Fn=X(d=>{let g=kn([...d],n.lineage);return n.lineage=g,g},[n]),aa=X(async d=>{if(n.messages.length===0)return;let g=$i(n.messages),y=zo(d??Y.current);Y.current=y,n.title=g,n.uiHistory=y;let E=n.lineage??Fn(n.messages);n.lineage=E;let R=Qh({messages:n.messages,title:g,gitRoot:n.gitRoot??"",tag:Ve.current.session?.tag,uiHistory:y,lineage:E,artifactLedger:n.artifactLedger});"appendSessionDelta"in r&&typeof r.appendSessionDelta=="function"?await r.appendSessionDelta(n.sessionId,R):await r.save(n.sessionId,R),Hd()&&Wd("persist",Fd(n.messages,E,{historyItems:de.current,foregroundItems:Xt.current,streamingResponse:le.current.currentResponse,streamingThinking:le.current.thinkingContent,persistedUiHistory:Y.current}))},[n,Fn,r]),tp=X(()=>{if(Mc.current)return Mc.current;let d=(async()=>{try{for(;uo.current.requested;){uo.current.requested=!1;let g=uo.current.uiHistoryOverride;uo.current.uiHistoryOverride=void 0,await aa(g)}}finally{Mc.current=null,uo.current.requested&&tp()}})();return Mc.current=d,wg.current=d,d},[aa]),Sr=X(d=>{if(d!==void 0){let g=zo(d);Y.current=g,uo.current.uiHistoryOverride=g}return uo.current.requested=!0,tp()},[tp]),gv=X(async()=>{if(Ns.current)return Ns.current;let d=(async()=>{rt.current=!0,z(),K(),U(),Re(),Oe(),ie(),Pe(void 0),Be(!1),await wg.current.catch(()=>{}),await Ec.current?.().catch(()=>{}),Pr(!1),M&&x?.isRaw&&T(!1),x?.pause?.(),x?.unref?.(),w(),a()})();return Ns.current=d.finally(()=>{Ns.current=null}),Ns.current},[z,ie,Re,Oe,w,M,a,Pe,Be,T,x,K,U]);He(()=>(Ec.current=Sr,()=>{Ec.current=null}),[Sr]);let Dx=X(d=>{if(d.length===0)return;let g=tf(Y.current,d);Y.current=g,Sr(g)},[Sr]),To=X(d=>{d.length!==0&&(j([...d]),Dx(d))},[j,Dx]),kl=X(d=>{d.length!==0&&(j([...d]),Y.current=tf(Y.current,d))},[j]);He(()=>(Jo.current=To,()=>{Jo.current=null}),[To]);let Bx=X(async d=>{n.messages=d.messages,n.contextTokenSnapshot=d.contextTokenSnapshot,Fn(d.messages);let g=d.success===!1&&!d.interrupted,y=xe().trim(),E=Cy(d.messages,ee(),d.managedTask?.verdict.summary,d.lastText),R=[...Xt.current],B=R.length>0;zc(R);let F=B&&R.some(Mt=>Mt.type==="assistant"&&"text"in Mt&&Pi(String(Mt.text??"")).length>0),V=!g&&E&&!F,ae=[...ri.current],we=g?[]:ae.length===0?fI?ph(d):ph(d).filter(Mt=>!fh(Mt)):[],xt=B?[]:ng({thinking:y,response:void 0,toolCalls:jt.current,toolNames:Yn.current}),Qt=[...R.map(Mt=>ao(Mt)),...xt,...g?[]:ae.map(Mt=>ao(Mt)),...we.map(Mt=>cI(Mt)),...V?[{type:"assistant",text:d.interrupted?`${E}
|
|
144
|
+
|
|
145
|
+
[Interrupted]`:E}]:!E&&!F&&!d.interrupted&&!g?[{type:"info",text:"[No response text was produced for this round]"}]:[]],ca=tf(Y.current,Qt);Re(),ie();let la=[...R.map(Mt=>ao(Mt)),...xt,...g?[]:[...we.map(Mt=>cI(Mt)),...ae.map(Mt=>ao(Mt))],...V?[{type:"assistant",text:d.interrupted?`${E}
|
|
146
|
+
|
|
147
|
+
[Interrupted]`:E}]:!E&&!F&&!d.interrupted&&!g?[{type:"info",text:"[No response text was produced for this round]"}]:[]];j(la),Yn.current=[],jt.current=[],Nr(),Oe(),Pe(void 0),pt(void 0),Fs(),po.current=[],ri.current=[],Bs([]),H(),Sr(ca).catch(()=>{})},[j,H,Oe,ie,Re,n,ee,xe,Sr,Fn,Nr,Fs,Pe,pt,I.currentIteration]),vl=X(async d=>{let g=d.trim();g&&(C({type:"user",text:g}),Rc(y=>y+1),ar(n))},[C,n]),Rl=X(async(d,g)=>{let y=ia.current;rt.current=!1,Os.current=!1,Ps(!0);try{return await I0({initialPrompt:d,runRound:g,shiftPendingPrompt:Ie,onRoundComplete:o(async E=>{ia.current===y&&await Bx(E)},"onRoundComplete"),onBeforeQueuedRound:o(async E=>{rt.current=!1,Os.current=!1,await vl(E)},"onBeforeQueuedRound"),shouldContinue:o(E=>!rt.current&&E.success!==!1,"shouldContinue"),shouldDrainQueuedPrompts:o(()=>Qo.current?le.current.pendingInputs.length===0?(Qo.current=!1,!0):!1:!0,"shouldDrainQueuedPrompts")})}finally{Ps(!1)}},[Bx,Ie,vl]),np=X(async()=>{let d=Ie();if(!d||!d.trim())return;let g=d.trim();await vl(g),await Rl(g,async y=>sa(Ve.current,y))},[sa,Rl,Ie,vl]),rp=X(d=>{let g=d[d.length-1];if(g?.role!=="assistant")return;let y=Ca(g);j(y.map(Ta))},[j]),Hx=X(async(d,g)=>{let y=await Dd({...Ve.current,provider:W.provider,thinking:W.thinking,reasoningMode:W.reasoningMode},d,g,E=>C({type:"info",text:E}));if(y.mode==="manual"){y.manualOutput&&C({type:"info",text:y.manualOutput}),await y.finalize();return}if(!y.prompt||!y.options){await y.finalize();return}Ps(!0);try{let E=y.mode==="fork"?[]:n.lineage?At(n.lineage,n.lineage.activeEntryId):n.messages,R=ia.current,B=await sa(y.options,y.prompt,E);if(ia.current!==R)await y.finalize();else{let F=Y.current,V=[];if(y.mode==="fork"){let ae=B.messages.find(xt=>xt.role==="user");ae&&n.messages.push(ae);let we=B.messages.slice().reverse().find(xt=>xt.role==="assistant");if(we){n.messages.push({role:"assistant",content:we.content}),Fn(n.messages);for(let xt of Ca(we)){let Qt=Ta(xt);C(Qt),V.push(Qt)}}}else{n.messages=B.messages,n.contextTokenSnapshot=B.contextTokenSnapshot,Fn(B.messages),rp(B.messages);let ae=B.messages[B.messages.length-1];if(ae?.role==="assistant")for(let we of Ca(ae))V.push(Ta(we))}await aa(tf(F,V)),Hd()&&Wd("round-end",Fd(n.messages,n.lineage,{historyItems:de.current,foregroundItems:Xt.current,streamingResponse:le.current.currentResponse,streamingThinking:le.current.thinkingContent,persistedUiHistory:Y.current})),await y.finalize()}}catch(E){let R=E instanceof Error?E:new Error(String(E));throw await y.finalize(R),Ps(!1),R}Ps(!1),await np()},[C,rp,n,W.provider,W.thinking,np,aa,Fn,sa]),xv=X(async d=>{for(let g of d.pastedContents)if(g.type==="text"&&!g.content&&g.contentHash)try{let y=await Ly(g.contentHash);y&&(g.content=y)}catch{}},[]),yv=X(async d=>{let{displayText:g,fullText:y,pastedContents:E}=d;if(!y.trim()||!Lr||tt||$e)return;for(let Q of E){if(Q.type!=="text"||Q.content.length<1024)continue;let ke=Ay(Q.content);_y(ke,Q.content)}if(Og(!1),te){if(!xf)return;if(I.pendingInputs.length>=5){Nn({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(b0(y)){Nn({type:"info",icon:"\u26A0",text:T0},C0);return}let Q=I.currentTool;if(Q&&Dl(Q)?.interruptBehavior==="cancel"){Ye(y),z({preservePendingInputs:!0}),Lc(""),_c(!0),Rc(en=>en+1),ar(n);return}Ye(y),Lc(""),_c(!0),Rc(ke=>ke+1),ar(n);return}let R=tg(ee()),B=Xt.current.map(Q=>ao(Q)),F=B.length>0;B.length>0&&(zc(Xt.current),kl(B)),!F&&R&&kl([{type:"assistant",text:R+`
|
|
148
|
+
|
|
149
|
+
[Interrupted]`}]),kl([{type:"user",text:g}]),Lc(""),_c(!0),Rc(Q=>Q+1),Hd()&&Wd("turn-start",Fd(n.messages,n.lineage,{historyItems:de.current,foregroundItems:Xt.current,streamingResponse:le.current.currentResponse,streamingThinking:le.current.thinkingContent,persistedUiHistory:Y.current})),Be(!0),rt.current=!1,Os.current=!1,++ia.current,Hc(null),ti(null),it.current=null,Uc.current=null,pt(void 0),Fs(),po.current=[],ri.current=[],Bs([]),ho(),Ws(void 0),Yn.current=[],jt.current=[],Nr(),ie(),Oe(),Pe(void 0),H(),We(),ar(n),await new Promise(Q=>setTimeout(Q,50));let V=o(Q=>{if(Q.stage==="started"||Q.stage==="generating"||Q.stage==="validating"||Q.stage==="ready"){ti(Q.message);return}ti(null)},"handleWorkflowBuilderEvent"),ae=o(Q=>{if(Q.status==="running"){vf({runId:Q.runId,workflow:Q.workflow,status:Q.status,...Q.phase!==void 0?{phase:Q.phase}:{},...Q.phaseIndex!==void 0?{phaseIndex:Q.phaseIndex}:{},...Q.phaseTotal!==void 0?{phaseTotal:Q.phaseTotal}:{},...Q.startedAt!==void 0?{startedAt:Q.startedAt}:{},...Q.elapsedMs!==void 0?{elapsedMs:Q.elapsedMs}:{},activeAgents:Q.activeAgents,totalSpawned:Q.totalSpawned,...Q.plannedAgents!==void 0?{plannedAgents:Q.plannedAgents}:{},...Q.agentCap!==void 0?{agentCap:Q.agentCap}:{},...Q.tokenBudgetSpent!==void 0?{tokenBudgetSpent:Q.tokenBudgetSpent}:{},...Q.tokenBudgetTotal!==void 0?{tokenBudgetTotal:Q.tokenBudgetTotal}:{},completedAgents:Q.completedAgents,failedAgents:Q.failedAgents,stoppedAgents:Q.stoppedAgents,...Q.message!==void 0?{message:Q.message}:{},...Q.locale!==void 0?{locale:Q.locale}:{}});return}vf(ke=>ke?.runId===Q.runId?null:ke)},"handleWorkflowRunUpdate"),we=o(Q=>{if(Q.type==="event")return;let ke=It(Q.text).trimEnd();if(ke.trim()){if(Q.type==="error"){C({type:"error",text:ke});return}if(Q.type==="assistant"){To([{type:"assistant",text:ke}]);return}Nn({type:"info",text:ke},"workflow-message")}},"handleWorkflowRunMessage"),xt=o(()=>({createKodaXOptions:o(()=>({...Ve.current,provider:W.provider,model:W.model,thinking:W.thinking,reasoningMode:W.reasoningMode,agentMode:W.agentMode,guardrails:ef(pn.current,l),events:Ti()}),"createKodaXOptions"),confirm:o(async Q=>(await Ur("confirm",{_alwaysConfirm:!0,_message:Q})).confirmed,"confirm"),onWorkflowBuilderEvent:V,onWorkflowRunMessage:we,onWorkflowRunUpdate:ae}),"createWorkflowCallbacks"),Qt=o(async(Q,ke,en)=>{let Jt=Hl({agentMode:W.agentMode,source:Q.source,input:ke||Q.request});if(Jt.action==="none")return!1;if(Jt.action==="suggest"&&Q.source==="natural-language"){let Z=Jt.trigger==="explicit";if(!await en.confirm?.(Z?"This request explicitly asks for workflow. Generate and run it? Choose No to cancel this turn.":"This task looks suitable for workflow. Use workflow? Choose No to continue with normal AMA."))return Z?(C({type:"info",text:"Workflow request cancelled. No normal AMA fallback was started."}),!0):!1}let Co=[],bo=console.log;console.log=(...Z)=>{Co.push(Jh(Z))};let Ci=!1,El=o(()=>{Ci||(Ci=!0,n.messages.push({role:"user",content:ke||Q.request}))},"commitWorkflowUserMessage"),N={...en,onWorkflowRunMessage:o(Z=>{if(en.onWorkflowRunMessage?.(Z),Z.type!=="assistant"||Z.final!==!0)return;let Me=It(Z.text).trimEnd();Me.trim()&&(El(),n.messages.push({role:"assistant",content:Me}),Fn(n.messages),Sr(),le.current.pendingInputs.length>0&&(Qo.current=!0))},"onWorkflowRunMessage")};try{let Z=await Xl({request:Q.request,callbacks:N,approval:W.permissionMode==="plan"?"required":"silent",presentation:"agentic",sourceLabel:Q.displayName,onBuilderEvent:N.onWorkflowBuilderEvent});return Z==="started"&&le.current.pendingInputs.length>0&&(Qo.current=!0),Z==="started"||Z==="cancelled"}finally{ti(null),console.log=bo;let Z=Zh(Co.filter((Me,jr,Ml)=>Ml.indexOf(Me)===jr));Z&&C({type:"info",text:Z})}},"runWorkflowInvocation"),ca=Di(y.trim());if(ca){let Q=!1,ke=o(N=>{ca.command==="workflow"&&(Q||(Q=!0,n.messages.push({role:"user",content:y.trim()})),n.messages.push({role:"assistant",content:N}),Fn(n.messages),Sr())},"commitSlashWorkflowFinalMessage"),en={exit:gv,saveSession:o(async()=>{if(n.messages.length>0){let N=$i(n.messages);n.title=N;let Z=n.lineage??Fn(n.messages);n.lineage=Z,await r.save(n.sessionId,Qh({messages:n.messages,title:N,gitRoot:n.gitRoot??"",tag:Ve.current.session?.tag,uiHistory:Y.current,lineage:Z,artifactLedger:n.artifactLedger}))}},"saveSession"),startNewSession:o(()=>{let N=sc(),Z=new Date().toISOString();n.sessionId=N,n.title="",n.uiHistory=[],n.contextTokenSnapshot=void 0,n.lineage=void 0,n.artifactLedger=void 0,Y.current=[],n.createdAt=Z,n.lastAccessed=Z,Ve.current.session={...Ve.current.session,id:N},Kn(null),ue(),$r([]),My()?.reset(),ge(N),h?.writer.update({sessionId:N})},"startNewSession"),loadSession:o(async N=>{let Z=await r.load(N);return Z?jo(W,"Resuming a saved session",nf)?(n.messages=Z.messages,n.uiHistory=Es(Z.uiHistory),n.lineage=Z.lineage,n.artifactLedger=Z.artifactLedger,n.title=Z.title,n.sessionId=N,n.contextTokenSnapshot=void 0,Ve.current.session={...Ve.current.session,id:N,tag:Z.tag},Y.current=n.uiHistory??[],Kn(null),ue(),$r([]),ge(N),h?.writer.update({sessionId:N}),console.log(Qe.green(`[Session loaded: ${N}]`)),"loaded"):"blocked":"missing"},"loadSession"),listSessions:o(async()=>{let N=await r.list(n.gitRoot??void 0);if(N.length===0){console.log(Qe.dim(`
|
|
150
|
+
[No saved sessions]`));return}console.log(Qe.bold(`
|
|
151
|
+
Recent Sessions:
|
|
152
|
+
`));for(let Z of N.slice(0,10))console.log(` ${Qe.cyan(Z.id)} ${Qe.dim(`(${Z.msgCount} messages)`)} ${Z.title.slice(0,40)}`);console.log()},"listSessions"),clearHistory:o(()=>{n.uiHistory=[],ue(),$r([])},"clearHistory"),printHistory:o(()=>{if(n.messages.length===0){console.log(Qe.dim(`
|
|
153
|
+
[No conversation history]`));return}console.log(Qe.bold(`
|
|
154
|
+
Conversation History:
|
|
155
|
+
`));let N=n.messages.slice(-20);for(let Z=0;Z<N.length;Z++){let Me=N[Z],jr=Qe.cyan(Me.role.padEnd(10)),Ml=gp(Me.content),kv=Ml.slice(0,60).replace(/\n/g," "),vv=Ml.length>60?"...":"";console.log(` ${(Z+1).toString().padStart(2)}. ${jr} ${kv}${vv}`)}console.log()},"printHistory"),switchProvider:o((N,Z)=>{Ue(Me=>({...Me,provider:N,model:Z})),Ve.current.provider=N,Ve.current.model=Z},"switchProvider"),setThinking:o(N=>{let Z=N?"auto":"off";Ue(Me=>({...Me,thinking:N,reasoningMode:Z})),Ve.current.thinking=N,Ve.current.reasoningMode=Z},"setThinking"),setReasoningMode:o(N=>{let Z=N!=="off";Ue(Me=>({...Me,thinking:Z,reasoningMode:N})),Ve.current.thinking=Z,Ve.current.reasoningMode=N},"setReasoningMode"),setAgentMode:o(N=>{Ue(Z=>({...Z,agentMode:N})),Ve.current.agentMode=N},"setAgentMode"),setPermissionMode:o(N=>{ep(N)},"setPermissionMode"),setRepoIntelligenceRuntime:o(N=>{Ue(Z=>({...Z,...N.mode!==void 0?{repoIntelligenceMode:N.mode}:{},...N.endpoint!==void 0?{repointelEndpoint:N.endpoint??void 0}:{},...N.bin!==void 0?{repointelBin:N.bin??void 0}:{},...N.trace!==void 0?{repoIntelligenceTrace:N.trace}:{}})),N.mode!==void 0&&(process.env.KODAX_REPO_INTELLIGENCE_MODE=N.mode,Ve.current.context={...Ve.current.context,repoIntelligenceMode:N.mode}),N.trace!==void 0&&(N.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,Ve.current.context={...Ve.current.context,repoIntelligenceTrace:N.trace}),N.endpoint!==void 0&&(N.endpoint?process.env.KODAX_REPOINTEL_ENDPOINT=N.endpoint:delete process.env.KODAX_REPOINTEL_ENDPOINT),N.bin!==void 0&&(N.bin?process.env.KODAX_REPOINTEL_BIN=N.bin:delete process.env.KODAX_REPOINTEL_BIN)},"setRepoIntelligenceRuntime"),deleteSession:o(async N=>{await r.delete?.(N)},"deleteSession"),deleteAllSessions:o(async()=>{await r.deleteAll?.(n.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:o(async()=>{let N=await r.getLineage?.(n.sessionId);if(!N){console.log(Qe.dim(`
|
|
156
|
+
[No session tree available for this session]`));return}let Z=Ld(Ol(N));console.log(Qe.bold(`
|
|
157
|
+
Session Tree:
|
|
158
|
+
`)),Z.forEach(Me=>console.log(` ${Me}`)),console.log()},"printSessionTree"),switchSessionBranch:o(async N=>{if(!jo(W,"Switching session branches",nf))return"blocked";let Me=await r.setActiveEntry?.(n.sessionId,N,{summarizeCurrentBranch:!0});return Me?(n.messages=Me.messages,n.uiHistory=Es(Me.uiHistory),n.title=Me.title,n.contextTokenSnapshot=void 0,Y.current=n.uiHistory??[],Kn(null),ue(),$r([]),console.log(Qe.green(`
|
|
159
|
+
[Switched to tree entry: ${N}]`)),console.log(Qe.dim(` Messages: ${Me.messages.length}`)),"switched"):"missing"},"switchSessionBranch"),labelSessionBranch:o(async(N,Z)=>{if(!await r.setLabel?.(n.sessionId,N,Z))return!1;let jr=Z&&Z.trim()?`checkpoint label set: ${Z.trim()}`:"checkpoint label cleared";return console.log(Qe.green(`
|
|
160
|
+
[${jr}]`)),!0},"labelSessionBranch"),forkSession:o(async N=>{if(!jo(W,"Forking a session branch",nf))return"blocked";let Me=await r.fork?.(n.sessionId,N);if(!Me)return"failed";n.sessionId=Me.sessionId,n.messages=Me.data.messages,n.uiHistory=Es(Me.data.uiHistory),n.title=Me.data.title,n.contextTokenSnapshot=void 0,Y.current=n.uiHistory??[];let jr=new Date().toISOString();return n.createdAt=jr,n.lastAccessed=jr,Ve.current.session={...Ve.current.session,id:Me.sessionId},Kn(null),ue(),$r([]),ge(Me.sessionId),h?.writer.update({sessionId:Me.sessionId}),console.log(Qe.green(`
|
|
161
|
+
[Forked session: ${Me.sessionId}]`)),console.log(Qe.dim(` Messages: ${Me.data.messages.length}`)),"forked"},"forkSession"),rewindSession:o(async N=>{if(!jo(W,"Rewinding session",nf))return"blocked";let Me=await r.rewind?.(n.sessionId,N);return Me?(n.messages=Me.messages,n.uiHistory=Es(Me.uiHistory),n.title=Me.title,n.contextTokenSnapshot=void 0,Y.current=n.uiHistory??[],Kn(null),ue(),$r([]),console.log(Qe.green(`
|
|
162
|
+
[Rewound session${N?` to ${N}`:" to previous turn"}]`)),console.log(Qe.dim(` Messages: ${Me.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:o(()=>O.current?.()??null,"getCostReport"),getAutoModeStats:o(()=>{if(tn(pn.current))return l.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:o(N=>{tn(pn.current)&&(l.getGuardrail().setEngine(N),Df(N))},"setAutoModeEngine"),createKodaXOptions:o(()=>({...Ve.current,provider:W.provider,model:W.model,thinking:W.thinking,reasoningMode:W.reasoningMode,agentMode:W.agentMode,guardrails:ef(pn.current,l),events:Ti()}),"createKodaXOptions"),reloadAgentsFiles:o(async()=>{let N=await pp({cwd:process.cwd(),projectRoot:n.gitRoot??void 0});return m(N),N},"reloadAgentsFiles"),startCompacting:o(()=>{D()},"startCompacting"),stopCompacting:o(()=>{pe()},"stopCompacting"),onCompactStats:o(N=>{$s.current=N.tokensBefore,Kn(N.tokensAfter)},"onCompactStats"),confirm:o(async N=>(await Ur("confirm",{_alwaysConfirm:!0,_message:N})).confirmed,"confirm"),onWorkflowBuilderEvent:V,onWorkflowRunMessage:o(N=>{if(we(N),N.type!=="assistant"||N.final!==!0)return;let Z=It(N.text).trimEnd();Z.trim()&&ke(Z)},"onWorkflowRunMessage"),onWorkflowRunUpdate:ae,ui:{select:o(async(N,Z)=>hv(N,Z),"select"),confirm:o(async N=>(await Ur("confirm",{_alwaysConfirm:!0,_message:N})).confirmed,"confirm"),input:o(async(N,Z)=>Nx(N,Z),"input")}},Jt=[],Co=console.log;console.log=(...N)=>{Jt.push(Jh(N))};let bo,Ci;try{let N=await Bi(ca,n,en,W);typeof N=="object"&&N!==null&&"invocation"in N&&(bo=N.invocation),typeof N=="object"&&N!==null&&"workflow"in N&&(Ci=N.workflow)}finally{ti(null),console.log=Co}let El=Zh(Jt);if(El&&C({type:"info",text:El}),Ci){try{await Qt(Ci,y.trim(),en)}finally{le.current.pendingInputs.length>0&&(Qo.current=!0),Be(!1),K(),Re()}return}if(bo){Be(!1),K(),Be(!0),We(),fe();try{await Hx(bo,y.trim())}catch(N){let Z=N instanceof Error?N:new Error(String(N)),Me=Z.name==="AbortError"||Z.message.includes("aborted")||Z.message.includes("ABORTED");console.log=Co,Me?Cl():To([{type:"error",text:Z.message}])}finally{Be(!1),K(),Re()}return}Be(!1),K();return}let la=await oh(y.trim());if(y.trim().startsWith("!")&&cc(la)){Be(!1),K();return}if(await Qt({request:la,source:"natural-language",displayName:W.agentMode.toUpperCase()},y.trim(),xt())){le.current.pendingInputs.length>0&&(Qo.current=!0),Be(!1),K(),Re();return}let Mt=Ve.current.context?.executionCwd??process.cwd(),Iv=o(Q=>{Q.length!==0&&To(Q.map(ke=>({type:"info",text:ke})))},"emitArtifactWarnings");fe();let sp=[],ap=console.log;console.log=(...Q)=>{sp.push(Jh(Q))};try{await Rl(la,async Q=>{let ke=uc(Q,Ve.current.context?.executionCwd??process.cwd());return Iv(ke.warnings),sa(Ve.current,ke.promptText,n.messages,ke.inputArtifacts)})}catch(Q){let ke=Q instanceof Error?Q:new Error(String(Q));if(ke.name==="AbortError"||ke.message.includes("aborted")||ke.message.includes("ABORTED"))console.log=ap,Cl();else{let Jt=ke.message;ke.message.includes("rate limit")||ke.message.includes("Rate limit")?Jt=`[Rate Limit] ${ke.message}
|
|
163
|
+
Suggestion: Wait a moment and try again, or switch provider with /mode`:ke.message.includes("API key")||ke.message.includes("not configured")?Jt=`[Configuration Error] ${ke.message}
|
|
164
|
+
Suggestion: Set the required API key environment variable`:ke.message.includes("network")||ke.message.includes("ECONNREFUSED")||ke.message.includes("ETIMEDOUT")?Jt=`[Network Error] ${ke.message}
|
|
165
|
+
Suggestion: Check your internet connection`:(ke.message.includes("token")||ke.message.includes("context too long"))&&(Jt=`[Context Error] ${ke.message}
|
|
166
|
+
Suggestion: Use /clear to start fresh`),console.log=ap,st.current.workerId?Cn({id:`error-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,type:"error",text:Jt,timestamp:Date.now()}):To([{type:"error",text:Jt}])}}finally{if(console.log=ap,sp.length>0){let ke=sp.filter((Jt,Co,bo)=>bo.indexOf(Jt)===Co),en=Zh(ke);en&&C({type:"info",text:en})}if(!rt.current){let ke=Us($.Cancelled,()=>({error:"Run ended before the tool result was observed.",output:void 0}));ke.length>0&&st.current.workerId&&ke.forEach(en=>Dn(en))}Be(!1),K(),ie(),Re();let Q=Ll(n.messages);n.contextTokenSnapshot={currentTokens:Q,baselineEstimatedTokens:Q,source:"estimate"},Kn(Q)}},[Lr,n,W,xf,I.pendingInputs.length,r,tt,$e,w,a,C,ue,We,K,ie,Ti,Hx,Pt,ee,xe,kl,To,rp,aa,Sr,Fn,Rl,np,D,pe,Nr,Us,Dn,ho]),Wx=Nt.shouldRender?se(k,{paddingX:1,children:se(wC,{viewModel:Nt})}):void 0,Fx=te&&Wn.shouldRender?se(k,{paddingX:1,children:se(xC,{viewModel:Wn})}):void 0,Sv=Wx||Fx?Zt(k,{flexDirection:"column",children:[Wx,Fx]}):void 0,Ux=Nt.shouldRender?Nt.counterText:void 0,wv=se(hd,{left:se(pd,{items:ax}),right:se(md,{items:cx}),queued:se(Qm,{pendingInputs:I.pendingInputs}),stashNotice:se(Cd,{text:hl}),notifications:se(Td,{notifications:ml}),inlineNotices:Uf.length>0?se(Jm,{notices:Uf}):void 0,activityBar:Fr||Nt.shouldRender||te&&Wn.shouldRender?Zt(k,{paddingX:1,flexDirection:"row",children:[Zt(k,{flexGrow:1,children:[Fr?.showSpinner?se(_n,{color:oe("dark").colors.accent}):null,Fr?Zt(b,{color:Fr.kind==="waiting"?oe("dark").colors.warning:oe("dark").colors.accent,wrap:"truncate",children:[Fr.showSpinner?" ":"",Fr.text]}):null,Fr?.showSpinner&&I.roundStartedAt!=null?se(Xw,{roundStartedAt:I.roundStartedAt,charCount:I.currentResponse.length,theme:oe("dark")}):null]}),Ux?se(b,{dimColor:!0,wrap:"truncate",children:Ux}):te&&Wn.shouldRender?se(b,{dimColor:!0,wrap:"truncate",children:`${Wn.completedCount}/${Wn.totalCount} completed`}):null]}):void 0,todoSurface:Sv,composer:se(Fm,{onSubmit:yv,onHistoryRecall:xv,onPopPendingInputs:o(()=>{let d=q();if(d.length!==0)return d.join(`
|
|
167
|
+
---
|
|
168
|
+
`)},"onPopPendingInputs"),prompt:">",placeholder:Ob({isLoading:te,canQueueFollowUps:xf,waitingReason:Bf}),focus:!tt&&!$e&&!ct,cwd:process.cwd(),gitRoot:e.context?.gitRoot||n.gitRoot,onInputChange:ov}),inlineSuggestions:uv,helpSurface:$g?se(jm,{sections:Ud()}):void 0,taskBar:Js?se(bd,{items:pi.backgroundTask.items,overflowLabel:pi.backgroundTask.overflowLabel,ctaHint:pi.backgroundTask.ctaHint,showSpinner:te}):void 0,statusLine:se(k,{children:se(fs,{...fl,viewModel:ix})}),inlineDialogs:fv}),Tv=se(hd,{left:se(pd,{items:ax}),right:se(md,{items:cx}),stashNotice:se(Cd,{text:hl}),notifications:se(Td,{notifications:ml}),composer:se(pC,{searchActive:ct,selectionActive:!!(xr||et),showAllActive:Rt,searchQuery:Yt,searchCurrent:Et.length>0?Hr+1:0,searchCount:Et.length,searchDetailText:Of,pendingLiveUpdates:Ks,secondaryText:cv}),taskBar:Js?se(bd,{items:pi.backgroundTask.items,overflowLabel:pi.backgroundTask.overflowLabel,ctaHint:pi.backgroundTask.ctaHint,showSpinner:lt}):void 0,statusLine:se(k,{children:se(fs,{...fl,viewModel:Wf})})}),op=X(d=>se(mC,{banner:d?.bannerVisible?se(eg,{...yo}):void 0,items:Xs,isLoading:qt,viewportRows:Dt.messageRows,viewportWidth:L,scrollOffset:Pn,windowed:!!d?.rendererWindow,rendererWindow:d?.rendererWindow,transcriptModel:d?.rendererWindow?qs:Sx,maxLines:wt,selectedTextRanges:_f?Bc?.rowRanges:void 0,onMetricsChange:xl,onVisibleRowsChange:yl}),[yo,Xs,qt,xl,yl,Pn,Sx,L,wt,Bc?.rowRanges,Dt.messageRows,_f]),ip=X(d=>se(hC,{banner:d?.bannerVisible?se(eg,{...yo}):void 0,items:zs,browse:{hintText:Wr.browseHintText},selection:gl,search:nx,isLoading:lt,isThinking:Te.isThinking,thinkingCharCount:Te.thinkingCharCount,thinkingContent:Te.thinkingContent,streamingResponse:Te.currentResponse,currentTool:Te.currentTool,activeToolCalls:Te.activeToolCalls,toolInputCharCount:Te.toolInputCharCount,toolInputContent:Te.toolInputContent,iterationHistory:Te.iterationHistory,currentIteration:Te.currentIteration,isCompacting:Te.isCompacting,agentMode:W.agentMode,managedPhase:lt?G?.phase:void 0,managedHarnessProfile:lt?G?.harnessProfile:void 0,managedWorkerTitle:lt?G?.activeWorkerTitle:void 0,managedRound:lt?G?.currentRound:void 0,managedMaxRounds:lt?G?.maxRounds:void 0,managedGlobalWorkBudget:lt?G?.globalWorkBudget:void 0,managedBudgetUsage:lt?G?.budgetUsage:void 0,managedBudgetApprovalRequired:lt?G?.budgetApprovalRequired:void 0,lastLiveActivityLabel:Te.lastLiveActivityLabel,liveStatusLines:di,viewportRows:Dt.messageRows,viewportWidth:L,scrollOffset:Pn,windowed:!!d?.windowed,animateSpinners:!!d?.rendererWindow&&hi,rendererWindow:d?.rendererWindow,transcriptModel:d?.rendererWindow?qs:sl,maxLines:wt,showDetailedTools:Rt,showAllContent:Rt,selectedItemId:bn.selectionEnabled?et:void 0,selectedTextRanges:fr?.rowRanges,expandedItemKeys:bn.selectionEnabled?dn:void 0,onMetricsChange:xl,onVisibleRowsChange:yl}),[yo,W.agentMode,lt,dn,s.transcriptSpinnerAnimation,xl,yl,Pn,jg,G?.activeWorkerTitle,G?.budgetApprovalRequired,G?.budgetUsage,G?.currentRound,G?.globalWorkBudget,G?.harnessProfile,G?.maxRounds,G?.phase,qs,sl,Wr.browseHintText,et,gl,L,hi,zs,wt,Te.activeToolCalls,Te.currentIteration,Te.currentResponse,Te.currentTool,Te.isCompacting,Te.isThinking,Te.iterationHistory,Te.lastLiveActivityLabel,Te.thinkingCharCount,Te.thinkingContent,Te.toolInputCharCount,Te.toolInputContent,di,fr?.rowRanges,nx,Rt,Dt.messageRows]),Cv=re?ip({bannerVisible:!1,windowed:Tt}):op({bannerVisible:!1}),jx=re?Tv:wv,bv=s.enabled&&xo,Gx=Zt(k,{flexDirection:"column",width:L,flexShrink:0,flexGrow:bv?1:0,children:[se(yh,{currentConfig:W,setCurrentConfig:Ue,isLoading:te,abort:z,stopThinking:U,clearThinkingContent:Re,setCurrentTool:Pe,setIsLoading:Be,onToggleHelp:rv,setShowHelp:Og,onSetThinking:o(d=>{Ve.current.thinking=d},"onSetThinking"),onSetReasoningMode:o(d=>{Ve.current.reasoningMode=d,Ve.current.thinking=d!=="off"},"onSetReasoningMode"),onToggleTranscriptMode:pv,onOpenTranscriptSearch:Xf,canOpenTranscriptSearch:re&&!tt&&!$e,isInteractiveDialogActive:!!(tt||$e),onSetAgentMode:o(d=>{Ve.current.agentMode=d},"onSetAgentMode"),onSetPermissionMode:o(d=>{ep(d)},"onSetPermissionMode"),isInputEmpty:Ac,onSavePermissionMode:yy}),gf&&(s.enabled?null:se(ts,{items:[1],children:o(()=>se(eg,{...yo},"banner"),"children")})),xo?se(Dm,{width:L,stickyHeader:Wr.stickyHeader,jumpToLatest:Wr.jumpToLatest,transcript:!s.enabled||!Tt?re?ip({bannerVisible:!1}):op({bannerVisible:!1}):void 0,renderTranscriptWindow:s.enabled&&Tt?d=>(()=>{let y=na(d).contentWindow;return re?ip({bannerVisible:!1,windowed:!0,rendererWindow:y}):op({bannerVisible:!1,rendererWindow:y})})():void 0,overlay:Qf,scrollTop:Pn,scrollHeight:ta,viewportHeight:Dt.messageRows,stickyScroll:!re&&!gr&&wf,overscanRows:X1,scrollRef:Vk,onWindowChange:dv,onScrollTopChange:zk,onStickyChange:Xk,footer:jx}):Zt(gI,{children:[Zt(k,{flexDirection:"column",flexGrow:1,children:[Cv,Qf?se(k,{position:"absolute",bottom:0,left:0,right:0,flexDirection:"column",children:Qf}):null]}),jx]})]});return Af?se(tm,{mouseTracking:Dr.usesRendererMouseTracking,children:Gx}):Gx},"InkREPLInner"),Z1=o(e=>{let t=process.cwd(),n=e.options?.context?.gitRoot??void 0;return se(yd,{children:se(Id,{children:se(Bu,{children:se(gh,{children:se(mm,{cwd:t,gitRoot:n,children:se(J1,{...e})})})})})})},"InkREPL");function eO(){return process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function"}o(eO,"isRawModeSupported");async function rg(e){if(!eO())throw new lp("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 xs,n=Mo(),r=Ao(),i=_o(n,r),{prepareRuntimeConfig:s,getGitRoot:a}=await import("./utils-XWDT3W5X.js"),{loadCompactionConfig:c}=await import("./compaction-config-BQBYOWX2.js"),{resolveProvider:l}=await import("./dist-D7HOETCE.js"),u=s(),f=e.provider??u.provider??_l,p=e.model??u.model,m=V1(e,u),h=e.agentMode??u.agentMode??"ama",w=m!=="off",S=ga(u.permissionMode,"accept-edits")??"accept-edits",x=Nl(),T=u.repoIntelligenceTrace===!0,M={provider:f,model:p,thinking:w,reasoningMode:m,agentMode:h,permissionMode:S,repoIntelligenceMode:x.mode,repointelEndpoint:x.endpoint,repointelBin:x.bin,repoIntelligenceTrace:T},v=e.session?.id,P=[],O,_,C,j="",ue=await a().catch(()=>null)??void 0,ge=Pl({meta:{cwd:process.cwd(),startedAt:Date.now()}});if(ge){let J=o(()=>{ge.shutdown()},"teamModeCleanup");process.on("exit",J),process.on("SIGTERM",J)}try{let{bootstrapConstructionRuntime:J}=await import("./construction-bootstrap-5TFGMSWQ.js"),ce=await J(ue??process.cwd());if(ce.loaded>0||ce.failed>0||ce.tampered>0){let U=ce.failed>0?`; ${ce.failed} failed (see warnings above)`:"",Re=ce.tampered>0?`; ${ce.tampered} skipped due to manifest contentHash mismatch \u2014 re-stage and re-activate to re-approve`:"";console.log(Qe.dim(`[Constructed] Rehydrated ${ce.loaded} active tool(s)${U}${Re}.`))}if(ce.markdownLoaded>0||ce.markdownFailures.length>0){console.log(Qe.dim(`[Agents] Loaded ${ce.markdownLoaded} markdown agent(s).`));for(let U of ce.markdownFailures)console.warn(Qe.yellow(`[Agents] Skipped ${U.path}: ${U.reason}`))}}catch(J){console.warn(Qe.yellow(`[Constructed] Bootstrap failed: ${J.message}. Self-construction disabled this session.`))}let de;try{let J=await c(ue),ce=l(f);de={contextWindow:J.contextWindow??ce.getContextWindow?.()??2e5,triggerPercent:J.triggerPercent,enabled:J.enabled,userOverrideContextWindow:J.contextWindow}}catch{}if(e.session?.id&&!e.session.resume){let J=await t.load(e.session.id);J&&(P=J.messages,O=Es(J.uiHistory),_=J.lineage,C=J.artifactLedger,j=J.title,v=e.session.id,e={...e,session:{...e.session??{},id:v,tag:J.tag}},console.log(Qe.green(`[Session loaded: ${v}]`)))}else if(e.session?.resume||e.session?.autoResume){let J=await t.list(ue);if(J.length>0){let ce=J[0];if(ce){let U=await t.load(ce.id);U&&(P=U.messages,O=Es(U.uiHistory),_=U.lineage,C=U.artifactLedger,j=U.title,v=ce.id,e={...e,session:{...e.session??{},tag:U.tag}},console.log(Qe.green(`[Continuing session: ${ce.id}]`)))}}}let Y=await ic({sessionId:v,gitRoot:ue,existingMessages:P,existingUiHistory:O,existingLineage:_,existingArtifactLedger:C});Y.title=j,ge?.writer.update({sessionId:Y.sessionId});let I={current:await pp({cwd:process.cwd(),projectRoot:ue??void 0})},le={current:null},We={current:null},K={current:M},z=Vl(),fe=await ac({askUser:o(async(J,ce,U)=>{let Re=le.current;return Re?Re(J,ce,U):"block"},"askUser"),projectRoot:ue??process.cwd(),getAgentsFiles:o(()=>I.current,"getAgentsFiles"),getCurrentProviderName:o(()=>K.current.provider,"getCurrentProviderName"),getCurrentModel:o(()=>K.current.model,"getCurrentModel"),getCurrentPermissionMode:o(()=>K.current.permissionMode,"getCurrentPermissionMode"),autoModeSettings:z,log:o((J,ce)=>{J==="warn"?console.warn(Qe.yellow(ce)):console.log(Qe.dim(ce))},"log"),onEngineChange:o(J=>{We.current?.(J)},"onEngineChange"),extraCollectors:[Gl]});try{let J=process.stdout,ce=process.stdin;import("./paste-5DSTHQGK.js").then(De=>De.prunePasteTmpDir()).catch(()=>{});let U=!1,{waitUntilExit:Re,cleanup:Pe}=Mu(se(Z1,{options:e,config:M,context:Y,storage:t,compactionInfo:de,rendererMode:r,fullscreenPolicy:i,autoModeBootstrap:fe,setAutoModeAskUser:o(De=>{le.current=De},"setAutoModeAskUser"),setAutoModeEngineChange:o(De=>{We.current=De},"setAutoModeEngineChange"),setCurrentConfigRef:o(De=>{K.current=De},"setCurrentConfigRef"),onAgentsFilesReload:o(De=>{I.current=De},"onAgentsFilesReload"),teamModeHandle:ge,onExit:o(()=>{U=!0},"onExit")}),{stdout:J,stdin:ce,exitOnCtrlC:!1,patchConsole:!1,maxFps:30,shellMode:i.enabled?i.promptShell:"main-screen"});await Re(),Pe(),ge?.shutdown(),ce.isTTY===!0&&typeof ce.setRawMode=="function"&&ce.isRaw&&ce.setRawMode(!1),ce.pause?.(),ce.unref?.(),U&&console.log(Qe.dim(`
|
|
169
|
+
[Exiting KodaX...]`));let be=e.hardExitOnClose??process.env.VITEST!=="true";if(U&&be){let De=process.exitCode??0,Oe=!1,ie=o(()=>{Oe||(Oe=!0,process.exit(De))},"requestProcessExit");setTimeout(ie,0).unref?.(),J.write("",ie);return}}catch(J){throw J instanceof Error&&J.message.includes("Raw mode")?new lp("Interactive mode failed to start.",['kodax -p "your task" # Run a single task',"kodax -c # Continue last session"]):J}}o(rg,"runInkInteractiveMode");import Sn from"chalk";var yI=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],SI=["\x1B[36m","\x1B[35m","\x1B[34m"],gc=null,Ms=!1;function hc(){let e=0,t=0,n=!1,r="Thinking...",i=o(()=>{if(n)return;let c=SI[t%SI.length],l="\x1B[0m",u=yI[e%yI.length];process.stdout.write(`\r${c}${u}${l} ${r}`)},"renderFrame"),s=setInterval(()=>{e++,e%10===0&&t++,i()},80);i();let a={stop:o(()=>{n||(n=!0,clearInterval(s),process.stdout.write("\r\x1B[K"))},"stop"),isStopped:o(()=>n,"isStopped"),updateText:o(c=>{r=c},"updateText")};return gc=a,a}o(hc,"startWaitingDots");function tO(e=!0){let t=null,n=0,r=!1;return{onSessionStart:o(s=>{console.log(e?Sn.cyan(`[KodaX] Provider: ${s.provider} | Session: ${s.sessionId}`):Sn.cyan(`[KodaX] Provider: ${s.provider}`))},"onSessionStart"),onTextDelta:o(s=>{t&&(t.stop(),t=null),n=0,process.stdout.write(s),r=!0},"onTextDelta"),onThinkingDelta:o(s=>{n+=s.length,t||(t=hc()),t.updateText(`Thinking... (${n} chars)`)},"onThinkingDelta"),onThinkingEnd:o(s=>{if(t&&(t.stop(),t=null),s){let a=s.replace(/\n/g," "),c=a.length>100?a.slice(0,100)+"...":a;console.log(Sn.dim(`[Thinking] ${c}`))}},"onThinkingEnd"),onToolUseStart:o(s=>{t||(Ms||(process.stdout.write(`
|
|
170
|
+
`),Ms=!0),t=hc()),t.updateText(`Executing ${s.name}...`)},"onToolUseStart"),onToolInputDelta:o((s,a,c)=>{let l=a.length;t&&!t.isStopped()?t.updateText(`Receiving ${s}... (${l} chars)`):(!t||t.isStopped())&&(Ms||(process.stdout.write(`
|
|
171
|
+
`),Ms=!0,r=!1),t=hc(),t.updateText(`Receiving ${s}... (${l} chars)`))},"onToolInputDelta"),onToolResult:o(s=>{t&&(t.stop(),t=null),console.log(Sn.green(`[Result] ${s.content.slice(0,300)}${s.content.length>300?"...":""}`))},"onToolResult"),onRepoIntelligenceTrace:o(s=>{t&&(t.stop(),t=null),console.log(Sn.dim(`[RepoIntel] ${s.summary}`))},"onRepoIntelligenceTrace"),onStreamEnd:o(()=>{gc&&!gc.isStopped()&&gc.stop(),gc=null,Ms=!1,r&&(console.log(),r=!1),(!t||t.isStopped())&&(t=hc(),t.updateText("Processing..."))},"onStreamEnd"),onIterationStart:o((s,a)=>{t&&!t.isStopped()&&t.stop(),Ms=!1,r=!1,console.log(Sn.magenta(`
|
|
172
|
+
[Assistant]`)),t=hc()},"onIterationStart"),onCompactStart:o(()=>{console.log(Sn.dim(`
|
|
173
|
+
[KodaX] Compacting context...`))},"onCompactStart"),onCompact:o(s=>{console.log(Sn.dim(`[KodaX] Compaction finished (${s} tokens).`))},"onCompact"),onCompactEnd:o(()=>{},"onCompactEnd"),onRetry:o((s,a,c)=>{console.log(Sn.yellow(`[KodaX] Retry ${a}/${c}: ${s}`))},"onRetry"),onProviderRecovery:o(s=>{let a=s.recoveryAction==="non_streaming_fallback"?"switching to non-streaming fallback":s.recoveryAction==="manual_continue"?"awaiting manual continue":`recovering ${s.attempt}/${s.maxAttempts}`;console.log(Sn.yellow(`[KodaX] ${a} (${s.errorClass}, ${s.stage})`))},"onProviderRecovery"),onComplete:o(()=>{t&&(t.stop(),t=null),console.log(Sn.green(`
|
|
174
|
+
[KodaX] Done!`))},"onComplete"),onError:o(s=>{t&&(t.stop(),t=null),console.log(Sn.red(`
|
|
175
|
+
[Error] ${s.message}`))},"onError"),onScoutSuspiciousCompletion:o(s=>{console.log(Sn.yellow(`
|
|
176
|
+
[Scout] Completion marked uncertain \u2014 signals: ${s.signals.join(", ")}. Verify the result before continuing.`))},"onScoutSuspiciousCompletion"),beforeToolExecute:o(async(s,a)=>!0,"beforeToolExecute")}}o(tO,"createCliEvents");function dt(e,t){e.write(`${JSON.stringify(t)}
|
|
177
|
+
`)}o(dt,"writeJsonLine");function nO(e){return{type:"error",name:e.name,message:e.message,stack:e.stack}}o(nO,"serializeError");function rO(e={}){let t=e.stdout??process.stdout,n=e.stderr??process.stderr;return{onSessionStart:o(r=>{dt(t,{type:"session.start",provider:r.provider,sessionId:r.sessionId})},"onSessionStart"),onIterationStart:o((r,i)=>{dt(t,{type:"iteration.start",iter:r,maxIter:i})},"onIterationStart"),onIterationEnd:o(r=>{dt(t,{type:"iteration.end",iter:r.iter,maxIter:r.maxIter,tokenCount:r.tokenCount,tokenSource:r.tokenSource,usage:r.usage,contextTokenSnapshot:r.contextTokenSnapshot})},"onIterationEnd"),onTextDelta:o(r=>{dt(t,{type:"text.delta",text:r})},"onTextDelta"),onThinkingDelta:o(r=>{dt(t,{type:"thinking.delta",text:r})},"onThinkingDelta"),onThinkingEnd:o(r=>{dt(t,{type:"thinking.end",thinking:r})},"onThinkingEnd"),onToolUseStart:o(r=>{dt(t,{type:"tool.start",id:r.id,name:r.name,input:r.input})},"onToolUseStart"),onToolInputDelta:o((r,i,s)=>{dt(t,{type:"tool.input.delta",toolName:r,partialJson:i,toolId:s?.toolId})},"onToolInputDelta"),onToolResult:o(r=>{dt(t,{type:"tool.result",id:r.id,name:r.name,content:r.content})},"onToolResult"),onStreamEnd:o(()=>{dt(t,{type:"stream.end"})},"onStreamEnd"),onCompactStart:o(()=>{dt(t,{type:"compact.start"})},"onCompactStart"),onCompact:o(r=>{dt(t,{type:"compact.finish",estimatedTokens:r})},"onCompact"),onCompactStats:o(r=>{dt(t,{type:"compact.stats",tokensBefore:r.tokensBefore,tokensAfter:r.tokensAfter})},"onCompactStats"),onCompactEnd:o(()=>{dt(t,{type:"compact.end"})},"onCompactEnd"),onRetry:o((r,i,s)=>{dt(t,{type:"retry",reason:r,attempt:i,maxAttempts:s})},"onRetry"),onProviderRecovery:o(r=>{dt(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:o((r,i,s)=>{dt(t,{type:"provider.rate_limit",attempt:r,maxRetries:i,delayMs:s})},"onProviderRateLimit"),onRepoIntelligenceTrace:o(r=>{dt(t,{type:"repo_intelligence.trace",stage:r.stage,summary:r.summary,capability:r.capability,trace:r.trace})},"onRepoIntelligenceTrace"),onToolProgress:o(r=>{dt(t,{type:"tool.progress",id:r.id,message:r.message})},"onToolProgress"),onManagedTaskStatus:o(r=>{dt(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:o(r=>{dt(t,{type:"scout.suspicious_completion",confidence:r.confidence,signals:r.signals,sessionId:r.sessionId,lastTextPreview:r.lastTextPreview})},"onScoutSuspiciousCompletion"),onComplete:o(()=>{dt(t,{type:"complete"})},"onComplete"),onError:o(r=>{dt(n,nO(r))},"onError")}}o(rO,"createJsonEvents");import{jsx as ft,jsxs as ln}from"react/jsx-runtime";import cO,{useMemo as xc}from"react";var og=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@.*$/,wI=/^---\s+(.+)$/;function TI(e){if(!e)return[];let t=e.split(`
|
|
178
|
+
`),n=[],r=[],i=[],s=!1,a=null,c=null,l=0,u=0,f=o(()=>{if(r.length===0)return;let m=r.join(`
|
|
179
|
+
`);m.length>0&&n.push({kind:"text",text:m}),r=[]},"flushText"),p=o(()=>{i.length!==0&&(n.push({kind:"diff",text:i.join(`
|
|
180
|
+
`),addedLines:l,removedLines:u,filePath:c}),i=[],l=0,u=0,c=null)},"flushDiff");for(let m=0;m<t.length;m++){let h=t[m];if(!s){let x=wI.exec(h);if(x){let T=Math.min(m+3,t.length-1),M=!1;for(let v=m+1;v<=T;v++)if(t[v]?.startsWith("+++ ")||og.test(t[v]??"")){M=!0;break}if(M){f(),s=!0,a=x[1]??null,c=a,i.push(h);continue}}if(og.test(h)){f(),s=!0,i.push(h);continue}r.push(h);continue}let w=wI.exec(h);if(w){let x=Math.min(m+3,t.length-1),T=!1;for(let M=m+1;M<=x;M++)if(t[M]?.startsWith("+++ ")||og.test(t[M]??"")){T=!0;break}if(T){p(),c=w[1]??null,i.push(h);continue}}let S=h[0];if(S==="+"||S==="-"||S===" "||S==="@"||h===""){S==="+"&&!h.startsWith("+++ ")&&l++,S==="-"&&!h.startsWith("--- ")&&u++,i.push(h);continue}p(),s=!1,a=null,r.push(h)}return p(),f(),n}o(TI,"parseUnifiedDiff");function CI(e){return e?/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/m.test(e):!1}o(CI,"containsUnifiedDiff");import{jsxs as As,jsx as oO}from"react/jsx-runtime";import iO from"react";function sO(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"}}o(sO,"classifyLine");function aO(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}}o(aO,"colorFor");var ig=iO.memo(({text:e,addedLines:t,removedLines:n,filePath:r,theme:i,maxLines:s=16,extremeThreshold:a=200})=>{let c=i??oe("dark"),l=e.split(`
|
|
181
|
+
`),u=l.map(sO),f=`(${t>0?`+${t}`:"\xB10"} ${n>0?`-${n}`:""})`.trim();if(l.length>a)return As(k,{flexDirection:"column",marginLeft:4,children:[r&&As(b,{dimColor:!0,children:[r," ",f]}),As(b,{dimColor:!0,children:["[diff too large to render inline \u2014 ",l.length," lines, ",t,"+ / ",n,"-]"]})]});let p,m=0;if(l.length>s){let h=Math.floor(s/2),w=u.slice(0,h),S=u.slice(-h);m=l.length-w.length-S.length,p=[...w,{text:"",kind:"context"},...S]}else p=u;return As(k,{flexDirection:"column",marginLeft:4,children:[r&&As(b,{dimColor:!0,children:[r," ",f]}),p.map((h,w)=>{if(w===Math.floor(s/2)&&m>0&&h.kind==="context"&&h.text==="")return As(b,{dimColor:!0,children:["... ",m," lines collapsed ..."]},`collapse-${w}`);let x=aO(h.kind,c);return oO(b,{color:x,children:h.text||" "},w)})]})});ig.displayName="DiffHunk";function bI(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"?"}}o(bI,"getStatusIcon");function II(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}}o(II,"getStatusColor");function lO(e,t){if(!t)return"";let n=t-e;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}o(lO,"formatDuration");function uO(e){if(!e)return"";let t=JSON.stringify(e);return t.length<=50?t:t.slice(0,47)+"..."}o(uO,"formatInputSummary");var dO=o(({status:e,theme:t})=>{let n=t??xc(()=>oe("dark"),[]),r=bI(e),i=II(e,n);return ft(b,{color:i,children:r})},"ToolStatusBadge"),kI=o(({progress:e,width:t=20,theme:n})=>{let r=n??xc(()=>oe("dark"),[]),i=Math.max(0,Math.min(100,e)),s=Math.round(i/100*t),a=t-s,c="\u2588".repeat(s),l="\u2591".repeat(a);return ln(k,{children:[ft(b,{color:r.colors.primary,children:c}),ft(b,{dimColor:!0,children:l}),ln(b,{children:[" ",i,"%"]})]})},"ToolProgressBar"),vI=o(({tool:e,collapsed:t=!1,theme:n})=>{let r=n??xc(()=>oe("dark"),[]),i=bI(e.status),s=II(e.status,r),a=uO(e.input),c=lO(e.startTime,e.endTime);return t?ln(k,{children:[ln(b,{color:s,children:[i," "]}),ft(b,{color:r.colors.text,children:e.name})]}):ln(k,{flexDirection:"column",marginLeft:2,children:[ln(k,{children:[ln(b,{color:s,children:[i," "]}),ft(b,{color:r.colors.text,bold:!0,children:e.name}),a&&ln(b,{dimColor:!0,children:[" ",a]})]}),e.progress!==void 0&&e.status===$.Executing&&ft(k,{marginLeft:2,children:ft(kI,{progress:e.progress,theme:r})}),e.progressLines&&e.progressLines.length>0&&e.status===$.Executing&&ft(k,{flexDirection:"column",marginLeft:2,children:e.progressLines.slice(-5).map((l,u)=>ft(b,{dimColor:!0,children:l},u))}),e.error&&ft(k,{marginLeft:2,children:ft(b,{color:r.colors.error,children:e.error})}),e.status===$.Success&&typeof e.output=="string"&&e.output.length>0&&ft(RI,{output:e.output,theme:r}),c&&e.status!==$.Executing&&ft(k,{marginLeft:2,children:ln(b,{dimColor:!0,children:["Completed in ",c]})})]})},"ToolCallDisplay"),RI=cO.memo(({output:e,theme:t})=>{if(!CI(e))return ft(k,{marginLeft:2,children:ft(b,{dimColor:!0,children:e})});let n=TI(e);return ft(k,{flexDirection:"column",marginLeft:2,children:n.map((r,i)=>r.kind==="text"?ft(b,{dimColor:!0,children:r.text},i):ft(ig,{text:r.text,addedLines:r.addedLines,removedLines:r.removedLines,filePath:r.filePath,theme:t},i))})});RI.displayName="ToolOutputBlock";var fO=o(({tools:e,collapsed:t=!1,title:n,theme:r})=>{let i=r??xc(()=>oe("dark"),[]);if(e.length===0)return null;let s=xc(()=>{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 ft(k,{flexDirection:"column",marginBottom:1,children:ln(k,{children:[ft(b,{color:i.colors.accent,bold:!0,children:a}),ln(b,{dimColor:!0,children:[" ","(",e.length," tools",c>0&&`, ${c} succeeded`,l>0&&`, ${l} failed`,u>0&&`, ${u} running`,")"]})]})})}return ln(k,{flexDirection:"column",marginBottom:1,children:[ln(k,{children:[ft(b,{color:i.colors.accent,bold:!0,children:a}),ln(b,{dimColor:!0,children:[" ","(",e.length," ",e.length===1?"tool":"tools",")"]})]}),e.map(c=>ft(vI,{tool:c,theme:i},c.id))]})},"ToolGroup");import{jsxs as EI,jsx as pO}from"react/jsx-runtime";var mO=o(({pendingInputs:e})=>{let t=qT(e);if(!t)return null;let n=oe("dark");return EI(k,{children:[EI(b,{color:n.colors.hint,children:["\u23F3"," "]}),pO(b,{color:n.colors.dim,children:t})]})},"PendingInputsIndicator");import*as MI from"child_process";var yc;function hO(){if(process.platform!=="win32")return null;if(yc!==void 0)return yc;try{yc=MI.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{yc=null}return yc}o(hO,"detectWindowsCodePage");function rf(){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")}o(rf,"supportsTrueColor");function AI(){if(rf())return!0;let e=process.env.TERM||"";return e.includes("256color")||e==="xterm-256color"||e==="screen-256color"||e==="tmux-256color"}o(AI,"supports256Colors");function Ar(){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 i=`${t}|${n}|${r}`.toLowerCase();return i.includes("utf-8")||i.includes("utf8")?!0:process.platform==="win32"?e.WT_SESSION||e.TERM_PROGRAM==="vscode"?!0:hO()==="65001":!0}o(Ar,"supportsUnicode");function _I(){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)}o(_I,"supportsEmoji");function LI(){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}o(LI,"getTerminalWidth");function PI(){let e=process.env;return!!(e.NO_COLOR||e.TERM==="dumb"||e.CI)}o(PI,"isScreenReader");function gO(){return process.stdout?.isTTY??!1}o(gO,"isTTY");function xO(){return{trueColor:rf(),colors256:AI(),unicode:Ar(),emoji:_I(),tty:gO(),columns:LI(),screenReader:PI()}}o(xO,"detectTerminalCapabilities");var Sc=class{static{o(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 yO(e){let t=new Sc;t.start();try{let n=await e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}o(yO,"withCapture");function SO(e){let t=new Sc;t.start();try{let n=e(),r=t.stop();return{result:n,captured:r}}finally{t.stop()}}o(SO,"withCaptureSync");import*as zI from"readline";import he from"chalk";import Gn from"chalk";var wO=[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel the action",value:"no"}],TO=[{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 CO(e,t=!0){return e.map(n=>{let r=Gn.dim(`[${n.key}]`);return t?`${r} ${Gn.cyan(n.label)} ${Gn.dim(`- ${n.description}`)}`:`${r} ${n.label}`}).join(" ")}o(CO,"formatOptions");function _s(){return process.stdout.columns??80}o(_s,"getTerminalWidth");function bO(){return Ar()}o(bO,"supportsUnicode");function IO(){let e=bO();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]"}}o(IO,"getSymbols");async function kO(e,t){let{message:n,default:r,options:i,showDescription:s=!0}=t,a=i??wO,c=CO(a,s);console.log(),console.log(Gn.cyan(`? ${n}`));let l=_s();if(c.length>l-4)for(let u of a){let f=Gn.dim(` [${u.key}]`);console.log(`${f} ${Gn.cyan(u.label)}`),s&&console.log(Gn.dim(` ${u.description}`))}else console.log(Gn.dim(` ${c}`));return new Promise(u=>{let f=r?` (${r})`:"";e.question(Gn.dim(` Choose${f}: `),p=>{let m=p.trim().toLowerCase()||r||"",h=a.find(w=>w.key===m||w.value===m||w.label.toLowerCase()===m);u(h?h.value:m===""?"no":m)})})}o(kO,"confirmEnhanced");async function wc(e,t,n,r){let{isOutsideProject:i=!1,isProtectedPath:s=!1,permissionMode:a="accept-edits"}=r??{},c=IO(),l,u,f={...n,...i?{_outsideProject:!0}:{},...s?{_alwaysConfirm:!0}:{}},p=Pd(t,f),m=p.details.map(w=>` ${Gn.dim(w)}`);i||s?(l=`${Gn.yellow(c.warning)} Safety Warning`,m.length>0&&(l+=`
|
|
182
|
+
${m.join(`
|
|
183
|
+
`)}`),u=[{key:"y",label:"Yes",description:"Allow this once",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]):(l=p.title,m.length>0&&(l+=`
|
|
184
|
+
${m.join(`
|
|
185
|
+
`)}`),u=a==="accept-edits"?TO:[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"}]);let h=await kO(e,{message:l,default:"n",options:u});return h==="always"?{confirmed:!0,always:!0}:{confirmed:h==="yes"}}o(wc,"confirmToolExecution");import un from"chalk";var of=/\x1b\[[0-9;]*m/g,ur={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 vO(e,t){if(t<=0)return"";let n="",r=0,i=0;for(;i<e.length&&r<t;){of.lastIndex=i;let s=of.exec(e);if(s&&s.index===i){n+=s[0],i+=s[0].length;continue}n+=e[i],r+=1,i+=1}return n}o(vO,"truncateAnsi");function $I(e){return of.lastIndex=0,e.replace(of,"")}o($I,"stripAnsi");function RO(e,t=_s()){let n=[],r=e.sessionId.slice(0,6);n.push(un.dim(`#${r}`));let i=e.permissionMode==="plan"?un.blue:e.permissionMode==="accept-edits"?un.cyan:e.permissionMode==="auto-in-project"?un.magenta:un.green,s=ma(e.permissionMode),c=(e.permissionMode==="auto"||e.permissionMode==="auto-in-project")&&e.autoModeEngine?e.autoModeEngine==="llm"?un.green("[LLM]"):un.yellow("[RULES]"):"";if(n.push(i(s)+c),e.reasoningMode&&n.push(un.yellow(`reason:${e.reasoningMode}`)),n.push(un.cyan(e.provider)),e.tokenUsage){let f=e.tokenUsage.total,p=f>=1e3?`${(f/1e3).toFixed(1)}k`:String(f);n.push(un.dim(`${p}t`))}if(e.currentTool&&n.push(un.magenta(`tool:${e.currentTool}`)),e.projectInfo){let{completedFeatures:f,totalFeatures:p}=e.projectInfo,m=p>0?Math.round(f/p*100):0;n.push(un.dim(`${f}/${p} [${m}%]`))}e.messageCount!==void 0&&n.push(un.dim(`${e.messageCount} msgs`));let l=n.join(un.dim(" | ")),u=t-1;return $I(l).length>u&&(l=`${vO(l,Math.max(0,u-3))}...`),l}o(RO,"buildStatusBarContent");var sf=class{static{o(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=_s(),n=RO(this.state,t),r=n+" ".repeat(Math.max(0,t-$I(n).length));process.stdout.write(ur.SAVE_CURSOR+ur.MOVE_TO_BOTTOM+ur.CLEAR_LINE+ur.REVERSE+r+ur.RESET+ur.RESTORE_CURSOR)}clear(){process.stdout.write(ur.SAVE_CURSOR+ur.MOVE_TO_BOTTOM+ur.CLEAR_LINE+ur.RESTORE_CURSOR)}};function OI(e,t,n,r,i="off"){return{sessionId:e,permissionMode:t,reasoningMode:i,provider:n,model:r}}o(OI,"createStatusBarState");function NI(){if(!process.stdout.isTTY||Fi())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(i=>e.startsWith(i))||r.includes(t)||process.env.WT_SESSION!==void 0}o(NI,"supportsStatusBar");import z4 from"chalk";function DI(){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"]}}o(DI,"getUnicodeSymbols");function sg(){return{prompt:">",success:"[OK]",error:"[X]",warning:"[!]",info:"[i]",arrow:"->",bullet:"*",check:"[v]",cross:"[x]",spinner:["|","/","-","\\","|","/","-","\\"]}}o(sg,"getAsciiSymbols");var BI={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:Ar()?DI():sg(),spinner:{frames:Ar()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},EO={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:Ar()?DI():sg(),spinner:{frames:Ar()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["|","/","-","\\","|","/","-","\\"],interval:80}},MO={name:"minimal",description:"Minimal theme without colors (for CI or limited terminals)",colors:{primary:"",secondary:"",accent:"",text:"",dim:"",success:"",warning:"",error:"",info:""},symbols:sg(),spinner:{frames:[".","o","O","0","O","o"],interval:120}},AO={dark:BI,light:EO,minimal:MO},HI=BI;function Xo(){return HI}o(Xo,"getCurrentTheme");function Tc(e){let t=AO[e];return t?(HI=t,!0):!1}o(Tc,"setTheme");function _O(){if(!process.stdout.isTTY){Tc("minimal");return}let e=process.env;if(e.WT_SESSION!==void 0||e.TERM_PROGRAM==="vscode"){Tc("dark");return}Tc("dark")}o(_O,"autoSelectTheme");_O();var af=class{static{o(this,"ReadlineUIContext")}rl;constructor(t){this.rl=t}async select(t,n){if(n.length!==0)return console.log(`
|
|
186
|
+
${t}`),console.log("\u2500".repeat(t.length)),n.forEach((r,i)=>{console.log(` ${i+1}. ${r}`)}),console.log(" 0. Cancel"),console.log(""),new Promise(r=>{this.rl.question("Enter choice (0 to cancel): ",i=>{let s=i.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 i=r.trim().toLowerCase();n(i==="y"||i==="yes")})})}async input(t,n){let r=n?`${t} [${n}]: `:`${t}: `;return new Promise(i=>{this.rl.question(r,s=>{let a=s.trim();if(a===""&&n!==void 0){i(n);return}i(a||void 0)})})}};import*as WI from"child_process";import*as bc from"path";import*as Cc from"fs";import*as FI from"os";import dr from"chalk";function UI(e,t){let n=Xo(),r=e==="plan"?dr.hex(n.colors.warning):dr.hex(n.colors.success),i=t.model??vn(t.provider)??t.provider,s=_s();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?dr.hex(n.colors.dim)(`[${c}]`):"";return r(`kodax:${e}${l}> `)}let a=t.reasoningMode!=="off"?dr.hex(n.colors.info)(`[reason:${t.reasoningMode}]`):"";return r(`kodax:${e} (${t.provider}:${i})${a}> `)}o(UI,"getPrompt");async function jI(e,t){let n=Xo(),r=[],i=await new Promise(a=>{e.question(t,a)});if(i===""||i.toLowerCase()==="/e")return await ag(r.join(`
|
|
187
|
+
`));for(r.push(i);LO(r.join(`
|
|
188
|
+
`));){let a=dr.hex(n.colors.dim)("... "),c=await new Promise(l=>{e.question(a,l)});r.push(c)}return r.join(`
|
|
189
|
+
`).replace(/\\\n/g,`
|
|
190
|
+
`)}o(jI,"askInput");async function ag(e){let t=bc.join(FI.tmpdir(),"kodax"),n=bc.join(t,`input-${Date.now()}-${Math.random().toString(36).slice(2)}.txt`);try{await Cc.promises.mkdir(t,{recursive:!0}),await Cc.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=bc.basename(r);console.log(dr.yellow(`
|
|
191
|
+
[Security] Editor path sanitized: ${a}`)),r=a}console.log(dr.dim(`
|
|
192
|
+
[Opening editor: ${r}]`));let i=process.platform==="win32"&&(r.toLowerCase()==="notepad"||r.toLowerCase()==="notepad.exe");return console.log(i?dr.dim(`Note: Please close Notepad manually after editing to continue.
|
|
193
|
+
`):dr.dim(`Save and close the editor to continue...
|
|
194
|
+
`)),WI.spawnSync(r,[n],{stdio:"inherit",timeout:3e5,shell:!1}),(await Cc.promises.readFile(n,"utf-8")).trim()}catch(r){let i=r instanceof Error?r:new Error(String(r));return console.log(dr.red(`
|
|
195
|
+
[Editor Error] ${i.message}`)),e}finally{try{await Cc.promises.unlink(n)}catch{}}}o(ag,"openExternalEditor");function LO(e){if(e.endsWith("\\")&&!e.endsWith("\\\\"))return!0;let t={"(":0,"[":0,"{":0},n={")":"(","]":"[","}":"{"},r=null;for(let i=0;i<e.length;i++){let s=e[i];if((s==='"'||s==="'"||s==="`")&&e[i-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(i=>i>0)||r)}o(LO,"needsContinuation");import ze from"chalk";function GI(e){e?.workspaceRoot&&(console.log(ze.dim(` Workspace: ${Jn(e)}`)),console.log(ze.dim(` Use /status workspace for runtime details.
|
|
196
|
+
`)))}o(GI,"printWorkspaceEntryNotice");function VI(e,t,n,r){let i=Xo(),s=e.model??vn(e.provider)??e.provider,a=`
|
|
197
|
+
\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
|
|
198
|
+
\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
|
|
199
|
+
\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
|
|
200
|
+
\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
|
|
201
|
+
\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
|
|
202
|
+
\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`,c=o(u=>ze.hex(u)(" \u258E "),"bar"),l=ze.hex(i.colors.dim)(" \xB7 ");if(console.log(ze.hex(i.colors.primary)(`
|
|
203
|
+
`+a)),console.log(""),console.log(c(i.colors.primary)+ze.hex(i.colors.primary)("AI Coding Agent \xB7 Minimalist & Intelligent")),console.log(c(i.colors.success)+ze.bold.hex(i.colors.text)(`v${_i}`)+l+ze.hex(i.colors.success)(`${e.provider}:${s}`)+l+ze.hex(i.colors.primary)(e.agentMode.toUpperCase())+ze.hex(i.colors.dim)(" / ")+ze.hex(i.colors.accent)(t)+(e.reasoningMode==="off"?"":ze.hex(i.colors.dim)(" \xB7 ")+ze.hex(i.colors.warning)(`reason:${e.reasoningMode}`))),n){let u=Math.round(n.contextWindow/1e3),f=Math.round(n.contextWindow*n.triggerPercent/100/1e3),p=n.enabled?ze.hex(i.colors.success)("on"):ze.hex(i.colors.secondary)("off");console.log(c(i.colors.accent)+ze.hex(i.colors.secondary)(`ctx ${u}k \xB7 compaction `)+p+ze.hex(i.colors.secondary)(` @ ${n.triggerPercent}% (${f}k)`))}r&&console.log(c(i.colors.secondary)+ze.hex(i.colors.secondary)(`${r.length} project rule file(s) loaded \u2014 `)+ze.hex(i.colors.dim)("/reload to refresh")),console.log(""),console.log(ze.hex(i.colors.dim)(" Quick tips:")),console.log(ze.hex(i.colors.primary)(" /help ")+ze.hex(i.colors.dim)("Show all commands")),console.log(ze.hex(i.colors.primary)(" /mode ")+ze.hex(i.colors.dim)("Switch permission mode")),console.log(ze.hex(i.colors.primary)(" /clear ")+ze.hex(i.colors.dim)("Clear conversation")),console.log(ze.hex(i.colors.primary)(" @path ")+ze.hex(i.colors.dim)("Attach image to context")),console.log(ze.hex(i.colors.primary)(" !cmd ")+ze.hex(i.colors.dim)("Run read-only shell command")),console.log(ze.hex(i.colors.dim)(`
|
|
204
|
+
Keyboard: Tab (complete) | Esc+Esc (edit last) | Ctrl+T (reasoning) | Ctrl+E (editor) | Ctrl+R (history)
|
|
205
|
+
`))}o(VI,"printStartupBanner");var lg=class{static{o(this,"MemorySessionStorage")}sessions=new Map;async save(t,n){let r=this.sessions.get(t),i=kn(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,tag:n.tag??r?.data.tag,lineage:i}})}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 i=this.sessions.get(t);if(!i?.data.lineage)return null;let s=vi(i.data.lineage,n,r);if(!s)return null;let a={...structuredClone(i.data),messages:At(s),lineage:s};return this.sessions.set(t,{...i,data:a}),structuredClone(a)}async setLabel(t,n,r){let i=this.sessions.get(t);if(!i?.data.lineage)return null;let s=Ri(i.data.lineage,n,r);if(!s)return null;let a={...structuredClone(i.data),lineage:s};return this.sessions.set(t,{...i,data:a}),structuredClone(a)}async fork(t,n,r){let i=this.sessions.get(t);if(!i?.data.lineage)return null;let s=Ai(i.data.lineage,n);if(!s)return null;let a=r?.sessionId??await ki(),c={messages:At(s),title:r?.title??i.data.title,gitRoot:i.data.gitRoot,tag:i.data.tag,runtimeInfo:i.data.runtimeInfo?structuredClone(i.data.runtimeInfo):void 0,scope:i.data.scope??"user",extensionState:i.data.extensionState?structuredClone(i.data.extensionState):void 0,extensionRecords:i.data.extensionRecords?structuredClone(i.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 i=n??Ei(r.data.lineage);if(!i)return null;let s=Mi(r.data.lineage,i);if(!s)return null;let a={...r.data,messages:At(s),lineage:s};return this.sessions.set(t,{...r,data:a}),structuredClone(a)}async list(t){return Array.from(this.sessions.entries()).filter(([,n])=>(n.data.scope??"user")==="user").map(([n,r])=>({id:n,title:r.data.title,msgCount:r.data.lineage?Io(r.data.lineage):r.data.messages.length,...r.data.tag!==void 0?{tag:r.data.tag}:{},...r.data.runtimeInfo?{runtimeInfo:structuredClone(r.data.runtimeInfo)}:{}}))}async delete(t){this.sessions.delete(t)}async deleteAll(t){this.sessions.clear()}};function cg(e,t,n){e.runtimeInfo=n,e.gitRoot=n?.workspaceRoot??e.gitRoot,t.context={...t.context,gitRoot:e.gitRoot,executionCwd:n?.executionCwd??process.cwd()}}o(cg,"applyRuntimeContext");function PO(e,t){return e.reasoningMode?e.reasoningMode:t.reasoningMode?t.reasoningMode:(e.thinking===!0||t.thinking===!0,"auto")}o(PO,"resolveInitialReasoningMode");var ug={current:null};async function $O(e){let t=await Oi({cwd:process.cwd()}),n=t.workspaceRoot??await vo()??void 0,r=e.storage??new lg,i=Pl({meta:{cwd:process.cwd(),startedAt:Date.now()}}),s=hp(),a=e.provider??s.provider??_l,c=e.model??s.model,l=PO(e,s),u=e.agentMode??s.agentMode??"ama",f=l!=="off",p=ga(s.permissionMode,"accept-edits")??"accept-edits",m=Wl();p==="auto-in-project"&&m();let h=Nl(),w=s.theme;w&&Tc(w);let S=Xo(),x={provider:a,model:c,thinking:f,reasoningMode:l,agentMode:u,permissionMode:p,repoIntelligenceMode:h.mode,repointelEndpoint:h.endpoint,repointelBin:h.bin,repoIntelligenceTrace:h.trace,fallbackProviders:s.fallbackProviders},T=p,M=Li(),v=0,P="",O=!1,_=500,C=await ic({sessionId:e.session?.id,gitRoot:n,runtimeInfo:t});i?.writer.update({sessionId:C.sessionId});let j=o(A=>jo(x,A,(H,D,pe)=>{console.log((H==="block"?he.red:he.yellow)(`
|
|
206
|
+
${D}`));for(let Le of pe)console.log(he.dim(Le));console.log()}),"guardSessionTransition"),ue=await wy(n??void 0),{resolveProvider:ge}=await import("./dist-D7HOETCE.js"),de=ge(x.provider),Y=ue.contextWindow??de.getEffectiveContextWindow?.(x.model)??de.getContextWindow?.()??2e5,{loadAgentsFiles:L}=await import("./dist-D7HOETCE.js"),I=o(async()=>L({cwd:process.cwd(),projectRoot:C.gitRoot??void 0}),"reloadAgentsFiles"),le=await I();VI(x,x.permissionMode,{contextWindow:Y,triggerPercent:ue.triggerPercent,enabled:ue.enabled},le),GI(t);let We=Ny(()=>C.gitRoot??process.cwd()),K=zI.createInterface({input:process.stdin,output:process.stdout,terminal:process.stdout.isTTY??!0,historySize:100,completer:o((A,H)=>{We(A).then(D=>{H(null,D)}).catch(()=>{H(null,[[],A])})},"completer")}),z=Vl(),fe=await ac({askUser:o(async(A,H,D)=>(await wc(K,A.name,{...A.input,...D&&D.length>0?{_classifierSignals:D}:{}},{permissionMode:T,reason:`[auto-mode] ${H}`})).confirmed?"allow":"block","askUser"),projectRoot:n??process.cwd(),getAgentsFiles:o(()=>le,"getAgentsFiles"),getCurrentProviderName:o(()=>x.provider,"getCurrentProviderName"),getCurrentModel:o(()=>x.model,"getCurrentModel"),getCurrentPermissionMode:o(()=>T,"getCurrentPermissionMode"),autoModeSettings:z,log:o((A,H)=>{A==="warn"?console.warn(he.yellow(H)):console.log(he.dim(H))},"log"),onEngineChange:o(A=>{tn(T)&&U?.update({autoModeEngine:A})},"onEngineChange"),extraCollectors:[Gl]}),J=Bl({getProvider:o(()=>ge(x.provider),"getProvider"),getModel:o(()=>x.model??"","getModel")}),ce=x.model??vn(x.provider)??x.provider,U=null;NI()&&(U=new sf(OI(C.sessionId,x.permissionMode,x.provider,ce,x.reasoningMode)),tn(T)&&U.update({autoModeEngine:fe.getGuardrail().getEngine()}));let Re=`
|
|
207
|
+
Keyboard Shortcuts:
|
|
208
|
+
Tab Auto-complete (@paths, /commands)
|
|
209
|
+
Esc+Esc Edit last message
|
|
210
|
+
Ctrl+T Cycle reasoning mode
|
|
211
|
+
Ctrl+E Open external editor
|
|
212
|
+
Ctrl+R Search command history (built-in)
|
|
213
|
+
Ctrl+C Cancel current input
|
|
214
|
+
Ctrl+D Exit REPL`,Pe=o(()=>{console.log(he.dim(Re))},"_printKeyboardShortcuts");process.stdin.isTTY&&process.stdin.on("keypress",(A,H)=>{if(H&&H.name==="escape"){let D=Date.now();D-v<_&&P&&(O=!0,console.log(he.dim(`
|
|
215
|
+
[Opening editor with last message...]`)),K.pause()),v=D}});let De=Ii(n).getSystemPromptSnippet(),Oe=!0,ie={...e,provider:a,model:c,agentMode:u,reasoningMode:l,thinking:f,context:{...e.context,gitRoot:n,executionCwd:t.executionCwd,repoIntelligenceMode:h.mode,repoIntelligenceTrace:h.trace,skillsPrompt:De},session:{...e.session,id:C.sessionId,persistedByHost:!0}};ug.current=null;let gt={exit:o(()=>{Oe=!1,i?.shutdown(),K.close()},"exit"),saveSession:o(async()=>{if(C.messages.length>0){let A=Ls(C.messages);C.title=A,await r.save(C.sessionId,{messages:C.messages,title:A,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,artifactLedger:C.artifactLedger,...ie.session?.tag!==void 0?{tag:ie.session.tag}:{}})}},"saveSession"),startNewSession:o(()=>{C.sessionId=sc(),C.title="",C.contextTokenSnapshot=void 0,C.artifactLedger=void 0,C.createdAt=new Date().toISOString(),C.lastAccessed=C.createdAt,cg(C,ie,t),ie.session={...ie.session,id:C.sessionId},U?.update({sessionId:C.sessionId,messageCount:0}),i?.writer.update({sessionId:C.sessionId})},"startNewSession"),loadSession:o(async A=>{let H=await r.load(A);if(H){if(!j("Resuming a saved session"))return"blocked";let D=await Oi({cwd:process.cwd()}),pe=ba(H),Le=pe??D;return pe?.workspaceRoot&&!Iy(pe)?(console.log(he.yellow(`
|
|
216
|
+
[Saved workspace unavailable]`)),console.log(he.dim(` Session workspace: ${Jn(pe)}`)),console.log(he.dim(` Falling back to current workspace: ${Jn(D)}`)),Le=D):pe?.workspaceRoot&&D.workspaceRoot&&pe.workspaceRoot!==D.workspaceRoot&&(console.log(he.cyan(`
|
|
217
|
+
[Loading sibling workspace session]`)),console.log(he.dim(` Current workspace: ${Jn(D)}`)),console.log(he.dim(` Session workspace: ${Jn(pe)}`))),C.messages=H.messages,C.title=H.title,C.sessionId=A,C.contextTokenSnapshot=void 0,C.artifactLedger=H.artifactLedger,C.lastAccessed=new Date().toISOString(),cg(C,ie,Le),ie.session={...ie.session,id:A,tag:H.tag},U?.update({sessionId:A,messageCount:H.messages.length}),i?.writer.update({sessionId:A}),console.log(he.green(`
|
|
218
|
+
[Loaded session: ${A}]`)),console.log(he.dim(` Messages: ${H.messages.length}`)),C.runtimeInfo?.workspaceRoot&&console.log(he.dim(` Workspace: ${Jn(C.runtimeInfo)}`)),"loaded"}return"missing"},"loadSession"),listSessions:o(async()=>{let A=await r.list(C.gitRoot??void 0);if(A.length===0){console.log(he.dim(`
|
|
219
|
+
[No saved sessions]`));return}console.log(he.bold(`
|
|
220
|
+
Recent Sessions:
|
|
221
|
+
`)),C.runtimeInfo?.workspaceRoot&&(console.log(he.dim(` Current workspace: ${Jn(C.runtimeInfo)}`)),console.log());for(let H of A.slice(0,10))if(console.log(` ${he.cyan(H.id)} ${he.dim(`(${H.msgCount} messages)`)} ${H.title.slice(0,40)}`),H.runtimeInfo?.workspaceRoot){let pe=C.runtimeInfo?.workspaceRoot===H.runtimeInfo.workspaceRoot?" (current workspace)":"";console.log(he.dim(` workspace: ${Jn(H.runtimeInfo)}${pe}`))}console.log()},"listSessions"),clearHistory:o(()=>{C.messages=[],C.contextTokenSnapshot=void 0},"clearHistory"),printHistory:o(()=>{if(C.messages.length===0){console.log(he.dim(`
|
|
222
|
+
[No conversation history]`));return}console.log(he.bold(`
|
|
223
|
+
Conversation History:
|
|
224
|
+
`));let A=C.messages.slice(-20);for(let H=0;H<A.length;H++){let D=A[H],pe=he.cyan(D.role.padEnd(10)),Le=typeof D.content=="string"?D.content:"[Complex content]",Ye=Le.slice(0,60).replace(/\n/g," "),Ee=Le.length>60?"...":"";console.log(` ${(H+1).toString().padStart(2)}. ${pe} ${Ye}${Ee}`)}console.log()},"printHistory"),switchProvider:o((A,H)=>{x.provider=A,x.model=H,ie.provider=A,ie.model=H;let D=H??vn(A);if(!D)try{D=Kx(A)?.getModel()??A}catch{D=A}U?.update({provider:A,model:D})},"switchProvider"),setThinking:o(A=>{x.thinking=A,ie.thinking=A,x.reasoningMode=A?"auto":"off",ie.reasoningMode=x.reasoningMode,U?.update({reasoningMode:x.reasoningMode})},"setThinking"),setReasoningMode:o(A=>{let H=A!=="off";x.reasoningMode=A,x.thinking=H,ie.reasoningMode=A,ie.thinking=H,U?.update({reasoningMode:A})},"setReasoningMode"),setAgentMode:o(A=>{x.agentMode=A,ie.agentMode=A},"setAgentMode"),setPermissionMode:o(A=>{x.permissionMode=A,T=A;let H=tn(A)?fe.getGuardrail().getEngine():void 0;U?.update({permissionMode:A,autoModeEngine:H}),A==="auto-in-project"&&m()},"setPermissionMode"),setRepoIntelligenceRuntime:o(A=>{A.mode!==void 0&&(x.repoIntelligenceMode=A.mode,process.env.KODAX_REPO_INTELLIGENCE_MODE=A.mode,ie.context={...ie.context,repoIntelligenceMode:A.mode}),A.trace!==void 0&&(x.repoIntelligenceTrace=A.trace,A.trace?process.env.KODAX_REPO_INTELLIGENCE_TRACE="1":delete process.env.KODAX_REPO_INTELLIGENCE_TRACE,ie.context={...ie.context,repoIntelligenceTrace:A.trace}),A.endpoint!==void 0&&(x.repointelEndpoint=A.endpoint??void 0,A.endpoint?process.env.KODAX_REPOINTEL_ENDPOINT=A.endpoint:delete process.env.KODAX_REPOINTEL_ENDPOINT),A.bin!==void 0&&(x.repointelBin=A.bin??void 0,A.bin?process.env.KODAX_REPOINTEL_BIN=A.bin:delete process.env.KODAX_REPOINTEL_BIN)},"setRepoIntelligenceRuntime"),deleteSession:o(async A=>{await r.delete?.(A)},"deleteSession"),deleteAllSessions:o(async()=>{await r.deleteAll?.(C.gitRoot??void 0)},"deleteAllSessions"),printSessionTree:o(async()=>{let A=await r.getLineage?.(C.sessionId);if(!A){console.log(he.dim(`
|
|
225
|
+
[No session tree available for this session]`));return}let H=Ld(Ol(A));console.log(he.bold(`
|
|
226
|
+
Session Tree:
|
|
227
|
+
`));for(let D of H)console.log(` ${D}`);console.log()},"printSessionTree"),switchSessionBranch:o(async A=>{if(!j("Switching session branches"))return"blocked";let H=await r.setActiveEntry?.(C.sessionId,A,{summarizeCurrentBranch:!0});return H?(C.messages=H.messages,C.title=H.title,C.contextTokenSnapshot=void 0,U?.update({messageCount:C.messages.length}),console.log(he.green(`
|
|
228
|
+
[Switched to tree entry: ${A}]`)),console.log(he.dim(` Messages: ${H.messages.length}`)),"switched"):"missing"},"switchSessionBranch"),labelSessionBranch:o(async(A,H)=>{if(!await r.setLabel?.(C.sessionId,A,H))return!1;let pe=H&&H.trim()?`checkpoint label set: ${H.trim()}`:"checkpoint label cleared";return console.log(he.green(`
|
|
229
|
+
[${pe}]`)),!0},"labelSessionBranch"),forkSession:o(async A=>{if(!j("Forking a session branch"))return"blocked";let H=await r.fork?.(C.sessionId,A);return H?(C.sessionId=H.sessionId,C.messages=H.data.messages,C.title=H.data.title,C.contextTokenSnapshot=void 0,C.createdAt=new Date().toISOString(),C.lastAccessed=C.createdAt,cg(C,ie,ba(H.data)??C.runtimeInfo),ie.session={...ie.session,id:H.sessionId},U?.update({sessionId:H.sessionId,messageCount:C.messages.length}),console.log(he.green(`
|
|
230
|
+
[Forked session: ${H.sessionId}]`)),console.log(he.dim(` Messages: ${H.data.messages.length}`)),"forked"):"failed"},"forkSession"),rewindSession:o(async A=>{if(!j("Rewinding session"))return"blocked";let H=await r.rewind?.(C.sessionId,A);return H?(C.messages=H.messages,C.title=H.title,C.contextTokenSnapshot=void 0,C.lastAccessed=new Date().toISOString(),U?.update({messageCount:C.messages.length}),console.log(he.green(`
|
|
231
|
+
[Rewound session${A?` to ${A}`:" to previous turn"}]`)),console.log(he.dim(` Messages: ${H.messages.length}`)),"rewound"):"failed"},"rewindSession"),getCostReport:o(()=>ug.current?.()??null,"getCostReport"),getAutoModeStats:o(()=>{if(tn(T))return fe.getGuardrail().getStats()},"getAutoModeStats"),setAutoModeEngine:o(A=>{tn(T)&&(fe.getGuardrail().setEngine(A),U?.update({permissionMode:T}))},"setAutoModeEngine"),createKodaXOptions:o(()=>{let A=o((D,pe)=>T!=="plan"?null:Ro(D,pe,n??process.cwd()),"planModeBlockCheck"),H=tn(T)?[fe.getGuardrail()]:void 0;return{...ie,provider:x.provider,model:x.model,thinking:x.thinking,reasoningMode:x.reasoningMode,guardrails:H,context:{...ie.context,planModeBlockCheck:A},events:{...ie.events,exitPlanMode:o(async D=>T!=="plan"?"not-in-plan-mode":(await wc(K,"exit_plan_mode",{plan:D},{isProtectedPath:!1,permissionMode:T})).confirmed?(x.permissionMode="accept-edits",T="accept-edits",U?.update({permissionMode:"accept-edits"}),!0):!1,"exitPlanMode"),beforeToolExecute:o(async(D,pe)=>{let Le=T,Ye=ha(Le);if(Le==="plan"){let Ee=Ro(D,pe,n??process.cwd());if(Ee)return console.log(he.yellow(Ee)),`${Ee} 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(D==="bash"){let Ee=pe.command??"";if(Gr(Ee))return!0}if(n&&ko.has(D)){let Ee=pe.path;if(Ee&&Sa(Ee,n))return(await wc(K,D,pe,{isProtectedPath:!0,permissionMode:Le})).confirmed?!0:(console.log(he.dim("[Cancelled] Operation on protected path requires confirmation")),!1)}if(Ye.has(D)){if(Le==="accept-edits"&&D==="bash"&&await ya(D,pe,M,J))return!0;let Ee=await wc(K,D,pe,{isOutsideProject:pe._outsideProject===!0,reason:pe._reason,permissionMode:Le});if(!Ee.confirmed)return console.log(he.dim("[Cancelled] Operation cancelled by user")),!1;Ee.always&&Le==="accept-edits"&&(Kl(D,pe,!1),M=Li())}return!0},"beforeToolExecute")}}},"createKodaXOptions"),reloadAgentsFiles:o(async()=>(le=await I(),le),"reloadAgentsFiles"),readline:K,ui:new af(K)};K.on("SIGINT",async()=>{console.log(he.dim(`
|
|
232
|
+
|
|
233
|
+
[Press /exit to quit]`)),K.prompt()});let Pt=o(()=>{U?.hide(),i?.shutdown(),K.close()},"cleanup");process.on("exit",Pt),process.on("SIGTERM",Pt);let ee=o(async(A,H)=>{let D=Hl({agentMode:x.agentMode,source:A.source,input:H||A.request});if(D.action==="none")return!1;if(D.action==="suggest"&&A.source==="natural-language"){let Ie=ky(gt);if(!Ie)return console.log(he.dim(`
|
|
234
|
+
[workflow] This task looks suitable for workflow. Use /workflow create <request> to run it.
|
|
235
|
+
`)),!1;let q=D.trigger==="explicit";if(!await Ie(q?"This request explicitly asks for workflow. Generate and run it? Choose No to cancel this turn.":"This task looks suitable for workflow. Use workflow? Choose No to continue with normal AMA."))return q?(console.log(he.dim(`
|
|
236
|
+
Workflow request cancelled. No normal AMA fallback was started.
|
|
237
|
+
`)),!0):!1}let pe=!1,Le=o(Ie=>{pe||(pe=!0,C.messages.push({role:"user",content:H||A.request})),C.messages.push({role:"assistant",content:Ie}),U?.update({messageCount:C.messages.length});let q=Ls(C.messages);C.title=q,r.save(C.sessionId,{messages:C.messages,title:q,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,artifactLedger:C.artifactLedger,...ie.session?.tag!==void 0?{tag:ie.session.tag}:{}}).catch(te=>{let Be=te instanceof Error?te.message:String(te);console.log(he.red(`
|
|
238
|
+
[workflow] failed to save final answer: ${Be}
|
|
239
|
+
`))})},"commitWorkflowFinal"),Ye={...gt,onWorkflowRunMessage:o(Ie=>{if(Ie.type==="event")return;let q=Ie.text.trimEnd();if(q.trim()){if(Ie.type==="error"){console.log(he.red(`
|
|
240
|
+
${q}
|
|
241
|
+
`));return}if(Ie.type==="success"){console.log(he.green(`
|
|
242
|
+
${q}
|
|
243
|
+
`));return}if(Ie.type==="assistant"){console.log(`
|
|
244
|
+
${q}
|
|
245
|
+
`),Ie.final===!0&&Le(q);return}console.log(he.dim(`
|
|
246
|
+
${q}
|
|
247
|
+
`))}},"onWorkflowRunMessage")},Ee=await Xl({request:A.request,callbacks:Ye,approval:x.permissionMode==="plan"?"required":"silent",presentation:"agentic",sourceLabel:A.displayName});return Ee==="started"||Ee==="cancelled"},"startWorkflowInvocation"),xe=o(async(A,H)=>{if(!A||typeof A!="object")return;if(A.workflow){await ee(A.workflow,H);return}if(!A.invocation)return;let D=await Dd({...ie,provider:x.provider,thinking:x.thinking,reasoningMode:x.reasoningMode},A.invocation,H,pe=>console.log(he.dim(`
|
|
248
|
+
${pe}`)));if(D.mode==="manual"){D.manualOutput&&console.log(he.yellow(`
|
|
249
|
+
${D.manualOutput}
|
|
250
|
+
`)),await D.finalize();return}if(!D.prompt||!D.options){await D.finalize();return}try{let pe=D.mode==="fork"?[]:C.messages,Le=await KI(D.options,C,D.prompt,pe);if(D.mode==="fork"){let Ye=Ty(Le.messages);Ye.trim()&&(console.log(`
|
|
251
|
+
${Ye}
|
|
252
|
+
`),C.messages.push({role:"assistant",content:Ye}))}else C.messages=Le.messages,C.contextTokenSnapshot=Le.contextTokenSnapshot;if(U?.update({messageCount:C.messages.length}),C.messages.length>0){let Ye=Ls(C.messages);C.title=Ye,await r.save(C.sessionId,{messages:C.messages,title:Ye,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,...ie.session?.tag!==void 0?{tag:ie.session.tag}:{}})}await D.finalize()}catch(pe){throw await D.finalize(pe instanceof Error?pe:new Error(String(pe))),pe}},"handleCommandResult");for(;Oe;){if(O&&P){O=!1,K.resume();let Ee=await ag(P);if(Ee&&Ee.trim()&&Ee!==P){console.log(he.dim(`
|
|
253
|
+
[Edited message ready to send]`));let Ie=Ee.trim();ar(C);let q=Di(Ie);if(q){let Ue=await Bi(q,C,gt,x);await xe(Ue,Ie);continue}let te=await dg(Ie);if(Ie.startsWith("!")&&cc(te))continue;if(await ee({request:te,source:"natural-language",displayName:x.agentMode.toUpperCase()},Ie)){P=Ie;continue}let Be=uc(te,ie.context?.executionCwd??process.cwd());for(let Ue of Be.warnings)console.log(he.yellow(`
|
|
254
|
+
${Ue}`));C.messages.push({role:"user",content:Be.messageContent}),P=Ie,U?.update({messageCount:C.messages.length});let W=C.lineage?ay({getLineage:o(()=>C.lineage,"getLineage"),setLineage:o(Ue=>{C.lineage=Ue},"setLineage"),saveSession:o(async()=>{await r.save(C.sessionId,{messages:C.messages,title:C.title??Ls(C.messages),gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,artifactLedger:C.artifactLedger,lineage:C.lineage,...ie.session?.tag!==void 0?{tag:ie.session.tag}:{}})},"saveSession"),getLatestUsage:o(()=>{},"getLatestUsage"),getTurnStartMs:o(()=>{},"getTurnStartMs"),getPermissionMode:o(()=>T,"getPermissionMode"),hasPendingUserInput:o(()=>In().has({agentId:void 0,maxPriority:"user",mode:"prompt"}),"hasPendingUserInput"),verifyComplete:o(async()=>({ok:!0}),"verifyComplete")}):void 0;try{let Ue=await pa({...ie,provider:x.provider,thinking:x.thinking,reasoningMode:x.reasoningMode,session:{...ie.session,initialMessages:C.lineage?At(C.lineage,C.lineage.activeEntryId):C.messages},context:{...ie.context,taskSurface:"repl",planModeBlockCheck:o((vt,Lr)=>T!=="plan"?null:Ro(vt,Lr,n??process.cwd()),"planModeBlockCheck"),...Be.inputArtifacts.length>0?{inputArtifacts:Be.inputArtifacts}:{},...W?{goalRuntime:W}:{}}},te);if(C.messages=Ue.messages,C.contextTokenSnapshot=Ue.contextTokenSnapshot,C.artifactLedger=fa(C.artifactLedger??[],Ue.artifactLedger??dp(Ue.messages)),C.messages.length>0){let vt=Ls(C.messages);C.title=vt,await r.save(C.sessionId,{messages:C.messages,title:vt,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,artifactLedger:C.artifactLedger,...ie.session?.tag!==void 0?{tag:ie.session.tag}:{}})}}catch(Ue){let vt=Ue instanceof Error?Ue:new Error(String(Ue));C.messages.pop(),console.log(he.red(`
|
|
255
|
+
[Error] ${vt.message}`))}continue}else Ee===P&&console.log(he.dim(`
|
|
256
|
+
[No changes made, continuing...]`))}let A=UI(x.permissionMode,x),H=await jI(K,A);if(!Oe)break;let D=H.trim();if(!D)continue;ar(C);let pe=Di(D);if(pe){let Ee=await Bi(pe,C,gt,x);await xe(Ee,D);continue}let Le=await dg(D);if(D.startsWith("!")&&cc(Le))continue;if(await ee({request:Le,source:"natural-language",displayName:x.agentMode.toUpperCase()},D)){P=D;continue}let Ye=uc(Le,ie.context?.executionCwd??process.cwd());for(let Ee of Ye.warnings)console.log(he.yellow(`
|
|
257
|
+
${Ee}`));C.messages.push({role:"user",content:Ye.messageContent}),P=D,U?.update({messageCount:C.messages.length});try{let Ee=await KI(ie,C,Le,C.messages,Ye.inputArtifacts);if(C.messages=Ee.messages,C.contextTokenSnapshot=Ee.contextTokenSnapshot,C.artifactLedger=fa(C.artifactLedger??[],Ee.artifactLedger??dp(Ee.messages)),U?.update({messageCount:C.messages.length}),C.messages.length>0){let Ie=Ls(C.messages);C.title=Ie,await r.save(C.sessionId,{messages:C.messages,title:Ie,gitRoot:C.gitRoot??"",runtimeInfo:C.runtimeInfo,artifactLedger:C.artifactLedger,...ie.session?.tag!==void 0?{tag:ie.session.tag}:{}})}}catch(Ee){let Ie=Ee instanceof Error?Ee:new Error(String(Ee));C.messages.pop(),Ie.message.includes("rate limit")||Ie.message.includes("Rate limit")?(console.log(he.yellow(`
|
|
258
|
+
[Rate Limit] ${Ie.message}`)),console.log(he.dim(`Suggestion: Wait a moment and try again, or switch provider with /mode
|
|
259
|
+
`))):Ie.message.includes("API key")||Ie.message.includes("not configured")?(console.log(he.red(`
|
|
260
|
+
[Configuration Error] ${Ie.message}`)),console.log(he.dim(`Suggestion: Set the required API key environment variable
|
|
261
|
+
`))):Ie.message.includes("network")||Ie.message.includes("ECONNREFUSED")||Ie.message.includes("ETIMEDOUT")?(console.log(he.red(`
|
|
262
|
+
[Network Error] ${Ie.message}`)),console.log(he.dim(`Suggestion: Check your internet connection and try again
|
|
263
|
+
`))):Ie.message.includes("token")||Ie.message.includes("context too long")?(console.log(he.yellow(`
|
|
264
|
+
[Context Error] ${Ie.message}`)),console.log(he.dim(`Suggestion: Use /clear to start a fresh conversation
|
|
265
|
+
`))):(console.log(he.red(`
|
|
266
|
+
[Error] ${Ie.message}`)),console.log(he.dim(`Your message was not sent. Please try again.
|
|
267
|
+
`)))}}}o($O,"runInteractiveMode");async function dg(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 Rd(n,{cwd:process.cwd()})}return e}o(dg,"processSpecialSyntax");async function KI(e,t,n,r=t.messages,i){let s={...e.events??{},getCostReport:ug};return pa({...e,events:s,session:{...e.session,initialMessages:r},context:{...e.context,contextTokenSnapshot:t.contextTokenSnapshot,taskSurface:"repl",...i&&i.length>0?{inputArtifacts:[...i]}:{}}},n)}o(KI,"runAgentRound");function Ls(e){return $i(e)}o(Ls,"extractTitle");import cf from"node:fs";import OO from"node:path";function NO(){let e=uf();return df(e).map(n=>lf(n))}o(NO,"listCustomProviders");function DO(e){if(typeof e!="string"||e.length===0)return;let t=df(uf()).find(n=>n.name===e);return t?lf(t):void 0}o(DO,"getCustomProviderConfig");function BO(e){Vx(e);let t=lf(e),n=uf(),r=df(n),i=r.findIndex(a=>a.name===t.name),s=i>=0?r.map((a,c)=>c===i?t:a):[...r,t];return YI({...n,customProviders:s}),cp(s),lf(t)}o(BO,"upsertCustomProvider");function HO(e){if(typeof e!="string"||e.length===0)return!1;let t=uf(),n=df(t),r=n.filter(i=>i.name!==e);return r.length===n.length?!1:(YI({...t,customProviders:r}),cp(r),!0)}o(HO,"removeCustomProvider");function XI(){return bi("config.json")}o(XI,"configFilePath");function uf(){let e=XI();if(!cf.existsSync(e))return{};try{let t=JSON.parse(cf.readFileSync(e,"utf-8"));return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}o(uf,"readWholeConfig");function YI(e){let t=XI();cf.mkdirSync(OO.dirname(t),{recursive:!0}),cf.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}o(YI,"writeWholeConfig");function df(e){let t=e.customProviders;return Array.isArray(t)?t:[]}o(df,"extractCustomProviders");function lf(e){return structuredClone(e)}o(lf,"cloneCustomProvider");import ff from"node:fs";import WO from"node:path";function FO(){let e=pf();return VO(mf(e))}o(FO,"listMcpServers");function UO(e){if(typeof e!="string"||e.length===0)return;let n=mf(pf())[e];return n?fg(n):void 0}o(UO,"getMcpServerConfig");function jO(e,t){if(typeof e!="string"||e.length===0)throw new TypeError("upsertMcpServer: name must be a non-empty string");qI(e,t);let n=fg(t),r=pf(),s={...mf(r),[e]:n};return JI({...r,mcpServers:s}),fg(n)}o(jO,"upsertMcpServer");function GO(e){if(typeof e!="string"||e.length===0)return!1;let t=pf(),n=mf(t);if(!(e in n))return!1;let r={};for(let i of Object.keys(n))i!==e&&(r[i]=n[i]);return JI({...t,mcpServers:r}),!0}o(GO,"removeMcpServer");function qI(e,t){if(typeof e!="string"||e.length===0)throw new TypeError("MCP server name must be a non-empty string");if(!t||typeof t!="object"||Array.isArray(t))throw new TypeError(`MCP server "${e}": config must be a plain object`);let n=t.type??"stdio";if(!["stdio","sse","streamable-http","http"].includes(n))throw new TypeError(`MCP server "${e}": unknown transport type "${n}" (expected stdio | sse | streamable-http | http)`);if(n==="stdio"){if(typeof t.command!="string"||t.command.length===0)throw new TypeError(`MCP server "${e}": stdio transport requires a non-empty "command"`)}else if(typeof t.url!="string"||t.url.length===0)throw new TypeError(`MCP server "${e}": "${n}" transport requires a non-empty "url"`);if(t.connect!==void 0&&!["lazy","prewarm","disabled"].includes(t.connect))throw new TypeError(`MCP server "${e}": unknown connect mode "${t.connect}" (expected lazy | prewarm | disabled)`)}o(qI,"validateMcpServerConfig");function QI(){return bi("config.json")}o(QI,"configFilePath");function pf(){let e=QI();if(!ff.existsSync(e))return{};try{let t=JSON.parse(ff.readFileSync(e,"utf-8"));return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}o(pf,"readWholeConfig");function JI(e){let t=QI();ff.mkdirSync(WO.dirname(t),{recursive:!0}),ff.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}o(JI,"writeWholeConfig");function mf(e){let t=e.mcpServers;return!t||typeof t!="object"||Array.isArray(t)?{}:t}o(mf,"extractMcpServers");function fg(e){return structuredClone(e)}o(fg,"cloneMcpServerConfig");function VO(e){return structuredClone(e)}o(VO,"cloneMcpServers");import Ze from"fs/promises";import Vn from"fs";import Fe from"path";import dk from"chalk";import ht from"fs/promises";import ek from"fs";import Wt from"path";var KO=2,zO=300*1e3,ZI=65536,pg=o(e=>Wt.join(e,".layout.json"),"layoutMarkerPath"),hg=o(e=>Wt.join(e,".migration-lock"),"lockDirPath"),tk=o(e=>Wt.join(hg(e),"owner.json"),"ownerPath"),mg=o(e=>Wt.join(e,".migration-journal.jsonl"),"journalPath"),nk=o(e=>Wt.join(Wt.dirname(e),"sessions-archive"),"sessionsArchiveDir");function rk(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")}o(rk,"isSessionFile");function ok(e){return e.endsWith(".archive.jsonl")||e.endsWith(".islands.jsonl")?e.slice(0,-14):null}o(ok,"sidecarId");async function XO(e){let t;try{t=await ht.open(e,"r");let n=Buffer.allocUnsafe(ZI),{bytesRead:r}=await t.read(n,0,ZI,0);if(r===0)return null;let i=n.toString("utf8",0,r),s=i.indexOf(`
|
|
268
|
+
`),a=(s>=0?i.slice(0,s):i).trim();if(!a)return null;let c=JSON.parse(a);if(c&&typeof c=="object"&&c._type==="meta"){let l=c;return{gitRoot:typeof l.gitRoot=="string"?l.gitRoot:void 0,runtimeInfo:l.runtimeInfo}}return null}catch{return null}finally{await t?.close()}}o(XO,"readMeta");async function YO(e){let t=await XO(e);return t?Ni({gitRoot:t.gitRoot,runtimeInfo:t.runtimeInfo}).key:xp}o(YO,"destKeyFor");async function ik(e){let t=[],n=o(async(r,i)=>{let s=[];try{s=await ht.readdir(r,{withFileTypes:!0})}catch{return}for(let a of s)!a.isFile()||a.name.startsWith(".")||(rk(a.name)||i&&ok(a.name)!==null)&&t.push(Wt.join(r,a.name))},"pushDir");return await n(e,!0),await n(nk(e),!0),t}o(ik,"collectFlatSources");async function qO(e){let t=await ik(e),n=t.filter(s=>rk(Wt.basename(s))),r=new Set(n.map(s=>Wt.basename(s,".jsonl"))),i=[];for(let s of n){let a=Wt.basename(s,".jsonl"),c=await YO(s);i.push({from:s,to:Wt.join(e,c,`${a}.jsonl`),reason:`session\u2192${c}`});for(let l of[".archive.jsonl",".islands.jsonl"]){let u=Wt.join(Wt.dirname(s),`${a}${l}`);ek.existsSync(u)&&i.push({from:u,to:Wt.join(e,c,`${a}.islands.jsonl`),reason:"sidecar\u2192islands"})}}for(let s of t){let a=ok(Wt.basename(s));a===null||r.has(a)||i.push({from:s,to:Wt.join(e,xp,"orphan-islands",`${a}.islands.jsonl`),reason:"orphan-sidecar\u2192_unknown"})}return i}o(qO,"planMigration");async function sk(e){try{return await ht.access(pg(e)),!0}catch{return!1}}o(sk,"isMigrated");async function QO(e){return await sk(e)?!1:(await ik(e)).length>0}o(QO,"needsMigration");async function JO(e){try{let t=JSON.parse(await ht.readFile(tk(e),"utf8"));if(typeof t.pid=="number"&&t.pid!==process.pid)try{process.kill(t.pid,0)}catch(n){if(n.code==="ESRCH")return!0}return typeof t.heartbeatAt=="number"&&Date.now()-t.heartbeatAt>zO}catch{return!0}}o(JO,"lockIsStale");async function ZO(e){let t=hg(e);for(let n=0;n<2;n+=1)try{return await ht.mkdir(t),await ht.writeFile(tk(e),JSON.stringify({pid:process.pid,startTime:Date.now(),heartbeatAt:Date.now()})),!0}catch(r){if(r.code!=="EEXIST")return!1;if(n===0&&await JO(e)){await ht.rm(t,{recursive:!0,force:!0}).catch(()=>{});continue}return!1}return!1}o(ZO,"acquireLock");async function eN(e){await ht.rm(hg(e),{recursive:!0,force:!0}).catch(()=>{})}o(eN,"releaseLock");async function tN(e){let t=new Set;try{let n=await ht.readFile(mg(e),"utf8");for(let r of n.split(`
|
|
269
|
+
`))if(r.trim())try{let i=JSON.parse(r);i.done&&typeof i.from=="string"&&t.add(i.from)}catch{}}catch{}return t}o(tN,"readJournalDone");async function nN(e){if(await ht.mkdir(Wt.dirname(e.to),{recursive:!0}),ek.existsSync(e.to)){await ht.unlink(e.from).catch(()=>{});return}try{await ht.rename(e.from,e.to)}catch(t){let n=t.code;if(n==="EXDEV")await ht.copyFile(e.from,e.to),await ht.unlink(e.from).catch(()=>{});else if(n!=="ENOENT")throw t}}o(nN,"executeMove");async function ak(e){await ht.mkdir(e,{recursive:!0});let t=`${pg(e)}.${process.pid}.tmp`,n=JSON.stringify({version:KO,migratedAt:new Date().toISOString(),from:"flat-v1"});await ht.writeFile(t,n+`
|
|
270
|
+
`,"utf8"),await ht.rename(t,pg(e))}o(ak,"writeMarker");async function rN(e){let t=nk(e);try{(await ht.readdir(t)).length===0&&await ht.rmdir(t).catch(()=>{})}catch{}}o(rN,"retireSessionsArchive");async function oN(e){if(!await ZO(e))return{moved:0,planned:0};try{let t=await qO(e),n=await tN(e),r=await ht.open(mg(e),"a"),i=0;try{for(let s of t)n.has(s.from)||(await nN(s),await r.write(JSON.stringify({from:s.from,to:s.to,done:!0})+`
|
|
271
|
+
`),i+=1)}finally{await r.close()}return await rN(e),await ak(e),await ht.rm(mg(e),{force:!0}).catch(()=>{}),{moved:i,planned:t.length}}finally{await eN(e)}}o(oN,"runMigration");async function Ic(e){try{if(await sk(e))return;if(!await QO(e)){await ak(e).catch(()=>{});return}await oN(e)}catch{}}o(Ic,"ensureLayoutMigrated");var iN=new Set(["user","assistant","system"]);function kt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}o(kt,"isRecord");function Yo(e){if(e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return!0;if(Array.isArray(e))return e.every(Yo);if(!kt(e))return!1;let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null?!1:Object.values(e).every(Yo)}o(Yo,"isKodaXJsonValue");function ck(e){return kt(e)&&typeof e.id=="string"&&typeof e.extensionId=="string"&&typeof e.type=="string"&&typeof e.ts=="number"&&(e.data===void 0||Yo(e.data))&&(e.dedupeKey===void 0||typeof e.dedupeKey=="string")}o(ck,"isKodaXExtensionSessionRecord");function lk(e){return kt(e)?Object.values(e).every(t=>kt(t)?Object.values(t).every(Yo):!1):!1}o(lk,"isKodaXExtensionSessionState");function sN(e){if(!kt(e)||typeof e.type!="string")return!1;switch(e.type){case"text":return typeof e.text=="string";case"tool_use":return typeof e.id=="string"&&typeof e.name=="string"&&kt(e.input);case"tool_result":return typeof e.tool_use_id=="string"&&typeof e.content=="string"&&(e.is_error===void 0||typeof e.is_error=="boolean");case"image":return typeof e.path=="string"&&(e.mediaType===void 0||typeof e.mediaType=="string");case"thinking":return typeof e.thinking=="string"&&(e.signature===void 0||typeof e.signature=="string");case"redacted_thinking":return typeof e.data=="string";default:return!1}}o(sN,"isKodaXContentBlock");function gg(e){return!kt(e)||typeof e.role!="string"||!iN.has(e.role)?!1:typeof e.content=="string"||Array.isArray(e.content)&&e.content.every(sN)}o(gg,"isKodaXMessage");function uk(e){return kt(e)?(e.lastError===void 0||typeof e.lastError=="string")&&(e.lastErrorTime===void 0||typeof e.lastErrorTime=="number")&&(e.consecutiveErrors===void 0||typeof e.consecutiveErrors=="number"):!1}o(uk,"isSessionErrorMetadata");function aN(e){return kt(e)&&typeof e.type=="string"&&(e.type==="user"||e.type==="assistant"||e.type==="system"||e.type==="thinking"||e.type==="error"||e.type==="info"||e.type==="hint")&&typeof e.text=="string"}o(aN,"isKodaXSessionUiHistoryItem");function xg(e){return Array.isArray(e)&&e.every(aN)}o(xg,"isKodaXSessionUiHistory");function cN(e){return!kt(e)||e._type!=="meta_update"?!1:(e.title===void 0||typeof e.title=="string")&&(e.tag===void 0||typeof e.tag=="string")&&(e.activeEntryId===void 0||typeof e.activeEntryId=="string"||e.activeEntryId===null)&&(e.activeMessageCount===void 0||typeof e.activeMessageCount=="number")&&(e.uiHistory===void 0||xg(e.uiHistory))&&(e.scope===void 0||typeof e.scope=="string")}o(cN,"isPersistedMetaUpdateLine");function fk(e,t){t!==0&&process.stderr.write(`[KodaX] Skipped ${t} malformed session record(s) from ${Fe.basename(e)}.
|
|
272
|
+
`)}o(fk,"warnMalformedSessionData");function _r(e){process.stderr.write(`${e}
|
|
273
|
+
`)}o(_r,"writeStorageNotice");function pk(e){return{_type:"extension_record",...e}}o(pk,"toExtensionRecordLine");function mk(e){return{_type:"lineage_entry",entry:e}}o(mk,"toLineageEntryLine");function hk(e){return{_type:"artifact_ledger_entry",entry:e}}o(hk,"toArtifactLedgerLine");function lN(e){return kt(e)&&e._type==="extension_record"&&ck(e)}o(lN,"isPersistedExtensionRecordLine");function uN(e){return kt(e)&&typeof e.id=="string"&&(e.parentId===null||typeof e.parentId=="string")&&typeof e.timestamp=="string"&&typeof e.type=="string"}o(uN,"hasEntryBase");function dN(e){if(!uN(e))return!1;let t=e;switch(t.type){case"message":return gg(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||Yo(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}}o(dN,"isKodaXSessionEntry");function fN(e){return kt(e)&&e._type==="lineage_entry"&&dN(e.entry)}o(fN,"isPersistedLineageEntryLine");function pN(e){return kt(e)&&typeof e.id=="string"&&typeof e.kind=="string"&&typeof e.target=="string"&&typeof e.timestamp=="string"&&(e.sourceTool===void 0||typeof e.sourceTool=="string")&&(e.action===void 0||typeof e.action=="string")&&(e.displayTarget===void 0||typeof e.displayTarget=="string")&&(e.summary===void 0||typeof e.summary=="string")&&(e.sessionEntryId===void 0||typeof e.sessionEntryId=="string")&&(e.metadata===void 0||Yo(e.metadata))}o(pN,"isKodaXSessionArtifactLedgerEntry");function mN(e){return kt(e)&&e._type==="artifact_ledger_entry"&&pN(e.entry)}o(mN,"isPersistedArtifactLedgerLine");function wk(e){return kt(e)&&(e.canonicalRepoRoot===void 0||typeof e.canonicalRepoRoot=="string")&&(e.workspaceRoot===void 0||typeof e.workspaceRoot=="string")&&(e.executionCwd===void 0||typeof e.executionCwd=="string")&&(e.branch===void 0||typeof e.branch=="string")&&(e.workspaceKind===void 0||e.workspaceKind==="detected"||e.workspaceKind==="managed")}o(wk,"isKodaXSessionRuntimeInfo");function gk(e,t){return process.platform==="win32"||process.platform==="darwin"?e.toLowerCase()===t.toLowerCase():e===t}o(gk,"pathsEqual");function hN(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}o(hN,"getLastNavigableEntryId");function gN(e){if(e.lineageEntries.length>0)return{version:2,activeEntryId:e.meta?.activeEntryId??hN(e.lineageEntries),entries:e.lineageEntries};if(e.legacyMessages.length!==0)return kn(e.legacyMessages)}o(gN,"buildLineage");function xk(e){return typeof e=="string"?`t:${e}`:`j:${JSON.stringify(e)}`}o(xk,"serializeMessageContentForCompare");function xN(e,t){return e===t?!0:e.role===t.role&&xk(e.content)===xk(t.content)}o(xN,"sameMessageByContent");function yN(e,t){if(e.lineage)return e.lineage;if(t){let n=At(t),r=e.messages;if(r.length<=n.length&&r.every((s,a)=>xN(s,n[a])))return t}return kn(e.messages,t)}o(yN,"resolveSnapshotLineage");function SN(e){let t=gN(e);return{createdAt:e.meta?.createdAt,data:{messages:t?At(t):[...e.legacyMessages],title:e.meta?.title??"",gitRoot:e.meta?.gitRoot??"",tag:typeof e.meta?.tag=="string"?e.meta.tag:void 0,runtimeInfo:wk(e.meta?.runtimeInfo)?{...e.meta.runtimeInfo}:void 0,scope:e.meta?.scope??"user",uiHistory:xg(e.meta?.uiHistory)?e.meta.uiHistory.map(n=>({...n})):void 0,errorMetadata:uk(e.meta?.errorMetadata)?{...e.meta.errorMetadata}:void 0,extensionState:lk(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}))}}}o(SN,"buildSessionData");function wN(e,t,n,r){return{_type:"meta",title:t.title,id:e,gitRoot:t.gitRoot,tag:t.tag,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?Io(n):t.messages.length}}o(wN,"createSessionMeta");async function TN(e){let t;try{t=await Ze.readFile(e,"utf-8")}catch(s){if(s?.code==="ENOENT")return null;throw s}let n=t.trim();if(!n)return null;let r={legacyMessages:[],lineageEntries:[],artifactLedger:[],extensionRecords:[],malformedCount:0},i=n.split(`
|
|
274
|
+
`);for(let s=0;s<i.length;s+=1)try{let a=JSON.parse(i[s]);if(s===0&&kt(a)&&a._type==="meta"){r.meta=a;continue}if(cN(a)){r.meta&&(a.title!==void 0&&(r.meta.title=a.title),a.tag!==void 0&&(r.meta.tag=a.tag),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(fN(a)){r.lineageEntries.push(a.entry);continue}if(mN(a)){r.artifactLedger.push(a.entry);continue}if(lN(a)){r.extensionRecords.push({id:a.id,extensionId:a.extensionId,type:a.type,ts:a.ts,data:a.data,dedupeKey:a.dedupeKey});continue}if(gg(a)){r.legacyMessages.push(a);continue}r.malformedCount+=1}catch{r.malformedCount+=1}return r}o(TN,"readPersistedSessionFile");var yk=65536;async function CN(e){let t;try{t=await Ze.open(e,"r");let n=Buffer.allocUnsafe(yk),{bytesRead:r}=await t.read(n,0,yk,0);if(r===0)return null;let i=n.toString("utf8",0,r),s=i.indexOf(`
|
|
275
|
+
`);if(s>=0)return i.slice(0,s).trim();let a=await Ze.readFile(e,"utf-8"),c=a.indexOf(`
|
|
276
|
+
`);return(c>=0?a.slice(0,c):a).trim()}catch{return null}finally{await t?.close()}}o(CN,"readSessionFirstLine");async function Sk(e){try{let t=(await Ze.readFile(e,"utf-8")).trim();return t?t.split(`
|
|
277
|
+
`).length:0}catch{return 0}}o(Sk,"countSessionLines");var co=class{static{o(this,"FileSessionStorage")}sessionsDir;hostCwd;emitMismatchWarnings;constructor(t){this.sessionsDir=t?.sessionsDir??xa,this.hostCwd=t?.cwd,this.emitMismatchWarnings=t?.emitMismatchWarnings??!1}writeQueues=new Map;serializedWrite(t,n){let i=(this.writeQueues.get(t)??Promise.resolve()).then(n,()=>n());return this.writeQueues.set(t,i),i}appendState=new Map;sessionDirCache=new Map;projectJsonWritten=new Set;migrationPromise;ensureMigrated(){return this.migrationPromise||(this.migrationPromise=Ic(this.sessionsDir)),this.migrationPromise}syncAppendState(t,n,r){let i=this.appendState.get(t);this.appendState.set(t,{lineageCount:n.lineage?.entries.length??i?.lineageCount??0,artifactCount:n.artifactLedger?.length??i?.artifactCount??0,extensionCount:n.extensionRecords?.length??i?.extensionCount??0,metaUpdateCount:r??i?.metaUpdateCount??0,tag:n.tag!==void 0?n.tag:i?.tag})}legacyFlatPath(t){return Fe.join(this.sessionsDir,`${t}.jsonl`)}legacyFlatArchivePath(t){return Fe.join(this.sessionsDir,`${t}.archive.jsonl`)}projectDir(t){return Fe.join(this.sessionsDir,t)}resolveWriteDir(t,n){let r=this.sessionDirCache.get(t);if(r)return r;let i=Ni(n),s=this.projectDir(i.key);return this.sessionDirCache.set(t,s),s}writeFilePath(t,n){return Fe.join(this.resolveWriteDir(t,n),`${t}.jsonl`)}async resolveSessionLocation(t){let n=this.sessionDirCache.get(t);if(n){let s=Fe.join(n,`${t}.jsonl`);if(Vn.existsSync(s))return s;let a=Fe.join(n,"archived",`${t}.jsonl`);if(Vn.existsSync(a))return a}let r=[],i=[];try{i=await Ze.readdir(this.sessionsDir,{withFileTypes:!0})}catch{i=[]}for(let s of i){if(!s.isDirectory()||s.name.startsWith("."))continue;let a=Fe.join(this.sessionsDir,s.name,`${t}.jsonl`);Vn.existsSync(a)&&r.push(a);let c=Fe.join(this.sessionsDir,s.name,"archived",`${t}.jsonl`);Vn.existsSync(c)&&r.push(c)}if(r.length===0){let s=this.legacyFlatPath(t);return Vn.existsSync(s)?s:null}if(r.length===1){let s=Fe.dirname(r[0]),a=Fe.basename(s)==="archived"?Fe.dirname(s):s;return this.sessionDirCache.set(t,a),r[0]}if(this.hostCwd){let s=this.projectDir(Ia(this.hostCwd).key),a=r.find(c=>Fe.dirname(c)===s);if(a)return a}return _r(`[KodaX] Ambiguous session id ${t} found in ${r.length} projects; ${this.hostCwd?"no current-project match \u2014 ":""}returning the first match. Specify projectKey to disambiguate.`),r[0]}async readSession(t){await this.ensureMigrated();let n=await this.resolveSessionLocation(t);if(!n)return null;let r=await TN(n);return r?(fk(n,r.malformedCount),SN(r)):null}async ensureProjectJson(t,n){if(n.canonicalRoot===null||this.projectJsonWritten.has(t))return;this.projectJsonWritten.add(t);let r=Fe.join(t,"project.json");try{let i=JSON.stringify({canonicalRoot:n.canonicalRoot,displayName:n.displayName,lastUsed:new Date().toISOString()});await Ze.writeFile(r,i+`
|
|
278
|
+
`,"utf-8")}catch{}}async writeSessionInternal(t,n,r){let i=this.resolveWriteDir(t,n);await Ze.mkdir(i,{recursive:!0});let s=Fe.join(i,`${t}.jsonl`),a=`${s}.${process.pid}.${Date.now()}.tmp`,c=n.lineage??kn(n.messages),l=wN(t,n,c,r);try{let u=await Ze.open(a,"w");try{await u.write(JSON.stringify(l)+`
|
|
279
|
+
`);for(let p of c.entries)await u.write(JSON.stringify(mk(p))+`
|
|
280
|
+
`);for(let p of n.artifactLedger??[])await u.write(JSON.stringify(hk(p))+`
|
|
281
|
+
`);for(let p of n.extensionRecords??[])await u.write(JSON.stringify(pk(p))+`
|
|
282
|
+
`)}finally{await u.close()}await Ze.rename(a,s),await this.ensureProjectJson(i,Ni(n));let f=this.legacyFlatPath(t);if(f!==s&&Vn.existsSync(f)){await Ze.unlink(f).catch(()=>{});let p=this.legacyFlatArchivePath(t);Vn.existsSync(p)&&await Ze.rename(p,Fe.join(i,`${t}.islands.jsonl`)).catch(()=>{})}}finally{Vn.existsSync(a)&&await Ze.unlink(a).catch(()=>{})}}async mergeAndWriteInternal(t,n){let r=await this.readSession(t),i={...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,tag:n.tag??r?.data.tag,lineage:yN(n,r?.data.lineage)};await this.writeSessionInternal(t,i,r?.createdAt),this.syncAppendState(t,i)}async appendSessionDelta(t,n){await this.ensureMigrated();let r=this.writeFilePath(t,n);if(!Vn.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}if(n.tag!==void 0&&n.tag!==s.tag){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(mk(p)));for(let p of c)u.push(JSON.stringify(hk(p)));for(let p of l)u.push(JSON.stringify(pk(p)));let f={_type:"meta_update",title:n.title,activeEntryId:n.lineage.activeEntryId,activeMessageCount:Io(n.lineage),...n.uiHistory!==void 0?{uiHistory:n.uiHistory}:{},...n.scope!==void 0?{scope:n.scope}:{}};u.push(JSON.stringify(f)),u.length>0&&await Ze.appendFile(r,`
|
|
283
|
+
`+u.join(`
|
|
284
|
+
`),"utf-8"),this.syncAppendState(t,n,s.metaUpdateCount+1)});let i=this.appendState.get(t);i&&this.shouldRunMaintenance(i)&&this.runMaintenance(t).catch(s=>{process.stderr.write(`[KodaX] Archive maintenance failed: ${String(s)}
|
|
285
|
+
`)})}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:i,archiveBatchId:s}=ey(n.data.lineage);if(i.length===0){await this.writeSessionInternal(t,n.data,n.createdAt),this.syncAppendState(t,n.data,0);return}let a=this.resolveWriteDir(t,n.data);await Ze.mkdir(a,{recursive:!0});let c=Fe.join(a,`${t}.islands.jsonl`),l=await Ze.open(c,"a");try{await l.write(JSON.stringify({_type:"archive_batch",archiveBatchId:s,sessionId:t,archivedAt:new Date().toISOString(),entryCount:i.length})+`
|
|
286
|
+
`);for(let f of i)await l.write(JSON.stringify({_type:"archived_entry",archiveBatchId:s,entry:f})+`
|
|
287
|
+
`)}finally{await l.close()}let u={...n.data,lineage:r};await this.writeSessionInternal(t,u,n.createdAt),this.syncAppendState(t,u,0)})}async save(t,n){await this.serializedWrite(t,async()=>{await this.mergeAndWriteInternal(t,n)})}async load(t){let n=await this.readSession(t);if(!n)return null;this.syncAppendState(t,n.data);let{data:r,createdAt:i}=n,s=this.legacyFlatPath(t);if(this.emitMismatchWarnings){let a=await vo(this.hostCwd),c=await Oi({cwd:this.hostCwd}),l=ba(r);(c.canonicalRepoRoot&&l?.canonicalRepoRoot&&!zl(c,l)||a&&r.gitRoot&&a!==r.gitRoot&&!zl(c,{canonicalRepoRoot:r.gitRoot}))&&(_r(dk.yellow(`
|
|
288
|
+
[Warning] Session project mismatch:`)),c.workspaceRoot&&_r(` Current workspace: ${c.workspaceRoot}`),l?.workspaceRoot&&_r(` Session workspace: ${l.workspaceRoot}`),c.canonicalRepoRoot&&_r(` Current repo: ${c.canonicalRepoRoot}`),l?.canonicalRepoRoot?_r(` Session repo: ${l.canonicalRepoRoot}`):r.gitRoot&&_r(` Session repo: ${r.gitRoot}`),_r(` Continuing anyway...
|
|
289
|
+
`))}if(r.errorMetadata?.consecutiveErrors&&r.errorMetadata.consecutiveErrors>0){let a=qx(r.messages);if(a!==r.messages){_r(dk.cyan("[Session Recovery] Cleaned incomplete tool calls from previous session"));let c={...r,messages:a,errorMetadata:{...r.errorMetadata,consecutiveErrors:0},lineage:kn(a,r.lineage)};return await this.serializedWrite(t,async()=>{await this.writeSessionInternal(t,c,i),this.syncAppendState(t,c)}),c}}return fk(s,0),r}async getLineage(t){return(await this.readSession(t))?.data.lineage??null}async setActiveEntry(t,n,r){let i=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=vi(s.data.lineage,n,r);if(!a)return;let c={...s.data,messages:At(a),lineage:a};await this.writeSessionInternal(t,c,s.createdAt),this.syncAppendState(t,c),i=c}),i}async rewind(t,n){let r=null;return await this.serializedWrite(t,async()=>{let i=await this.readSession(t);if(!i?.data.lineage)return;let s=n??Ei(i.data.lineage);if(!s)return;let a=Mi(i.data.lineage,s);if(!a)return;let c={...i.data,messages:At(a),lineage:a};await this.writeSessionInternal(t,c,i.createdAt),this.syncAppendState(t,c),r=c}),r}async setLabel(t,n,r){let i=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=Ri(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),i=c}),i}async fork(t,n,r){let i=null;return await this.serializedWrite(t,async()=>{let s=await this.readSession(t);if(!s?.data.lineage)return;let a=Ai(s.data.lineage,n);if(!a)return;let c=r?.sessionId??await ki(),l={messages:At(a),title:r?.title??s.data.title,gitRoot:s.data.gitRoot,tag:s.data.tag,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),i={sessionId:c,data:l}}),i}async list(t,n){await this.ensureMigrated(),await Ze.mkdir(this.sessionsDir,{recursive:!0});let r=t??(this.hostCwd?await vo(this.hostCwd):null),i=await Oi({cwd:r??this.hostCwd??process.cwd()}),s=await Ze.readdir(this.sessionsDir,{withFileTypes:!0}),a=[],c=Ni({gitRoot:r??void 0,runtimeInfo:i}).key,l=o(S=>S.endsWith(".archive.jsonl")||S.endsWith(".islands.jsonl"),"isSidecar"),u=r?[c]:s.filter(S=>S.isDirectory()&&!S.name.startsWith(".")).map(S=>S.name);for(let S of u){let x=[];try{x=await Ze.readdir(this.projectDir(S))}catch{continue}for(let T of x)T.endsWith(".jsonl")&&!l(T)&&a.push({path:Fe.join(this.projectDir(S),T),trusted:!!r,archived:!1});if(n?.includeArchived){let T=[];try{T=await Ze.readdir(Fe.join(this.projectDir(S),"archived"))}catch{T=[]}for(let M of T)M.endsWith(".jsonl")&&!l(M)&&a.push({path:Fe.join(this.projectDir(S),"archived",M),trusted:!!r,archived:!0})}}for(let S of s)S.isFile()&&S.name.endsWith(".jsonl")&&!l(S.name)&&!S.name.startsWith("archived-")&&!S.name.startsWith(".")&&a.push({path:Fe.join(this.sessionsDir,S.name),trusted:!1,archived:!1});let f=[],p=o(async(S,x,T)=>{try{let M=await CN(S);if(!M)return null;let v=JSON.parse(M);if(kt(v)&&v._type==="meta"){let O=typeof v.gitRoot=="string"?v.gitRoot:"",_=wk(v.runtimeInfo)?v.runtimeInfo:void 0,C=v.scope==="managed-task-worker"?"managed-task-worker":"user";if(r&&!x){let ge=zl(i,_),de=_?.workspaceRoot?gk(_.workspaceRoot,i.workspaceRoot??""):gk(O,r);if(!ge&&!de)return null}if(C!=="user")return null;let j=typeof v.extensionRecordCount=="number"&&v.extensionRecordCount>0?v.extensionRecordCount:0,ue=typeof v.activeMessageCount=="number"&&v.activeMessageCount>=0?v.activeMessageCount:Math.max(0,await Sk(S)-1-j);return{id:Fe.basename(S,".jsonl"),title:typeof v.title=="string"?v.title:"",msgCount:ue,...typeof v.tag=="string"?{tag:v.tag}:{},createdAt:typeof v.createdAt=="string"?v.createdAt:void 0,runtimeInfo:_?{..._}:O?{canonicalRepoRoot:O}:void 0,...T?{archived:!0}:{}}}let P=await Sk(S);return{id:Fe.basename(S,".jsonl"),title:"",msgCount:P,...T?{archived:!0}:{}}}catch{return null}},"parseSessionFile"),m=48,h=new Set;for(let S=0;S<a.length;S+=m){let x=await Promise.all(a.slice(S,S+m).map(T=>p(T.path,T.trusted,T.archived)));for(let T of x)T&&!h.has(T.id)&&(h.add(T.id),f.push(T))}let w=n?.limit??10;return f.sort((S,x)=>{let T=S.createdAt?Date.parse(S.createdAt):Number.NaN,M=x.createdAt?Date.parse(x.createdAt):Number.NaN;return Number.isFinite(T)&&Number.isFinite(M)&&T!==M?M-T:Number.isFinite(M)&&!Number.isFinite(T)?1:Number.isFinite(T)&&!Number.isFinite(M)?-1:x.id.localeCompare(S.id)}).slice(0,w).map(({id:S,title:x,msgCount:T,tag:M,runtimeInfo:v,createdAt:P,archived:O})=>({id:S,title:x,msgCount:T,...M!==void 0?{tag:M}:{},...v?{runtimeInfo:v}:{},...P!==void 0?{createdAt:P}:{},...O?{archived:!0}:{}}))}async archive(t){await this.ensureMigrated();let n=!1;return await this.serializedWrite(t,async()=>{let r=await this.resolveSessionLocation(t);if(!r)return;let i=Fe.dirname(r);if(Fe.basename(i)==="archived"){n=!0;return}await this.movePair(t,i,Fe.join(i,"archived")),this.sessionDirCache.delete(t),n=!0}),n}async unarchive(t){await this.ensureMigrated();let n=!1;return await this.serializedWrite(t,async()=>{let r=await this.resolveSessionLocation(t);if(!r)return;let i=Fe.dirname(r);if(Fe.basename(i)!=="archived"){n=!0;return}await this.movePair(t,i,Fe.dirname(i)),this.sessionDirCache.delete(t),n=!0}),n}async movePair(t,n,r){await Ze.mkdir(r,{recursive:!0});for(let i of[`${t}.jsonl`,`${t}.islands.jsonl`]){let s=Fe.join(n,i);if(Vn.existsSync(s))try{await Ze.rename(s,Fe.join(r,i))}catch(a){if(a.code!=="ENOENT")throw a}}}async delete(t){await this.ensureMigrated();let n=await this.resolveSessionLocation(t),r=new Set;n&&(r.add(n),r.add(n.replace(/\.jsonl$/,".archive.jsonl")),r.add(n.replace(/\.jsonl$/,".islands.jsonl"))),r.add(this.legacyFlatPath(t)),r.add(this.legacyFlatArchivePath(t));for(let i of r)Vn.existsSync(i)&&await Ze.unlink(i).catch(()=>{});this.sessionDirCache.delete(t)}async deleteAll(t){let n=t??(this.hostCwd?await vo(this.hostCwd):null),r=await this.list(n??void 0,{limit:Number.MAX_SAFE_INTEGER});for(let i of r)await this.delete(i.id)}async cleanupOldSessions(t){if(!Number.isFinite(t)||t<=0)return 0;await this.ensureMigrated();let n=0,r=Date.now()-t*24*60*60*1e3,i=o(async s=>{if(s.endsWith(".jsonl"))try{(await Ze.stat(s)).mtimeMs<r&&(await Ze.unlink(s),n++)}catch{}},"unlinkIfOld");try{await Ze.mkdir(this.sessionsDir,{recursive:!0});let s=await Ze.readdir(this.sessionsDir,{withFileTypes:!0});for(let a of s){let c=Fe.join(this.sessionsDir,a.name);if(a.isFile()){await i(c);continue}if(!a.isDirectory()||a.name.startsWith("."))continue;let l=[];try{l=await Ze.readdir(c,{withFileTypes:!0})}catch{continue}for(let u of l){let f=Fe.join(c,u.name);if(u.isFile())await i(f);else if(u.isDirectory()&&u.name==="archived"){let p=[];try{p=await Ze.readdir(f)}catch{continue}for(let m of p)await i(Fe.join(f,m))}}}}catch{}return n}};import qo from"node:fs";import kc from"node:fs/promises";import wn from"node:path";async function bN(e,t){let n=[],r=o(s=>s.endsWith(".jsonl")&&!s.endsWith(".archive.jsonl")&&!s.endsWith(".islands.jsonl")&&!s.startsWith("."),"isSession"),i=[];try{i=await kc.readdir(e,{withFileTypes:!0})}catch{return n}for(let s of i){if(s.isFile()){r(s.name)&&(t||!s.name.startsWith("archived-"))&&n.push(wn.join(e,s.name));continue}if(!s.isDirectory()||s.name.startsWith("."))continue;let a=wn.join(e,s.name);try{for(let c of await kc.readdir(a))r(c)&&n.push(wn.join(a,c))}catch{}if(t){let c=wn.join(a,"archived");try{for(let l of await kc.readdir(c))r(l)&&n.push(wn.join(c,l))}catch{}}}return n}o(bN,"collectSessionFilePaths");function Tk(e){if(!e||!e.trim())return;let t=wn.resolve(e).replace(/\\/g,"/");return process.platform==="win32"||process.platform==="darwin"?t.toLowerCase():t}o(Tk,"normalizeComparableRoot");function IN(e,t,n){let r=Tk(n);return r?[e?.gitRoot,e?.workspaceRoot,t].some(i=>Tk(i)===r):!0}o(IN,"sessionMatchesProjectRoot");function lo(e){return e!==void 0?new co({sessionsDir:e}):new co}o(lo,"getStorage");function Ck(e){return e??xa}o(Ck,"resolveSessionsDir");async function bk(e){return Ik(e,void 0)}o(bk,"listSessions");async function Ik(e,t){try{let n=Ck(t);await Ic(n);let r=e?.projectRoot,i=lo(t);await kc.mkdir(n,{recursive:!0});let s=e?.scope??"user",a=e?.includeArchived??!1,c=e?.limit??50,l=e?.before?Date.parse(e.before):void 0,u=e?.tag;if(s==="user"&&!r&&l===void 0&&!a&&u===void 0)return(await i.list(r,{limit:c})).map(kN);let f=await bN(n,a),p=[],m=new Set;for(let h of f)try{let w=wn.basename(h,".jsonl");if(m.has(w))continue;let S=wn.basename(wn.dirname(h))==="archived",x=(await kc.readFile(h,"utf-8")).trim(),T=x.split(`
|
|
290
|
+
`)[0];if(!T)continue;let M=JSON.parse(T);if(M===null||typeof M!="object"||M._type!=="meta")continue;let v=M,P=v.scope==="managed-task-worker"?"managed-task-worker":"user";if(s==="user"&&P!=="user"||s==="managed-task-worker"&&P!=="managed-task-worker")continue;let O=typeof v.createdAt=="string"?v.createdAt:void 0;if(l!==void 0&&O!==void 0){let I=Date.parse(O);if(!Number.isNaN(I)&&I>=l)continue}let _=typeof v.tag=="string"?v.tag:void 0;if(u!==void 0&&_!==u)continue;let C=x.split(`
|
|
291
|
+
`).length,j=typeof v.extensionRecordCount=="number"&&v.extensionRecordCount>0?v.extensionRecordCount:0,ue=typeof v.activeMessageCount=="number"&&v.activeMessageCount>=0?v.activeMessageCount:Math.max(0,C-1-j),ge=v.runtimeInfo!==null&&typeof v.runtimeInfo=="object"?kk(v.runtimeInfo):void 0,de=typeof v.gitRoot=="string"?v.gitRoot:void 0,Y=ge??(de?{gitRoot:de}:void 0);if(!IN(Y,de,r))continue;let L=Ia(Y?.gitRoot??Y?.workspaceRoot).key;m.add(w),p.push({id:w,title:typeof v.title=="string"?v.title:"",msgCount:ue,..._!==void 0?{tag:_}:{},createdAt:O,runtimeInfo:Y,projectKey:L,...S?{archived:!0}:{},_createdAtMs:O?Date.parse(O):void 0})}catch{continue}return p.sort((h,w)=>{let S=h._createdAtMs,x=w._createdAtMs;return Number.isFinite(S)&&Number.isFinite(x)&&S!==x?x-S:Number.isFinite(x)&&!Number.isFinite(S)?1:Number.isFinite(S)&&!Number.isFinite(x)?-1:w.id.localeCompare(h.id)}),p.slice(0,c).map(({id:h,title:w,msgCount:S,tag:x,createdAt:T,runtimeInfo:M,projectKey:v,archived:P})=>({id:h,title:w,msgCount:S,...x!==void 0?{tag:x}:{},...T!==void 0?{createdAt:T}:{},...M!==void 0?{runtimeInfo:M}:{},...v!==void 0?{projectKey:v}:{},...P?{archived:!0}:{}}))}catch{return[]}}o(Ik,"listSessionsImpl");function kk(e){if(!(!e.workspaceRoot&&!e.canonicalRepoRoot))return{...e.workspaceRoot?{workspaceRoot:e.workspaceRoot}:{},...e.canonicalRepoRoot?{gitRoot:e.canonicalRepoRoot}:{}}}o(kk,"extractRuntimeInfoSummary");function kN(e){let t=e.runtimeInfo?kk(e.runtimeInfo):void 0,n=Ia(t?.gitRoot??t?.workspaceRoot).key;return{id:e.id,title:e.title,msgCount:e.msgCount,...e.tag!==void 0?{tag:e.tag}:{},...t!==void 0?{runtimeInfo:t}:{},...e.createdAt!==void 0?{createdAt:e.createdAt}:{},projectKey:n}}o(kN,"toSessionSummary");async function vk(e){return Rk(e,void 0)}o(vk,"loadSession");async function Rk(e,t){try{return await lo(t).load(e)}catch{return null}}o(Rk,"loadSessionImpl");async function Ek(e,t){return Mk(e,t,void 0)}o(Ek,"forkSession");async function Mk(e,t,n){try{return await lo(n).fork(e,t?.selector,{sessionId:t?.sessionId,title:t?.title})}catch{return null}}o(Mk,"forkSessionImpl");async function Ak(e,t){return _k(e,t,void 0)}o(Ak,"rewindSession");async function _k(e,t,n){try{return await lo(n).rewind(e,t?.selector)}catch{return null}}o(_k,"rewindSessionImpl");async function Lk(e,t){return Pk(e,t,void 0)}o(Lk,"setActiveEntry");async function Pk(e,t,n){try{return await lo(n).setActiveEntry(e,t)}catch{return null}}o(Pk,"setActiveEntryImpl");async function hf(){try{return Yx({excludePid:process.pid}).map(t=>({pid:t.pid,startedAt:t.state.meta.startedAt,cwd:t.state.meta.cwd,sessionId:t.state.sessionId}))}catch{return[]}}o(hf,"listRunningSessions");async function $k(e){return Ok(e,void 0)}o($k,"deleteSession");async function Ok(e,t){try{let r=(await hf()).find(i=>i.sessionId===e);return r?{error:{code:"session_running",runningProcess:{pid:r.pid,startedAt:r.startedAt}}}:(await lo(t).delete(e),{ok:!0})}catch{return{ok:!0}}}o(Ok,"deleteSessionImpl");async function Nk(e){return Dk(e,void 0)}o(Nk,"archiveSession");async function Dk(e,t){try{return await lo(t).archive(e)}catch{return!1}}o(Dk,"archiveSessionImpl");async function Bk(e){return Hk(e,void 0)}o(Bk,"unarchiveSession");async function Hk(e,t){try{return await lo(t).unarchive(e)}catch{return!1}}o(Hk,"unarchiveSessionImpl");function Wk(e){return Fk(e,void 0)}o(Wk,"watchSessions");function Fk(e,t){let n=Ck(t);return Ic(n).catch(()=>{}),process.platform==="win32"?EN(e,n):vN(e,n)}o(Fk,"watchSessionsImpl");function yg(e){let t=wn.basename(e);return!t.endsWith(".jsonl")||t.endsWith(".archive.jsonl")||t.endsWith(".islands.jsonl")||t.startsWith(".")?null:t.slice(0,-6)}o(yg,"sessionIdFromFilename");function vN(e,t){let n=null,r=!1,i=new Map;function s(c,l){let u=i.get(l);u!==void 0&&clearTimeout(u);let f=setTimeout(()=>{i.delete(l),r||e({kind:c,sessionId:l})},100);i.set(l,f)}o(s,"emitDebounced");function a(){if(!r)try{if(!qo.existsSync(t)){setTimeout(a,1e3);return}let c=o((l,u)=>{if(!u)return;let f=typeof u=="string"?u:u.toString(),p=yg(f);if(!p)return;let m=l==="rename"?RN(t,f):"change";s(m,p)},"onEvent");try{n=qo.watch(t,{recursive:!0},c)}catch{n=qo.watch(t,c)}n.on("error",()=>{n?.close(),n=null,r||setTimeout(a,1e3)})}catch{}}return o(a,"startWatch"),a(),{close(){r=!0,n?.close(),n=null;for(let c of i.values())clearTimeout(c);i.clear()}}}o(vN,"watchSessionsPosix");function RN(e,t){try{return qo.statSync(wn.join(e,t)),"add"}catch{return"remove"}}o(RN,"detectRenameKind");function EN(e,t){let n=!1,r=new Set;function i(c,l){try{for(let u of qo.readdirSync(l)){let f=yg(u);f&&c.add(f)}}catch{}}o(i,"addIds");function s(){let c=new Set;try{if(!qo.existsSync(t))return c;for(let l of qo.readdirSync(t,{withFileTypes:!0}))if(l.isFile()){let u=yg(l.name);u&&c.add(u)}else if(l.isDirectory()&&!l.name.startsWith(".")){let u=wn.join(t,l.name);i(c,u),i(c,wn.join(u,"archived"))}}catch{}return c}o(s,"buildSnapshot"),r=s();let a=setInterval(()=>{if(n)return;let c=s();for(let l of c)r.has(l)||e({kind:"add",sessionId:l});for(let l of r)c.has(l)||e({kind:"remove",sessionId:l});r=c},1e3);return{close(){n=!0,clearInterval(a)}}}o(EN,"watchSessionsWindows");function MN(e){let t=e?.sessionsDir,n=t!==void 0?new co({sessionsDir:t}):new co;return t===void 0?{listSessions:bk,loadSession:vk,forkSession:Ek,rewindSession:Ak,setActiveEntry:Lk,deleteSession:$k,archiveSession:Nk,unarchiveSession:Bk,listRunningSessions:hf,watchSessions:Wk,storage:n}:{listSessions:o(r=>Ik(r,t),"listSessions"),loadSession:o(r=>Rk(r,t),"loadSession"),forkSession:o((r,i)=>Mk(r,i,t),"forkSession"),rewindSession:o((r,i)=>_k(r,i,t),"rewindSession"),setActiveEntry:o((r,i)=>Pk(r,i,t),"setActiveEntry"),deleteSession:o(r=>Ok(r,t),"deleteSession"),archiveSession:o(r=>Dk(r,t),"archiveSession"),unarchiveSession:o(r=>Hk(r,t),"unarchiveSession"),listRunningSessions:hf,watchSessions:o(r=>Fk(r,t),"watchSessions"),storage:n}}o(MN,"createSessionManager");export{Hi as a,Wi as b,ka as c,Fi as d,va as e,Sp as f,Eo as g,Mo as h,Ui as i,Ao as j,Zl as k,_o as l,ji as m,eu as n,tu as o,Gi as p,mn as q,Zn as r,er as s,Pv as t,nn as u,Ra as v,Cp as w,bp as x,rn as y,Ip as z,kp as A,Gy as B,Vy as C,oe as D,VN as E,sm as F,zM as G,Du as H,ja as I,_w as J,JM as K,ZM as L,gn as M,$ as N,QF as O,Kt as P,cm as Q,um as R,Bu as S,dm as T,$w as U,mm as V,Do as W,Hu as X,hm as Y,Ka as Z,xm as _,ss as $,CA as aa,_n as ba,Yw as ca,qw as da,MA as ea,AA as fa,v_ as ga,Wo as ha,E_ as ia,fs as ja,X_ as ka,q_ as la,Q_ as ma,Dm as na,Bm as oa,Z_ as pa,Wm as qa,Fm as ra,pd as sa,md as ta,hd as ua,jm as va,xd as wa,gd as xa,Vm as ya,yd as za,Za as Aa,ec as Ba,zT as Ca,wd as Da,zm as Ea,Ym as Fa,Qm as Ga,Td as Ha,Jm as Ia,Cd as Ja,bd as Ka,nh as La,Id as Ma,rc as Na,oc as Oa,cC as Pa,RL as Qa,EL as Ra,uC as Sa,LL as Ta,PL as Ua,ic as Va,ar as Wa,ac as Xa,xs as Ya,$L as Za,Rd as _a,DL as $a,BL as ab,Ed as bb,ih as cb,Md as db,sh as eb,rg as fb,tO as gb,rO as hb,dO as ib,kI as jb,vI as kb,fO as lb,mO as mb,rf as nb,AI as ob,Ar as pb,_I as qb,LI as rb,PI as sb,xO as tb,Sc as ub,yO as vb,SO as wb,$O as xb,dg as yb,NO as zb,DO as Ab,BO as Bb,HO as Cb,FO as Db,UO as Eb,jO as Fb,GO as Gb,qI as Hb,co as Ib,bk as Jb,vk as Kb,Ek as Lb,Ak as Mb,Lk as Nb,hf as Ob,$k as Pb,Nk as Qb,Bk as Rb,Wk as Sb,MN as Tb};
|